{
  "openapi": "3.0.1",
  "info": {
    "title": "BOMA API Documentation",
    "version": "v1"
  },
  "paths": {
    "/api/addresses": {
      "get": {
        "tags": [
          "Addresses"
        ],
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "results",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 250
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "all"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Address"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Address"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Address"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Addresses"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Address"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Address"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Address"
                }
              }
            }
          }
        }
      }
    },
    "/api/addresses/{id}": {
      "get": {
        "tags": [
          "Addresses"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Address"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Address"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Address"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Addresses"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Address"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Address"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Address"
                }
              }
            }
          }
        }
      }
    },
    "/api/catalogs": {
      "get": {
        "tags": [
          "Catalogs"
        ],
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CatalogList"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CatalogList"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CatalogList"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/catalogs/{id}": {
      "get": {
        "tags": [
          "Catalogs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "language",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Catalog"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Catalog"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Catalog"
                }
              }
            }
          }
        }
      }
    },
    "/api/machines": {
      "get": {
        "tags": [
          "Machines"
        ],
        "parameters": [
          {
            "name": "barcode",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "results",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 250
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Machine"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Machine"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Machine"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/machines/{id}": {
      "get": {
        "tags": [
          "Machines"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Machine"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Machine"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Machine"
                }
              }
            }
          }
        }
      }
    },
    "/api/products": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "language",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "barcode",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "results",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 250
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AdditionalImage": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Address": {
        "required": [
          "city",
          "country",
          "id",
          "language",
          "name",
          "postalCode",
          "street"
        ],
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "street": {
            "minLength": 1,
            "type": "string"
          },
          "postalCode": {
            "minLength": 1,
            "type": "string"
          },
          "city": {
            "minLength": 1,
            "type": "string"
          },
          "country": {
            "minLength": 1,
            "type": "string"
          },
          "language": {
            "minLength": 1,
            "type": "string"
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "responsable": {
            "type": "string",
            "nullable": true
          },
          "contact": {
            "type": "string",
            "nullable": true
          },
          "jobTitle": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "businessUnit": {
            "type": "string",
            "nullable": true
          },
          "juridicalEntity": {
            "type": "string",
            "nullable": true
          },
          "seat": {
            "type": "string",
            "nullable": true
          },
          "infoDriver": {
            "type": "string",
            "nullable": true
          },
          "closingDays": {
            "$ref": "#/components/schemas/ClosingDays"
          },
          "orderSystem": {
            "type": "string",
            "nullable": true
          },
          "recurringOrderMonths": {
            "$ref": "#/components/schemas/RecurringOrderMonths"
          },
          "isLimitedToArticleList": {
            "type": "boolean",
            "nullable": true
          },
          "contractStartDate": {
            "type": "string",
            "nullable": true
          },
          "contractEndDate": {
            "type": "string",
            "nullable": true
          },
          "statCode1": {
            "type": "string",
            "nullable": true
          },
          "statCode2": {
            "type": "string",
            "nullable": true
          },
          "statCode3": {
            "type": "string",
            "nullable": true
          },
          "yearBudget": {
            "type": "number",
            "format": "double"
          },
          "monthsToReleaseBudget": {
            "type": "string",
            "nullable": true
          },
          "budgetStartMonth": {
            "type": "string",
            "nullable": true
          },
          "investmentsIncludedInBudget": {
            "type": "boolean",
            "nullable": true
          },
          "approver": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Catalog": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Category"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CatalogList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Category": {
        "type": "object",
        "properties": {
          "categoryId": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Product"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ClosingDays": {
        "type": "object",
        "properties": {
          "monday": {
            "type": "boolean"
          },
          "tuesday": {
            "type": "boolean"
          },
          "wednesday": {
            "type": "boolean"
          },
          "thursday": {
            "type": "boolean"
          },
          "friday": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Contract": {
        "type": "object",
        "properties": {
          "contractId": {
            "type": "string",
            "nullable": true
          },
          "contractType": {
            "type": "string",
            "nullable": true
          },
          "rentingType": {
            "type": "string",
            "nullable": true
          },
          "maintenanceType": {
            "type": "string",
            "nullable": true
          },
          "invoiceFrequence": {
            "type": "string",
            "nullable": true
          },
          "maintenanceWeeks": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CoupaOrderApprovalRequest": {
        "required": [
          "custom-fields",
          "id",
          "status",
          "updated-by"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "reject-reason-comment": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "minLength": 1,
            "type": "string"
          },
          "rejected": {
            "type": "boolean"
          },
          "updated-by": {
            "$ref": "#/components/schemas/UpdatedBy"
          },
          "custom-fields": {
            "$ref": "#/components/schemas/CustomFields"
          }
        },
        "additionalProperties": false
      },
      "CustomFields": {
        "required": [
          "boma-dosdob-nr"
        ],
        "type": "object",
        "properties": {
          "po-fully-invoiced": {
            "type": "boolean"
          },
          "boma-dosdob-nr": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Document": {
        "type": "object",
        "properties": {
          "info": {
            "type": "string",
            "nullable": true
          },
          "sds": {
            "type": "string",
            "nullable": true
          },
          "ce": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FloorType": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Intervention": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "nullable": true
          },
          "addressId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Machine": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string"
          },
          "productId": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "image": {
            "type": "string",
            "nullable": true
          },
          "thumbnail": {
            "type": "string",
            "nullable": true
          },
          "youtubeVideoId": {
            "type": "string",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "refCustomer": {
            "type": "string",
            "nullable": true
          },
          "qrCode": {
            "type": "string",
            "nullable": true
          },
          "trackerId": {
            "type": "string",
            "nullable": true
          },
          "trackerInfo": {
            "$ref": "#/components/schemas/TrackerInfo"
          },
          "activity": {
            "$ref": "#/components/schemas/MachineActivity"
          },
          "totalAreaCleaned": {
            "$ref": "#/components/schemas/MachineUsage"
          },
          "waterUsed": {
            "$ref": "#/components/schemas/MachineUsage"
          },
          "chemicalUsed": {
            "$ref": "#/components/schemas/MachineUsage"
          },
          "energyUsed": {
            "$ref": "#/components/schemas/MachineUsage"
          },
          "responsableInfo": {
            "$ref": "#/components/schemas/ResponsableInfo"
          },
          "operatorInfo": {
            "$ref": "#/components/schemas/OperatorInfo"
          },
          "contracts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Contract"
            },
            "nullable": true
          },
          "openInterventions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OpenIntervention"
            },
            "nullable": true
          },
          "interventions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Intervention"
            },
            "nullable": true
          },
          "documents": {
            "$ref": "#/components/schemas/Document"
          }
        },
        "additionalProperties": false
      },
      "MachineActivity": {
        "type": "object",
        "properties": {
          "currentYearJan": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearFeb": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearMar": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearApr": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearMay": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearJun": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearJul": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearAug": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearSep": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearOct": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearNov": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearDec": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearTotal": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearJan": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearFeb": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearMar": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearApr": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearMay": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearJun": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearJul": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearAug": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearSep": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearOct": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearNov": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearDec": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearTotal": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "estimatedMonthlyUsage": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MachineUsage": {
        "type": "object",
        "properties": {
          "currentYearJan": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearFeb": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearMar": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearApr": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearMay": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearJun": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearJul": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearAug": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearSep": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearOct": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearNov": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearDec": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currentYearTotal": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearJan": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearFeb": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearMar": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearApr": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearMay": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearJun": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearJul": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearAug": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearSep": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearOct": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearNov": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearDec": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "previousYearTotal": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OpenIntervention": {
        "type": "object",
        "properties": {
          "interventionId": {
            "type": "string",
            "nullable": true
          },
          "addressId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "site": {
            "type": "string",
            "nullable": true
          },
          "typeIntervention": {
            "type": "string",
            "nullable": true
          },
          "interventionDate": {
            "type": "string",
            "nullable": true
          },
          "result": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OperatorInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Phone": {
        "type": "object",
        "properties": {
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "contactType": {
            "type": "string",
            "nullable": true
          },
          "contactId": {
            "type": "string",
            "nullable": true
          },
          "popUpInfo": {
            "type": "string",
            "nullable": true
          },
          "company": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "street": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "countryName": {
            "type": "string",
            "nullable": true
          },
          "language": {
            "type": "string",
            "nullable": true
          },
          "SalsuInternalPhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "SalsuContact": {
            "type": "string",
            "nullable": true
          },
          "TsInternalPhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "TsContact": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Picto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Price": {
        "type": "object",
        "properties": {
          "vat": {
            "type": "number",
            "format": "double"
          },
          "priceExcl": {
            "type": "number",
            "format": "double"
          },
          "volumePrices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VolumePrice"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "Product": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "usageInstructions": {
            "type": "string",
            "nullable": true
          },
          "productGroup": {
            "type": "string",
            "nullable": true
          },
          "unspsc": {
            "$ref": "#/components/schemas/Unspsc"
          },
          "image": {
            "type": "string",
            "nullable": true
          },
          "thumbnail": {
            "type": "string",
            "nullable": true
          },
          "youtube": {
            "type": "string",
            "nullable": true
          },
          "youtubeVideoId": {
            "type": "string",
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "replacedBy": {
            "type": "string",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "barcode": {
            "type": "string",
            "nullable": true
          },
          "floorTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FloorType"
            },
            "nullable": true
          },
          "pictos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Picto"
            },
            "nullable": true
          },
          "bom": {
            "type": "string",
            "nullable": true
          },
          "relations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Relation"
            },
            "nullable": true
          },
          "price": {
            "$ref": "#/components/schemas/Price"
          },
          "length": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "width": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "height": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "weight": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "volume": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "quantities": {
            "$ref": "#/components/schemas/Quantity"
          },
          "restrictions": {
            "$ref": "#/components/schemas/Restrictions"
          },
          "productInfo": {
            "$ref": "#/components/schemas/ProductInfo"
          },
          "additionalImages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalImage"
            },
            "nullable": true
          },
          "documents": {
            "$ref": "#/components/schemas/Document"
          }
        },
        "additionalProperties": false
      },
      "ProductInfo": {
        "type": "object",
        "properties": {
          "cleaningPower": {
            "type": "string",
            "nullable": true
          },
          "pH": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Quantity": {
        "type": "object",
        "properties": {
          "package": {
            "type": "number",
            "format": "double"
          },
          "pallet": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "RecurringOrderMonths": {
        "type": "object",
        "properties": {
          "january": {
            "type": "boolean"
          },
          "february": {
            "type": "boolean"
          },
          "march": {
            "type": "boolean"
          },
          "april": {
            "type": "boolean"
          },
          "may": {
            "type": "boolean"
          },
          "june": {
            "type": "boolean"
          },
          "july": {
            "type": "boolean"
          },
          "august": {
            "type": "boolean"
          },
          "september": {
            "type": "boolean"
          },
          "october": {
            "type": "boolean"
          },
          "november": {
            "type": "boolean"
          },
          "december": {
            "type": "boolean"
          },
          "weekOfMonthlyPOP": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Relation": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "nullable": true
          },
          "relationType": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "thumbnail": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ResponsableInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Restrictions": {
        "type": "object",
        "properties": {
          "minimum": {
            "type": "number",
            "format": "double"
          },
          "multipleOf": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "TrackerInfo": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "location": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "lastLocationUpdate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "accuracy": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "lastSeenAlive": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastActivity": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Unspsc": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdatedBy": {
        "type": "object",
        "properties": {
          "login": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserCopy": {
        "required": [
          "copyFrom",
          "id",
          "language",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string"
          },
          "copyFrom": {
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "language": {
            "minLength": 1,
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "seat": {
            "type": "string",
            "nullable": true
          },
          "businessUnit": {
            "type": "string",
            "nullable": true
          },
          "juridicalEntity": {
            "type": "string",
            "nullable": true
          },
          "sendPasswordEmail": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "VolumePrice": {
        "type": "object",
        "properties": {
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "priceExcl": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "basic": {
        "type": "http",
        "description": "Basic Authentication",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "basic": [ ]
    }
  ]
}