{
  "openapi": "3.0.1",
  "info": {
    "title": "CAALA Insight API - 20260908.2",
    "description": "CAALA Insight API provides access to a comprehensive suite of tools designed to facilitate the analysis, simulation, and optimization of building designs for energy efficiency, sustainability & detailed WLCA.",
    "termsOfService": "https://www.caala.de/agb",
    "contact": {
      "name": "Contact CAALA GmbH",
      "url": "https://www.caala.de/kontakt#support",
      "email": "info@caala.de"
    },
    "license": {
      "name": "Proprietary license"
    },
    "version": "v1"
  },
  "paths": {
    "/v1/auth/logout": {
      "post": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Logout",
        "parameters": [
          {
            "name": "X-Refresh-Token",
            "in": "header",
            "description": "The refresh token provided as a header (preferred method for authentication). This token is used to identify the session to be terminated.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Deprecated. The refresh token provided in the request body (not recommended, replaced by headerToken).",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/RefreshToken"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/RefreshToken"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/RefreshToken"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/magic-link/login": {
      "post": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Login With Magic Link",
        "requestBody": {
          "description": "An object containing the email address to which the magic link will be sent.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/MagicLinkRequestDto"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/MagicLinkRequestDto"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/MagicLinkRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/MagicLinkResponse"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/MagicLinkResponse"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/MagicLinkResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/password/login": {
      "post": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Login In With Password",
        "requestBody": {
          "description": "The login credentials, including the user's password and any required identifiers.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/PasswordLoginRequest"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/PasswordLoginRequest"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/PasswordLoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/password/policies": {
      "get": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Password Policies",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/PasswordPolicy"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/PasswordPolicy"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/PasswordPolicy"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/password/reset": {
      "post": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Reset Password",
        "requestBody": {
          "description": "The model containing the necessary details to reset the user's password.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ResetPasswordResponse"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ResetPasswordResponse"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ResetPasswordResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/password/sign-up": {
      "post": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Sign Up With Password",
        "requestBody": {
          "description": "The sign-up request data containing user information required for registration.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/SignUpRequestDto"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/SignUpRequestDto"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/SignUpRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/MaskedResponse"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/MaskedResponse"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/MaskedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/password/update": {
      "post": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Update Password",
        "parameters": [
          {
            "name": "X-Refresh-Token",
            "in": "header",
            "description": "The refresh token used for maintaining session state and authentication. Required for the operation.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Contains the required information for updating the user's password, including login details and the new password.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePasswordRequest"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePasswordRequest"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePasswordRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/password/verify": {
      "get": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Verify Token",
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "description": "The token used for verifying the email.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "The type of redirection or activation process to apply.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/RedirectType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/password/verify-email": {
      "post": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Verify Email",
        "requestBody": {
          "description": "The request object containing the email address and relevant details for generating the verification link.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/EmbeddedLinkRequest"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/EmbeddedLinkRequest"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/EmbeddedLinkRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/refresh": {
      "post": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Refresh Session",
        "parameters": [
          {
            "name": "X-Refresh-Token",
            "in": "header",
            "description": "Preferred: The refresh token in the header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/RefreshToken"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/RefreshToken"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/RefreshToken"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/sso/callback": {
      "get": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "SSO Exchange Code",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "The authorization code provided by the client during the SSO login process.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/sso/start": {
      "post": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Initiate SSO",
        "requestBody": {
          "description": "An object containing the user's login ID required to start the SSO process.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/SsoStartRequest"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/SsoStartRequest"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/SsoStartRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/SsoResponse"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/SsoResponse"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/SsoResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/test/token": {
      "get": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Test",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/validate/edu-domain": {
      "post": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Educational Email",
        "requestBody": {
          "description": "An instance of Caala.WebApi.Models.V1.UserManagement.Auth.Request.EmailValidationRequestDto containing the email address to validate.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/EmailValidationRequestDto"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/EmailValidationRequestDto"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/EmailValidationRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/UniversityDetailResponseDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/UniversityDetailResponseDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/UniversityDetailResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/validate/email-exists": {
      "post": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "User Exists",
        "requestBody": {
          "description": "Contains the email address to be validated.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/EmailValidationRequestDto"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/EmailValidationRequestDto"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/EmailValidationRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/UserExistsResponseDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/UserExistsResponseDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/UserExistsResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/validate/session": {
      "post": {
        "tags": [
          "Authentication Management"
        ],
        "summary": "Validate Session Token",
        "parameters": [
          {
            "name": "X-Session-Token",
            "in": "header",
            "description": "The session token containing the JWT to be validated.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": { }
              },
              "application/json; x-api-version=1": {
                "schema": { }
              },
              "text/json; x-api-version=1": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/construction/batch": {
      "delete": {
        "tags": [
          "Construction Management"
        ],
        "summary": "Batch Delete Construction Elements by IDs",
        "requestBody": {
          "description": "A list of construction identifiers to be deleted.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/construction/comparison": {
      "post": {
        "tags": [
          "Construction Management"
        ],
        "summary": "Compare Multiple Constructions",
        "requestBody": {
          "description": "List of construction IDs to be compared.\r\n            The list must contain between 2 and 5 IDs.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ConstructionComparisonSummaryDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ConstructionComparisonSummaryDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ConstructionComparisonSummaryDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/construction/count/{ownershipCategory}": {
      "get": {
        "tags": [
          "Construction Management"
        ],
        "summary": "Count Constructions by Ownership Type",
        "parameters": [
          {
            "name": "ownershipCategory",
            "in": "path",
            "description": "The ownership type category (e.g., custom, standard) for which the construction count needs to be retrieved.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnershipCategoryEnum"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/construction/filter/custom-tags": {
      "get": {
        "tags": [
          "Construction Management"
        ],
        "summary": "List Custom Tags",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/construction/indicators": {
      "post": {
        "tags": [
          "Construction Management"
        ],
        "summary": "Calculate Environmental Indicators by Construction Layers",
        "requestBody": {
          "description": "A list of construction layer data transfer objects used to calculate environmental indicators.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConstructionLayerDto"
                }
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConstructionLayerDto"
                }
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConstructionLayerDto"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EnvironmentalIndicatorsDto"
                  }
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EnvironmentalIndicatorsDto"
                  }
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EnvironmentalIndicatorsDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/construction/kpi": {
      "post": {
        "tags": [
          "Construction Management"
        ],
        "summary": "Calculate KPIs",
        "parameters": [
          {
            "name": "constructionType",
            "in": "query",
            "description": "Specifies the type of construction, selected from the Caala.Library.Models.Construction.Enums.ConstructionTypeEnum.",
            "schema": {
              "$ref": "#/components/schemas/ConstructionTypeEnum"
            }
          }
        ],
        "requestBody": {
          "description": "A list of construction layers used in the calculation.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConstructionLayerDto"
                }
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConstructionLayerDto"
                }
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConstructionLayerDto"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/KeyPerformanceIndicatorsDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/KeyPerformanceIndicatorsDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/KeyPerformanceIndicatorsDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/construction/list": {
      "get": {
        "tags": [
          "Construction Management"
        ],
        "summary": "List Construction Elements",
        "parameters": [
          {
            "name": "ownership",
            "in": "query",
            "description": "Specifies the ownership category of the constructions ('Standard', 'Custom', or both). If null, defaults to including both categories.",
            "schema": {
              "$ref": "#/components/schemas/OwnershipCategoryEnum"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale to be applied to the constructions, used for localization purposes. Defaults to 'de_DE'.",
            "schema": {
              "$ref": "#/components/schemas/LocaleEnum"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "An optional text filter to search constructions by name or description.",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The page number of the paginated results to retrieve. Defaults to 1.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "customTake",
            "in": "query",
            "description": "An optional parameter to define a custom page size. If null, the default page size is applied.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConstructionListItemDto"
                  }
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConstructionListItemDto"
                  }
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConstructionListItemDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/construction/share": {
      "post": {
        "tags": [
          "Construction Management"
        ],
        "summary": "Share Construction with Users",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The unique identifier of the construction to be shared.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "A dictionary where the key is an email address and the value is the permission level of the user being shared with.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/SharePermissionEnum"
                }
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/SharePermissionEnum"
                }
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/SharePermissionEnum"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/construction/shared/list": {
      "get": {
        "tags": [
          "Construction Management"
        ],
        "summary": "List Constructions Shared with Users",
        "parameters": [
          {
            "name": "locale",
            "in": "query",
            "description": "The locale for the shared constructions, defaulting to German (de_DE).",
            "schema": {
              "$ref": "#/components/schemas/LocaleEnum"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "An optional search query to filter the shared constructions.",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The page number for pagination, defaulting to 1.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "customTake",
            "in": "query",
            "description": "An optional custom page size for pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConstructionListItemDto"
                  }
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConstructionListItemDto"
                  }
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConstructionListItemDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/construction/{ownership}": {
      "post": {
        "tags": [
          "Construction Management"
        ],
        "summary": "Create Construction Element",
        "description": "<b>Warning:</b> The \"Standard\" construction route is restricted to users with a @caala.de email domain and requires an \"admin\" policy.",
        "parameters": [
          {
            "name": "ownership",
            "in": "path",
            "description": "Indicates the type of construction to create: standard, custom, or third-party.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnershipCategoryEnum"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "Specifies the primary locale for the construction, provided as a query string parameter.",
            "schema": {
              "$ref": "#/components/schemas/LocaleEnum"
            }
          }
        ],
        "requestBody": {
          "description": "A JSON object representing the construction details, provided in the request body.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/ConstructionDto"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/ConstructionDto"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/ConstructionDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ConstructionDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ConstructionDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ConstructionDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/construction/{ownership}/indicators/{id}": {
      "get": {
        "tags": [
          "Construction Management"
        ],
        "summary": "Calculate Environmental Indicators by ID",
        "parameters": [
          {
            "name": "ownership",
            "in": "path",
            "description": "Specifies the ownership type of the construction (Standard, Custom, or Third-party).",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnershipCategoryEnum"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the construction for which the environmental indicators are calculated.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EnvironmentalIndicatorsDto"
                  }
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EnvironmentalIndicatorsDto"
                  }
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EnvironmentalIndicatorsDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/construction/{ownership}/kpi/{id}": {
      "get": {
        "tags": [
          "Construction Management"
        ],
        "summary": "Calculate KPIs by ID",
        "description": "This endpoint can be used to recalculate the KPIs without requiring the full construction object, making it efficient for quick updates.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the construction.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ownership",
            "in": "path",
            "description": "Specifies whether the construction is Standard or Custom.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnershipCategoryEnum"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/KeyPerformanceIndicatorsDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/KeyPerformanceIndicatorsDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/KeyPerformanceIndicatorsDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/construction/{ownership}/{id}": {
      "get": {
        "tags": [
          "Construction Management"
        ],
        "summary": "Get Construction Element by ID",
        "parameters": [
          {
            "name": "ownership",
            "in": "path",
            "description": "Specifies the type of construction, either 'Standard' or 'Custom'.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnershipCategoryEnum"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the construction object to be retrieved.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ConstructionDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ConstructionDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ConstructionDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Construction Management"
        ],
        "summary": "Update Construction Element by ID",
        "description": "<b>Warning:</b> The \"Standard\" patch route is restricted to users with a @caala.de email domain and requires an \"admin\" policy.",
        "parameters": [
          {
            "name": "ownership",
            "in": "path",
            "description": "Specifies the type of construction to include, such as 'Standard' or'Custom'.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnershipCategoryEnum"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the construction item to be updated.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "A JSON object containing the patch data to be applied.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/JsonPatchDocument`1"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/JsonPatchDocument`1"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/JsonPatchDocument`1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ConstructionDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ConstructionDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ConstructionDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Construction Management"
        ],
        "summary": "Delete Construction Element by ID",
        "description": "<b>Note:</b> This operation performs a soft delete. The deleted construction will remain in a recoverable state for 30 days, after which it will be permanently removed.\r\n            <b>Warning:</b> Standard constructions cannot be deleted without admin rights and a @caala.de domain.",
        "parameters": [
          {
            "name": "ownership",
            "in": "path",
            "description": "Specifies the type of construction to include, such as 'Standard' or'Custom'.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnershipCategoryEnum"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the construction to be deleted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/material/count": {
      "get": {
        "tags": [
          "Material Management"
        ],
        "summary": "Get Material Count",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/material/list": {
      "get": {
        "tags": [
          "Material Management"
        ],
        "summary": "List Materials",
        "parameters": [
          {
            "name": "datasource",
            "in": "query",
            "description": "An enumeration value representing the data source.\r\n            It specifies whether to retrieve materials from CAALA, custom sources, or both.",
            "schema": {
              "$ref": "#/components/schemas/DatasourceEnum"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Specifies the page number for paginated results. Defaults to 1.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "An optional search string used to filter the materials.\r\n            If provided, only materials whose name or other attributes match the query will be returned.\r\n            If null or empty, all materials will be returned.",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale parameter used to specify the localization of materials.",
            "schema": {
              "$ref": "#/components/schemas/LocaleEnum"
            }
          },
          {
            "name": "dropdown",
            "in": "query",
            "description": "Indicates whether the material list should be formatted for dropdowns.\r\n            Defaults to false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/MaterialListItemDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/MaterialListItemDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/MaterialListItemDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/material/{locale}/{id}": {
      "get": {
        "tags": [
          "Material Management"
        ],
        "summary": "Get Material by ID",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the material.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "path",
            "description": "The locale for which the material information is requested. Defaults to LocaleEnum.de_DE.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/LocaleEnum"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/MaterialListItemDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/MaterialListItemDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/MaterialListItemDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/queue/job": {
      "post": {
        "tags": [
          "IfcJobQueue"
        ],
        "summary": "Initiate Job",
        "description": "Queue an IFC Job to be processed by the IFC background agent.",
        "requestBody": {
          "description": "The request containing details such as the file name, content size, processing mode, and optional content type.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/InitiateUploadRequest"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/InitiateUploadRequest"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/InitiateUploadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/InitiateUploadResponse"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/InitiateUploadResponse"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/InitiateUploadResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/queue/job/complete": {
      "post": {
        "tags": [
          "IfcJobQueue"
        ],
        "summary": "Complete File Upload",
        "description": "This method finalizes the file upload by processing the provided upload details and then\r\nqueues a corresponding job order for further handling in the background system.",
        "requestBody": {
          "description": "The request containing the upload ID and file name necessary to complete the process and queue the job.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/UploadCompleteRequest"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/UploadCompleteRequest"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/UploadCompleteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/queue/job/list": {
      "get": {
        "tags": [
          "IfcJobQueue"
        ],
        "summary": "Get Jobs List",
        "description": "This method fetches all background job records for the authenticated user's client, providing information about\r\njob status, upload status, processing mode, and more.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BackgroundJobRecordDto"
                  }
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BackgroundJobRecordDto"
                  }
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BackgroundJobRecordDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/queue/job/status/{uploadId}": {
      "get": {
        "tags": [
          "IfcJobQueue"
        ],
        "summary": "Get Job Status",
        "description": "Fetches the detailed status of a background job associated with the provided upload ID.",
        "parameters": [
          {
            "name": "uploadId",
            "in": "path",
            "description": "The unique identifier of the upload whose job status is to be retrieved.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundJobStatusDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundJobStatusDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundJobStatusDto"
                }
              }
            }
          }
        }
      }
    },
    "/v1/queue/job/{uploadId}": {
      "get": {
        "tags": [
          "IfcJobQueue"
        ],
        "summary": "Get Job By Upload ID",
        "description": "This method fetches detailed information about a background job record,\r\nincluding its status, upload details, and processing metadata, based on the provided upload ID.",
        "parameters": [
          {
            "name": "uploadId",
            "in": "path",
            "description": "The unique identifier of the uploaded file associated with the background job.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundJobRecordDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundJobRecordDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundJobRecordDto"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "IfcJobQueue"
        ],
        "summary": "Deletes Job Record",
        "description": "This method removes a background job record from the system, ensuring that only authorized users\r\ncan perform the operation based on their client ID. The record is identified by the provided upload ID.",
        "parameters": [
          {
            "name": "uploadId",
            "in": "path",
            "description": "The unique identifier of the background job record to delete.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/subscription": {
      "get": {
        "tags": [
          "Subscription Management"
        ],
        "summary": "Subscription Details",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/user": {
      "post": {
        "tags": [
          "User Management"
        ],
        "summary": "Create User",
        "requestBody": {
          "description": "The user creation request containing the necessary information to create a new user.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/UserCreationRequest"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/UserCreationRequest"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/UserCreationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/UserCreationResponse"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/UserCreationResponse"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/UserCreationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "User Management"
        ],
        "summary": "Update User",
        "requestBody": {
          "description": "An object containing the updated user information including their family name, given name,\r\nand any custom attributes.",
          "content": {
            "application/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateReqDto"
              }
            },
            "text/json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateReqDto"
              }
            },
            "application/*+json; x-api-version=1": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateReqDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaUserDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaUserDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaUserDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "User Management"
        ],
        "summary": "Delete Logged-In User",
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/user/email/{userEmail}": {
      "delete": {
        "tags": [
          "User Management"
        ],
        "summary": "Delete User by Email",
        "parameters": [
          {
            "name": "userEmail",
            "in": "path",
            "description": "The email address of the user to be deleted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/user/id/{userId}": {
      "delete": {
        "tags": [
          "User Management"
        ],
        "summary": "Delete User by ID",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The IAM ID of the user to be deleted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          }
        }
      }
    },
    "/v1/user/me": {
      "get": {
        "tags": [
          "User Management"
        ],
        "summary": "Me",
        "description": "Get basic user information of the logged-in user.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaUserDto"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaUserDto"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaUserDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/CaalaErrorMessage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json; x-api-version=1": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Argon2Hash": {
        "type": "object",
        "properties": {
          "hash": {
            "type": "string",
            "nullable": true
          },
          "salt": {
            "type": "string",
            "nullable": true
          },
          "iterations": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "memory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "threads": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AssociatedTenant": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "nullable": true
          },
          "tenantName": {
            "type": "string",
            "nullable": true
          },
          "roleNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthenticationResponse": {
        "type": "object",
        "properties": {
          "sessionJwt": {
            "type": "string",
            "nullable": true
          },
          "refreshJwt": {
            "type": "string",
            "nullable": true
          },
          "cookieDomain": {
            "type": "string",
            "nullable": true
          },
          "cookiePath": {
            "type": "string",
            "nullable": true
          },
          "cookieMaxAge": {
            "type": "integer",
            "format": "int32"
          },
          "cookieExpiration": {
            "type": "integer",
            "format": "int32"
          },
          "user": {
            "$ref": "#/components/schemas/UserResponse"
          },
          "firstSeen": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BachHash": {
        "type": "object",
        "properties": {
          "hash": {
            "type": "string",
            "nullable": true
          },
          "key": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BackgroundJobRecordDto": {
        "type": "object",
        "properties": {
          "jobStatus": {
            "$ref": "#/components/schemas/JobStatus"
          },
          "uploadStatus": {
            "$ref": "#/components/schemas/UploadStatus"
          },
          "processingMode": {
            "$ref": "#/components/schemas/ProcessingMode"
          },
          "useAiMapping": {
            "type": "boolean"
          },
          "versionId": {
            "type": "string",
            "nullable": true
          },
          "blobSize": {
            "type": "integer",
            "format": "int64"
          },
          "fileName": {
            "type": "string",
            "nullable": true
          },
          "uploadId": {
            "type": "string",
            "nullable": true
          },
          "geometryId": {
            "type": "string",
            "nullable": true
          },
          "processingDurationInMs": {
            "type": "integer",
            "format": "int64"
          },
          "notifyCurrentUser": {
            "type": "boolean"
          },
          "notifyAdditionalRecipients": {
            "type": "boolean"
          },
          "additionalRecipientsEmails": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "completedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "failedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "failureReason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BackgroundJobStatusDto": {
        "type": "object",
        "properties": {
          "uploadStatus": {
            "$ref": "#/components/schemas/UploadStatus"
          },
          "jobStatus": {
            "$ref": "#/components/schemas/JobStatus"
          },
          "completedAtUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "processingDurationdInMs": {
            "type": "integer",
            "format": "int64"
          },
          "geometryId": {
            "type": "string",
            "nullable": true
          },
          "uploadId": {
            "type": "string",
            "nullable": true
          },
          "failureReason": {
            "type": "string",
            "nullable": true
          },
          "viewerFailed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BaseInformationDto": {
        "type": "object",
        "properties": {
          "primaryLocale": {
            "$ref": "#/components/schemas/LocaleEnum"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "names": {
            "type": "object",
            "properties": {
              "custom": {
                "type": "string"
              },
              "de_DE": {
                "type": "string"
              },
              "en_UK": {
                "type": "string"
              }
            },
            "additionalProperties": false,
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "ownershipCategory": {
            "$ref": "#/components/schemas/OwnershipCategoryEnum"
          },
          "tags": {
            "$ref": "#/components/schemas/TagsDto"
          },
          "constructionType": {
            "$ref": "#/components/schemas/ConstructionTypeEnum"
          }
        },
        "additionalProperties": false
      },
      "BcryptHash": {
        "type": "object",
        "properties": {
          "hash": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BuddyauthHash": {
        "type": "object",
        "properties": {
          "hash": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CaalaErrorCode": {
        "enum": [
          1001,
          1002,
          1003,
          1004,
          1005,
          1006,
          1008,
          1011,
          1014,
          2001,
          4001,
          4002,
          4003,
          4004,
          4005,
          5001,
          5002,
          5003,
          6001,
          6002,
          6003,
          6004,
          9001,
          9002,
          9003
        ],
        "type": "integer",
        "format": "int32"
      },
      "CaalaErrorMessage": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          },
          "errorCode": {
            "$ref": "#/components/schemas/CaalaErrorCode"
          },
          "errorDefinition": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "CaalaUserDto": {
        "required": [
          "clientId"
        ],
        "type": "object",
        "properties": {
          "clientId": {
            "minLength": 1,
            "type": "string"
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "emailVerified": {
            "type": "boolean"
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "familyName": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "loggedInTenantId": {
            "type": "string",
            "nullable": true
          },
          "loggedInTenantName": {
            "type": "string",
            "nullable": true
          },
          "fullName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "company": {
            "type": "string",
            "nullable": true
          },
          "jobTitle": {
            "type": "string",
            "nullable": true
          },
          "fieldsOfActivity": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyProfileType"
            },
            "nullable": true
          },
          "regions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Regions"
            },
            "nullable": true
          },
          "companySize": {
            "$ref": "#/components/schemas/CompanySizeType"
          },
          "isEnterpriseUser": {
            "type": "boolean"
          },
          "isTrialUser": {
            "type": "boolean"
          },
          "isBasicUser": {
            "type": "boolean"
          },
          "isProUser": {
            "type": "boolean"
          },
          "isEduUser": {
            "type": "boolean"
          },
          "subscriptionPlanId": {
            "type": "string",
            "nullable": true
          },
          "subscriptionType": {
            "$ref": "#/components/schemas/SubscriptionType"
          },
          "subscriptionStartDate": {
            "type": "string",
            "format": "date-time"
          },
          "subscriptionEndDate": {
            "type": "string",
            "format": "date-time"
          },
          "allowedProjectCount": {
            "type": "integer",
            "format": "int32"
          },
          "featureEntitlements": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "thirdParties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ThirdPartyIntegrationModel"
            },
            "nullable": true
          },
          "subscriptionStatus": {
            "$ref": "#/components/schemas/CbStatus"
          }
        },
        "additionalProperties": false
      },
      "CbStatus": {
        "enum": [
          "unKnown",
          "future",
          "inTrial",
          "active",
          "nonRenewing",
          "paused",
          "cancelled",
          "transferred"
        ],
        "type": "string"
      },
      "ChangeContextDto": {
        "type": "object",
        "properties": {
          "operation": {
            "type": "string",
            "nullable": true
          },
          "field": {
            "type": "string",
            "nullable": true
          },
          "from": {
            "nullable": true
          },
          "value": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ChangeLogDto": {
        "type": "object",
        "properties": {
          "changedDate": {
            "type": "string",
            "format": "date-time"
          },
          "changedByEmail": {
            "type": "string",
            "nullable": true
          },
          "changeContexts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChangeContextDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyProfileType": {
        "enum": [
          "architecture",
          "assetManagement",
          "bankAndFinance",
          "constructionCompany",
          "portfolioHolding",
          "researchAndEducation",
          "realEstateConsulting",
          "engineeringServices",
          "projectDevelopment",
          "association",
          "other",
          "architectureAndEngineeringServices",
          "architectureAndProjectDevelopment",
          "assetManagementAndProjectDevelopment",
          "constructionCompanyAndProjectDevelopment",
          "realEstateConsultingAndEngineeringServices",
          "none"
        ],
        "type": "string"
      },
      "CompanySizeType": {
        "enum": [
          "lessThanTen",
          "tenToFifty",
          "fiftyToTwoHundredAndFifty",
          "moreThanTwoHundredAndFifty"
        ],
        "type": "string"
      },
      "ConstructionComparisonSummaryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "ownershipCategory": {
            "$ref": "#/components/schemas/OwnershipCategoryEnum"
          },
          "uValue": {
            "type": "number",
            "format": "double"
          },
          "thickness": {
            "type": "number",
            "format": "double"
          },
          "cost": {
            "type": "number",
            "format": "double"
          },
          "constructionType": {
            "$ref": "#/components/schemas/ConstructionTypeEnum"
          },
          "envKpi": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/EnvKpiModuleDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConstructionDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "baseInformation": {
            "$ref": "#/components/schemas/BaseInformationDto"
          },
          "kpi": {
            "$ref": "#/components/schemas/KeyPerformanceIndicatorsDto"
          },
          "constructionLayers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConstructionLayerDto"
            },
            "nullable": true
          },
          "changeLogs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChangeLogDto"
            },
            "nullable": true
          },
          "constructionUsage": {
            "$ref": "#/components/schemas/ConstructionUsageDto"
          },
          "constructionSettings": {
            "$ref": "#/components/schemas/ConstructionSettingsDto"
          },
          "createdBy": {
            "type": "string",
            "nullable": true
          },
          "changedBy": {
            "type": "string",
            "nullable": true
          },
          "changed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConstructionLayerDto": {
        "type": "object",
        "properties": {
          "layerId": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "index": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "referenceUnit": {
            "$ref": "#/components/schemas/UnitEnum"
          },
          "frameworks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FrameworkEnum"
            },
            "nullable": true
          },
          "datasource": {
            "$ref": "#/components/schemas/DatasourceEnum"
          },
          "materialHatch": {
            "$ref": "#/components/schemas/MaterialHatchEnum"
          },
          "isExisting": {
            "type": "boolean"
          },
          "layerPosition": {
            "$ref": "#/components/schemas/LayerPositionEnum"
          },
          "customPositionName": {
            "type": "string",
            "nullable": true
          },
          "physicalProperties": {
            "$ref": "#/components/schemas/PhysicalPropertiesDto"
          },
          "costProperties": {
            "$ref": "#/components/schemas/CostPropertiesDto"
          }
        },
        "additionalProperties": false
      },
      "ConstructionListItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "baseInformation": {
            "$ref": "#/components/schemas/BaseInformationDto"
          },
          "kpi": {
            "$ref": "#/components/schemas/KeyPerformanceIndicatorsDto"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "changed": {
            "type": "string",
            "format": "date-time"
          },
          "sharedWithEmails": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "documentPermission": {
            "$ref": "#/components/schemas/SharePermissionEnum"
          }
        },
        "additionalProperties": false
      },
      "ConstructionSettingsDto": {
        "type": "object",
        "properties": {
          "approved": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConstructionTypeEnum": {
        "enum": [
          "none",
          "externalWalls",
          "slabs",
          "beams",
          "columns",
          "roof",
          "windows",
          "ceiling",
          "flooring",
          "curtainWalls",
          "internalWalls",
          "woodComposite",
          "structural"
        ],
        "type": "string"
      },
      "ConstructionUsageDto": {
        "type": "object",
        "properties": {
          "inProjects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectInfoDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CostPropertiesDto": {
        "type": "object",
        "properties": {
          "cost": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyEnum"
          },
          "unit": {
            "$ref": "#/components/schemas/UnitEnum"
          }
        },
        "additionalProperties": false
      },
      "CurrencyEnum": {
        "enum": [
          "eur",
          "usd"
        ],
        "type": "string"
      },
      "CustomAttributesDto": {
        "type": "object",
        "properties": {
          "companyName": {
            "minLength": 3,
            "type": "string",
            "description": "Represents the name of the company associated with the user.",
            "nullable": true
          },
          "companySize": {
            "$ref": "#/components/schemas/CompanySizeType"
          },
          "fieldsOfActivity": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyProfileType"
            },
            "description": "Represents the list of activity fields associated with the company or organization.",
            "nullable": true
          },
          "jobTitle": {
            "type": "string",
            "description": "Represents the job title of the user within their organization.",
            "nullable": true
          },
          "regions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Regions"
            },
            "description": "Represents the regions associated with the user's organization or operations.",
            "nullable": true
          },
          "agreeMarketingEmail": {
            "type": "boolean",
            "description": "Indicates whether the user agrees to receive marketing emails."
          },
          "agreeDataProcessing": {
            "type": "boolean",
            "description": "Indicates whether the user has agreed to the data processing policies."
          },
          "agreeTermsAndConditions": {
            "type": "boolean",
            "description": "Indicates whether the user has agreed to the terms and conditions."
          }
        },
        "additionalProperties": false,
        "description": "Represents custom attributes associated with a user in the authentication and user management system."
      },
      "DatasourceEnum": {
        "enum": [
          "none",
          "obd2016",
          "obd2020",
          "obd2024",
          "custom"
        ],
        "type": "string"
      },
      "DjangoHash": {
        "type": "object",
        "properties": {
          "hash": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EmailValidationRequestDto": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "maxLength": 100,
            "minLength": 5,
            "type": "string",
            "description": "Email address used for email validation.",
            "format": "email"
          }
        },
        "additionalProperties": false,
        "description": "Represents the data transfer object used for university email validation."
      },
      "EmbeddedLinkRequest": {
        "type": "object",
        "properties": {
          "loginId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EnvKpiModuleDto": {
        "type": "object",
        "properties": {
          "gwpTotalA2": {
            "type": "number",
            "format": "double"
          },
          "penrt": {
            "type": "number",
            "format": "double"
          },
          "odpA2": {
            "type": "number",
            "format": "double"
          },
          "gwpBiogenicA2": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "EnvironmentalIndicatorsDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "indicators": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/EnvKpiModuleDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FirebaseHash": {
        "type": "object",
        "properties": {
          "hash": {
            "type": "string",
            "nullable": true
          },
          "salt": {
            "type": "string",
            "nullable": true
          },
          "saltSeparator": {
            "type": "string",
            "nullable": true
          },
          "signerKey": {
            "type": "string",
            "nullable": true
          },
          "memory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "rounds": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FrameworkEnum": {
        "enum": [
          "qng",
          "dgnb",
          "bnb",
          "lowEmission",
          "lowUvalue",
          "lowCost",
          "highSpaceEfficiency"
        ],
        "type": "string"
      },
      "HashedPassword": {
        "type": "object",
        "properties": {
          "bcrypt": {
            "$ref": "#/components/schemas/BcryptHash"
          },
          "django": {
            "$ref": "#/components/schemas/DjangoHash"
          },
          "firebase": {
            "$ref": "#/components/schemas/FirebaseHash"
          },
          "pbkdf2": {
            "$ref": "#/components/schemas/Pbkdf2Hash"
          },
          "phpass": {
            "$ref": "#/components/schemas/PhpassHash"
          },
          "md5": {
            "$ref": "#/components/schemas/Md5Hash"
          },
          "bach": {
            "$ref": "#/components/schemas/BachHash"
          },
          "argon2": {
            "$ref": "#/components/schemas/Argon2Hash"
          },
          "sha": {
            "$ref": "#/components/schemas/ShaHash"
          },
          "buddyauth": {
            "$ref": "#/components/schemas/BuddyauthHash"
          }
        },
        "additionalProperties": false
      },
      "IContractResolver": {
        "type": "object",
        "additionalProperties": false
      },
      "InitiateUploadRequest": {
        "required": [
          "blobHash",
          "contentSize",
          "fileName",
          "idempotencyKey",
          "processingMode"
        ],
        "type": "object",
        "properties": {
          "fileName": {
            "maxLength": 255,
            "minLength": 6,
            "type": "string",
            "description": "Name of the file to be uploaded."
          },
          "processingMode": {
            "$ref": "#/components/schemas/ProcessingMode"
          },
          "contentSize": {
            "type": "integer",
            "description": "Size of the content to be uploaded, in bytes.",
            "format": "int64"
          },
          "idempotencyKey": {
            "maxLength": 100,
            "minLength": 10,
            "type": "string",
            "description": "Unique key to ensure idempotency for the upload request."
          },
          "blobHash": {
            "minLength": 10,
            "type": "string",
            "description": "Hash value of the blob associated with the upload request."
          },
          "versionId": {
            "type": "string",
            "description": "Version identifier of the EPD dataset version. Default value is 24.",
            "nullable": true
          },
          "useAiMapping": {
            "type": "boolean",
            "description": "Indicates whether AI-based data mapping should be used during the processing. The default value is false."
          },
          "notifyCurrentUser": {
            "type": "boolean",
            "description": "Notify the current user once the upload operation is completed. The default value is `true`."
          },
          "notifyAdditionalRecipients": {
            "type": "boolean",
            "description": "Notify additional recipients once the upload operation is completed. The default value is `false`."
          },
          "additionalRecipientsEmails": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of email addresses for additional recipients to be notified.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the request model for initiating a file upload operation."
      },
      "InitiateUploadResponse": {
        "type": "object",
        "properties": {
          "uploadUri": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "uploadId": {
            "type": "string",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "fileName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "JobStatus": {
        "enum": [
          "notStarted",
          "queued",
          "processing",
          "completed",
          "failed",
          "cancelled"
        ],
        "type": "string"
      },
      "JsonPatchDocument`1": {
        "type": "object",
        "properties": {
          "operations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Operation`1"
            },
            "nullable": true,
            "readOnly": true
          },
          "contractResolver": {
            "$ref": "#/components/schemas/IContractResolver"
          }
        },
        "additionalProperties": false
      },
      "KeyPerformanceIndicatorsDto": {
        "type": "object",
        "properties": {
          "gwp": {
            "type": "number",
            "format": "double"
          },
          "uValue": {
            "type": "number",
            "format": "double"
          },
          "thickness": {
            "type": "number",
            "format": "double"
          },
          "cost": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "LayerPositionEnum": {
        "enum": [
          "interior",
          "core",
          "external",
          "structural"
        ],
        "type": "string"
      },
      "LocaleEnum": {
        "enum": [
          "custom",
          "de_DE",
          "en_UK"
        ],
        "type": "string"
      },
      "LoginOptionsDto": {
        "type": "object",
        "properties": {
          "stepUp": {
            "type": "boolean"
          },
          "mfa": {
            "type": "boolean"
          },
          "ssoAppId": {
            "type": "string",
            "nullable": true
          },
          "templateOptions": {
            "type": "object",
            "additionalProperties": { },
            "nullable": true
          },
          "customClaims": {
            "type": "object",
            "additionalProperties": { },
            "description": "Adds additional custom claims to the user's JWT during authentication.\r\n<br><b>Important:</b> Any custom claims added via this method are considered insecure and will\r\nbe nested under the `nsec` custom claim.\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents options for the login process, including support for step-up authentication or multi-factor authentication (MFA)."
      },
      "MagicLinkRequestDto": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "maxLength": 150,
            "minLength": 5,
            "type": "string",
            "description": "Email address of the user requesting a magic link.",
            "format": "email"
          }
        },
        "additionalProperties": false,
        "description": "Represents the data transfer object (DTO) for a Magic Link request.\r\nThis DTO is used to request the generation of a magic link for authentication purposes."
      },
      "MagicLinkResponse": {
        "type": "object",
        "properties": {
          "maskedEmail": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MaskedResponse": {
        "type": "object",
        "properties": {
          "maskedEmail": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MaterialHatchEnum": {
        "enum": [
          "none",
          "brick",
          "sand",
          "limestone",
          "stone",
          "concrete",
          "insulation",
          "metal",
          "wood",
          "gypsum",
          "coating",
          "plastic",
          "windows",
          "lightConcrete",
          "cement",
          "lime",
          "clay",
          "asphalt"
        ],
        "type": "string"
      },
      "MaterialListItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "obdUuid": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "referenceUnit": {
            "$ref": "#/components/schemas/UnitEnum"
          },
          "resourceLink": {
            "type": "string",
            "nullable": true
          },
          "globalWarmingPotentialTotal": {
            "type": "number",
            "format": "double"
          },
          "penrt": {
            "type": "number",
            "format": "double"
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "datasetType": {
            "type": "string",
            "nullable": true
          },
          "classification": {
            "type": "string",
            "nullable": true
          },
          "lambda": {
            "type": "number",
            "format": "double"
          },
          "rawDensity": {
            "type": "number",
            "format": "double"
          },
          "exchangeYear": {
            "type": "integer",
            "format": "int32"
          },
          "materialHatch": {
            "$ref": "#/components/schemas/MaterialHatchEnum"
          }
        },
        "additionalProperties": false
      },
      "Md5Hash": {
        "type": "object",
        "properties": {
          "hash": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OperationType": {
        "enum": [
          "add",
          "remove",
          "replace",
          "move",
          "copy",
          "test",
          "invalid"
        ],
        "type": "string"
      },
      "Operation`1": {
        "type": "object",
        "properties": {
          "operationType": {
            "$ref": "#/components/schemas/OperationType"
          },
          "path": {
            "type": "string",
            "nullable": true
          },
          "op": {
            "type": "string",
            "nullable": true
          },
          "from": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OwnershipCategoryEnum": {
        "enum": [
          "custom",
          "standard",
          "shared"
        ],
        "type": "string"
      },
      "PasswordLoginRequest": {
        "required": [
          "loginId",
          "password"
        ],
        "type": "object",
        "properties": {
          "loginId": {
            "minLength": 1,
            "type": "string"
          },
          "password": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false,
        "description": "Represents the user's credentials for authentication through password-based login."
      },
      "PasswordPolicy": {
        "type": "object",
        "properties": {
          "minLength": {
            "type": "integer",
            "format": "int32"
          },
          "lowercase": {
            "type": "boolean"
          },
          "uppercase": {
            "type": "boolean"
          },
          "number": {
            "type": "boolean"
          },
          "nonAlphanumeric": {
            "type": "boolean"
          },
          "strengthScoreEnabled": {
            "type": "boolean"
          },
          "strengthScore": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Pbkdf2Hash": {
        "type": "object",
        "properties": {
          "hash": {
            "type": "string",
            "nullable": true
          },
          "salt": {
            "type": "string",
            "nullable": true
          },
          "iterations": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PhpassHash": {
        "type": "object",
        "properties": {
          "hash": {
            "type": "string",
            "nullable": true
          },
          "salt": {
            "type": "string",
            "nullable": true
          },
          "iterations": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PhysicalPropertiesDto": {
        "type": "object",
        "properties": {
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "unit": {
            "$ref": "#/components/schemas/UnitEnum"
          },
          "fractionInPercentage": {
            "type": "number",
            "format": "double"
          },
          "lambdaInWattPerMeterK": {
            "type": "number",
            "format": "double"
          },
          "exchangeInYears": {
            "type": "integer",
            "format": "int32"
          },
          "isThermalLayer": {
            "type": "boolean"
          },
          "rawDensityInKgCuMeters": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "ProcessingMode": {
        "enum": [
          "ifcLayer",
          "ifcMaterial"
        ],
        "type": "string"
      },
      "ProjectInfoDto": {
        "type": "object",
        "properties": {
          "projectName": {
            "type": "string",
            "nullable": true
          },
          "createdByEmail": {
            "type": "string",
            "nullable": true
          },
          "changedByEmail": {
            "type": "string",
            "nullable": true
          },
          "changedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RedirectType": {
        "enum": [
          "confirm",
          "update"
        ],
        "type": "string",
        "description": "Specifies the type of redirection to be executed during authentication or user management actions."
      },
      "RefreshToken": {
        "type": "object",
        "properties": {
          "refreshJwt": {
            "type": "string",
            "description": "Refresh token provided in the JWT response from the IAM.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Refresh token provided by the IAM provider to extend and restore the user session."
      },
      "Regions": {
        "enum": [
          "germany",
          "austria",
          "switzerland",
          "other"
        ],
        "type": "string"
      },
      "ResetPasswordRequest": {
        "required": [
          "loginId"
        ],
        "type": "object",
        "properties": {
          "loginId": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ResetPasswordResponse": {
        "type": "object",
        "properties": {
          "resetMethod": {
            "type": "string",
            "nullable": true
          },
          "pendingRef": {
            "type": "string",
            "nullable": true
          },
          "linkId": {
            "type": "string",
            "nullable": true
          },
          "maskedEmail": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShaHash": {
        "type": "object",
        "properties": {
          "hash": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SharePermissionEnum": {
        "enum": [
          "none",
          "view",
          "edit",
          "admin"
        ],
        "type": "string"
      },
      "SignUpRequestDto": {
        "required": [
          "loginId",
          "password",
          "user"
        ],
        "type": "object",
        "properties": {
          "loginId": {
            "maxLength": 100,
            "minLength": 5,
            "type": "string",
            "description": "Represents the login identifier for the user.",
            "format": "email"
          },
          "user": {
            "$ref": "#/components/schemas/UserRequestDto"
          },
          "password": {
            "maxLength": 100,
            "minLength": 8,
            "type": "string",
            "description": "Represents the password for a user account during the sign-up process.",
            "format": "password"
          },
          "loginOptions": {
            "$ref": "#/components/schemas/LoginOptionsDto"
          },
          "customAttributes": {
            "$ref": "#/components/schemas/CustomAttributesDto"
          }
        },
        "additionalProperties": false,
        "description": "Represents the request payload used for signing up a new user with a password."
      },
      "SsoResponse": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SsoStartRequest": {
        "required": [
          "loginId",
          "redirectUrl"
        ],
        "type": "object",
        "properties": {
          "loginId": {
            "minLength": 1,
            "type": "string"
          },
          "redirectUrl": {
            "minLength": 1,
            "type": "string",
            "format": "uri"
          }
        },
        "additionalProperties": false
      },
      "SubscriptionDto": {
        "type": "object",
        "properties": {
          "subscriptionId": {
            "type": "string",
            "nullable": true
          },
          "planId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/CbStatus"
          },
          "subscriptionType": {
            "$ref": "#/components/schemas/SubscriptionType"
          },
          "subscriptionStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "subscriptionEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "featureEntitlements": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "allowedProjectCount": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SubscriptionType": {
        "enum": [
          "educational",
          "basic1",
          "basic12",
          "enterprise",
          "pro1",
          "pro12",
          "trial10",
          "trial11",
          "enterPriseXDCCalculation"
        ],
        "type": "string"
      },
      "TagsDto": {
        "type": "object",
        "properties": {
          "frameworks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FrameworkEnum"
            },
            "nullable": true
          },
          "custom": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ThirdPartyEnum": {
        "enum": [
          "madaster",
          "xdc"
        ],
        "type": "string"
      },
      "ThirdPartyIntegrationModel": {
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/ThirdPartyEnum"
          },
          "key": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UnitEnum": {
        "enum": [
          "none",
          "kilogram",
          "cubicMeter",
          "squareMeter",
          "centimeter",
          "meter",
          "megaJoule",
          "joule",
          "wattHour",
          "kiloWattHour",
          "piece"
        ],
        "type": "string"
      },
      "UniversityDetailResponseDto": {
        "type": "object",
        "properties": {
          "webPages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "isEduConfirmed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UpdatePasswordRequest": {
        "required": [
          "loginId",
          "newPassword"
        ],
        "type": "object",
        "properties": {
          "loginId": {
            "minLength": 1,
            "type": "string"
          },
          "newPassword": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UploadCompleteRequest": {
        "required": [
          "fileName",
          "uploadId"
        ],
        "type": "object",
        "properties": {
          "uploadId": {
            "minLength": 1,
            "type": "string"
          },
          "fileName": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UploadStatus": {
        "enum": [
          "pending",
          "inProgress",
          "completed",
          "failed",
          "cancelled",
          "expired",
          "sizeMismatch"
        ],
        "type": "string"
      },
      "UserCreationRequest": {
        "type": "object",
        "properties": {
          "loginId": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "verifiedEmail": {
            "type": "boolean"
          },
          "verifiedPhone": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "roleNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "userTenants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserTenant"
            },
            "nullable": true
          },
          "invite": {
            "type": "boolean"
          },
          "test": {
            "type": "boolean"
          },
          "customAttributes": {
            "type": "object",
            "additionalProperties": { },
            "nullable": true
          },
          "picture": {
            "type": "string",
            "nullable": true
          },
          "sendMail": {
            "type": "boolean"
          },
          "sendSMS": {
            "type": "boolean"
          },
          "additionalIdentifiers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "inviteUrl": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          },
          "hashedPassword": {
            "$ref": "#/components/schemas/HashedPassword"
          },
          "givenName": {
            "type": "string",
            "nullable": true
          },
          "middleName": {
            "type": "string",
            "nullable": true
          },
          "familyName": {
            "type": "string",
            "nullable": true
          },
          "ssoAppIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "templateOptions": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserCreationResponse": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          },
          "userId": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "boolean"
          },
          "test": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UserExistsResponseDto": {
        "type": "object",
        "properties": {
          "userExists": {
            "type": "boolean",
            "description": "Gets a value indicating whether the user already exists in the system."
          }
        },
        "additionalProperties": false,
        "description": "Represents a response data transfer object that indicates whether a user already exists in the system."
      },
      "UserRequestDto": {
        "required": [
          "email",
          "familyName",
          "givenName",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 70,
            "minLength": 1,
            "type": "string",
            "description": "Represents the full name of a user."
          },
          "givenName": {
            "maxLength": 70,
            "minLength": 1,
            "type": "string",
            "description": "Represents the given name of a user."
          },
          "middleName": {
            "type": "string",
            "description": "Represents the middle name of a user.",
            "nullable": true
          },
          "familyName": {
            "maxLength": 70,
            "minLength": 1,
            "type": "string",
            "description": "Represents the family name of a user."
          },
          "email": {
            "maxLength": 100,
            "minLength": 5,
            "type": "string",
            "description": "Represents the email address of a user.",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "description": "Represents the phone number of a user.",
            "nullable": true
          },
          "isEduEmail": {
            "type": "boolean",
            "description": "Indicates whether the email address is associated with an educational institution."
          }
        },
        "additionalProperties": false,
        "description": "Represents a request model for user-related operations, including details such as name, email, and phone."
      },
      "UserResponse": {
        "type": "object",
        "properties": {
          "loginIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "userId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "givenName": {
            "type": "string",
            "nullable": true
          },
          "middleName": {
            "type": "string",
            "nullable": true
          },
          "familyName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "verifiedEmail": {
            "type": "boolean"
          },
          "verifiedPhone": {
            "type": "boolean"
          },
          "roleNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "userTenants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssociatedTenant"
            },
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "picture": {
            "type": "string",
            "nullable": true
          },
          "test": {
            "type": "boolean"
          },
          "customAttributes": {
            "type": "object",
            "additionalProperties": { },
            "nullable": true
          },
          "createdTime": {
            "type": "integer",
            "format": "int32"
          },
          "totp": {
            "type": "boolean"
          },
          "webauthn": {
            "type": "boolean"
          },
          "password": {
            "type": "boolean"
          },
          "saml": {
            "type": "boolean"
          },
          "oauth": {
            "type": "object",
            "additionalProperties": { },
            "nullable": true
          },
          "ssoAppIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserTenant": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "nullable": true
          },
          "roleNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserUpdateReqDto": {
        "type": "object",
        "properties": {
          "familyName": {
            "type": "string",
            "nullable": true
          },
          "givenName": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "customAttributes": {
            "$ref": "#/components/schemas/CustomAttributesDto"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "description": "JWT Session Token",
        "scheme": "Bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ]
}