openapi: 3.0.0
info:
  title: API de Búsqueda en el DataStore
  description: >
    Buscar un recurso de DataStore. Por defecto, se devuelven 100 filas. Un recurso de DataStore
    que pertenece a un recurso CKAN privado solo puede ser accedido con la autorización adecuada.
  version: "1.0.0"
  contact:
    name: PNAV Open Data
    url: http://172.233.123.166
servers:
  - url: http://172.233.123.166/api/3
    description: Servidor de la API de CKAN
paths:
  /action/datastore_search:
    get:
      summary: Buscar un recurso en el DataStore
      description: >
        La acción `datastore_search` permite buscar datos en un recurso.
        Este endpoint proporciona varias opciones de consulta como filtros, búsqueda de texto completo y ordenamiento.
      tags:
        - Acciones
      parameters:
        - name: resource_id
          in: query
          description: ID o alias del recurso a buscar.
        - name: filters
          in: query
          description: 'Condiciones coincidentes para seleccionar filas (ej., `{"key1": "a", "key2": "b"}`).'
        - name: q
          in: query
          description: >
            Consulta de texto completo. Si es una cadena, busca en todos los campos. Si es un diccionario,
            busca en campos específicos (ej., `{"key1": "a", "key2": "b"}`).
        - name: full_text
          in: query
          description: Consulta de texto completo en todos los campos. Alternativa a `q`.
        - name: distinct
          in: query
          description: Devuelve solo filas distintas.
        - name: plain
          in: query
          description: Trata la consulta como texto plano.
        - name: language
          in: query
          description: 'Idioma de la consulta de texto completo (predeterminado: `english`).'
        - name: limit
          in: query
          description: >
            Número máximo de filas a devolver (predeterminado: `100`, configurable). Límite superior: `32000`.
        - name: offset
          in: query
          description: Desplazamiento para omitir un número de filas.
        - name: fields
          in: query
          description: >
            Campos a devolver (predeterminado: todos los campos en el orden original). Proporciónelos como una lista o cadena separada por comas.
        - name: sort
          in: query
          description: Nombres de campos separados por comas con ordenamiento (ej., `field1, field2 desc`).
        - name: include_total
          in: query
          description: Devuelve el total de registros coincidentes.
        - name: total_estimation_threshold
          in: query
          description: >
            Umbral para estimar el recuento total de registros al usar `include_total`.
        - name: records_format
          in: query
          description: >
            Formato para los registros devueltos:
            - `objects`: lista de pares clave-valor
            - `lists`: lista de valores
            - `csv`: cadena CSV (sin encabezado)
            - `tsv`: cadena TSV (sin encabezado)
      responses:
        '200':
          description: Respuesta exitosa con registros coincidentes.
  /action/datastore_search_sql:
    get:
      summary: Ejecutar consultas SQL en el DataStore
      description: >
        La acción `datastore_search_sql` permite a los usuarios ejecutar consultas SQL en
        el DataStore. Las consultas están restringidas a una sola sentencia `SELECT` y están
        limitadas a 32,000 resultados (configurable). Asegúrese de tener acceso a todos los
        recursos de CKAN en la consulta y proporcione la autorización adecuada.
      tags:
        - Acciones
      parameters:
        - name: sql
          in: query
          description: Una única sentencia SQL `SELECT` para ejecutar.
      responses:
        '200':
          description: Consulta SQL ejecutada exitosamente.

