/* tslint:disable */
/* eslint-disable */
/* Code generated by ng-openapi-gen DO NOT EDIT. */

import { HttpClient, HttpContext } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

import { BaseService } from '../base-service';
import { ApiConfiguration } from '../api-configuration';
import { StrictHttpResponse } from '../strict-http-response';

import { CategoriaPrestazioneResDto } from '../models/categoria-prestazione-res-dto';
import { ElementiResDto } from '../models/elementi-res-dto';
import { nomenclatoreControllerCreateNomenclatore } from '../fn/nomenclatore/nomenclatore-controller-create-nomenclatore';
import { NomenclatoreControllerCreateNomenclatore$Params } from '../fn/nomenclatore/nomenclatore-controller-create-nomenclatore';
import { nomenclatoreControllerCreateNomenclatoreLivello1 } from '../fn/nomenclatore/nomenclatore-controller-create-nomenclatore-livello-1';
import { NomenclatoreControllerCreateNomenclatoreLivello1$Params } from '../fn/nomenclatore/nomenclatore-controller-create-nomenclatore-livello-1';
import { nomenclatoreControllerCreateNomenclatoreLivello2 } from '../fn/nomenclatore/nomenclatore-controller-create-nomenclatore-livello-2';
import { NomenclatoreControllerCreateNomenclatoreLivello2$Params } from '../fn/nomenclatore/nomenclatore-controller-create-nomenclatore-livello-2';
import { nomenclatoreControllerCreateNomenclatoreLivello3 } from '../fn/nomenclatore/nomenclatore-controller-create-nomenclatore-livello-3';
import { NomenclatoreControllerCreateNomenclatoreLivello3$Params } from '../fn/nomenclatore/nomenclatore-controller-create-nomenclatore-livello-3';
import { nomenclatoreControllerCreateNomenclatoreLivello4 } from '../fn/nomenclatore/nomenclatore-controller-create-nomenclatore-livello-4';
import { NomenclatoreControllerCreateNomenclatoreLivello4$Params } from '../fn/nomenclatore/nomenclatore-controller-create-nomenclatore-livello-4';
import { nomenclatoreControllerExportNomenclatore } from '../fn/nomenclatore/nomenclatore-controller-export-nomenclatore';
import { NomenclatoreControllerExportNomenclatore$Params } from '../fn/nomenclatore/nomenclatore-controller-export-nomenclatore';
import { nomenclatoreControllerFindManyCategoriePrestazione } from '../fn/nomenclatore/nomenclatore-controller-find-many-categorie-prestazione';
import { NomenclatoreControllerFindManyCategoriePrestazione$Params } from '../fn/nomenclatore/nomenclatore-controller-find-many-categorie-prestazione';
import { nomenclatoreControllerFindManyElementi } from '../fn/nomenclatore/nomenclatore-controller-find-many-elementi';
import { NomenclatoreControllerFindManyElementi$Params } from '../fn/nomenclatore/nomenclatore-controller-find-many-elementi';
import { nomenclatoreControllerFindManyLivello1Nomenclatore } from '../fn/nomenclatore/nomenclatore-controller-find-many-livello-1-nomenclatore';
import { NomenclatoreControllerFindManyLivello1Nomenclatore$Params } from '../fn/nomenclatore/nomenclatore-controller-find-many-livello-1-nomenclatore';
import { nomenclatoreControllerFindManyLivello2Nomenclatore } from '../fn/nomenclatore/nomenclatore-controller-find-many-livello-2-nomenclatore';
import { NomenclatoreControllerFindManyLivello2Nomenclatore$Params } from '../fn/nomenclatore/nomenclatore-controller-find-many-livello-2-nomenclatore';
import { nomenclatoreControllerFindManyLivello3Nomenclatore } from '../fn/nomenclatore/nomenclatore-controller-find-many-livello-3-nomenclatore';
import { NomenclatoreControllerFindManyLivello3Nomenclatore$Params } from '../fn/nomenclatore/nomenclatore-controller-find-many-livello-3-nomenclatore';
import { nomenclatoreControllerFindManyLivello4Nomenclatore } from '../fn/nomenclatore/nomenclatore-controller-find-many-livello-4-nomenclatore';
import { NomenclatoreControllerFindManyLivello4Nomenclatore$Params } from '../fn/nomenclatore/nomenclatore-controller-find-many-livello-4-nomenclatore';
import { nomenclatoreControllerFindManyNomenclatore } from '../fn/nomenclatore/nomenclatore-controller-find-many-nomenclatore';
import { NomenclatoreControllerFindManyNomenclatore$Params } from '../fn/nomenclatore/nomenclatore-controller-find-many-nomenclatore';
import { nomenclatoreControllerFindManyTipiPrestazione } from '../fn/nomenclatore/nomenclatore-controller-find-many-tipi-prestazione';
import { NomenclatoreControllerFindManyTipiPrestazione$Params } from '../fn/nomenclatore/nomenclatore-controller-find-many-tipi-prestazione';
import { nomenclatoreControllerFindManyTipiStruttura } from '../fn/nomenclatore/nomenclatore-controller-find-many-tipi-struttura';
import { NomenclatoreControllerFindManyTipiStruttura$Params } from '../fn/nomenclatore/nomenclatore-controller-find-many-tipi-struttura';
import { nomenclatoreControllerFindManyUnitaDiMisura } from '../fn/nomenclatore/nomenclatore-controller-find-many-unita-di-misura';
import { NomenclatoreControllerFindManyUnitaDiMisura$Params } from '../fn/nomenclatore/nomenclatore-controller-find-many-unita-di-misura';
import { nomenclatoreControllerGetOneNomenclatoreById } from '../fn/nomenclatore/nomenclatore-controller-get-one-nomenclatore-by-id';
import { NomenclatoreControllerGetOneNomenclatoreById$Params } from '../fn/nomenclatore/nomenclatore-controller-get-one-nomenclatore-by-id';
import { nomenclatoreControllerUpdateNomenclatore } from '../fn/nomenclatore/nomenclatore-controller-update-nomenclatore';
import { NomenclatoreControllerUpdateNomenclatore$Params } from '../fn/nomenclatore/nomenclatore-controller-update-nomenclatore';
import { nomenclatoreControllerUpdateNomenclatoreLivello1 } from '../fn/nomenclatore/nomenclatore-controller-update-nomenclatore-livello-1';
import { NomenclatoreControllerUpdateNomenclatoreLivello1$Params } from '../fn/nomenclatore/nomenclatore-controller-update-nomenclatore-livello-1';
import { nomenclatoreControllerUpdateNomenclatoreLivello2 } from '../fn/nomenclatore/nomenclatore-controller-update-nomenclatore-livello-2';
import { NomenclatoreControllerUpdateNomenclatoreLivello2$Params } from '../fn/nomenclatore/nomenclatore-controller-update-nomenclatore-livello-2';
import { nomenclatoreControllerUpdateNomenclatoreLivello3 } from '../fn/nomenclatore/nomenclatore-controller-update-nomenclatore-livello-3';
import { NomenclatoreControllerUpdateNomenclatoreLivello3$Params } from '../fn/nomenclatore/nomenclatore-controller-update-nomenclatore-livello-3';
import { nomenclatoreControllerUpdateNomenclatoreLivello4 } from '../fn/nomenclatore/nomenclatore-controller-update-nomenclatore-livello-4';
import { NomenclatoreControllerUpdateNomenclatoreLivello4$Params } from '../fn/nomenclatore/nomenclatore-controller-update-nomenclatore-livello-4';
import { NomenclatoreExcerptRes } from '../models/nomenclatore-excerpt-res';
import { NomenclatoreLivello1ResDto } from '../models/nomenclatore-livello-1-res-dto';
import { NomenclatoreLivello2ResDto } from '../models/nomenclatore-livello-2-res-dto';
import { NomenclatoreLivello3ResDto } from '../models/nomenclatore-livello-3-res-dto';
import { NomenclatoreLivello4ResDto } from '../models/nomenclatore-livello-4-res-dto';
import { NomenclatoreRes } from '../models/nomenclatore-res';
import { TipoPrestazioneResDto } from '../models/tipo-prestazione-res-dto';
import { TipoStrutturaResDto } from '../models/tipo-struttura-res-dto';
import { UnitaDiMisuraResDto } from '../models/unita-di-misura-res-dto';

@Injectable({ providedIn: 'root' })
export class NomenclatoreApiClient extends BaseService {
  constructor(config: ApiConfiguration, http: HttpClient) {
    super(config, http);
  }

  /** Path part for operation `nomenclatoreControllerFindManyCategoriePrestazione()` */
  static readonly NomenclatoreControllerFindManyCategoriePrestazionePath =
    '/nomenclatore/categorie-prestazione';

  /**
   * Get categorie prestazione.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerFindManyCategoriePrestazione()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyCategoriePrestazione$Response(
    params?: NomenclatoreControllerFindManyCategoriePrestazione$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<Array<CategoriaPrestazioneResDto>>> {
    return nomenclatoreControllerFindManyCategoriePrestazione(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Get categorie prestazione.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerFindManyCategoriePrestazione$Response()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyCategoriePrestazione(
    params?: NomenclatoreControllerFindManyCategoriePrestazione$Params,
    context?: HttpContext,
  ): Observable<Array<CategoriaPrestazioneResDto>> {
    return this.nomenclatoreControllerFindManyCategoriePrestazione$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<Array<CategoriaPrestazioneResDto>>,
        ): Array<CategoriaPrestazioneResDto> => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerFindManyElementi()` */
  static readonly NomenclatoreControllerFindManyElementiPath =
    '/nomenclatore/elementi';

  /**
   * Get elementi.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerFindManyElementi()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyElementi$Response(
    params?: NomenclatoreControllerFindManyElementi$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<Array<ElementiResDto>>> {
    return nomenclatoreControllerFindManyElementi(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Get elementi.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerFindManyElementi$Response()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyElementi(
    params?: NomenclatoreControllerFindManyElementi$Params,
    context?: HttpContext,
  ): Observable<Array<ElementiResDto>> {
    return this.nomenclatoreControllerFindManyElementi$Response(
      params,
      context,
    ).pipe(
      map(
        (r: StrictHttpResponse<Array<ElementiResDto>>): Array<ElementiResDto> =>
          r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerFindManyLivello1Nomenclatore()` */
  static readonly NomenclatoreControllerFindManyLivello1NomenclatorePath =
    '/nomenclatore/livello-1';

  /**
   * Get nomenclatore livello 1.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerFindManyLivello1Nomenclatore()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyLivello1Nomenclatore$Response(
    params?: NomenclatoreControllerFindManyLivello1Nomenclatore$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<Array<NomenclatoreLivello1ResDto>>> {
    return nomenclatoreControllerFindManyLivello1Nomenclatore(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Get nomenclatore livello 1.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerFindManyLivello1Nomenclatore$Response()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyLivello1Nomenclatore(
    params?: NomenclatoreControllerFindManyLivello1Nomenclatore$Params,
    context?: HttpContext,
  ): Observable<Array<NomenclatoreLivello1ResDto>> {
    return this.nomenclatoreControllerFindManyLivello1Nomenclatore$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<Array<NomenclatoreLivello1ResDto>>,
        ): Array<NomenclatoreLivello1ResDto> => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerCreateNomenclatoreLivello1()` */
  static readonly NomenclatoreControllerCreateNomenclatoreLivello1Path =
    '/nomenclatore/livello-1';

  /**
   * Add nomenclatore livello 1.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerCreateNomenclatoreLivello1()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerCreateNomenclatoreLivello1$Response(
    params: NomenclatoreControllerCreateNomenclatoreLivello1$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<NomenclatoreLivello1ResDto>> {
    return nomenclatoreControllerCreateNomenclatoreLivello1(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Add nomenclatore livello 1.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerCreateNomenclatoreLivello1$Response()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerCreateNomenclatoreLivello1(
    params: NomenclatoreControllerCreateNomenclatoreLivello1$Params,
    context?: HttpContext,
  ): Observable<NomenclatoreLivello1ResDto> {
    return this.nomenclatoreControllerCreateNomenclatoreLivello1$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<NomenclatoreLivello1ResDto>,
        ): NomenclatoreLivello1ResDto => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerUpdateNomenclatoreLivello1()` */
  static readonly NomenclatoreControllerUpdateNomenclatoreLivello1Path =
    '/nomenclatore/livello-1/id/{id}';

  /**
   * Edit nomenclatore livello 1.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerUpdateNomenclatoreLivello1()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerUpdateNomenclatoreLivello1$Response(
    params: NomenclatoreControllerUpdateNomenclatoreLivello1$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<NomenclatoreLivello1ResDto>> {
    return nomenclatoreControllerUpdateNomenclatoreLivello1(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Edit nomenclatore livello 1.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerUpdateNomenclatoreLivello1$Response()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerUpdateNomenclatoreLivello1(
    params: NomenclatoreControllerUpdateNomenclatoreLivello1$Params,
    context?: HttpContext,
  ): Observable<NomenclatoreLivello1ResDto> {
    return this.nomenclatoreControllerUpdateNomenclatoreLivello1$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<NomenclatoreLivello1ResDto>,
        ): NomenclatoreLivello1ResDto => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerFindManyLivello2Nomenclatore()` */
  static readonly NomenclatoreControllerFindManyLivello2NomenclatorePath =
    '/nomenclatore/livello-2';

  /**
   * Get nomenclatore livello 2.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerFindManyLivello2Nomenclatore()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyLivello2Nomenclatore$Response(
    params?: NomenclatoreControllerFindManyLivello2Nomenclatore$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<Array<NomenclatoreLivello2ResDto>>> {
    return nomenclatoreControllerFindManyLivello2Nomenclatore(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Get nomenclatore livello 2.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerFindManyLivello2Nomenclatore$Response()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyLivello2Nomenclatore(
    params?: NomenclatoreControllerFindManyLivello2Nomenclatore$Params,
    context?: HttpContext,
  ): Observable<Array<NomenclatoreLivello2ResDto>> {
    return this.nomenclatoreControllerFindManyLivello2Nomenclatore$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<Array<NomenclatoreLivello2ResDto>>,
        ): Array<NomenclatoreLivello2ResDto> => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerCreateNomenclatoreLivello2()` */
  static readonly NomenclatoreControllerCreateNomenclatoreLivello2Path =
    '/nomenclatore/livello-2';

  /**
   * Add nomenclatore livello 2.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerCreateNomenclatoreLivello2()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerCreateNomenclatoreLivello2$Response(
    params: NomenclatoreControllerCreateNomenclatoreLivello2$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<NomenclatoreLivello2ResDto>> {
    return nomenclatoreControllerCreateNomenclatoreLivello2(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Add nomenclatore livello 2.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerCreateNomenclatoreLivello2$Response()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerCreateNomenclatoreLivello2(
    params: NomenclatoreControllerCreateNomenclatoreLivello2$Params,
    context?: HttpContext,
  ): Observable<NomenclatoreLivello2ResDto> {
    return this.nomenclatoreControllerCreateNomenclatoreLivello2$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<NomenclatoreLivello2ResDto>,
        ): NomenclatoreLivello2ResDto => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerUpdateNomenclatoreLivello2()` */
  static readonly NomenclatoreControllerUpdateNomenclatoreLivello2Path =
    '/nomenclatore/livello-2/id/{id}';

  /**
   * Edit nomenclatore livello 2.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerUpdateNomenclatoreLivello2()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerUpdateNomenclatoreLivello2$Response(
    params: NomenclatoreControllerUpdateNomenclatoreLivello2$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<NomenclatoreLivello2ResDto>> {
    return nomenclatoreControllerUpdateNomenclatoreLivello2(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Edit nomenclatore livello 2.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerUpdateNomenclatoreLivello2$Response()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerUpdateNomenclatoreLivello2(
    params: NomenclatoreControllerUpdateNomenclatoreLivello2$Params,
    context?: HttpContext,
  ): Observable<NomenclatoreLivello2ResDto> {
    return this.nomenclatoreControllerUpdateNomenclatoreLivello2$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<NomenclatoreLivello2ResDto>,
        ): NomenclatoreLivello2ResDto => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerFindManyLivello3Nomenclatore()` */
  static readonly NomenclatoreControllerFindManyLivello3NomenclatorePath =
    '/nomenclatore/livello-3';

  /**
   * Get nomenclatore livello 3.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerFindManyLivello3Nomenclatore()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyLivello3Nomenclatore$Response(
    params?: NomenclatoreControllerFindManyLivello3Nomenclatore$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<Array<NomenclatoreLivello3ResDto>>> {
    return nomenclatoreControllerFindManyLivello3Nomenclatore(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Get nomenclatore livello 3.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerFindManyLivello3Nomenclatore$Response()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyLivello3Nomenclatore(
    params?: NomenclatoreControllerFindManyLivello3Nomenclatore$Params,
    context?: HttpContext,
  ): Observable<Array<NomenclatoreLivello3ResDto>> {
    return this.nomenclatoreControllerFindManyLivello3Nomenclatore$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<Array<NomenclatoreLivello3ResDto>>,
        ): Array<NomenclatoreLivello3ResDto> => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerCreateNomenclatoreLivello3()` */
  static readonly NomenclatoreControllerCreateNomenclatoreLivello3Path =
    '/nomenclatore/livello-3';

  /**
   * Add nomenclatore livello 3.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerCreateNomenclatoreLivello3()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerCreateNomenclatoreLivello3$Response(
    params: NomenclatoreControllerCreateNomenclatoreLivello3$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<NomenclatoreLivello3ResDto>> {
    return nomenclatoreControllerCreateNomenclatoreLivello3(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Add nomenclatore livello 3.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerCreateNomenclatoreLivello3$Response()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerCreateNomenclatoreLivello3(
    params: NomenclatoreControllerCreateNomenclatoreLivello3$Params,
    context?: HttpContext,
  ): Observable<NomenclatoreLivello3ResDto> {
    return this.nomenclatoreControllerCreateNomenclatoreLivello3$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<NomenclatoreLivello3ResDto>,
        ): NomenclatoreLivello3ResDto => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerUpdateNomenclatoreLivello3()` */
  static readonly NomenclatoreControllerUpdateNomenclatoreLivello3Path =
    '/nomenclatore/livello-3/id/{id}';

  /**
   * Edit nomenclatore livello 3.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerUpdateNomenclatoreLivello3()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerUpdateNomenclatoreLivello3$Response(
    params: NomenclatoreControllerUpdateNomenclatoreLivello3$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<NomenclatoreLivello3ResDto>> {
    return nomenclatoreControllerUpdateNomenclatoreLivello3(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Edit nomenclatore livello 3.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerUpdateNomenclatoreLivello3$Response()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerUpdateNomenclatoreLivello3(
    params: NomenclatoreControllerUpdateNomenclatoreLivello3$Params,
    context?: HttpContext,
  ): Observable<NomenclatoreLivello3ResDto> {
    return this.nomenclatoreControllerUpdateNomenclatoreLivello3$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<NomenclatoreLivello3ResDto>,
        ): NomenclatoreLivello3ResDto => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerFindManyLivello4Nomenclatore()` */
  static readonly NomenclatoreControllerFindManyLivello4NomenclatorePath =
    '/nomenclatore/livello-4';

  /**
   * Get nomenclatore livello 4.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerFindManyLivello4Nomenclatore()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyLivello4Nomenclatore$Response(
    params?: NomenclatoreControllerFindManyLivello4Nomenclatore$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<Array<NomenclatoreLivello4ResDto>>> {
    return nomenclatoreControllerFindManyLivello4Nomenclatore(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Get nomenclatore livello 4.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerFindManyLivello4Nomenclatore$Response()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyLivello4Nomenclatore(
    params?: NomenclatoreControllerFindManyLivello4Nomenclatore$Params,
    context?: HttpContext,
  ): Observable<Array<NomenclatoreLivello4ResDto>> {
    return this.nomenclatoreControllerFindManyLivello4Nomenclatore$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<Array<NomenclatoreLivello4ResDto>>,
        ): Array<NomenclatoreLivello4ResDto> => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerCreateNomenclatoreLivello4()` */
  static readonly NomenclatoreControllerCreateNomenclatoreLivello4Path =
    '/nomenclatore/livello-4';

  /**
   * Add nomenclatore livello 4.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerCreateNomenclatoreLivello4()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerCreateNomenclatoreLivello4$Response(
    params: NomenclatoreControllerCreateNomenclatoreLivello4$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<NomenclatoreLivello4ResDto>> {
    return nomenclatoreControllerCreateNomenclatoreLivello4(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Add nomenclatore livello 4.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerCreateNomenclatoreLivello4$Response()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerCreateNomenclatoreLivello4(
    params: NomenclatoreControllerCreateNomenclatoreLivello4$Params,
    context?: HttpContext,
  ): Observable<NomenclatoreLivello4ResDto> {
    return this.nomenclatoreControllerCreateNomenclatoreLivello4$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<NomenclatoreLivello4ResDto>,
        ): NomenclatoreLivello4ResDto => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerUpdateNomenclatoreLivello4()` */
  static readonly NomenclatoreControllerUpdateNomenclatoreLivello4Path =
    '/nomenclatore/livello-4/id/{id}';

  /**
   * Edit nomenclatore livello 4.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerUpdateNomenclatoreLivello4()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerUpdateNomenclatoreLivello4$Response(
    params: NomenclatoreControllerUpdateNomenclatoreLivello4$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<NomenclatoreLivello4ResDto>> {
    return nomenclatoreControllerUpdateNomenclatoreLivello4(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Edit nomenclatore livello 4.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerUpdateNomenclatoreLivello4$Response()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerUpdateNomenclatoreLivello4(
    params: NomenclatoreControllerUpdateNomenclatoreLivello4$Params,
    context?: HttpContext,
  ): Observable<NomenclatoreLivello4ResDto> {
    return this.nomenclatoreControllerUpdateNomenclatoreLivello4$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<NomenclatoreLivello4ResDto>,
        ): NomenclatoreLivello4ResDto => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerFindManyNomenclatore()` */
  static readonly NomenclatoreControllerFindManyNomenclatorePath =
    '/nomenclatore';

  /**
   * Get nomenclatore.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerFindManyNomenclatore()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyNomenclatore$Response(
    params?: NomenclatoreControllerFindManyNomenclatore$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<Array<NomenclatoreExcerptRes>>> {
    return nomenclatoreControllerFindManyNomenclatore(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Get nomenclatore.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerFindManyNomenclatore$Response()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyNomenclatore(
    params?: NomenclatoreControllerFindManyNomenclatore$Params,
    context?: HttpContext,
  ): Observable<Array<NomenclatoreExcerptRes>> {
    return this.nomenclatoreControllerFindManyNomenclatore$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<Array<NomenclatoreExcerptRes>>,
        ): Array<NomenclatoreExcerptRes> => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerCreateNomenclatore()` */
  static readonly NomenclatoreControllerCreateNomenclatorePath =
    '/nomenclatore';

  /**
   * Add nomenclatore.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerCreateNomenclatore()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerCreateNomenclatore$Response(
    params: NomenclatoreControllerCreateNomenclatore$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<NomenclatoreRes>> {
    return nomenclatoreControllerCreateNomenclatore(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Add nomenclatore.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerCreateNomenclatore$Response()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerCreateNomenclatore(
    params: NomenclatoreControllerCreateNomenclatore$Params,
    context?: HttpContext,
  ): Observable<NomenclatoreRes> {
    return this.nomenclatoreControllerCreateNomenclatore$Response(
      params,
      context,
    ).pipe(
      map((r: StrictHttpResponse<NomenclatoreRes>): NomenclatoreRes => r.body),
    );
  }

  /** Path part for operation `nomenclatoreControllerExportNomenclatore()` */
  static readonly NomenclatoreControllerExportNomenclatorePath =
    '/nomenclatore/export';

  /**
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerExportNomenclatore()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerExportNomenclatore$Response(
    params?: NomenclatoreControllerExportNomenclatore$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<Blob>> {
    return nomenclatoreControllerExportNomenclatore(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerExportNomenclatore$Response()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerExportNomenclatore(
    params?: NomenclatoreControllerExportNomenclatore$Params,
    context?: HttpContext,
  ): Observable<Blob> {
    return this.nomenclatoreControllerExportNomenclatore$Response(
      params,
      context,
    ).pipe(map((r: StrictHttpResponse<Blob>): Blob => r.body));
  }

  /** Path part for operation `nomenclatoreControllerGetOneNomenclatoreById()` */
  static readonly NomenclatoreControllerGetOneNomenclatoreByIdPath =
    '/nomenclatore/id/{id}';

  /**
   * Get nomenclatore by id.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerGetOneNomenclatoreById()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerGetOneNomenclatoreById$Response(
    params: NomenclatoreControllerGetOneNomenclatoreById$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<NomenclatoreRes>> {
    return nomenclatoreControllerGetOneNomenclatoreById(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Get nomenclatore by id.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerGetOneNomenclatoreById$Response()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerGetOneNomenclatoreById(
    params: NomenclatoreControllerGetOneNomenclatoreById$Params,
    context?: HttpContext,
  ): Observable<NomenclatoreRes> {
    return this.nomenclatoreControllerGetOneNomenclatoreById$Response(
      params,
      context,
    ).pipe(
      map((r: StrictHttpResponse<NomenclatoreRes>): NomenclatoreRes => r.body),
    );
  }

  /** Path part for operation `nomenclatoreControllerUpdateNomenclatore()` */
  static readonly NomenclatoreControllerUpdateNomenclatorePath =
    '/nomenclatore/id/{id}';

  /**
   * Edit nomenclatore.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerUpdateNomenclatore()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerUpdateNomenclatore$Response(
    params: NomenclatoreControllerUpdateNomenclatore$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<NomenclatoreRes>> {
    return nomenclatoreControllerUpdateNomenclatore(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Edit nomenclatore.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerUpdateNomenclatore$Response()` instead.
   *
   * This method sends `application/json` and handles request body of type `application/json`.
   */
  nomenclatoreControllerUpdateNomenclatore(
    params: NomenclatoreControllerUpdateNomenclatore$Params,
    context?: HttpContext,
  ): Observable<NomenclatoreRes> {
    return this.nomenclatoreControllerUpdateNomenclatore$Response(
      params,
      context,
    ).pipe(
      map((r: StrictHttpResponse<NomenclatoreRes>): NomenclatoreRes => r.body),
    );
  }

  /** Path part for operation `nomenclatoreControllerFindManyTipiPrestazione()` */
  static readonly NomenclatoreControllerFindManyTipiPrestazionePath =
    '/nomenclatore/tipi-prestazione';

  /**
   * Get tipi prestazione.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerFindManyTipiPrestazione()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyTipiPrestazione$Response(
    params?: NomenclatoreControllerFindManyTipiPrestazione$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<Array<TipoPrestazioneResDto>>> {
    return nomenclatoreControllerFindManyTipiPrestazione(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Get tipi prestazione.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerFindManyTipiPrestazione$Response()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyTipiPrestazione(
    params?: NomenclatoreControllerFindManyTipiPrestazione$Params,
    context?: HttpContext,
  ): Observable<Array<TipoPrestazioneResDto>> {
    return this.nomenclatoreControllerFindManyTipiPrestazione$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<Array<TipoPrestazioneResDto>>,
        ): Array<TipoPrestazioneResDto> => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerFindManyTipiStruttura()` */
  static readonly NomenclatoreControllerFindManyTipiStrutturaPath =
    '/nomenclatore/tipi-struttura';

  /**
   * Get tipi struttura.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerFindManyTipiStruttura()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyTipiStruttura$Response(
    params?: NomenclatoreControllerFindManyTipiStruttura$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<Array<TipoStrutturaResDto>>> {
    return nomenclatoreControllerFindManyTipiStruttura(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Get tipi struttura.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerFindManyTipiStruttura$Response()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyTipiStruttura(
    params?: NomenclatoreControllerFindManyTipiStruttura$Params,
    context?: HttpContext,
  ): Observable<Array<TipoStrutturaResDto>> {
    return this.nomenclatoreControllerFindManyTipiStruttura$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<Array<TipoStrutturaResDto>>,
        ): Array<TipoStrutturaResDto> => r.body,
      ),
    );
  }

  /** Path part for operation `nomenclatoreControllerFindManyUnitaDiMisura()` */
  static readonly NomenclatoreControllerFindManyUnitaDiMisuraPath =
    '/nomenclatore/unita-di-misura';

  /**
   * Get unità di misura.
   *
   *
   *
   * This method provides access to the full `HttpResponse`, allowing access to response headers.
   * To access only the response body, use `nomenclatoreControllerFindManyUnitaDiMisura()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyUnitaDiMisura$Response(
    params?: NomenclatoreControllerFindManyUnitaDiMisura$Params,
    context?: HttpContext,
  ): Observable<StrictHttpResponse<Array<UnitaDiMisuraResDto>>> {
    return nomenclatoreControllerFindManyUnitaDiMisura(
      this.http,
      this.rootUrl,
      params,
      context,
    );
  }

  /**
   * Get unità di misura.
   *
   *
   *
   * This method provides access only to the response body.
   * To access the full response (for headers, for example), `nomenclatoreControllerFindManyUnitaDiMisura$Response()` instead.
   *
   * This method doesn't expect any request body.
   */
  nomenclatoreControllerFindManyUnitaDiMisura(
    params?: NomenclatoreControllerFindManyUnitaDiMisura$Params,
    context?: HttpContext,
  ): Observable<Array<UnitaDiMisuraResDto>> {
    return this.nomenclatoreControllerFindManyUnitaDiMisura$Response(
      params,
      context,
    ).pipe(
      map(
        (
          r: StrictHttpResponse<Array<UnitaDiMisuraResDto>>,
        ): Array<UnitaDiMisuraResDto> => r.body,
      ),
    );
  }
}
