{
    "id": "http://www.impo.com.uy/resources/basesIMPO.json",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title" : "Esquema JSON de las bases de IMPO",
    "description": "Descripción del esquema JSON para una norma o aviso legal",
    "type": "object",    
    "properties": {
        "tipoNorma": {
            "type": "string",
            "description" : "Tipo de norma o aviso"
        },
		"nroNorma": {
            "type": "string",
            "description" : "Número de la norma o aviso"
        },
		"anioNorma": {
            "type": "integer",
            "description" : "Año de la norma o aviso"
        },
		"secNorma": {
            "type": "string",
            "description" : "Secuencia de la norma o aviso"
        },
        "nombreNorma": {
            "type": "string",
            "description" : "Nombre descriptivo de la norma o aviso"
        },
        "leyenda": {
            "type": "string",
            "description" : "Leyenda asociada a la norma o aviso"
        },
        "urlVerImagen": {
            "type": "string",
            "description" : "URL relativa al sitio web de IMPO de la imágen de la carilla del Diario Oficial en el cual se publicó"
        },
        "urlVerOriginal": {
            "type": "string",
            "description" : "URL relativa al sitio web de IMPO del archivo original de la norma o aviso"
        },
        "urlImagenArmandUgon": {
            "type": "string",
            "description" : "URL relativa al sitio web de IMPO de la imágen de la carilla de la colección de Armand Ugon si corresponde"
        },
        "tomoArmandUgon": {
            "type": "string",
            "description" : "Tomo de la colección de Armand Ugon si corresponde"
        },
        "paginaInicialArmandUgon": {
            "type": "string",
            "description" : "Página inicial de la colección de Armand Ugon si corresponde"
        },
        "paginaFinalArmandUgon": {
            "type": "string",
            "description" : "Página final de la colección de Armand Ugon si corresponde"
        },
        "fechaPromulgacion": {
            "type": "string",
            "description" : "Fecha de promulgación"
        },
        "fechaPublicacion": {
            "type": "string",
            "description" : "Fecha de Publicación en el Diario Oficial"
        },
        "obsPublicacion": {
            "type": "string",
            "description" : "Observación respecto a la publicación"
        },
        "paginaDiar": {
            "type": "string",
            "description" : "Página del Diario Oficial en que se publicó" 
        },
        "carillaDiar": {
            "type": "integer",
            "description" : "Carilla inicial del Diario Oficial en que se publicó"
        },
        "carillaDiarFin": {
            "type": "integer",
            "description" : "Carilla final del Diario Oficial en que se publicó"
        },
        "cantidadPub": {
            "type": "integer",
            "description" : "Cantidad de publicaciones"
        },
        "fechaUltimaPub": {
            "type": "string",
            "description" : "Fecha de la última publicación"
        },
        "ultimaPubCarillaInicial": {
            "type": "integer",
            "description" : "Carilla inicial de la última publicación en el Diario Oficial si corresponde"
        },
        "ultimaPubCarillaFin": {
            "type": "integer",
            "description" : "Carilla final de la última publicación en el Diario Oficial si corresponde"
        },
		"RNLD": {
          	"type":"object",
            "required" : ["tomo", "semestre", "anio", "pagina"],
            "properties" : {
        		"tomo": {
           			"type": "string",
            		"description" : "Tomo del Registro Nacional de Leyes y Decretos"
        		},
        		"semestre": {
           			"type": "integer",
            		"description" : "Semestre del Registro Nacional de Leyes y Decretos"
        		},
        		"anio": {
           			"type": "integer",
            		"description" : "Año del Registro Nacional de Leyes y Decretos"
        		},
        		"pagina": {
           			"type": "integer",
            		"description" : "Página en el que se encuentra en el Registro Nacional de Leyes y Decretos"
        		}
            }
        },
        "tituloDiar": {
            "type": "string",
            "description" : "Título bajo el cual salió publicado en el Diario Oficial"
        },
        "vistos": {
            "type": "string",
            "description" : "Vistos de una norma"
        },
        "referenciasNorma": {
            "type": "string",
            "description" : "Referencias a nivel de la norma (puede incluir código HTML)"
        },
        "urlReferenciasNorma": {
            "type": "string",
            "description" : "URL del link a las referencias a nivel de la norma"
        },
        "indexacionNorma": {
            "type": "string",
            "description" : "Temas con la cual se indexo la norma"
        },
        "camposNorma": {
            "type": "array",
            "description" : "Campos asociados a la norma",
            "minItems": 0,
            "items": { "$ref": "#/definitions/campo"}
        },
        "articulos": {
            "type": "array",
            "minItems": 1,
            "items": { "$ref": "#/definitions/articulo" },
            "uniqueItems": true
        }       
    },
    "definitions": {
        "articulo": {
          "type" : "object",
          "required" : ["nroArticulo","secArticulo","textoArticulo"],
          "properties": {
        	"nroArticulo": {
           		"type": "string",
            	"description" : "Número del artículo"
        	},
        	"secArticulo": {
           		"type": "string",
            	"description" : "Secuencia del artículo"
        	},
        	"titulosArticulo": {
           		"type": "string",
            	"description" : "Títulos del artículo"
        	},
        	"urlArticulo": {
           		"type": "string",
            	"description" : "URL relativa al sitio web de IMPO para acceder directamente al artículo"
        	},
        	"indexacionArticulo": {
           		"type": "string",
            	"description" : "Temas con los que está indexado el artículo"
        	},
        	"campos": {
            	"type": "array",
            	"minItems": 0,
            	"items": { "$ref": "#/definitions/campo" },
            	"uniqueItems": true
        	},       
        	"textoArticulo": {
           		"type": "string",
            	"description" : "Texto del artículo (puede incluir código HTML). En algunos casos puede incluir el texto de todos los artículos de la norma, quedando todo el texto en el artículo 1 y no desglosado por c/artículo"
        	},
        	"notasDelArticulo": {
           		"type": "string",
            	"description" : "Notas a nivel del artículo (puede incluir código HTML)"
        	},
        	"referenciasAlArticulo": {
           		"type": "string",
            	"description" : "Referencias a nivel del artículo (puede incluir código HTML)"
        	},
        	"urlTodaLaNorma": {
           		"type": "string",
            	"description" : "URL relativa al sitio web de IMPO de la norma"
        	},
        	"urlReferenciasAlArticulo": {
           		"type": "string",
            	"description" : "URL relativa al sitio web de IMPO de las referencias a nivel del artículo"
        	},
        	"firmantes": {
           		"type": "string",
            	"description" : "Firmantes"
        	}
          }
        },
        "campo": {
          	"type":"object",
            "required" : ["nombreCampo", "valor"],
            "properties" : {
        		"nombreCampo": {
           			"type": "string",
            		"description" : "Nombre del campo"
        		},
        		"valor": {
           			"type": "string",
            		"description" : "Valor del campo"
        		}
            }
        }
    }
}
