{
  "openapi": "3.1.1",
  "info": {
    "title": "GBQ.Api | v1",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api-staging.gracequote.com.au/"
    }
  ],
  "paths": {
    "/": {
      "get": {
        "tags": [
          "GBQ.Api"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/system/info": {
      "get": {
        "tags": [
          "GBQ.Api"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemInfoResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/materials/product-media/{id}/content": {
      "get": {
        "tags": [
          "Product Media"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/identity/me/context": {
      "get": {
        "tags": [
          "Identity"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/builder-engagement": {
      "post": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartBuilderEngagementRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/builder-engagements/{engagementId}/invitations": {
      "post": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "engagementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteBuilderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/builder-engagements/{engagementId}/responses": {
      "post": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "engagementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitBuilderResponseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/builder-engagements/{engagementId}/comparison": {
      "get": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "engagementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/builder-engagements/{engagementId}/feedback": {
      "post": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "engagementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/builder-engagements/{engagementId}/select": {
      "post": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "engagementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SelectPreferredBuilderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/preferred-builder-selections/{selectionId}/notify": {
      "post": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "selectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/preferred-builder-selections/{selectionId}/withdraw": {
      "post": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "selectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawSelectionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/preferred-builder-selections/{selectionId}/acknowledge": {
      "post": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "selectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/preferred-builder-selections/{selectionId}/decline": {
      "post": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "selectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeclineSelectionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/organisations/{organisationId}/builder-invitations": {
      "get": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/organisations/{organisationId}/preferred-builder-selections": {
      "get": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/builder-invitations/{invitationId}": {
      "get": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "invitationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/builder-invitations/{invitationId}/documents/{documentId}/download": {
      "get": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "parameters": [
          {
            "name": "invitationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "documentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/marketplace-rules/builder-engagement": {
      "get": {
        "tags": [
          "BuilderEngagementEndpoints"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/builders": {
      "get": {
        "tags": [
          "Builder Profile"
        ],
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "take",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/identity/register": {
      "post": {
        "tags": [
          "Identity"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpValidationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/identity/login": {
      "post": {
        "tags": [
          "Identity"
        ],
        "parameters": [
          {
            "name": "useCookies",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "useSessionCookies",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessTokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/identity/refresh": {
      "post": {
        "tags": [
          "Identity"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessTokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/identity/confirmEmail": {
      "get": {
        "tags": [
          "Identity"
        ],
        "operationId": "MapIdentityApi-/api/v1/identity/confirmEmail",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changedEmail",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/identity/resendConfirmationEmail": {
      "post": {
        "tags": [
          "Identity"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResendConfirmationEmailRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/identity/forgotPassword": {
      "post": {
        "tags": [
          "Identity"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPasswordRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpValidationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/identity/resetPassword": {
      "post": {
        "tags": [
          "Identity"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpValidationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/identity/manage/2fa": {
      "post": {
        "tags": [
          "Identity"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TwoFactorRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TwoFactorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpValidationProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/api/v1/identity/manage/info": {
      "get": {
        "tags": [
          "Identity"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InfoResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpValidationProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      },
      "post": {
        "tags": [
          "Identity"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InfoRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InfoResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpValidationProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/api/v1/plans": {
      "get": {
        "tags": [
          "SubscriptionEndpoints"
        ],
        "operationId": "GetPublishedSubscriptionPlans",
        "parameters": [
          {
            "name": "audienceCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countryCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/subscriptions/organisations/{organisationId}/current": {
      "get": {
        "tags": [
          "SubscriptionEndpoints"
        ],
        "operationId": "GetCurrentOrganisationSubscription",
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/subscriptions/entitlements/check": {
      "post": {
        "tags": [
          "SubscriptionEndpoints"
        ],
        "operationId": "CheckOrganisationEntitlement",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EntitlementCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/subscriptions/entitlements/usage": {
      "post": {
        "tags": [
          "SubscriptionEndpoints"
        ],
        "operationId": "RecordOrganisationEntitlementUsage",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordUsageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/upgrade": {
      "post": {
        "tags": [
          "SubscriptionEndpoints"
        ],
        "operationId": "UpgradeOrganisationSubscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePlanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/downgrade": {
      "post": {
        "tags": [
          "SubscriptionEndpoints"
        ],
        "operationId": "ScheduleOrganisationSubscriptionDowngrade",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePlanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/subscriptions/{subscriptionId}/cancel": {
      "post": {
        "tags": [
          "SubscriptionEndpoints"
        ],
        "operationId": "ScheduleOrganisationSubscriptionCancellation",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelSubscriptionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/plans": {
      "get": {
        "tags": [
          "Admin Plans"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/plans/organisations/{organisationId}": {
      "post": {
        "tags": [
          "Admin Plans"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignPlanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects": {
      "post": {
        "tags": [
          "Projects"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Projects"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/site": {
      "post": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetProjectSiteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetProjectSiteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/buildings": {
      "post": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddBuildingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/quotes": {
      "post": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQuoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/buildings/{buildingId}/storeys": {
      "post": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "buildingId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddStoreyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/storeys/{storeyId}/rooms": {
      "post": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "storeyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddRoomRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/quotes/{quoteId}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/quotes/{quoteId}/versions": {
      "post": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQuoteVersionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/quotes/{quoteId}/versions/{versionNumber}/ready": {
      "post": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "versionNumber",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/quotes/{quoteId}/versions/{versionNumber}/submit": {
      "post": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "versionNumber",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/quotes/{quoteId}/versions/{versionId}/{versionNumber}/approve": {
      "post": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "versionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "versionNumber",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/quotes/{quoteId}/progress": {
      "post": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProgressQuoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/participants": {
      "get": {
        "tags": [
          "Project Participants"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Project Participants"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddProjectParticipantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/participants/{id}/deactivate": {
      "post": {
        "tags": [
          "Project Participants"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/participants/{id}/reactivate": {
      "post": {
        "tags": [
          "Project Participants"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/gem/calculate": {
      "post": {
        "tags": [
          "Projects - GEM"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculateProjectGemRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/gem/runs": {
      "get": {
        "tags": [
          "Projects - GEM"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/gem/runs/{runId}": {
      "get": {
        "tags": [
          "Projects - GEM"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "runId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/drawing-extractions": {
      "get": {
        "tags": [
          "Drawing Extractions"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/drawing-extractions/documents/{documentId}": {
      "post": {
        "tags": [
          "Drawing Extractions"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "documentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/regulation-checks": {
      "get": {
        "tags": [
          "Site Regulation Checks"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Site Regulation Checks"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quote-materials/versions/{quoteVersionId}": {
      "get": {
        "tags": [
          "Quote Materials"
        ],
        "parameters": [
          {
            "name": "quoteVersionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quote-materials/versions/{quoteVersionId}/apply-defaults": {
      "post": {
        "tags": [
          "Quote Materials"
        ],
        "parameters": [
          {
            "name": "quoteVersionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyMaterialDefaultsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quote-materials/selections/{selectionId}/alternatives": {
      "get": {
        "tags": [
          "Quote Materials"
        ],
        "parameters": [
          {
            "name": "selectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quote-materials/selections/{selectionId}/override": {
      "put": {
        "tags": [
          "Quote Materials"
        ],
        "parameters": [
          {
            "name": "selectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OverrideMaterialSelectionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quote-materials/selections/{selectionId}/restore-default": {
      "post": {
        "tags": [
          "Quote Materials"
        ],
        "parameters": [
          {
            "name": "selectionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quote-quantities/versions/{quoteVersionId}": {
      "get": {
        "tags": [
          "Quote Quantities"
        ],
        "parameters": [
          {
            "name": "quoteVersionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quote-quantities/versions/{quoteVersionId}/items/{masterItemId}": {
      "put": {
        "tags": [
          "Quote Quantities"
        ],
        "parameters": [
          {
            "name": "quoteVersionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "masterItemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetQuoteItemQuantityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Quote Quantities"
        ],
        "parameters": [
          {
            "name": "quoteVersionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "masterItemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quotes/{quoteId}/price-from-gem": {
      "post": {
        "tags": [
          "Quote Pricing"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PriceQuoteFromGemRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quotes/versions/{quoteVersionId}/pricing-lines": {
      "get": {
        "tags": [
          "Quote Pricing"
        ],
        "parameters": [
          {
            "name": "quoteVersionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/categories": {
      "get": {
        "tags": [
          "Material Catalogue"
        ],
        "parameters": [
          {
            "name": "activeOnly",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Material Catalogue"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMaterialCategoryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/units": {
      "get": {
        "tags": [
          "Material Catalogue"
        ],
        "parameters": [
          {
            "name": "activeOnly",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Material Catalogue"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUnitOfMeasureRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/master-items": {
      "get": {
        "tags": [
          "Material Catalogue"
        ],
        "parameters": [
          {
            "name": "categoryId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "itemClass",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/MasterItemClass"
            }
          },
          {
            "name": "quantitySource",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/QuantitySource"
            }
          },
          {
            "name": "activeOnly",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "take",
            "in": "query",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Material Catalogue"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMasterItemRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/master-items/{id}": {
      "get": {
        "tags": [
          "Material Catalogue"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Material Catalogue"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMasterItemRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/category-price-rates": {
      "get": {
        "tags": [
          "Material Catalogue"
        ],
        "parameters": [
          {
            "name": "materialCategoryId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "masterItemId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "priceRegionCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Material Catalogue"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMaterialCategoryPriceRateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/category-price-rates/{id}/deactivate": {
      "post": {
        "tags": [
          "Material Catalogue"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/master-items/bulk-import": {
      "post": {
        "tags": [
          "Master Items"
        ],
        "parameters": [
          {
            "name": "dryRun",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "$ref": "#/components/schemas/IFormFile"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/starter-packs/au": {
      "get": {
        "tags": [
          "Material Catalogue"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Material Catalogue"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/units/{unitOfMeasureId}/conversions": {
      "get": {
        "tags": [
          "Unit Conversions"
        ],
        "parameters": [
          {
            "name": "unitOfMeasureId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/unit-conversions": {
      "post": {
        "tags": [
          "Unit Conversions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUnitConversionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/unit-conversions/{id}/factor": {
      "put": {
        "tags": [
          "Unit Conversions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeUnitConversionFactorRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/unit-conversions/{id}/active": {
      "post": {
        "tags": [
          "Unit Conversions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetActiveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/products": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "masterItemId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ProductStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Products"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/products/{id}": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/products/{id}/status": {
      "post": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeProductStatusRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/products/{id}/default-variant": {
      "post": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetDefaultVariantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/products/{productId}/variants": {
      "get": {
        "tags": [
          "Product Variants"
        ],
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Product Variants"
        ],
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductVariantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/product-variants/{id}": {
      "get": {
        "tags": [
          "Product Variants"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Product Variants"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductVariantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/product-variants/{id}/active": {
      "post": {
        "tags": [
          "Product Variants"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetActiveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/product-variants/{variantId}/specifications": {
      "get": {
        "tags": [
          "Product Specifications"
        ],
        "parameters": [
          {
            "name": "variantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Product Specifications"
        ],
        "parameters": [
          {
            "name": "variantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductSpecificationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/product-specifications/{id}": {
      "put": {
        "tags": [
          "Product Specifications"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductSpecificationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/products/{productId}/media": {
      "get": {
        "tags": [
          "Product Media"
        ],
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Product Media"
        ],
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductMediaRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/products/{productId}/media/upload": {
      "post": {
        "tags": [
          "Product Media"
        ],
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "file": {
                        "$ref": "#/components/schemas/IFormFile"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "properties": {
                      "title": {
                        "type": "string"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "properties": {
                      "mediaType": {
                        "type": "string"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "properties": {
                      "productVariantId": {
                        "type": "string",
                        "format": "uuid"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "properties": {
                      "displayOrder": {
                        "pattern": "^-?(?:0|[1-9]\\d*)$",
                        "type": [
                          "integer",
                          "string"
                        ],
                        "format": "int32"
                      }
                    }
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/product-media/{id}/active": {
      "post": {
        "tags": [
          "Product Media"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetActiveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/characteristics": {
      "get": {
        "tags": [
          "Characteristics"
        ],
        "parameters": [
          {
            "name": "includeInactive",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Characteristics"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCharacteristicDefinitionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/characteristics/{id}": {
      "get": {
        "tags": [
          "Characteristics"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/characteristics/{id}/active": {
      "post": {
        "tags": [
          "Characteristics"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetActiveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/characteristics/{characteristicDefinitionId}/options": {
      "get": {
        "tags": [
          "Characteristic Options"
        ],
        "parameters": [
          {
            "name": "characteristicDefinitionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Characteristic Options"
        ],
        "parameters": [
          {
            "name": "characteristicDefinitionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCharacteristicOptionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/characteristic-options/{id}/active": {
      "post": {
        "tags": [
          "Characteristic Options"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetActiveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/master-items/{masterItemId}/characteristics": {
      "get": {
        "tags": [
          "Master Item Characteristics"
        ],
        "parameters": [
          {
            "name": "masterItemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Master Item Characteristics"
        ],
        "parameters": [
          {
            "name": "masterItemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignMasterItemCharacteristicRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/master-item-characteristics/{id}/applicability": {
      "put": {
        "tags": [
          "Master Item Characteristics"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeApplicabilityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/master-item-characteristics/{id}/active": {
      "post": {
        "tags": [
          "Master Item Characteristics"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetActiveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/master-items/{masterItemId}/room-assignments": {
      "get": {
        "tags": [
          "Master Item Room Assignments"
        ],
        "parameters": [
          {
            "name": "masterItemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Master Item Room Assignments"
        ],
        "parameters": [
          {
            "name": "masterItemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignMasterItemRoomRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/rooms/{roomReferenceTypeId}/master-item-assignments": {
      "get": {
        "tags": [
          "Master Item Room Assignments"
        ],
        "parameters": [
          {
            "name": "roomReferenceTypeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/master-item-room-assignments/{id}/display-order": {
      "put": {
        "tags": [
          "Master Item Room Assignments"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeDisplayOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/master-item-room-assignments/{id}/active": {
      "post": {
        "tags": [
          "Master Item Room Assignments"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetActiveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/product-variants/{variantId}/quality-classification/active": {
      "get": {
        "tags": [
          "Product Quality Classification"
        ],
        "parameters": [
          {
            "name": "variantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/product-variants/{variantId}/quality-classification": {
      "post": {
        "tags": [
          "Product Quality Classification"
        ],
        "parameters": [
          {
            "name": "variantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClassifyProductQualityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/supplier-offers": {
      "get": {
        "tags": [
          "Supplier Offers"
        ],
        "parameters": [
          {
            "name": "supplierOrganisationId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "marketCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Supplier Offers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSupplierOfferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/supplier-offers/{id}/commercial-terms": {
      "put": {
        "tags": [
          "Supplier Offers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSupplierOfferCommercialTermsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/supplier-offers/{id}/status": {
      "post": {
        "tags": [
          "Supplier Offers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeSupplierOfferStatusRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/supplier-offers/recommend": {
      "post": {
        "tags": [
          "Supplier Offers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecommendSupplierOffersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/supplier-offers/bulk-import": {
      "post": {
        "tags": [
          "Supplier Offers"
        ],
        "parameters": [
          {
            "name": "supplierOrganisationId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "$ref": "#/components/schemas/IFormFile"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/supplier-offers/export": {
      "get": {
        "tags": [
          "Supplier Offers"
        ],
        "parameters": [
          {
            "name": "supplierOrganisationId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "marketCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/market-prices/bulk-import": {
      "post": {
        "tags": [
          "Market Prices"
        ],
        "parameters": [
          {
            "name": "dryRun",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "supplierOrganisationId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "$ref": "#/components/schemas/IFormFile"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/organisations/{organisationId}/market-prices": {
      "get": {
        "tags": [
          "Supplier Market Prices"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Supplier Market Prices"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordSupplierMarketPriceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/organisations/{organisationId}/market-prices/import": {
      "post": {
        "tags": [
          "Supplier Market Prices"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dryRun",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "$ref": "#/components/schemas/IFormFile"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/supplier-offers/ai-sourced": {
      "post": {
        "tags": [
          "AI Sourced Offers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProposeAiSourcedOfferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "AI Sourced Offers"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/ai-sourcing/runs": {
      "post": {
        "tags": [
          "AI Sourcing Runs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RunAiSourcingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "AI Sourcing Runs"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/ai-sourcing/schedules": {
      "get": {
        "tags": [
          "AI Sourcing Runs"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "AI Sourcing Runs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveAiSourcingScheduleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/materials/ai-sourcing/schedules/{scheduleId}": {
      "put": {
        "tags": [
          "AI Sourcing Runs"
        ],
        "parameters": [
          {
            "name": "scheduleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveAiSourcingScheduleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "AI Sourcing Runs"
        ],
        "parameters": [
          {
            "name": "scheduleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/geocoding/status": {
      "get": {
        "tags": [
          "Geocoding"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/geocoding/search": {
      "get": {
        "tags": [
          "Geocoding"
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countryCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/builder-readiness/quotes/{quoteId}/evaluate": {
      "post": {
        "tags": [
          "Builder Readiness"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/builder-readiness/projects/{projectId}/start-sourcing": {
      "post": {
        "tags": [
          "Builder Readiness"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quote-drafts/quotes/{quoteId}": {
      "post": {
        "tags": [
          "Quote Drafts"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveQuoteDraftRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quote-drafts/quotes/{quoteId}/latest": {
      "get": {
        "tags": [
          "Quote Drafts"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quote-drafts/quotes/{quoteId}/history": {
      "get": {
        "tags": [
          "Quote Drafts"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "take",
            "in": "query",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/quotes/{quoteId}/labour/estimate": {
      "post": {
        "tags": [
          "Quote Labour"
        ],
        "parameters": [
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteLabourEstimateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/labour/trades": {
      "get": {
        "tags": [
          "Labour and Installation"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Labour and Installation"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTradeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/labour/rates": {
      "get": {
        "tags": [
          "Labour and Installation"
        ],
        "parameters": [
          {
            "name": "tradeId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "countryCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stateOrRegion",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Labour and Installation"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTradeRateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/labour/activities": {
      "get": {
        "tags": [
          "Labour and Installation"
        ],
        "parameters": [
          {
            "name": "masterItemId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tradeId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Labour and Installation"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInstallationActivityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/labour/calculate": {
      "post": {
        "tags": [
          "Labour and Installation"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LabourCalculationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/security/audit-events": {
      "get": {
        "tags": [
          "Security"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/organisations": {
      "post": {
        "tags": [
          "Organisations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrganisationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Organisations"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/organisations/{organisationId}/members/lookup": {
      "get": {
        "tags": [
          "Organisations"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "email",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/organisations/{organisationId}/members": {
      "get": {
        "tags": [
          "Organisations"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Organisations"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddOrganisationMemberRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/organisations/{organisationId}/members/{membershipId}/suspend": {
      "post": {
        "tags": [
          "Organisations"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "membershipId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/organisations/{organisationId}/members/{membershipId}/reactivate": {
      "post": {
        "tags": [
          "Organisations"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "membershipId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/roles": {
      "get": {
        "tags": [
          "Admin"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Admin"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/roles/{roleId}/permissions": {
      "post": {
        "tags": [
          "Admin"
        ],
        "parameters": [
          {
            "name": "roleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GrantPermissionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/roles/{roleId}/permissions/{permissionCode}": {
      "delete": {
        "tags": [
          "Admin"
        ],
        "parameters": [
          {
            "name": "roleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "permissionCode",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/permissions": {
      "get": {
        "tags": [
          "Admin"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/users": {
      "get": {
        "tags": [
          "Admin"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/role-assignments": {
      "post": {
        "tags": [
          "Admin"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleAssignmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/role-assignments/{id}/revoke": {
      "post": {
        "tags": [
          "Admin"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/role-assignments/{id}/reactivate": {
      "post": {
        "tags": [
          "Admin"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/organisations": {
      "get": {
        "tags": [
          "Admin"
        ],
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/OrganisationType"
            }
          },
          {
            "name": "verificationStatus",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/OrganisationVerificationStatus"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "take",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/organisations/{organisationId}/verify": {
      "post": {
        "tags": [
          "Admin"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/VerifyOrganisationRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/organisations/{organisationId}/reject": {
      "post": {
        "tags": [
          "Admin"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectOrganisationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/organisations/{organisationId}/return-to-pending": {
      "post": {
        "tags": [
          "Admin"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/organisations/{organisationId}/suspend": {
      "post": {
        "tags": [
          "Admin"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/organisations/{organisationId}/reactivate": {
      "post": {
        "tags": [
          "Admin"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/support/tickets": {
      "post": {
        "tags": [
          "Support"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSupportTicketRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Support"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/support/tickets/all": {
      "get": {
        "tags": [
          "Support"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/support/tickets/{id}": {
      "get": {
        "tags": [
          "Support"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/support/tickets/{id}/start-progress": {
      "post": {
        "tags": [
          "Support"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/support/tickets/{id}/resolve": {
      "post": {
        "tags": [
          "Support"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResolveSupportTicketRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/support/tickets/{id}/close": {
      "post": {
        "tags": [
          "Support"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/organisations/{organisationId}/builder-profile": {
      "get": {
        "tags": [
          "Builder Profile"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Builder Profile"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetBuilderProfileRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/organisations/{organisationId}/builder-profile/details": {
      "put": {
        "tags": [
          "Builder Profile"
        ],
        "parameters": [
          {
            "name": "organisationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetBuilderProfileDetailsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notifications/preferences": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notifications/preferences/{channel}": {
      "put": {
        "tags": [
          "Notifications"
        ],
        "parameters": [
          {
            "name": "channel",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/NotificationTemplateChannel"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetNotificationPreferenceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notifications": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "parameters": [
          {
            "name": "unreadOnly",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "take",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notifications/unread-count": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notifications/{id}/read": {
      "post": {
        "tags": [
          "Notifications"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/notifications/read-all": {
      "post": {
        "tags": [
          "Notifications"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/legal/documents": {
      "get": {
        "tags": [
          "Legal"
        ],
        "parameters": [
          {
            "name": "market",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/legal/documents/{market}/{slug}": {
      "get": {
        "tags": [
          "Legal"
        ],
        "parameters": [
          {
            "name": "market",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/legal/acceptances/me": {
      "get": {
        "tags": [
          "Legal"
        ],
        "parameters": [
          {
            "name": "market",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/legal/acceptances": {
      "post": {
        "tags": [
          "Legal"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptLegalDocumentsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/construction-systems": {
      "get": {
        "tags": [
          "Configuration Centre - Construction Systems"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - Construction Systems"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConstructionSystemRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/construction-systems/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - Construction Systems"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/construction-systems/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - Construction Systems"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitConstructionSystemForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/construction-systems/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - Construction Systems"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/construction-systems/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - Construction Systems"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishConstructionSystemRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/construction-systems/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - Construction Systems"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/reference-types": {
      "get": {
        "tags": [
          "Configuration Centre - Reference Types"
        ],
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ReferenceTypeCategory"
            }
          },
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - Reference Types"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateReferenceTypeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/reference-types/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - Reference Types"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/reference-types/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - Reference Types"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitReferenceTypeForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/reference-types/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - Reference Types"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/reference-types/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - Reference Types"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishReferenceTypeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/reference-types/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - Reference Types"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/countries": {
      "get": {
        "tags": [
          "Configuration Centre - Countries"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - Countries"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCountryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/countries/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - Countries"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/countries/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - Countries"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitCountryForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/countries/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - Countries"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/countries/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - Countries"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishCountryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/countries/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - Countries"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/currencies": {
      "get": {
        "tags": [
          "Configuration Centre - Currencies"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - Currencies"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCurrencyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/currencies/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - Currencies"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/currencies/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - Currencies"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitCurrencyForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/currencies/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - Currencies"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/currencies/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - Currencies"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishCurrencyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/currencies/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - Currencies"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/regions": {
      "get": {
        "tags": [
          "Configuration Centre - Regions"
        ],
        "parameters": [
          {
            "name": "countryCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - Regions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRegionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/regions/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/regions/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitRegionForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/regions/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/regions/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishRegionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/regions/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/languages": {
      "get": {
        "tags": [
          "Configuration Centre - Languages"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - Languages"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLanguageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/languages/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - Languages"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/languages/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - Languages"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitLanguageForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/languages/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - Languages"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/languages/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - Languages"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishLanguageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/languages/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - Languages"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/taxes": {
      "get": {
        "tags": [
          "Configuration Centre - Taxes"
        ],
        "parameters": [
          {
            "name": "countryCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - Taxes"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTaxRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/taxes/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - Taxes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/taxes/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - Taxes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitTaxForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/taxes/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - Taxes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/taxes/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - Taxes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishTaxRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/taxes/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - Taxes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/price-regions": {
      "get": {
        "tags": [
          "Configuration Centre - Price Regions"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - Price Regions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePriceRegionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/price-regions/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - Price Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/price-regions/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - Price Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitPriceRegionForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/price-regions/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - Price Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/price-regions/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - Price Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishPriceRegionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/price-regions/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - Price Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/notification-templates": {
      "get": {
        "tags": [
          "Configuration Centre - Notification Templates"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - Notification Templates"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateNotificationTemplateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/notification-templates/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - Notification Templates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/notification-templates/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - Notification Templates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitNotificationTemplateForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/notification-templates/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - Notification Templates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/notification-templates/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - Notification Templates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishNotificationTemplateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/notification-templates/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - Notification Templates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-formulas": {
      "get": {
        "tags": [
          "Configuration Centre - GEM Formulas"
        ],
        "parameters": [
          {
            "name": "family",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/GemFormulaFamily"
            }
          },
          {
            "name": "ruleId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - GEM Formulas"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGemFormulaRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-formulas/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - GEM Formulas"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Configuration Centre - GEM Formulas"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateGemFormulaDraftRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-formulas/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - GEM Formulas"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitGemFormulaForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-formulas/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - GEM Formulas"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-formulas/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - GEM Formulas"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishGemFormulaRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-formulas/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - GEM Formulas"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-formulas/calculate": {
      "post": {
        "tags": [
          "Configuration Centre - GEM Formulas"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalculateGemFormulasRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-coefficients": {
      "get": {
        "tags": [
          "Configuration Centre - GEM Coefficients"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - GEM Coefficients"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGemCoefficientRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-coefficients/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - GEM Coefficients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Configuration Centre - GEM Coefficients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateGemCoefficientDraftRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-coefficients/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - GEM Coefficients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitGemCoefficientForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-coefficients/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - GEM Coefficients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-coefficients/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - GEM Coefficients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishGemCoefficientRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/gem-coefficients/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - GEM Coefficients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/quote-wizard-steps": {
      "get": {
        "tags": [
          "Configuration Centre - Quote Wizard Steps"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - Quote Wizard Steps"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQuoteWizardStepRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/quote-wizard-steps/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - Quote Wizard Steps"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/quote-wizard-steps/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - Quote Wizard Steps"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitQuoteWizardStepForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/quote-wizard-steps/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - Quote Wizard Steps"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/quote-wizard-steps/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - Quote Wizard Steps"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishQuoteWizardStepRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/quote-wizard-steps/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - Quote Wizard Steps"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/quality-packages": {
      "get": {
        "tags": [
          "Configuration Centre - Quality Packages"
        ],
        "parameters": [
          {
            "name": "countryCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "qualityLevel",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/FinishingQualityLevel"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - Quality Packages"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQualityPackageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/quality-packages/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - Quality Packages"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/quality-packages/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - Quality Packages"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitQualityPackageForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/quality-packages/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - Quality Packages"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/quality-packages/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - Quality Packages"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishQualityPackageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/quality-packages/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - Quality Packages"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/marketplace-rules": {
      "get": {
        "tags": [
          "Configuration Centre - Marketplace Rules"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ConfigurationRecordStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Configuration Centre - Marketplace Rules"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMarketplaceRuleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/marketplace-rules/{id}": {
      "get": {
        "tags": [
          "Configuration Centre - Marketplace Rules"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/marketplace-rules/{id}/submit-for-review": {
      "post": {
        "tags": [
          "Configuration Centre - Marketplace Rules"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitMarketplaceRuleForReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/marketplace-rules/{id}/approve": {
      "post": {
        "tags": [
          "Configuration Centre - Marketplace Rules"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/marketplace-rules/{id}/publish": {
      "post": {
        "tags": [
          "Configuration Centre - Marketplace Rules"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishMarketplaceRuleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/configuration/marketplace-rules/{id}/retire": {
      "post": {
        "tags": [
          "Configuration Centre - Marketplace Rules"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/documents": {
      "get": {
        "tags": [
          "Project Documents"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "Project Documents"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "file": {
                        "$ref": "#/components/schemas/IFormFile"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "properties": {
                      "title": {
                        "type": "string"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "properties": {
                      "description": {
                        "type": "string"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "properties": {
                      "sharedWithBuilders": {
                        "type": "string"
                      }
                    }
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/documents/{documentId}/download": {
      "get": {
        "tags": [
          "Project Documents"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "documentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/documents/{documentId}/sharing": {
      "post": {
        "tags": [
          "Project Documents"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "documentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetDocumentSharingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/projects/{projectId}/documents/{documentId}": {
      "delete": {
        "tags": [
          "Project Documents"
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "documentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tenant/context": {
      "get": {
        "tags": [
          "GBQ.Api"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantContextResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AcceptLegalDocumentsRequest": {
        "required": [
          "market",
          "slugs"
        ],
        "type": "object",
        "properties": {
          "market": {
            "type": [
              "null",
              "string"
            ]
          },
          "slugs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AccessTokenResponse": {
        "required": [
          "accessToken",
          "expiresIn",
          "refreshToken"
        ],
        "type": "object",
        "properties": {
          "tokenType": {
            "type": [
              "null",
              "string"
            ]
          },
          "accessToken": {
            "type": "string"
          },
          "expiresIn": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "refreshToken": {
            "type": "string"
          }
        }
      },
      "AddBuildingRequest": {
        "required": [
          "name",
          "sequence",
          "grossFloorAreaM2"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "sequence": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "grossFloorAreaM2": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "referenceTypeId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "AddOrganisationMemberRequest": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          }
        }
      },
      "AddProjectParticipantRequest": {
        "required": [
          "organisationId",
          "userId",
          "role"
        ],
        "type": "object",
        "properties": {
          "organisationId": {
            "type": "string",
            "format": "uuid"
          },
          "userId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "role": {
            "$ref": "#/components/schemas/ParticipantRole"
          }
        }
      },
      "AddRoomRequest": {
        "required": [
          "code",
          "name",
          "quantity",
          "areaM2",
          "perimeterM",
          "ceilingHeightM"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "areaM2": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "perimeterM": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "ceilingHeightM": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "referenceTypeId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "AddStoreyRequest": {
        "required": [
          "name",
          "levelNumber",
          "floorAreaM2"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "levelNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "floorAreaM2": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "referenceTypeId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "ApplyMaterialDefaultsRequest": {
        "required": [
          "qualityLevel",
          "countryCode"
        ],
        "type": "object",
        "properties": {
          "qualityLevel": {
            "$ref": "#/components/schemas/FinishingQualityLevel"
          },
          "countryCode": {
            "type": "string"
          }
        }
      },
      "AssignMasterItemCharacteristicRequest": {
        "required": [
          "characteristicDefinitionId",
          "applicability",
          "unitOfMeasureId",
          "displayOrder",
          "affectsQuantity",
          "affectsMaterialCost",
          "affectsInstallationCost",
          "affectsWaste",
          "affectsProductivity"
        ],
        "type": "object",
        "properties": {
          "characteristicDefinitionId": {
            "type": "string",
            "format": "uuid"
          },
          "applicability": {
            "$ref": "#/components/schemas/CharacteristicApplicability"
          },
          "unitOfMeasureId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "affectsQuantity": {
            "type": "boolean"
          },
          "affectsMaterialCost": {
            "type": "boolean"
          },
          "affectsInstallationCost": {
            "type": "boolean"
          },
          "affectsWaste": {
            "type": "boolean"
          },
          "affectsProductivity": {
            "type": "boolean"
          }
        }
      },
      "AssignMasterItemRoomRequest": {
        "required": [
          "roomReferenceTypeId"
        ],
        "type": "object",
        "properties": {
          "roomReferenceTypeId": {
            "type": "string",
            "format": "uuid"
          },
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32",
            "default": 0
          }
        }
      },
      "AssignPlanRequest": {
        "required": [
          "planCode"
        ],
        "type": "object",
        "properties": {
          "planCode": {
            "type": "string"
          }
        }
      },
      "BuilderResponseType": {
        "type": "integer"
      },
      "CalculateGemFormulasRequest": {
        "required": [
          "variables"
        ],
        "type": "object",
        "properties": {
          "variables": {
            "type": "object"
          },
          "includeUnpublished": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "CalculateProjectGemRequest": {
        "required": [
          "variables"
        ],
        "type": "object",
        "properties": {
          "variables": {
            "type": [
              "null",
              "object"
            ]
          }
        }
      },
      "CancelSubscriptionRequest": {
        "required": [
          "requestedByUserId",
          "reason"
        ],
        "type": "object",
        "properties": {
          "requestedByUserId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "reason": {
            "type": "string"
          }
        }
      },
      "ChangeApplicabilityRequest": {
        "required": [
          "applicability"
        ],
        "type": "object",
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/CharacteristicApplicability"
          }
        }
      },
      "ChangeDisplayOrderRequest": {
        "required": [
          "displayOrder"
        ],
        "type": "object",
        "properties": {
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "ChangePlanRequest": {
        "required": [
          "targetPlanRevisionId",
          "requestedByUserId",
          "reason"
        ],
        "type": "object",
        "properties": {
          "targetPlanRevisionId": {
            "type": "string",
            "format": "uuid"
          },
          "requestedByUserId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "reason": {
            "type": "string"
          }
        }
      },
      "ChangeProductStatusRequest": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/ProductStatus"
          }
        }
      },
      "ChangeSupplierOfferStatusRequest": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/SupplierOfferStatus"
          }
        }
      },
      "ChangeUnitConversionFactorRequest": {
        "required": [
          "factor"
        ],
        "type": "object",
        "properties": {
          "factor": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "CharacteristicApplicability": {
        "type": "integer"
      },
      "CharacteristicValueType": {
        "type": "integer"
      },
      "ClassifyProductQualityRequest": {
        "required": [
          "unitPrice",
          "currencyCode",
          "marketCode",
          "priceBands",
          "persistAssignment",
          "markPreferred"
        ],
        "type": "object",
        "properties": {
          "unitPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "currencyCode": {
            "type": "string"
          },
          "marketCode": {
            "type": "string"
          },
          "priceBands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductQualityPriceBand"
            }
          },
          "persistAssignment": {
            "type": "boolean"
          },
          "markPreferred": {
            "type": "boolean"
          }
        }
      },
      "ConfigurationRecordStatus": {
        "type": "integer"
      },
      "CreateCharacteristicDefinitionRequest": {
        "required": [
          "code",
          "name",
          "valueType",
          "defaultUnitOfMeasureId",
          "description",
          "isSearchable",
          "isComparable",
          "canBeGemInput",
          "canBeGemOutput"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "valueType": {
            "$ref": "#/components/schemas/CharacteristicValueType"
          },
          "defaultUnitOfMeasureId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "isSearchable": {
            "type": "boolean"
          },
          "isComparable": {
            "type": "boolean"
          },
          "canBeGemInput": {
            "type": "boolean"
          },
          "canBeGemOutput": {
            "type": "boolean"
          }
        }
      },
      "CreateCharacteristicOptionRequest": {
        "required": [
          "code",
          "label",
          "displayOrder"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "CreateConstructionSystemRequest": {
        "required": [
          "code",
          "name",
          "description",
          "countryCode",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "countryCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateCountryRequest": {
        "required": [
          "code",
          "name",
          "defaultCurrencyCode",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "defaultCurrencyCode": {
            "type": "string"
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateCurrencyRequest": {
        "required": [
          "code",
          "name",
          "symbol",
          "decimalPlaces",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "decimalPlaces": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateGemCoefficientRequest": {
        "required": [
          "code",
          "name",
          "activeValue",
          "lowValue",
          "highValue",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "activeValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lowValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "highValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateGemFormulaRequest": {
        "required": [
          "ruleId",
          "family",
          "name",
          "formulaExpression",
          "confidence",
          "reviewNote",
          "targetMasterItemId",
          "dependsOnRuleIds",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "ruleId": {
            "type": "string"
          },
          "family": {
            "$ref": "#/components/schemas/GemFormulaFamily"
          },
          "name": {
            "type": "string"
          },
          "formulaExpression": {
            "type": "string"
          },
          "confidence": {
            "$ref": "#/components/schemas/GemFormulaConfidence"
          },
          "reviewNote": {
            "type": [
              "null",
              "string"
            ]
          },
          "targetMasterItemId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "dependsOnRuleIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateInstallationActivityRequest": {
        "required": [
          "code",
          "name",
          "tradeId",
          "masterItemId",
          "unitCode",
          "labourHoursPerUnit",
          "minimumLabourHours"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tradeId": {
            "type": "string",
            "format": "uuid"
          },
          "masterItemId": {
            "type": "string",
            "format": "uuid"
          },
          "unitCode": {
            "type": "string"
          },
          "labourHoursPerUnit": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "minimumLabourHours": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "CreateLanguageRequest": {
        "required": [
          "code",
          "name",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateMarketplaceRuleRequest": {
        "required": [
          "code",
          "name",
          "responseWindowDays",
          "maxRoundsPerQuote",
          "reviseAndResendCooldownDays",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "responseWindowDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maxRoundsPerQuote": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "reviseAndResendCooldownDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateMasterItemRequest": {
        "required": [
          "legacyId",
          "code",
          "name",
          "itemClass",
          "quantitySource",
          "optionCount",
          "supportsDefaults",
          "supportsFormula",
          "categoryId",
          "unitOfMeasureId"
        ],
        "type": "object",
        "properties": {
          "legacyId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "itemClass": {
            "$ref": "#/components/schemas/MasterItemClass"
          },
          "quantitySource": {
            "$ref": "#/components/schemas/QuantitySource"
          },
          "optionCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "supportsDefaults": {
            "type": "boolean"
          },
          "supportsFormula": {
            "type": "boolean"
          },
          "categoryId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "unitOfMeasureId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "gemRole": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/MasterItemGemRole"
              }
            ]
          }
        }
      },
      "CreateMaterialCategoryPriceRateRequest": {
        "required": [
          "materialCategoryId",
          "priceRegionCode",
          "currencyCode",
          "unitRate",
          "effectiveFrom",
          "effectiveTo",
          "source"
        ],
        "type": "object",
        "properties": {
          "materialCategoryId": {
            "type": "string",
            "format": "uuid"
          },
          "priceRegionCode": {
            "type": "string"
          },
          "currencyCode": {
            "type": "string"
          },
          "unitRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          },
          "effectiveTo": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "source": {
            "type": [
              "null",
              "string"
            ]
          },
          "masterItemId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateMaterialCategoryRequest": {
        "required": [
          "code",
          "name",
          "displayOrder"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "CreateNotificationTemplateRequest": {
        "required": [
          "code",
          "channel",
          "locale",
          "subject",
          "body",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "channel": {
            "$ref": "#/components/schemas/NotificationTemplateChannel"
          },
          "locale": {
            "type": "string"
          },
          "subject": {
            "type": [
              "null",
              "string"
            ]
          },
          "body": {
            "type": "string"
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateOrganisationRequest": {
        "required": [
          "tenantCode",
          "code",
          "name",
          "type",
          "countryCode"
        ],
        "type": "object",
        "properties": {
          "tenantCode": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/OrganisationType"
          },
          "countryCode": {
            "type": "string"
          }
        }
      },
      "CreatePriceRegionRequest": {
        "required": [
          "code",
          "name",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateProductMediaRequest": {
        "required": [
          "mediaType",
          "title",
          "uri",
          "productVariantId",
          "displayOrder"
        ],
        "type": "object",
        "properties": {
          "mediaType": {
            "$ref": "#/components/schemas/ProductMediaType"
          },
          "title": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          },
          "productVariantId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "CreateProductRequest": {
        "required": [
          "masterItemId",
          "code",
          "name",
          "manufacturer",
          "brand",
          "series",
          "description",
          "countryOfOriginCode",
          "barcode"
        ],
        "type": "object",
        "properties": {
          "masterItemId": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "manufacturer": {
            "type": [
              "null",
              "string"
            ]
          },
          "brand": {
            "type": [
              "null",
              "string"
            ]
          },
          "series": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "countryOfOriginCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "barcode": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CreateProductSpecificationRequest": {
        "required": [
          "code",
          "name",
          "value",
          "unit",
          "standardReference",
          "displayOrder"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "unit": {
            "type": [
              "null",
              "string"
            ]
          },
          "standardReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "CreateProductVariantRequest": {
        "required": [
          "unitOfMeasureId",
          "code",
          "name",
          "sku",
          "barcode",
          "colour",
          "finish",
          "sizeDescription",
          "packQuantity",
          "coveragePerPack",
          "weightPerPackKg"
        ],
        "type": "object",
        "properties": {
          "unitOfMeasureId": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sku": {
            "type": [
              "null",
              "string"
            ]
          },
          "barcode": {
            "type": [
              "null",
              "string"
            ]
          },
          "colour": {
            "type": [
              "null",
              "string"
            ]
          },
          "finish": {
            "type": [
              "null",
              "string"
            ]
          },
          "sizeDescription": {
            "type": [
              "null",
              "string"
            ]
          },
          "packQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "coveragePerPack": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "weightPerPackKg": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "CreateProjectRequest": {
        "required": [
          "organisationId",
          "code",
          "name",
          "countryCode",
          "currencyCode"
        ],
        "type": "object",
        "properties": {
          "organisationId": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "currencyCode": {
            "type": "string"
          }
        }
      },
      "CreateQualityPackageRequest": {
        "required": [
          "countryCode",
          "qualityLevel",
          "name",
          "description",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string"
          },
          "qualityLevel": {
            "$ref": "#/components/schemas/FinishingQualityLevel"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateQuoteRequest": {
        "required": [
          "pathway"
        ],
        "type": "object",
        "properties": {
          "pathway": {
            "$ref": "#/components/schemas/QuotePathway"
          }
        }
      },
      "CreateQuoteVersionRequest": {
        "required": [
          "currencyCode",
          "subtotal",
          "taxAmount",
          "totalAmount",
          "snapshotJson"
        ],
        "type": "object",
        "properties": {
          "currencyCode": {
            "type": "string"
          },
          "subtotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "taxAmount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalAmount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "snapshotJson": {
            "type": "string"
          }
        }
      },
      "CreateQuoteWizardStepRequest": {
        "required": [
          "code",
          "stepNumber",
          "name",
          "description",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "stepNumber": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateReferenceTypeRequest": {
        "required": [
          "category",
          "code",
          "name",
          "description",
          "countryCode",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "category": {
            "$ref": "#/components/schemas/ReferenceTypeCategory"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "countryCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateRegionRequest": {
        "required": [
          "countryCode",
          "code",
          "name",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateRoleAssignmentRequest": {
        "required": [
          "userId",
          "roleCode"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "roleCode": {
            "type": "string"
          }
        }
      },
      "CreateRoleRequest": {
        "required": [
          "code",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "CreateSupplierOfferRequest": {
        "required": [
          "supplierOrganisationId",
          "productVariantId",
          "code",
          "marketCode",
          "currencyCode",
          "unitPrice",
          "listPrice",
          "minimumOrderQuantity",
          "stockStatus",
          "availableQuantity",
          "leadTimeDays",
          "validFrom",
          "validTo",
          "isPreferred",
          "supplierProductCode",
          "deliveryTerms",
          "notes"
        ],
        "type": "object",
        "properties": {
          "supplierOrganisationId": {
            "type": "string",
            "format": "uuid"
          },
          "productVariantId": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": "string"
          },
          "marketCode": {
            "type": "string"
          },
          "currencyCode": {
            "type": "string"
          },
          "unitPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "listPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "minimumOrderQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "stockStatus": {
            "$ref": "#/components/schemas/SupplierStockStatus"
          },
          "availableQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "leadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "validFrom": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "validTo": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "isPreferred": {
            "type": "boolean"
          },
          "supplierProductCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "deliveryTerms": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CreateSupportTicketRequest": {
        "required": [
          "priority",
          "subject",
          "description",
          "projectId"
        ],
        "type": "object",
        "properties": {
          "priority": {
            "$ref": "#/components/schemas/SupportPriority"
          },
          "subject": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "projectId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateTaxRequest": {
        "required": [
          "countryCode",
          "code",
          "name",
          "ratePercentage",
          "previousVersionId"
        ],
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "ratePercentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "previousVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "CreateTradeRateRequest": {
        "required": [
          "tradeId",
          "countryCode",
          "stateOrRegion",
          "locality",
          "currencyCode",
          "hourlyRate",
          "effectiveFrom",
          "effectiveTo",
          "source"
        ],
        "type": "object",
        "properties": {
          "tradeId": {
            "type": "string",
            "format": "uuid"
          },
          "countryCode": {
            "type": "string"
          },
          "stateOrRegion": {
            "type": "string"
          },
          "locality": {
            "type": [
              "null",
              "string"
            ]
          },
          "currencyCode": {
            "type": "string"
          },
          "hourlyRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          },
          "effectiveTo": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "source": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CreateTradeRequest": {
        "required": [
          "code",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "CreateUnitConversionRequest": {
        "required": [
          "fromUnitOfMeasureId",
          "toUnitOfMeasureId",
          "factor"
        ],
        "type": "object",
        "properties": {
          "fromUnitOfMeasureId": {
            "type": "string",
            "format": "uuid"
          },
          "toUnitOfMeasureId": {
            "type": "string",
            "format": "uuid"
          },
          "factor": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "CreateUnitOfMeasureRequest": {
        "required": [
          "code",
          "name",
          "symbol"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          }
        }
      },
      "DeclineSelectionRequest": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          }
        }
      },
      "EntitlementCheckRequest": {
        "required": [
          "organisationId",
          "entitlementCode",
          "requestedQuantity",
          "referenceId"
        ],
        "type": "object",
        "properties": {
          "organisationId": {
            "type": "string",
            "format": "uuid"
          },
          "entitlementCode": {
            "type": "string"
          },
          "requestedQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "referenceId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "FinishingQualityLevel": {
        "type": "integer"
      },
      "ForgotPasswordRequest": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          }
        }
      },
      "GemFormulaConfidence": {
        "type": "integer"
      },
      "GemFormulaFamily": {
        "type": "integer"
      },
      "GrantPermissionRequest": {
        "required": [
          "permissionCode"
        ],
        "type": "object",
        "properties": {
          "permissionCode": {
            "type": "string"
          }
        }
      },
      "HttpValidationProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "null",
              "string"
            ]
          },
          "title": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "detail": {
            "type": [
              "null",
              "string"
            ]
          },
          "instance": {
            "type": [
              "null",
              "string"
            ]
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      },
      "IFormFile": {
        "type": "string",
        "format": "binary"
      },
      "InfoRequest": {
        "type": "object",
        "properties": {
          "newEmail": {
            "type": [
              "null",
              "string"
            ]
          },
          "newPassword": {
            "type": [
              "null",
              "string"
            ]
          },
          "oldPassword": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "InfoResponse": {
        "required": [
          "email",
          "isEmailConfirmed"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "isEmailConfirmed": {
            "type": "boolean"
          }
        }
      },
      "InviteBuilderRequest": {
        "required": [
          "builderOrganisationId"
        ],
        "type": "object",
        "properties": {
          "builderOrganisationId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "LabourCalculationRequest": {
        "required": [
          "installationActivityId",
          "quantity",
          "projectCondition",
          "countryCode",
          "stateOrRegion",
          "locality",
          "effectiveDate"
        ],
        "type": "object",
        "properties": {
          "installationActivityId": {
            "type": "string",
            "format": "uuid"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "projectCondition": {
            "$ref": "#/components/schemas/ProjectCondition"
          },
          "countryCode": {
            "type": "string"
          },
          "stateOrRegion": {
            "type": "string"
          },
          "locality": {
            "type": [
              "null",
              "string"
            ]
          },
          "effectiveDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          }
        }
      },
      "LoginRequest": {
        "required": [
          "email",
          "password"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "twoFactorCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "twoFactorRecoveryCode": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "MasterItemClass": {
        "type": "integer"
      },
      "MasterItemGemRole": {
        "type": "integer"
      },
      "MaterialQualityProfile": {
        "type": "integer"
      },
      "MaterialSelectionSource": {
        "type": "integer"
      },
      "NotificationTemplateChannel": {
        "type": "integer"
      },
      "OrganisationType": {
        "type": "integer"
      },
      "OrganisationVerificationStatus": {
        "type": "integer"
      },
      "OverrideMaterialSelectionRequest": {
        "required": [
          "materialProductId",
          "source",
          "reason"
        ],
        "type": "object",
        "properties": {
          "materialProductId": {
            "type": "string",
            "format": "uuid"
          },
          "source": {
            "$ref": "#/components/schemas/MaterialSelectionSource"
          },
          "reason": {
            "type": [
              "null",
              "string"
            ]
          },
          "actorUserId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "ParticipantRole": {
        "type": "integer"
      },
      "PriceQuoteFromGemRequest": {
        "required": [
          "gemCalculationRunId",
          "pathway",
          "priceRegionCode",
          "currencyCode",
          "sourceQuoteVersionId",
          "excludedMasterItemIds"
        ],
        "type": "object",
        "properties": {
          "gemCalculationRunId": {
            "type": "string",
            "format": "uuid"
          },
          "pathway": {
            "$ref": "#/components/schemas/QuotePathway"
          },
          "priceRegionCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "currencyCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "sourceQuoteVersionId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "excludedMasterItemIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "projectCondition": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ProjectCondition"
              }
            ]
          }
        }
      },
      "ProductMediaType": {
        "type": "integer"
      },
      "ProductQualityPriceBand": {
        "required": [
          "qualityProfile",
          "minimumUnitPrice"
        ],
        "type": "object",
        "properties": {
          "qualityProfile": {
            "$ref": "#/components/schemas/MaterialQualityProfile"
          },
          "minimumUnitPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "maximumUnitPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "priority": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32",
            "default": 0
          }
        }
      },
      "ProductStatus": {
        "type": "integer"
      },
      "ProgressQuoteRequest": {
        "required": [
          "pathway"
        ],
        "type": "object",
        "properties": {
          "pathway": {
            "$ref": "#/components/schemas/QuotePathway"
          }
        }
      },
      "ProjectCondition": {
        "type": "integer"
      },
      "ProposeAiSourcedOfferRequest": {
        "required": [
          "supplierOrganisationId",
          "productVariantId",
          "code",
          "marketCode",
          "currencyCode",
          "unitPrice",
          "sourceUrl",
          "sourceCapturedAt",
          "matchConfidence"
        ],
        "type": "object",
        "properties": {
          "supplierOrganisationId": {
            "type": "string",
            "format": "uuid"
          },
          "productVariantId": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": "string"
          },
          "marketCode": {
            "type": "string"
          },
          "currencyCode": {
            "type": "string"
          },
          "unitPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "sourceUrl": {
            "type": "string"
          },
          "sourceCapturedAt": {
            "type": "string",
            "format": "date-time"
          },
          "matchConfidence": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "PublishConstructionSystemRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishCountryRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishCurrencyRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishGemCoefficientRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishGemFormulaRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishLanguageRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishMarketplaceRuleRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishNotificationTemplateRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishPriceRegionRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishQualityPackageRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishQuoteWizardStepRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishReferenceTypeRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishRegionRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PublishTaxRequest": {
        "required": [
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "QuantitySource": {
        "type": "integer"
      },
      "QuoteLabourEstimateItemRequest": {
        "required": [
          "installationActivityId",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "installationActivityId": {
            "type": "string",
            "format": "uuid"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "QuoteLabourEstimateRequest": {
        "required": [
          "projectCondition",
          "effectiveDate",
          "items"
        ],
        "type": "object",
        "properties": {
          "projectCondition": {
            "$ref": "#/components/schemas/ProjectCondition"
          },
          "effectiveDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuoteLabourEstimateItemRequest"
            }
          }
        }
      },
      "QuotePathway": {
        "type": "integer"
      },
      "RecommendSupplierOffersRequest": {
        "required": [
          "productVariantId",
          "marketCode",
          "currencyCode",
          "requiredQuantity",
          "requiredOn",
          "maximumResults",
          "maximumLeadTimeDays"
        ],
        "type": "object",
        "properties": {
          "productVariantId": {
            "type": "string",
            "format": "uuid"
          },
          "marketCode": {
            "type": "string"
          },
          "currencyCode": {
            "type": "string"
          },
          "requiredQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "requiredOn": {
            "type": "string",
            "format": "date"
          },
          "maximumResults": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maximumLeadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "RecordSupplierMarketPriceRequest": {
        "required": [
          "productVariantId",
          "marketCode",
          "currencyCode",
          "unitPrice",
          "unit",
          "notes"
        ],
        "type": "object",
        "properties": {
          "productVariantId": {
            "type": "string",
            "format": "uuid"
          },
          "marketCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "currencyCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "unitPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unit": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "RecordUsageRequest": {
        "required": [
          "organisationId",
          "entitlementCode",
          "transactionKind",
          "quantity",
          "idempotencyKey",
          "referenceType",
          "referenceId"
        ],
        "type": "object",
        "properties": {
          "organisationId": {
            "type": "string",
            "format": "uuid"
          },
          "entitlementCode": {
            "type": "string"
          },
          "transactionKind": {
            "$ref": "#/components/schemas/UsageTransactionKind"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "idempotencyKey": {
            "type": "string"
          },
          "referenceType": {
            "type": [
              "null",
              "string"
            ]
          },
          "referenceId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "ReferenceTypeCategory": {
        "type": "integer"
      },
      "RefreshRequest": {
        "required": [
          "refreshToken"
        ],
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string"
          }
        }
      },
      "RegisterRequest": {
        "required": [
          "email",
          "password"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        }
      },
      "RejectOrganisationRequest": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          }
        }
      },
      "ResendConfirmationEmailRequest": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          }
        }
      },
      "ResetPasswordRequest": {
        "required": [
          "email",
          "resetCode",
          "newPassword"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "resetCode": {
            "type": "string"
          },
          "newPassword": {
            "type": "string"
          }
        }
      },
      "ResolveSupportTicketRequest": {
        "required": [
          "resolutionNotes"
        ],
        "type": "object",
        "properties": {
          "resolutionNotes": {
            "type": "string"
          }
        }
      },
      "RunAiSourcingRequest": {
        "required": [
          "query",
          "marketCode",
          "currencyCode",
          "supplierOrganisationId",
          "maxListings"
        ],
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "marketCode": {
            "type": "string"
          },
          "currencyCode": {
            "type": "string"
          },
          "supplierOrganisationId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "maxListings": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "SaveAiSourcingScheduleRequest": {
        "required": [
          "query",
          "marketCode",
          "currencyCode",
          "supplierOrganisationId",
          "maxListings",
          "intervalDays",
          "isEnabled"
        ],
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "marketCode": {
            "type": "string"
          },
          "currencyCode": {
            "type": "string"
          },
          "supplierOrganisationId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "maxListings": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "intervalDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isEnabled": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      },
      "SaveQuoteDraftRequest": {
        "required": [
          "currentSection",
          "completedSectionsJson",
          "completionPercentage",
          "snapshotJson",
          "isAutoSave"
        ],
        "type": "object",
        "properties": {
          "currentSection": {
            "type": "string"
          },
          "completedSectionsJson": {
            "type": "string"
          },
          "completionPercentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "snapshotJson": {
            "type": "string"
          },
          "isAutoSave": {
            "type": "boolean"
          }
        }
      },
      "SelectPreferredBuilderRequest": {
        "required": [
          "builderOrganisationId"
        ],
        "type": "object",
        "properties": {
          "builderOrganisationId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "SetActiveRequest": {
        "required": [
          "isActive"
        ],
        "type": "object",
        "properties": {
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "SetBuilderProfileDetailsRequest": {
        "required": [
          "capacity",
          "notes"
        ],
        "type": "object",
        "properties": {
          "capacity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SetBuilderProfileRequest": {
        "required": [
          "capacity",
          "notes"
        ],
        "type": "object",
        "properties": {
          "capacity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SetDefaultVariantRequest": {
        "required": [
          "productVariantId"
        ],
        "type": "object",
        "properties": {
          "productVariantId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "SetDocumentSharingRequest": {
        "required": [
          "shared"
        ],
        "type": "object",
        "properties": {
          "shared": {
            "type": "boolean"
          }
        }
      },
      "SetNotificationPreferenceRequest": {
        "required": [
          "isEnabled"
        ],
        "type": "object",
        "properties": {
          "isEnabled": {
            "type": "boolean"
          }
        }
      },
      "SetProjectSiteRequest": {
        "required": [
          "addressLine1",
          "suburb",
          "stateOrRegion",
          "postalCode",
          "countryCode"
        ],
        "type": "object",
        "properties": {
          "addressLine1": {
            "type": "string"
          },
          "suburb": {
            "type": "string"
          },
          "stateOrRegion": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "addressLine2": {
            "type": [
              "null",
              "string"
            ]
          },
          "latitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "longitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "SetQuoteItemQuantityRequest": {
        "required": [
          "quantity",
          "note"
        ],
        "type": "object",
        "properties": {
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "StartBuilderEngagementRequest": {
        "required": [
          "quoteId"
        ],
        "type": "object",
        "properties": {
          "quoteId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "SubmitBuilderResponseRequest": {
        "required": [
          "builderOrganisationId",
          "responseType",
          "priceRevision",
          "programmeInformation",
          "notes",
          "qualifications",
          "exclusions",
          "proposedAlternativeMaterials",
          "proposedAlternativeConstructionMethods"
        ],
        "type": "object",
        "properties": {
          "builderOrganisationId": {
            "type": "string",
            "format": "uuid"
          },
          "responseType": {
            "$ref": "#/components/schemas/BuilderResponseType"
          },
          "priceRevision": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "programmeInformation": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "qualifications": {
            "type": [
              "null",
              "string"
            ]
          },
          "exclusions": {
            "type": [
              "null",
              "string"
            ]
          },
          "proposedAlternativeMaterials": {
            "type": [
              "null",
              "string"
            ]
          },
          "proposedAlternativeConstructionMethods": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SubmitConstructionSystemForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitCountryForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitCurrencyForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitGemCoefficientForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitGemFormulaForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitLanguageForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitMarketplaceRuleForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitNotificationTemplateForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitPriceRegionForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitQualityPackageForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitQuoteWizardStepForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitReferenceTypeForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitRegionForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SubmitTaxForReviewRequest": {
        "required": [
          "changeReason"
        ],
        "type": "object",
        "properties": {
          "changeReason": {
            "type": "string"
          }
        }
      },
      "SupplierOfferStatus": {
        "type": "integer"
      },
      "SupplierStockStatus": {
        "type": "integer"
      },
      "SupportPriority": {
        "type": "integer"
      },
      "SystemInfoResponse": {
        "required": [
          "name",
          "version",
          "environment",
          "timestamp"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "environment": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "TenantContextResponse": {
        "required": [
          "tenantId",
          "userId"
        ],
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "format": "uuid"
          },
          "userId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "TwoFactorRequest": {
        "type": "object",
        "properties": {
          "enable": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "twoFactorCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "resetSharedKey": {
            "type": "boolean"
          },
          "resetRecoveryCodes": {
            "type": "boolean"
          },
          "forgetMachine": {
            "type": "boolean"
          }
        }
      },
      "TwoFactorResponse": {
        "required": [
          "sharedKey",
          "recoveryCodesLeft",
          "isTwoFactorEnabled",
          "isMachineRemembered"
        ],
        "type": "object",
        "properties": {
          "sharedKey": {
            "type": "string"
          },
          "recoveryCodesLeft": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "recoveryCodes": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "isTwoFactorEnabled": {
            "type": "boolean"
          },
          "isMachineRemembered": {
            "type": "boolean"
          }
        }
      },
      "UpdateGemCoefficientDraftRequest": {
        "required": [
          "name",
          "activeValue",
          "lowValue",
          "highValue"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "activeValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lowValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "highValue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "UpdateGemFormulaDraftRequest": {
        "required": [
          "name",
          "formulaExpression",
          "confidence",
          "reviewNote",
          "targetMasterItemId",
          "dependsOnRuleIds"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "formulaExpression": {
            "type": "string"
          },
          "confidence": {
            "$ref": "#/components/schemas/GemFormulaConfidence"
          },
          "reviewNote": {
            "type": [
              "null",
              "string"
            ]
          },
          "targetMasterItemId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "dependsOnRuleIds": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "UpdateMasterItemRequest": {
        "required": [
          "categoryId",
          "unitOfMeasureId",
          "gemRole",
          "defaultWastePercentage",
          "isActive"
        ],
        "type": "object",
        "properties": {
          "categoryId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "unitOfMeasureId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "gemRole": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/MasterItemGemRole"
              }
            ]
          },
          "defaultWastePercentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "UpdateProductRequest": {
        "required": [
          "name",
          "manufacturer",
          "brand",
          "series",
          "description",
          "countryOfOriginCode",
          "barcode"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "manufacturer": {
            "type": [
              "null",
              "string"
            ]
          },
          "brand": {
            "type": [
              "null",
              "string"
            ]
          },
          "series": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "countryOfOriginCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "barcode": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "UpdateProductSpecificationRequest": {
        "required": [
          "name",
          "value",
          "unit",
          "standardReference",
          "displayOrder"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "unit": {
            "type": [
              "null",
              "string"
            ]
          },
          "standardReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "displayOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "UpdateProductVariantRequest": {
        "required": [
          "name",
          "unitOfMeasureId",
          "sku",
          "barcode",
          "colour",
          "finish",
          "sizeDescription",
          "packQuantity",
          "coveragePerPack",
          "weightPerPackKg"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "unitOfMeasureId": {
            "type": "string",
            "format": "uuid"
          },
          "sku": {
            "type": [
              "null",
              "string"
            ]
          },
          "barcode": {
            "type": [
              "null",
              "string"
            ]
          },
          "colour": {
            "type": [
              "null",
              "string"
            ]
          },
          "finish": {
            "type": [
              "null",
              "string"
            ]
          },
          "sizeDescription": {
            "type": [
              "null",
              "string"
            ]
          },
          "packQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "coveragePerPack": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "weightPerPackKg": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "UpdateSupplierOfferCommercialTermsRequest": {
        "required": [
          "unitPrice",
          "listPrice",
          "minimumOrderQuantity",
          "stockStatus",
          "availableQuantity",
          "leadTimeDays",
          "validFrom",
          "validTo",
          "isPreferred"
        ],
        "type": "object",
        "properties": {
          "unitPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "listPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "minimumOrderQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "stockStatus": {
            "$ref": "#/components/schemas/SupplierStockStatus"
          },
          "availableQuantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "leadTimeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "validFrom": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "validTo": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "isPreferred": {
            "type": "boolean"
          }
        }
      },
      "UsageTransactionKind": {
        "type": "integer"
      },
      "VerifyOrganisationRequest": {
        "required": [
          "note"
        ],
        "type": "object",
        "properties": {
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "WithdrawSelectionRequest": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "GBQ.Api"
    },
    {
      "name": "Product Media"
    },
    {
      "name": "Identity"
    },
    {
      "name": "BuilderEngagementEndpoints"
    },
    {
      "name": "Builder Profile"
    },
    {
      "name": "SubscriptionEndpoints"
    },
    {
      "name": "Admin Plans"
    },
    {
      "name": "Projects"
    },
    {
      "name": "Project Participants"
    },
    {
      "name": "Projects - GEM"
    },
    {
      "name": "Drawing Extractions"
    },
    {
      "name": "Site Regulation Checks"
    },
    {
      "name": "Quote Materials"
    },
    {
      "name": "Quote Quantities"
    },
    {
      "name": "Quote Pricing"
    },
    {
      "name": "Material Catalogue"
    },
    {
      "name": "Master Items"
    },
    {
      "name": "Unit Conversions"
    },
    {
      "name": "Products"
    },
    {
      "name": "Product Variants"
    },
    {
      "name": "Product Specifications"
    },
    {
      "name": "Characteristics"
    },
    {
      "name": "Characteristic Options"
    },
    {
      "name": "Master Item Characteristics"
    },
    {
      "name": "Master Item Room Assignments"
    },
    {
      "name": "Product Quality Classification"
    },
    {
      "name": "Supplier Offers"
    },
    {
      "name": "Market Prices"
    },
    {
      "name": "Supplier Market Prices"
    },
    {
      "name": "AI Sourced Offers"
    },
    {
      "name": "AI Sourcing Runs"
    },
    {
      "name": "Geocoding"
    },
    {
      "name": "Builder Readiness"
    },
    {
      "name": "Quote Drafts"
    },
    {
      "name": "Quote Labour"
    },
    {
      "name": "Labour and Installation"
    },
    {
      "name": "Security"
    },
    {
      "name": "Organisations"
    },
    {
      "name": "Admin"
    },
    {
      "name": "Support"
    },
    {
      "name": "Notifications"
    },
    {
      "name": "Legal"
    },
    {
      "name": "Configuration Centre - Construction Systems"
    },
    {
      "name": "Configuration Centre - Reference Types"
    },
    {
      "name": "Configuration Centre - Countries"
    },
    {
      "name": "Configuration Centre - Currencies"
    },
    {
      "name": "Configuration Centre - Regions"
    },
    {
      "name": "Configuration Centre - Languages"
    },
    {
      "name": "Configuration Centre - Taxes"
    },
    {
      "name": "Configuration Centre - Price Regions"
    },
    {
      "name": "Configuration Centre - Notification Templates"
    },
    {
      "name": "Configuration Centre - GEM Formulas"
    },
    {
      "name": "Configuration Centre - GEM Coefficients"
    },
    {
      "name": "Configuration Centre - Quote Wizard Steps"
    },
    {
      "name": "Configuration Centre - Quality Packages"
    },
    {
      "name": "Configuration Centre - Marketplace Rules"
    },
    {
      "name": "Project Documents"
    }
  ]
}