{
  "openapi": "3.0.4",
  "info": {
    "title": "Mobilia Public API",
    "description": "Bienvenido a la API pública de Mobilia. Esta interfaz RESTful permite a aplicaciones externas integrarse con el CRM inmobiliario Mobilia.\r\n\r\nLa API está orientada a CRMs externos o soluciones personalizadas que necesiten interactuar con la información de Mobilia.\r\n\r\nLa API usa OAuth 2.0 para acceder, con lo que se debe obtener un client ID y un client secret, a partir de estos datos se puede obtener el Bearer Token en la petición a /api/v1/token",
    "version": "1.0"
  },
  "paths": {
    "/api/v1/agenda/visitas": {
      "get": {
        "tags": [
          "Agenda"
        ],
        "summary": "Consulta las visitas pendientes de un agente en una fecha",
        "description": "Devuelve las visitas pendientes que tiene el agente indicado en el día indicado.\n\n\n\n**Requisitos:**\n- `visitaspendientes_read`",
        "parameters": [
          {
            "name": "idAgente",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fecha",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitaLibreResponseApiCollectionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/agentes": {
      "get": {
        "tags": [
          "Agentes"
        ],
        "summary": "Consulta una lista de agentes",
        "description": "Devuelve los agentes de la agencia.\n\n**Notas:**\n- Devuelve únicamente los agentes **activos**.\n\n\n\n**Requisitos:**\n- `agentes_read`",
        "parameters": [
          {
            "name": "Busqueda",
            "in": "query",
            "description": "Texto para buscar por nombre, email e idAgente",
            "schema": {
              "type": "string",
              "description": "Texto para buscar por nombre, email e idAgente"
            }
          },
          {
            "name": "OrdenarPor",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/AgentesSortField"
            }
          },
          {
            "name": "NumeroPagina",
            "in": "query",
            "description": "Número de página a obtener (mínimo 1).",
            "schema": {
              "type": "integer",
              "description": "Número de página a obtener (mínimo 1).",
              "format": "int32"
            }
          },
          {
            "name": "TamanoPagina",
            "in": "query",
            "description": "Número de elementos por página (máximo 100).",
            "schema": {
              "type": "integer",
              "description": "Número de elementos por página (máximo 100).",
              "format": "int32"
            }
          },
          {
            "name": "Ordenacion",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgenteResponseApiCollectionPagedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/agentes/{idAgente}": {
      "get": {
        "tags": [
          "Agentes"
        ],
        "summary": "Consulta un agente",
        "description": "Devuelve la información del agente a partir de su **id**.\n\n**Notas:**\n- Devuelve únicamente los agentes **activos**: un agente inactivo responde **404**, igual que un agente inexistente.\n\n\n**Requisitos:**\n- `agentes_read`",
        "parameters": [
          {
            "name": "idAgente",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgenteResponseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/agentes/by-email": {
      "get": {
        "tags": [
          "Agentes"
        ],
        "summary": "Consulta un agente",
        "description": "Devuelve la información del agente a partir de su **email**.\n\n**Notas:**\n- Devuelve únicamente los agentes **activos**: un agente inactivo responde **404**, igual que un agente inexistente.\n\n\n**Requisitos:**\n- `agentes_read`",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgenteResponseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/aplicaciones-cliente/current": {
      "get": {
        "tags": [
          "AplicacionesClientes"
        ],
        "summary": "Consulta la información de la aplicación cliente",
        "description": "Devuelve la información de la aplicación cliente actual.\n\n",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientApplication"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/campanas": {
      "get": {
        "tags": [
          "Campanas"
        ],
        "summary": "Consulta una lista de campañas",
        "description": "Devuelve las campañas disponibles de la agencia.\n\n\n\n**Requisitos:**\n- `campanas_read`",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampanaResponseApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/clientes": {
      "get": {
        "tags": [
          "Clientes"
        ],
        "summary": "Consulta una lista de clientes",
        "description": "Devuelve los clientes de la agencia aplicando los filtros indicados.\n\n\n\n**Requisitos:**\n- `clientes_read`",
        "parameters": [
          {
            "name": "TiposCliente",
            "in": "query",
            "description": "Filtrar por tipo de cliente. (Ctrl para elegir varios)",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/TipoCliente"
              },
              "description": "Filtrar por tipo de cliente. (Ctrl para elegir varios)"
            }
          },
          {
            "name": "IdGrupos",
            "in": "query",
            "description": "Grupos a los que peretenecen los clientes (puedes ver tus grupos en el endpoint GetGrupos/Clientes)",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Grupos a los que peretenecen los clientes (puedes ver tus grupos en el endpoint GetGrupos/Clientes)"
            }
          },
          {
            "name": "IdExcluyeGrupos",
            "in": "query",
            "description": "Grupos a los que no peretenecen los clientes (puedes ver tus grupos en el endpoint GetGrupos/Clientes)",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Grupos a los que no peretenecen los clientes (puedes ver tus grupos en el endpoint GetGrupos/Clientes)"
            }
          },
          {
            "name": "IdCampana",
            "in": "query",
            "description": "IdCampaña (puedes ver tus campañas en el endpoint GetCampañas)",
            "schema": {
              "type": "integer",
              "description": "IdCampaña (puedes ver tus campañas en el endpoint GetCampañas)",
              "format": "int32"
            }
          },
          {
            "name": "UltimoContactoDesde",
            "in": "query",
            "description": "Fecha mínima (inclusive) del último contacto. (YYYY-MM-DD HH:MM:SS)",
            "schema": {
              "type": "string",
              "description": "Fecha mínima (inclusive) del último contacto. (YYYY-MM-DD HH:MM:SS)",
              "format": "date-time"
            }
          },
          {
            "name": "UltimoContactoHasta",
            "in": "query",
            "description": "Fecha máxima (inclusive) del último contacto. (YYYY-MM-DD HH:MM:SS)",
            "schema": {
              "type": "string",
              "description": "Fecha máxima (inclusive) del último contacto. (YYYY-MM-DD HH:MM:SS)",
              "format": "date-time"
            }
          },
          {
            "name": "IdCuenta",
            "in": "query",
            "description": "IdCuenta (puedes ver tus cuentas en el endpoint GetCuentas)",
            "schema": {
              "type": "integer",
              "description": "IdCuenta (puedes ver tus cuentas en el endpoint GetCuentas)",
              "format": "int32"
            }
          },
          {
            "name": "FechaDesde",
            "in": "query",
            "description": "Fecha mínima (inclusive) desde la que traer registros de alta. (YYYY-MM-DD HH:MM:SS)",
            "schema": {
              "type": "string",
              "description": "Fecha mínima (inclusive) desde la que traer registros de alta. (YYYY-MM-DD HH:MM:SS)",
              "format": "date-time"
            }
          },
          {
            "name": "FechaHasta",
            "in": "query",
            "description": "Fecha máxima (inclusive) hasta la que traer registros de alta. (YYYY-MM-DD HH:MM:SS)",
            "schema": {
              "type": "string",
              "description": "Fecha máxima (inclusive) hasta la que traer registros de alta. (YYYY-MM-DD HH:MM:SS)",
              "format": "date-time"
            }
          },
          {
            "name": "Busqueda",
            "in": "query",
            "description": "Texto de búsqueda por coincidencia parcial (contiene) sobre el nombre o el email del cliente. Si el texto contiene dígitos, se busca además en todos los teléfonos del cliente (móvil, teléfono 2 y teléfono 3); el número se normaliza antes de comparar (se admiten espacios y prefijo internacional +34 o 0034). No distingue mayúsculas de minúsculas.",
            "schema": {
              "type": "string",
              "description": "Texto de búsqueda por coincidencia parcial (contiene) sobre el nombre o el email del cliente. Si el texto contiene dígitos, se busca además en todos los teléfonos del cliente (móvil, teléfono 2 y teléfono 3); el número se normaliza antes de comparar (se admiten espacios y prefijo internacional +34 o 0034). No distingue mayúsculas de minúsculas."
            }
          },
          {
            "name": "OrdenarPor",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ClienteSortField"
            }
          },
          {
            "name": "NumeroPagina",
            "in": "query",
            "description": "Número de página a obtener (mínimo 1).",
            "schema": {
              "type": "integer",
              "description": "Número de página a obtener (mínimo 1).",
              "format": "int32"
            }
          },
          {
            "name": "TamanoPagina",
            "in": "query",
            "description": "Número de elementos por página (máximo 100).",
            "schema": {
              "type": "integer",
              "description": "Número de elementos por página (máximo 100).",
              "format": "int32"
            }
          },
          {
            "name": "Ordenacion",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClienteResponseApiCollectionPagedResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Clientes"
        ],
        "summary": "Crea un cliente",
        "description": "Crea un cliente en la agencia con la información enviada y devuelve su información.\n\n**Notas:**\n- El `idAgente` debe pertenecer a la agencia.\n- La respuesta **200** devuelve el cliente creado, incluida su `referencia`, que es el identificador a usar en las consultas posteriores (`GET /clientes/{referencia}`).\n- La creación es visible de forma inmediata mediante GET (consistencia de lectura tras escritura).\n- Se valida la unicidad dentro de la agencia de `dni`, `email` y los teléfonos: si ya existe un cliente con alguno de esos datos, la respuesta es **400** con el detalle del campo en conflicto.\n- También devuelven **400** una campaña, grupo, cuenta o agente que no pertenezca a la agencia.\n\n\n\n**Requisitos:**\n- `clientes_create`",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ClienteCrearRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClienteCrearRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ClienteCrearRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ClienteCrearRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClienteResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/clientes/{referencia}": {
      "get": {
        "tags": [
          "Clientes"
        ],
        "summary": "Consulta un cliente",
        "description": "Devuelve un cliente existente de la agencia a partir de la **referencia** indicada.\n\n\n\n**Requisitos:**\n- `clientes_read`",
        "parameters": [
          {
            "name": "referencia",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClienteResponseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Clientes"
        ],
        "summary": "Actualiza un cliente",
        "description": "Actualiza un cliente existente de la agencia a partir de la **referencia** indicada con la información enviada y devuelve su información.\n\n\n\n**Requisitos:**\n- `clientes_update`",
        "parameters": [
          {
            "name": "referencia",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ClienteCrearRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClienteCrearRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ClienteCrearRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ClienteCrearRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClienteResponseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Clientes"
        ],
        "summary": "Elimina un cliente",
        "description": "Elimina un cliente existente de la agencia a partir de su **referencia**.\n\n\n\n**Requisitos:**\n- `clientes_delete`",
        "parameters": [
          {
            "name": "referencia",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClienteResponseApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/clientes/by-email": {
      "get": {
        "tags": [
          "Clientes"
        ],
        "summary": "Consulta un cliente",
        "description": "Devuelve un cliente existente de la agencia a partir del **email** indicado.\n\n\n\n**Requisitos:**\n- `clientes_read`",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClienteResponseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/clientes/by-phone": {
      "get": {
        "tags": [
          "Clientes"
        ],
        "summary": "Consulta un cliente",
        "description": "Devuelve un cliente existente de la agencia a partir del **teléfono** indicado.\n\nLa búsqueda se realiza sobre el móvil y los teléfonos secundarios del cliente, normalizando el número (se ignoran prefijo de país, espacios y separadores).\n\n\n\n**Requisitos:**\n- `clientes_read`",
        "parameters": [
          {
            "name": "telefono",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClienteResponseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cuentas": {
      "get": {
        "tags": [
          "Cuentas"
        ],
        "summary": "Consulta una lista de cuentas",
        "description": "Devuelve las cuentas disponibles de la agencia.\n\n\n\n**Requisitos:**\n- `cuentas_read`",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CuentaResponseApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/estadosadministrativos": {
      "get": {
        "tags": [
          "EstadosAdministrativos"
        ],
        "summary": "Consulta una lista de estados administrativos",
        "description": "Devuelve los estados administrativos de la agencia.\n\n\n\n**Requisitos:**\n- `estadosadministrativos_read`",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstadosAdministrativosResponseApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/grupos/clientes": {
      "get": {
        "tags": [
          "Grupos"
        ],
        "summary": "Consulta una lista de grupos",
        "description": "Devuelve los **grupos de clientes** disponibles de la agencia.\n\n\n\n**Requisitos:**\n- `grupos_read`",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GrupoResponseApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/grupos/inmuebles": {
      "get": {
        "tags": [
          "Grupos"
        ],
        "summary": "Consulta una lista de grupos",
        "description": "Devuelve los **grupos de inmuebles** disponibles de la agencia.\n\n\n\n**Requisitos:**\n- `grupos_read`",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GrupoResponseApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inmuebles": {
      "get": {
        "tags": [
          "Inmuebles"
        ],
        "summary": "Consulta una lista de inmuebles",
        "description": "Devuelve los inmuebles de la agencia aplicando los filtros indicados.\n\n**Notas:**\n- Devuelve los inmuebles **disponibles, publicados en web y en venta, alquiler o traspaso**.\n\n**Límite:**\n - 10 peticiones por minuto\n\n\n\n**Requisitos:**\n- `inmuebles_read`",
        "parameters": [
          {
            "name": "Busqueda",
            "in": "query",
            "description": "Texto para buscar en la referencia de los inmuebles",
            "schema": {
              "type": "string",
              "description": "Texto para buscar en la referencia de los inmuebles"
            }
          },
          {
            "name": "Alias",
            "in": "query",
            "description": "Texto para buscar en el alias de los inmuebles",
            "schema": {
              "type": "string",
              "description": "Texto para buscar en el alias de los inmuebles"
            }
          },
          {
            "name": "IdGrupos",
            "in": "query",
            "description": "Grupos a los que pertenece el inmueble (puedes ver tus grupos en el endpoint GetGrupos/Inmuebles)",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Grupos a los que pertenece el inmueble (puedes ver tus grupos en el endpoint GetGrupos/Inmuebles)"
            }
          },
          {
            "name": "IdExcluyeGrupos",
            "in": "query",
            "description": "Grupos a los que no pertenece el inmueble inmuebles (puedes ver tus grupos en el endpoint GetGrupos/Inmuebles).",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Grupos a los que no pertenece el inmueble inmuebles (puedes ver tus grupos en el endpoint GetGrupos/Inmuebles)."
            }
          },
          {
            "name": "IdCuentas",
            "in": "query",
            "description": "Cuentas a las que pertenece el inmueble (puedes ver tus cuentas en el endpoint GetCuentas",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Cuentas a las que pertenece el inmueble (puedes ver tus cuentas en el endpoint GetCuentas"
            }
          },
          {
            "name": "IdExcluyeCuentas",
            "in": "query",
            "description": "Cuentas a las que no pertenece el inmueble (puedes ver tus cuentas en el endpoint GetCuentas",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Cuentas a las que no pertenece el inmueble (puedes ver tus cuentas en el endpoint GetCuentas"
            }
          },
          {
            "name": "FechaUltimaModificacion",
            "in": "query",
            "description": "Fecha de modificación web para filtrar inmuebles modificados después de esta fecha. Formato ISO 8601 (ejemplo: 2023-01-01T00:00:00Z)",
            "schema": {
              "type": "string",
              "description": "Fecha de modificación web para filtrar inmuebles modificados después de esta fecha. Formato ISO 8601 (ejemplo: 2023-01-01T00:00:00Z)"
            }
          },
          {
            "name": "PrecioVentaDesde",
            "in": "query",
            "description": "Precio mínimo para filtrar inmuebles con precio de venta mayor o igual a este valor",
            "schema": {
              "type": "number",
              "description": "Precio mínimo para filtrar inmuebles con precio de venta mayor o igual a este valor",
              "format": "double"
            }
          },
          {
            "name": "OrdenarPor",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/InmuebleSortField"
            }
          },
          {
            "name": "MarcaAguaImagenes",
            "in": "query",
            "description": "Incluye la marca de agua a las imágenes. Por defecto true",
            "schema": {
              "type": "boolean",
              "description": "Incluye la marca de agua a las imágenes. Por defecto true"
            }
          },
          {
            "name": "DescripcionImagenes",
            "in": "query",
            "description": "Añade las descripciones a las imágenes de los inmuebles. Por defecto false",
            "schema": {
              "type": "boolean",
              "description": "Añade las descripciones a las imágenes de los inmuebles. Por defecto false"
            }
          },
          {
            "name": "TiposOperacion",
            "in": "query",
            "description": "Indica la operación del inmueble",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/TipoOperacion"
              },
              "description": "Indica la operación del inmueble"
            }
          },
          {
            "name": "AlquilerVacacional",
            "in": "query",
            "description": "Filtra por inmuebles marcados como alquiler vacacional. true = solo vacacionales, false = solo no vacacionales, ausente = todos",
            "schema": {
              "type": "boolean",
              "description": "Filtra por inmuebles marcados como alquiler vacacional. true = solo vacacionales, false = solo no vacacionales, ausente = todos"
            }
          },
          {
            "name": "IdAgente",
            "in": "query",
            "description": "Indica el IdAgente, filtrando por los inmuebles en el que el agente es el responsable de Venta, Alquiler, Traspaso o Captación (puedes ver tus agentes en el endpoint GetAgentes)",
            "schema": {
              "type": "integer",
              "description": "Indica el IdAgente, filtrando por los inmuebles en el que el agente es el responsable de Venta, Alquiler, Traspaso o Captación (puedes ver tus agentes en el endpoint GetAgentes)",
              "format": "int32"
            }
          },
          {
            "name": "IdPropietario",
            "in": "query",
            "description": "Id del propietario para filtrar inmuebles asociados",
            "schema": {
              "type": "integer",
              "description": "Id del propietario para filtrar inmuebles asociados",
              "format": "int32"
            }
          },
          {
            "name": "NumeroPagina",
            "in": "query",
            "description": "Número de página a obtener (mínimo 1).",
            "schema": {
              "type": "integer",
              "description": "Número de página a obtener (mínimo 1).",
              "format": "int32"
            }
          },
          {
            "name": "TamanoPagina",
            "in": "query",
            "description": "Número de elementos por página (máximo 100).",
            "schema": {
              "type": "integer",
              "description": "Número de elementos por página (máximo 100).",
              "format": "int32"
            }
          },
          {
            "name": "Ordenacion",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InmuebleApiCollectionPagedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inmuebles/todos": {
      "get": {
        "tags": [
          "Inmuebles"
        ],
        "summary": "Consulta una lista de todos los inmuebles",
        "description": "Devuelve todos los inmuebles de la agencia aplicando los filtros indicados.\n\n**Notas:**\n- Devuelve todos los inmuebles.\n\n**Límite:**\n - 10 peticiones por minuto\n\n\n\n**Requisitos:**\n- `inmueblestodos_read`",
        "parameters": [
          {
            "name": "Disponible",
            "in": "query",
            "description": "Filtra los inmuebles disponibles. Por defecto true",
            "schema": {
              "type": "boolean",
              "description": "Filtra los inmuebles disponibles. Por defecto true"
            }
          },
          {
            "name": "PublicarEnWeb",
            "in": "query",
            "description": "Filtra los inmuebles publicados en web. Por defecto true",
            "schema": {
              "type": "boolean",
              "description": "Filtra los inmuebles publicados en web. Por defecto true"
            }
          },
          {
            "name": "IdEstadosAdministrativos",
            "in": "query",
            "description": "Filtra por IdEstadoAdministrativo. Devuelve inmuebles cuyo estado esté en esta lista.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Filtra por IdEstadoAdministrativo. Devuelve inmuebles cuyo estado esté en esta lista."
            }
          },
          {
            "name": "Busqueda",
            "in": "query",
            "description": "Texto para buscar en la referencia de los inmuebles",
            "schema": {
              "type": "string",
              "description": "Texto para buscar en la referencia de los inmuebles"
            }
          },
          {
            "name": "Alias",
            "in": "query",
            "description": "Texto para buscar en el alias de los inmuebles",
            "schema": {
              "type": "string",
              "description": "Texto para buscar en el alias de los inmuebles"
            }
          },
          {
            "name": "IdGrupos",
            "in": "query",
            "description": "Grupos a los que pertenece el inmueble (puedes ver tus grupos en el endpoint GetGrupos/Inmuebles)",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Grupos a los que pertenece el inmueble (puedes ver tus grupos en el endpoint GetGrupos/Inmuebles)"
            }
          },
          {
            "name": "IdExcluyeGrupos",
            "in": "query",
            "description": "Grupos a los que no pertenece el inmueble inmuebles (puedes ver tus grupos en el endpoint GetGrupos/Inmuebles).",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Grupos a los que no pertenece el inmueble inmuebles (puedes ver tus grupos en el endpoint GetGrupos/Inmuebles)."
            }
          },
          {
            "name": "IdCuentas",
            "in": "query",
            "description": "Cuentas a las que pertenece el inmueble (puedes ver tus cuentas en el endpoint GetCuentas",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Cuentas a las que pertenece el inmueble (puedes ver tus cuentas en el endpoint GetCuentas"
            }
          },
          {
            "name": "IdExcluyeCuentas",
            "in": "query",
            "description": "Cuentas a las que no pertenece el inmueble (puedes ver tus cuentas en el endpoint GetCuentas",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Cuentas a las que no pertenece el inmueble (puedes ver tus cuentas en el endpoint GetCuentas"
            }
          },
          {
            "name": "FechaUltimaModificacion",
            "in": "query",
            "description": "Fecha de modificación web para filtrar inmuebles modificados después de esta fecha. Formato ISO 8601 (ejemplo: 2023-01-01T00:00:00Z)",
            "schema": {
              "type": "string",
              "description": "Fecha de modificación web para filtrar inmuebles modificados después de esta fecha. Formato ISO 8601 (ejemplo: 2023-01-01T00:00:00Z)"
            }
          },
          {
            "name": "OrdenarPor",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/InmuebleSortField"
            }
          },
          {
            "name": "MarcaAguaImagenes",
            "in": "query",
            "description": "Incluye la marca de agua a las imágenes. Por defecto true",
            "schema": {
              "type": "boolean",
              "description": "Incluye la marca de agua a las imágenes. Por defecto true"
            }
          },
          {
            "name": "DescripcionImagenes",
            "in": "query",
            "description": "Añade las descripciones a las imágenes de los inmuebles. Por defecto false",
            "schema": {
              "type": "boolean",
              "description": "Añade las descripciones a las imágenes de los inmuebles. Por defecto false"
            }
          },
          {
            "name": "IdPropietario",
            "in": "query",
            "description": "Id del propietario para filtrar inmuebles asociados",
            "schema": {
              "type": "integer",
              "description": "Id del propietario para filtrar inmuebles asociados",
              "format": "int32"
            }
          },
          {
            "name": "NumeroPagina",
            "in": "query",
            "description": "Número de página a obtener (mínimo 1).",
            "schema": {
              "type": "integer",
              "description": "Número de página a obtener (mínimo 1).",
              "format": "int32"
            }
          },
          {
            "name": "TamanoPagina",
            "in": "query",
            "description": "Número de elementos por página (máximo 100).",
            "schema": {
              "type": "integer",
              "description": "Número de elementos por página (máximo 100).",
              "format": "int32"
            }
          },
          {
            "name": "Ordenacion",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InmuebleApiCollectionPagedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inmuebles/desactivados": {
      "get": {
        "tags": [
          "Inmuebles"
        ],
        "summary": "Consulta los inmuebles no disponibles o no publicados en web",
        "description": "Devuelve una lista con los inmuebles **no disponibles** o **no publicados en web** de la agencia.\n\n**Límite:**\n - 10 peticiones por minuto\n\n\n\n**Requisitos:**\n- `inmuebles_read`",
        "parameters": [
          {
            "name": "Busqueda",
            "in": "query",
            "description": "Texto para buscar en la referencia de los inmuebles",
            "schema": {
              "type": "string",
              "description": "Texto para buscar en la referencia de los inmuebles"
            }
          },
          {
            "name": "Alias",
            "in": "query",
            "description": "Texto para buscar en el alias de los inmuebles",
            "schema": {
              "type": "string",
              "description": "Texto para buscar en el alias de los inmuebles"
            }
          },
          {
            "name": "IdGrupos",
            "in": "query",
            "description": "Grupos a los que pertenece el inmueble (puedes ver tus grupos en el endpoint GetGrupos/Inmuebles)",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Grupos a los que pertenece el inmueble (puedes ver tus grupos en el endpoint GetGrupos/Inmuebles)"
            }
          },
          {
            "name": "IdExcluyeGrupos",
            "in": "query",
            "description": "Grupos a los que no pertenece el inmueble inmuebles (puedes ver tus grupos en el endpoint GetGrupos/Inmuebles).",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Grupos a los que no pertenece el inmueble inmuebles (puedes ver tus grupos en el endpoint GetGrupos/Inmuebles)."
            }
          },
          {
            "name": "IdCuentas",
            "in": "query",
            "description": "Cuentas a las que pertenece el inmueble (puedes ver tus cuentas en el endpoint GetCuentas",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Cuentas a las que pertenece el inmueble (puedes ver tus cuentas en el endpoint GetCuentas"
            }
          },
          {
            "name": "IdExcluyeCuentas",
            "in": "query",
            "description": "Cuentas a las que no pertenece el inmueble (puedes ver tus cuentas en el endpoint GetCuentas",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "description": "Cuentas a las que no pertenece el inmueble (puedes ver tus cuentas en el endpoint GetCuentas"
            }
          },
          {
            "name": "FechaUltimaModificacion",
            "in": "query",
            "description": "Fecha de modificación web para filtrar inmuebles modificados después de esta fecha. Formato ISO 8601 (ejemplo: 2023-01-01T00:00:00Z)",
            "schema": {
              "type": "string",
              "description": "Fecha de modificación web para filtrar inmuebles modificados después de esta fecha. Formato ISO 8601 (ejemplo: 2023-01-01T00:00:00Z)"
            }
          },
          {
            "name": "PrecioVentaDesde",
            "in": "query",
            "description": "Precio mínimo para filtrar inmuebles con precio de venta mayor o igual a este valor",
            "schema": {
              "type": "number",
              "description": "Precio mínimo para filtrar inmuebles con precio de venta mayor o igual a este valor",
              "format": "double"
            }
          },
          {
            "name": "OrdenarPor",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/InmuebleSortField"
            }
          },
          {
            "name": "MarcaAguaImagenes",
            "in": "query",
            "description": "Incluye la marca de agua a las imágenes. Por defecto true",
            "schema": {
              "type": "boolean",
              "description": "Incluye la marca de agua a las imágenes. Por defecto true"
            }
          },
          {
            "name": "DescripcionImagenes",
            "in": "query",
            "description": "Añade las descripciones a las imágenes de los inmuebles. Por defecto false",
            "schema": {
              "type": "boolean",
              "description": "Añade las descripciones a las imágenes de los inmuebles. Por defecto false"
            }
          },
          {
            "name": "TiposOperacion",
            "in": "query",
            "description": "Indica la operación del inmueble",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/TipoOperacion"
              },
              "description": "Indica la operación del inmueble"
            }
          },
          {
            "name": "AlquilerVacacional",
            "in": "query",
            "description": "Filtra por inmuebles marcados como alquiler vacacional. true = solo vacacionales, false = solo no vacacionales, ausente = todos",
            "schema": {
              "type": "boolean",
              "description": "Filtra por inmuebles marcados como alquiler vacacional. true = solo vacacionales, false = solo no vacacionales, ausente = todos"
            }
          },
          {
            "name": "IdAgente",
            "in": "query",
            "description": "Indica el IdAgente, filtrando por los inmuebles en el que el agente es el responsable de Venta, Alquiler, Traspaso o Captación (puedes ver tus agentes en el endpoint GetAgentes)",
            "schema": {
              "type": "integer",
              "description": "Indica el IdAgente, filtrando por los inmuebles en el que el agente es el responsable de Venta, Alquiler, Traspaso o Captación (puedes ver tus agentes en el endpoint GetAgentes)",
              "format": "int32"
            }
          },
          {
            "name": "IdPropietario",
            "in": "query",
            "description": "Id del propietario para filtrar inmuebles asociados",
            "schema": {
              "type": "integer",
              "description": "Id del propietario para filtrar inmuebles asociados",
              "format": "int32"
            }
          },
          {
            "name": "NumeroPagina",
            "in": "query",
            "description": "Número de página a obtener (mínimo 1).",
            "schema": {
              "type": "integer",
              "description": "Número de página a obtener (mínimo 1).",
              "format": "int32"
            }
          },
          {
            "name": "TamanoPagina",
            "in": "query",
            "description": "Número de elementos por página (máximo 100).",
            "schema": {
              "type": "integer",
              "description": "Número de elementos por página (máximo 100).",
              "format": "int32"
            }
          },
          {
            "name": "Ordenacion",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InmuebleApiCollectionPagedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inmuebles/{referencia}/propietarios": {
      "get": {
        "tags": [
          "Inmuebles"
        ],
        "summary": "Consulta los propietarios de un inmueble",
        "description": "Devuelve los propietarios de un inmueble.\n\n\n\n**Requisitos:**\n- `propietarios_read`",
        "parameters": [
          {
            "name": "referencia",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClienteResponseApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inmuebles/{referencia}/documentos": {
      "get": {
        "tags": [
          "Inmuebles"
        ],
        "summary": "Consulta los documentos de un inmueble",
        "description": "Devuelve los documentos asociados a un inmueble de la agencia.\n\n\n\n**Requisitos:**\n- `inmuebles_read`\n- `documentos_read`",
        "parameters": [
          {
            "name": "referencia",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentoEntityApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inmuebles/{referencia}/documentos/{idDocumento}/descargar": {
      "get": {
        "tags": [
          "Inmuebles"
        ],
        "summary": "Descarga un documento de un inmueble",
        "description": "Descarga un documento asociado a un inmueble de la agencia.\n\n**Notas:**\n- Si el documento tiene varios archivos se descargará un **.zip**\n\n\n\n**Requisitos:**\n- `inmuebles_read`\n- `documentos_read`",
        "parameters": [
          {
            "name": "referencia",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "idDocumento",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentoEntityApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/inmuebles/{referencia}/llavero": {
      "get": {
        "tags": [
          "Inmuebles"
        ],
        "summary": "Consulta el llavero de un inmueble",
        "description": "Devuelve el llavero asociado a un inmueble de la agencia a partir de su **referencia**.\n\n\n\n**Requisitos:**\n- `llaveros_read`",
        "parameters": [
          {
            "name": "referencia",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LlaveroResponseApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/promociones": {
      "get": {
        "tags": [
          "Promociones"
        ],
        "summary": "Consulta una lista de promociones",
        "description": "Devuelve las promociones de la agencia aplicando los filtros indicados.\n\n**Límite:**\n - 10 peticiones por minuto\n\n\n\n**Requisitos:**\n- `promociones_read`",
        "parameters": [
          {
            "name": "OrdenarPor",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/PromocionSortField"
            }
          },
          {
            "name": "MarcaAguaImagenes",
            "in": "query",
            "description": "Incluye la marca de agua a las imágenes. Por defecto true",
            "schema": {
              "type": "boolean",
              "description": "Incluye la marca de agua a las imágenes. Por defecto true"
            }
          },
          {
            "name": "DescripcionImagenes",
            "in": "query",
            "description": "Añade las descripciones a las imágenes de las promociones. Por defecto false",
            "schema": {
              "type": "boolean",
              "description": "Añade las descripciones a las imágenes de las promociones. Por defecto false"
            }
          },
          {
            "name": "NumeroPagina",
            "in": "query",
            "description": "Número de página a obtener (mínimo 1).",
            "schema": {
              "type": "integer",
              "description": "Número de página a obtener (mínimo 1).",
              "format": "int32"
            }
          },
          {
            "name": "TamanoPagina",
            "in": "query",
            "description": "Número de elementos por página (máximo 100).",
            "schema": {
              "type": "integer",
              "description": "Número de elementos por página (máximo 100).",
              "format": "int32"
            }
          },
          {
            "name": "Ordenacion",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromocionApiCollectionPagedResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/solicitudes": {
      "get": {
        "tags": [
          "Solicitudes"
        ],
        "summary": "Consulta una lista de solicitudes",
        "description": "Devuelve las solicitudes de la agencia aplicando los filtros indicados.\n\n\n\n**Requisitos:**\n- `solicitudes_read`",
        "parameters": [
          {
            "name": "FechaDesde",
            "in": "query",
            "description": "Fecha mínima (inclusive) desde la que traer registros. (YYYY-MM-DD HH:MM:SS)",
            "schema": {
              "type": "string",
              "description": "Fecha mínima (inclusive) desde la que traer registros. (YYYY-MM-DD HH:MM:SS)",
              "format": "date-time"
            }
          },
          {
            "name": "FechaHasta",
            "in": "query",
            "description": "Fecha máxima (inclusive) hasta la que traer registros. (YYYY-MM-DD HH:MM:SS)",
            "schema": {
              "type": "string",
              "description": "Fecha máxima (inclusive) hasta la que traer registros. (YYYY-MM-DD HH:MM:SS)",
              "format": "date-time"
            }
          },
          {
            "name": "Estado",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SolicitudEstado"
            }
          },
          {
            "name": "IdAgente",
            "in": "query",
            "description": "Identificador del agente asignado a la solicitud. Si se indica, solo se devuelven las solicitudes asignadas a ese agente.",
            "schema": {
              "type": "integer",
              "description": "Identificador del agente asignado a la solicitud. Si se indica, solo se devuelven las solicitudes asignadas a ese agente.",
              "format": "int32"
            }
          },
          {
            "name": "OrdenarPor",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SolicitudSortField"
            }
          },
          {
            "name": "NumeroPagina",
            "in": "query",
            "description": "Número de página a obtener (mínimo 1).",
            "schema": {
              "type": "integer",
              "description": "Número de página a obtener (mínimo 1).",
              "format": "int32"
            }
          },
          {
            "name": "TamanoPagina",
            "in": "query",
            "description": "Número de elementos por página (máximo 100).",
            "schema": {
              "type": "integer",
              "description": "Número de elementos por página (máximo 100).",
              "format": "int32"
            }
          },
          {
            "name": "Ordenacion",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SolicitudResponseApiCollectionPagedResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Solicitudes"
        ],
        "summary": "Crea una solicitud",
        "description": "Crea una solicitud en la agencia con la información enviada y devuelve su información.\n\n**Notas:**\n- Debe indicarse un `email` o un `telefono` (al menos uno de los dos).\n- La respuesta **200** devuelve la solicitud creada, incluida su `referencia`, que es el identificador a usar en las consultas posteriores (`GET /solicitudes/{referencia}`).\n- La creación es visible de forma inmediata mediante GET (consistencia de lectura tras escritura).\n- Puede crearse sin inmueble; para vincular inmuebles se envía la lista `inmuebles` con sus referencias.\n- Para vincular una promoción se envía `promocion` con su referencia (la referencia de la promoción, no su id interno).\n- Para vincular un cliente se envía `referenciaCliente` (la referencia del cliente, no su id interno).\n- `idioma` indica el idioma en el que se responde al solicitante (email de cortesía). Si no se indica, se usa el del cliente vinculado y, si tampoco lo hay, el español.\n- Los errores de validación devuelven **400** con el detalle por campo.\n- No se aplica deduplicación: dos peticiones idénticas crean dos solicitudes distintas.\n\n\n\n**Requisitos:**\n- `solicitudes_create`",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudCrearRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudCrearRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudCrearRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudCrearRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SolicitudResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/solicitudes/{referencia}": {
      "get": {
        "tags": [
          "Solicitudes"
        ],
        "summary": "Consulta una solicitud",
        "description": "Devuelve una solicitud existente en la agencia a partir de la **referencia** indicada.\n\n\n\n**Requisitos:**\n- `solicitudes_read`",
        "parameters": [
          {
            "name": "referencia",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SolicitudResponseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Solicitudes"
        ],
        "summary": "Actualiza una solicitud",
        "description": "Actualiza una solicitud existente en la agencia a partir de su **referencia** con la información enviada y devuelve su información.\n\n\n\n**Requisitos:**\n- `solicitudes_update`",
        "parameters": [
          {
            "name": "referencia",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudCrearRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudCrearRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudCrearRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudCrearRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SolicitudResponseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Solicitudes"
        ],
        "summary": "Elimina una solicitud",
        "description": "Elimina una solicitud existente en la agencia a partir de su **referencia**.\n\n\n\n**Requisitos:**\n- `solicitudes_delete`",
        "parameters": [
          {
            "name": "referencia",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/status": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Consulta el estado de la API",
        "description": "Devuelve el estado de la API\n\n",
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v1/tareas": {
      "get": {
        "tags": [
          "Tareas"
        ],
        "summary": "Consulta una lista de tareas",
        "description": "Devuelve las tareas de la agencia aplicando los filtros indicados.\n\n\n\n**Requisitos:**\n- `tareas_read`",
        "parameters": [
          {
            "name": "FechaDesde",
            "in": "query",
            "description": "Fecha mínima (inclusive) desde la que traer registros de tareas. (YYYY-MM-DD HH:MM:SS)",
            "schema": {
              "type": "string",
              "description": "Fecha mínima (inclusive) desde la que traer registros de tareas. (YYYY-MM-DD HH:MM:SS)",
              "format": "date-time"
            }
          },
          {
            "name": "FechaHasta",
            "in": "query",
            "description": "Fecha máxima (inclusive) hasta la que traer registros de tareas. (YYYY-MM-DD HH:MM:SS)",
            "schema": {
              "type": "string",
              "description": "Fecha máxima (inclusive) hasta la que traer registros de tareas. (YYYY-MM-DD HH:MM:SS)",
              "format": "date-time"
            }
          },
          {
            "name": "Busqueda",
            "in": "query",
            "description": "Texto de búsqueda que se aplicará al asunto y al comentario",
            "schema": {
              "type": "string",
              "description": "Texto de búsqueda que se aplicará al asunto y al comentario"
            }
          },
          {
            "name": "OrdenarPor",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/TareaSortField"
            }
          },
          {
            "name": "IdAgente",
            "in": "query",
            "description": "Obtener las tareas de un agente concreto. Puedes ver el listado de agentes en el endpoint GetAgentes",
            "schema": {
              "type": "integer",
              "description": "Obtener las tareas de un agente concreto. Puedes ver el listado de agentes en el endpoint GetAgentes",
              "format": "int32"
            }
          },
          {
            "name": "IdTipo",
            "in": "query",
            "description": "Obtener las tareas de un tipo concreto. Puedes ver el listado de tipos en el endpoint GetTiposTarea",
            "schema": {
              "type": "integer",
              "description": "Obtener las tareas de un tipo concreto. Puedes ver el listado de tipos en el endpoint GetTiposTarea",
              "format": "int32"
            }
          },
          {
            "name": "IdEstadoTarea",
            "in": "query",
            "description": "Filtrar por el estado de una tarea. Puedes ver el listado de estados en el endpoint GetEstadosTarea",
            "schema": {
              "type": "integer",
              "description": "Filtrar por el estado de una tarea. Puedes ver el listado de estados en el endpoint GetEstadosTarea",
              "format": "int32"
            }
          },
          {
            "name": "NumeroPagina",
            "in": "query",
            "description": "Número de página a obtener (mínimo 1).",
            "schema": {
              "type": "integer",
              "description": "Número de página a obtener (mínimo 1).",
              "format": "int32"
            }
          },
          {
            "name": "TamanoPagina",
            "in": "query",
            "description": "Número de elementos por página (máximo 100).",
            "schema": {
              "type": "integer",
              "description": "Número de elementos por página (máximo 100).",
              "format": "int32"
            }
          },
          {
            "name": "Ordenacion",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TareaResponseApiCollectionPagedResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Tareas"
        ],
        "summary": "Crea una tarea",
        "description": "Crea una tarea en la agencia con la información enviada y devuelve su información.\n\n\n\n**Requisitos:**\n- `tareas_create`",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TareaCrearRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TareaCrearRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TareaCrearRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TareaCrearRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TareaResponseApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tareas/{idTarea}": {
      "get": {
        "tags": [
          "Tareas"
        ],
        "summary": "Consulta una tarea",
        "description": "Devuelve una tarea existente de la agencia a partir del **id** indicado.\n\n\n\n**Requisitos:**\n- `tareas_read`",
        "parameters": [
          {
            "name": "idTarea",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TareaResponseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Tareas"
        ],
        "summary": "Actualiza una tarea",
        "description": "Actualiza una tarea existente de la agencia a partir de su **id** y devuelve su información.\n\n\n\n**Requisitos:**\n- `tareas_update`",
        "parameters": [
          {
            "name": "idTarea",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TareaCrearRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TareaCrearRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TareaCrearRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TareaCrearRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TareaResponseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Tareas"
        ],
        "summary": "Elimina una tarea",
        "description": "Elimina una tarea existente de la agencia a partir de su **id**.\n\n\n\n**Requisitos:**\n- `tareas_delete`",
        "parameters": [
          {
            "name": "idTarea",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "tipoBorradoRecurrente",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/TipoBorradoRecurrente"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tareas/estados": {
      "get": {
        "tags": [
          "Tareas"
        ],
        "summary": "Consulta los estados de tareas",
        "description": "Devuelve los estados de tareas disponibles de la agencia.\n\n\n\n**Requisitos:**\n- `estadosevento_read`",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstadoEventoResponseApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tareas/tipos": {
      "get": {
        "tags": [
          "Tareas"
        ],
        "summary": "Consulta los tipos de tareas",
        "description": "Devuelve los tipos de tareas disponibles de la agencia.\n\n\n\n**Requisitos:**\n- `tipostareas_read`",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TipoTareaResponseApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/textoslegales": {
      "get": {
        "tags": [
          "TextosLegales"
        ],
        "summary": "Consulta una lista de textos legales",
        "description": "Devuelve los textos legales de la agencia con su contenido en cada idioma.\n\n**Notas:**\n- El identificador devuelto en `idTextoLegal` es el que se expone en el campo `idTextoLegal` de los inmuebles.\n- Los idiomas sin contenido se devuelven vacíos.\n\n\n\n**Requisitos:**\n- `textoslegales_read`",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TextoLegalResponseApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/token": {
      "post": {
        "tags": [
          "Token"
        ],
        "summary": "Solicita un token de acceso",
        "description": "Devuelve un token de acceso a la API mediante el flujo OAuth2 `client_credentials`. La respuesta contiene los campos `access_token`, `token_type` (siempre \"Bearer\") y `expires_in` (segundos de validez). El token no es renovable: una vez expirado debe solicitarse uno nuevo a este mismo endpoint. Errores posibles: 400 si falta el cuerpo, el `grant_type` no es `client_credentials` o faltan `client_id`/`client_secret`; 401 si las credenciales no son válidas.",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "grant_type": {
                    "type": "string",
                    "default": "client_credentials"
                  },
                  "client_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "client_secret": {
                    "type": "string"
                  }
                }
              },
              "encoding": {
                "grant_type": {
                  "style": "form"
                },
                "client_id": {
                  "style": "form"
                },
                "client_secret": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessToken"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/visitas": {
      "get": {
        "tags": [
          "Visitas"
        ],
        "summary": "Consulta una lista de visitas",
        "description": "Devuelve las visitas de la agencia aplicando los filtros indicados.\n\n\n\n**Requisitos:**\n- `visitas_read`",
        "parameters": [
          {
            "name": "FechaDesde",
            "in": "query",
            "description": "Fecha mínima (inclusive) desde la que traer registros de tareas. (YYYY-MM-DD HH:MM:SS)",
            "schema": {
              "type": "string",
              "description": "Fecha mínima (inclusive) desde la que traer registros de tareas. (YYYY-MM-DD HH:MM:SS)",
              "format": "date-time"
            }
          },
          {
            "name": "FechaHasta",
            "in": "query",
            "description": "Fecha máxima (inclusive) hasta la que traer registros de tareas. (YYYY-MM-DD HH:MM:SS)",
            "schema": {
              "type": "string",
              "description": "Fecha máxima (inclusive) hasta la que traer registros de tareas. (YYYY-MM-DD HH:MM:SS)",
              "format": "date-time"
            }
          },
          {
            "name": "Busqueda",
            "in": "query",
            "description": "Texto de búsqueda que se aplicará al lugar",
            "schema": {
              "type": "string",
              "description": "Texto de búsqueda que se aplicará al lugar"
            }
          },
          {
            "name": "OrdenarPor",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/VisitaSortField"
            }
          },
          {
            "name": "IdAgente",
            "in": "query",
            "description": "Obtener las visitas de un agente concreto. Puedes ver el listado de agentes en el endpoint GetAgentes",
            "schema": {
              "type": "integer",
              "description": "Obtener las visitas de un agente concreto. Puedes ver el listado de agentes en el endpoint GetAgentes",
              "format": "int32"
            }
          },
          {
            "name": "IdTipo",
            "in": "query",
            "description": "Obtener las visitas de un tipo concreto. Puedes ver el listado de tipos en el endpoint GetTiposVisitas",
            "schema": {
              "type": "integer",
              "description": "Obtener las visitas de un tipo concreto. Puedes ver el listado de tipos en el endpoint GetTiposVisitas",
              "format": "int32"
            }
          },
          {
            "name": "IdEstadoVisita",
            "in": "query",
            "description": "Filtrar por el estado de una visita. Puedes ver el listado de estados en el endpoint GetEstadosVisita",
            "schema": {
              "type": "integer",
              "description": "Filtrar por el estado de una visita. Puedes ver el listado de estados en el endpoint GetEstadosVisita",
              "format": "int32"
            }
          },
          {
            "name": "NumeroPagina",
            "in": "query",
            "description": "Número de página a obtener (mínimo 1).",
            "schema": {
              "type": "integer",
              "description": "Número de página a obtener (mínimo 1).",
              "format": "int32"
            }
          },
          {
            "name": "TamanoPagina",
            "in": "query",
            "description": "Número de elementos por página (máximo 100).",
            "schema": {
              "type": "integer",
              "description": "Número de elementos por página (máximo 100).",
              "format": "int32"
            }
          },
          {
            "name": "Ordenacion",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/SortDirection"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitaResponseApiCollectionPagedResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Visitas"
        ],
        "summary": "Crea una visita",
        "description": "Crea una visita en la agencia con la información enviada y devuelve su información.\n\n\n\n**Requisitos:**\n- `visitas_create`",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/VisitaCrearRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VisitaCrearRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VisitaCrearRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VisitaCrearRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitaResponseApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/visitas/{idVisita}": {
      "get": {
        "tags": [
          "Visitas"
        ],
        "summary": "Consulta una visita",
        "description": "Devuelve una visita existente de la agencia a partir del **id** indicado.\n\n\n\n**Requisitos:**\n- `visitas_read`",
        "parameters": [
          {
            "name": "idVisita",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitaResponseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Visitas"
        ],
        "summary": "Actualiza una visita",
        "description": "Actualiza una visita existente de la agencia a partir del **id** indicado y devuelve la información.\n\n\n\n**Requisitos:**\n- `visitas_update`",
        "parameters": [
          {
            "name": "idVisita",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/VisitaCrearRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VisitaCrearRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VisitaCrearRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VisitaCrearRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitaResponseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Visitas"
        ],
        "summary": "Elimina una visita",
        "description": "Elimina una visita existente de la agencia a partir de su **id**.\n\n\n\n**Requisitos:**\n- `visitas_delete`",
        "parameters": [
          {
            "name": "idVisita",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/visitas/tipos": {
      "get": {
        "tags": [
          "Visitas"
        ],
        "summary": "Consulta los tipos de visitas",
        "description": "Devuelve los tipos de visitas disponibles de la agencia.\n\n\n\n**Requisitos:**\n- `tiposvisitas_read`",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TipoVisitaResponseApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/visitas/estados": {
      "get": {
        "tags": [
          "Visitas"
        ],
        "summary": "Consulta los estados de visitas",
        "description": "Devuelve los estados de visitas disponibles de la agencia.\n\n\n\n**Requisitos:**\n- `estadosevento_read`",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstadoEventoResponseApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/visitas/interesmostrado": {
      "get": {
        "tags": [
          "Visitas"
        ],
        "summary": "Consulta una lista de los tipos de interés mostrado",
        "description": "Mediante esta lista, puedes determinar el nivel de interés mostrado por un cliente sobre la adquisición de un inmueble.\n\n\n\n**Requisitos:**\n- `interesmostrado_read`",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InteresMostradoVisitaApiCollectionResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccessToken": {
        "type": "object",
        "properties": {
          "access_token": {
            "type": "string",
            "description": "Token de acceso JWT que debe enviarse en la cabecera Authorization como \"Bearer {access_token}\".",
            "nullable": true
          },
          "token_type": {
            "type": "string",
            "description": "Tipo de token. Siempre \"Bearer\".",
            "nullable": true
          },
          "expires_in": {
            "type": "integer",
            "description": "Segundos de validez del token desde su emisión. Expirado el token, debe solicitarse uno nuevo al mismo endpoint.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Represents an access token."
      },
      "AgenteResponse": {
        "type": "object",
        "properties": {
          "idAgente": {
            "type": "integer",
            "format": "int32"
          },
          "nombreUsuario": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AgenteResponseApiCollectionPagedResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgenteResponse"
            },
            "nullable": true
          },
          "totalElementos": {
            "type": "integer",
            "format": "int32"
          },
          "pagina": {
            "type": "integer",
            "format": "int32"
          },
          "tamanoPagina": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "AgenteResponseApiResponse": {
        "type": "object",
        "properties": {
          "datos": {
            "$ref": "#/components/schemas/AgenteResponse"
          }
        },
        "additionalProperties": false
      },
      "AgentesSortField": {
        "enum": [
          "IdAgente",
          "NombreUsuario",
          "Email"
        ],
        "type": "string"
      },
      "Calefaccion": {
        "type": "object",
        "properties": {
          "tipoCalefaccion": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionEn": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionDe": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionFr": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionIt": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionCa": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionPt": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionGl": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionSv": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionRu": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionNl": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionNo": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionEu": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionUk": {
            "type": "string",
            "nullable": true
          },
          "tipoCalefaccionPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CalificacionEmisiones": {
        "type": "object",
        "properties": {
          "calificacion": {
            "type": "string",
            "nullable": true
          },
          "calificacionEn": {
            "type": "string",
            "nullable": true
          },
          "calificacionDe": {
            "type": "string",
            "nullable": true
          },
          "calificacionFr": {
            "type": "string",
            "nullable": true
          },
          "calificacionIt": {
            "type": "string",
            "nullable": true
          },
          "calificacionCa": {
            "type": "string",
            "nullable": true
          },
          "calificacionPt": {
            "type": "string",
            "nullable": true
          },
          "calificacionGl": {
            "type": "string",
            "nullable": true
          },
          "calificacionSv": {
            "type": "string",
            "nullable": true
          },
          "calificacionRu": {
            "type": "string",
            "nullable": true
          },
          "calificacionNl": {
            "type": "string",
            "nullable": true
          },
          "calificacionNo": {
            "type": "string",
            "nullable": true
          },
          "calificacionEu": {
            "type": "string",
            "nullable": true
          },
          "calificacionUk": {
            "type": "string",
            "nullable": true
          },
          "calificacionPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CalificacionEnergetica": {
        "type": "object",
        "properties": {
          "calificacion": {
            "type": "string",
            "nullable": true
          },
          "calificacionEn": {
            "type": "string",
            "nullable": true
          },
          "calificacionDe": {
            "type": "string",
            "nullable": true
          },
          "calificacionFr": {
            "type": "string",
            "nullable": true
          },
          "calificacionIt": {
            "type": "string",
            "nullable": true
          },
          "calificacionCa": {
            "type": "string",
            "nullable": true
          },
          "calificacionPt": {
            "type": "string",
            "nullable": true
          },
          "calificacionGl": {
            "type": "string",
            "nullable": true
          },
          "calificacionSv": {
            "type": "string",
            "nullable": true
          },
          "calificacionRu": {
            "type": "string",
            "nullable": true
          },
          "calificacionNl": {
            "type": "string",
            "nullable": true
          },
          "calificacionNo": {
            "type": "string",
            "nullable": true
          },
          "calificacionEu": {
            "type": "string",
            "nullable": true
          },
          "calificacionUk": {
            "type": "string",
            "nullable": true
          },
          "calificacionPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CampanaResponse": {
        "type": "object",
        "properties": {
          "idCampana": {
            "type": "integer",
            "format": "int32"
          },
          "nombre": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CampanaResponseApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CampanaResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Caracteristicas": {
        "type": "object",
        "properties": {
          "metrosConstruidos": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "metrosUtiles": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "metrosJardin": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "metrosParcela": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "metrosConstruidosEscrituras": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "metrosTerrazas": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "metrosParking": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "metrosGaraje": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "metrosPorches": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "metrosFachada": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "metrosFachadaSecundaria": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "jardin": {
            "type": "boolean",
            "nullable": true
          },
          "habitaciones": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "habitacionesServicio": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "buhardilla": {
            "type": "boolean",
            "nullable": true
          },
          "banos": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "aseos": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "plazasParking": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "plazasGaraje": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "trastero": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "amueblado": {
            "type": "boolean",
            "nullable": true
          },
          "piscinaComunitaria": {
            "type": "boolean",
            "nullable": true
          },
          "piscinaPrivada": {
            "type": "boolean",
            "nullable": true
          },
          "cocina": {
            "type": "boolean",
            "nullable": true
          },
          "cocinaAmueblada": {
            "type": "boolean",
            "nullable": true
          },
          "armarios": {
            "type": "boolean",
            "nullable": true
          },
          "idTipoSuelo": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "gas": {
            "type": "boolean",
            "nullable": true
          },
          "luz": {
            "type": "boolean",
            "nullable": true
          },
          "agua": {
            "type": "boolean",
            "nullable": true
          },
          "telefono": {
            "type": "boolean",
            "nullable": true
          },
          "aireAcondicionado": {
            "type": "boolean",
            "nullable": true
          },
          "chimenea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idTipoCalefaccion": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ascensor": {
            "type": "boolean",
            "nullable": true
          },
          "soleado": {
            "type": "string",
            "nullable": true
          },
          "interior": {
            "type": "boolean",
            "nullable": true
          },
          "exterior": {
            "type": "boolean",
            "nullable": true
          },
          "idCarpinteriaExterior": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idCarpinteriaInterior": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "asfaltado": {
            "type": "boolean",
            "nullable": true
          },
          "alumbrado": {
            "type": "boolean",
            "nullable": true
          },
          "urbanizado": {
            "type": "boolean",
            "nullable": true
          },
          "alarmaInterior": {
            "type": "boolean",
            "nullable": true
          },
          "alarmaPerimetral": {
            "type": "boolean",
            "nullable": true
          },
          "puertaBlindada": {
            "type": "boolean",
            "nullable": true
          },
          "vigilancia": {
            "type": "boolean",
            "nullable": true
          },
          "cajaFuerte": {
            "type": "boolean",
            "nullable": true
          },
          "rejasEnVentanas": {
            "type": "boolean",
            "nullable": true
          },
          "adaptado": {
            "type": "boolean",
            "nullable": true
          },
          "accesoMinusvalidos": {
            "type": "boolean",
            "nullable": true
          },
          "alturaTecho": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "divisiones": {
            "type": "boolean",
            "nullable": true
          },
          "escaparate": {
            "type": "boolean",
            "nullable": true
          },
          "plantaBaja": {
            "type": "boolean",
            "nullable": true
          },
          "altillo": {
            "type": "boolean",
            "nullable": true
          },
          "internet": {
            "type": "boolean",
            "nullable": true
          },
          "salidaHumos": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "sistemaAntiincendios": {
            "type": "boolean",
            "nullable": true
          },
          "comedor": {
            "type": "boolean",
            "nullable": true
          },
          "patio": {
            "type": "boolean",
            "nullable": true
          },
          "vestuarios": {
            "type": "boolean",
            "nullable": true
          },
          "muelleCarga": {
            "type": "boolean",
            "nullable": true
          },
          "puenteGrua": {
            "type": "boolean",
            "nullable": true
          },
          "camaraFrigorifica": {
            "type": "boolean",
            "nullable": true
          },
          "bascula": {
            "type": "boolean",
            "nullable": true
          },
          "cubierta": {
            "type": "boolean",
            "nullable": true
          },
          "intranet": {
            "type": "boolean",
            "nullable": true
          },
          "salidaEmergencia": {
            "type": "boolean",
            "nullable": true
          },
          "vallado": {
            "type": "boolean",
            "nullable": true
          },
          "porches": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "gastosComunidad": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "orientacion": {
            "type": "string",
            "nullable": true
          },
          "idEstado": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idCalificacionEnergetica": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idConservacion": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "cerrado": {
            "type": "boolean",
            "nullable": true
          },
          "salaDescanso": {
            "type": "boolean",
            "nullable": true
          },
          "pozo": {
            "type": "boolean",
            "nullable": true
          },
          "zonasComunes": {
            "type": "boolean",
            "nullable": true
          },
          "enBasto": {
            "type": "boolean",
            "nullable": true
          },
          "zonasVerdes": {
            "type": "boolean",
            "nullable": true
          },
          "zonaInfantil": {
            "type": "boolean",
            "nullable": true
          },
          "gimnasio": {
            "type": "boolean",
            "nullable": true
          },
          "padel": {
            "type": "boolean",
            "nullable": true
          },
          "bodega": {
            "type": "boolean",
            "nullable": true
          },
          "pistaMultiusos": {
            "type": "boolean",
            "nullable": true
          },
          "salaComunitaria": {
            "type": "boolean",
            "nullable": true
          },
          "actividadAnterior": {
            "type": "string",
            "nullable": true
          },
          "idTipoCalificacionSuelo": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "zonaComercial": {
            "type": "boolean",
            "nullable": true
          },
          "numeroOficinas": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "tieneOficinas": {
            "type": "boolean",
            "nullable": true
          },
          "terrazas": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "terrazaTendedero": {
            "type": "boolean",
            "nullable": true
          },
          "numPlantas": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "barbacoa": {
            "type": "boolean",
            "nullable": true
          },
          "solarium": {
            "type": "boolean",
            "nullable": true
          },
          "lavadero": {
            "type": "boolean",
            "nullable": true
          },
          "operadoresZona": {
            "type": "string",
            "nullable": true
          },
          "ultimaActividad": {
            "type": "string",
            "nullable": true
          },
          "enEsquina": {
            "type": "boolean",
            "nullable": true
          },
          "idUsoInmueble": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "despachos": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "salasReunion": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "montacargas": {
            "type": "boolean",
            "nullable": true
          },
          "tratamientoIgnifugo": {
            "type": "boolean",
            "nullable": true
          },
          "vado": {
            "type": "boolean",
            "nullable": true
          },
          "entradas": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "entradasTIR": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "acometidas": {
            "type": "boolean",
            "nullable": true
          },
          "gruaMontacargas": {
            "type": "boolean",
            "nullable": true
          },
          "primeraLineaPlaya": {
            "type": "boolean",
            "nullable": true
          },
          "segundaLineaPlaya": {
            "type": "boolean",
            "nullable": true
          },
          "precioGarajeIncluido": {
            "type": "boolean",
            "nullable": true
          },
          "almacen": {
            "type": "boolean",
            "nullable": true
          },
          "admiteMascotas": {
            "type": "boolean",
            "nullable": true
          },
          "consumo": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "emisiones": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "conserje": {
            "type": "boolean",
            "nullable": true
          },
          "vigilanciaAcceso": {
            "type": "boolean",
            "nullable": true
          },
          "idEmisiones": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "lavavajillas": {
            "type": "boolean",
            "nullable": true
          },
          "metrosEdificables": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "pistaTenis": {
            "type": "boolean",
            "nullable": true
          },
          "ibi": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "basuras": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "alturaPlanta": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "numPlantasEdificio": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "numViviendasEdificio": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "numLocalesEdificio": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "habitacionPlantaBaja": {
            "type": "boolean",
            "nullable": true
          },
          "superficieOcupacion": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "repercusionMetros": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "alturaMaxAlero": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "alturaMaxCornisa": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "retranqueoFrontal": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "retranqueoLinderos": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "tributacionIva": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "tributacionItp": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "computaSotano": {
            "type": "boolean",
            "nullable": true
          },
          "inspeccionIte": {
            "type": "boolean",
            "nullable": true
          },
          "indiceEdificabilidad": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "cabrete": {
            "type": "boolean",
            "nullable": true
          },
          "puertaAntiOkupa": {
            "type": "boolean",
            "nullable": true
          },
          "insonorizado": {
            "type": "boolean",
            "nullable": true
          },
          "superficiePlantaBaja": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "videoVigilancia": {
            "type": "boolean",
            "nullable": true
          },
          "cedulaHabitabilidad": {
            "type": "string",
            "nullable": true
          },
          "puntoRecarga": {
            "type": "boolean",
            "nullable": true
          },
          "metrosOficinas": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "aforo": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "capacidad": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idTipoLicencia": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "anosTraspasoMinimo": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "numeroEntradas": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "numeroEscaparates": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "alturaMaxEdificable": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "panelSolar": {
            "type": "boolean",
            "nullable": true
          },
          "aislada": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ClientApplication": {
        "type": "object",
        "properties": {
          "idClientApplication": {
            "type": "string",
            "format": "uuid"
          },
          "nombre": {
            "type": "string",
            "nullable": true
          },
          "scopes": {
            "$ref": "#/components/schemas/JToken"
          }
        },
        "additionalProperties": false
      },
      "ClienteCrearRequest": {
        "required": [
          "idAgente",
          "nombre"
        ],
        "type": "object",
        "properties": {
          "dni": {
            "type": "string",
            "description": "Dni del cliente",
            "nullable": true
          },
          "nombre": {
            "type": "string",
            "description": "Nombre completo del cliente",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Correo electrónico del cliente",
            "nullable": true
          },
          "alias": {
            "type": "string",
            "description": "Alias del cliente",
            "nullable": true
          },
          "direccion": {
            "type": "string",
            "description": "Dirección del cliente",
            "nullable": true
          },
          "codigoPostal": {
            "type": "string",
            "description": "Código postal del cliente",
            "nullable": true
          },
          "urlWeb": {
            "type": "string",
            "description": "URL de la web del cliente",
            "nullable": true
          },
          "observaciones": {
            "type": "string",
            "description": "Observaciones del cliente",
            "nullable": true
          },
          "telefonoMovil": {
            "type": "string",
            "description": "Teléfono móvil 1 del cliente",
            "nullable": true
          },
          "telefono2": {
            "type": "string",
            "description": "Teléfono 2 del cliente",
            "nullable": true
          },
          "telefono3": {
            "type": "string",
            "description": "Teléfono 3 del cliente",
            "nullable": true
          },
          "idAgente": {
            "type": "integer",
            "description": "Id del agente que hace la petición",
            "format": "int32"
          },
          "estadoCivil": {
            "$ref": "#/components/schemas/EstadoCivil"
          },
          "recibirAlertasEmail": {
            "type": "boolean",
            "description": "Recibir alertas de email automáticas",
            "nullable": true
          },
          "recibirEmailManuales": {
            "type": "boolean",
            "description": "Recibir alertas de email manuales",
            "nullable": true
          },
          "tipoPropietario": {
            "type": "boolean",
            "description": "Es propietario",
            "nullable": true
          },
          "tipoDemandante": {
            "type": "boolean",
            "description": "Es demandante",
            "nullable": true
          },
          "tipoCliente": {
            "type": "boolean",
            "description": "Es cliente",
            "nullable": true
          },
          "tipoNewsletter": {
            "type": "boolean",
            "description": "Es newsletter",
            "nullable": true
          },
          "idCampana": {
            "type": "integer",
            "description": "Id de la campaña",
            "format": "int32",
            "nullable": true
          },
          "grupos": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Lista de Ids de grupos para vincular al cliente",
            "nullable": true
          },
          "cuentas": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Lista de Ids de cuentas para vincular al cliente",
            "nullable": true
          },
          "idsAgentesSincronizar": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Lista de Ids de agentes para sincronizar el cliente con Google Contact",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ClienteResponse": {
        "type": "object",
        "properties": {
          "idCliente": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "referencia": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "dni": {
            "type": "string",
            "nullable": true
          },
          "nombre": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "alias": {
            "type": "string",
            "nullable": true
          },
          "direccion": {
            "type": "string",
            "nullable": true
          },
          "codigoPostal": {
            "type": "string",
            "nullable": true
          },
          "urlWeb": {
            "type": "string",
            "nullable": true
          },
          "observaciones": {
            "type": "string",
            "nullable": true
          },
          "telefonoMovil": {
            "type": "string",
            "nullable": true
          },
          "telefono2": {
            "type": "string",
            "nullable": true
          },
          "telefono3": {
            "type": "string",
            "nullable": true
          },
          "estadoCivil": {
            "$ref": "#/components/schemas/EstadoCivil"
          },
          "idiomaComunicacion": {
            "type": "string",
            "nullable": true
          },
          "idAgenteCrea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idAgenteModifica": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "recibirAlertasEmail": {
            "type": "boolean",
            "nullable": true
          },
          "recibirEmailManuales": {
            "type": "boolean",
            "nullable": true
          },
          "propietario": {
            "type": "boolean",
            "nullable": true
          },
          "demandante": {
            "type": "boolean",
            "nullable": true
          },
          "tipoCliente": {
            "type": "boolean",
            "nullable": true
          },
          "tipoNewsletter": {
            "type": "boolean",
            "nullable": true
          },
          "idCampana": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fechaUltimoContacto": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fechaAlta": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "grupos": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "cuentas": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ClienteResponseApiCollectionPagedResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClienteResponse"
            },
            "nullable": true
          },
          "totalElementos": {
            "type": "integer",
            "format": "int32"
          },
          "pagina": {
            "type": "integer",
            "format": "int32"
          },
          "tamanoPagina": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ClienteResponseApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClienteResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ClienteResponseApiResponse": {
        "type": "object",
        "properties": {
          "datos": {
            "$ref": "#/components/schemas/ClienteResponse"
          }
        },
        "additionalProperties": false
      },
      "ClienteSortField": {
        "enum": [
          "FechaAlta",
          "NombreUsuario",
          "FechaUltimoContacto",
          "Referencia"
        ],
        "type": "string"
      },
      "ConservacionInmueble": {
        "type": "object",
        "properties": {
          "conservacion": {
            "type": "string",
            "nullable": true
          },
          "conservacionEn": {
            "type": "string",
            "nullable": true
          },
          "conservacionDe": {
            "type": "string",
            "nullable": true
          },
          "conservacionFr": {
            "type": "string",
            "nullable": true
          },
          "conservacionIt": {
            "type": "string",
            "nullable": true
          },
          "conservacionCa": {
            "type": "string",
            "nullable": true
          },
          "conservacionPt": {
            "type": "string",
            "nullable": true
          },
          "conservacionGl": {
            "type": "string",
            "nullable": true
          },
          "conservacionSv": {
            "type": "string",
            "nullable": true
          },
          "conservacionRu": {
            "type": "string",
            "nullable": true
          },
          "conservacionNl": {
            "type": "string",
            "nullable": true
          },
          "conservacionNo": {
            "type": "string",
            "nullable": true
          },
          "conservacionEu": {
            "type": "string",
            "nullable": true
          },
          "conservacionUk": {
            "type": "string",
            "nullable": true
          },
          "conservacionPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CuentaResponse": {
        "type": "object",
        "properties": {
          "idCuenta": {
            "type": "integer",
            "format": "int32"
          },
          "nombre": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CuentaResponseApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CuentaResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DescripcionAmpliada": {
        "type": "object",
        "properties": {
          "txtDescripcionAmpliada": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaCa": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaDe": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaEn": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaFr": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaGl": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaIt": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaNl": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaNo": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaPl": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaPt": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaRu": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaSv": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaUk": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaEu": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DescripcionWeb": {
        "type": "object",
        "properties": {
          "txtDescripcionWeb": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebCa": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebDe": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebEn": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebFr": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebGl": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebIt": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebNl": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebNo": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebPt": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebRu": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebSv": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebUk": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebEu": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DocumentoContactoEntity": {
        "type": "object",
        "properties": {
          "idDocumentoContacto": {
            "type": "integer",
            "format": "int32"
          },
          "idDocumento": {
            "type": "integer",
            "format": "int32"
          },
          "idContacto": {
            "type": "integer",
            "format": "int32"
          },
          "propietario": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DocumentoEntity": {
        "type": "object",
        "properties": {
          "idDocumento": {
            "type": "integer",
            "format": "int32"
          },
          "portalId": {
            "type": "integer",
            "format": "int32"
          },
          "nombre": {
            "type": "string",
            "nullable": true
          },
          "tipoDocumento": {
            "type": "string",
            "nullable": true
          },
          "idPlantilla": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "compartirRoles": {
            "type": "boolean"
          },
          "compartirUsuarios": {
            "type": "boolean"
          },
          "fechaCreacion": {
            "type": "string",
            "format": "date-time"
          },
          "idUsuarioCrea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fechaModificacion": {
            "type": "string",
            "format": "date-time"
          },
          "idUsuarioModifica": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "plantillaGenerada": {
            "type": "string",
            "nullable": true
          },
          "idArchivoPlantilla": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idVisita": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "solicitadoCliente": {
            "type": "boolean"
          },
          "archivos": {
            "$ref": "#/components/schemas/JToken"
          },
          "agentes": {
            "$ref": "#/components/schemas/JToken"
          },
          "roles": {
            "$ref": "#/components/schemas/JToken"
          },
          "usuarios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentoUsuarioEntity"
            },
            "nullable": true
          },
          "inmuebles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentoInmuebleEntity"
            },
            "nullable": true
          },
          "contactos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentoContactoEntity"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DocumentoEntityApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentoEntity"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DocumentoInmuebleEntity": {
        "type": "object",
        "properties": {
          "idDocumentoInmueble": {
            "type": "integer",
            "format": "int32"
          },
          "idDocumento": {
            "type": "integer",
            "format": "int32"
          },
          "idInmueble": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DocumentoUsuarioEntity": {
        "type": "object",
        "properties": {
          "idDocumentoUsuario": {
            "type": "integer",
            "format": "int32"
          },
          "idDocumento": {
            "type": "integer",
            "format": "int32"
          },
          "idUsuario": {
            "type": "integer",
            "format": "int32"
          },
          "propietario": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "EstadoCivil": {
        "enum": [
          "Soltero",
          "Casado",
          "Viudo",
          "Divorciado",
          "Separado",
          "ParejaDeHecho"
        ],
        "type": "string"
      },
      "EstadoEventoResponse": {
        "type": "object",
        "properties": {
          "idEstadoEvento": {
            "type": "integer",
            "format": "int32"
          },
          "estado": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EstadoEventoResponseApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EstadoEventoResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EstadosAdministrativosResponse": {
        "type": "object",
        "properties": {
          "idEstadoAdministrativo": {
            "type": "integer",
            "format": "int32"
          },
          "nombre": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EstadosAdministrativosResponseApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EstadosAdministrativosResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EstadosTarea": {
        "enum": [
          "Pendiente",
          "Finalizado",
          "Cancelado",
          "Aplazado",
          "Archivado"
        ],
        "type": "string"
      },
      "EstadosVisita": {
        "enum": [
          "Pendiente",
          "Finalizado",
          "Cancelado",
          "Aplazado",
          "Archivado"
        ],
        "type": "string"
      },
      "EtiquetaPromocional": {
        "type": "object",
        "properties": {
          "idCartel": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "texto": {
            "type": "string",
            "nullable": true
          },
          "color": {
            "type": "string",
            "nullable": true
          },
          "colorTexto": {
            "type": "string",
            "nullable": true
          },
          "icono": {
            "type": "string",
            "nullable": true
          },
          "textoEn": {
            "type": "string",
            "nullable": true
          },
          "textoFr": {
            "type": "string",
            "nullable": true
          },
          "textoDe": {
            "type": "string",
            "nullable": true
          },
          "textoPt": {
            "type": "string",
            "nullable": true
          },
          "textoIt": {
            "type": "string",
            "nullable": true
          },
          "textoCa": {
            "type": "string",
            "nullable": true
          },
          "textoGl": {
            "type": "string",
            "nullable": true
          },
          "textoSv": {
            "type": "string",
            "nullable": true
          },
          "textoRu": {
            "type": "string",
            "nullable": true
          },
          "textoNl": {
            "type": "string",
            "nullable": true
          },
          "textoNo": {
            "type": "string",
            "nullable": true
          },
          "textoEu": {
            "type": "string",
            "nullable": true
          },
          "textoUk": {
            "type": "string",
            "nullable": true
          },
          "textoPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Familia": {
        "type": "object",
        "properties": {
          "idFamiliaInmueble": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "familiaInmueble": {
            "type": "string",
            "nullable": true
          },
          "familiaInmuebleEn": {
            "type": "string",
            "nullable": true
          },
          "familiaInmuebleDe": {
            "type": "string",
            "nullable": true
          },
          "familiaInmuebleFr": {
            "type": "string",
            "nullable": true
          },
          "familiaInmuebleIt": {
            "type": "string",
            "nullable": true
          },
          "familiaInmuebleCa": {
            "type": "string",
            "nullable": true
          },
          "familiaInmueblePt": {
            "type": "string",
            "nullable": true
          },
          "familiaInmuebleGl": {
            "type": "string",
            "nullable": true
          },
          "familiaInmuebleSv": {
            "type": "string",
            "nullable": true
          },
          "familiaInmuebleRu": {
            "type": "string",
            "nullable": true
          },
          "familiaInmuebleNl": {
            "type": "string",
            "nullable": true
          },
          "familiaInmuebleNo": {
            "type": "string",
            "nullable": true
          },
          "familiaInmuebleEu": {
            "type": "string",
            "nullable": true
          },
          "familiaInmuebleUk": {
            "type": "string",
            "nullable": true
          },
          "familiaInmueblePl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GrupoInmueble": {
        "type": "object",
        "properties": {
          "idGrupo": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "grupo": {
            "type": "string",
            "nullable": true
          },
          "grupoEn": {
            "type": "string",
            "nullable": true
          },
          "grupoDe": {
            "type": "string",
            "nullable": true
          },
          "grupoFr": {
            "type": "string",
            "nullable": true
          },
          "grupoIt": {
            "type": "string",
            "nullable": true
          },
          "grupoCa": {
            "type": "string",
            "nullable": true
          },
          "grupoPt": {
            "type": "string",
            "nullable": true
          },
          "grupoGl": {
            "type": "string",
            "nullable": true
          },
          "grupoSv": {
            "type": "string",
            "nullable": true
          },
          "grupoRu": {
            "type": "string",
            "nullable": true
          },
          "grupoNl": {
            "type": "string",
            "nullable": true
          },
          "grupoNo": {
            "type": "string",
            "nullable": true
          },
          "grupoEu": {
            "type": "string",
            "nullable": true
          },
          "grupoUk": {
            "type": "string",
            "nullable": true
          },
          "grupoPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GrupoResponse": {
        "type": "object",
        "properties": {
          "idGrupo": {
            "type": "integer",
            "format": "int32"
          },
          "nombreGrupo": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GrupoResponseApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrupoResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdiomaSolicitud": {
        "enum": [
          "es",
          "ca",
          "de",
          "en",
          "eu",
          "fr",
          "gl",
          "it",
          "nl",
          "no",
          "pl",
          "pt",
          "ru",
          "sv",
          "uk"
        ],
        "type": "string"
      },
      "Inmueble": {
        "type": "object",
        "properties": {
          "idInmueble": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "referenciaPromocion": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "portalId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "referencia": {
            "type": "string",
            "nullable": true
          },
          "referenciaPersonalizada": {
            "type": "string",
            "nullable": true
          },
          "familiaInmueble": {
            "$ref": "#/components/schemas/Familia"
          },
          "tipoInmueble": {
            "$ref": "#/components/schemas/Tipo"
          },
          "fechaCaptacion": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fechaUltimaModificacion": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reservado": {
            "type": "boolean",
            "nullable": true
          },
          "alquiler": {
            "type": "boolean",
            "nullable": true
          },
          "venta": {
            "type": "boolean",
            "nullable": true
          },
          "traspaso": {
            "type": "boolean",
            "nullable": true
          },
          "alquilerTemporada": {
            "type": "boolean",
            "nullable": true
          },
          "alquilerVacacional": {
            "type": "boolean",
            "nullable": true
          },
          "alquilerOpcionCompra": {
            "type": "boolean",
            "nullable": true
          },
          "precioAlquiler": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "precioVenta": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "precioTraspaso": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "idAgenteVenta": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idAgenteAlquiler": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idAgenteTraspaso": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idAgenteCaptadorVenta": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idAgenteCaptadorAlquiler": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idAgenteCaptadorTraspaso": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "direccionPrivada": {
            "type": "string",
            "nullable": true
          },
          "direccionPublica": {
            "type": "string",
            "nullable": true
          },
          "anoConstruccion": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "mostrarAntiguedad": {
            "type": "boolean",
            "nullable": true
          },
          "longitud": {
            "type": "string",
            "nullable": true
          },
          "zoom": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "latitud": {
            "type": "string",
            "nullable": true
          },
          "publicarEnWeb": {
            "type": "boolean",
            "nullable": true
          },
          "activo": {
            "type": "boolean",
            "nullable": true
          },
          "codigoPostal": {
            "type": "string",
            "nullable": true
          },
          "idEstadoVenta": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idEstadoAlquiler": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idEstadoTraspaso": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "portadaWeb": {
            "type": "boolean",
            "nullable": true
          },
          "numero": {
            "type": "string",
            "nullable": true
          },
          "bloque": {
            "type": "string",
            "nullable": true
          },
          "escalera": {
            "type": "string",
            "nullable": true
          },
          "planta": {
            "type": "string",
            "nullable": true
          },
          "letra": {
            "type": "string",
            "nullable": true
          },
          "parcela": {
            "type": "string",
            "nullable": true
          },
          "urbanizacion": {
            "type": "string",
            "nullable": true
          },
          "poblacion": {
            "type": "string",
            "nullable": true
          },
          "provincia": {
            "type": "string",
            "nullable": true
          },
          "fechaUltimaModificacionWeb": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "mostrarDireccionExacta": {
            "type": "boolean",
            "nullable": true
          },
          "modoLocalizacion": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "latitudZona": {
            "type": "string",
            "nullable": true
          },
          "longitudZona": {
            "type": "string",
            "nullable": true
          },
          "radioZona": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "nombreZona": {
            "type": "string",
            "nullable": true
          },
          "nombreGrupoZona": {
            "type": "string",
            "nullable": true
          },
          "precioVentaAConsultar": {
            "type": "boolean",
            "nullable": true
          },
          "precioAlquilerAConsultar": {
            "type": "boolean",
            "nullable": true
          },
          "precioTraspasoAConsultar": {
            "type": "boolean",
            "nullable": true
          },
          "precioM2Venta": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "precioM2Alquiler": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "precioM2Traspaso": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "nombreCampana": {
            "type": "string",
            "nullable": true
          },
          "idTextoLegal": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "caracteristicas": {
            "$ref": "#/components/schemas/Caracteristicas"
          },
          "calificacionEnergetica": {
            "$ref": "#/components/schemas/CalificacionEnergetica"
          },
          "calificacionEmisiones": {
            "$ref": "#/components/schemas/CalificacionEmisiones"
          },
          "calificacionSuelo": {
            "$ref": "#/components/schemas/TipoCalificacionSuelo"
          },
          "estado": {
            "type": "string",
            "nullable": true
          },
          "calefaccion": {
            "$ref": "#/components/schemas/Calefaccion"
          },
          "conservacionInmueble": {
            "$ref": "#/components/schemas/ConservacionInmueble"
          },
          "tipoLicencia": {
            "$ref": "#/components/schemas/TipoLicencia"
          },
          "descripcionAmpliada": {
            "$ref": "#/components/schemas/DescripcionAmpliada"
          },
          "tituloWeb": {
            "$ref": "#/components/schemas/TituloWeb"
          },
          "descripcionWeb": {
            "$ref": "#/components/schemas/DescripcionWeb"
          },
          "tipoCarpinteriaExterior": {
            "$ref": "#/components/schemas/TipoCarpinteriaExterior"
          },
          "tipoCarpinteriaInterior": {
            "$ref": "#/components/schemas/TipoCarpinteriaInterior"
          },
          "urlVisitaVirtual": {
            "type": "string",
            "nullable": true
          },
          "fotos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Multimedia"
            },
            "nullable": true
          },
          "fotos360": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Multimedia"
            },
            "nullable": true
          },
          "videos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Multimedia"
            },
            "nullable": true
          },
          "archivos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Multimedia"
            },
            "nullable": true
          },
          "vistas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vista"
            },
            "nullable": true
          },
          "usoInmueble": {
            "$ref": "#/components/schemas/UsoInmueble"
          },
          "usosInmueble": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UsoInmueble"
            },
            "nullable": true
          },
          "grupos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrupoInmueble"
            },
            "nullable": true
          },
          "cuentas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CuentaResponse"
            },
            "nullable": true
          },
          "patronUrl": {
            "type": "string",
            "nullable": true
          },
          "referenciaCatastral": {
            "type": "string",
            "nullable": true
          },
          "etiquetaPromocional": {
            "$ref": "#/components/schemas/EtiquetaPromocional"
          }
        },
        "additionalProperties": false
      },
      "InmuebleApiCollectionPagedResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inmueble"
            },
            "nullable": true
          },
          "totalElementos": {
            "type": "integer",
            "format": "int32"
          },
          "pagina": {
            "type": "integer",
            "format": "int32"
          },
          "tamanoPagina": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "InmuebleReferencias": {
        "type": "object",
        "properties": {
          "referencia": {
            "type": "string",
            "nullable": true
          },
          "referenciaPersonalizada": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InmuebleSortField": {
        "enum": [
          "Referencia",
          "FechaModificacionWeb",
          "FechaUltimaModificacion"
        ],
        "type": "string"
      },
      "InteresMostradoVisita": {
        "type": "object",
        "properties": {
          "idInteresMostrado": {
            "type": "integer",
            "format": "int32"
          },
          "interesMostrado": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InteresMostradoVisitaApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InteresMostradoVisita"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "JToken": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/JToken"
        }
      },
      "LlaveroResponse": {
        "type": "object",
        "properties": {
          "idLlavero": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "nombre": {
            "type": "string",
            "nullable": true
          },
          "estado": {
            "type": "string",
            "nullable": true
          },
          "fecha": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ubicacion": {
            "type": "string",
            "nullable": true
          },
          "nombreAgente": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LlaveroResponseApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LlaveroResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Multimedia": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          },
          "descripcion": {
            "type": "string",
            "nullable": true
          },
          "descripcionEn": {
            "type": "string",
            "nullable": true
          },
          "descripcionDe": {
            "type": "string",
            "nullable": true
          },
          "descripcionFr": {
            "type": "string",
            "nullable": true
          },
          "descripcionIt": {
            "type": "string",
            "nullable": true
          },
          "descripcionGl": {
            "type": "string",
            "nullable": true
          },
          "descripcionCa": {
            "type": "string",
            "nullable": true
          },
          "descripcionPt": {
            "type": "string",
            "nullable": true
          },
          "descripcionSv": {
            "type": "string",
            "nullable": true
          },
          "descripcionRu": {
            "type": "string",
            "nullable": true
          },
          "descripcionNl": {
            "type": "string",
            "nullable": true
          },
          "descripcionNo": {
            "type": "string",
            "nullable": true
          },
          "descripcionEu": {
            "type": "string",
            "nullable": true
          },
          "descripcionUk": {
            "type": "string",
            "nullable": true
          },
          "descripcionPl": {
            "type": "string",
            "nullable": true
          },
          "orden": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "destacada": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Operacion": {
        "enum": [
          "Venta",
          "Alquiler",
          "Traspaso"
        ],
        "type": "string"
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "Promocion": {
        "type": "object",
        "properties": {
          "portalId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idPromocion": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "referencia": {
            "type": "string",
            "nullable": true
          },
          "nombre": {
            "type": "string",
            "nullable": true
          },
          "disponible": {
            "type": "boolean",
            "nullable": true
          },
          "publicarEnWeb": {
            "type": "boolean",
            "nullable": true
          },
          "destacada": {
            "type": "boolean",
            "nullable": true
          },
          "tipoPromocion": {
            "$ref": "#/components/schemas/TipoPromocion"
          },
          "tipoComercializacion": {
            "$ref": "#/components/schemas/TipoComercializacion"
          },
          "tipoVpo": {
            "$ref": "#/components/schemas/TipoVpo"
          },
          "fechaCaptacion": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "constructor": {
            "type": "string",
            "nullable": true
          },
          "promotor": {
            "type": "string",
            "nullable": true
          },
          "fechaEntrega": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "anoConstruccion": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "piscina": {
            "type": "boolean",
            "nullable": true
          },
          "zonasComunes": {
            "type": "boolean",
            "nullable": true
          },
          "jardin": {
            "type": "boolean",
            "nullable": true
          },
          "trastero": {
            "type": "boolean",
            "nullable": true
          },
          "garaje": {
            "type": "boolean",
            "nullable": true
          },
          "poblacion": {
            "type": "string",
            "nullable": true
          },
          "provincia": {
            "type": "string",
            "nullable": true
          },
          "calle": {
            "type": "string",
            "nullable": true
          },
          "codigoPostal": {
            "type": "string",
            "nullable": true
          },
          "numero": {
            "type": "string",
            "nullable": true
          },
          "longitud": {
            "type": "string",
            "nullable": true
          },
          "latitud": {
            "type": "string",
            "nullable": true
          },
          "zoom": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "mostrarDireccionExacta": {
            "type": "boolean",
            "nullable": true
          },
          "tituloWeb": {
            "$ref": "#/components/schemas/PromocionTituloWeb"
          },
          "descripcionWeb": {
            "$ref": "#/components/schemas/PromocionDescripcionWeb"
          },
          "descripcionAmpliada": {
            "$ref": "#/components/schemas/PromocionDescripcionAmpliada"
          },
          "memoriaCalidades": {
            "$ref": "#/components/schemas/PromocionMemoriaCalidades"
          },
          "urlVisitaVirtual": {
            "type": "string",
            "nullable": true
          },
          "fotos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PromocionMultimedia"
            },
            "nullable": true
          },
          "videos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PromocionMultimedia"
            },
            "nullable": true
          },
          "archivos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PromocionMultimedia"
            },
            "nullable": true
          },
          "inmuebles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "inmueblesPersonalizados": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InmuebleReferencias"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PromocionApiCollectionPagedResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promocion"
            },
            "nullable": true
          },
          "totalElementos": {
            "type": "integer",
            "format": "int32"
          },
          "pagina": {
            "type": "integer",
            "format": "int32"
          },
          "tamanoPagina": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PromocionDescripcionAmpliada": {
        "type": "object",
        "properties": {
          "txtDescripcionAmpliada": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaCa": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaDe": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaEn": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaFr": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaGl": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaIt": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaNl": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaNo": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaPl": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaPt": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaRu": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaSv": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaUk": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionAmpliadaEu": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PromocionDescripcionWeb": {
        "type": "object",
        "properties": {
          "txtDescripcionWeb": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebCa": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebDe": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebEn": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebFr": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebGl": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebIt": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebNl": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebNo": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebPt": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebRu": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebSv": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebUk": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebEu": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionWebPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PromocionMemoriaCalidades": {
        "type": "object",
        "properties": {
          "txtDescripcionCalidades": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesCa": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesDe": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesEn": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesFr": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesGl": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesIt": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesNl": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesNo": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesPt": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesRu": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesSv": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesUk": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesEu": {
            "type": "string",
            "nullable": true
          },
          "txtDescripcionCalidadesPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PromocionMultimedia": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          },
          "descripcion": {
            "type": "string",
            "nullable": true
          },
          "descripcionEn": {
            "type": "string",
            "nullable": true
          },
          "descripcionDe": {
            "type": "string",
            "nullable": true
          },
          "descripcionFr": {
            "type": "string",
            "nullable": true
          },
          "descripcionIt": {
            "type": "string",
            "nullable": true
          },
          "descripcionGl": {
            "type": "string",
            "nullable": true
          },
          "descripcionCa": {
            "type": "string",
            "nullable": true
          },
          "descripcionPt": {
            "type": "string",
            "nullable": true
          },
          "descripcionSv": {
            "type": "string",
            "nullable": true
          },
          "descripcionRu": {
            "type": "string",
            "nullable": true
          },
          "descripcionNl": {
            "type": "string",
            "nullable": true
          },
          "descripcionNo": {
            "type": "string",
            "nullable": true
          },
          "descripcionEu": {
            "type": "string",
            "nullable": true
          },
          "descripcionUk": {
            "type": "string",
            "nullable": true
          },
          "descripcionPl": {
            "type": "string",
            "nullable": true
          },
          "orden": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "destacada": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PromocionSortField": {
        "enum": [
          "Referencia",
          "FechaUltimaModificacion",
          "AnoConstruccion"
        ],
        "type": "string"
      },
      "PromocionTituloWeb": {
        "type": "object",
        "properties": {
          "txtTituloWeb": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebCa": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebDe": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebEn": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebFr": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebGl": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebIt": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebNl": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebNo": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebPt": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebRu": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebSv": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebUk": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebEu": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SolicitudCrearRequest": {
        "required": [
          "nombre",
          "tipoSolicitud"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Correo electrónico del solicitante",
            "nullable": true
          },
          "nombre": {
            "type": "string",
            "description": "Nombre completo del solicitante",
            "nullable": true
          },
          "telefono": {
            "type": "string",
            "description": "Número de teléfono del solicitante",
            "nullable": true
          },
          "mensaje": {
            "type": "string",
            "description": "Mensaje o comentario enviado por el solicitante",
            "nullable": true
          },
          "idCampana": {
            "type": "integer",
            "description": "Id de la campaña",
            "format": "int32",
            "nullable": true
          },
          "tipoOperacion": {
            "$ref": "#/components/schemas/TipoOperacion"
          },
          "estado": {
            "$ref": "#/components/schemas/SolicitudEstado"
          },
          "tipoSolicitud": {
            "$ref": "#/components/schemas/TipoSolicitud"
          },
          "idAgente": {
            "type": "integer",
            "description": "Id del agente que hace la petición",
            "format": "int32",
            "nullable": true
          },
          "inmuebles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Referencias de inmuebles a vincular: null = sin cambios; vacía = borra todas; con elementos = vincula las referencias.",
            "nullable": true
          },
          "promocion": {
            "type": "string",
            "description": "Referencia de la promoción a vincular: null = sin cambios; vacía = desvincula; con valor = vincula esa promoción.",
            "nullable": true
          },
          "referenciaCliente": {
            "type": "integer",
            "description": "Referencia del cliente a vincular",
            "format": "int32",
            "nullable": true
          },
          "poblacion": {
            "type": "string",
            "description": "Poblacion de la solicitud",
            "nullable": true
          },
          "zona": {
            "type": "string",
            "description": "Zona de la solicitud",
            "nullable": true
          },
          "precioMaximo": {
            "type": "string",
            "description": "Precio máximo de la solicitud",
            "nullable": true
          },
          "idioma": {
            "$ref": "#/components/schemas/IdiomaSolicitud"
          }
        },
        "additionalProperties": false,
        "description": "Datos necesarios para registrar una nueva solicitud de contacto o información. Además de los campos requeridos, debe indicarse un email o un teléfono (al menos uno de los dos)."
      },
      "SolicitudEstado": {
        "enum": [
          "Sin_atender",
          "Atendido",
          "En_espera",
          "No_contesta",
          "Descartada",
          "Archivado",
          "Calificada_IA",
          "En_Proceso_IA",
          "Descartada_IA"
        ],
        "type": "string"
      },
      "SolicitudResponse": {
        "type": "object",
        "properties": {
          "referencia": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "nombre": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "telefono": {
            "type": "string",
            "nullable": true
          },
          "mensaje": {
            "type": "string",
            "nullable": true
          },
          "observaciones": {
            "type": "string",
            "nullable": true
          },
          "fecha": {
            "type": "string",
            "format": "date-time"
          },
          "idAgente": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idCampana": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idCliente": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "referenciaCliente": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "poblacion": {
            "type": "string",
            "nullable": true
          },
          "precioMaximo": {
            "type": "string",
            "nullable": true
          },
          "zona": {
            "type": "string",
            "nullable": true
          },
          "estado": {
            "$ref": "#/components/schemas/SolicitudEstado"
          },
          "tipoOperacion": {
            "$ref": "#/components/schemas/TipoOperacion"
          },
          "tipoSolicitud": {
            "$ref": "#/components/schemas/TipoSolicitud"
          },
          "inmuebles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "inmueblesPersonalizados": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InmuebleReferencias"
            },
            "nullable": true
          },
          "promocion": {
            "type": "string",
            "nullable": true
          },
          "idioma": {
            "$ref": "#/components/schemas/IdiomaSolicitud"
          }
        },
        "additionalProperties": false
      },
      "SolicitudResponseApiCollectionPagedResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SolicitudResponse"
            },
            "nullable": true
          },
          "totalElementos": {
            "type": "integer",
            "format": "int32"
          },
          "pagina": {
            "type": "integer",
            "format": "int32"
          },
          "tamanoPagina": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SolicitudResponseApiResponse": {
        "type": "object",
        "properties": {
          "datos": {
            "$ref": "#/components/schemas/SolicitudResponse"
          }
        },
        "additionalProperties": false
      },
      "SolicitudSortField": {
        "enum": [
          "Fecha",
          "Estado"
        ],
        "type": "string"
      },
      "SortDirection": {
        "enum": [
          "Ascendente",
          "Descendente"
        ],
        "type": "string"
      },
      "TareaCrearRequest": {
        "type": "object",
        "properties": {
          "idAgente": {
            "type": "integer",
            "description": "Id del agente",
            "format": "int32"
          },
          "referenciaCliente": {
            "type": "integer",
            "description": "Referencia del cliente a vincular",
            "format": "int32",
            "nullable": true
          },
          "referenciaInmueble": {
            "type": "string",
            "description": "Referencia del inmueble a vincular",
            "nullable": true
          },
          "referenciaSolicitud": {
            "type": "integer",
            "description": "Referencia de la solicitud a vincular",
            "format": "int32",
            "nullable": true
          },
          "referenciaDemanda": {
            "type": "integer",
            "description": "Referencia de la demanda a vincular",
            "format": "int32",
            "nullable": true
          },
          "referenciaOperacion": {
            "type": "integer",
            "description": "Referencia de la operacion a vincular",
            "format": "int32",
            "nullable": true
          },
          "estado": {
            "$ref": "#/components/schemas/EstadosTarea"
          },
          "idTipo": {
            "type": "integer",
            "description": "Id del tipo de tarea",
            "format": "int32"
          },
          "asunto": {
            "type": "string",
            "description": "Asunto de la tarea",
            "nullable": true
          },
          "comentarios": {
            "type": "string",
            "description": "Comentarios de la tarea",
            "nullable": true
          },
          "fechaInicio": {
            "type": "string",
            "description": "Fecha de inicio de la tarea (YYYY-MM-DD HH:MM:SS)",
            "format": "date-time"
          },
          "fechaFin": {
            "type": "string",
            "description": "Fecha de fin de la tarea (YYYY-MM-DD HH:MM:SS)",
            "format": "date-time",
            "nullable": true
          },
          "sincronizar": {
            "type": "boolean",
            "description": "Sincronizar la tarea con Google Calendar. Es necesario haber configurado la sincronización con Google Calendar desde Mobilia. Por defecto False",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TareaResponse": {
        "type": "object",
        "properties": {
          "idTarea": {
            "type": "integer",
            "format": "int32"
          },
          "idAgente": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "referenciaCliente": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "referenciaInmueble": {
            "type": "string",
            "nullable": true
          },
          "referenciaPersonalizadaInmueble": {
            "type": "string",
            "nullable": true
          },
          "referenciaSolicitud": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "referenciaDemanda": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "referenciaOperacion": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "estado": {
            "type": "string",
            "nullable": true
          },
          "idEstadoTarea": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idTipo": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "asunto": {
            "type": "string",
            "nullable": true
          },
          "sincronizar": {
            "type": "boolean",
            "nullable": true
          },
          "comentarios": {
            "type": "string",
            "nullable": true
          },
          "fechaInicio": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fechaFin": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TareaResponseApiCollectionPagedResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TareaResponse"
            },
            "nullable": true
          },
          "totalElementos": {
            "type": "integer",
            "format": "int32"
          },
          "pagina": {
            "type": "integer",
            "format": "int32"
          },
          "tamanoPagina": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TareaResponseApiResponse": {
        "type": "object",
        "properties": {
          "datos": {
            "$ref": "#/components/schemas/TareaResponse"
          }
        },
        "additionalProperties": false
      },
      "TareaSortField": {
        "enum": [
          "FechaCreacion",
          "FechaInicio",
          "FechaFin"
        ],
        "type": "string"
      },
      "TextoLegalResponse": {
        "type": "object",
        "properties": {
          "idTextoLegal": {
            "type": "integer",
            "format": "int32"
          },
          "nombre": {
            "type": "string",
            "nullable": true
          },
          "texto": {
            "type": "string",
            "nullable": true
          },
          "textoEn": {
            "type": "string",
            "nullable": true
          },
          "textoDe": {
            "type": "string",
            "nullable": true
          },
          "textoFr": {
            "type": "string",
            "nullable": true
          },
          "textoIt": {
            "type": "string",
            "nullable": true
          },
          "textoCa": {
            "type": "string",
            "nullable": true
          },
          "textoPt": {
            "type": "string",
            "nullable": true
          },
          "textoGl": {
            "type": "string",
            "nullable": true
          },
          "textoSv": {
            "type": "string",
            "nullable": true
          },
          "textoRu": {
            "type": "string",
            "nullable": true
          },
          "textoNl": {
            "type": "string",
            "nullable": true
          },
          "textoNo": {
            "type": "string",
            "nullable": true
          },
          "textoEu": {
            "type": "string",
            "nullable": true
          },
          "textoUk": {
            "type": "string",
            "nullable": true
          },
          "textoPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TextoLegalResponseApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TextoLegalResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Tipo": {
        "type": "object",
        "properties": {
          "idTipoInmueble": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "tipoInmueble": {
            "type": "string",
            "nullable": true
          },
          "tipoInmuebleEn": {
            "type": "string",
            "nullable": true
          },
          "tipoInmuebleDe": {
            "type": "string",
            "nullable": true
          },
          "tipoInmuebleFr": {
            "type": "string",
            "nullable": true
          },
          "tipoInmuebleIt": {
            "type": "string",
            "nullable": true
          },
          "tipoInmuebleCa": {
            "type": "string",
            "nullable": true
          },
          "tipoInmueblePt": {
            "type": "string",
            "nullable": true
          },
          "tipoInmuebleGl": {
            "type": "string",
            "nullable": true
          },
          "tipoInmuebleSv": {
            "type": "string",
            "nullable": true
          },
          "tipoInmuebleRu": {
            "type": "string",
            "nullable": true
          },
          "tipoInmuebleNl": {
            "type": "string",
            "nullable": true
          },
          "tipoInmuebleNo": {
            "type": "string",
            "nullable": true
          },
          "tipoInmuebleEu": {
            "type": "string",
            "nullable": true
          },
          "tipoInmuebleUk": {
            "type": "string",
            "nullable": true
          },
          "tipoInmueblePl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TipoBorradoRecurrente": {
        "enum": [
          "SoloEvento",
          "TodosAPartirDelEvento",
          "Todos"
        ],
        "type": "string"
      },
      "TipoCalificacionSuelo": {
        "type": "object",
        "properties": {
          "calificacionSuelo": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloEn": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloDe": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloFr": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloIt": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloCa": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloPt": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloGl": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloSv": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloRu": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloNl": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloNo": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloEu": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloUk": {
            "type": "string",
            "nullable": true
          },
          "calificacionSueloPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TipoCarpinteriaExterior": {
        "type": "object",
        "properties": {
          "idTipoCarpinteriaExterior": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carpinteria": {
            "type": "string",
            "nullable": true
          },
          "portalId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carpinteriaEn": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaDe": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaFr": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaIt": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaCa": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaPt": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaGl": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaSv": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaRu": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaNl": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaNo": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaEu": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaUk": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TipoCarpinteriaInterior": {
        "type": "object",
        "properties": {
          "idTipoCarpinteria": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "carpinteria": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaEn": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaDe": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaFr": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaIt": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaCa": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaPt": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaGl": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaSv": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaRu": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaNl": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaNo": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaEu": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaUk": {
            "type": "string",
            "nullable": true
          },
          "carpinteriaPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TipoCliente": {
        "enum": [
          "Propietario",
          "Demandante",
          "Captador",
          "Newsletter"
        ],
        "type": "string"
      },
      "TipoComercializacion": {
        "type": "object",
        "properties": {
          "idTipoComercializacion": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "tipo": {
            "type": "string",
            "nullable": true
          },
          "tipoEn": {
            "type": "string",
            "nullable": true
          },
          "tipoDe": {
            "type": "string",
            "nullable": true
          },
          "tipoFr": {
            "type": "string",
            "nullable": true
          },
          "tipoIt": {
            "type": "string",
            "nullable": true
          },
          "tipoCa": {
            "type": "string",
            "nullable": true
          },
          "tipoPt": {
            "type": "string",
            "nullable": true
          },
          "tipoGl": {
            "type": "string",
            "nullable": true
          },
          "tipoSv": {
            "type": "string",
            "nullable": true
          },
          "tipoRu": {
            "type": "string",
            "nullable": true
          },
          "tipoNl": {
            "type": "string",
            "nullable": true
          },
          "tipoNo": {
            "type": "string",
            "nullable": true
          },
          "tipoEu": {
            "type": "string",
            "nullable": true
          },
          "tipoUk": {
            "type": "string",
            "nullable": true
          },
          "tipoPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TipoLicencia": {
        "type": "object",
        "properties": {
          "licencia": {
            "type": "string",
            "nullable": true
          },
          "licenciaEn": {
            "type": "string",
            "nullable": true
          },
          "licenciaDe": {
            "type": "string",
            "nullable": true
          },
          "licenciaFr": {
            "type": "string",
            "nullable": true
          },
          "licenciaIt": {
            "type": "string",
            "nullable": true
          },
          "licenciaCa": {
            "type": "string",
            "nullable": true
          },
          "licenciaPt": {
            "type": "string",
            "nullable": true
          },
          "licenciaGl": {
            "type": "string",
            "nullable": true
          },
          "licenciaSv": {
            "type": "string",
            "nullable": true
          },
          "licenciaRu": {
            "type": "string",
            "nullable": true
          },
          "licenciaNl": {
            "type": "string",
            "nullable": true
          },
          "licenciaNo": {
            "type": "string",
            "nullable": true
          },
          "licenciaEu": {
            "type": "string",
            "nullable": true
          },
          "licenciaUk": {
            "type": "string",
            "nullable": true
          },
          "licenciaPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TipoOperacion": {
        "enum": [
          "Venta",
          "Alquiler",
          "Traspaso"
        ],
        "type": "string"
      },
      "TipoPromocion": {
        "type": "object",
        "properties": {
          "idTipoPromocion": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "tipo": {
            "type": "string",
            "nullable": true
          },
          "tipoEn": {
            "type": "string",
            "nullable": true
          },
          "tipoDe": {
            "type": "string",
            "nullable": true
          },
          "tipoFr": {
            "type": "string",
            "nullable": true
          },
          "tipoIt": {
            "type": "string",
            "nullable": true
          },
          "tipoCa": {
            "type": "string",
            "nullable": true
          },
          "tipoPt": {
            "type": "string",
            "nullable": true
          },
          "tipoGl": {
            "type": "string",
            "nullable": true
          },
          "tipoSv": {
            "type": "string",
            "nullable": true
          },
          "tipoRu": {
            "type": "string",
            "nullable": true
          },
          "tipoNl": {
            "type": "string",
            "nullable": true
          },
          "tipoNo": {
            "type": "string",
            "nullable": true
          },
          "tipoEu": {
            "type": "string",
            "nullable": true
          },
          "tipoUk": {
            "type": "string",
            "nullable": true
          },
          "tipoPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TipoSolicitud": {
        "enum": [
          "Llamada",
          "Email",
          "VisitaInmobiliaria",
          "Web",
          "Otros",
          "API",
          "MetaAds"
        ],
        "type": "string"
      },
      "TipoTareaResponse": {
        "type": "object",
        "properties": {
          "idTipo": {
            "type": "integer",
            "format": "int32"
          },
          "nombreTipo": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TipoTareaResponseApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TipoTareaResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TipoVisitaResponse": {
        "type": "object",
        "properties": {
          "idTipo": {
            "type": "integer",
            "format": "int32"
          },
          "nombreTipo": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TipoVisitaResponseApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TipoVisitaResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TipoVpo": {
        "type": "object",
        "properties": {
          "idTipoVpo": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "tipo": {
            "type": "string",
            "nullable": true
          },
          "tipoEn": {
            "type": "string",
            "nullable": true
          },
          "tipoDe": {
            "type": "string",
            "nullable": true
          },
          "tipoFr": {
            "type": "string",
            "nullable": true
          },
          "tipoIt": {
            "type": "string",
            "nullable": true
          },
          "tipoCa": {
            "type": "string",
            "nullable": true
          },
          "tipoPt": {
            "type": "string",
            "nullable": true
          },
          "tipoGl": {
            "type": "string",
            "nullable": true
          },
          "tipoSv": {
            "type": "string",
            "nullable": true
          },
          "tipoRu": {
            "type": "string",
            "nullable": true
          },
          "tipoNl": {
            "type": "string",
            "nullable": true
          },
          "tipoNo": {
            "type": "string",
            "nullable": true
          },
          "tipoEu": {
            "type": "string",
            "nullable": true
          },
          "tipoUk": {
            "type": "string",
            "nullable": true
          },
          "tipoPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TituloWeb": {
        "type": "object",
        "properties": {
          "txtTituloWeb": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebCa": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebDe": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebEn": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebFr": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebGl": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebIt": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebNl": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebNo": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebPt": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebRu": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebSv": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebUk": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebEu": {
            "type": "string",
            "nullable": true
          },
          "txtTituloWebPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UsoInmueble": {
        "type": "object",
        "properties": {
          "uso": {
            "type": "string",
            "nullable": true
          },
          "usoEn": {
            "type": "string",
            "nullable": true
          },
          "usoDe": {
            "type": "string",
            "nullable": true
          },
          "usoFr": {
            "type": "string",
            "nullable": true
          },
          "usoIt": {
            "type": "string",
            "nullable": true
          },
          "usoCa": {
            "type": "string",
            "nullable": true
          },
          "usoPt": {
            "type": "string",
            "nullable": true
          },
          "usoGl": {
            "type": "string",
            "nullable": true
          },
          "usoSv": {
            "type": "string",
            "nullable": true
          },
          "usoRu": {
            "type": "string",
            "nullable": true
          },
          "usoNl": {
            "type": "string",
            "nullable": true
          },
          "usoNo": {
            "type": "string",
            "nullable": true
          },
          "usoEu": {
            "type": "string",
            "nullable": true
          },
          "usoUk": {
            "type": "string",
            "nullable": true
          },
          "usoPl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ValidationProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "VisitaCrearRequest": {
        "type": "object",
        "properties": {
          "idAgente": {
            "type": "integer",
            "description": "Id del agente",
            "format": "int32"
          },
          "referenciaCliente": {
            "type": "integer",
            "description": "Referencia del cliente a vincular",
            "format": "int32"
          },
          "referenciaInmueble": {
            "type": "string",
            "description": "Referencia del inmueble a vincular",
            "nullable": true
          },
          "referenciaSolicitud": {
            "type": "integer",
            "description": "Referencia de la solicitud a vincular",
            "format": "int32",
            "nullable": true
          },
          "referenciaDemanda": {
            "type": "integer",
            "description": "Referencia de la demanda a vincular",
            "format": "int32",
            "nullable": true
          },
          "operacion": {
            "$ref": "#/components/schemas/Operacion"
          },
          "idTipo": {
            "type": "integer",
            "description": "Id del tipo de visita",
            "format": "int32"
          },
          "lugar": {
            "type": "string",
            "description": "Lugar de la visita",
            "nullable": true
          },
          "estado": {
            "$ref": "#/components/schemas/EstadosVisita"
          },
          "fechaInicio": {
            "type": "string",
            "description": "Fecha de inicio de la visita (YYYY-MM-DD HH:MM:SS)",
            "format": "date-time"
          },
          "fechaFin": {
            "type": "string",
            "description": "Fecha de fin de la visita (YYYY-MM-DD HH:MM:SS)",
            "format": "date-time",
            "nullable": true
          },
          "enviarEmailPropietario": {
            "type": "boolean",
            "description": "Enviar email al propietario si la visita está finalizada. Por defecto False"
          },
          "sincronizar": {
            "type": "boolean",
            "description": "Sincronizar la visita con Google Calendar. Es necesario haber configurado la sincronización con Google Calendar desde Mobilia. Por defecto False",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VisitaLibreResponse": {
        "type": "object",
        "properties": {
          "fechaInicio": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fechaFin": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "idVisita": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idAgente": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VisitaLibreResponseApiCollectionResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VisitaLibreResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VisitaResponse": {
        "type": "object",
        "properties": {
          "idVisita": {
            "type": "integer",
            "format": "int32"
          },
          "idAgente": {
            "type": "integer",
            "format": "int32"
          },
          "referenciaCliente": {
            "type": "integer",
            "format": "int32"
          },
          "referenciaInmueble": {
            "type": "integer",
            "format": "int32"
          },
          "referenciaPersonalizadaInmueble": {
            "type": "string",
            "nullable": true
          },
          "referenciaSolicitud": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "referenciaDemanda": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "lugar": {
            "type": "string",
            "nullable": true
          },
          "idTipo": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "idEstadoVisita": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "operacion": {
            "type": "string",
            "nullable": true
          },
          "sincronizar": {
            "type": "boolean",
            "nullable": true
          },
          "fechaInicio": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fechaFin": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VisitaResponseApiCollectionPagedResponse": {
        "type": "object",
        "properties": {
          "elementos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VisitaResponse"
            },
            "nullable": true
          },
          "totalElementos": {
            "type": "integer",
            "format": "int32"
          },
          "pagina": {
            "type": "integer",
            "format": "int32"
          },
          "tamanoPagina": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "VisitaResponseApiResponse": {
        "type": "object",
        "properties": {
          "datos": {
            "$ref": "#/components/schemas/VisitaResponse"
          }
        },
        "additionalProperties": false
      },
      "VisitaSortField": {
        "enum": [
          "FechaCreacion",
          "FechaInicio",
          "FechaFin"
        ],
        "type": "string"
      },
      "Vista": {
        "type": "object",
        "properties": {
          "idVista": {
            "type": "integer",
            "format": "int32"
          },
          "nombre": {
            "type": "string",
            "nullable": true
          },
          "nombreEn": {
            "type": "string",
            "nullable": true
          },
          "nombreFr": {
            "type": "string",
            "nullable": true
          },
          "nombreDe": {
            "type": "string",
            "nullable": true
          },
          "nombreIt": {
            "type": "string",
            "nullable": true
          },
          "nombreCa": {
            "type": "string",
            "nullable": true
          },
          "nombrePt": {
            "type": "string",
            "nullable": true
          },
          "nombreGl": {
            "type": "string",
            "nullable": true
          },
          "nombreSv": {
            "type": "string",
            "nullable": true
          },
          "nombreRu": {
            "type": "string",
            "nullable": true
          },
          "nombreNl": {
            "type": "string",
            "nullable": true
          },
          "nombreNo": {
            "type": "string",
            "nullable": true
          },
          "nombreEu": {
            "type": "string",
            "nullable": true
          },
          "nombreUk": {
            "type": "string",
            "nullable": true
          },
          "nombrePl": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "Cabecera de autorización JWT usando el esquema Bearer. \r\n\r\n Introduce 'Bearer' [espacio] y luego tu token en el campo de texto a continuación.\r\n\r\nEjemplo: \"Bearer &lt;token&gt;\"",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ]
}