{"openapi": "3.1.0", "info": {"title": "Apicultura Lab", "version": "1.0.0", "description": "Lectura p\u00fablica del laboratorio: indicadores, valores con su linaje y sus banderas, fuentes, snapshots y cat\u00e1logo. La API no escribe."}, "paths": {"/api/v1/indicadores": {"get": {"operationId": "lab_core_api_rutas_listar_indicadores", "summary": "Listar Indicadores", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaginaIndicadores"}}}}}, "description": "Indicadores publicados, con la versi\u00f3n de ficha que hoy rige cada uno."}, "head": {"operationId": "lab_core_api_rutas_listar_indicadores", "summary": "Listar Indicadores", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaginaIndicadores"}}}}}, "description": "Indicadores publicados, con la versi\u00f3n de ficha que hoy rige cada uno."}}, "/api/v1/indicadores/{slug}": {"get": {"operationId": "lab_core_api_rutas_leer_indicador", "summary": "Leer Indicador", "parameters": [{"in": "path", "name": "slug", "schema": {"title": "Slug", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IndicadorOut"}}}}}, "description": "Un indicador, en la misma forma en que sale en la lista: es el recurso de su IRI."}, "head": {"operationId": "lab_core_api_rutas_leer_indicador", "summary": "Leer Indicador", "parameters": [{"in": "path", "name": "slug", "schema": {"title": "Slug", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IndicadorOut"}}}}}, "description": "Un indicador, en la misma forma en que sale en la lista: es el recurso de su IRI."}}, "/api/v1/indicadores/{slug}/valores": {"get": {"operationId": "lab_core_api_rutas_listar_valores", "summary": "Listar Valores", "parameters": [{"in": "path", "name": "slug", "schema": {"title": "Slug", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaginaValores"}}}}}, "description": "Valores vigentes de un indicador, filtrables por territorio, periodo y dimensi\u00f3n."}, "head": {"operationId": "lab_core_api_rutas_listar_valores", "summary": "Listar Valores", "parameters": [{"in": "path", "name": "slug", "schema": {"title": "Slug", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaginaValores"}}}}}, "description": "Valores vigentes de un indicador, filtrables por territorio, periodo y dimensi\u00f3n."}}, "/api/v1/fuentes": {"get": {"operationId": "lab_core_api_rutas_listar_fuentes", "summary": "Listar Fuentes", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaginaFuentes"}}}}}, "description": "Fichas de fuente registradas, en lo que tienen de p\u00fablico."}, "head": {"operationId": "lab_core_api_rutas_listar_fuentes", "summary": "Listar Fuentes", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaginaFuentes"}}}}}, "description": "Fichas de fuente registradas, en lo que tienen de p\u00fablico."}}, "/api/v1/snapshots/{sha256}": {"get": {"operationId": "lab_core_api_rutas_leer_snapshot", "summary": "Leer Snapshot", "parameters": [{"in": "path", "name": "sha256", "schema": {"title": "Sha256", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/SnapshotOut"}, {"$ref": "#/components/schemas/SnapshotResumidoOut"}], "title": "Response"}}}}}, "description": "Identidad de una captura por su sha256. El archivo no viaja por la API.\n\nLa respuesta llega en una de las dos formas que el esquema declara. Ninguna trae el\ncontenido y ninguna trae la ruta del almac\u00e9n."}, "head": {"operationId": "lab_core_api_rutas_leer_snapshot", "summary": "Leer Snapshot", "parameters": [{"in": "path", "name": "sha256", "schema": {"title": "Sha256", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/SnapshotOut"}, {"$ref": "#/components/schemas/SnapshotResumidoOut"}], "title": "Response"}}}}}, "description": "Identidad de una captura por su sha256. El archivo no viaja por la API.\n\nLa respuesta llega en una de las dos formas que el esquema declara. Ninguna trae el\ncontenido y ninguna trae la ruta del almac\u00e9n."}}, "/api/v1/publicaciones": {"get": {"operationId": "lab_core_api_rutas_listar_publicaciones", "summary": "Listar Publicaciones", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaginaPublicaciones"}}}}}, "description": "Publicaciones que el laboratorio sostiene, con su licencia calculada y su sha256.\n\nSalen las publicadas y nada m\u00e1s. Un borrador y una publicaci\u00f3n materializada sin aprobar\nson estados internos: el paquete puede existir en disco y la firma del comit\u00e9 todav\u00eda no,\nque es exactamente la distinci\u00f3n que el AC-1.9 pide sostener."}, "head": {"operationId": "lab_core_api_rutas_listar_publicaciones", "summary": "Listar Publicaciones", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaginaPublicaciones"}}}}}, "description": "Publicaciones que el laboratorio sostiene, con su licencia calculada y su sha256.\n\nSalen las publicadas y nada m\u00e1s. Un borrador y una publicaci\u00f3n materializada sin aprobar\nson estados internos: el paquete puede existir en disco y la firma del comit\u00e9 todav\u00eda no,\nque es exactamente la distinci\u00f3n que el AC-1.9 pide sostener."}}, "/api/v1/publicaciones/{uuid_publicacion}/archivos/{nombre}": {"get": {"operationId": "lab_core_api_rutas_descargar_archivo", "summary": "Descargar Archivo", "parameters": [{"in": "path", "name": "uuid_publicacion", "schema": {"format": "uuid", "title": "Uuid Publicacion", "type": "string"}, "required": true}, {"in": "path", "name": "nombre", "schema": {"title": "Nombre", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Una pieza de un paquete publicado, vuelta a medir antes de entregarse.\n\nEs un GET y no abre ninguna puerta: la API sigue siendo de solo lectura por sus dos capas.\nLo que agrega es la \u00fanica salida por la que los bytes del paquete llegan a alguien, y por\neso es donde tiene que volver a comprobarse que siguen siendo los que se publicaron.\n\nEl identificador se declara como `UUID` por la misma raz\u00f3n que en la puerta de la l\u00e1pida:\ncon el texto crudo la conversi\u00f3n quedaba en el ORM, donde el fallo no es una ausencia sino\nuna excepci\u00f3n sin due\u00f1o, y un valor que no es un UUID sal\u00eda como 500 (SANE-159)."}, "head": {"operationId": "lab_core_api_rutas_descargar_archivo", "summary": "Descargar Archivo", "parameters": [{"in": "path", "name": "uuid_publicacion", "schema": {"format": "uuid", "title": "Uuid Publicacion", "type": "string"}, "required": true}, {"in": "path", "name": "nombre", "schema": {"title": "Nombre", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Una pieza de un paquete publicado, vuelta a medir antes de entregarse.\n\nEs un GET y no abre ninguna puerta: la API sigue siendo de solo lectura por sus dos capas.\nLo que agrega es la \u00fanica salida por la que los bytes del paquete llegan a alguien, y por\neso es donde tiene que volver a comprobarse que siguen siendo los que se publicaron.\n\nEl identificador se declara como `UUID` por la misma raz\u00f3n que en la puerta de la l\u00e1pida:\ncon el texto crudo la conversi\u00f3n quedaba en el ORM, donde el fallo no es una ausencia sino\nuna excepci\u00f3n sin due\u00f1o, y un valor que no es un UUID sal\u00eda como 500 (SANE-159)."}}, "/api/v1/publicaciones/{uuid_publicacion}/retirada": {"get": {"operationId": "lab_core_api_rutas_leer_lapida", "summary": "Leer Lapida", "parameters": [{"in": "path", "name": "uuid_publicacion", "schema": {"format": "uuid", "title": "Uuid Publicacion", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "La l\u00e1pida de una publicaci\u00f3n retirada: qu\u00e9 estuvo publicado y con qu\u00e9 hash (SANE-105).\n\nEl retiro deja dos mitades y hasta ahora solo una ten\u00eda puerta. La errata dice por qu\u00e9 y la\nlee cualquiera; la l\u00e1pida dice qu\u00e9, o sea la versi\u00f3n y el sha256 de lo que estuvo en la\ncalle, y solo la ve\u00eda quien tuviera acceso al disco. Quien guard\u00f3 una copia ayer necesita\nesa mitad para saber cu\u00e1l guard\u00f3.\n\nLo que se lee es el archivo que el retiro escribi\u00f3 y no la fila, para que no haya dos\nafirmaciones separables sobre el mismo acto. Lo que se entrega es el subconjunto que\n`lapida_publica` nombra: leer de una sola fuente y elegir qu\u00e9 de ella sale son dos\ndecisiones distintas y esta puerta naci\u00f3 con una sola de las dos (SANE-157).\n\nEl identificador se declara como `UUID` y no como texto, as\u00ed que la forma de la entrada se\ncomprueba antes de tocar la base. Con el texto crudo, un valor que no es un UUID reventaba\nen el filtro y sal\u00eda como error del laboratorio (SANE-158)."}, "head": {"operationId": "lab_core_api_rutas_leer_lapida", "summary": "Leer Lapida", "parameters": [{"in": "path", "name": "uuid_publicacion", "schema": {"format": "uuid", "title": "Uuid Publicacion", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "La l\u00e1pida de una publicaci\u00f3n retirada: qu\u00e9 estuvo publicado y con qu\u00e9 hash (SANE-105).\n\nEl retiro deja dos mitades y hasta ahora solo una ten\u00eda puerta. La errata dice por qu\u00e9 y la\nlee cualquiera; la l\u00e1pida dice qu\u00e9, o sea la versi\u00f3n y el sha256 de lo que estuvo en la\ncalle, y solo la ve\u00eda quien tuviera acceso al disco. Quien guard\u00f3 una copia ayer necesita\nesa mitad para saber cu\u00e1l guard\u00f3.\n\nLo que se lee es el archivo que el retiro escribi\u00f3 y no la fila, para que no haya dos\nafirmaciones separables sobre el mismo acto. Lo que se entrega es el subconjunto que\n`lapida_publica` nombra: leer de una sola fuente y elegir qu\u00e9 de ella sale son dos\ndecisiones distintas y esta puerta naci\u00f3 con una sola de las dos (SANE-157).\n\nEl identificador se declara como `UUID` y no como texto, as\u00ed que la forma de la entrada se\ncomprueba antes de tocar la base. Con el texto crudo, un valor que no es un UUID reventaba\nen el filtro y sal\u00eda como error del laboratorio (SANE-158)."}}, "/api/v1/ediciones": {"get": {"operationId": "lab_core_api_rutas_listar_ediciones", "summary": "Listar Ediciones", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaginaEdiciones"}}}}}, "description": "Ediciones publicadas del bolet\u00edn, con el sha256 de cada pieza y d\u00f3nde bajarla."}, "head": {"operationId": "lab_core_api_rutas_listar_ediciones", "summary": "Listar Ediciones", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaginaEdiciones"}}}}}, "description": "Ediciones publicadas del bolet\u00edn, con el sha256 de cada pieza y d\u00f3nde bajarla."}}, "/api/v1/ediciones/{uuid_edicion}/artefactos/{idioma}/{formato}": {"get": {"operationId": "lab_core_api_rutas_descargar_artefacto", "summary": "Descargar Artefacto", "parameters": [{"in": "path", "name": "uuid_edicion", "schema": {"format": "uuid", "title": "Uuid Edicion", "type": "string"}, "required": true}, {"in": "path", "name": "idioma", "schema": {"title": "Idioma", "type": "string"}, "required": true}, {"in": "path", "name": "formato", "schema": {"title": "Formato", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Una pieza de una edici\u00f3n publicada, vuelta a medir antes de entregarse.\n\nLlega con la licencia calculada de la edici\u00f3n en la cabecera `Link`, igual que la pieza de\nun paquete, porque quien baja el PDF suelto no ve la lista que la declara."}, "head": {"operationId": "lab_core_api_rutas_descargar_artefacto", "summary": "Descargar Artefacto", "parameters": [{"in": "path", "name": "uuid_edicion", "schema": {"format": "uuid", "title": "Uuid Edicion", "type": "string"}, "required": true}, {"in": "path", "name": "idioma", "schema": {"title": "Idioma", "type": "string"}, "required": true}, {"in": "path", "name": "formato", "schema": {"title": "Formato", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Una pieza de una edici\u00f3n publicada, vuelta a medir antes de entregarse.\n\nLlega con la licencia calculada de la edici\u00f3n en la cabecera `Link`, igual que la pieza de\nun paquete, porque quien baja el PDF suelto no ve la lista que la declara."}}, "/api/v1/errata": {"get": {"operationId": "lab_core_api_rutas_listar_errata", "summary": "Listar Errata", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaginaErrata"}}}}}, "description": "Errata registrada sobre publicaciones anteriores; p\u00fablica por definici\u00f3n."}, "head": {"operationId": "lab_core_api_rutas_listar_errata", "summary": "Listar Errata", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PaginaErrata"}}}}}, "description": "Errata registrada sobre publicaciones anteriores; p\u00fablica por definici\u00f3n."}}, "/api/v1/fichas/{uuid_ficha}": {"get": {"operationId": "lab_core_api_rutas_leer_ficha", "summary": "Leer Ficha", "parameters": [{"in": "path", "name": "uuid_ficha", "schema": {"format": "uuid", "title": "Uuid Ficha", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FichaCompletaOut"}}}}}, "description": "La ficha de un indicador con su m\u00e9todo, sus limitaciones y su historial de versiones."}, "head": {"operationId": "lab_core_api_rutas_leer_ficha", "summary": "Leer Ficha", "parameters": [{"in": "path", "name": "uuid_ficha", "schema": {"format": "uuid", "title": "Uuid Ficha", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FichaCompletaOut"}}}}}, "description": "La ficha de un indicador con su m\u00e9todo, sus limitaciones y su historial de versiones."}}, "/api/v1/linaje/{valor_id}": {"get": {"operationId": "lab_core_api_rutas_leer_linaje", "summary": "Leer Linaje", "parameters": [{"in": "path", "name": "valor_id", "schema": {"format": "uuid", "title": "Valor Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Linaje de una cifra en PROV-JSON: de qu\u00e9 ficha, qu\u00e9 dataset y qu\u00e9 snapshot sali\u00f3."}, "head": {"operationId": "lab_core_api_rutas_leer_linaje", "summary": "Leer Linaje", "parameters": [{"in": "path", "name": "valor_id", "schema": {"format": "uuid", "title": "Valor Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Linaje de una cifra en PROV-JSON: de qu\u00e9 ficha, qu\u00e9 dataset y qu\u00e9 snapshot sali\u00f3."}}, "/api/v1/datasets/{identificador}": {"get": {"operationId": "lab_core_api_rutas_leer_dataset", "summary": "Leer Dataset", "parameters": [{"in": "path", "name": "identificador", "schema": {"title": "Identificador", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DatasetOut"}}}}}, "description": "El dataset que el linaje de una cifra publicada nombra: es el recurso de su IRI."}, "head": {"operationId": "lab_core_api_rutas_leer_dataset", "summary": "Leer Dataset", "parameters": [{"in": "path", "name": "identificador", "schema": {"title": "Identificador", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DatasetOut"}}}}}, "description": "El dataset que el linaje de una cifra publicada nombra: es el recurso de su IRI."}}, "/api/v1/ejecuciones/{uuid_ejecucion}": {"get": {"operationId": "lab_core_api_rutas_leer_ejecucion", "summary": "Leer Ejecucion", "parameters": [{"in": "path", "name": "uuid_ejecucion", "schema": {"format": "uuid", "title": "Uuid Ejecucion", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EjecucionOut"}}}}}, "description": "La corrida que produjo una cifra publicada: es el recurso de la IRI de su actividad."}, "head": {"operationId": "lab_core_api_rutas_leer_ejecucion", "summary": "Leer Ejecucion", "parameters": [{"in": "path", "name": "uuid_ejecucion", "schema": {"format": "uuid", "title": "Uuid Ejecucion", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EjecucionOut"}}}}}, "description": "La corrida que produjo una cifra publicada: es el recurso de la IRI de su actividad."}}, "/api/v1/catalogo.jsonld": {"get": {"operationId": "lab_core_api_rutas_leer_catalogo", "summary": "Leer Catalogo", "parameters": [], "responses": {"200": {"description": "OK"}}, "description": "Cat\u00e1logo del laboratorio en DCAT, serializado como JSON-LD."}, "head": {"operationId": "lab_core_api_rutas_leer_catalogo", "summary": "Leer Catalogo", "parameters": [], "responses": {"200": {"description": "OK"}}, "description": "Cat\u00e1logo del laboratorio en DCAT, serializado como JSON-LD."}}, "/api/v1/catalogo.ttl": {"get": {"operationId": "lab_core_api_rutas_leer_catalogo_turtle", "summary": "Leer Catalogo Turtle", "parameters": [], "responses": {"200": {"description": "OK"}}, "description": "El mismo cat\u00e1logo en Turtle, que es el formato en que se lee un grafo RDF a ojo.\n\nNo es otro cat\u00e1logo ni una vista reducida: es el mismo grafo en otra sintaxis, y un test lo\ncomprueba comparando los dos grafos y no los dos textos."}, "head": {"operationId": "lab_core_api_rutas_leer_catalogo_turtle", "summary": "Leer Catalogo Turtle", "parameters": [], "responses": {"200": {"description": "OK"}}, "description": "El mismo cat\u00e1logo en Turtle, que es el formato en que se lee un grafo RDF a ojo.\n\nNo es otro cat\u00e1logo ni una vista reducida: es el mismo grafo en otra sintaxis, y un test lo\ncomprueba comparando los dos grafos y no los dos textos."}}}, "components": {"schemas": {"FichaOut": {"description": "Versi\u00f3n de la ficha con que se calcul\u00f3 una cifra.", "properties": {"uuid": {"title": "Uuid", "type": "string"}, "version": {"title": "Version", "type": "string"}, "vigente_desde": {"format": "date", "title": "Vigente Desde", "type": "string"}, "precision_publicacion": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Precision Publicacion"}}, "required": ["uuid", "version", "vigente_desde", "precision_publicacion"], "title": "FichaOut", "type": "object"}, "IndicadorOut": {"description": "Definici\u00f3n estable de una serie, con la versi\u00f3n de ficha que hoy rige.\n\n`licencia_de_publicacion` es la licencia calculada de la \u00faltima publicaci\u00f3n viva del dataset\nal que el indicador pertenece, y va en nulo mientras no haya ninguna. Es el tercer lugar que\nel AC-1.8b pide para la licencia de salida.", "properties": {"identificador": {"title": "Identificador", "type": "string"}, "uuid": {"title": "Uuid", "type": "string"}, "nombre": {"title": "Nombre", "type": "string"}, "nombre_en": {"title": "Nombre En", "type": "string"}, "definicion": {"title": "Definicion", "type": "string"}, "definicion_en": {"title": "Definicion En", "type": "string"}, "unidad_de_medida": {"title": "Unidad De Medida", "type": "string"}, "unidad_de_medida_en": {"title": "Unidad De Medida En", "type": "string"}, "tipo_periodo": {"title": "Tipo Periodo", "type": "string"}, "derivado": {"title": "Derivado", "type": "boolean"}, "dimensiones": {"items": {"type": "string"}, "title": "Dimensiones", "type": "array"}, "licencia_de_publicacion": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licencia De Publicacion"}, "ficha_vigente": {"anyOf": [{"$ref": "#/components/schemas/FichaOut"}, {"type": "null"}]}}, "required": ["identificador", "uuid", "nombre", "nombre_en", "definicion", "definicion_en", "unidad_de_medida", "unidad_de_medida_en", "tipo_periodo", "derivado", "dimensiones", "licencia_de_publicacion", "ficha_vigente"], "title": "IndicadorOut", "type": "object"}, "PaginaIndicadores": {"properties": {"items": {"items": {"$ref": "#/components/schemas/IndicadorOut"}, "title": "Items", "type": "array"}, "siguiente": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Siguiente"}}, "required": ["items", "siguiente"], "title": "PaginaIndicadores", "type": "object"}, "PaginaValores": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ValorOut"}, "title": "Items", "type": "array"}, "siguiente": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Siguiente"}}, "required": ["items", "siguiente"], "title": "PaginaValores", "type": "object"}, "TerritorioOut": {"description": "Unidad territorial de una celda, por su c\u00f3digo y nivel.", "properties": {"pais": {"title": "Pais", "type": "string"}, "nivel": {"title": "Nivel", "type": "string"}, "codigo": {"title": "Codigo", "type": "string"}, "nombre": {"title": "Nombre", "type": "string"}}, "required": ["pais", "nivel", "codigo", "nombre"], "title": "TerritorioOut", "type": "object"}, "ValorOut": {"description": "Una celda publicada, con sus banderas y el enlace a su linaje.", "properties": {"id": {"title": "Id", "type": "string"}, "indicador": {"title": "Indicador", "type": "string"}, "ficha": {"$ref": "#/components/schemas/FichaOut"}, "periodo": {"title": "Periodo", "type": "string"}, "tipo_periodo": {"title": "Tipo Periodo", "type": "string"}, "periodo_inicio": {"format": "date", "title": "Periodo Inicio", "type": "string"}, "periodo_fin": {"format": "date", "title": "Periodo Fin", "type": "string"}, "territorio": {"anyOf": [{"$ref": "#/components/schemas/TerritorioOut"}, {"type": "null"}]}, "dimensiones": {"additionalProperties": {"type": "string"}, "title": "Dimensiones", "type": "object"}, "cifra": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Cifra"}, "obs_status": {"title": "Obs Status", "type": "string"}, "conf_status": {"title": "Conf Status", "type": "string"}, "suprimido": {"title": "Suprimido", "type": "boolean"}, "ejecucion": {"title": "Ejecucion", "type": "string"}, "snapshot": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Snapshot"}, "linaje": {"title": "Linaje", "type": "string"}}, "required": ["id", "indicador", "ficha", "periodo", "tipo_periodo", "periodo_inicio", "periodo_fin", "territorio", "dimensiones", "cifra", "obs_status", "conf_status", "suprimido", "ejecucion", "snapshot", "linaje"], "title": "ValorOut", "type": "object"}, "FuenteOut": {"description": "Ficha de fuente en lo que tiene de p\u00fablico.", "properties": {"id": {"title": "Id", "type": "string"}, "uuid": {"title": "Uuid", "type": "string"}, "nombre": {"title": "Nombre", "type": "string"}, "organismo": {"title": "Organismo", "type": "string"}, "tipo": {"title": "Tipo", "type": "string"}, "via_captura": {"title": "Via Captura", "type": "string"}, "estado": {"title": "Estado", "type": "string"}, "licencia": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licencia"}, "licencia_url_terminos": {"title": "Licencia Url Terminos", "type": "string"}}, "required": ["id", "uuid", "nombre", "organismo", "tipo", "via_captura", "estado", "licencia", "licencia_url_terminos"], "title": "FuenteOut", "type": "object"}, "PaginaFuentes": {"properties": {"items": {"items": {"$ref": "#/components/schemas/FuenteOut"}, "title": "Items", "type": "array"}, "siguiente": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Siguiente"}}, "required": ["items", "siguiente"], "title": "PaginaFuentes", "type": "object"}, "SnapshotOut": {"description": "Custodia de una captura. El archivo no viaja por aqu\u00ed: solo su identidad.", "properties": {"sha256": {"title": "Sha256", "type": "string"}, "fuente": {"title": "Fuente", "type": "string"}, "capturado_en": {"title": "Capturado En", "type": "string"}, "bytes": {"title": "Bytes", "type": "integer"}, "mime": {"title": "Mime", "type": "string"}, "estado": {"title": "Estado", "type": "string"}, "clasificacion": {"title": "Clasificacion", "type": "string"}, "via_captura": {"title": "Via Captura", "type": "string"}}, "required": ["sha256", "fuente", "capturado_en", "bytes", "mime", "estado", "clasificacion", "via_captura"], "title": "SnapshotOut", "type": "object"}, "SnapshotResumidoOut": {"description": "Identidad de una captura en su forma reducida.", "properties": {"sha256": {"title": "Sha256", "type": "string"}, "fuente": {"title": "Fuente", "type": "string"}, "capturado_en": {"title": "Capturado En", "type": "string"}, "bytes": {"title": "Bytes", "type": "integer"}}, "required": ["sha256", "fuente", "capturado_en", "bytes"], "title": "SnapshotResumidoOut", "type": "object"}, "PaginaPublicaciones": {"properties": {"items": {"items": {"$ref": "#/components/schemas/PublicacionOut"}, "title": "Items", "type": "array"}, "siguiente": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Siguiente"}}, "required": ["items", "siguiente"], "title": "PaginaPublicaciones", "type": "object"}, "PublicacionOut": {"description": "Una publicaci\u00f3n versionada con su licencia calculada y el sha256 de su paquete.\n\nFuera quedan la ruta del paquete, qui\u00e9n la cre\u00f3 y qui\u00e9n la aprob\u00f3. La firma del comit\u00e9 es\nun control interno, y qui\u00e9n firm\u00f3 qu\u00e9 es informaci\u00f3n sobre las personas del laboratorio.\n\n`licencia` va en nulo cuando el paquete de la publicaci\u00f3n no corrobora la que declara la\nfila. Es ausencia de corroboraci\u00f3n y no ausencia de licencia, y se dice as\u00ed en vez de\nrellenarse con la fila, que es el lado que puede haberse movido.", "properties": {"uuid": {"title": "Uuid", "type": "string"}, "titulo": {"title": "Titulo", "type": "string"}, "titulo_en": {"title": "Titulo En", "type": "string"}, "version": {"title": "Version", "type": "string"}, "licencia": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licencia"}, "granularidad": {"title": "Granularidad", "type": "string"}, "dataset": {"title": "Dataset", "type": "string"}, "sha256": {"title": "Sha256", "type": "string"}, "publicada_en": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Publicada En"}}, "required": ["uuid", "titulo", "titulo_en", "version", "licencia", "granularidad", "dataset", "sha256", "publicada_en"], "title": "PublicacionOut", "type": "object"}, "ArtefactoOut": {"description": "Una pieza de una edici\u00f3n: un idioma, un formato, el sha256 de sus bytes y d\u00f3nde bajarla.", "properties": {"idioma": {"title": "Idioma", "type": "string"}, "formato": {"title": "Formato", "type": "string"}, "sha256": {"title": "Sha256", "type": "string"}, "bytes": {"title": "Bytes", "type": "integer"}, "url": {"title": "Url", "type": "string"}}, "required": ["idioma", "formato", "sha256", "bytes", "url"], "title": "ArtefactoOut", "type": "object"}, "EdicionOut": {"description": "Una edici\u00f3n publicada del bolet\u00edn, sin la ruta en disco ni las personas que la firmaron.", "properties": {"uuid": {"title": "Uuid", "type": "string"}, "titulo": {"title": "Titulo", "type": "string"}, "titulo_en": {"title": "Titulo En", "type": "string"}, "periodo": {"title": "Periodo", "type": "string"}, "tipo_periodo": {"title": "Tipo Periodo", "type": "string"}, "version": {"title": "Version", "type": "string"}, "licencia": {"title": "Licencia", "type": "string"}, "identificador_persistente": {"title": "Identificador Persistente", "type": "string"}, "publicada_en": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Publicada En"}, "artefactos": {"items": {"$ref": "#/components/schemas/ArtefactoOut"}, "title": "Artefactos", "type": "array"}}, "required": ["uuid", "titulo", "titulo_en", "periodo", "tipo_periodo", "version", "licencia", "identificador_persistente", "publicada_en", "artefactos"], "title": "EdicionOut", "type": "object"}, "PaginaEdiciones": {"properties": {"items": {"items": {"$ref": "#/components/schemas/EdicionOut"}, "title": "Items", "type": "array"}, "siguiente": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Siguiente"}}, "required": ["items", "siguiente"], "title": "PaginaEdiciones", "type": "object"}, "ErrataOut": {"description": "Correcci\u00f3n registrada sobre algo ya publicado, con su texto en los dos idiomas.\n\nLo corregido es un paquete de datos o una edici\u00f3n, nunca los dos: la fila declara uno y el\notro sale en nulo, as\u00ed que quien lee sabe qu\u00e9 clase de cosa se corrigi\u00f3 sin deducirlo.", "properties": {"uuid": {"title": "Uuid", "type": "string"}, "publicacion": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Publicacion"}, "edicion": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Edicion"}, "causa": {"title": "Causa", "type": "string"}, "version_afectada": {"title": "Version Afectada", "type": "string"}, "version_que_corrige": {"title": "Version Que Corrige", "type": "string"}, "texto_publico": {"title": "Texto Publico", "type": "string"}, "texto_publico_en": {"title": "Texto Publico En", "type": "string"}, "registrada_en": {"title": "Registrada En", "type": "string"}}, "required": ["uuid", "publicacion", "edicion", "causa", "version_afectada", "version_que_corrige", "texto_publico", "texto_publico_en", "registrada_en"], "title": "ErrataOut", "type": "object"}, "PaginaErrata": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ErrataOut"}, "title": "Items", "type": "array"}, "siguiente": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Siguiente"}}, "required": ["items", "siguiente"], "title": "PaginaErrata", "type": "object"}, "FichaCompletaOut": {"description": "La ficha de un indicador con su m\u00e9todo y su historial, que es lo que se pide por su uuid.\n\nEs la superficie larga y `FichaOut` la corta. La corta viaja pegada a cada celda y por eso\nlleva tres claves; esta se pide una vez y trae lo que hace falta para saber con qu\u00e9 se\ncalcul\u00f3 la cifra que uno cita (SANE-304).", "properties": {"uuid": {"title": "Uuid", "type": "string"}, "indicador": {"title": "Indicador", "type": "string"}, "version": {"title": "Version", "type": "string"}, "vigente_desde": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Vigente Desde"}, "vigente_hasta": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "title": "Vigente Hasta"}, "fecha_creacion": {"format": "date", "title": "Fecha Creacion", "type": "string"}, "fecha_revision": {"format": "date", "title": "Fecha Revision", "type": "string"}, "tipo_valor": {"title": "Tipo Valor", "type": "string"}, "formula": {"title": "Formula", "type": "string"}, "formula_en": {"title": "Formula En", "type": "string"}, "metodo_estimacion": {"title": "Metodo Estimacion", "type": "string"}, "metodo_estimacion_en": {"title": "Metodo Estimacion En", "type": "string"}, "regla_propagacion": {"title": "Regla Propagacion", "type": "string"}, "regla_propagacion_en": {"title": "Regla Propagacion En", "type": "string"}, "quiebres_serie": {"items": {}, "title": "Quiebres Serie", "type": "array"}, "historial": {"items": {}, "title": "Historial", "type": "array"}, "fuentes": {"items": {}, "title": "Fuentes", "type": "array"}, "periodo_referencia": {"title": "Periodo Referencia", "type": "string"}, "periodo_referencia_en": {"title": "Periodo Referencia En", "type": "string"}, "frecuencia": {"title": "Frecuencia", "type": "string"}, "frecuencia_en": {"title": "Frecuencia En", "type": "string"}, "cobertura_geografica": {"title": "Cobertura Geografica", "type": "string"}, "cobertura_geografica_en": {"title": "Cobertura Geografica En", "type": "string"}, "serie_inicio": {"title": "Serie Inicio", "type": "string"}, "serie_inicio_en": {"title": "Serie Inicio En", "type": "string"}, "desagregaciones": {"items": {}, "title": "Desagregaciones", "type": "array"}, "confidencialidad": {"title": "Confidencialidad", "type": "string"}, "confidencialidad_en": {"title": "Confidencialidad En", "type": "string"}, "limitaciones": {"title": "Limitaciones", "type": "string"}, "limitaciones_en": {"title": "Limitaciones En", "type": "string"}, "politica_revision": {"title": "Politica Revision", "type": "string"}, "politica_revision_en": {"title": "Politica Revision En", "type": "string"}, "licencia": {"title": "Licencia", "type": "string"}, "precision_publicacion": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Precision Publicacion"}}, "required": ["uuid", "indicador", "version", "vigente_desde", "vigente_hasta", "fecha_creacion", "fecha_revision", "tipo_valor", "formula", "formula_en", "metodo_estimacion", "metodo_estimacion_en", "regla_propagacion", "regla_propagacion_en", "quiebres_serie", "historial", "fuentes", "periodo_referencia", "periodo_referencia_en", "frecuencia", "frecuencia_en", "cobertura_geografica", "cobertura_geografica_en", "serie_inicio", "serie_inicio_en", "desagregaciones", "confidencialidad", "confidencialidad_en", "limitaciones", "limitaciones_en", "politica_revision", "politica_revision_en", "licencia", "precision_publicacion"], "title": "FichaCompletaOut", "type": "object"}, "DatasetOut": {"description": "El dataset que una IRI del linaje nombra, sin su esquema interno ni su cruce.", "properties": {"identificador": {"title": "Identificador", "type": "string"}, "uuid": {"title": "Uuid", "type": "string"}, "nombre": {"title": "Nombre", "type": "string"}, "nombre_en": {"title": "Nombre En", "type": "string"}, "fuente": {"title": "Fuente", "type": "string"}, "periodicidad": {"title": "Periodicidad", "type": "string"}}, "required": ["identificador", "uuid", "nombre", "nombre_en", "fuente", "periodicidad"], "title": "DatasetOut", "type": "object"}, "EjecucionOut": {"description": "La corrida que una IRI del linaje nombra, sin su mensaje de cierre.", "properties": {"uuid": {"title": "Uuid", "type": "string"}, "comando": {"title": "Comando", "type": "string"}, "pipeline": {"title": "Pipeline", "type": "string"}, "periodo": {"title": "Periodo", "type": "string"}, "inicio": {"title": "Inicio", "type": "string"}, "fin": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Fin"}, "resultado": {"title": "Resultado", "type": "string"}}, "required": ["uuid", "comando", "pipeline", "periodo", "inicio", "fin", "resultado"], "title": "EjecucionOut", "type": "object"}}}, "servers": []}