openapi: 3.0.1
info:
  title: OpenAPI definition
  version: v0
servers:
  - url: http://localhost:8080
    description: Generated server url
paths:
  /company/bank/company/raw-data-access/{company-id}:
    post:
      tags:
        - Company Bank Api
      summary: get raw data access to the questionnaire of a specified company
      operationId: getRawDataAccess
      parameters:
        - name: company-id
          in: path
          required: true
          schema:
            type: string
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CanRequestRawDataAccessDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FieldValidations'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
  /company/bank/questionnaire-report/{questionnaireId}/generate:
    get:
      tags:
        - Company Bank Api
      summary: Generates and uploads a questionnaire report for the given questionnaire ID
      operationId: generateQuestionnaireReport
      parameters:
        - name: questionnaireId
          in: path
          required: true
          schema:
            type: string
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
                format: binary
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FieldValidations'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
  /company/bank/questionnaire-report/{id}/download:
    get:
      tags:
        - Company Bank Api
      summary: Downloads a questionnaire report with the given report ID
      operationId: downloadQuestionnaireReport
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
                format: binary
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FieldValidations'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
  /company/bank/questionnaire-files/{fileId}:
    get:
      tags:
        - Company Bank Api
      summary: get a specific file from a questionnaire by fileId
      operationId: getQuestionnaireFile
      parameters:
        - name: fileId
          in: path
          required: true
          schema:
            type: string
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
                format: binary
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FieldValidations'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
  /company/bank/company:
    get:
      tags:
        - Company Bank Api
      summary: get registered companies by search and filter
      operationId: getRegisteredCompaniesBySearchAndFilter
      parameters:
        - name: page
          in: query
          required: true
          schema:
            type: integer
            format: int32
        - name: size
          in: query
          required: true
          schema:
            type: integer
            format: int32
        - name: search
          in: query
          required: false
          schema:
            type: string
        - name: questionnaireStatusFilters
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - CREATED
                - ASSIGNED
                - IN_PROGRESS
                - COMPLETED
                - CANCELLED
                - NOT_STARTED
                - NOT_VISIBLE
        - name: rawDataRequestFilters
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - SENT
                - ACCEPTED
                - REJECTED
                - NOT_INVITED
        - name: mainParentIndustryCodes
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        - name: countries
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        - name: regions
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        - name: city
          in: query
          required: false
          schema:
            type: string
        - name: includeTestCompanies
          in: query
          required: false
          schema:
            type: boolean
        - name: lastUpdatedOn
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageCompanyApiDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FieldValidations'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
  /company/bank/company/{company-id}/rawdata:
    get:
      tags:
        - Company Bank Api
      summary: get the raw data of the last filled out questionnaire of the company
      operationId: getQuestionnaireRawDataOfCompany
      parameters:
        - name: company-id
          in: path
          required: true
          schema:
            type: string
        - name: language
          in: query
          required: false
          schema:
            type: string
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RawDataApiDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FieldValidations'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
  /company/bank/company/rawdataAccess:
    get:
      tags:
        - Company Bank Api
      summary: get all companies who granted raw data access for the bank
      operationId: getAllCompaniesWithRawDataAccess
      parameters:
        - name: page
          in: query
          required: true
          schema:
            type: integer
            format: int32
        - name: size
          in: query
          required: true
          schema:
            type: integer
            format: int32
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageCompanyApiDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FieldValidations'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
  /company/bank/answer-files/{fileId}:
    get:
      tags:
        - Company Bank Api
      summary: get a specific file from a answer by fileId
      operationId: getAnswerFile
      parameters:
        - name: fileId
          in: path
          required: true
          schema:
            type: string
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
                format: binary
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FieldValidations'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralApiError'
components:
  schemas:
    GeneralApiError:
      type: object
      properties:
        type:
          type: string
          nullable: true
        reason:
          type: string
          nullable: true
        payload:
          type: object
          nullable: true
    FieldValidation:
      type: object
      properties:
        path:
          type: string
          nullable: true
        value:
          type: object
          nullable: true
        code:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
    FieldValidations:
      type: object
      properties:
        violations:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/FieldValidation'
    CanRequestRawDataAccessDto:
      required:
        - canRequest
        - daysTillNextTry
      type: object
      properties:
        canRequest:
          type: boolean
        daysTillNextTry:
          type: integer
          format: int32
        lastPersonalMessage:
          type: string
          nullable: true
    AddressApiDto:
      required:
        - city
        - country
        - houseNumber
        - street
        - zip
      type: object
      properties:
        street:
          maxLength: 255
          pattern: ^[a-zA-Z0-9àáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]+$
          type: string
        houseNumber:
          pattern: ^(?=.*[0-9])[a-zA-Z0-9àáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,./'-]+$
          type: string
        zip:
          pattern: (^[0-9]{4,4}$)|(^[0-9]{5}$)
          type: string
        city:
          maxLength: 255
          pattern: ^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]+$
          type: string
        country:
          $ref: '#/components/schemas/CountryDto'
    BankDto:
      required:
        - businessPartnerId
      type: object
      properties:
        id:
          type: string
          nullable: true
        businessPartnerId:
          type: string
        logoFileName:
          type: string
          nullable: true
        logoDmsId:
          type: string
          nullable: true
        bankName:
          type: string
          nullable: true
        bankReferenceId:
          type: string
          nullable: true
        bankReferenceIdLink:
          type: string
          nullable: true
        bankStatus:
          type: string
          nullable: true
          enum:
            - ACTIVE
            - INACTIVE
        bankType:
          type: string
          nullable: true
          enum:
            - CREDIT_INSTITUTION
            - CREDITOR_PROTECTION_ASSOCIATION
            - INSURANCE
        parentBankId:
          type: string
          nullable: true
    CompanyApiDto:
      required:
        - address
        - email
        - legalForm
        - name
        - phone
      type: object
      properties:
        id:
          type: string
          nullable: true
        name:
          maxLength: 255
          type: string
          nullable: true
        legalForm:
          $ref: '#/components/schemas/LegalformApiDto'
        lei:
          type: string
          description: Either lei, vat or companyRegistrationNumber should be filled in case of EPU all three can be empty.
          nullable: true
        vat:
          pattern: (^(AT)?U[0-9]{8}$)|(^(DE)?[0-9]{9}$)
          type: string
          description: Either lei, vat or companyRegistrationNumber should be filled in case of EPU all three can be empty.
          nullable: true
        companyRegistrationNumber:
          pattern: ^[a-zA-Z0-9]{0,50}$
          type: string
          description: Either lei, vat or companyRegistrationNumber should be filled in case of EPU all three can be empty.
          nullable: true
        phone:
          pattern: "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\.\0-9]*$"
          type: string
        email:
          pattern: ^(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$
          type: string
        approvedEmail:
          pattern: ^(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$
          type: string
          nullable: true
        www:
          pattern: ^(https?:\/\/)?(?:www\.)?(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9](?:\/[a-zA-Z0-9\-._~:/?#@!$&'()*+,;=%]*)?$
          type: string
          nullable: true
        address:
          $ref: '#/components/schemas/AddressApiDto'
        status:
          type: string
          nullable: true
          enum:
            - pending
            - approved
            - not_approved
            - locked
        mainIndustry:
          $ref: '#/components/schemas/IndustryApiDto'
        subIndustries:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/IndustryApiDto'
        acceptedChildBanks:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/BankDto'
    CountryDto:
      type: object
      properties:
        id:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        code:
          type: string
          nullable: true
        placeholder_text:
          type: string
          nullable: true
        isRegistrationNumberRequired:
          type: boolean
          nullable: true
        isVatRequired:
          type: boolean
          nullable: true
        regex:
          type: string
          nullable: true
        vatRegex:
          type: string
          nullable: true
        zipRegex:
          type: string
          nullable: true
        orderIndex:
          type: integer
          format: int32
          nullable: true
    IndustryApiDto:
      required:
        - code
      type: object
      properties:
        code:
          maxLength: 20
          minLength: 1
          type: string
        description:
          maxLength: 200
          minLength: 0
          type: string
          nullable: true
        parentIndustry:
          $ref: '#/components/schemas/IndustryApiDto'
    LegalformApiDto:
      required:
        - code
        - country
      type: object
      properties:
        id:
          type: string
          nullable: true
        country:
          $ref: '#/components/schemas/CountryDto'
        code:
          maxLength: 20
          minLength: 1
          type: string
        description:
          maxLength: 50
          minLength: 0
          type: string
          nullable: true
    PageCompanyApiDto:
      type: object
      properties:
        totalPages:
          type: integer
          format: int32
          nullable: true
        totalElements:
          type: integer
          format: int64
          nullable: true
        number:
          type: integer
          format: int32
          nullable: true
        size:
          type: integer
          format: int32
          nullable: true
        numberOfElements:
          type: integer
          format: int32
          nullable: true
        content:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CompanyApiDto'
        sort:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/SortObject'
        first:
          type: boolean
          nullable: true
        last:
          type: boolean
          nullable: true
        pageable:
          $ref: '#/components/schemas/PageableObject'
        empty:
          type: boolean
          nullable: true
    PageableObject:
      type: object
      properties:
        paged:
          type: boolean
          nullable: true
        unpaged:
          type: boolean
          nullable: true
        pageNumber:
          type: integer
          format: int32
          nullable: true
        pageSize:
          type: integer
          format: int32
          nullable: true
        offset:
          type: integer
          format: int64
          nullable: true
        sort:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/SortObject'
    SortObject:
      type: object
      properties:
        direction:
          type: string
          nullable: true
        nullHandling:
          type: string
          nullable: true
        ascending:
          type: boolean
          nullable: true
        property:
          type: string
          nullable: true
        ignoreCase:
          type: boolean
          nullable: true
    AddressDto:
      type: object
      properties:
        id:
          type: string
          nullable: true
        street:
          maxLength: 40
          minLength: 1
          pattern: ^[a-zA-Z0-9àáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]+$
          type: string
          nullable: true
        houseNumber:
          maxLength: 20
          minLength: 1
          pattern: ^(?=.*[0-9])[a-zA-Z0-9àáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,./'-]+$
          type: string
          nullable: true
        zip:
          type: string
          nullable: true
        region:
          $ref: '#/components/schemas/RegionDto'
        city:
          maxLength: 35
          minLength: 1
          pattern: ^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]+$
          type: string
          nullable: true
        country:
          $ref: '#/components/schemas/CountryDto'
    AnswerApiDto:
      required:
        - answerId
        - question
        - questionnaireId
      type: object
      properties:
        answerString:
          maxLength: 4000
          type: string
          nullable: true
        answerNumber:
          type: number
          nullable: true
        answerDate:
          type: string
          format: yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,12}
          nullable: true
        answerId:
          type: string
        questionnaireId:
          type: string
        question:
          $ref: '#/components/schemas/QuestionApiDto'
        answerOptionCodes:
          type: array
          nullable: true
          items:
            type: string
        answerAttachments:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AnswerAttachmentDto'
        answeredBy:
          $ref: '#/components/schemas/UserDto'
        answerMatrixBuildings:
          $ref: '#/components/schemas/AnswerMatrixBuildingsApiDto'
        answerMatrixWaterData:
          $ref: '#/components/schemas/AnswerMatrixWaterDataApiDto'
        answerMatrixWasteData:
          $ref: '#/components/schemas/AnswerMatrixWasteDataApiDto'
        answerMatrixEnergyData:
          $ref: '#/components/schemas/AnswerMatrixEnergyApiDto'
        answerMatrixNewEnergyData:
          $ref: '#/components/schemas/AnswerMatrixNewEnergyApiDto'
        answerMatrixEmployeeData:
          $ref: '#/components/schemas/AnswerMatrixEmployeeDataApiDto'
        answerMatrixEmployeeMobilityData:
          $ref: '#/components/schemas/AnswerMatrixEmployeeMobilityDataApiDto'
        answerMatrixGreenhouseGasData:
          $ref: '#/components/schemas/AnswerMatrixGreenhouseGasDataApiDto'
        answerMatrixClimate:
          $ref: '#/components/schemas/AnswerMatrixClimateApiDto'
        answerMatrixTaxonomy:
          $ref: '#/components/schemas/AnswerMatrixTaxonomyApiDto'
        answerMatrixCompanyMobilityData:
          $ref: '#/components/schemas/AnswerMatrixCompanyMobilityDataApiDto'
        answerMatrixIntensity:
          $ref: '#/components/schemas/AnswerMatrixIntensityDataApiDto'
        answerMatrixMasterData:
          $ref: '#/components/schemas/AnswerMatrixMasterDataApiDto'
        changedFromPreviousVersion:
          type: boolean
          nullable: true
        benchmarkingBranch:
          $ref: '#/components/schemas/BenchmarkingDto'
        benchmarkingAll:
          $ref: '#/components/schemas/BenchmarkingDto'
        noAnswerReason:
          maxLength: 4000
          type: string
          nullable: true
        comment:
          maxLength: 4000
          type: string
          nullable: true
        answeredOn:
          type: string
          format: yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,12}
          nullable: true
        status:
          type: string
          nullable: true
          enum:
            - DONE
            - IN_PROGRESS
            - NOT_STARTED
        certaintyLevel:
          type: string
          nullable: true
          enum:
            - ESTIMATED
            - CALCULATED
            - CHECKED
    AnswerAttachmentDto:
      required:
        - answerId
        - fileName
      type: object
      properties:
        fileName:
          type: string
        mimeType:
          type: string
          nullable: true
        id:
          type: string
          nullable: true
        answerId:
          type: string
    AnswerMatrixBuildingsApiDto:
      type: object
      properties:
        id:
          type: string
          nullable: true
        oldBuildings:
          $ref: '#/components/schemas/YearDataListApi'
        buildings:
          $ref: '#/components/schemas/BuildingYearDataListDto'
      nullable: true
    AnswerMatrixClimateApiDto:
      type: object
      properties:
        id:
          type: string
          nullable: true
        climates:
          $ref: '#/components/schemas/ClimateYearValueListApiDto'
      nullable: true
    AnswerMatrixCompanyMobilityDataApiDto:
      type: object
      properties:
        companyMobilityValues:
          $ref: '#/components/schemas/CompanyMobilityYearValueListApiDto'
        id:
          type: string
          nullable: true
      nullable: true
    AnswerMatrixEmployeeDataApiDto:
      type: object
      properties:
        employeeData:
          $ref: '#/components/schemas/EmployeeYearValueListApiDto'
        id:
          type: string
          nullable: true
      nullable: true
    AnswerMatrixEmployeeMobilityDataApiDto:
      type: object
      properties:
        employeeMobilityData:
          $ref: '#/components/schemas/EmployeeMobilityYearValueListApiDto'
        id:
          type: string
          nullable: true
      nullable: true
    AnswerMatrixEnergyApiDto:
      type: object
      properties:
        energyData:
          $ref: '#/components/schemas/EnergyYearValueListApiDto'
        id:
          type: string
          nullable: true
      nullable: true
    AnswerMatrixGreenhouseGasDataApiDto:
      type: object
      properties:
        greenhouseGasData:
          $ref: '#/components/schemas/GreenhouseGasYearValueListApiDto'
        id:
          type: string
          nullable: true
      nullable: true
    AnswerMatrixIntensityDataApiDto:
      type: object
      properties:
        intensities:
          $ref: '#/components/schemas/IntensityYearValueListApiDto'
        id:
          type: string
          nullable: true
      nullable: true
    AnswerMatrixMasterDataApiDto:
      type: object
      properties:
        masterData:
          $ref: '#/components/schemas/MasterData'
        id:
          type: string
          nullable: true
      nullable: true
    AnswerMatrixNewEnergyApiDto:
      type: object
      properties:
        energyData:
          $ref: '#/components/schemas/NewEnergyYearValueListApiDto'
        id:
          type: string
          nullable: true
      nullable: true
    AnswerMatrixTaxonomyApiDto:
      type: object
      properties:
        id:
          type: string
          nullable: true
        taxonomy:
          $ref: '#/components/schemas/TaxonomyYearValueListApiDto'
      nullable: true
    AnswerMatrixWasteDataApiDto:
      type: object
      properties:
        wasteData:
          $ref: '#/components/schemas/WasteYearValueListApiDto'
        id:
          type: string
          nullable: true
      nullable: true
    AnswerMatrixWaterDataApiDto:
      type: object
      properties:
        id:
          type: string
          nullable: true
        waterData:
          $ref: '#/components/schemas/WaterYearValuesListApiDto'
      nullable: true
    AnswerOptionApiDto:
      required:
        - optionCode
        - optionOrder
        - questionId
      type: object
      properties:
        questionId:
          type: string
        optionCode:
          type: string
        optionOrder:
          type: integer
          format: int32
        optionText:
          maxLength: 4000
          type: string
          nullable: true
        tooltip:
          maxLength: 4000
          type: string
          nullable: true
        isNegative:
          type: boolean
          nullable: true
        isNotApplicable:
          type: boolean
          nullable: true
    BenchmarkingDto:
      type: object
      properties:
        benchmarkingNumber:
          $ref: '#/components/schemas/BenchmarkingNumberDto'
        benchmarkingOptions:
          $ref: '#/components/schemas/BenchmarkingOptionsDto'
    BenchmarkingNumberDto:
      type: object
      properties:
        average:
          type: number
          nullable: true
        averageWithSimilarRevenue:
          type: number
          nullable: true
      nullable: true
    BenchmarkingOptionDto:
      type: object
      properties:
        option:
          type: string
          nullable: true
        percent:
          type: number
          nullable: true
    BenchmarkingOptionsDto:
      type: object
      properties:
        options:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/BenchmarkingOptionDto'
      nullable: true
    BuildingApi:
      type: object
      properties:
        buildingCode:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        address:
          type: string
          nullable: true
        officeSqM:
          type: number
          nullable: true
        productionSqM:
          type: number
          nullable: true
        warehouseSqM:
          type: number
          nullable: true
        otherSqM:
          type: number
          nullable: true
        totalSqM:
          type: number
          nullable: true
        coveredAreaSqM:
          type: number
          nullable: true
        primaryEnergyConsumptionSqM:
          type: number
          nullable: true
        buildingCertificate:
          $ref: '#/components/schemas/DocumentApiDto'
        energyCertificate:
          $ref: '#/components/schemas/DocumentApiDto'
    BuildingDto:
      required:
        - address
        - buildingCode
        - description
        - hasEnergyCertificate
        - primaryUse
      type: object
      properties:
        description:
          type: string
          nullable: true
        buildingCode:
          type: string
        constructionStage:
          type: string
          nullable: true
        address:
          $ref: '#/components/schemas/AddressDto'
        yearOfConstruction:
          type: integer
          format: int32
          nullable: true
        landRegistryNumber:
          type: integer
          format: int32
          nullable: true
        landRegistryAreaNumber:
          type: string
          nullable: true
        controlRatio:
          type: array
          nullable: true
          items:
            type: string
        propertyOwnerNumber:
          type: integer
          format: int32
          nullable: true
        primaryUse:
          type: array
          items:
            $ref: '#/components/schemas/PrimaryBuildingUseDto'
        yearOfLastComprehensiveRenovation:
          type: integer
          format: int32
          nullable: true
        innovativeTechnologies:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/MatrixCodeValue'
        taxonomy:
          type: string
          nullable: true
        specificHeatDemand:
          type: number
          nullable: true
        primaryEnergyDemand:
          type: number
          nullable: true
        carbonDioxideEmissions:
          type: number
          nullable: true
        totalEnergyEfficiencyFactor:
          type: number
          nullable: true
        primaryHeatEnergyCarrier:
          type: string
          nullable: true
        certificate:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/MatrixCodeValue'
        banksWithAccess:
          type: array
          nullable: true
          items:
            type: string
        buildingCertificate:
          $ref: '#/components/schemas/Document'
        energyCertificate:
          $ref: '#/components/schemas/Document'
        taxonomyCertificate:
          $ref: '#/components/schemas/Document'
        hasEnergyCertificate:
          type: boolean
    BuildingListApi:
      type: object
      properties:
        buildings:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/BuildingApi'
        year:
          type: integer
          format: int32
          nullable: true
    BuildingListDto:
      type: object
      properties:
        buildings:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/BuildingDto'
        year:
          type: integer
          format: int32
          nullable: true
    BuildingYearDataListDto:
      type: object
      properties:
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/BuildingListDto'
      nullable: true
    ClimateEcologicalDamageApiDto:
      type: object
      properties:
        acuteAndLocal:
          type: array
          nullable: true
          items:
            type: string
        chronicGrowth:
          type: array
          nullable: true
          items:
            type: string
        other:
          type: string
          nullable: true
    ClimateYearValueApiDto:
      type: object
      properties:
        buildingCode:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        address:
          type: string
          nullable: true
        ecologicalDamage:
          $ref: '#/components/schemas/ClimateEcologicalDamageApiDto'
    ClimateYearValueListApiDto:
      type: object
      properties:
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClimateYearValuesApiDto'
      nullable: true
    ClimateYearValuesApiDto:
      type: object
      properties:
        climateValues:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClimateYearValueApiDto'
        year:
          type: integer
          format: int32
          nullable: true
    ClusterDto:
      required:
        - clusterOrder
        - code
        - id
        - section
      type: object
      properties:
        id:
          type: string
        code:
          type: string
        clusterOrder:
          type: integer
          format: int32
        section:
          $ref: '#/components/schemas/SectionDto'
    Co2FactorApiDto:
      required:
        - factorGroup
      type: object
      properties:
        factorGroup:
          type: string
        factorFuel:
          type: string
          nullable: true
        factorUnit:
          type: string
          nullable: true
          enum:
            - Liter
            - Kilometer
            - KWh
        kilogramCO2InUnit:
          type: number
          nullable: true
        mobilitySection:
          type: string
          nullable: true
          enum:
            - PERSONAL_CAR
            - TRUCK
            - PLANE
            - PUBLIC_TRANSPORT
    Co2FactorEnergyApiDto:
      type: object
      properties:
        factorGroup:
          type: string
          nullable: true
        factorFuel:
          type: string
          nullable: true
        factorUnit:
          type: string
          nullable: true
          enum:
            - Liter
            - Kilometer
            - KWh
        mobilitySection:
          type: string
          nullable: true
          enum:
            - PERSONAL_CAR
            - TRUCK
            - PLANE
            - PUBLIC_TRANSPORT
        kilogramCO2InUnit:
          type: number
          nullable: true
    CompanyMobilityValueApiDto:
      type: object
      properties:
        co2Factor:
          $ref: '#/components/schemas/Co2FactorApiDto'
        km:
          type: number
          nullable: true
        consumption:
          type: number
          nullable: true
        co2EmissionSum:
          type: number
          nullable: true
        percentageChangeGoal:
          type: number
          nullable: true
    CompanyMobilityYearValueApiDto:
      type: object
      properties:
        selectedTab:
          type: string
          nullable: true
        companyMobilityValues:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CompanyMobilityValueApiDto'
        yearCo2EmissionSum:
          type: number
          nullable: true
        yearKmSum:
          type: number
          nullable: true
        yearConsumptionSum:
          type: number
          nullable: true
        yearSpecificConsumptionSum:
          type: number
          nullable: true
        year:
          type: integer
          format: int32
          nullable: true
        isBaseYear:
          type: boolean
          nullable: true
        isReportYear:
          type: boolean
          nullable: true
        isGoalYear:
          type: boolean
          nullable: true
    CompanyMobilityYearValueListApiDto:
      type: object
      properties:
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CompanyMobilityYearValueApiDto'
      nullable: true
    Document:
      type: object
      properties:
        answerAttachmentId:
          type: string
          nullable: true
        visibleFileName:
          type: string
          nullable: true
    DocumentApiDto:
      type: object
      properties:
        answerAttachmentId:
          type: string
          nullable: true
        visibleFileName:
          maxLength: 255
          type: string
          nullable: true
    EmployeeMobilityValueApiDto:
      type: object
      properties:
        mobilityType:
          type: string
          nullable: true
        km:
          type: number
          nullable: true
        consumption:
          type: number
          nullable: true
        consumptionUnitValue:
          type: string
          nullable: true
        co2EmissionSum:
          type: number
          nullable: true
        percentageChangeGoal:
          type: number
          nullable: true
    EmployeeMobilityYearValueApiDto:
      type: object
      properties:
        employeeMobilityValues:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EmployeeMobilityValueApiDto'
        yearCo2EmissionSum:
          type: number
          nullable: true
        yearKmSum:
          type: number
          nullable: true
        yearConsumptionSum:
          type: number
          nullable: true
        year:
          type: integer
          format: int32
          nullable: true
        isBaseYear:
          type: boolean
          nullable: true
        isReportYear:
          type: boolean
          nullable: true
        isGoalYear:
          type: boolean
          nullable: true
    EmployeeMobilityYearValueListApiDto:
      type: object
      properties:
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EmployeeMobilityYearValueApiDto'
      nullable: true
    EmployeeValueApiDto:
      type: object
      properties:
        category:
          type: string
          nullable: true
        sex:
          type: string
          nullable: true
        employeeNumber:
          type: integer
          format: int32
          nullable: true
        averageSalary:
          type: number
          nullable: true
        employeeNumberWithDisability:
          type: integer
          format: int32
          nullable: true
    EmployeeYearValueApiDto:
      type: object
      properties:
        employeeData:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EmployeeValueApiDto'
        year:
          type: integer
          format: int32
          nullable: true
        isBaseYear:
          type: boolean
          nullable: true
        isReportYear:
          type: boolean
          nullable: true
        isGoalYear:
          type: boolean
          nullable: true
    EmployeeYearValueListApiDto:
      type: object
      properties:
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EmployeeYearValueApiDto'
      nullable: true
    EnergyConsumptionFromNonRenewableSourcesApiDto:
      type: object
      properties:
        fuelConsumption:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyInputRowApiDto'
        acquiredEnergyConsumption:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyInputRowApiDto'
    EnergyConsumptionFromRenewableSourcesApiDto:
      type: object
      properties:
        fuelConsumption:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyInputRowApiDto'
        acquiredEnergyConsumption:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyInputRowApiDto'
        selfGeneratedNonFuelConsumption:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyInputRowApiDto'
    EnergyInputRowApiDto:
      type: object
      properties:
        energy:
          type: string
          nullable: true
        newEnergyInput:
          $ref: '#/components/schemas/NewEnergyInput'
    EnergyProductionFromNonRenewableSourcesApiDto:
      type: object
      properties:
        fuelProduction:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyInputRowApiDto'
        energyProduction:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyInputRowApiDto'
    EnergyProductionFromRenewableSourcesApiDto:
      type: object
      properties:
        fuelProduction:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyInputRowApiDto'
        energyProduction:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyInputRowApiDto'
        selfGeneratedNonFuelProduction:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyInputRowApiDto'
    EnergyValueApiDto:
      type: object
      properties:
        energyGroup:
          type: string
          nullable: true
        energyValue:
          type: number
          nullable: true
        energyInPercent:
          type: number
          nullable: true
        co2Factor:
          type: number
          nullable: true
        co2Emission:
          type: number
          nullable: true
        energyElement:
          $ref: '#/components/schemas/Co2FactorEnergyApiDto'
    EnergyYearValueApiDto:
      type: object
      properties:
        unitValue:
          type: string
          nullable: true
        sumOfRenewableEnergies:
          type: number
          nullable: true
        sumOfNonRenewableEnergies:
          type: number
          nullable: true
        sumOfSoldEnergies:
          type: number
          nullable: true
        renewableEnergy:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyValueApiDto'
        nonRenewableEnergy:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyValueApiDto'
        soldEnergy:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyValueApiDto'
        year:
          type: integer
          format: int32
          nullable: true
        isBaseYear:
          type: boolean
          nullable: true
        isReportYear:
          type: boolean
          nullable: true
        isGoalYear:
          type: boolean
          nullable: true
    EnergyYearValueListApiDto:
      type: object
      properties:
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/EnergyYearValueApiDto'
      nullable: true
    GHGTargetCalculation:
      type: object
      properties:
        referenceValue:
          type: number
          nullable: true
        referenceMarketValue:
          type: number
          nullable: true
        referenceLocationValue:
          type: number
          nullable: true
        targetPercent:
          type: number
          nullable: true
        targetPercentMarketBased:
          type: number
          nullable: true
        targetPercentLocationBased:
          type: number
          nullable: true
        targetSharePercent:
          type: number
          nullable: true
        targetSharePercentageMarkedBased:
          type: number
          nullable: true
        targetSharePercentageLocationBased:
          type: number
          nullable: true
        targetResult:
          type: number
          nullable: true
        targetResultMarkedBased:
          type: number
          nullable: true
        targetResultLocationBased:
          type: number
          nullable: true
    GreenhouseGasRowApiDto:
      type: object
      properties:
        scopes:
          type: array
          nullable: true
          items:
            type: integer
            format: int32
        total:
          type: number
          nullable: true
        totalsPerScopeBase:
          type: object
          additionalProperties:
            type: number
          nullable: true
        greenhouseGasses:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/GreenhouseGasValueApiDto'
        targetCalculation:
          $ref: '#/components/schemas/GHGTargetCalculation'
    GreenhouseGasValueApiDto:
      required:
        - name
      type: object
      properties:
        value:
          type: number
          nullable: true
        marketValue:
          type: number
          nullable: true
        locationValue:
          type: number
          nullable: true
        name:
          type: string
          nullable: true
    GreenhouseGasYearValueApiDto:
      type: object
      properties:
        rows:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/GreenhouseGasRowApiDto'
        year:
          type: integer
          format: int32
          nullable: true
        yearTotal:
          type: number
          nullable: true
        yearTotalMarketBased:
          type: number
          nullable: true
        yearTotalLocationBased:
          type: number
          nullable: true
        tab:
          type: string
          nullable: true
          enum:
            - DETAIL
            - SUM
        isBaseYear:
          type: boolean
          nullable: true
        isReportYear:
          type: boolean
          nullable: true
        isGoalYear:
          type: boolean
          nullable: true
    GreenhouseGasYearValueListApiDto:
      type: object
      properties:
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/GreenhouseGasYearValueApiDto'
        scopes:
          type: string
          nullable: true
          enum:
            - SEPARATED
            - COMBINED
            - MIXED
      nullable: true
    IntensityRowApiDto:
      type: object
      properties:
        intensityUnit:
          type: string
          nullable: true
        targetCalculation:
          $ref: '#/components/schemas/IntensityTargetCalculation'
        value:
          type: number
          nullable: true
    IntensityTargetCalculation:
      type: object
      properties:
        referenceValue:
          type: number
          nullable: true
        targetShareInPercent:
          type: number
          nullable: true
        reductionTargetInPercent:
          type: number
          nullable: true
        calculationResult:
          type: number
          nullable: true
    IntensityValueApiDto:
      type: object
      properties:
        scopes:
          type: array
          nullable: true
          items:
            type: integer
            format: int32
        rows:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/IntensityRowApiDto'
    IntensityYearValueApiDto:
      type: object
      properties:
        data:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/IntensityValueApiDto'
        year:
          type: integer
          format: int32
          nullable: true
        isBaseYear:
          type: boolean
          nullable: true
        isReportYear:
          type: boolean
          nullable: true
        isGoalYear:
          type: boolean
          nullable: true
    IntensityYearValueListApiDto:
      type: object
      properties:
        selectedScope:
          type: string
          nullable: true
          enum:
            - SEPARATED
            - COMBINED
            - MIXED
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/IntensityYearValueApiDto'
      nullable: true
    MasterData:
      type: object
      properties:
        questionnaireForCompanyStructure:
          type: string
          nullable: true
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
        phoneNumber:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        reportYearFrom:
          type: string
          format: date-time
          nullable: true
        reportYearTo:
          type: string
          format: date-time
          nullable: true
        baseYearFrom:
          type: string
          format: date-time
          nullable: true
        baseYearTo:
          type: string
          format: date-time
          nullable: true
        turnoverInReportYear:
          type: number
          nullable: true
        numberOfEmployees:
          type: number
          nullable: true
      nullable: true
    MatrixCodeValue:
      type: object
      properties:
        code:
          type: string
          nullable: true
        value:
          type: string
          nullable: true
    NewEnergyInput:
      type: object
      properties:
        amount:
          type: number
          nullable: true
          deprecated: true
        countryCode:
          type: string
          nullable: true
        targetYearChangePercent:
          type: number
          nullable: true
        targetAmount:
          type: number
          nullable: true
    NewEnergyYearValueApiDto:
      type: object
      properties:
        unitValue:
          type: string
          nullable: true
        energyConsumptionFromNonRenewableSources:
          $ref: '#/components/schemas/EnergyConsumptionFromNonRenewableSourcesApiDto'
        energyConsumptionFromRenewableSources:
          $ref: '#/components/schemas/EnergyConsumptionFromRenewableSourcesApiDto'
        energyProductionFromNonRenewableSources:
          $ref: '#/components/schemas/EnergyProductionFromNonRenewableSourcesApiDto'
        energyProductionFromRenewableSources:
          $ref: '#/components/schemas/EnergyProductionFromRenewableSourcesApiDto'
        totalEnergySum:
          type: number
          nullable: true
        nonRenewableEnergySum:
          type: number
          nullable: true
        renewableEnergySum:
          type: number
          nullable: true
        nonRenewableEnergyShare:
          type: number
          nullable: true
        renewableEnergyProductionShare:
          type: number
          nullable: true
        renewableEnergyShare:
          type: number
          nullable: true
        year:
          type: integer
          format: int32
          nullable: true
        tab:
          type: string
          nullable: true
          enum:
            - DETAIL
            - SUM
        isBaseYear:
          type: boolean
          nullable: true
        isReportYear:
          type: boolean
          nullable: true
        isGoalYear:
          type: boolean
          nullable: true
    NewEnergyYearValueListApiDto:
      type: object
      properties:
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/NewEnergyYearValueApiDto'
      nullable: true
    PermissionDto:
      type: object
      properties:
        permissionArea:
          type: string
          nullable: true
          enum:
            - ALL_QUESTIONS
            - FORWARDED_QUESTIONS
        canWrite:
          type: boolean
          nullable: true
        canRead:
          type: boolean
          nullable: true
    PrimaryBuildingUseDto:
      required:
        - area
        - floorAreaInM2
      type: object
      properties:
        id:
          type: string
          nullable: true
        area:
          type: string
        floorAreaInM2:
          type: number
    QuestionApiDto:
      required:
        - answerType
        - cluster
        - questionCode
        - questionHelpTooltip
        - questionOrder
        - questionTitle
      type: object
      properties:
        questionCode:
          type: string
        cluster:
          $ref: '#/components/schemas/ClusterDto'
        questionOrder:
          type: integer
          format: int32
        questionTitle:
          maxLength: 4000
          type: string
        questionPlaceholder:
          type: string
          nullable: true
        questionHelpTooltip:
          maxLength: 4000
          type: string
        answerType:
          type: string
          enum:
            - SINGLE_CHOICE
            - MULTIPLE_CHOICE
            - DATE
            - DATE_NICHT_VORHANDEN
            - NUMERIC
            - DROPDOWN_NICHT_VORHANDEN
            - FREETEXT
            - FILE_UPLOAD
            - SINGLE_CHOICE_FREETEXT
            - NUMERIC_OR_FREETEXT
            - NUMERIC_NICHT_VORHANDEN
            - NUMERIC_AND_YEAR
            - MULTIPLE_CHOICE_FREETEXT
            - STANDORTMATRIX
            - TAXONOMIE_MATRIX_UMSATZ
            - WASSER_GRI_302_05_MATRIX
            - ABFALL_GRI_306_02_MATRIX
            - MITARBEITENDEN_MATRIX
            - TREIBHAUSGAS_GRI_305_05_MATRIX
            - MOBILITAT_COMPANY_MATRIX
            - MOBILITAT_PERSONAL_MATRIX
            - ENERGIE_GRI_302_01_MATRIX
            - TAXONOMIE_MATRIX_CAPEX
            - TAXONOMIE_MATRIX_OPEX
            - KLIMAMATRIX
            - MULTIPLE_CHOICE_FREETEXT_PER_OPTION
            - MASTERDATAMATRIX
            - INTENSITY_MATRIX
            - NEUE_ENERGIE_GRI_302_01_MATRIX
            - SINGLE_CHOICE_TEXT_ON_OPTION
        answerUnit:
          type: string
          nullable: true
        answerOptions:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AnswerOptionApiDto'
        parentQuestion:
          $ref: '#/components/schemas/QuestionApiDto'
        subQuestions:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AnswerApiDto'
        questionOptionalStatusForCompanyType:
          type: string
          nullable: true
          enum:
            - MANDATORY
            - OPTIONAL
            - HIDDEN
    QuestionnaireFileApiDto:
      required:
        - fileName
      type: object
      properties:
        fileName:
          type: string
        mimeType:
          type: string
          nullable: true
        id:
          type: string
          nullable: true
    RawDataApiDto:
      required:
        - questionnaireStatus
      type: object
      properties:
        id:
          type: string
          nullable: true
        assignedCompany:
          $ref: '#/components/schemas/CompanyApiDto'
        questionnaireStatus:
          type: string
          enum:
            - CREATED
            - ASSIGNED
            - IN_PROGRESS
            - COMPLETED
            - CANCELLED
            - NOT_STARTED
            - NOT_VISIBLE
        questionnaireProgress:
          type: integer
          format: int32
          nullable: true
        isLastVersion:
          type: boolean
          nullable: true
        completedOn:
          type: string
          format: yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,12}
          nullable: true
        companyType:
          type: string
          nullable: true
          enum:
            - MEDIUM
            - LARGE
            - SMALL
            - MICRO
        answers:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AnswerApiDto'
        questionnaireFiles:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QuestionnaireFileApiDto'
        questionnaireReports:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/QuestionnaireFileApiDto'
        acceptedChildBanks:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/BankDto'
    RegionDto:
      type: object
      properties:
        id:
          type: string
          nullable: true
        zip:
          type: string
          nullable: true
        city:
          type: string
          nullable: true
        name:
          maxLength: 35
          minLength: 0
          type: string
          nullable: true
        countryCode:
          type: string
          nullable: true
    SectionDto:
      required:
        - code
        - sectionOrder
      type: object
      properties:
        code:
          type: string
        sectionOrder:
          type: integer
          format: int32
    TaxonomyActivityApiDto:
      required:
        - activityCode
        - activityName
        - sectorName
      type: object
      properties:
        sectorName:
          type: string
        activityCode:
          type: string
        activityName:
          type: string
        withClimateMitigation:
          type: string
          nullable: true
          enum:
            - NONE
            - TRANSITIONAL
            - ENABLING
        withClimateAdaptation:
          type: string
          nullable: true
          enum:
            - NONE
            - TRANSITIONAL
            - ENABLING
        withWater:
          type: string
          nullable: true
          enum:
            - NONE
            - TRANSITIONAL
            - ENABLING
        withCircularEconomy:
          type: string
          nullable: true
          enum:
            - NONE
            - TRANSITIONAL
            - ENABLING
        withPollutionPrevention:
          type: string
          nullable: true
          enum:
            - NONE
            - TRANSITIONAL
            - ENABLING
        withBiodiversity:
          type: string
          nullable: true
          enum:
            - NONE
            - TRANSITIONAL
            - ENABLING
    TaxonomyRowApiDto:
      type: object
      properties:
        activityGroup:
          type: string
          nullable: true
          enum:
            - TaxonomyApplicableSustainable
            - TaxonomyApplicableNotSustainable
            - NotTaxonomyApplicable
            - TaxonomonyApplicableSustainable
            - NotTaxonomonyApplicable
            - TaxonomonyApplicableNotSustainable
        taxonomyActivity:
          $ref: '#/components/schemas/TaxonomyActivityApiDto'
        absValue:
          type: number
          nullable: true
        percentValue:
          type: number
          nullable: true
        climateGoal:
          type: string
          nullable: true
          enum:
            - ClimateChangeMitigation
            - ClimateChangeAdaptation
            - WaterAndMarineResources
            - CircularEconomy
            - Pollution
            - BiodiversityAndEcosystems
        activityType:
          type: string
          nullable: true
          enum:
            - NONE
            - TRANSITIONAL
            - ENABLING
    TaxonomySum:
      type: object
      properties:
        absolute:
          type: number
          nullable: true
        percentage:
          type: number
          nullable: true
    TaxonomyYearValueListApiDto:
      type: object
      properties:
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/TaxonomyYearValuesApiDto'
      nullable: true
    TaxonomyYearValuesApiDto:
      type: object
      properties:
        taxonomyType:
          type: string
          nullable: true
          enum:
            - UMSATZ
            - CAPEX
            - OPEX
        taxonomyData:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/TaxonomyRowApiDto'
        year:
          type: integer
          format: int32
          nullable: true
        subtotalA1Sustainable:
          $ref: '#/components/schemas/TaxonomySum'
        subtotalA2NonSustainable:
          $ref: '#/components/schemas/TaxonomySum'
        subTotalBNonEligible:
          $ref: '#/components/schemas/TaxonomySum'
        total:
          $ref: '#/components/schemas/TaxonomySum'
        noneSelectedSustainable:
          type: boolean
          nullable: true
        noneSelectedNonSustainable:
          type: boolean
          nullable: true
        transitionalActivityShare:
          type: number
          nullable: true
        enablingActivityShare:
          type: number
          nullable: true
    UserDto:
      required:
        - email
        - name
        - phone
        - salutation
        - surname
      type: object
      properties:
        id:
          type: string
          nullable: true
        salutation:
          type: string
          enum:
            - Frau
            - Herr
        prefixTitle:
          $ref: '#/components/schemas/UserTitleDto'
        suffixTitle:
          $ref: '#/components/schemas/UserTitleDto'
        surname:
          maxLength: 40
          minLength: 1
          pattern: ^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]+$
          type: string
        name:
          maxLength: 40
          minLength: 1
          pattern: ^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]+$
          type: string
          nullable: true
        country:
          $ref: '#/components/schemas/CountryDto'
        phone:
          maxLength: 20
          minLength: 7
          pattern: "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\.\0-9]*$"
          type: string
        email:
          maxLength: 50
          minLength: 5
          pattern: ^(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$
          type: string
        loginName:
          pattern: ^[µA-Za-zÀ-ž\u0370-\u03FF\u0400-\u04FF\d&&[^÷×]]*$
          type: string
          nullable: true
        userRole:
          type: string
          nullable: true
          enum:
            - COMPANYADMIN
            - BUSINESSUSER
            - SYSTEMADMIN
            - BANKUSER
            - BANKADMIN
            - DRAFT
            - AI_API
        userStatus:
          type: string
          nullable: true
          enum:
            - DRAFT
            - ACTIVE
            - LOCKED
        zgpId:
          type: string
          nullable: true
        permission:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/PermissionDto'
        isSubscribedToNewsletter:
          type: boolean
          nullable: true
        temporarilyBlockedUntil:
          type: string
          format: date-time
          nullable: true
    UserTitleDto:
      type: object
      properties:
        code:
          type: string
          nullable: true
        shortName:
          type: string
          nullable: true
        longName:
          type: string
          nullable: true
        sapId:
          type: string
          nullable: true
    WasteArticleApiDto:
      type: object
      properties:
        wasteType:
          type: string
          nullable: true
          enum:
            - NORMAL_WASTE
            - DANGEROUS_WASTE
            - PRODUCTION_WASTE
            - ALL
        wasteCode:
          type: string
          nullable: true
        wasteName:
          type: string
          nullable: true
        isDefault:
          type: boolean
          nullable: true
    WasteValueApiDto:
      type: object
      properties:
        wasteValue:
          type: number
          nullable: true
        wasteArticle:
          $ref: '#/components/schemas/WasteArticleApiDto'
        percentageChangeGoal:
          type: number
          nullable: true
        wasteGoalSum:
          type: number
          nullable: true
    WasteYearValueApiDto:
      type: object
      properties:
        notDangerousWasteSum:
          type: number
          nullable: true
        dangerousWasteSum:
          type: number
          nullable: true
        productionWasteSum:
          type: number
          nullable: true
        normalPercentageChangeGoal:
          type: number
          nullable: true
        normalWasteGoalSum:
          type: number
          nullable: true
        specialPercentageChangeGoal:
          type: number
          nullable: true
        specialWasteGoalSum:
          type: number
          nullable: true
        prodPercentageChangeGoal:
          type: number
          nullable: true
        prodWasteGoalSum:
          type: number
          nullable: true
        totalSum:
          type: number
          nullable: true
        unitValue:
          type: string
          nullable: true
        codeLegislation:
          type: string
          nullable: true
          enum:
            - EU
            - AT
        normalWastes:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/WasteValueApiDto'
        specialWastes:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/WasteValueApiDto'
        productionWastes:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/WasteValueApiDto'
        year:
          type: integer
          format: int32
          nullable: true
        isBaseYear:
          type: boolean
          nullable: true
        isReportYear:
          type: boolean
          nullable: true
        isGoalYear:
          type: boolean
          nullable: true
    WasteYearValueListApiDto:
      type: object
      properties:
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/WasteYearValueApiDto'
      nullable: true
    WaterValueApiDto:
      type: object
      properties:
        surfaceWaterValue:
          type: number
          nullable: true
        surfaceWaterPercent:
          type: number
          nullable: true
        baseWaterValue:
          type: number
          nullable: true
        baseWaterPercent:
          type: number
          nullable: true
        seaWaterValue:
          type: number
          nullable: true
        seaWaterPercent:
          type: number
          nullable: true
        producedWaterValue:
          type: number
          nullable: true
        producedWaterPercent:
          type: number
          nullable: true
        water3rdPartyValue:
          type: number
          nullable: true
        water3rdPartyPercent:
          type: number
          nullable: true
        totalValues:
          type: number
          nullable: true
        totalPercent:
          type: number
          nullable: true
    WaterYearValuesApiDto:
      type: object
      properties:
        inWaterStressArea:
          $ref: '#/components/schemas/WaterValueApiDto'
        outWaterStressArea:
          $ref: '#/components/schemas/WaterValueApiDto'
        totalWaterStressArea:
          $ref: '#/components/schemas/WaterValueApiDto'
        year:
          type: integer
          format: int32
          nullable: true
        isBaseYear:
          type: boolean
          nullable: true
        isReportYear:
          type: boolean
          nullable: true
        isGoalYear:
          type: boolean
          nullable: true
        tab:
          type: string
          nullable: true
          enum:
            - DETAIL
            - SUM
        unitValue:
          type: string
          nullable: true
    WaterYearValuesListApiDto:
      type: object
      properties:
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/WaterYearValuesApiDto'
      nullable: true
    YearDataListApi:
      type: object
      properties:
        years:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/BuildingListApi'
