{"openapi":"3.1.0","info":{"title":"pt-exp-dataset-delivery-official-engagements","description":"Publicar información sobre las convocatorias","version":"0.0.1"},"paths":{"/api/v0/official-engagements/all":{"get":{"tags":["official-engagements"],"summary":"Descarga completa del dataset offline","operationId":"get_download_official_engagements_all_get","parameters":[{"name":"title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Title"}},{"name":"body","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Body"}},{"name":"subtitle","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Subtitle"}},{"name":"publication_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)","title":"Publication Date"},"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)"},{"name":"format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/DownloadFormats","default":"json"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v0/official-engagements/stream/all":{"get":{"tags":["official-engagements"],"summary":"Descarga completa del dataset en streaming (ndjson)","description":"Variante streaming del endpoint 'all' que recorre el índice completo usando\npaginación basada en PIT (_search_paged) y va emitiendo cada registro como\nuna línea NDJSON.\n\nÚtil para clientes que quieran consumir el dataset completo sin esperar a\nque se genere un fichero intermedio, por ejemplo apps móviles o pipelines ETL.","operationId":"stream_all_ndjson_official_engagements_stream_all_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v0/official-engagements/stream/search":{"get":{"tags":["official-engagements"],"summary":"Búsqueda de convocatorias seleccionando los filtros deseados (stream ndjson)","description":"Variante streaming de /official-engagements/search que devuelve NDJSON línea a línea.\n\nLa respuesta se va generando por páginas, sin cargar en memoria todo el\nresultado, lo que resulta especialmente útil para apps móviles o clientes\ncon conexiones de red limitadas.","operationId":"get_search_stream_official_engagements_stream_search_get","parameters":[{"name":"order_by","in":"query","required":true,"schema":{"$ref":"#/components/schemas/_Enum_fields"}},{"name":"mode","in":"query","required":true,"schema":{"$ref":"#/components/schemas/_Enum_Mode"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":0,"title":"Size"}},{"name":"title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Title"}},{"name":"body","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Body"}},{"name":"subtitle","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Subtitle"}},{"name":"publication_date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)","title":"Publication Date From"},"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)"},{"name":"publication_date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)","title":"Publication Date To"},"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v0/official-engagements/option-values/None":{"get":{"tags":["option-values"],"summary":"Valores únicos (values)","description":"Obtiene los valores únicos del campo\nReturns: Lista de valores únicos disponibles","operationId":"get_None_official_engagements_option_values_None_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v0/official-engagements/count":{"get":{"tags":["official-engagements"],"summary":"Número de registros conjunto de datos","description":"Devuelve el número total de registros en el dataset.\n\nReturns:\n    dict: {\"count\": {\"result\": <número_de_registros>}}","operationId":"count_official_engagements_count_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Count Official Engagements Count Get"}}}}}}},"/api/v0/official-engagements/option-values/filters_facets":{"get":{"tags":["option-values"],"summary":"Get Filters Facets","description":"Obtiene los facets/valores disponibles para los filtros configurados.\nÚtil para construir interfaces de filtrado dinámicas.\n\nArgs:\n    Todos los filtros definidos en build-service.yaml\n    search_text: Texto de búsqueda general opcional\n\nReturns:\n    dict: Diccionario con los valores únicos por cada campo filtrable","operationId":"get_filters_facets_official_engagements_option_values_filters_facets_get","parameters":[{"name":"title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Title"}},{"name":"body","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Body"}},{"name":"subtitle","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Subtitle"}},{"name":"publication_date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)","title":"Publication Date From"},"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)"},{"name":"publication_date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)","title":"Publication Date To"},"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)"},{"name":"search_text","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Search Text"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v0/official-engagements/paginated_search":{"get":{"tags":["official-engagements"],"summary":"Búsqueda de convocatorias seleccionando los filtros deseados","description":"Búsqueda paginada con filtros, ordenación y búsqueda de texto.\n\nArgs:\n    Filtros específicos del dataset (ver build-service.yaml)\n    search_text: Búsqueda de texto libre en campos configurados\n    order_by: Campo por el cual ordenar los resultados\n    mode: Modo de ordenación (ASC/DESC)\n    format: Formato de salida (json, csv, xml, etc.)\n    size: Número de registros por página (0 = sin límite)\n    page: Número de página a recuperar\n\nReturns:\n    dict: Resultados paginados con metadata\n\nRaises:\n    HTTPException: Si hay error en el servicio (503)","operationId":"get_paginated_search_official_engagements_paginated_search_get","parameters":[{"name":"title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Title"}},{"name":"body","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Body"}},{"name":"subtitle","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Subtitle"}},{"name":"publication_date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)","title":"Publication Date From"},"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)"},{"name":"publication_date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)","title":"Publication Date To"},"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)"},{"name":"search_text","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Search Text"}},{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/_Enum_fields_3"},{"type":"null"}],"default":"-","title":"Order By"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/_Enum_Mode"},{"type":"null"}],"default":"ASC","title":"Mode"}},{"name":"format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OutputFormats","default":"json"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":0,"title":"Size"}},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":0,"title":"Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v0/official-engagements/generate_files":{"get":{"tags":["official-engagements"],"summary":"Generación de ficheros","operationId":"generate_files_official_engagements_generate_files_get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Title"}},{"name":"body","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Body"}},{"name":"subtitle","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Subtitle"}},{"name":"publication_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Publication Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v0/official-engagements/search":{"get":{"tags":["official-engagements"],"summary":"Búsqueda de convocatorias seleccionando los filtros deseados","operationId":"get_search_any_json_official_engagements_search_get","parameters":[{"name":"order_by","in":"query","required":true,"schema":{"$ref":"#/components/schemas/_Enum_fields"}},{"name":"mode","in":"query","required":true,"schema":{"$ref":"#/components/schemas/_Enum_Mode"}},{"name":"format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/OutputFormats","default":"json"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":0,"title":"Size"}},{"name":"title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Title"}},{"name":"body","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Body"}},{"name":"subtitle","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"-","title":"Subtitle"}},{"name":"publication_date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)","title":"Publication Date From"},"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)"},{"name":"publication_date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)","title":"Publication Date To"},"description":"Formato: yyyy-MM-dd Ejemplo: (2020-06-30)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["official-engagements"],"summary":"Búsqueda de convocatorias a través de consulta en formato JSON","operationId":"post_search_body_json_official_engagements_search_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PositionQuery"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Post Search Body Json Official Engagements Search Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v0/official-engagements/last_update":{"get":{"tags":["official-engagements"],"summary":"Fecha última actualización del dataset","description":"Obtiene la fecha de la última actualización del dataset en Elasticsearch.\n\nReturns:\n    dict: {\"date\": \"YYYY-MM-DD HH:MM:SS\"}\n\nRaises:\n    HTTPException: Si hay error en la consulta (503)","operationId":"get_last_update_data_official_engagements_last_update_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v0/official-engagements/search/lastUpdateData":{"get":{"tags":["official-engagements"],"summary":"Redirección a /last_update","description":"[DEPRECATED] Redirige al endpoint actualizado /last_update\nEste endpoint se mantiene por compatibilidad pero será eliminado.","operationId":"get_lastUpdateData_redirect_official_engagements_search_lastUpdateData_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"deprecated":true}},"/api/v0/official-engagements/{bid}":{"get":{"tags":["official-engagements"],"summary":"Localiza una convocatoria concreta por su identificador","description":"Busca un registro específico por su identificador de negocio.\n\nArgs:\n    bid: Identificador único del registro\n\nReturns:\n    dict: Registro encontrado o error 404\n\nRaises:\n    HTTPException: Si el registro no existe (404)","operationId":"get_id_official_engagements__bid__get","parameters":[{"name":"bid","in":"path","required":true,"schema":{"type":"string","title":"Bid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"DownloadFormats":{"type":"string","enum":["json","csv","txt"],"title":"DownloadFormats","description":"Available download formats for this service."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"OutputFormats":{"type":"string","enum":["json","csv","txt","ndjson"],"title":"OutputFormats","description":"Available output formats for this service."},"PositionQuery":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"},"subtitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtitle"},"publication_date_from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Publication Date From"},"publication_date_to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Publication Date To"},"order_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order By"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"}},"type":"object","title":"PositionQuery","example":{"body":"La consejera de Cultura...","format":"json","mode":"ASC","order_by":"data.urlId","publication_date_from":"2021/03/19","publication_date_to":"2021/03/19","size":10,"subtitle":"La comunidad andaluza es la opción nacional más deseada...","title":"Patricia del Pozo interviene..."}},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"_Enum_Mode":{"type":"string","enum":["DESC","ASC"],"title":"_Enum_Mode"},"_Enum_fields":{"type":"string","enum":["id","title","subtitle","body","acts_sheet","keywords","uri","publication_date","update_date","expiration"],"title":"_Enum_fields"},"_Enum_fields_3":{"type":"string","enum":["-","id","title","subtitle","body","acts_sheet","keywords","uri","publication_date","update_date","expiration"],"title":"_Enum_fields_3"}},"securitySchemes":{"HTTPBasic":{"type":"http","scheme":"basic"}}},"tags":[{"name":"official-engagements","description":"Datos Abiertos para convocatorias"},{"name":"option-values","description":"Opciones relacionadas con las convocatorias"}]}