openapi: 3.0.1 info: title: Caitel_Gestione-Imp description: CAITEL - Api pubblicate per gestire i principali dati degli impianti contact: name: Supporto Gestione Impianti Caitel url: https://servizi.regione.liguria.it/page/welcome/CAITEL email: caitel-api-assistenza@liguriadigitale.it version: 1.0.3 x-summary: API per la gestione dell'anagrafica degli impianti termici nel sistema regionale CAITEL (Liguria) servers: - url: https://services-caitel.regione.liguria.it/api/gestione-imp description: Url Server di PRODUZIONE specifico per gestione impianti x-sandbox: false - url: https://services-caitel-test.regione.liguria.it/api/gestione-imp description: Url Server di TEST specifico per gestione impianti x-sandbox: false security: - BearerAuth: [] tags: - name: gestione-impianti-controller description: Servizi per la gestione dell'impianto - name: catalogo-impianti-controller description: Servizi relativi al catalogo impianto - name: tipologiche-controller description: Servizi relativi alla fruizione delle tipologiche - name: sistema-controller description: Servizi per avere informazioni sistema - name: proprieta-controller description: Servizi per avere informazioni sulle proprieta dei campi delle chiamate e delle risposte paths: /scheda-1/s0106/update: post: tags: - gestione-impianti-controller summary: Aggiornamento Sezione 1.6 Responsabile dell'impianto description: Aggiorna i dati della Sezione 1.6 - Responsabile dell'impianto operationId: modificaS0106 parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateScheda01Sezione06Responsabile" required: true responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/UpdateScheda01Sezione06ResponsabileResponse" "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" /scheda-1/s0106/subentro: post: tags: - gestione-impianti-controller summary: Aggiornamento Sezione 1.6 Responsabile dell'impianto description: Aggiorna i dati della Scheda 01 - Sezione 06 operationId: subentroS0106 parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" requestBody: content: application/json: schema: $ref: "#/components/schemas/SubentroScheda01Sezione06Responsabile" required: true responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/SubentroScheda01Sezione06ResponsabileResponse" "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" /scheda-1/s0105/update: post: tags: - gestione-impianti-controller summary: Aggiornamento Sezione 1.5 Individuazione della tipologia dei generatori description: Aggiorna i dati della Sezione 1.5 - Individuazione della tipologia dei generatori operationId: modificaS0105 parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateScheda01Sezione05Generatori" required: true responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/UpdateScheda01Sezione05GeneratoriResponse" "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" /scheda-1/s0103/update: post: tags: - gestione-impianti-controller summary: Aggiornamento Sezione 1.3 Impianto termico destinato a soddisfare i seguenti servizi description: Aggiorna i dati della Sezione 1.3 - Impianto termico destinato a soddisfare i seguenti servizi operationId: modificaS0103 parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateScheda01Sezione03Destinazione" required: true responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/UpdateScheda01Sezione03DestinazioneResponse" "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" /scheda-1/s0102/update: post: tags: - gestione-impianti-controller summary: Aggiornamento Sezione 1.2 Ubicazione e destinazione dell'edificio description: Aggiorna i dati della Sezione 1.2 - Ubicazione e destinazione dell'edificio operationId: modificaS0102 parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateScheda01Sezione02Ubicazione" required: true responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/UpdateScheda01Sezione02UbicazioneResponse" "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" /tipologiche/tipo-responsabilita/{identificativo-tipo-responsabilita}: get: tags: - tipologiche-controller summary: Get tipo responsabilità by ID description: Retrieve un tipo di responsabilità specifico tramite il suo identificativo operationId: recuperoDatiTipoResponsabilitaPerId parameters: - name: identificativo-tipo-responsabilita in: path required: true schema: type: string - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/PairStringRespWithReq" "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" /tipologiche/tipo-colore-civico/{identificativo-tipo-colore-civico}: get: tags: - tipologiche-controller summary: Get tipo colore civico by ID description: Retrieve un tipo di colore civico specifico tramite il suo identificativo operationId: recuperoDatiTipoColoreCivicoPerId parameters: - name: identificativo-tipo-colore-civico in: path required: true schema: type: string - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/PairStringRespWithReq" "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" /tipologiche/tipi-responsabilita: get: tags: - tipologiche-controller summary: Get lista tipi responsabilità description: "Retrieve la lista dei tipi di responsabilità. Lista fissa: 1=Proprietario, 2=Occupante, 3=Amministratore condominio, 4=Terzo responsabile." operationId: recuperoDatiTipiResponsabilita parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/ListaValori" examples: tipi-responsabilita: description: tipi-responsabilita value: lista: - identificativo: "1" valore: Proprietario - identificativo: "2" valore: Occupante - identificativo: "3" valore: Amministratore condominio - identificativo: "4" valore: Terzo responsabile numeroElementiLista: 4 responseStatus: 200 OK "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" /tipologiche/tipi-colore-civico: get: tags: - tipologiche-controller summary: Get lista tipi colore civico description: "Retrieve la lista dei tipi di colore del civico. Lista fissa: R = Rosso, N = Nero." operationId: recuperoDatiTipiColoreCivico parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/ListaValori" examples: tipi-colore-civico: description: tipi-colore-civico value: lista: - identificativo: R valore: Rosso - identificativo: N valore: Nero numeroElementiLista: 2 responseStatus: 200 OK "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" /tipologiche/provincia/{identificativo-provincia}: get: tags: - tipologiche-controller summary: Get provincia by ID description: Retrieve una provincia specifica tramite il suo identificativo (codice ISTAT) operationId: recuperoDatiProvinciaPerId parameters: - name: identificativo-provincia in: path description: Identificativo ISTAT della provincia required: true schema: type: string example: "010" - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/PairStringRespWithReq" "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" /tipologiche/province: get: tags: - tipologiche-controller summary: Get lista province description: Retrieve la lista di tutte le province operationId: recuperoListaProvince parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/ListaValori" "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" /tipologiche/province-liguria: get: tags: - tipologiche-controller summary: Get lista province Liguria description: Retrieve la lista delle quattro province della Liguria (GE, IM, SP, SV). Lista fissa. operationId: recuperoListaProvinceLiguria parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/ListaValori" examples: province-liguria: description: province-liguria value: lista: - identificativo: "010" valore: GENOVA - identificativo: "008" valore: IMPERIA - identificativo: "011" valore: LA SPEZIA - identificativo: "009" valore: SAVONA numeroElementiLista: 4 responseStatus: 200 OK "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" /tipologiche/indirizzi-provincia-comune-nuovo-o-modifica-impianto/{identificativo-provincia}/{identificativo-comune}/{parte}: get: tags: - tipologiche-controller summary: Get lista indirizzi per provincia, comune e parte dell'indirizzo (nuovo o modifica impianto) description: Retrieve la lista degli indirizzi appartenenti a una specifica provincia e comune e che contengono la parte specificata nel nome (per nuovo o modifica impianto) operationId: recuperoDatiIndirizziProvinciaComuneNuovoModificaImpianto parameters: - name: identificativo-provincia in: path description: Identificativo ISTAT della provincia required: true schema: type: string example: "010" - name: identificativo-comune in: path description: Identificativo ISTAT del comune required: true schema: type: string example: "025" - name: parte in: path required: true schema: type: string - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/ListaValoriWithRequest" "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" /tipologiche/comuni-provincia/{identificativo-provincia}: get: tags: - tipologiche-controller summary: Get lista comuni per provincia description: Retrieve la lista dei comuni appartenenti a una specifica provincia operationId: recuperoListaComuniPerProvincia parameters: - name: identificativo-provincia in: path description: Identificativo ISTAT della provincia required: true schema: type: string example: "010" - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/ListaValoriWithRequest" "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" /tipologiche/comune/{identificativo-provincia}/{identificativo-comune}: get: tags: - tipologiche-controller summary: Get comune by provincia and ID description: Retrieve un comune specifico tramite l'identificativo della provincia e l'identificativo del comune operationId: recuperoDatiComunePerProvinciaEId parameters: - name: identificativo-provincia in: path description: Identificativo ISTAT della provincia required: true schema: type: string example: "010" - name: identificativo-comune in: path description: Identificativo ISTAT del comune required: true schema: type: string example: "025" - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/PairStringRespWithReq" "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" /tipologiche/categorie-edificio: get: tags: - tipologiche-controller summary: Get lista categorie edificio description: "Retrieve la lista delle categorie di edificio. Lista fissa: 1=E1 Residenziale, 2=E2 Uffici/collettive, 3=E3 Ospedali, 4=E4 Ricreativo/culturale, 5=E5 Commerciale, 6=E6 Sportivo, 7=E7 Scolastico, 8=E8 Industriale/artigianale." operationId: recuperoDatiCategorieEdificio parameters: - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/ListaValori" examples: categorie-edificio: description: categorie-edificio value: lista: - identificativo: "1" valore: E1 altroValore: Edifici di tutte le tipologie adibiti a residenza e assimilabili - identificativo: "2" valore: E2 altroValore: Edifici adibiti a residenze collettive, a uffici e assimilabili - identificativo: "3" valore: E3 altroValore: Edifici adibiti a ospedali, cliniche o case di cura e assimilabili - identificativo: "4" valore: E4 altroValore: Edifici adibiti ad attivita ricreative, associative o di culto e assimilabili - identificativo: "5" valore: E5 altroValore: Edifici adibiti ad attivita commerciali e assimilabili - identificativo: "6" valore: E6 altroValore: Edifici adibiti ad attivita sportive - identificativo: "7" valore: E7 altroValore: Edifici adibiti ad attivita scolastiche a tutti i livelli e assimilabili - identificativo: "8" valore: E8 altroValore: Edifici adibiti ad attivita industriali ed artigianali e assimilabili numeroElementiLista: 8 responseStatus: 200 OK "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" /tipologiche/categoria-edificio/{identificativo-categoria-edificio}: get: tags: - tipologiche-controller summary: Get categoria edificio by ID description: Retrieve categoria edificio specifico tramite il suo identificativo operationId: recuperoDatiCategoriaEdificioPerId parameters: - name: identificativo-categoria-edificio in: path required: true schema: type: string - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/PairStringRespWithReq" "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" /scheda-1/s0106/{identificativo-impianto}/{codice-impianto}/{identificativo-indirizzo}/{identificativo-responsabile}: get: tags: - gestione-impianti-controller summary: Scheda 1 - Sezione 1.6 Responsabile dell'impianto description: Recupero dati della Sezione 1.6 - Responsabile dell'impianto operationId: recuperoDatiScheda01Sezione06 parameters: - name: identificativo-impianto in: path description: Identificativo dell'impianto required: true schema: type: string example: 15748558 - name: codice-impianto in: path description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri.Pattern: 07 + 1 lettera (A-ILM) + 13 cifre." required: true schema: pattern: ^07[A-ILM][0-9]{13}$ type: string example: 07A1110000000069 - name: identificativo-indirizzo in: path description: Identificativo dell'indirizzo. required: true schema: type: string example: 187452 - name: identificativo-responsabile in: path description: Identificativo responsabile required: true schema: type: string example: 89 - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/Scheda01Sezione06ResponsabileResponse" "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" /scheda-1/s0105/{identificativo-impianto}/{codice-impianto}/{identificativo-indirizzo}/{identificativo-responsabile}: get: tags: - gestione-impianti-controller summary: Scheda 1 - Sezione 1.5 Individuazione della tipologia dei generatori description: Recupero dati della Sezione 1.5 - Individuazione della tipologia dei generatori operationId: recuperoDatiScheda01Sezione05 parameters: - name: identificativo-impianto in: path description: Identificativo dell'impianto required: true schema: type: string example: 15748558 - name: codice-impianto in: path description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri.Pattern: 07 + 1 lettera (A-ILM) + 13 cifre." required: true schema: pattern: ^07[A-ILM][0-9]{13}$ type: string example: 07A1110000000069 - name: identificativo-indirizzo in: path description: Identificativo dell'indirizzo. required: true schema: type: string example: 187452 - name: identificativo-responsabile in: path description: Identificativo responsabile required: true schema: type: string example: 89 - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/Scheda01Sezione05GeneratoriResponse" "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" /scheda-1/s0104/{identificativo-impianto}/{codice-impianto}/{identificativo-indirizzo}/{identificativo-responsabile}: get: tags: - gestione-impianti-controller summary: Scheda 1 - Sezione 1.4 Tipo di fluido termovettore description: Recupero dati della Sezione 1.4 - Tipo di fluido termovettore dell'impianto operationId: recuperoDatiScheda01Sezione04 parameters: - name: identificativo-impianto in: path description: Identificativo dell'impianto required: true schema: type: string example: 15748558 - name: codice-impianto in: path description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri.Pattern: 07 + 1 lettera (A-ILM) + 13 cifre." required: true schema: pattern: ^07[A-ILM][0-9]{13}$ type: string example: 07A1110000000069 - name: identificativo-indirizzo in: path description: Identificativo dell'indirizzo. required: true schema: type: string example: 187452 - name: identificativo-responsabile in: path description: Identificativo responsabile required: true schema: type: string example: 89 - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/Scheda01Sezione04TipologiaFluidoResponse" "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" /scheda-1/s0103/{identificativo-impianto}/{codice-impianto}/{identificativo-indirizzo}/{identificativo-responsabile}: get: tags: - gestione-impianti-controller summary: Scheda 1 - Sezione 1.3 Impianto termico destinato a soddisfare i seguenti servizi description: Recupero dati della Sezione 1.3 - Impianto termico destinato a soddisfare i seguenti servizi operationId: recuperoDatiScheda01Sezione03 parameters: - name: identificativo-impianto in: path description: Identificativo dell'impianto required: true schema: type: string example: 15748558 - name: codice-impianto in: path description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri.Pattern: 07 + 1 lettera (A-ILM) + 13 cifre." required: true schema: pattern: ^07[A-ILM][0-9]{13}$ type: string example: 07A1110000000069 - name: identificativo-indirizzo in: path description: Identificativo dell'indirizzo. required: true schema: type: string example: 187452 - name: identificativo-responsabile in: path description: Identificativo responsabile required: true schema: type: string example: 89 - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/Scheda01Sezione03DestinazioneResponse" "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" /scheda-1/s0102/{identificativo-impianto}/{codice-impianto}/{identificativo-indirizzo}/{identificativo-responsabile}: get: tags: - gestione-impianti-controller summary: Scheda 1 - Sezione 1.2 Ubicazione e destinazione dell'edificio description: Recupero dati della Sezione 1.2 - Ubicazione e destinazione dell'edificio operationId: recuperoDatiScheda01Sezione02 parameters: - name: identificativo-impianto in: path description: Identificativo dell'impianto required: true schema: type: string example: 15748558 - name: codice-impianto in: path description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri.Pattern: 07 + 1 lettera (A-ILM) + 13 cifre." required: true schema: pattern: ^07[A-ILM][0-9]{13}$ type: string example: 07A1110000000069 - name: identificativo-indirizzo in: path description: Identificativo dell'indirizzo. required: true schema: type: string example: 187452 - name: identificativo-responsabile in: path description: Identificativo responsabile required: true schema: type: string example: 89 - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/Scheda01Sezione02UbicazioneResponse" "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" /impianto/dati-summary-impianto-terzi/{codice-impianto}/{identificativo-provincia}/{identificativo-comune}/{parte-di-indirizzo}: get: tags: - catalogo-impianti-controller summary: Dati intestazione impianto di terzi, di cui occorre conoscere il codice impianto e l'ubicazione description: Dati di intestazione impianto in gestione di terzi operationId: datiSummaryImpiantoTerzi parameters: - name: codice-impianto in: path description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri.Pattern: 07 + 1 lettera (A-ILM) + 13 cifre." required: true schema: pattern: ^07[A-ILM][0-9]{13}$ type: string example: 07A1110000000069 - name: identificativo-provincia in: path description: Identificativo ISTAT della provincia required: true schema: type: string example: "010" - name: identificativo-comune in: path description: Identificativo ISTAT del comune required: true schema: type: string example: "025" - name: parte-di-indirizzo in: path description: Parte dell'indirizzo da ricercare (ricerca impianti di terzi). Almeno 8 caratteri, puo' iniziare o finire (non entrambi ne' in mezzo) con "%". required: true schema: type: string example: garibaldi - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/DatiSummaryImpiantoTerziResponse" "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" /impianto/dati-summary-impianto-in-gestione/{codice-impianto}: get: tags: - catalogo-impianti-controller summary: Dati intestazione impianto solo se l'impianto ha un gruppo di cui l'azienda chiamante è owner description: Dati di intestazione impianto in gestione operationId: datiSummaryImpiantoInGestione parameters: - name: codice-impianto in: path description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri.Pattern: 07 + 1 lettera (A-ILM) + 13 cifre." required: true schema: pattern: ^07[A-ILM][0-9]{13}$ type: string example: 07A1110000000069 - $ref: "#/components/parameters/CodiceFiscaleOperatore" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/DatiSummaryImpiantoInGestioneResponse" "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: UpdateScheda01Sezione06Responsabile: required: - codiceImpianto - email - identificativoComune - identificativoImpianto - identificativoIndirizzo - identificativoProvincia - identificativoResponsabile - identificativoTipoResponsabilita - telefono type: object properties: identificativoImpianto: type: string description: Identificativo univoco dell'impianto example: "1574" codiceImpianto: pattern: ^07[A-ILM][0-9]{13}$ type: string description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri." example: 07A1110000000069 identificativoIndirizzo: type: string description: Identificativo univoco dell'indirizzo example: "3201" identificativoResponsabile: type: string description: Identificativo univoco del responsabile corrente example: "892" cognome: type: string description: Cognome del responsabile example: Rossi nome: type: string description: Nome del responsabile example: Mario cf: type: string description: Codice fiscale del responsabile example: RSSMRA80A01D969Z ragioneSociale: type: string description: Ragione sociale (per persone giuridiche) example: Rossi Mario S.r.l. partitaIva: type: string description: Partita IVA (per persone giuridiche) example: "01234567890" identificativoProvincia: type: string description: Codice della provincia di residenza example: "010" identificativoComune: type: string description: Codice del comune di residenza example: "025" indirizzo: type: string description: Indirizzo di residenza example: Via Roma civico: type: string description: Numero civico example: "17" email: type: string description: Indirizzo email example: rossi.mario@example.com fax: type: string description: Numero di fax example: +39 010 123456 telefono: type: string description: Numero di telefono example: +39 347 1234567 identificativoTipoResponsabilita: type: string description: "Identificativo tipo responsabilità. Valori: 1=Proprietario, 2=Occupante, 3=Amministratore condominio, 4=Terzo responsabile" example: "1" enum: - "1" - "2" - "3" - "4" description: Update della Sezione 1.6 - Dati anagrafici e identificativi del responsabile dell'impianto Base: type: object description: Corpo della request originale 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 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 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" UpdateScheda01Sezione06ResponsabileResponse: type: object properties: elemento: type: string description: In caso di risposta positiva ritorna la stringa 'OK'. In caso di risposta negativa ritorna la stringa 'KO'. example: OK responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta dell'aggiornamento Sezione 1.6 - Dati anagrafici e identificativi del responsabile dell'impianto 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 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 SubentroScheda01Sezione06Responsabile: required: - codiceImpianto - email - identificativoComune - identificativoImpianto - identificativoIndirizzo - identificativoProvincia - identificativoResponsabile - identificativoTipoResponsabilita - telefono type: object properties: identificativoImpianto: type: string description: Identificativo univoco dell'impianto example: "1574" codiceImpianto: pattern: ^07[A-ILM][0-9]{13}$ type: string description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri." example: 07A1110000000069 identificativoIndirizzo: type: string description: Identificativo univoco dell'indirizzo example: "3201" identificativoResponsabile: type: string description: Identificativo univoco del responsabile corrente da sostituire example: "892" cognome: type: string description: Cognome del nuovo responsabile example: Bianchi nome: type: string description: Nome del nuovo responsabile example: Luigi cf: type: string description: Codice fiscale del nuovo responsabile example: BNCLGU75B10D969K ragioneSociale: type: string description: Ragione sociale (per persone giuridiche) example: Bianchi Luigi S.r.l. partitaIva: type: string description: Partita IVA (per persone giuridiche) example: "09876543210" identificativoProvincia: type: string description: Codice della provincia di residenza example: "010" identificativoComune: type: string description: Codice del comune di residenza example: "025" indirizzo: type: string description: Indirizzo di residenza example: Corso Italia civico: type: string description: Numero civico example: "42" email: type: string description: Indirizzo email example: bianchi.luigi@example.com fax: type: string description: Numero di fax example: +39 010 654321 telefono: type: string description: Numero di telefono example: +39 333 9876543 identificativoTipoResponsabilita: type: string description: "Identificativo tipo responsabilità. Valori: 1=Proprietario, 2=Occupante, 3=Amministratore condominio, 4=Terzo responsabile" example: "1" enum: - "1" - "2" - "3" - "4" dataSubentro: type: string description: Data fine responsabilità del responsabile uscente (yyyy-MM-dd) example: 2024-12-31 description: Subentro Sezione 1.6 - Dati anagrafici e identificativi del responsabile dell'impianto SubentroScheda01Sezione06ResponsabileResponse: type: object properties: elemento: type: string description: In caso di risposta positiva contiene l'identificativo del nuovo responsabile. In caso di risposta negativa ritorna la stringa 'KO'. example: "893" responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta al Subentro Sezione 1.6 - Dati anagrafici e identificativi del responsabile dell'impianto UpdateScheda01Sezione05Generatori: required: - codiceImpianto - identificativoImpianto - identificativoIndirizzo - identificativoResponsabile type: object properties: identificativoImpianto: type: string description: Identificativo univoco dell'impianto example: "1574" codiceImpianto: pattern: ^07[A-ILM][0-9]{13}$ type: string description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri." example: 07A1110000000069 identificativoIndirizzo: type: string description: Identificativo univoco dell'indirizzo example: "3201" identificativoResponsabile: type: string description: Identificativo univoco del responsabile example: "892" hasIntegPannelli: type: boolean description: Presenza integrazione pannelli solari example: true superficieIntegPannelliMq: type: string description: Superficie integrazione pannelli solari (mq) example: "12.0" hasIntegAltro: type: boolean description: Presenza altra integrazione example: false descIntegAltro: type: string description: Descrizione altra integrazione example: Pompa di calore geotermica potenzaIntegAltroKW: type: string description: Potenza altra integrazione (kW) example: "6.0" hasIntegPerAcs: type: boolean description: Integrazione utilizzata per ACS example: true hasIntegPerClimInv: type: boolean description: Integrazione utilizzata per climatizzazione invernale example: false hasIntegPerClimEst: type: boolean description: Integrazione utilizzata per climatizzazione estiva example: false hasIntegPerAltro: type: boolean description: Integrazione utilizzata per altro servizio example: false descrizioneIntegPerAltro: type: string description: Descrizione altro servizio dell'integrazione example: Riscaldamento piscina description: Update della Sezione 1.5 - Individuazione della tipologia dei generatori UpdateScheda01Sezione05GeneratoriResponse: type: object properties: elemento: type: string description: In caso di risposta positiva ritorna la stringa 'OK'. In caso di risposta negativa ritorna la stringa 'KO'. example: OK responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta dell'aggiornamento Sezione 1.5 - Individuazione della tipologia dei generatori UpdateScheda01Sezione03Destinazione: required: - codiceImpianto - identificativoImpianto - identificativoIndirizzo - identificativoResponsabile type: object properties: identificativoImpianto: type: string description: Identificativo univoco dell'impianto example: "1574" codiceImpianto: pattern: ^07[A-ILM][0-9]{13}$ type: string description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri." example: 07A1110000000069 identificativoIndirizzo: type: string description: Identificativo univoco dell'indirizzo example: "3201" identificativoResponsabile: type: string description: Identificativo univoco del responsabile example: "892" hasAcs: type: boolean description: Presenza servizio ACS (Acqua Calda Sanitaria) example: true potenzaAcsKW: type: string description: Potenza ACS (kW) example: "24.0" hasClimInv: type: boolean description: Presenza climatizzazione invernale example: true potenzaClimInvKW: type: string description: Potenza climatizzazione invernale (kW) example: "18.0" hasClimEst: type: boolean description: Presenza climatizzazione estiva example: false potenzaClimEstKW: type: string description: Potenza climatizzazione estiva (kW) example: "12.0" hasAltro: type: boolean description: Presenza altro servizio example: false descrizioneAltro: type: string description: Descrizione altro servizio example: Pannelli radianti description: Update della Sezione 1.3 - Destinazione e servizi impianto termico UpdateScheda01Sezione03DestinazioneResponse: type: object properties: elemento: type: string description: In caso di risposta positiva ritorna la stringa 'OK'. In caso di risposta negativa ritorna la stringa 'KO'. example: OK responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta dell'aggiornamento Sezione 1.3 - Destinazione e servizi impianto termico UpdateScheda01Sezione02Ubicazione: required: - civico - codiceImpianto - identificativoColoreCivico - identificativoComune - identificativoImpianto - identificativoIndirizzo - identificativoIndirizzoNuovo - identificativoProvincia - identificativoResponsabile - pod type: object properties: identificativoImpianto: type: string description: Identificativo univoco dell'impianto example: "1574" codiceImpianto: pattern: ^07[A-ILM][0-9]{13}$ type: string description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri." example: 07A1110000000069 identificativoIndirizzo: type: string description: Identificativo univoco dell'indirizzo example: "3201" identificativoResponsabile: type: string description: Identificativo univoco del responsabile example: "892" identificativoProvincia: type: string description: Codice ISTAT della Provincia example: "010" identificativoComune: type: string description: Identificativo Comune example: "025" identificativoIndirizzoNuovo: type: string description: Identificativo del nuovo indirizzo appartenente a provincia e comune example: "4521" civico: type: string description: Numero civico example: "17" identificativoColoreCivico: type: string description: "Identificativo colore civico. Valori: R = Rosso, N = Nero" example: N enum: - R - N letteraOpalazzo: type: string description: Lettera o palazzo example: A scala: type: string description: Scala example: B interno: type: string description: Interno example: "3" internoLettera: type: string description: Lettera interno example: A isSingolaUnitaImmobiliare: type: boolean description: Indica se è singola unità immobiliare example: true volumeLordoRiscaldatoMc: type: string description: Volume lordo riscaldato (mc) example: "150.5" volumeLordoRaffrescatoMc: type: string description: Volume lordo raffrescato (mc) example: "80.0" identificativoCatEdificio: type: string description: "Identificativo categoria edificio. Valori: 1=E1 Residenziale, 2=E2 Uffici/collettive, 3=E3 Ospedali, 4=E4 Ricreativo/culturale, 5=E5 Commerciale, 6=E6 Sportivo, 7=E7 Scolastico, 8=E8 Industriale/artigianale" example: "1" enum: - "1" - "2" - "3" - "4" - "5" - "6" - "7" - "8" pod: maxLength: 15 minLength: 14 pattern: "[iI][tT][0-9]{3}[eE][0-9]{8,9}" type: string description: POD - Point of Delivery (fornitura energia elettrica) example: IT123E012345678 pdr: maxLength: 14 minLength: 14 pattern: \d{14} type: string description: PDR - Punto di Raccolta (fornitura gas) example: "88880123456789" description: Update della Sezione 1.2 - Ubicazione e destinazione dell'edificio UpdateScheda01Sezione02UbicazioneResponse: type: object properties: elemento: type: string description: In caso di risposta positiva può contenere l'identificativo del nuovo indirizzo (se cambiato) oppure 'OK'. In caso di risposta negativa ritorna la stringa 'KO'. example: OK responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta dell'aggiornamento Sezione 1.2 - Ubicazione e destinazione dell'edificio PairStringRespWithReq: type: object properties: elemento: $ref: "#/components/schemas/BasePairString" responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" confirmationToken: type: string writeOnly: true ListaValori: type: object properties: lista: type: array items: $ref: "#/components/schemas/BasePairString" numeroElementiLista: type: integer format: int32 numeroTotaleElementi: type: integer format: int32 paginaAttuale: type: integer format: int32 pagineTotali: type: integer format: int32 responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta semplice contenente una lista di valori chiave/valore ListaValoriWithRequest: type: object properties: lista: type: array items: $ref: "#/components/schemas/BasePairString" numeroElementiLista: type: integer format: int32 numeroTotaleElementi: type: integer format: int32 paginaAttuale: type: integer format: int32 pagineTotali: type: integer format: int32 responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta completa contenente una lista di valori chiave/valore che include i parametri di ricerca originali 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 ProprietaResp: type: object properties: campo: type: string description: Nome del campo (chiave nella mappa delle proprietà) example: pod parentDotCampo: type: string etichetta: type: string description: Etichetta da visualizzare nel form example: POD - Point of Delivery Rete Elettrica placeholder: type: string description: Testo placeholder del campo input example: Inserire il codice POD ulterioreTesto: type: string description: Testo aggiuntivo da mostrare sotto il campo unitaMisura: type: string description: Unità di misura del campo example: kW parent: type: string description: Identificatore della sezione padre nel form example: s0102ubicazioneEDestinazioneEdificio proprieta: type: string description: Visibilità del campo per il ruolo corrente example: NON-VISIBILE enum: - EDITABILE - NON-VISIBILE - SOLA-LETTURA - OBBLIGATORIO tipoCampo: type: string description: Tipo di campo example: TESTUALE enum: - TESTUALE - INTERO - DECIMALE - CENTESIMALE - MILLESIMALE - BOOLEANO - DATA - TIPOLOGICA - AREADITESTO - OGGETTO condizioneDescrizione: type: string description: Messaggio di errore da mostrare se la condizione non è rispettata example: Formato POD non corretto [IT, 3 cifre, E e 8/9 cifre] condizioneRegexp1: type: string description: Espressione regolare primaria di validazione example: ^[iI][tT][0-9]{3}[eE][0-9]{8,9}$ condizioneRegexp2: type: string description: Espressione regolare secondaria di validazione (alternativa a regexp1) condizioneLengthMin: type: integer description: Lunghezza minima del valore format: int64 example: 14 condizioneLengthMax: type: integer description: Lunghezza massima del valore format: int64 example: 15 condizioneValueMin: type: number description: Valore numerico minimo condizioneStepSpin: type: number description: Step per i campi di tipo SPIN format: double example: 0.5 condizioneValueMax: type: number description: Valore numerico massimo condizioneDateMinAbs: pattern: ^\d{4}-\d{2}-\d{2}$ type: string description: Data minima assoluta (formato yyyy-MM-dd) format: date example: 2020-01-01 condizioneDateMaxAbs: pattern: ^\d{4}-\d{2}-\d{2}$ type: string description: Data massima assoluta (formato yyyy-MM-dd) format: date example: 2030-12-31 condizioneDateMinDayRelToNow: type: integer description: Giorni minimi relativi alla data odierna (negativo = passato) format: int32 example: -365 condizioneDateMaxDayRelToNow: type: integer description: Giorni massimi relativi alla data odierna (0 = oggi, positivo = futuro) format: int32 example: 0 condizioneSetValues1: type: string description: Insieme di valori ammessi — primo set (valori separati da virgola) example: S,N,2,3,4 condizioneOrSetValues2: type: string description: Secondo insieme di valori ammessi (AND o OR con il primo set) condizioneOrSetValues3: type: string description: Terzo insieme di valori ammessi (AND o OR con il primo e secondo set) condizioneDipendendeDaAltriCampi: type: boolean description: Indica se la visibilità del campo dipende dal valore di altri campi example: false testoAlert: type: string description: Ulteriore testo di alert testoWarning: type: string description: Ulteriore testo di warning description: Proprietà di visibilità e validazione di un campo del form, come restituita dalla view V_LIB_CAMPI_FE example: pod: campo: pod etichetta: POD - Point of Delivery Rete Elettrica parent: s0102ubicazioneEDestinazioneEdificio proprieta: NON-VISIBILE tipoCampo: TESTUALE condizioneDescrizione: Formato POD non corretto [IT, 3 cifre, E e 8/9 cifre] condizioneRegexp1: ^[iI][tT][0-9]{3}[eE][0-9]{8,9}$ condizioneLengthMin: 14 condizioneLengthMax: 15 condizioneDipendendeDaAltriCampi: false Scheda01Sezione06Responsabile: required: - codiceImpianto - email - identificativoComune - identificativoImpianto - identificativoIndirizzo - identificativoProvincia - identificativoResponsabile - identificativoTipoResponsabilita - telefono type: object properties: identificativoImpianto: type: string description: Identificativo univoco dell'impianto example: "1574" codiceImpianto: pattern: ^07[A-ILM][0-9]{13}$ type: string description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri." example: 07A1110000000069 identificativoIndirizzo: type: string description: Identificativo univoco dell'indirizzo example: "3201" identificativoResponsabile: type: string description: Identificativo univoco del responsabile corrente example: "892" cognome: type: string description: Cognome del responsabile example: Rossi nome: type: string description: Nome del responsabile example: Mario cf: type: string description: Codice fiscale del responsabile example: RSSMRA80A01D969Z ragioneSociale: type: string description: Ragione sociale (per persone giuridiche) example: Rossi Mario S.r.l. partitaIva: type: string description: Partita IVA (per persone giuridiche) example: "01234567890" identificativoProvincia: type: string description: Codice della provincia di residenza example: "010" identificativoComune: type: string description: Codice del comune di residenza example: "025" indirizzo: type: string description: Indirizzo di residenza example: Via Roma civico: type: string description: Numero civico example: "17" email: type: string description: Indirizzo email example: rossi.mario@example.com fax: type: string description: Numero di fax example: +39 010 123456 telefono: type: string description: Numero di telefono example: +39 347 1234567 identificativoTipoResponsabilita: type: string description: "Identificativo tipo responsabilità. Valori: 1=Proprietario, 2=Occupante, 3=Amministratore condominio, 4=Terzo responsabile" example: "1" enum: - "1" - "2" - "3" - "4" dataSubentro: type: string description: Data subentro (yyyy-MM-dd) example: 2026-01-28 dataFine: type: string description: Data fine responsabilità (yyyy-MM-dd) example: 2026-01-27 valoreComune: type: string description: Descrizione del comune di residenza example: Genova valoreProvincia: type: string description: Descrizione della provincia di residenza example: Genova valoreTipoRespDesc: type: string description: Descrizione del tipo di responsabilità example: Proprietario isProprietario: type: boolean description: Il responsabile riveste il ruolo di proprietario example: true isOccupante: type: boolean description: Il responsabile riveste il ruolo di occupante example: false isAmministratoreCondominio: type: boolean description: Il responsabile riveste il ruolo di amministratore di condominio example: false isTerzoResponsabile: type: boolean description: Il responsabile riveste il ruolo di terzo responsabile example: false mappaProprieta: type: object additionalProperties: $ref: "#/components/schemas/ProprietaResp" description: Mappa delle proprietà di visibilità e validazione dei campi della sezione (chiave = nome campo). example: cf: campo: cf etichetta: Codice fiscale parent: s0106responsabileImpianto proprieta: SOLA-LETTURA tipoCampo: TESTUALE condizioneRegexp1: ^[A-Z]{6}[0-9LMNPQRSTUV]{2}[A-Z][0-9LMNPQRSTUV]{2}[A-Z][0-9LMNPQRSTUV]{3}[A-Z]$ condizioneLengthMin: 16 condizioneLengthMax: 16 condizioneDipendendeDaAltriCampi: false description: Sezione 1.6 - Dati anagrafici e identificativi del responsabile dell'impianto Scheda01Sezione06ResponsabileResponse: required: - elemento type: object properties: elemento: $ref: "#/components/schemas/Scheda01Sezione06Responsabile" responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta della Sezione 1.6 - Dati anagrafici e identificativi del responsabile dell'impianto Scheda01Sezione05Generatori: required: - codiceImpianto - identificativoImpianto - identificativoIndirizzo - identificativoResponsabile type: object properties: identificativoImpianto: type: string description: Identificativo univoco dell'impianto example: "1574" codiceImpianto: pattern: ^07[A-ILM][0-9]{13}$ type: string description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri." example: 07A1110000000069 identificativoIndirizzo: type: string description: Identificativo univoco dell'indirizzo example: "3201" identificativoResponsabile: type: string description: Identificativo univoco del responsabile example: "892" hasIntegPannelli: type: boolean description: Presenza integrazione pannelli solari example: true superficieIntegPannelliMq: type: string description: Superficie integrazione pannelli solari (mq) example: "12.0" hasIntegAltro: type: boolean description: Presenza altra integrazione example: false descIntegAltro: type: string description: Descrizione altra integrazione example: Pompa di calore geotermica potenzaIntegAltroKW: type: string description: Potenza altra integrazione (kW) example: "6.0" hasIntegPerAcs: type: boolean description: Integrazione utilizzata per ACS example: true hasIntegPerClimInv: type: boolean description: Integrazione utilizzata per climatizzazione invernale example: false hasIntegPerClimEst: type: boolean description: Integrazione utilizzata per climatizzazione estiva example: false hasIntegPerAltro: type: boolean description: Integrazione utilizzata per altro servizio example: false descrizioneIntegPerAltro: type: string description: Descrizione altro servizio dell'integrazione example: Riscaldamento piscina hasCombLiquidoSolido: type: boolean description: Presenza generatore a combustibile liquido o solido example: false hasGasMetanoGpl: type: boolean description: Presenza generatore a gas metano o GPL example: true hasElettricoFiamma: type: boolean description: Presenza generatore elettrico a fiamma example: false hasCompressioneTermica: type: boolean description: Presenza pompa di calore a compressione termica example: false hasAssorbimentoTermica: type: boolean description: Presenza pompa di calore ad assorbimento termico example: false hasScambiatore: type: boolean description: Presenza scambiatore di calore con teleriscaldamento example: false hasCogeneratore: type: boolean description: Presenza cogeneratore example: false hasAltro: type: boolean description: Presenza altro tipo di generatore example: false descAltro: type: string description: Descrizione altro tipo di generatore example: Pannelli fotovoltaici mappaProprieta: type: object additionalProperties: $ref: "#/components/schemas/ProprietaResp" description: Mappa delle proprietà di visibilità e validazione dei campi della sezione (chiave = nome campo). example: hasGasMetanoGpl: campo: hasGasMetanoGpl etichetta: Gas metano / GPL parent: s0105tipologiaGeneratori proprieta: EDITABILE tipoCampo: BOOLEANO condizioneDipendendeDaAltriCampi: false description: Sezione 1.5 - Tipologie di generatori e sistemi di integrazione presenti Scheda01Sezione05GeneratoriResponse: type: object properties: elemento: $ref: "#/components/schemas/Scheda01Sezione05Generatori" responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta Sezione 1.5 - Tipologie di generatori e sistemi di integrazione presenti Scheda01Sezione04TipologiaFluido: required: - codiceImpianto - identificativoImpianto - identificativoIndirizzo type: object properties: identificativoImpianto: type: string description: Identificativo univoco dell'impianto example: "1574" codiceImpianto: pattern: ^07[A-ILM][0-9]{13}$ type: string description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri." example: 07A1110000000069 identificativoIndirizzo: type: string description: Identificativo univoco dell'indirizzo example: "3201" hasAcqua: type: boolean description: Presenza tipologia fluido Acqua example: true hasAria: type: boolean description: Presenza tipologia fluido Aria example: true hasAltro: type: boolean description: Presenza tipologia altro fluido, valorizzare descAltro example: true descAltro: type: string description: Descrizione altro fluido vettore example: Ozono description: Sezione 1.4 - Tipo di fluido termovettore dell'impianto. Dati derivati dai generatori (sola lettura, non aggiornabile via API) Scheda01Sezione04TipologiaFluidoResponse: type: object properties: elemento: $ref: "#/components/schemas/Scheda01Sezione04TipologiaFluido" responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta della Sezione 1.4 - Tipo di fluido termovettore dell'impianto Scheda01Sezione03Destinazione: required: - codiceImpianto - identificativoImpianto - identificativoIndirizzo - identificativoResponsabile type: object properties: identificativoImpianto: type: string description: Identificativo univoco dell'impianto example: "1574" codiceImpianto: pattern: ^07[A-ILM][0-9]{13}$ type: string description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri." example: 07A1110000000069 identificativoIndirizzo: type: string description: Identificativo univoco dell'indirizzo example: "3201" identificativoResponsabile: type: string description: Identificativo univoco del responsabile example: "892" hasAcs: type: boolean description: Presenza servizio ACS (Acqua Calda Sanitaria) example: true potenzaAcsKW: type: string description: Potenza ACS (kW) example: "24.0" hasClimInv: type: boolean description: Presenza climatizzazione invernale example: true potenzaClimInvKW: type: string description: Potenza climatizzazione invernale (kW) example: "18.0" hasClimEst: type: boolean description: Presenza climatizzazione estiva example: false potenzaClimEstKW: type: string description: Potenza climatizzazione estiva (kW) example: "12.0" hasAltro: type: boolean description: Presenza altro servizio example: false descrizioneAltro: type: string description: Descrizione altro servizio example: Pannelli radianti mappaProprieta: type: object additionalProperties: $ref: "#/components/schemas/ProprietaResp" description: Mappa delle proprietà di visibilità e validazione dei campi della sezione (chiave = nome campo). example: hasClimInv: campo: hasClimInv etichetta: Climatizzazione invernale parent: s0103destinazioneEServiziImpianto proprieta: EDITABILE tipoCampo: BOOLEANO condizioneDipendendeDaAltriCampi: false description: Sezione 1.3 - Destinazione e servizi impianto termico Scheda01Sezione03DestinazioneResponse: type: object properties: elemento: $ref: "#/components/schemas/Scheda01Sezione03Destinazione" responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta della Sezione 1.3 - Destinazione e servizi impianto termico Scheda01Sezione02Ubicazione: required: - civico - codiceImpianto - identificativoColoreCivico - identificativoComune - identificativoImpianto - identificativoIndirizzo - identificativoIndirizzoNuovo - identificativoProvincia - identificativoResponsabile - pod - valoreIndirizzo type: object properties: identificativoImpianto: type: string description: Identificativo univoco dell'impianto example: "1574" codiceImpianto: pattern: ^07[A-ILM][0-9]{13}$ type: string description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri." example: 07A1110000000069 identificativoIndirizzo: type: string description: Identificativo univoco dell'indirizzo identificativoResponsabile: type: string description: Identificativo univoco del responsabile valoreComune: type: string description: Comune dove è ubicato l'impianto. example: Mignanego valoreProvincia: type: string description: Provincia dove è ubicato l'impianto. example: Genova valoreCatEdificio: type: string description: Categoria catastale edificio . example: E3 hasCatEdificioE1: type: boolean description: Edificio di categoria E1 - Residenze e assimilabili example: true hasCatEdificioE2: type: boolean description: Edificio di categoria E2 - Uffici e assimilabili example: false hasCatEdificioE3: type: boolean description: Edificio di categoria E3 - Ospedali, cliniche o case di cura e assimilabili example: false hasCatEdificioE4: type: boolean description: Edificio di categoria E4 - Attività ricreative, associative o di culto e assimilabili example: false hasCatEdificioE5: type: boolean description: Edificio di categoria E5 - Attività commerciali e assimilabili example: false hasCatEdificioE6: type: boolean description: Edificio di categoria E6 - Attività sportive example: false hasCatEdificioE7: type: boolean description: Edificio di categoria E7 - Attività scolastiche example: false hasCatEdificioE8: type: boolean description: Edificio di categoria E8 - Attività industriali e artigianali e assimilabili example: false identificativoProvincia: type: string description: Identificativo della provincia example: "010" identificativoComune: type: string description: Identificativo del comune example: "025" identificativoIndirizzoNuovo: type: string description: Identificativo dell'indirizzo, campo che nella response contiene lo stesso valore di identificativoIndirizzo. Nel caso in cui venisse cambiato l'indirizzo, questo cambio conterrà l'identificativo del nuovo indirizzo example: "4521" valoreIndirizzo: type: string description: Descrizione dell'indirizzo (via, piazza...) example: Via Roma civico: type: string description: Numero civico example: "17" identificativoColoreCivico: type: string description: "Identificativo del colore del civico. Valori: R = Rosso, N = Nero" example: N enum: - R - N letteraOpalazzo: type: string description: Lettera o palazzo example: A scala: type: string description: Scala example: B interno: type: string description: Interno example: "3" internoLettera: type: string description: Lettera interno example: A isSingolaUnitaImmobiliare: type: boolean description: Indica se l'impianto è a servizio di una singola unità immobiliare example: true volumeLordoRiscaldatoMc: type: string description: Volume lordo riscaldato (mc) example: "150.5" volumeLordoRaffrescatoMc: type: string description: Volume lordo raffrescato (mc) example: "80.0" identificativoCatEdificio: type: string description: "Identificativo della categoria edificio. Valori: 1=E1 Residenziale, 2=E2 Uffici/collettive, 3=E3 Ospedali, 4=E4 Ricreativo/culturale, 5=E5 Commerciale, 6=E6 Sportivo, 7=E7 Scolastico, 8=E8 Industriale/artigianale" example: "1" enum: - "1" - "2" - "3" - "4" - "5" - "6" - "7" - "8" pod: maxLength: 15 minLength: 14 pattern: "[iI][tT][0-9]{3}[eE][0-9]{8,9}" type: string description: POD - Point of Delivery (fornitura energia elettrica) example: IT123E012345678 pdr: maxLength: 14 minLength: 14 pattern: \d{14} type: string description: PDR - Punto di Raccolta (fornitura gas) example: "88880123456789" mappaProprieta: type: object additionalProperties: $ref: "#/components/schemas/ProprietaResp" description: Mappa delle proprietà di visibilità e validazione dei campi della sezione (chiave = nome campo). example: pod: campo: pod etichetta: POD - Point of Delivery Rete Elettrica parent: s0102ubicazioneEDestinazioneEdificio proprieta: NON-VISIBILE tipoCampo: TESTUALE condizioneDescrizione: Formato POD non corretto [IT, 3 cifre, E e 8/9 cifre] condizioneRegexp1: ^[iI][tT][0-9]{3}[eE][0-9]{8,9}$ condizioneLengthMin: 14 condizioneLengthMax: 15 condizioneDipendendeDaAltriCampi: false description: Sezione 1.2 - Ubicazione e destinazione dell'edificio Scheda01Sezione02UbicazioneResponse: required: - elemento type: object properties: elemento: $ref: "#/components/schemas/Scheda01Sezione02Ubicazione" responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta della Sezione 1.2 - Ubicazione e destinazione dell'edificio DatiSummaryImpianto: required: - codiceImpianto - identificativoImpianto - identificativoIndirizzo - identificativoResponsabile type: object properties: identificativoImpianto: type: string description: Identificativo univoco dell'impianto example: "1574" codiceImpianto: pattern: ^07[A-ILM][0-9]{13}$ type: string description: "Codice Caitel dell'impianto. Formato: 07 seguito da codice belfiore del comune e ulteriori 10 numeri." example: 07A1110000000069 indirizzoCompleto: type: string description: Indirizzo completo dell'impianto (via civico, comune) example: Via Roma 17, Genova identificativoIndirizzo: type: string description: Identificativo univoco dell'indirizzo example: "3201" coloreCivico: type: string description: Colore del civico example: Rosso enum: - Nero - Rosso letteraOpalazzo: type: string description: Lettera o palazzo example: A scala: type: string description: Scala example: B interno: type: string description: Numero interno example: "3" internoLettera: type: string description: Lettera interno example: A responsabileNome: type: string description: Nominativo del responsabile dell'impianto example: Rossi Mario responsabileTipo: type: string description: Tipo di responsabilità example: Occupante enum: - Amministratore condominio - Occupante - Proprietario - Terzo responsabile responsabileIdentificativoFiscale: type: string description: Codice fiscale o partita IVA del responsabile example: RSSMRA80A01D969Z identificativoResponsabile: type: string description: Identificativo univoco del responsabile example: "892" identificativoLibrettoInBozzaAzienda: type: string description: Identificativo del libretto in bozza dell'azienda (null/assente se l'azienda non ha un libretto in bozza per l'impianto) example: "5021" isLibrettoBloccato: type: boolean description: Indica se il libretto è bloccato (es. validazione/generazione pdf in corso, oppure anche per errori nella generazione del PDF) example: false isImpiantoAnnullato: type: boolean description: Indica se l'impianto è annullato example: true description: Dati di intestazione dell'impianto DatiSummaryImpiantoTerziResponse: type: object properties: elemento: $ref: "#/components/schemas/DatiSummaryImpianto" responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta al servizio di dati summary di un impianto in gestione a terzi utilizzando il codice caitel impianto e la sua ubicazione (provincia, comune e almeno 8 caratteri della via) DatiSummaryImpiantoInGestioneResponse: type: object properties: elemento: $ref: "#/components/schemas/DatiSummaryImpianto" responseStatus: type: string informazioni: $ref: "#/components/schemas/ResponseMessage" request: $ref: "#/components/schemas/RequestPayloadBase" description: Risposta al servizio di dati summary dei soli impianti in gestione utilizzando il codice caitel impianto 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