openapi: 3.0.1 info: title: Caitel_Caricamento-Rcee description: CAITEL - Api pubblicate per caricare i Rapporti Controllo Efficienza Energetica contact: name: Supporto Carica Rapporti Caitel url: https://servizi.regione.liguria.it/page/welcome/CAITEL email: caitel-api-assistenza@liguriadigitale.it version: 1.0.5 servers: - url: https://services-caitel.regione.liguria.it/api/caricamento-rcee description: Url Server di PRODUZIONE specifico per il caricamento dei rapporti x-sandbox: false - url: https://services-caitel-test.regione.liguria.it/api/caricamento-rcee description: Url Server di TEST specifico per il caricamento dei rapporti x-sandbox: false security: - BearerAuth: [] tags: - name: caricamento-rcee-controller description: Operazioni relative al caricamento dei rapporti - name: sistema-controller description: Operazioni di sistema paths: /rapporti/nuovo-rapporto: post: tags: - caricamento-rcee-controller summary: Insert nuovo rapporto e consolidalo description: Caricamento nuovo rapporto per impianto - gruppo della ditta manutentrice operationId: caricaNuovoRapporto parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" requestBody: content: application/json: schema: $ref: "#/components/schemas/AggiungiEConsolidaRapporto" required: true responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/AggiungiEConsolidaRapportoRespWithReq" "400": description: Dati sintatticamente errati content: application/problem+json: schema: $ref: "#/components/schemas/BadRequestCaitelResponse" "403": description: Richiesta non autorizzata content: application/problem+json: schema: $ref: "#/components/schemas/ForbiddenCaitelResponse" "404": description: Non trovati content: application/problem+json: schema: $ref: "#/components/schemas/NotFoundCaitelResponse" "500": description: Internal server error content: application/problem+json: schema: $ref: "#/components/schemas/InternalServerErrorCaitelResponse" /status: get: tags: - sistema-controller summary: Api di verifica risposta sistema description: Fornisce informazioni sullo stato del sistema operationId: informazioniSistema parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/BooleanProblemAndJson" "400": description: Dati sintatticamente errati content: application/problem+json: schema: $ref: "#/components/schemas/BadRequestCaitelResponse" "403": description: Richiesta non autorizzata content: application/problem+json: schema: $ref: "#/components/schemas/ForbiddenCaitelResponse" "404": description: Non trovati content: application/problem+json: schema: $ref: "#/components/schemas/NotFoundCaitelResponse" "500": description: Internal server error content: application/problem+json: schema: $ref: "#/components/schemas/InternalServerErrorCaitelResponse" /status/operatore: get: tags: - sistema-controller summary: Api di verifica utilizzo del sistema da parte dell'operatore description: Fornisce informazioni sullo stato del sistema per l'operatore utilizzato nell'invocazione operationId: informazioniSistemaPerUtente parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/BooleanProblemAndJson" "400": description: Dati sintatticamente errati content: application/problem+json: schema: $ref: "#/components/schemas/BadRequestCaitelResponse" "403": description: Richiesta non autorizzata content: application/problem+json: schema: $ref: "#/components/schemas/ForbiddenCaitelResponse" "404": description: Non trovati content: application/problem+json: schema: $ref: "#/components/schemas/NotFoundCaitelResponse" "500": description: Internal server error content: application/problem+json: schema: $ref: "#/components/schemas/InternalServerErrorCaitelResponse" components: schemas: AggiungiEConsolidaRapporto: required: - bollinoDaPagare - classeTariffaria - dataIntervento - ditta - gruppoOmogeneo - impianto - impiantoPuoFunzionare - librettoImpiantoCompilatoInTutteLeSueParti - librettoImpiantoPresente - rapporti - responsabile - versione type: object properties: versione: pattern: 01\.20 type: string description: Versione del tracciato XML. Valore fisso '01.20'. example: "01.20" enum: - "01.20" ditta: $ref: "#/components/schemas/Ditta" impianto: $ref: "#/components/schemas/Impianto" gruppoOmogeneo: $ref: "#/components/schemas/GruppoOmogeneo" responsabile: $ref: "#/components/schemas/Responsabile" classeTariffaria: maximum: 11 minimum: 1 type: integer description: | Classe tariffaria per il calcolo del bollino: 1 – Potenza Minore di 35 kW e non inferiore a 10 kW; 2 – Potenza Minore di 100 kW e non inferiore a 35 kW; 3 – Potenza Minore di 350 kW e non inferiore a 100 kW; 4 – Potenza non inferiore a 350 kW; 5 – Pel minore di 50; 6 – Pel minore di 1000 e non inferiore a 50 Pel; 7 – Pel non inferiore a 1000; 8 – Potenza Minore di 35 kW e non inferiore a 12 kW; 9 – Potenza Minore di 100 kW e non inferiore a 35 kW; 10 – Potenza Minore di 350 kW e non inferiore a 100 kW; 11 – Potenza non inferiore a 350 kW. format: int32 example: 2 enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 bollinoDaPagare: pattern: SI|NO type: string description: Indica se il bollino è da pagare. Indicare 'NO' se l'impianto non può funzionare o il rendimento di combustione è sotto il minimo di legge. example: SI enum: - SI - NO impiantoPuoFunzionare: pattern: SI|NO type: string description: Indica se l'impianto può funzionare. example: SI enum: - SI - NO impiantoSicuro: type: boolean description: Indica se l'impianto è sicuro (opzionale). librettoImpiantoPresente: pattern: SI|NO type: string description: Indica se il libretto impianto è presente. example: SI enum: - SI - NO librettoImpiantoCompilatoInTutteLeSueParti: pattern: SI|NO type: string description: Indica se il libretto impianto è compilato in tutte le sue parti. example: SI enum: - SI - NO rapporti: maxItems: 2147483647 minItems: 1 type: array description: Lista dei rapporti per singola macchina (almeno 1). items: $ref: "#/components/schemas/Rapporto" dataIntervento: type: string description: "Data dell'intervento (ISO 8601, yyyy-MM-dd). Minimo: 1900-01-01." example: 2024-11-15 oraInizio: pattern: \d{2}:\d{2} type: string description: Ora di inizio intervento (HH:mm), opzionale. example: 09:30 oraFine: pattern: \d{2}:\d{2} type: string description: Ora di fine intervento (HH:mm), opzionale. example: 11:00 description: Corpo della richiesta per l'acquisizione massiva di un Rapporto di Controllo di Efficienza Energetica – Regione Liguria (tracciato v01.20) AnalisiCt: required: - potenzaAiMorsettiGeneratore - tempAcquaIngresso - tempAcquaMotore - tempAcquaUscita - tempAriaComburente - tempFumiMonteScambiatoreFumi - tempFumiValleScambiatoreFumi type: object properties: tempAriaComburente: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura aria comburente (°C, max 3 cifre + 1 dec.). example: 22 tempAcquaUscita: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura acqua in uscita (°C, max 3 cifre + 1 dec.). example: 23 tempAcquaIngresso: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura acqua in ingresso (°C, max 3 cifre + 1 dec.). example: 24 potenzaAiMorsettiGeneratore: maximum: 99999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Potenza ai morsetti del generatore (kW, max 5 cifre + 1 dec.). example: 25 tempAcquaMotore: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura acqua motore (°C, max 3 cifre + 1 dec.). example: 28 tempFumiValleScambiatoreFumi: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura fumi a valle dello scambiatore fumi (°C, max 3 cifre + 1 dec.). example: 31 tempFumiMonteScambiatoreFumi: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura fumi a monte dello scambiatore fumi (°C, max 3 cifre + 1 dec.). example: 33 description: Analisi di funzionamento del cogeneratore AnalisiGf: required: - numeroCircuito - sottoraffreddamento - surriscaldamento - tempCondensazione - tempEvaporazione - tempIngLatoEst - tempIngLatoUtenze - tempUscLatoEst - tempUscLatoUtenze type: object properties: surriscaldamento: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Surriscaldamento (°C, max 2 cifre + 1 dec.). example: 5 sottoraffreddamento: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Sottoraffreddamento (°C, max 2 cifre + 1 dec.). example: 4 tempCondensazione: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura di condensazione (°C, max 2 cifre + 1 dec.). example: 40 tempEvaporazione: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura di evaporazione (°C, max 2 cifre + 1 dec.). example: 5 tempIngLatoEst: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura ingresso lato esterno (°C, max 2 cifre + 1 dec.). example: 30 tempUscLatoEst: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura uscita lato esterno (°C, max 2 cifre + 1 dec.). example: 35 tempIngLatoUtenze: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura ingresso lato utenze (°C, max 3 cifre + 1 dec.). example: 12 tempUscLatoUtenze: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura uscita lato utenze (°C, max 2 cifre + 1 dec.). example: 7 numeroCircuito: maximum: 99 minimum: 0 type: integer description: Numero circuito (0-99). format: int32 example: 1 description: Analisi per gruppo frigo AnalisiGt: required: - co2 - coCorretto - moduloTermico - o2 - rendimentoDiCombustione - rendimentoMinimoDiLegge - temperaturaAriaComburente - temperaturaFumi type: object properties: temperaturaFumi: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura fumi (°C, max 3 cifre + 1 dec.). example: 180.5 temperaturaAriaComburente: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura aria comburente (°C). example: 20 o2: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Percentuale O2 (%). example: 5.5 co2: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Percentuale CO2 (%). example: 8.5 bachrach1: maximum: 9 minimum: 0 type: integer description: Indice Bachrach – lettura 1 (0-9, opzionale). format: int32 bachrach2: maximum: 9 minimum: 0 type: integer description: Indice Bachrach – lettura 2 (0-9, opzionale). format: int32 bachrach3: maximum: 9 minimum: 0 type: integer description: Indice Bachrach – lettura 3 (0-9, opzionale). format: int32 coCorretto: maximum: 9999 minimum: 0 type: integer description: CO corretto (ppm, 0-9999). format: int32 example: 50 rendimentoDiCombustione: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Rendimento di combustione (%). example: 91.5 rendimentoMinimoDiLegge: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Rendimento minimo di legge (%). example: 90 moduloTermico: maximum: 99 minimum: 0 type: integer description: Numero del modulo termico (0-99). format: int32 example: 1 description: Analisi di combustione per gruppo termico AnalisiSc: required: - portataFluidoPrimario - potenzaTermica - tempEsterna - tempMandataPrimario - tempMandataSecondario - tempRitornoPrimario - tempRitornoSecondario type: object properties: tempEsterna: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura esterna (°C, max 3 cifre + 1 dec.). example: 22 tempMandataPrimario: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura mandata primario (°C, max 3 cifre + 1 dec.). example: 23 tempRitornoPrimario: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura ritorno primario (°C, max 3 cifre + 1 dec.). example: 81 potenzaTermica: maximum: 99999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Potenza termica (kW, max 5 cifre + 1 dec.). example: 99 portataFluidoPrimario: maximum: 9999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Portata fluido primario (max 4 cifre + 1 dec.). example: 55 tempMandataSecondario: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura mandata secondario (°C, max 3 cifre + 1 dec.). example: 25 tempRitornoSecondario: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Temperatura ritorno secondario (°C, max 3 cifre + 1 dec.). example: 29 description: Analisi di funzionamento dello scambiatore Ditta: required: - codCom - codProv - comune - indirizzo - numero - partitaIva - provincia - ragioneSociale type: object properties: ragioneSociale: maxLength: 250 minLength: 1 type: string description: Ragione sociale della ditta. example: Termoidraulica Rossi S.r.l. partitaIva: maxLength: 16 minLength: 11 type: string description: Partita IVA della ditta (11-16 caratteri). example: "01234567890" indirizzo: maxLength: 250 minLength: 1 type: string description: Indirizzo sede legale. example: Via Roma numero: maxLength: 250 minLength: 1 type: string description: Numero civico. example: "12" comune: maxLength: 250 minLength: 1 type: string description: Denominazione del comune. example: Genova provincia: maxLength: 250 minLength: 1 type: string description: Denominazione della provincia. example: Genova codCom: pattern: \d{3} type: string description: Codice ISTAT del comune (3 cifre numeriche). example: "010" codProv: pattern: \d{3} type: string description: Codice ISTAT della provincia (3 cifre numeriche). example: "010" description: Dati della ditta manutentrice (Sezione A, terza parte) GruppoOmogeneo: required: - codiceGruppoOmogeneo - potenzaTotale - tipoFluidoVettore - tipoGeneratore type: object properties: codiceGruppoOmogeneo: maximum: 99 minimum: 0 type: integer description: Codice catastale del gruppo omogeneo (0-99). format: int32 example: 1 tipoGeneratore: maximum: 7 minimum: 1 type: integer description: > Tipo di generatore: 1 – Generatori alimentati a combustibile liquido o solido; 2 – Generatori alimentati a gas, metano o GPL; 3 – Macchine frigorifere e/o pompe di calore a compressione (elettrico) e ad assorbimento a fiamma diretta; 4 – Pompe di calore a compressione azionate da energia termica; 5 – Pompe di calore ad assorbimento da energia termica; 6 – Teleriscaldamento (sottostazione di scambio); 7 – Impianti cogenerativi. format: int32 example: 2 enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 potenzaTotale: maximum: 99999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Potenza termica nominale totale massima (kW). Deve corrispondere alla somma delle potenze delle singole macchine. Max 5 cifre + 1 decimale. example: 24 tipoFluidoVettore: maximum: 3 minimum: 1 type: integer description: "Tipo fluido vettore termico in uscita: 1=Acqua, 2=Aria, 3=Altro." format: int32 example: 1 enum: - 1 - 2 - 3 altroTipoFluidoVettore: maxLength: 250 minLength: 1 type: string description: Descrizione altro fluido vettore (obbligatorio se tipoFluidoVettore=3). description: Dati del gruppo omogeneo di macchine (Sezione A, seconda parte) Impianto: required: - codCom - codProv - codiceCatasto - comune - indirizzo - numero - provincia type: object properties: codiceCatasto: pattern: 0[7][A-Z0-9]{4}[A-Z0-9]{2}[0-9]{8} type: string description: "Codice Caitel dell'impianto. Pattern: 07 + 4 alfanumerici + 2 alfanumerici + 8 cifre (es. 07D9690034567890)." example: 07D9690034567890 comune: maxLength: 250 minLength: 1 type: string description: Denominazione del comune. example: Genova provincia: maxLength: 250 minLength: 1 type: string description: Denominazione della provincia. example: Genova codCom: pattern: \d{3} type: string description: Codice ISTAT del comune (3 cifre numeriche). example: "010" codProv: pattern: 008|009|010|011 type: string description: "Codice ISTAT della provincia Ligure. Valori: 008 (Imperia), 009 (Savona), 010 (Genova), 011 (La Spezia)." example: "010" enum: - "008" - "009" - "010" - "011" indirizzo: maxLength: 250 minLength: 1 type: string description: Indirizzo dell'impianto. example: Via Balbi numero: maximum: 9999 minimum: 0 type: integer description: Numero civico (0-9999). format: int32 example: 5 palazzo: maxLength: 20 minLength: 1 type: string description: Palazzo (opzionale, max 20 caratteri). scala: maxLength: 20 minLength: 1 type: string description: Scala (opzionale, max 20 caratteri). interno: maxLength: 20 minLength: 1 type: string description: Interno (opzionale, max 20 caratteri). description: Dati di riferimento dell'impianto (Sezione A, prima parte) Rapporto: required: - codiceMacchina - dataInstallazione - fabbricante - matricola - modello - tecnicoCodiceFiscale - tecnicoCognome - tecnicoNome - tipoMacchina type: object properties: tipoMacchina: pattern: GT|GF|SC|CG type: string description: "Tipo macchina: GT=Gruppo termico, GF=Gruppo frigo, SC=Scambiatore, CG=Cogeneratore." example: GT enum: - GT - GF - SC - CG codiceMacchina: maximum: 9999 minimum: 0 type: integer description: Codice catastale univoco della macchina (0-9999), corrisponde al campo E del rapporto. format: int32 example: 1 dataInstallazione: type: string description: Data di installazione della macchina (ISO 8601). example: 2015-06-01 fabbricante: maxLength: 250 minLength: 1 type: string description: Fabbricante della macchina. example: Viessmann modello: maxLength: 250 minLength: 1 type: string description: Modello della macchina. example: Vitodens 200-W matricola: maxLength: 250 minLength: 1 type: string description: Matricola della macchina. example: SN123456789 tecnicoCodiceFiscale: maxLength: 16 minLength: 11 type: string description: Codice fiscale del tecnico che ha compilato il rapporto (11-16 caratteri). example: VRDLGI70A01D969Z tecnicoCognome: maxLength: 250 minLength: 1 type: string description: Cognome del tecnico. example: Verdi tecnicoNome: maxLength: 250 minLength: 1 type: string description: Nome del tecnico. example: Luigi rapportoTipo1: $ref: "#/components/schemas/RapportoTipo1" rapportoTipo2: $ref: "#/components/schemas/RapportoTipo2" rapportoTipo3: $ref: "#/components/schemas/RapportoTipo3" rapportoTipo4: $ref: "#/components/schemas/RapportoTipo4" description: > Rapporto di efficienza energetica per una singola macchina. Valorizzare ESATTAMENTE UNO tra: rapportoTipo1 (GT), rapportoTipo2 (GF), rapportoTipo3 (SC), rapportoTipo4 (CG). RapportoTipo1: required: - sezioneB - sezioneC - sezioneD - sezioneE - sezioneF type: object properties: sezioneB: $ref: "#/components/schemas/SezioneB" sezioneC: $ref: "#/components/schemas/SezioneCGt" sezioneD: $ref: "#/components/schemas/SezioneDGt" sezioneE: $ref: "#/components/schemas/SezioneEGt" sezioneF: $ref: "#/components/schemas/SezioneFGt" description: "Rapporto tipo 1 – Gruppo Termico (GT): SezioneB + SezioneC + SezioneD + SezioneE + SezioneF" RapportoTipo2: required: - sezioneB - sezioneC - sezioneD - sezioneE - sezioneF type: object properties: sezioneB: $ref: "#/components/schemas/SezioneB" sezioneC: $ref: "#/components/schemas/SezioneCGf" sezioneD: $ref: "#/components/schemas/SezioneDGf" sezioneE: $ref: "#/components/schemas/SezioneEGf" sezioneF: $ref: "#/components/schemas/SezioneFGf" description: Rapporto tipo 2 – Gruppo Frigo (GF) RapportoTipo3: required: - sezioneB - sezioneC - sezioneD - sezioneE - sezioneF type: object properties: sezioneB: $ref: "#/components/schemas/SezioneB" sezioneC: $ref: "#/components/schemas/SezioneCSc" sezioneD: $ref: "#/components/schemas/SezioneDSc" sezioneE: $ref: "#/components/schemas/SezioneESc" sezioneF: $ref: "#/components/schemas/SezioneFSc" description: "Rapporto tipo 3 – Scambiatore (SC): SezioneB + SezioneC + SezioneD + SezioneE + SezioneF" RapportoTipo4: required: - sezioneB - sezioneC - sezioneD - sezioneE - sezioneF type: object properties: sezioneB: $ref: "#/components/schemas/SezioneB" sezioneC: $ref: "#/components/schemas/SezioneCCt" sezioneD: $ref: "#/components/schemas/SezioneDCt" sezioneE: $ref: "#/components/schemas/SezioneECt" sezioneF: $ref: "#/components/schemas/SezioneFCt" description: "Rapporto tipo 4 – Cogeneratore (CG): SezioneB + SezioneC + SezioneD + SezioneE + SezioneF" Responsabile: required: - codCom - codProv - comune - indirizzo - numero - provincia - tipoResponsabilita type: object properties: cognome: maxLength: 250 minLength: 1 type: string description: Cognome del responsabile (persona fisica). Esclude ragioneSociale. example: Bianchi nome: maxLength: 250 minLength: 1 type: string description: Nome del responsabile (persona fisica). example: Marco ragioneSociale: maxLength: 250 minLength: 1 type: string description: Ragione sociale del responsabile (persona giuridica). Esclude cognome/nome. example: Condominio Via Roma 5 partitaIva: maxLength: 16 minLength: 11 type: string description: Partita IVA del responsabile (persona giuridica, 11-16 car.). example: "01234567890" codiceFiscale: maxLength: 16 minLength: 11 type: string description: Codice fiscale (11-16 caratteri, obbligatorio per persona fisica o giuridica senza P.IVA). example: BNCMRC80A01D969Z indirizzo: maxLength: 250 minLength: 1 type: string description: Indirizzo del responsabile. example: Via Roma numero: maxLength: 250 minLength: 1 type: string description: Numero civico del responsabile. example: "5" comune: maxLength: 250 minLength: 1 type: string description: Comune del responsabile. example: Genova provincia: maxLength: 250 minLength: 1 type: string description: Provincia del responsabile. example: Genova codCom: pattern: \d{3} type: string description: Codice del comune (3 cifre). example: "010" codProv: pattern: \d{3} type: string description: Codice della provincia (3 cifre). example: "010" tipoResponsabilita: maximum: 4 minimum: 1 type: integer description: "Tipo di responsabilità: 1=Proprietario, 2=Occupante, 3=Amministratore condominio, 4=Terzo responsabile." format: int32 example: 1 enum: - 1 - 2 - 3 - 4 description: > Dati del responsabile dell'impianto. Scegliere UNA delle due alternative: (A) Persona fisica: valorizzare cognome, nome, codiceFiscale. (B) Persona giuridica: valorizzare ragioneSociale + (codiceFiscale OPPURE partitaIva). Gli altri campi (indirizzo, comune, ecc.) sono sempre obbligatori. SezioneB: required: - dichiarazioneConformitaPresente - librettoUsoManutenzionePresente type: object properties: dichiarazioneConformitaPresente: pattern: SI|NO type: string description: Dichiarazione di conformità presente. example: SI enum: - SI - NO librettoUsoManutenzionePresente: pattern: SI|NO type: string description: Libretto d'uso e manutenzione presente. example: SI enum: - SI - NO description: "Sezione B: documenti presenti sulla macchina (comune a tutti i tipi)" SezioneCCt: required: - trattamento type: object properties: durezzaTotaleAcqua: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Durezza totale acqua (opzionale, max 2 cifre + 1 dec.). example: 15.5 trattamento: maximum: 9 minimum: 1 type: integer description: Trattamento acqua (1=Non richiesto; 2=Assente; 3=Filtrazione; 4=Addolcimento; 5=Condiz. chimico; 6=Filtr.+Addolc.; 7=Filtr.+Condiz.; 8=Addolc.+Condiz.; 9=Tutti e tre). format: int32 example: 1 enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 description: "Sezione C – CG: durezza acqua e trattamento" SezioneCGf: required: - trattamento type: object properties: durezzaTotaleAcqua: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Durezza totale acqua (opzionale, max 2 cifre + 1 dec.). example: 15.5 trattamento: maximum: 9 minimum: 1 type: integer description: Trattamento acqua (1=Non richiesto; 2=Assente; 3=Filtrazione; 4=Addolcimento; 5=Condiz. chimico; 6=Filtr.+Addolc.; 7=Filtr.+Condiz.; 8=Addolc.+Condiz.; 9=Tutti e tre). format: int32 example: 1 enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 description: "Sezione C – GF: durezza acqua e trattamento" SezioneCGt: required: - trattamentoInACS - trattamentoInRiscaldamento type: object properties: durezzaTotaleAcqua: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Durezza totale acqua (opzionale, max 2 cifre + 1 dec.). example: 15.5 trattamentoInRiscaldamento: maximum: 9 minimum: 1 type: integer description: | Trattamento acqua in riscaldamento: 1=Non richiesto; 2=Assente; 3=Filtrazione; 4=Addolcimento; 5=Condizionamento chimico; 6=Filtrazione+Addolcimento; 7=Filtrazione+Condiz.chimico; 8=Addolcimento+Condiz.chimico; 9=Filtrazione+Addolcimento+Condiz.chimico. format: int32 example: 3 enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 trattamentoInACS: maximum: 9 minimum: 1 type: integer description: Trattamento acqua in ACS (stessi valori di trattamentoInRiscaldamento). format: int32 example: 1 enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 description: "Sezione C – GT: durezza acqua e trattamenti" SezioneCSc: required: - trattamentoInACS - trattamentoInRiscaldamento type: object properties: durezzaTotaleAcqua: maximum: 99.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Durezza totale acqua (opzionale, max 2 cifre + 1 dec.). example: 15.5 trattamentoInRiscaldamento: maximum: 9 minimum: 1 type: integer description: | Trattamento acqua in riscaldamento: 1=Non richiesto; 2=Assente; 3=Filtrazione; 4=Addolcimento; 5=Condizionamento chimico; 6=Filtrazione+Addolcimento; 7=Filtrazione+Condiz.chimico; 8=Addolcimento+Condiz.chimico; 9=Filtrazione+Addolcimento+Condiz.chimico. format: int32 example: 1 enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 trattamentoInACS: maximum: 9 minimum: 1 type: integer description: Trattamento acqua in ACS (stessi valori di trattamentoInRiscaldamento). format: int32 example: 1 enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 description: "Sezione C – SC: durezza acqua e trattamenti" SezioneDCt: required: - apertureDimensioniIdonee - apertureLibere - caminoIdoneo - capsulaInsonorizzzanteIdonea - funzionalitaScambiatoreIdonea - installazioneLuogoIdoneo - lineeElettricheIdonee - tenutaCircuitoAlimCombustIdonea - tenutaCircuitoIdraulicoIdonea - tenutaCircuitoOlioIdonea type: object properties: installazioneLuogoIdoneo: pattern: SI|NO|NC type: string description: Installazione in luogo idoneo. example: SI enum: - SI - NO - NC apertureDimensioniIdonee: pattern: SI|NO|NC type: string description: Aperture di dimensioni idonee. example: SI enum: - SI - NO - NC apertureLibere: pattern: SI|NO|NC type: string description: Aperture libere. example: SI enum: - SI - NO - NC lineeElettricheIdonee: pattern: SI|NO|NC type: string description: Linee elettriche idonee. example: SI enum: - SI - NO - NC caminoIdoneo: pattern: SI|NO|NC type: string description: Camino/canale da fumo idoneo. example: SI enum: - SI - NO - NC capsulaInsonorizzzanteIdonea: pattern: SI|NO|NC type: string description: Capsula insonorizzante idonea. example: SI enum: - SI - NO - NC tenutaCircuitoIdraulicoIdonea: pattern: SI|NO|NC type: string description: Tenuta circuito idraulico idonea. example: SI enum: - SI - NO - NC tenutaCircuitoOlioIdonea: pattern: SI|NO|NC type: string description: Tenuta circuito olio idonea. example: SI enum: - SI - NO - NC tenutaCircuitoAlimCombustIdonea: pattern: SI|NO|NC type: string description: Tenuta circuito alimentazione combustibile idonea. example: SI enum: - SI - NO - NC funzionalitaScambiatoreIdonea: pattern: SI|NO|NC type: string description: Funzionalità scambiatore idonea. example: SI enum: - SI - NO - NC description: "Sezione D – CG: ispezione locale cogeneratore. Valori: SI | NO | NC" SezioneDGf: required: - apertureDimensioniIdonee - apertureLibere - coibentazioniIdonee - installazioneLocaleIdoneo - lineeElettricheIdonee type: object properties: installazioneLocaleIdoneo: pattern: SI|NO|NC type: string description: Installazione in locale idoneo. example: SI enum: - SI - NO - NC apertureDimensioniIdonee: pattern: SI|NO|NC type: string description: Aperture di dimensioni idonee. example: SI enum: - SI - NO - NC apertureLibere: pattern: SI|NO|NC type: string description: Aperture libere. example: SI enum: - SI - NO - NC lineeElettricheIdonee: pattern: SI|NO|NC type: string description: Linee elettriche idonee. example: SI enum: - SI - NO - NC coibentazioniIdonee: pattern: SI|NO|NC type: string description: Coibentazioni idonee. example: SI enum: - SI - NO - NC description: "Sezione D – GF: ispezione locale e impianto" SezioneDGt: required: - apertureDimensioniIdonee - apertureLibere - assenzaPerditeCombLiq - canaliFumoIdonei - installazioneEstGeneratoriIdonei - installazioneIntLocaleIdoneo - sistRegolazioneTemFunzionante - taraturaIdonea type: object properties: installazioneIntLocaleIdoneo: pattern: SI|NO|NC type: string description: Installazione in locale idoneo. example: SI enum: - SI - NO - NC installazioneEstGeneratoriIdonei: pattern: SI|NO|NC type: string description: "Installazione esterna: generatori idonei." example: SI enum: - SI - NO - NC apertureLibere: pattern: SI|NO|NC type: string description: Aperture libere. example: SI enum: - SI - NO - NC apertureDimensioniIdonee: pattern: SI|NO|NC type: string description: Aperture di dimensioni idonee. example: SI enum: - SI - NO - NC canaliFumoIdonei: pattern: SI|NO|NC type: string description: Canali fumi idonei. example: SI enum: - SI - NO - NC sistRegolazioneTemFunzionante: pattern: SI|NO|NC type: string description: Sistema di regolazione temperatura funzionante. example: SI enum: - SI - NO - NC assenzaPerditeCombLiq: pattern: SI|NO|NC type: string description: Assenza perdite combustibile liquido. example: SI enum: - SI - NO - NC taraturaIdonea: pattern: SI|NO|NC type: string description: Taratura idonea. example: SI enum: - SI - NO - NC description: "Sezione D – GT: ispezioni locali e impianto. Valori: SI | NO | NC" SezioneDSc: required: - assenzaPerditeCircIdraulico - coibentazioniIdonee - installazioneLocaleIdoneo - lineeElettricheIdonee type: object properties: installazioneLocaleIdoneo: pattern: SI|NO|NC type: string description: Installazione in locale idoneo. example: SI enum: - SI - NO - NC lineeElettricheIdonee: pattern: SI|NO|NC type: string description: Linee elettriche idonee. example: SI enum: - SI - NO - NC coibentazioniIdonee: pattern: SI|NO|NC type: string description: Coibentazioni idonee. example: SI enum: - SI - NO - NC assenzaPerditeCircIdraulico: pattern: SI|NO|NC type: string description: Assenza perdite circuito idraulico. example: SI enum: - SI - NO - NC description: "Sezione D – SC: ispezione locale e impianto. Valori: SI | NO | NC" SezioneECt: required: - alimentazione - analisi - emissioneMonossidoCarbonio - fluidoVettoreTermicoUscita - potenzaAssorbitaConCombustibile - potenzaElettricaNominaleMorsetti - potenzaTermicaNominale - potenzaTermicaPienaPotenza - tipologia type: object properties: tipologia: maxLength: 250 minLength: 1 type: string description: Tipologia del cogeneratore (testo libero). example: Motore endotermico alimentazione: maximum: 4 minimum: 1 type: integer description: "Tipo di combustibile: 1=GPL, 2=Gas naturale, 3=Gasolio, 4=Altro." format: int32 example: 2 enum: - 1 - 2 - 3 - 4 altraAlimentazione: maxLength: 250 minLength: 1 type: string description: Descrizione altra alimentazione (obbligatorio se alimentazione=4). fluidoVettoreTermicoUscita: maximum: 3 minimum: 1 type: integer description: "Tipo fluido vettore termico in uscita: 1=Acqua, 2=Aria, 3=Altro." format: int32 example: 1 enum: - 1 - 2 - 3 altroFluidoVettoreTermicoUscita: maxLength: 250 minLength: 1 type: string description: Descrizione altro fluido vettore termico in uscita (obbligatorio se fluidoVettoreTermicoUscita=3). potenzaElettricaNominaleMorsetti: maximum: 99999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Potenza elettrica nominale ai morsetti (kW). example: 25 potenzaAssorbitaConCombustibile: maximum: 99999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Potenza assorbita con combustibile (kW). example: 99 potenzaTermicaNominale: maximum: 99999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Potenza termica nominale (kW) – usata per il calcolo del bollino. example: 44 potenzaTermicaPienaPotenza: maximum: 99999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Potenza termica a piena potenza (kW). example: 86 emissioneMonossidoCarbonio: maximum: 9999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Emissione monossido di carbonio (ppm, max 4 cifre + 1 dec.). example: 18 analisi: $ref: "#/components/schemas/AnalisiCt" description: "Sezione E – CG: caratteristiche cogeneratore e analisi" SezioneEGf: required: - aCicloCompressioneMotoreElettricoEndotermico - adAssorbimentoFiammaDirettaConCombustibile - adAssorbimentoPerRecuperoCalore - assenzaPerditaGasRefrigerante - modalitaProva - presenzaAppAutRilDirettaFugheRefrigerante - presenzaAppAutRilIndirettaFugheRefrigerante - scambiatoriCalorePulitiLiberi type: object properties: adAssorbimentoPerRecuperoCalore: type: boolean description: Macchina ad assorbimento per recupero calore. example: false adAssorbimentoFiammaDirettaConCombustibile: type: boolean description: Macchina ad assorbimento a fiamma diretta con combustibile. example: false combustibile: maxLength: 250 minLength: 1 type: string description: Tipo combustibile (testo libero, opzionale, max 250 car.). numeroCircuiti: maximum: 99 minimum: 0 type: integer description: Numero circuiti (0-99, opzionale). format: int32 potenzaFrigoriferaNominaleInRaffrescamento: maximum: 99999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Potenza frigorifera nominale in raffrescamento (kW, max 5 cifre + 1 dec.). example: 35 potenzaTermicaNominaleInRiscaldamento: maximum: 99999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Potenza termica nominale in riscaldamento (kW, max 5 cifre + 1 dec.). example: 30 modalitaProva: maximum: 2 minimum: 1 type: integer description: "Modalità di prova: 1=Raffrescamento, 2=Riscaldamento." format: int32 example: 1 enum: - 1 - 2 assenzaPerditaGasRefrigerante: pattern: SI|NO|NC type: string description: Assenza perdita gas refrigerante. example: SI enum: - SI - NO - NC presenzaAppAutRilDirettaFugheRefrigerante: pattern: SI|NO|NC type: string description: Presenza apparecchio automatico rilevazione diretta fughe refrigerante. example: SI enum: - SI - NO - NC presenzaAppAutRilIndirettaFugheRefrigerante: pattern: SI|NO|NC type: string description: Presenza apparecchio automatico rilevazione indiretta fughe refrigerante. example: SI enum: - SI - NO - NC scambiatoriCalorePulitiLiberi: pattern: SI|NO|NC type: string description: Scambiatori di calore puliti e liberi. example: SI enum: - SI - NO - NC analisi: type: array description: Analisi effettuate (1..N). Null se analisi non effettuabili. items: $ref: "#/components/schemas/AnalisiGf" analisiNonEffettuabili: type: boolean description: True se le analisi non sono effettuabili. example: false aCicloCompressioneMotoreElettricoEndotermico: type: boolean description: Macchina a ciclo a compressione con motore elettrico/endotermico. example: true description: "Sezione E – GF: caratteristiche macchina e analisi" SezioneEGt: required: - climatizzazioneInvernale - combustibile - contrPulScambiatoreLatoFumi - dispComRegFunzionantiCorrettamente - dispSicNonManomessiCortocircuitati - evacuazioneFumi - gruppoTermico - potenzaTermicaNominaleMaxAlFocolare - potenzaTermicaNominaleUtile - presenzaRiflussoProdottiCombustione - produzioneACS - risultatiControlloUNIConformiLegge - valvolaSicurezzaAllaSovrapressioneAScaricoLibero type: object properties: gruppoTermico: maximum: 4 minimum: 1 type: integer description: "Tipo gruppo termico: 1=Singolo, 2=Modulare, 3=Tubo/nastro radiante, 4=Generatore aria calda." format: int32 example: 1 enum: - 1 - 2 - 3 - 4 numeroModuli: maximum: 99 minimum: 0 type: integer description: Numero moduli (0-99), obbligatorio se gruppo termico modulare. format: int32 potenzaTermicaNominaleMaxAlFocolare: maximum: 99999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Potenza termica nominale massima al focolare (kW). example: 24 potenzaTermicaNominaleUtile: maximum: 99999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Potenza termica nominale utile (kW) – usata per il calcolo del bollino. example: 22 climatizzazioneInvernale: type: boolean description: Climatizzazione invernale abilitata. example: true produzioneACS: type: boolean description: Produzione ACS abilitata. example: true combustibile: maximum: 4 minimum: 1 type: integer description: "Tipo combustibile: 1=GPL, 2=Gas naturale, 3=Gasolio, 4=Altro." format: int32 example: 2 enum: - 1 - 2 - 3 - 4 altroCombustibile: maxLength: 250 minLength: 1 type: string description: Descrizione altro combustibile (obbligatorio se combustibile=4). evacuazioneFumi: maximum: 2 minimum: 1 type: integer description: "Evacuazione fumi: 1=Naturale, 2=Forzata." format: int32 example: 1 enum: - 1 - 2 depressioneNelCanaleDaFumo: maximum: 999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Depressione nel canale da fumo (Pa), opzionale. example: 12.5 dispComRegFunzionantiCorrettamente: pattern: SI|NO|NC type: string description: Dispositivi di comando/regolazione funzionanti correttamente. example: SI enum: - SI - NO - NC dispSicNonManomessiCortocircuitati: pattern: SI|NO|NC type: string description: Dispositivi di sicurezza non manomessi né cortocircuitati. example: SI enum: - SI - NO - NC valvolaSicurezzaAllaSovrapressioneAScaricoLibero: pattern: SI|NO|NC type: string description: Valvola di sicurezza alla sovrapressione a scarico libero. example: SI enum: - SI - NO - NC contrPulScambiatoreLatoFumi: pattern: SI|NO|NC type: string description: Controllo pulizia scambiatore lato fumi. example: SI enum: - SI - NO - NC presenzaRiflussoProdottiCombustione: pattern: SI|NO|NC type: string description: Presenza riflusso prodotti di combustione. example: NO enum: - SI - NO - NC risultatiControlloUNIConformiLegge: pattern: SI|NO|NC type: string description: Risultati controllo UNI conformi alla legge. example: SI enum: - SI - NO - NC analisi: type: array description: Analisi di combustione (1..N). Null se le analisi non sono effettuabili. items: $ref: "#/components/schemas/AnalisiGt" analisiNonEffettuabili: type: boolean description: "True se le analisi non sono effettuabili (XSD: AnalisiEffettuabili='NO')." example: false description: "Sezione E – GT: caratteristiche macchina e analisi combustione" SezioneESc: required: - alimentazione - analisi - climatizzazioneInvernale - dispositiviRegolazioneFunzionanti - fluidoVettoreTermicoUscita - potenzaCompatibileDatiProgetto - potenzaTermicaNominale - produzioneACS - statoCoibentazioneIdoneo type: object properties: climatizzazioneInvernale: type: boolean description: Climatizzazione invernale abilitata. example: true produzioneACS: type: boolean description: Produzione ACS abilitata. example: false potenzaTermicaNominale: maximum: 99999.9 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: number description: Potenza termica nominale (kW) – usata per il calcolo del bollino. example: 55 alimentazione: maximum: 4 minimum: 1 type: integer description: "Tipo di alimentazione: 1=Acqua calda, 2=Acqua surriscaldata, 3=Vapore, 4=Altro." format: int32 example: 1 enum: - 1 - 2 - 3 - 4 altraAlimentazione: maxLength: 250 minLength: 1 type: string description: Descrizione altra alimentazione (obbligatorio se alimentazione=4). fluidoVettoreTermicoUscita: maximum: 3 minimum: 1 type: integer description: "Tipo fluido vettore termico in uscita: 1=Acqua, 2=Aria, 3=Altro." format: int32 example: 1 enum: - 1 - 2 - 3 altroFluidoVettoreTermicoUscita: maxLength: 250 minLength: 1 type: string description: Descrizione altro fluido vettore termico in uscita (obbligatorio se fluidoVettoreTermicoUscita=3). potenzaCompatibileDatiProgetto: pattern: SI|NO|NC type: string description: Potenza compatibile con i dati di progetto. example: SI enum: - SI - NO - NC statoCoibentazioneIdoneo: pattern: SI|NO|NC type: string description: Stato coibentazione idoneo. example: SI enum: - SI - NO - NC dispositiviRegolazioneFunzionanti: pattern: SI|NO|NC type: string description: Dispositivi di regolazione funzionanti. example: SI enum: - SI - NO - NC analisi: $ref: "#/components/schemas/AnalisiSc" description: "Sezione E – SC: caratteristiche scambiatore e analisi" SezioneFCt: required: - macchinaPuoFunzionare type: object properties: adozioneValvoleTermostatiche: type: boolean description: Adozione valvole termostatiche raccomandata (opzionale). isolamentoReteDistribuzione: type: boolean description: Isolamento rete di distribuzione raccomandato (opzionale). introduzioneSistemaTrattamentoAcqua: type: boolean description: Introduzione sistema trattamento acqua raccomandato (opzionale). sostituzioneSistemaRegolazione: type: boolean description: Sostituzione sistema di regolazione raccomandata (opzionale). osservazioni: maxLength: 4000 minLength: 1 type: string description: Osservazioni del tecnico (max 4000 caratteri, opzionale). raccomandazioni: maxLength: 4000 minLength: 1 type: string description: Raccomandazioni (max 4000 caratteri, opzionale). prescrizioni: maxLength: 4000 minLength: 1 type: string description: Prescrizioni (max 4000 caratteri, opzionale). macchinaPuoFunzionare: pattern: SI|NO type: string description: La macchina può funzionare. example: SI enum: - SI - NO macchinaSicura: type: boolean description: La macchina è sicura (opzionale). dataInterventoRaccomandato: type: string description: Data dell'intervento raccomandato (ISO 8601, opzionale). example: 2025-11-15 description: "Sezione F – CG: raccomandazioni, prescrizioni e esito macchina" SezioneFGf: required: - macchinaPuoFunzionare type: object properties: sostituzioneGeneratoriRegolazione: type: boolean description: Sostituzione generatori con regolazione on/off raccomandata (opzionale). sostituzioneSistemiRegolazione: type: boolean description: Sostituzione sistemi con regolazione on/off raccomandata (opzionale). isolamentoReteDistribuzioneAcqua: type: boolean description: Isolamento rete di distribuzione acqua raccomandato (opzionale). isolamentoCanaliDistribuzioneAria: type: boolean description: Isolamento canali di distribuzione aria raccomandato (opzionale). osservazioni: maxLength: 4000 minLength: 1 type: string description: Osservazioni (max 4000 car.). raccomandazioni: maxLength: 4000 minLength: 1 type: string description: Raccomandazioni (max 4000 car.). prescrizioni: maxLength: 4000 minLength: 1 type: string description: Prescrizioni (max 4000 car.). macchinaPuoFunzionare: pattern: SI|NO type: string description: La macchina può funzionare. example: SI enum: - SI - NO macchinaSicura: type: boolean description: La macchina è sicura (opzionale). dataInterventoRaccomandato: type: string description: Data intervento raccomandato (ISO 8601, opzionale). description: "Sezione F – GF: raccomandazioni e esito" SezioneFGt: required: - macchinaPuoFunzionare type: object properties: adozioneValvoleTermostatiche: type: boolean description: Adozione valvole termostatiche raccomandata (opzionale). isolamentoReteDistribuzione: type: boolean description: Isolamento rete di distribuzione raccomandato (opzionale). introduzioneSistemaTrattamentoAcqua: type: boolean description: Introduzione sistema trattamento acqua raccomandato (opzionale). sostituzioneSistemaRegolazione: type: boolean description: Sostituzione sistema di regolazione raccomandata (opzionale). osservazioni: maxLength: 4000 minLength: 1 type: string description: Osservazioni del tecnico (max 4000 caratteri, opzionale). raccomandazioni: maxLength: 4000 minLength: 1 type: string description: Raccomandazioni (max 4000 caratteri, opzionale). prescrizioni: maxLength: 4000 minLength: 1 type: string description: Prescrizioni (max 4000 caratteri, opzionale). macchinaPuoFunzionare: pattern: SI|NO type: string description: La macchina può funzionare. example: SI enum: - SI - NO macchinaSicura: type: boolean description: La macchina è sicura (opzionale). dataInterventoRaccomandato: type: string description: Data dell'intervento raccomandato (ISO 8601, opzionale). example: 2025-11-15 description: "Sezione F – GT: raccomandazioni, prescrizioni e esito macchina" SezioneFSc: required: - macchinaPuoFunzionare type: object properties: adozioneValvoleTermostatiche: type: boolean description: Adozione valvole termostatiche raccomandata (opzionale). verificaCoerenzaParametri: type: boolean description: Verifica coerenza parametri curva climatica raccomandata (opzionale). verificaPresenzaPerditeAcqua: type: boolean description: Verifica presenza perdite acqua raccomandata (opzionale). installazioneInvolucroCoibentazione: type: boolean description: Installazione adeguato involucro coibentazione raccomandata (opzionale). osservazioni: maxLength: 4000 minLength: 1 type: string description: Osservazioni del tecnico (max 4000 caratteri, opzionale). raccomandazioni: maxLength: 4000 minLength: 1 type: string description: Raccomandazioni (max 4000 caratteri, opzionale). prescrizioni: maxLength: 4000 minLength: 1 type: string description: Prescrizioni (max 4000 caratteri, opzionale). macchinaPuoFunzionare: pattern: SI|NO type: string description: La macchina può funzionare. example: SI enum: - SI - NO macchinaSicura: type: boolean description: La macchina è sicura (opzionale). dataInterventoRaccomandato: type: string description: Data dell'intervento raccomandato (ISO 8601, opzionale). example: 2025-11-15 description: "Sezione F – SC: raccomandazioni, prescrizioni e esito macchina" AggiungiEConsolidaRapportoRespWithReq: type: object properties: elemento: type: string responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadAggiungiEConsolidaRapporto" BasePairString: type: object properties: identificativo: type: string description: Chiave tecnica o ID dell'elemento example: D969 valore: type: string description: Etichetta descrittiva da mostrare all'utente example: Genova altroValore: type: string description: Eventuale informazione aggiuntiva di supporto example: GE selezionato: type: boolean description: Indica se l'elemento è quello selezionato di default example: true description: Elenco dei parametri path/query della request RequestPayloadAggiungiEConsolidaRapporto: type: object properties: corpo: $ref: "#/components/schemas/AggiungiEConsolidaRapporto" parametri: type: array description: Elenco dei parametri path/query della request items: $ref: "#/components/schemas/BasePairString" description: Oggetto contenente i dati della request originaria utilizzati per la chiamata del servizio ResponseMessage: type: object properties: tipo: type: string enum: - UNDEF - INFO - WARNING - ERROR - SUCCESS - QUESTION systemMessageCode: type: string confirmationToken: type: string messaggio: type: string ulterioriMessaggi: type: array items: type: string ulterioriMessaggiConDettagli: type: array items: $ref: "#/components/schemas/ResponseMessageDetails" stringaUnicaHtml: type: string stringaUnicaHtmlCompleta: type: string ResponseMessageDetails: type: object properties: tipo: type: string enum: - UNDEF - INFO - WARNING - ERROR - SUCCESS - QUESTION dettaglio: type: string ulterioriDettagli: type: array items: $ref: "#/components/schemas/BasePairString" conclusione: type: string domanda: type: string possibiliRisposteDomanda: type: array items: $ref: "#/components/schemas/BasePairString" Base: type: object description: Corpo della request originale InternalServerErrorCaitelResponse: type: object properties: responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" status: type: integer format: int32 title: type: string detail: type: string RequestPayloadBase: type: object properties: corpo: $ref: "#/components/schemas/Base" parametri: type: array description: Elenco dei parametri path/query della request items: $ref: "#/components/schemas/BasePairString" description: Oggetto contenente i dati della request originaria utilizzati per la chiamata del servizio BadRequestCaitelResponse: type: object properties: responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" status: type: integer format: int32 title: type: string detail: type: string NotFoundCaitelResponse: type: object properties: responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" status: type: integer format: int32 title: type: string detail: type: string ForbiddenCaitelResponse: type: object properties: responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" status: type: integer format: int32 title: type: string detail: type: string BooleanProblemAndJson: type: object properties: elemento: type: boolean responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" status: type: integer format: int32 title: type: string detail: type: string parameters: CodiceFiscaleOperatore: name: codice-fiscale-operatore in: header description: Codice Fiscale operatore required: true schema: pattern: ^[A-Za-z]{6}[0-9LMNPQRSTUVlmnpqrstuv]{2}[A-EHLMPRSTa-ehlmprst][0-9LMNPQRSTUVlmnpqrstuv]{2}[A-Za-z][0-9LMNPQRSTUVlmnpqrstuv]{3}[A-Za-z]$ type: string securitySchemes: BearerAuth: type: http description: Token Bearer ottenuto tramite OAuth2 client_credentials dal server di autorizzazione di Regione Liguria. Il token ha durata di 3600 secondi e va rinnovato alla scadenza. Richiede inoltre il certificato mTLS firmato da Liguria Digitale configurato sul client TLS. scheme: bearer bearerFormat: JWT