{
  "openapi": "3.0.4",
  "info": {
    "title": "SmartDok API",
    "description": "# How to use API\n\nMake sure that your SmartDok account includes API access. If not, please contact the sales department to get access.\n\nAs an administrator, log in to SmartDok, navigate to \"Company settings\"\nand \"API administration\". On that page, you can generate what we call an API access token.\nThis gives you a secret token, which is used to get access to the API. This token is valid\nfor one year at a time.\n\nThis token is used to create a session token with [POST /Authorize/ApiToken](/api-docs/#tag/authorize/POST/Authorize/ApiToken).\nThe session token returned, must be passed in the \"Authorization\" HTTP header\non all subsequent API calls, after the word \"Bearer\", by standard convention.\n\n```\nAuthorization: Bearer SESSION-TOKEN\n```\n\n# General\n\nEvery resource has a unique URI that consists of the type of resource, and a\nunique identifier (e.g. [/Projects/{id}](/api-docs/#tag/projects/GET/Projects/{id})).\nUse a GET request to this URI, to retrieve the resource as a JSON object.\nUse a GET request to the resource type URI (e.g. [/Projects](/api-docs/#tag/projects/GET/Projects)), to retrieve a list of resources\n(various filters are available).\n\nUse POST to the resource type URI, to create new resources, and PUT to update\nexisting resources. It is an error to try to PUT to a location that doesn't\nalready contain a resource, because resource identifiers are generated by the\nserver.\n\nWhen successful, POST and PUT requests generally return the resulting resource,\nas a JSON object. A successful POST request is indicated with the status code\n**201 Created**, and the URL for the created resource is contained in the\nLocation header. A successful PUT request is indicated by the status code **200 OK**.\n\nWhen a POST or PUT request fails, this is generally indicated by one of the\nstatus codes **404 Not Found** or **400 Bad Request**. Not found simply means\nthat the URL does not point to a valid resource, and no additional information is provided.\nBad request errors include a JSON object with the following attributes:\n\n- **Code** The error code as a numeric value.\n- **Error** The error code as a string (e.g. \"NameIsRequired\").\n- **Message** Textual error message. This is mainly for logging/debugging purposes.\n\n# Updating fields\n\nGenerally speaking, all PUT methods in this API will completely _replace_ the\ncontent of the given resource. It works very similar to files in a normal file\nsystem. If you want to change some part of a file, you need to first _load_ the\nfile, change the content as required, and then _save_ the file back including\nall content that you didn't change.\n\nThis is done by first using the GET method to fetch the resource, then make\nchanges to the data that was received, and finally using a PUT request to save\nthe changes, making sure to include all fields that wasn't changed. To make sure\nan integration will work as expected, we recommend that all unknown fields are\npassed back with PUT as-is, including fields that might be added in the future.\n\nCode examples of how this can be done are shown below.\n\n### Example: Javascript\n\n```javascript\nfunction updateName(url, name) {\n  var getResult = await fetch(url);\n  var resource = await getResult.json();\n  resource.Name = name;\n  var putResult = await fetch(url, { method: 'PUT', data: JSON.stringify(resource) });\n  return putResult.ok;\n}\n```\n\n### Example: .NET\n\nIt's a little bit more unconventional in C#, because C# generally deal with known data\nstructures (classes), and dealing with \"unknown\" JSON data is less common.\n\nThe following examples use [Json.NET](https://www.newtonsoft.com/json).\n\n```csharp\npublic async Task UpdateName(string url, string name)\n{\n    var getResult = await _client.GetAsync(url);\n\n    var obj = JObject.Parse(await getResult.Content.ReadAsStringAsync());\n    obj[\"Name\"] = name;\n\n    var putResult = await _client.PutAsync(url, new StringContent(obj.ToString()));\n}\n```\n\nAnother example, if we have a C# class that contains all the attributes we want\nto _update_, say `Project`:\n\n```csharp\npublic async Task UpdateSmartDokProject(string url, Project data)\n{\n    var getResult = await _client.GetAsync(url);\n\n    var obj = JObject.Parse(await getResult.Content.ReadAsStringAsync());\n    obj.Merge(JObject.FromObject(project));\n\n    var putResult = await _client.PutAsync(url, new StringContent(obj.ToString()));\n}\n```\n\n# Webhooks\n\nThe SmartDok API supports webhooks. To create a webhook, send a POST request to /webhooks with the topic you\nwant to subscribe to along with a callback URL as a string.\n\n### Supported webhook topics\n\n**- SupplierInvoiceUpdated**\n\nThe _SupplierInvoiceUpdated_ topic is currently only triggered when a supplier invoice is approved. The\npayload will only return the id of the changed invoice.\nYou have to query [GET /SupplierInvoices/{id}](/api-docs/#tag/supplierinvoices/GET/SupplierInvoices/{id}) to get the\nupdated resource.\n\n### Validating request payload\n\nIn every webhook request we send a `X-PAYLOAD-SIGNATURE-ALG` and `X-PAYLOAD-SIGNATURE` header value. The signature\nis a base64-encoded `RSAPKCS1` signed hash of the payload data itself. The used hash algorithm is specified in the\n`X-PAYLOAD-SIGNATURE-ALG` header.\n\nThe payload is signed using SmartDok's private keys. To verify the signature, first obtain SmartDok's public keys.\nDue to key rotation, we provide a list of public keys, with the first key in the list being the current one.\n\nNext, hash the received raw payload using the hash algorithm specified in the header value. Finally, create an `RSAPKCS1` deformatter\nwith the current public key and use it to verify the payload signature.\n\nIf verification with the current key fails, attempt verification with the other keys, as the payload may have been signed with an older\nkey that has since been rotated.\n\n# Making test requests from this page\n\n- Obtain a `SESSION-TOKEN` with the [POST /Authorize/ApiToken](/api-docs/#tag/authorize/POST/Authorize/ApiToken) endpoint.\n- Paste `SESSION-TOKEN` as the `Bearer Token` in the `Authentication` box.\n- Now all the _\"Test Requests\"_ can be used.\n",
    "contact": {
      "name": "SmartDok AS",
      "email": "support@smartdok.com"
    },
    "version": "v1"
  },
  "paths": {
    "/WorkDescriptions": {
      "post": {
        "tags": [
          "Activity"
        ],
        "summary": "Create activity",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityOutput"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Activity"
        ],
        "summary": "Get activities",
        "parameters": [
          {
            "name": "workDescriptionNumber",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workDescriptionName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "active",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivityOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivityOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivityOutput"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/WorkDescriptions/{id}": {
      "put": {
        "tags": [
          "Activity"
        ],
        "summary": "Update activity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityOutput"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Activity"
        ],
        "summary": "Get activity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityOutput"
                }
              }
            }
          }
        }
      }
    },
    "/WorkDescriptionCategory/{id}": {
      "get": {
        "tags": [
          "ActivityCategory"
        ],
        "summary": "Get activity category",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityCategoryOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityCategoryOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityCategoryOutput"
                }
              }
            }
          }
        }
      }
    },
    "/WorkDescriptionCategory": {
      "get": {
        "tags": [
          "ActivityCategory"
        ],
        "summary": "Get activity categories",
        "parameters": [
          {
            "name": "workDescriptionCategoryName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "active",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "updatedSince",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivityCategoryOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivityCategoryOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivityCategoryOutput"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Additions/{id}": {
      "get": {
        "tags": [
          "Additions"
        ],
        "summary": "Get addition",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Select by id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Additions"
        ],
        "summary": "Update addition",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AdditionInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdditionInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AdditionInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AdditionInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Additions": {
      "get": {
        "tags": [
          "Additions"
        ],
        "summary": "Get additions",
        "description": "Either `onlyAddition` or `onlyUnitAddition` (or both) must be true, otherwise the result is empty.",
        "parameters": [
          {
            "name": "additionNumber",
            "in": "query",
            "description": "Select by number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "additionName",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "onlyAddition",
            "in": "query",
            "description": "If true, include only additions without units.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "onlyUnitAddition",
            "in": "query",
            "description": "If true, include unit additions.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AdditionOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AdditionOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AdditionOutput"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Additions"
        ],
        "summary": "Create addition",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AdditionInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdditionInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AdditionInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AdditionInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Allowance/{id}": {
      "get": {
        "tags": [
          "Allowance"
        ],
        "summary": "Get allowance",
        "operationId": "GetAllowanceById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Allowance"
        ],
        "summary": "Update allowance",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AllowanceInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AllowanceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AllowanceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AllowanceInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/Allowance": {
      "get": {
        "tags": [
          "Allowance"
        ],
        "summary": "Get allowances",
        "parameters": [
          {
            "name": "number",
            "in": "query",
            "description": "Select by number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutputCollectionOutput"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Allowance"
        ],
        "summary": "Create allowance",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AllowanceInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AllowanceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AllowanceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AllowanceInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutput"
                }
              }
            }
          }
        }
      }
    },
    "/v2/Allowance/{id}": {
      "put": {
        "tags": [
          "Allowance"
        ],
        "summary": "Update allowance",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AllowanceInputV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AllowanceInputV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AllowanceInputV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AllowanceInputV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowanceOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Areas/{id}": {
      "get": {
        "tags": [
          "Areas"
        ],
        "summary": "Get area",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Areas"
        ],
        "summary": "Update area",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique identifier of the area to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of attributes to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AreaInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AreaInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AreaInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AreaInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Areas": {
      "get": {
        "tags": [
          "Areas"
        ],
        "summary": "Get areas",
        "parameters": [
          {
            "name": "areaNumber",
            "in": "query",
            "description": "Select by number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "areaName",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "updatedSince",
            "in": "query",
            "description": "Last updated timestamp",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutputCollectionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/SubProjects/{subProjectId}/Areas": {
      "get": {
        "tags": [
          "Areas"
        ],
        "summary": "Get areas by subproject",
        "parameters": [
          {
            "name": "subProjectId",
            "in": "path",
            "description": "The subproject identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "areaNumber",
            "in": "query",
            "description": "Select by number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "areaName",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "updatedSince",
            "in": "query",
            "description": "Filter on projects updated since this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutputCollectionOutput"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Areas"
        ],
        "summary": "Create area",
        "parameters": [
          {
            "name": "subProjectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AreaInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AreaInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AreaInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AreaInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaOutput"
                }
              }
            }
          }
        }
      }
    },
    "/SubProjects/{subProjectId}/Areas/NextNumber": {
      "get": {
        "tags": [
          "Areas"
        ],
        "summary": "Get next available area number",
        "parameters": [
          {
            "name": "subProjectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/Authorize/ApiToken": {
      "post": {
        "tags": [
          "Authorize"
        ],
        "summary": "Get session token",
        "description": "Authorize session with API access token. Use the returned session token as a Bearer token on all\r\n            subsequent API calls.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizeInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizeInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/Authorize/ApiToken/Renew": {
      "post": {
        "tags": [
          "Authorize"
        ],
        "summary": "Renew API token",
        "description": "Renews API access token and returns a new token valid for another year. The current API access token must be 6 months or older. Warning: This invalidates the current token.",
        "requestBody": {
          "description": "Token - The API access token used to login.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizeInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizeInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/Authorize/PublicKeys": {
      "get": {
        "tags": [
          "Authorize"
        ],
        "summary": "Get public keys",
        "description": "Returns the public keys for SmartDok. The response is a list of objects where each object contains the necessary information (exponent and modulus) to craft the public key.",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Customers/{id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Get customer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Customers"
        ],
        "summary": "Update customer",
        "description": "Deprecated - Use /v2/Customers/{id}",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of customer properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/Customers": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Get customers",
        "parameters": [
          {
            "name": "customerNumber",
            "in": "query",
            "description": "Select by number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerName",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "updatedSince",
            "in": "query",
            "description": "Filter on customers update",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutputCollectionOutput"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Create customer",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutput"
                }
              }
            }
          }
        }
      }
    },
    "/v2/Customers/{id}": {
      "put": {
        "tags": [
          "Customers"
        ],
        "summary": "Update customer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of customer properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Departments/{id}": {
      "get": {
        "tags": [
          "Departments"
        ],
        "summary": "Get department",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Department Id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Departments"
        ],
        "summary": "Update department",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Department Id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of department properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DepartmentInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DepartmentInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DepartmentInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DepartmentInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Departments": {
      "get": {
        "tags": [
          "Departments"
        ],
        "summary": "Get departments",
        "parameters": [
          {
            "name": "departmentNumber",
            "in": "query",
            "description": "Select by number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "departmentName",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "updatedSince",
            "in": "query",
            "description": "Filter on updated timestamp",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentOutputCollectionOutput"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Departments"
        ],
        "summary": "Create department",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DepartmentInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DepartmentInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DepartmentInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DepartmentInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentOutput"
                }
              }
            }
          }
        }
      }
    },
    "/FormDefinitions/{id}": {
      "get": {
        "tags": [
          "Forms"
        ],
        "summary": "Get form template",
        "description": "The id is specified in the response body of `GET /Forms` as `FormTemplateId`.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FormDefinitionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormDefinitionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormDefinitionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Forms/v2": {
      "get": {
        "tags": [
          "Forms"
        ],
        "summary": "Get submitted forms",
        "parameters": [
          {
            "name": "lastUpdatedSince",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FormInfoOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormInfoOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormInfoOutputCollectionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Forms/v2/{formDataId}": {
      "get": {
        "tags": [
          "Forms"
        ],
        "summary": "Get submitted form",
        "parameters": [
          {
            "name": "formDataId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FormInfoOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormInfoOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormInfoOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Forms/v2/{formDataId}/elements": {
      "get": {
        "tags": [
          "Forms"
        ],
        "summary": "Get submitted form elements",
        "description": "Returns a paginated list of form elements (controls and their values) for a specific submitted form.",
        "parameters": [
          {
            "name": "formDataId",
            "in": "path",
            "description": "The ID of the submitted form",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "ordinals",
            "in": "query",
            "description": "Array of ordinal positions to filter specific elements",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Number of elements to skip",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Maximum number of elements to return",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FormDataElementCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormDataElementCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormDataElementCollectionOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SaveError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SaveError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SaveError"
                }
              }
            }
          }
        }
      }
    },
    "/Forms/v2/elements": {
      "post": {
        "tags": [
          "Forms"
        ],
        "summary": "Get submitted form elements for multiple forms",
        "description": "Returns a paginated list of form elements (controls and their values) for multiple submitted forms.\r\nUse this endpoint to efficiently retrieve elements from up to Count forms at once.",
        "requestBody": {
          "description": "The batch request containing form IDs and optional filters",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GetFormElementsBatchRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetFormElementsBatchRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetFormElementsBatchRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetFormElementsBatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FormDataElementCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormDataElementCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormDataElementCollectionOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SaveError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SaveError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SaveError"
                }
              }
            }
          }
        }
      }
    },
    "/Forms/v2/{formDataId}/pdf": {
      "get": {
        "tags": [
          "Forms"
        ],
        "summary": "Get submitted form PDF",
        "parameters": [
          {
            "name": "formDataId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FileInformation"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInformation"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInformation"
                }
              }
            }
          }
        }
      }
    },
    "/Forms/v2/Machine": {
      "get": {
        "tags": [
          "Forms"
        ],
        "summary": "Get submitted forms against machines",
        "parameters": [
          {
            "name": "lastUpdatedSince",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "machineId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FormInfoOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormInfoOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormInfoOutputCollectionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Forms/v2/Project": {
      "get": {
        "tags": [
          "Forms"
        ],
        "summary": "Get submitted forms againsts projects",
        "parameters": [
          {
            "name": "lastUpdatedSince",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subProjectId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FormInfoOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormInfoOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormInfoOutputCollectionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Forms": {
      "get": {
        "tags": [
          "Forms"
        ],
        "summary": "Get submitted forms",
        "description": "Use `GET /Forms/v2` instead.",
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "moduleId",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/FormCategoryType"
            }
          },
          {
            "name": "moduleInstanceId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "moduleSubInstanceId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "formDefinitionId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": -1
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "temporaryForms",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FormOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormOutputCollectionOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/Forms/{id}": {
      "get": {
        "tags": [
          "Forms"
        ],
        "summary": "Get submitted form",
        "description": "Use `GET /Forms/v2/{id}` instead.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FormOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/Goods": {
      "post": {
        "tags": [
          "Goods"
        ],
        "summary": "Create goods",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBase"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBase"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBase"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Goods"
        ],
        "summary": "Get goods",
        "description": "Search by id/number/name. Fields you don't want to use, send `null`.",
        "parameters": [
          {
            "name": "goodsNumber",
            "in": "query",
            "description": "Select by number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "goodsName",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBaseCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBaseCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBaseCollectionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Goods/{id}": {
      "put": {
        "tags": [
          "Goods"
        ],
        "summary": "Update goods",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBase"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBase"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBase"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Goods"
        ],
        "summary": "Get goods",
        "operationId": "GetGoodsById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBase"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBase"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBase"
                }
              }
            }
          }
        }
      }
    },
    "/Goods/Units": {
      "get": {
        "tags": [
          "Goods"
        ],
        "summary": "Get unit types",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UnitType"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UnitType"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UnitType"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/GoodsCategories/{categoryId}/Goods": {
      "get": {
        "tags": [
          "Goods"
        ],
        "summary": "Get goods by category",
        "description": "Select list for goods usage or goods production with production boolean. Select all goods or filter on active/inactive goods.",
        "parameters": [
          {
            "name": "categoryId",
            "in": "path",
            "description": "Category to fetch goods from.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive goods if true.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBaseCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBaseCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsOutputBaseCollectionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/GoodsCategories/{id}": {
      "get": {
        "tags": [
          "GoodsCategories"
        ],
        "summary": "Get goods category",
        "operationId": "GetGoodsCategoryById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsCategoryOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsCategoryOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsCategoryOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "GoodsCategories"
        ],
        "summary": "Update goods category",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsCategoryInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsCategoryInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsCategoryInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsCategoryInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsCategoryOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsCategoryOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsCategoryOutput"
                }
              }
            }
          }
        }
      }
    },
    "/GoodsCategories": {
      "get": {
        "tags": [
          "GoodsCategories"
        ],
        "summary": "Get goods categories",
        "description": "Search by id/name. Fields you don't want to use, send `null`. Fields must match exact.",
        "parameters": [
          {
            "name": "goodsCategoryName",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "production",
            "in": "query",
            "description": "If `true` then get categories for goods production, else get\r\ncategories for goods consumption and transportation.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoodsCategoryOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoodsCategoryOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoodsCategoryOutput"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "GoodsCategories"
        ],
        "summary": "Create goods category",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsCategoryInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsCategoryInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsCategoryInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsCategoryInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsCategoryOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsCategoryOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsCategoryOutput"
                }
              }
            }
          }
        }
      }
    },
    "/GoodsConsumption/{id}": {
      "get": {
        "tags": [
          "GoodsConsumption"
        ],
        "summary": "Get goods consumption",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "GoodsConsumption"
        ],
        "summary": "Update goods consumption",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsConsumptionInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsConsumptionInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsConsumptionInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsConsumptionInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/GoodsConsumption": {
      "get": {
        "tags": [
          "GoodsConsumption"
        ],
        "summary": "Get goods consumption",
        "description": "List goods consumption in a selected period. Can be filtered on goodsCategoryId, projectId and subProjectId.",
        "parameters": [
          {
            "name": "fromDate",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "goodsCategoryId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "subProjectId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "Selection",
            "in": "query",
            "description": "1 = All rows(default), 2 = Not exported row, 3 = Exported rows",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "markedToBeInvoiced",
            "in": "query",
            "description": "`NULL` = All rows (default), `true` = Rows marked to be invoiced, `false` = Rows not marked to be invoiced",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "invoiced",
            "in": "query",
            "description": "`NULL` = All rows (default), `true` = Invoiced rows, `false` = Rows not invoiced",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutputCollectionOutput"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "GoodsConsumption"
        ],
        "summary": "Create goods consumption",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsConsumptionInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsConsumptionInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsConsumptionInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsConsumptionInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/GoodsConsumption/{goodsConsumptionId}/MarkAsExported": {
      "post": {
        "tags": [
          "GoodsConsumption"
        ],
        "summary": "Mark goods consumption as exported",
        "parameters": [
          {
            "name": "goodsConsumptionId",
            "in": "path",
            "description": "The goods consumption item's unique Id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "markAsInvoiced",
            "in": "query",
            "description": "`NULL` = Keep current state, `true` = Mark as invoiced, `false` = Remove invoiced mark",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/GoodsConsumption/{goodsConsumptionId}": {
      "delete": {
        "tags": [
          "GoodsConsumption"
        ],
        "summary": "Delete goods consumption",
        "parameters": [
          {
            "name": "goodsConsumptionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GoodsLocations/Flows": {
      "get": {
        "tags": [
          "GoodsLocations"
        ],
        "summary": "Get flow directions",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoodsFlowOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoodsFlowOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoodsFlowOutput"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/GoodsLocations": {
      "get": {
        "tags": [
          "GoodsLocations"
        ],
        "summary": "Get goods locations",
        "parameters": [
          {
            "name": "active",
            "in": "query",
            "description": "Get only active locations. `Empty` returns all. Default: empty",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoodsLocationOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoodsLocationOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoodsLocationOutput"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "GoodsLocations"
        ],
        "summary": "Create goods location",
        "requestBody": {
          "description": "Initial goods location properties.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsLocationInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsLocationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsLocationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsLocationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsLocationOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsLocationOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsLocationOutput"
                }
              }
            }
          }
        }
      }
    },
    "/GoodsLocations/{id}": {
      "get": {
        "tags": [
          "GoodsLocations"
        ],
        "summary": "Get goods location",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsLocationOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsLocationOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsLocationOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "GoodsLocations"
        ],
        "summary": "Update goods location",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of goods location properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsLocationInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsLocationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsLocationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GoodsLocationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsLocationOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsLocationOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsLocationOutput"
                }
              }
            }
          }
        }
      }
    },
    "/GoodsProduction/{goodsProductionId}/MarkAsExported": {
      "post": {
        "tags": [
          "GoodsProduction"
        ],
        "summary": "Mark goods production as exported",
        "parameters": [
          {
            "name": "goodsProductionId",
            "in": "path",
            "description": "Required. Set the Goods Usage Id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "markAsInvoiced",
            "in": "query",
            "description": "`NULL` = Keep current state, `true` = Mark as invoiced, `false` = Remove invoiced mark",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/GoodsProduction/{id}": {
      "get": {
        "tags": [
          "GoodsProduction"
        ],
        "summary": "Get goods production",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsConsumptionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/GoodsProduction": {
      "get": {
        "tags": [
          "GoodsProduction"
        ],
        "summary": "Get goods production",
        "description": "Method to get a list of goods production in a selected period. Can be filtered on goodsCategoryId, projectId and subProjectId.",
        "parameters": [
          {
            "name": "fromDate",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "goodsCategoryId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "subProjectId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "Selection",
            "in": "query",
            "description": "1 = All rows(default), 2 = Not exported row, 3 = Exported rows",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "markedToBeInvoiced",
            "in": "query",
            "description": "`NULL` = All rows (default), `true` = Rows marked to be invoiced, `false` = Rows not marked to be invoiced",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "invoiced",
            "in": "query",
            "description": "`NULL` = All rows (default), `true` = Invoiced rows, `false` = Rows not invoiced",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoodsConsumptionOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoodsConsumptionOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GoodsConsumptionOutput"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/GoodsTransportation/{id}": {
      "get": {
        "tags": [
          "GoodsTransportation"
        ],
        "summary": "Get goods transportation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsTransportationOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsTransportationOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsTransportationOutput"
                }
              }
            }
          }
        }
      }
    },
    "/GoodsTransportation": {
      "get": {
        "tags": [
          "GoodsTransportation"
        ],
        "summary": "Get goods transportation",
        "description": "List goods transportation in a selected period. Can be filtered on goodsCategoryId, projectId and subProjectId.",
        "parameters": [
          {
            "name": "fromDate",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "goodsCategoryId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "subProjectId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "Selection",
            "in": "query",
            "description": "1 = All rows(default), 2 = Not exported row, 3 = Exported rows",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "markedToBeInvoiced",
            "in": "query",
            "description": "`NULL` = All rows (default), `true` = Rows marked to be invoiced, `false` = Rows not marked to be invoiced",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "invoiced",
            "in": "query",
            "description": "`NULL` = All rows (default), `true` = Invoiced rows, `false` = Rows not invoiced",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsTransportationOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsTransportationOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoodsTransportationOutputCollectionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/GoodsTransportation/{goodsTransportationId}/MarkAsExported": {
      "post": {
        "tags": [
          "GoodsTransportation"
        ],
        "summary": "Mark goods transportation as exported",
        "parameters": [
          {
            "name": "goodsTransportationId",
            "in": "path",
            "description": "The goods transportation item's unique Id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "markAsInvoiced",
            "in": "query",
            "description": "`NULL` = Keep current state, `true` = Mark as invoiced, `false` = Remove invoiced mark",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/Group/{id}": {
      "get": {
        "tags": [
          "Group"
        ],
        "summary": "Get group",
        "description": "Returns group by id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GroupOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Group": {
      "get": {
        "tags": [
          "Group"
        ],
        "summary": "Get groups",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GroupOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GroupOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GroupOutput"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Group/AddUser": {
      "post": {
        "tags": [
          "Group"
        ],
        "summary": "Add user to group",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GroupUserInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupUserInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupUserInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GroupUserInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Group/RemoveUser": {
      "delete": {
        "tags": [
          "Group"
        ],
        "summary": "Remove user from group",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Invoices/{id}": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Get invoice by ID",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique ID of the invoice",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Invoices": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Get invoices by date range",
        "parameters": [
          {
            "name": "fromDate",
            "in": "query",
            "description": "First day of period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "Last day of period",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceOutput"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/MachineCategories/{id}": {
      "get": {
        "tags": [
          "MachineCategories"
        ],
        "summary": "Get machine category",
        "operationId": "GetMachineCategoryById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MachineCategoryOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineCategoryOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineCategoryOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "MachineCategories"
        ],
        "summary": "Update machine category",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MachineCategoryInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MachineCategoryInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MachineCategoryInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MachineCategoryInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MachineCategoryOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineCategoryOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineCategoryOutput"
                }
              }
            }
          }
        }
      }
    },
    "/MachineCategories": {
      "get": {
        "tags": [
          "MachineCategories"
        ],
        "summary": "Get machine categories",
        "description": "Get all or only active categories.",
        "parameters": [
          {
            "name": "machineCategoryName",
            "in": "query",
            "description": "Filter by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Include active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter by active when all is false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MachineCategoryOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MachineCategoryOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MachineCategoryOutput"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "MachineCategories"
        ],
        "summary": "Create machine category",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MachineCategoryInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MachineCategoryInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MachineCategoryInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MachineCategoryInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MachineCategoryOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineCategoryOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineCategoryOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Machines/{id}": {
      "get": {
        "tags": [
          "Machines"
        ],
        "summary": "Get machine",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Machine id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MachineOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Machines"
        ],
        "summary": "Update machine",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MachineInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MachineInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MachineInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MachineInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MachineOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Machines": {
      "get": {
        "tags": [
          "Machines"
        ],
        "summary": "Get machines",
        "description": "Sorted alphabetically. Supports filters: internalNumber, machineName, all (active+inactive), active.",
        "parameters": [
          {
            "name": "internalNumber",
            "in": "query",
            "description": "Filter by internal number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "machineName",
            "in": "query",
            "description": "Filter by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Include active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter by active when all is false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MachineOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineOutputCollectionOutput"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Machines"
        ],
        "summary": "Create machine",
        "requestBody": {
          "description": "Input properties.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MachineInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MachineInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MachineInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MachineInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MachineOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineOutput"
                }
              }
            }
          }
        }
      }
    },
    "/News/{id}": {
      "get": {
        "tags": [
          "News"
        ],
        "summary": "Get news post",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NewsPost"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NewsPost"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NewsPost"
                }
              }
            }
          }
        }
      }
    },
    "/News": {
      "post": {
        "tags": [
          "News"
        ],
        "summary": "Create news post",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PostInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PostInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PostInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NewsPost"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NewsPost"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NewsPost"
                }
              }
            }
          }
        }
      }
    },
    "/Orders/types": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Get order types",
        "description": "Deprecated - Use <b>OrderTypes</b> API instead.",
        "parameters": [
          {
            "name": "onlyActive",
            "in": "query",
            "description": "",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderTypeOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderTypeOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderTypeOutput"
                  }
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/Orders/{id}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Get order",
        "description": "Deprecated - Use <b>Projects</b> API instead.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      },
      "put": {
        "tags": [
          "Orders"
        ],
        "summary": "Update order",
        "description": "Deprecated - Use <b>Projects</b> API instead.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the order to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "removeOtherUserIdsWithAccess",
            "in": "query",
            "description": "",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "Subset of properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/Orders/GetByUser": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Get orders for user",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "onlyActive",
            "in": "query",
            "description": "",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutputCollectionOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/Orders/GetAvailableByUser": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Get available orders for user",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "onlyActive",
            "in": "query",
            "description": "",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutputCollectionOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/Orders": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Get orders",
        "description": "Deprecated - Use <b>Projects</b> API instead.",
        "parameters": [
          {
            "name": "orderNumber",
            "in": "query",
            "description": "Select by number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderName",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "modifiedSince",
            "in": "query",
            "description": "Get orders modified after this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "createdSince",
            "in": "query",
            "description": "Get order created after this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutputCollectionOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      },
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Create order",
        "description": "Deprecated - Use <b>Projects</b> API instead.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/Orders/NextNumber": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Get next available order number",
        "description": "Deprecated - Use <b>Projects</b> API instead.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/OrderTypes": {
      "get": {
        "tags": [
          "OrderTypes"
        ],
        "summary": "Get order types",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderTypeOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderTypeOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderTypeOutput"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "OrderTypes"
        ],
        "summary": "Create order type",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderTypeInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderTypeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderTypeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderTypeInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderTypeOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderTypeOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderTypeOutput"
                }
              }
            }
          }
        }
      }
    },
    "/OrderTypes/{id}": {
      "get": {
        "tags": [
          "OrderTypes"
        ],
        "summary": "Get order type",
        "operationId": "GetOrderTypeById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderTypeOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderTypeOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderTypeOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "OrderTypes"
        ],
        "summary": "Update order type",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderTypeInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderTypeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderTypeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderTypeInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderTypeOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderTypeOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderTypeOutput"
                }
              }
            }
          }
        }
      }
    },
    "/v2/orders/{projectId}/workers": {
      "get": {
        "tags": [
          "OrderWorkers"
        ],
        "summary": "Get workers",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderWorkers"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderWorkers"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderWorkers"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "OrderWorkers"
        ],
        "summary": "Update workers",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderWorkers"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderWorkers"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderWorkers"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderWorkers"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Pictures/project/{projectId}": {
      "get": {
        "tags": [
          "Pictures"
        ],
        "summary": "Get pictures for project",
        "description": "Retrieves pictures associated with a specific project within a given date range.\r\nAllows filtering by sub-project if provided.",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "ID of the project.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subProjectId",
            "in": "query",
            "description": "ID of the sub-project (optional).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fromDate",
            "in": "query",
            "description": "Start date for filtering pictures.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "End date for filtering pictures.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a collection of pictures.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PictureOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PictureOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PictureOutputCollectionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Projects/{id}/Location": {
      "get": {
        "tags": [
          "ProjectLocation"
        ],
        "summary": "Get project location",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The project id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LocationOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "ProjectLocation"
        ],
        "summary": "Update project location",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The project id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Location attributes.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LocationInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LocationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LocationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LocationOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationOutput"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "ProjectLocation"
        ],
        "summary": "Delete project location",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The project id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Projects/{id}": {
      "put": {
        "tags": [
          "Projects"
        ],
        "summary": "Update project",
        "description": "Deprecated - Use /v2/Projects/{id}",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique Id of the project to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of project attributes to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInputLegacy"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInputLegacy"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInputLegacy"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInputLegacy"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      },
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get project",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              }
            }
          }
        }
      }
    },
    "/v2/Projects/{id}": {
      "put": {
        "tags": [
          "Projects"
        ],
        "summary": "Update project",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique Id of the project to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of project attributes to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInputLegacy"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInputLegacy"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInputLegacy"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInputLegacy"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/Projects/{id}/Prices": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get prices for a project",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/EntityType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PriceOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceOutputCollectionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Projects": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get projects",
        "description": "Returns all active projects by default.",
        "parameters": [
          {
            "name": "projectNumber",
            "in": "query",
            "description": "Select by number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectName",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "includeOrders",
            "in": "query",
            "description": "Include orders in the result.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "updatedSince",
            "in": "query",
            "description": "Last updated timestamp",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "createdSince",
            "in": "query",
            "description": "Created timestamp",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutputCollectionOutput"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Create project",
        "requestBody": {
          "description": "Project input attributes.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Projects/NextNumber": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get next available project number",
        "description": "Deprecated - Use 'NextProjectNumber' instead.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/Projects/NextProjectNumber": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get next available project number",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/v3/Projects/{id}": {
      "put": {
        "tags": [
          "Projects"
        ],
        "summary": "Update project",
        "description": "Includes HSE and QA responsible.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique Id of the project to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of project attributes to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOutput"
                }
              }
            }
          }
        }
      }
    },
    "/qd": {
      "get": {
        "tags": [
          "QualityDeviation"
        ],
        "summary": "Get quality deviation reports",
        "description": "Deprecated - Use /qd/v2.",
        "parameters": [
          {
            "name": "lastUpdatedSince",
            "in": "query",
            "description": "Optional filter for update date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "Optional filter for project id.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subprojectId",
            "in": "query",
            "description": "Optional filter for subproject id.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "qdStatus",
            "in": "query",
            "description": "Optional status filter: Unprocessed, Open, Close, Discarded.",
            "schema": {
              "$ref": "#/components/schemas/RegistrationStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QDReportLookup"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QDReportLookup"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QDReportLookup"
                  }
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/qd/v2": {
      "get": {
        "tags": [
          "QualityDeviation"
        ],
        "summary": "Get quality deviation reports",
        "parameters": [
          {
            "name": "lastUpdatedSince",
            "in": "query",
            "description": "Optional filter for update date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "Optional filter for project id.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subprojectId",
            "in": "query",
            "description": "Optional filter for subproject id.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "qdStatus",
            "in": "query",
            "description": "Optional status filter: Unprocessed, Open, Close, Discarded.",
            "schema": {
              "$ref": "#/components/schemas/RegistrationStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QDReportLookupExtended"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QDReportLookupExtended"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QDReportLookupExtended"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/qd/{id}/pdf": {
      "get": {
        "tags": [
          "QualityDeviation"
        ],
        "summary": "Get PDF for a quality deviation report",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the quality deviation report",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "includeDetails",
            "in": "query",
            "description": "Include messages and event log in the PDF.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FileInformation"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInformation"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInformation"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/ResourcePlanning/Resources/{resourceId}": {
      "get": {
        "tags": [
          "ResourcePlanning"
        ],
        "summary": "Get a resource by id",
        "parameters": [
          {
            "name": "resourceId",
            "in": "path",
            "description": "Resource id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceOutput"
                }
              }
            }
          }
        }
      }
    },
    "/ResourcePlanning/Resources": {
      "get": {
        "tags": [
          "ResourcePlanning"
        ],
        "summary": "Get all resources",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "description": "Number of elements to skip.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Maximum number of elements.",
            "schema": {
              "maximum": 100,
              "minimum": 0,
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "resourceType",
            "in": "query",
            "description": "Filter by resource type.",
            "schema": {
              "$ref": "#/components/schemas/ResourceType"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceOutputCollectionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/ResourcePlanning/Plans": {
      "get": {
        "tags": [
          "ResourcePlanning"
        ],
        "summary": "Get planning blocks",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "description": "Number of elements to skip.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Maximum number of elements.",
            "schema": {
              "maximum": 100,
              "minimum": 0,
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "Filter blocks that end on or after this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "Filter blocks that start on or before this date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "resourceType",
            "in": "query",
            "description": "Filter by resource type.",
            "schema": {
              "$ref": "#/components/schemas/ResourceType"
            }
          },
          {
            "name": "resourceGroupId",
            "in": "query",
            "description": "Filter by resource group (connected resources and plans).",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resourceId",
            "in": "query",
            "description": "Filter by resource id.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "Filter by project id.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResourcePlanOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourcePlanOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourcePlanOutputCollectionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/rue": {
      "get": {
        "tags": [
          "RUE"
        ],
        "summary": "Get RUE reports",
        "parameters": [
          {
            "name": "lastUpdatedSince",
            "in": "query",
            "description": "Optional filter for update date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "Optional filter for project id.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subprojectId",
            "in": "query",
            "description": "Optional filter for subproject id.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "rueStatus",
            "in": "query",
            "description": "Optional status: Open, Close, Unprocessed, Discarded.",
            "schema": {
              "$ref": "#/components/schemas/RUEStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RUEReportOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RUEReportOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RUEReportOutputCollectionOutput"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/rue/summaries": {
      "get": {
        "tags": [
          "RUE"
        ],
        "summary": "Get a list of RUE report summaries",
        "parameters": [
          {
            "name": "LastUpdatedSince",
            "in": "query",
            "description": "Filter for reports updated after this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ProjectId",
            "in": "query",
            "description": "Filter for project id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SubprojectId",
            "in": "query",
            "description": "Filter for subproject id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "RueStatus",
            "in": "query",
            "description": "Status filter: Open, Close, Unprocessed, Discarded",
            "schema": {
              "$ref": "#/components/schemas/RUEStatus"
            }
          },
          {
            "name": "Offset",
            "in": "query",
            "description": "Number of items to skip",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "Count",
            "in": "query",
            "description": "Number of items to return",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RUEReportSummaryOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RUEReportSummaryOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RUEReportSummaryOutputCollectionOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/rue/{id}": {
      "get": {
        "tags": [
          "RUE"
        ],
        "summary": "Get a single RUE report",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the RUE report",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RUEReportDetailOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RUEReportDetailOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RUEReportDetailOutput"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/rue/{id}/eventlog": {
      "get": {
        "tags": [
          "RUE"
        ],
        "summary": "Get RUE event log",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the RUE report",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RUEEventLogOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RUEEventLogOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RUEEventLogOutputCollectionOutput"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/rue/{id}/messages": {
      "get": {
        "tags": [
          "RUE"
        ],
        "summary": "Get RUE report messages",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the RUE report",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RUEMessageOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RUEMessageOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RUEMessageOutputCollectionOutput"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/rue/{id}/pdf": {
      "get": {
        "tags": [
          "RUE"
        ],
        "summary": "Get PDF for a RUE report",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the RUE report",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "includeDetails",
            "in": "query",
            "description": "Include messages and event log in the PDF.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FileInformation"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInformation"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileInformation"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/sja/reasons": {
      "get": {
        "tags": [
          "SafeJobAnalysis"
        ],
        "summary": "Get reasons",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SJAReasonType"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SJAReasonType"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SJAReasonType"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sja/potential_hazards": {
      "get": {
        "tags": [
          "SafeJobAnalysis"
        ],
        "summary": "Get potential hazards",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SJAPotentialHazardType"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SJAPotentialHazardType"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SJAPotentialHazardType"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sja/overview": {
      "post": {
        "tags": [
          "SafeJobAnalysis"
        ],
        "summary": "Get documents by filter",
        "description": "Returns results and a cursor when more results are available. To fetch more, send the returned cursor and keep other parameters the same; only \"Take\" may change.",
        "requestBody": {
          "description": "Filter parameters.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GetByFilterInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetByFilterInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetByFilterInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetByFilterInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubmittedSJADocument"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubmittedSJADocument"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubmittedSJADocument"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/SubProjects/{id}/Location": {
      "get": {
        "tags": [
          "SubProjectLocation"
        ],
        "summary": "Get subproject location",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Subproject id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LocationOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "SubProjectLocation"
        ],
        "summary": "Update subproject location",
        "description": "Create location if it does not exist.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Subproject id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Location attributes.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LocationInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LocationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LocationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LocationOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationOutput"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "SubProjectLocation"
        ],
        "summary": "Delete subproject location",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Subproject id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/SubProjects/{id}": {
      "get": {
        "tags": [
          "SubProjects"
        ],
        "summary": "Get subproject",
        "operationId": "GetSubProjectById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "SubProjects"
        ],
        "summary": "Update subproject",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique identifier of the subproject to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of attributes to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SubProjectInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubProjectInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SubProjectInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SubProjectInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutput"
                }
              }
            }
          }
        }
      }
    },
    "/SubProjects": {
      "get": {
        "tags": [
          "SubProjects"
        ],
        "summary": "Get subprojects",
        "parameters": [
          {
            "name": "subProjectNumber",
            "in": "query",
            "description": "Select by number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subProjectName",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "updatedSince",
            "in": "query",
            "description": "Last updated timestamp",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutputCollectionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Projects/{projectId}/SubProjects": {
      "get": {
        "tags": [
          "SubProjects"
        ],
        "summary": "Get subprojects by project",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "The parent project identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subProjectNumber",
            "in": "query",
            "description": "Select by number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subProjectName",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "updatedSince",
            "in": "query",
            "description": "Filter on projects updated since this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutputCollectionOutput"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "SubProjects"
        ],
        "summary": "Create subproject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SubProjectInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubProjectInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SubProjectInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SubProjectInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubProjectOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Projects/{projectId}/SubProjects/NextNumber": {
      "get": {
        "tags": [
          "SubProjects"
        ],
        "summary": "Get next available subproject number",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/SupplierInvoices/{id}": {
      "get": {
        "tags": [
          "SupplierInvoices"
        ],
        "summary": "Get supplier invoice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Invoice id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierInvoiceOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierInvoiceOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierInvoiceOutput"
                }
              }
            }
          }
        }
      }
    },
    "/SupplierInvoices": {
      "post": {
        "tags": [
          "SupplierInvoices"
        ],
        "summary": "Create supplier invoice",
        "requestBody": {
          "description": "Invoice payload.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierInvoiceOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierInvoiceOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierInvoiceOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "SupplierInvoices"
        ],
        "summary": "Update supplier invoice",
        "description": "ExternalInvoiceNumber identifies the invoice to update.",
        "requestBody": {
          "description": "Invoice payload.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierInvoiceOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierInvoiceOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierInvoiceOutput"
                }
              }
            }
          }
        }
      }
    },
    "/SupplierInvoices/{externalInvoiceNumber}/document/upload": {
      "post": {
        "tags": [
          "SupplierInvoices"
        ],
        "summary": "Upload invoice document",
        "description": "Deprecated - Use /document/upload. Upload invoice document file (PDF) from a provided URL.",
        "parameters": [
          {
            "name": "externalInvoiceNumber",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceDocumentInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceDocumentInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceDocumentInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceDocumentInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "deprecated": true
      }
    },
    "/SupplierInvoices/document/upload": {
      "post": {
        "tags": [
          "SupplierInvoices"
        ],
        "summary": "Upload invoice document",
        "description": "Upload invoice document file (PDF) from a provided URL.",
        "parameters": [
          {
            "name": "externalInvoiceNumber",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceDocumentInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceDocumentInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceDocumentInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierInvoiceDocumentInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Tools/Categories/{id}": {
      "get": {
        "tags": [
          "ToolCategories"
        ],
        "summary": "Get tool category",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ToolCategoryOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolCategoryOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolCategoryOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "ToolCategories"
        ],
        "summary": "Update tool category",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ToolCategoryInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolCategoryInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolCategoryInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ToolCategoryInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ToolCategoryOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolCategoryOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolCategoryOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Tools/Categories": {
      "get": {
        "tags": [
          "ToolCategories"
        ],
        "summary": "Get tool categories",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ToolCategoryOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ToolCategoryOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ToolCategoryOutput"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "ToolCategories"
        ],
        "summary": "Create tool category",
        "requestBody": {
          "description": "Initial tool category properties.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ToolCategoryInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolCategoryInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolCategoryInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ToolCategoryInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ToolCategoryOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolCategoryOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolCategoryOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Tools/Locations/{id}": {
      "get": {
        "tags": [
          "ToolLocations"
        ],
        "summary": "Get tool location",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ToolLocationOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolLocationOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolLocationOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "ToolLocations"
        ],
        "summary": "Update tool location",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of location properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ToolLocationInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolLocationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolLocationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ToolLocationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ToolLocationOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolLocationOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolLocationOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Tools/Locations": {
      "get": {
        "tags": [
          "ToolLocations"
        ],
        "summary": "Get tool locations",
        "parameters": [
          {
            "name": "activeOnly",
            "in": "query",
            "description": "Get only active locations. Default: true",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ToolLocationOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ToolLocationOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ToolLocationOutput"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "ToolLocations"
        ],
        "summary": "Create tool location",
        "requestBody": {
          "description": "Initial location properties.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ToolLocationInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolLocationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolLocationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ToolLocationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ToolLocationOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolLocationOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolLocationOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Tools/{id}": {
      "get": {
        "tags": [
          "Tools"
        ],
        "summary": "Get tool",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique Id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ToolOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Tools"
        ],
        "summary": "Update tool",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ToolInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ToolInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ToolOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Tools": {
      "get": {
        "tags": [
          "Tools"
        ],
        "summary": "Get tools",
        "parameters": [
          {
            "name": "activeOnly",
            "in": "query",
            "description": "If true, return only active tools.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ToolOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolOutputCollectionOutput"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Tools"
        ],
        "summary": "Create tool",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ToolInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ToolInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ToolInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ToolOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolOutput"
                }
              }
            }
          }
        }
      }
    },
    "/TripToFromWorkAddition/{id}": {
      "get": {
        "tags": [
          "TripToFromWorkAddition"
        ],
        "summary": "Get trip-to-from-work addition",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TripToFromWorkAdditionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripToFromWorkAdditionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripToFromWorkAdditionOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "TripToFromWorkAddition"
        ],
        "summary": "Update trip-to-from-work addition",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TripToFromWorkAdditionInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TripToFromWorkAdditionInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TripToFromWorkAdditionInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TripToFromWorkAdditionInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TripToFromWorkAdditionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripToFromWorkAdditionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripToFromWorkAdditionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/TripToFromWorkAddition": {
      "get": {
        "tags": [
          "TripToFromWorkAddition"
        ],
        "summary": "Get trip-to-from-work additions",
        "parameters": [
          {
            "name": "additionNumber",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "additionName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TripToFromWorkAdditionOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TripToFromWorkAdditionOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TripToFromWorkAdditionOutput"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "TripToFromWorkAddition"
        ],
        "summary": "Create trip-to-from-work addition",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TripToFromWorkAdditionInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TripToFromWorkAdditionInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TripToFromWorkAdditionInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TripToFromWorkAdditionInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TripToFromWorkAdditionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripToFromWorkAdditionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripToFromWorkAdditionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Users": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get users",
        "parameters": [
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Select active or inactive if `all` is false.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutputCollectionOutput"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Create user",
        "description": "See /Roles for a list of available role names.",
        "requestBody": {
          "description": "Initial user properties.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UserInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Roles": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get roles",
        "description": "Deprecated: Use `Role` model",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/Users/current": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get current user",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Users/{id}": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get user",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Users"
        ],
        "summary": "Update user",
        "description": "See /Roles for a list of available role names.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource to update.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of user properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UserInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserOutput"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Users"
        ],
        "summary": "Delete user",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserValidationResultBooleanReturnObject"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserValidationResultBooleanReturnObject"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserValidationResultBooleanReturnObject"
                }
              }
            }
          }
        }
      }
    },
    "/LicenseInfo": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get license info",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LicenseInfo"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LicenseInfo"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LicenseInfo"
                }
              }
            }
          }
        }
      }
    },
    "/Wages/{id}": {
      "get": {
        "tags": [
          "Wages"
        ],
        "summary": "Get wage",
        "operationId": "GetWageById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Select by id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WageOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WageOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WageOutput"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Wages"
        ],
        "summary": "Update wage",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique Id of the resource to update.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Subset of wage properties to update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWageInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWageInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWageInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWageInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WageOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WageOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WageOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Wages": {
      "get": {
        "tags": [
          "Wages"
        ],
        "summary": "Get wages",
        "parameters": [
          {
            "name": "wageNumber",
            "in": "query",
            "description": "Select by number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "wageName",
            "in": "query",
            "description": "Select by name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "all",
            "in": "query",
            "description": "Select both active and inactive if true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Filter on active/inactive if all is false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WageOutput"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WageOutput"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WageOutput"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Wages"
        ],
        "summary": "Create wage",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWageInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWageInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWageInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWageInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WageOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WageOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WageOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Webhooks": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Get webhook subscriptions",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionOutputCollectionOutput"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Create webhook subscription",
        "description": "Provide a topic and a callback URL. Topics: SupplierInvoiceUpdated.",
        "requestBody": {
          "description": "Subscription payload.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SubscribeInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscribeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscribeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SubscribeInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/Webhooks/{id}": {
      "delete": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Delete webhook subscription",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Subscription id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Update webhook subscription",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Subscription id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Updated subscription payload.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SubscribeInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscribeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscribeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SubscribeInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionOutput"
                }
              }
            }
          }
        }
      }
    },
    "/WorkHours": {
      "get": {
        "tags": [
          "WorkHours"
        ],
        "summary": "Get work hours",
        "description": "Returns all attested hours in the time interval specified.",
        "parameters": [
          {
            "name": "fromDate",
            "in": "query",
            "description": "Required. Start of selected period. Max 93 days between from and to date.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "Required. End of selected period. Max 93 days between from and to date.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "includeExported",
            "in": "query",
            "description": "`False` only show non-exported to salary system. `True` include hours that are exported to salary system.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "onlyAttested",
            "in": "query",
            "description": "`False` show both attested and unattested. `True` show only attested.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "includeMachineHours",
            "in": "query",
            "description": "`True` includes machine hours.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "includeWagesMarkedNoExport",
            "in": "query",
            "description": "`True` includes wages and additions marked as non exportable.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "Filter on project id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subProjectId",
            "in": "query",
            "description": "Filter on subproject id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "areaId",
            "in": "query",
            "description": "Filter on area id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "exportedExternal",
            "in": "query",
            "description": "`Null` ignore setting. `False` only show non-exported to external system. `True` only show exported to external system.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "exportedExternalId",
            "in": "query",
            "description": "Filter on external export id. Exported external must be `true`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "absence",
            "in": "query",
            "description": "`Null` gets all workhous. `True` gets absence workhours. `False` gets non absence workhours.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeHourBankHours",
            "in": "query",
            "description": "Possibility to override subtract hour bank hours option if the company have this.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "includeAllowanceMarkedNoExport",
            "in": "query",
            "description": "`False` excludes allowances marked as non exportable.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "lastUpdated",
            "in": "query",
            "description": "Only return workhours in the selected period added or edited after this datetime.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WorkHourOutputCollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkHourOutputCollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkHourOutputCollectionOutput"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "WorkHours"
        ],
        "summary": "Register workhour",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/WorkHourInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkHourInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkHourInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WorkHourInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/WorkHours/MarkAsExported": {
      "post": {
        "tags": [
          "WorkHours"
        ],
        "summary": "Mark as exported",
        "requestBody": {
          "description": "Required. Set the work hour Id list. M:SmartDok.Nova.Controllers.WorkHoursController.GetWorkHours(System.DateTime,System.DateTime,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Boolean},System.String,System.Nullable{System.Boolean},System.Boolean,System.Boolean,System.Nullable{System.DateTime}).",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/WorkHours/SetExportedExternal": {
      "post": {
        "tags": [
          "WorkHours"
        ],
        "summary": "Mark as exported externally",
        "description": "This method is used to mark work hours as exported to an external system.\r\nWhat this means is up to the user of the API.\r\nDoes not affect any functionality in SmartDok.",
        "parameters": [
          {
            "name": "exportedExternalId",
            "in": "query",
            "description": "Tag row with export id from external system.",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "setAsExportedExternal",
            "in": "query",
            "description": "`True` mark as exported external. `False` unmark as exported external.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "description": "Required. Set the work hour Id list. M:SmartDok.Nova.Controllers.WorkHoursController.GetWorkHours(System.DateTime,System.DateTime,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Boolean},System.String,System.Nullable{System.Boolean},System.Boolean,System.Boolean,System.Nullable{System.DateTime}).",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/WorkHours/UnmarkExportedExternal": {
      "post": {
        "tags": [
          "WorkHours"
        ],
        "summary": "Mark as not exported externally",
        "parameters": [
          {
            "name": "exportedExternalId",
            "in": "query",
            "description": "Export id from external system",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/WorkHours/v2": {
      "get": {
        "tags": [
          "WorkHours"
        ],
        "summary": "Get workhours",
        "description": "Returns a paginated list of workhours with optional filtering.",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "description": "Number of items to skip (default: 0)",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of items to return (default: 100, max: 100)",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "fromDate",
            "in": "query",
            "description": "Start of selected period.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "End of selected period.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "Filter for project id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "subProjectId",
            "in": "query",
            "description": "Filter for subproject id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "areaId",
            "in": "query",
            "description": "Filter for area id",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "lastUpdated",
            "in": "query",
            "description": "Only return workhours added or edited after this datetime.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "approved",
            "in": "query",
            "description": "`False` show both attested and unattested. `True` show only attested.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "absence",
            "in": "query",
            "description": "`Null` gets all workhours. `True` gets absence workhours. `False` gets non-absence workhours.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WorkHourOutputV2CollectionOutput"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkHourOutputV2CollectionOutput"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkHourOutputV2CollectionOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/WorkHours/{id}": {
      "get": {
        "tags": [
          "WorkHours"
        ],
        "summary": "Get workhour",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Workhour id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WorkHourOutputV2"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkHourOutputV2"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkHourOutputV2"
                }
              }
            }
          }
        }
      }
    },
    "/Absence": {
      "post": {
        "tags": [
          "WorkHours"
        ],
        "summary": "Register absence",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AbsenceInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbsenceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AbsenceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AbsenceInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AbsenceAppliesTo": {
        "enum": [
          "NotRelevant",
          "Subcontractor",
          "Employee"
        ],
        "type": "string",
        "description": "Indicates who the reported absence applies to"
      },
      "AbsenceInput": {
        "required": [
          "Date",
          "ProjectId",
          "TimeFrom",
          "TimeTo",
          "UserId",
          "WageId"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "string",
            "format": "uuid"
          },
          "Date": {
            "type": "string",
            "format": "date"
          },
          "TimeFrom": {
            "type": "string",
            "format": "date-span"
          },
          "TimeTo": {
            "type": "string",
            "format": "date-span"
          },
          "BreakTime": {
            "type": "string",
            "format": "date-span"
          },
          "BreakStart": {
            "type": "string",
            "format": "date-span",
            "nullable": true
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32"
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AreaId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ActivityId": {
            "type": "integer",
            "format": "int32"
          },
          "ActivityCategoryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "WageId": {
            "type": "integer",
            "format": "int32"
          },
          "WageComment": {
            "type": "string",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "nullable": true
          },
          "AdminComment": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ActivityCategoryOutput": {
        "required": [
          "Id",
          "IsActive",
          "Name",
          "Updated"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Work description category Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Work description category name"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active state"
          },
          "Updated": {
            "type": "string",
            "description": "Last updated",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Work description category"
      },
      "ActivityInput": {
        "required": [
          "IsActive",
          "Name"
        ],
        "type": "object",
        "properties": {
          "Number": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Activity number",
            "nullable": true
          },
          "Name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Activity name"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Activity active state"
          },
          "Price": {
            "pattern": "^\\d{1,18}(\\.\\d{0,2})?$",
            "type": "number",
            "description": "External price. Must have up to 18 digits and 2 decimals.",
            "format": "double"
          },
          "InternalRate": {
            "pattern": "^\\d{1,18}(\\.\\d{0,2})?$",
            "type": "number",
            "description": "Internal price. Must have up to 18 digits and 2 decimals.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Activity input model"
      },
      "ActivityOutput": {
        "required": [
          "Name",
          "Number"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Activity id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Activity name"
          },
          "Number": {
            "type": "string",
            "description": "Activity number"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active state"
          },
          "Price": {
            "type": "number",
            "description": "Price",
            "format": "double"
          },
          "InternalRate": {
            "type": "number",
            "description": "Internal rate",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Activity"
      },
      "AdditionInput": {
        "required": [
          "IsActive"
        ],
        "type": "object",
        "properties": {
          "Number": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "description": "Addition Number",
            "nullable": true
          },
          "Name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Addition Name",
            "nullable": true
          },
          "UnitAddition": {
            "type": "boolean",
            "description": "Is Unit Addition"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Is Active"
          },
          "Export": {
            "type": "boolean",
            "description": "Is Export"
          },
          "Rate": {
            "type": "number",
            "description": "Rate",
            "format": "double"
          },
          "HourlyCost": {
            "type": "number",
            "description": "External Price of addition",
            "format": "double"
          },
          "InternalPrice": {
            "type": "number",
            "description": "Internal Price of addition",
            "format": "double",
            "nullable": true
          },
          "Order": {
            "type": "integer",
            "description": "Sorting order.",
            "format": "int32"
          },
          "IsCommentRequired": {
            "type": "boolean",
            "description": "Require the employee to fill out a comment when registering."
          },
          "IsOvertime": {
            "type": "boolean",
            "description": "Internal",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Additions(PUT/POST)"
      },
      "AdditionOutput": {
        "required": [
          "Name",
          "Number"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Addition Id",
            "format": "int32"
          },
          "Number": {
            "type": "string",
            "description": "Addition Number"
          },
          "Name": {
            "type": "string",
            "description": "Addition Name"
          },
          "Addition": {
            "type": "boolean",
            "description": "Is Addition"
          },
          "UnitAddition": {
            "type": "boolean",
            "description": "Is Unit Addition"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Is Active"
          },
          "Export": {
            "type": "boolean",
            "description": "Is Export"
          },
          "Rate": {
            "type": "number",
            "description": "Rate",
            "format": "double"
          },
          "HourlyCost": {
            "type": "number",
            "description": "External Price of addition",
            "format": "double"
          },
          "InternalPrice": {
            "type": "number",
            "description": "Internal Price of addition",
            "format": "double",
            "nullable": true
          },
          "Order": {
            "type": "integer",
            "description": "Sorting order.",
            "format": "int32"
          },
          "IsCommentRequired": {
            "type": "boolean",
            "description": "Require the employee to fill out a comment when registering."
          },
          "IsOvertime": {
            "type": "boolean",
            "description": "Internal"
          }
        },
        "additionalProperties": false,
        "description": "Additions"
      },
      "AdditionRegistration": {
        "type": "object",
        "properties": {
          "WageId": {
            "type": "integer",
            "format": "int32"
          },
          "Amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AllowanceInput": {
        "required": [
          "IsActive",
          "Name",
          "Number"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Allowance Name"
          },
          "Number": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Allowance Number"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Allowance Active state"
          },
          "Rate": {
            "type": "number",
            "description": "Allowance Rate",
            "format": "double",
            "nullable": true
          },
          "Order": {
            "type": "integer",
            "description": "Sorting order",
            "format": "int32"
          },
          "IsExport": {
            "type": "boolean",
            "description": "Export"
          },
          "IsCommentRequired": {
            "type": "boolean",
            "description": "Require the employee to fill out a comment when registering."
          }
        },
        "additionalProperties": false,
        "description": "Allowance. (POST/PUT)"
      },
      "AllowanceInputV2": {
        "required": [
          "IsActive",
          "Name",
          "Number"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Allowance Name"
          },
          "Number": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Allowance Number"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Allowance Active state"
          },
          "Rate": {
            "type": "number",
            "description": "Allowance Rate",
            "format": "double",
            "nullable": true
          },
          "Order": {
            "type": "integer",
            "description": "Sorting order",
            "format": "int32"
          },
          "IsExport": {
            "type": "boolean",
            "description": "Export"
          },
          "IsCommentRequired": {
            "type": "boolean",
            "description": "Require the employee to fill out a comment when registering."
          }
        },
        "additionalProperties": false,
        "description": "Allowance. (POST/PUT)"
      },
      "AllowanceOutput": {
        "required": [
          "Name",
          "Number"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Allowance Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Allowance Name"
          },
          "Number": {
            "type": "string",
            "description": "Allowance Number"
          },
          "CompanyId": {
            "type": "integer",
            "description": "Allowance Company Id",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Allowance Active state"
          },
          "Rate": {
            "type": "number",
            "description": "Allowance Rate",
            "format": "double",
            "nullable": true
          },
          "Order": {
            "type": "integer",
            "description": "Sorting order",
            "format": "int32"
          },
          "IsCommentRequired": {
            "type": "boolean",
            "description": "Require the employee to fill out a comment when registering."
          },
          "IsExport": {
            "type": "boolean",
            "description": "Export"
          }
        },
        "additionalProperties": false,
        "description": "Allowance. (GET)"
      },
      "AllowanceOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AllowanceOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "AreaInput": {
        "required": [
          "AreaName",
          "AreaNumber"
        ],
        "type": "object",
        "properties": {
          "AreaName": {
            "maxLength": 70,
            "minLength": 0,
            "type": "string",
            "description": "Sub project name"
          },
          "AreaNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "SubProject number"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Sub project Active"
          },
          "StartDate": {
            "type": "string",
            "description": "The sub-prosject start date.",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "The sub-prosject end date.",
            "format": "date-time",
            "nullable": true
          },
          "DescriptionText": {
            "maxLength": 300,
            "minLength": 0,
            "type": "string",
            "description": "A text describing the sub-project.",
            "nullable": true
          },
          "ClientCompanyName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The name of the client company.",
            "nullable": true
          },
          "DocumentUrl": {
            "maxLength": 2147483647,
            "minLength": 0,
            "type": "string",
            "description": "Sub-project document URL.",
            "nullable": true
          },
          "CalculatedHourUse": {
            "type": "number",
            "description": "Calculated hour use.",
            "format": "double"
          },
          "Location": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Sub-project location.",
            "nullable": true
          },
          "GeoLocation": {
            "$ref": "#/components/schemas/GeoLocation"
          }
        },
        "additionalProperties": false,
        "description": "Sub-project input data. (Post / Put)"
      },
      "AreaOutput": {
        "required": [
          "AreaName",
          "AreaNumber",
          "ClientCompanyName",
          "DescriptionText",
          "DocumentUrl",
          "Location"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Area Id",
            "format": "int32"
          },
          "ProjectId": {
            "type": "integer",
            "description": "Parent project Id",
            "format": "int32"
          },
          "SubProjectId": {
            "type": "integer",
            "description": "Parent subproject Id",
            "format": "int32"
          },
          "AreaName": {
            "type": "string",
            "description": "Area name"
          },
          "AreaNumber": {
            "type": "string",
            "description": "Sub project number"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active state"
          },
          "StartDate": {
            "type": "string",
            "description": "The sub-prosject start date.",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "The sub-prosject end date.",
            "format": "date-time",
            "nullable": true
          },
          "DescriptionText": {
            "type": "string",
            "description": "A text describing the sub-project."
          },
          "ClientCompanyName": {
            "type": "string",
            "description": "The name of the client company."
          },
          "DocumentUrl": {
            "type": "string",
            "description": "Sub-project document URL."
          },
          "CalculatedHourUse": {
            "type": "number",
            "description": "Calculated hour use.",
            "format": "double"
          },
          "Location": {
            "type": "string",
            "description": "Sub-project location."
          },
          "GeoLocation": {
            "$ref": "#/components/schemas/GeoLocation"
          },
          "Updated": {
            "type": "string",
            "description": "Last updated timestamp",
            "format": "date-time",
            "nullable": true
          },
          "TimeConsumption": {
            "type": "number",
            "description": "Sum work hours registered",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Definition of sub project items."
      },
      "AreaOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AreaOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "AuthorizeInput": {
        "type": "object",
        "properties": {
          "Token": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateWageInput": {
        "required": [
          "IsActive",
          "Name",
          "Number"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Name of wage"
          },
          "Number": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "description": "Number of wage"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active state"
          },
          "Export": {
            "type": "boolean",
            "description": "Export"
          },
          "Rate": {
            "type": "number",
            "description": "Rate of wage",
            "format": "double",
            "nullable": true
          },
          "HourlyCost": {
            "type": "number",
            "description": "External price of wage",
            "format": "double",
            "nullable": true
          },
          "InternalPrice": {
            "type": "number",
            "description": "Internal price of wage",
            "format": "double",
            "nullable": true
          },
          "Order": {
            "type": "integer",
            "description": "Sorting order",
            "format": "int32"
          },
          "IsCommentRequired": {
            "type": "boolean",
            "description": "Require the employee to fill out a comment when registering."
          },
          "IsDaytime": {
            "type": "boolean",
            "description": "True if this is a daytime wage.\r\nIf it's a daytime wage the user should have the option to select Daytime elements."
          },
          "IsAbsence": {
            "type": "boolean",
            "description": "True is current wage is absence"
          }
        },
        "additionalProperties": false,
        "description": "Wage input properties for create"
      },
      "CustomerInput": {
        "required": [
          "CustomerName",
          "IsActive"
        ],
        "type": "object",
        "properties": {
          "CustomerName": {
            "maxLength": 250,
            "minLength": 0,
            "type": "string",
            "description": "Name"
          },
          "CustomerNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Customer Number",
            "nullable": true
          },
          "OrganizationNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Organization Number",
            "nullable": true
          },
          "Email": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Email",
            "nullable": true
          },
          "Address": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Address",
            "nullable": true
          },
          "ZipCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "ZipCode",
            "nullable": true
          },
          "City": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "City",
            "nullable": true
          },
          "AlternativeAddress": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "AlternativeAddress",
            "nullable": true
          },
          "AlternativeZipCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "AlternativeZipCode",
            "nullable": true
          },
          "AlternativeCity": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "AlternativeCity",
            "nullable": true
          },
          "MobileNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Mobile Number",
            "nullable": true
          },
          "PhoneNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Phone Number",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "description": "Comment",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active"
          }
        },
        "additionalProperties": false,
        "description": "Customer Input object"
      },
      "CustomerOutput": {
        "required": [
          "Address",
          "AlternativeAddress",
          "AlternativeCity",
          "AlternativeZipCode",
          "City",
          "Comment",
          "CustomerName",
          "CustomerNumber",
          "Email",
          "MobileNumber",
          "OrganizationNumber",
          "PhoneNumber",
          "ZipCode"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Customer Id",
            "format": "int32"
          },
          "CustomerName": {
            "type": "string",
            "description": "Customer name"
          },
          "CustomerNumber": {
            "type": "string",
            "description": "The customer no."
          },
          "OrganizationNumber": {
            "type": "string",
            "description": "The organization number."
          },
          "Email": {
            "type": "string",
            "description": "The email."
          },
          "Address": {
            "type": "string",
            "description": "The address."
          },
          "ZipCode": {
            "type": "string",
            "description": "The zip code."
          },
          "City": {
            "type": "string",
            "description": "The city."
          },
          "AlternativeAddress": {
            "type": "string",
            "description": "The alternative address."
          },
          "AlternativeZipCode": {
            "type": "string",
            "description": "The alternative zip code."
          },
          "AlternativeCity": {
            "type": "string",
            "description": "The alternative city."
          },
          "MobileNumber": {
            "type": "string",
            "description": "The mobile number."
          },
          "PhoneNumber": {
            "type": "string",
            "description": "The phone number."
          },
          "Comment": {
            "type": "string",
            "description": "The comment."
          },
          "IsActive": {
            "type": "boolean",
            "description": "Indicates whether this customer is active."
          },
          "Updated": {
            "type": "string",
            "description": "Last updated timestamp",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Customer. (GET)"
      },
      "CustomerOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "CustomerOutputMin": {
        "required": [
          "CustomerName",
          "CustomerNumber",
          "MobileNumber",
          "PhoneNumber"
        ],
        "type": "object",
        "properties": {
          "CustomerNumber": {
            "type": "string",
            "description": "User defined customer number."
          },
          "CustomerName": {
            "type": "string",
            "description": "Name of customer."
          },
          "MobileNumber": {
            "type": "string",
            "description": "Mobile phone number."
          },
          "PhoneNumber": {
            "type": "string",
            "description": "Phone number."
          }
        },
        "additionalProperties": false,
        "description": "Minimal information about a customer."
      },
      "DepartmentInput": {
        "required": [
          "IsActive",
          "Name",
          "Number"
        ],
        "type": "object",
        "properties": {
          "Number": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string"
          },
          "Name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string"
          },
          "IsActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DepartmentOutput": {
        "required": [
          "Id",
          "IsActive",
          "Name",
          "Number"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "Number": {
            "type": "string"
          },
          "IsActive": {
            "type": "boolean"
          },
          "Updated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DepartmentOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DepartmentOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "ESJAStatus": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "ESupplierInvoiceDisplayOptions": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "EntityType": {
        "enum": [
          "Activity",
          "Machine",
          "Goods",
          "Wage"
        ],
        "type": "string"
      },
      "FileInformation": {
        "required": [
          "DownloadUrl",
          "Filename"
        ],
        "type": "object",
        "properties": {
          "FileSize": {
            "type": "integer",
            "format": "int64"
          },
          "FileDate": {
            "type": "string",
            "format": "date-time"
          },
          "Filename": {
            "type": "string"
          },
          "DownloadUrl": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "FlowType": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "FormCategoryType": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "FormControl": {
        "required": [
          "Label",
          "Settings",
          "Type"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "FormId": {
            "type": "integer",
            "format": "int64"
          },
          "Label": {
            "type": "string"
          },
          "Information": {
            "type": "string",
            "nullable": true
          },
          "InformationImage": {
            "$ref": "#/components/schemas/InformationPicture"
          },
          "Ordinal": {
            "type": "integer",
            "format": "int32"
          },
          "Required": {
            "type": "boolean"
          },
          "Type": {
            "type": "string"
          },
          "Settings": { }
        },
        "additionalProperties": false
      },
      "FormControlData": {
        "required": [
          "TextBoxValue"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "FormControlId": {
            "type": "integer",
            "format": "int64"
          },
          "FormDataId": {
            "type": "integer",
            "format": "int64"
          },
          "Pictures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormControlPicture"
            },
            "nullable": true
          },
          "TextBoxValue": {
            "type": "string"
          },
          "Settings": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FormControlPicture": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "PictureId": {
            "type": "integer",
            "format": "int64"
          },
          "Name": {
            "type": "string"
          },
          "DisplayName": {
            "type": "string"
          },
          "Type": {
            "type": "string"
          },
          "Url": {
            "type": "string"
          },
          "RoadReference": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "FormDataElement": {
        "type": "object",
        "properties": {
          "FormDataId": {
            "type": "integer",
            "format": "int64"
          },
          "Ordinal": {
            "type": "integer",
            "format": "int32"
          },
          "Data": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FormDataElementCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormDataElement"
            }
          }
        },
        "additionalProperties": false
      },
      "FormDefinitionCategory": {
        "type": "object",
        "properties": {
          "ID": {
            "type": "integer",
            "format": "int64"
          },
          "Label": {
            "type": "string"
          },
          "CompanyId": {
            "type": "integer",
            "format": "int32"
          },
          "ModuleId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "ModuleName": {
            "type": "string"
          },
          "Root": {
            "type": "boolean",
            "nullable": true
          },
          "Visible": {
            "type": "boolean"
          },
          "OriginatorId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FormDefinitionOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Name": {
            "type": "string"
          },
          "Headline": {
            "type": "string"
          },
          "Description": {
            "type": "string"
          },
          "Date": {
            "type": "string",
            "format": "date-time"
          },
          "DocumentNumber": {
            "type": "string"
          },
          "PreparedBy": {
            "type": "string"
          },
          "ApprovedBy": {
            "type": "string"
          },
          "ApprovedDate": {
            "type": "string"
          },
          "IsArchived": {
            "type": "boolean"
          },
          "Version": {
            "type": "string"
          },
          "ShowToAll": {
            "type": "boolean"
          },
          "AllowGPStracking": {
            "type": "boolean"
          },
          "IsDraft": {
            "type": "boolean"
          },
          "IsAvailableOffline": {
            "type": "boolean"
          },
          "ShowSubjectField": {
            "type": "boolean"
          },
          "SendEmailToProjectManager": {
            "type": "boolean"
          },
          "SendEmailToEmployer": {
            "type": "boolean"
          },
          "FollowUpLater": {
            "type": "boolean"
          },
          "FormDefinitionCategoryId": {
            "type": "integer",
            "format": "int64"
          },
          "Revision": {
            "type": "integer",
            "format": "int64"
          },
          "FormDefinitionCategory": {
            "$ref": "#/components/schemas/FormDefinitionCategory"
          },
          "Elements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormControl"
            }
          }
        },
        "additionalProperties": false
      },
      "FormInfoOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "FilledOutDate": {
            "type": "string",
            "format": "date-time"
          },
          "FilledOutBy": {
            "type": "string"
          },
          "FilledOutById": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "Subject": {
            "type": "string"
          },
          "SerialNumber": {
            "type": "integer",
            "format": "int32"
          },
          "FormTemplateId": {
            "type": "integer",
            "format": "int64"
          },
          "ModuleType": {
            "type": "string"
          },
          "MainSerialNumber": {
            "type": "string"
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "MachineId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "LastUpdated": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "FormInfoOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormInfoOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "FormOutput": {
        "type": "object",
        "properties": {
          "FormId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "FilledOutDate": {
            "type": "string",
            "format": "date-time"
          },
          "FollowUpLater": {
            "type": "boolean"
          },
          "FilledOutBy": {
            "type": "string"
          },
          "Subject": {
            "type": "string"
          },
          "Serialnumber": {
            "type": "integer",
            "format": "int32"
          },
          "TemporarilySaved": {
            "type": "boolean"
          },
          "ModuleId": {
            "type": "integer",
            "format": "int64"
          },
          "ModuleInstanceId": {
            "type": "integer",
            "format": "int32"
          },
          "ModuleSubInstanceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "DefFormId": {
            "type": "integer",
            "format": "int64"
          },
          "DefFormName": {
            "type": "string"
          },
          "FilledOutById": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "SignaturePictureId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SignatureName": {
            "type": "string"
          },
          "SignatureEmail": {
            "type": "string"
          },
          "FormStatusId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "MachineId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Elements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormControlData"
            }
          }
        },
        "additionalProperties": false
      },
      "FormOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "GeoLocation": {
        "type": "object",
        "properties": {
          "Lat": {
            "type": "number",
            "description": "Location latitude (between -90 and +90).",
            "format": "double"
          },
          "Lon": {
            "type": "number",
            "description": "Location longitude (between -180 and +180).",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Geographic location (GPS coordinates)."
      },
      "GeoPolygon": {
        "type": "object",
        "properties": {
          "Points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Point"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "example": {
          "type": "Polygon",
          "coordinates": [
            [
              [
                22.91134,
                69.9404
              ],
              [
                22.91176,
                69.93525
              ],
              [
                22.93892,
                69.93536
              ],
              [
                22.94119,
                69.94491
              ],
              [
                22.91134,
                69.9404
              ]
            ]
          ]
        }
      },
      "GetByFilterInput": {
        "type": "object",
        "properties": {
          "Take": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "FromDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ToDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "TitleSearch": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/ESJAStatus"
          },
          "Participant": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "SubmittedBy": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "LastUpdateFromDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "LastUpdateToDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "OrderByAsc": {
            "type": "boolean",
            "nullable": true
          },
          "Cursor": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetFormElementsBatchRequest": {
        "required": [
          "FormDataIds"
        ],
        "type": "object",
        "properties": {
          "FormDataIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Array of submitted form IDs to retrieve elements from."
          },
          "Ordinals": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Array of ordinal positions to filter specific elements.",
            "nullable": true
          },
          "Offset": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "Number of elements to skip.",
            "format": "int32",
            "default": 0
          },
          "Count": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of elements to return.",
            "format": "int32",
            "default": 100
          }
        },
        "additionalProperties": false,
        "description": "Request model for retrieving form elements from multiple submitted forms in a single batch request."
      },
      "GoodsCategoryInput": {
        "required": [
          "IsActive",
          "IsProduction",
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string"
          },
          "IsProduction": {
            "type": "boolean"
          },
          "IsActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GoodsCategoryOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "IsProduction": {
            "type": "boolean"
          },
          "IsActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GoodsConsumptionInput": {
        "required": [
          "Amount",
          "Date",
          "GoodsId",
          "ProjectId"
        ],
        "type": "object",
        "properties": {
          "ProjectId": {
            "type": "integer",
            "description": "Project id",
            "format": "int32"
          },
          "GoodsId": {
            "type": "integer",
            "description": "Goods item Id",
            "format": "int32"
          },
          "Amount": {
            "type": "number",
            "description": "Commodity amount",
            "format": "double"
          },
          "SubProject": {
            "type": "integer",
            "description": "Sub project id",
            "format": "int32",
            "nullable": true
          },
          "Comment": {
            "maxLength": 600,
            "minLength": 0,
            "type": "string",
            "description": "Comments",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "description": "Date",
            "format": "date-time"
          },
          "Expence": {
            "type": "boolean",
            "description": "Pricework",
            "nullable": true
          },
          "Deviation": {
            "type": "boolean",
            "description": "Deviation",
            "nullable": true
          },
          "Alteration": {
            "type": "boolean",
            "description": "Change",
            "nullable": true
          },
          "DccNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the DCC number.",
            "nullable": true
          },
          "FlowId": {
            "$ref": "#/components/schemas/FlowType"
          },
          "LocationId": {
            "type": "integer",
            "description": "Location id",
            "format": "int32",
            "nullable": true
          },
          "UserId": {
            "type": "string",
            "description": "User id",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GoodsConsumptionOutput": {
        "required": [
          "Comment",
          "DccNumber",
          "Project"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Id",
            "format": "int32"
          },
          "Amount": {
            "type": "number",
            "description": "Amount",
            "format": "double"
          },
          "Date": {
            "type": "string",
            "description": "Date",
            "format": "date-time",
            "nullable": true
          },
          "Project": {
            "$ref": "#/components/schemas/ProjectOutput"
          },
          "ProjectId": {
            "type": "integer",
            "description": "Project Id, alias for Project.Id",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "SubProject": {
            "$ref": "#/components/schemas/SubProjectOutput"
          },
          "User": {
            "$ref": "#/components/schemas/UserOutputMin"
          },
          "Goods": {
            "$ref": "#/components/schemas/GoodsOutputBase"
          },
          "GoodsId": {
            "type": "integer",
            "description": "Goods item Id, alias for Goods.Id",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "Comment": {
            "type": "string",
            "description": "Comment"
          },
          "Production": {
            "type": "boolean",
            "description": "Is Production"
          },
          "MassTransport": {
            "type": "boolean",
            "description": "Is Mass Transport"
          },
          "AENumber": {
            "type": "string",
            "description": "AENumber",
            "readOnly": true,
            "deprecated": true
          },
          "DccNumber": {
            "type": "string",
            "description": "DCC number"
          },
          "Expence": {
            "type": "boolean",
            "description": "Expence"
          },
          "Deviation": {
            "type": "boolean",
            "description": "Deviation"
          },
          "Alteration": {
            "type": "boolean",
            "description": "Alteration"
          },
          "Time": {
            "type": "string",
            "description": "Time",
            "nullable": true
          },
          "FuelConsumption": {
            "type": "number",
            "description": "FuelConsumption",
            "format": "double"
          },
          "NewUnitPrice": {
            "type": "number",
            "description": "NewUnitPrice",
            "format": "double"
          },
          "Invoiced": {
            "type": "boolean",
            "description": "Invoiced"
          },
          "DateRegistered": {
            "type": "string",
            "description": "DateRegistered",
            "format": "date-time",
            "nullable": true
          },
          "MachineId": {
            "type": "integer",
            "description": "MachineId",
            "format": "int32",
            "nullable": true
          },
          "DateInvoiced": {
            "type": "string",
            "description": "DateInvoiced",
            "format": "date-time",
            "nullable": true
          },
          "InvoicedBy": {
            "type": "string",
            "description": "InvoicedBy",
            "nullable": true
          },
          "AdminAttested": {
            "type": "boolean",
            "description": "Attested by Admin"
          },
          "DateAdminAttested": {
            "type": "string",
            "description": "Date Admin Attested",
            "format": "date-time",
            "nullable": true
          },
          "AdminName": {
            "type": "string",
            "description": "Admin Name",
            "nullable": true
          },
          "BasAttested": {
            "type": "boolean",
            "description": "Bas Attested"
          },
          "DateBasAttested": {
            "type": "string",
            "description": "Date Bas Attested",
            "format": "date-time",
            "nullable": true
          },
          "BasName": {
            "type": "string",
            "description": "Bas Name",
            "nullable": true
          },
          "ToInvoice": {
            "type": "boolean",
            "description": "To Invoice"
          },
          "DateToInvoice": {
            "type": "string",
            "description": "Date To Invoice",
            "format": "date-time"
          },
          "ToInvoiceBy": {
            "type": "string",
            "description": "To Invoice By",
            "format": "uuid",
            "nullable": true
          },
          "Exported": {
            "type": "boolean",
            "description": "Exported"
          },
          "ExportedDate": {
            "type": "string",
            "description": "Exported Date",
            "format": "date-time",
            "nullable": true
          },
          "AgreedPrice": {
            "type": "number",
            "description": "Agreed price to be used if set.",
            "format": "double",
            "nullable": true
          },
          "Sum": {
            "type": "number",
            "description": "Total sum. If AgreedPrice != null the total sum will be AgreedPrice.\r\nElse it is Amount * GoodsPrice",
            "format": "double"
          },
          "FlowId": {
            "$ref": "#/components/schemas/FlowType"
          },
          "LocationId": {
            "type": "integer",
            "description": "Location id",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Goods Consumption (GET)"
      },
      "GoodsConsumptionOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GoodsConsumptionOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "GoodsFlowOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Goods flow id",
            "format": "int32"
          },
          "Direction": {
            "type": "string",
            "description": "Goods flow direction"
          }
        },
        "additionalProperties": false,
        "description": "Goods flow (GET)"
      },
      "GoodsInput": {
        "required": [
          "IsActive",
          "IsProduction",
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Commodity name"
          },
          "Number": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Number",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "Amount",
            "format": "double"
          },
          "Price": {
            "type": "number",
            "description": "Price",
            "format": "double"
          },
          "InternalCost": {
            "type": "number",
            "description": "Internal cost",
            "format": "double",
            "nullable": true
          },
          "UnitId": {
            "type": "integer",
            "description": "Goods unit id",
            "format": "int32"
          },
          "CategoryId": {
            "type": "integer",
            "description": "Goods category id",
            "format": "int32"
          },
          "IsProduction": {
            "type": "boolean",
            "description": "Commodity is for production"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active"
          },
          "Barcodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Barcodes",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Commodity class (POST / PUT)"
      },
      "GoodsLocationInput": {
        "required": [
          "IsActive",
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 70,
            "minLength": 0,
            "type": "string",
            "description": "Goods category name"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active location"
          }
        },
        "additionalProperties": false,
        "description": "Goods location class (POST / PUT)"
      },
      "GoodsLocationOutput": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Goods location id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Goods location name"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Goods location status"
          }
        },
        "additionalProperties": false,
        "description": "Goods location (GET)"
      },
      "GoodsOutputBase": {
        "required": [
          "Category",
          "Name"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Commodity id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Commodity Name"
          },
          "Number": {
            "type": "string",
            "description": "Number",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "Amount",
            "format": "double"
          },
          "UnitId": {
            "type": "integer",
            "description": "Unit Id.",
            "format": "int32"
          },
          "Unit": {
            "$ref": "#/components/schemas/GoodsUnitOutput"
          },
          "IsActive": {
            "type": "boolean",
            "description": "IsActive"
          },
          "IsProduction": {
            "type": "boolean",
            "description": "IsProduction"
          },
          "Price": {
            "type": "number",
            "description": "Price",
            "format": "double"
          },
          "InternalCost": {
            "type": "number",
            "description": "Price",
            "format": "double",
            "nullable": true
          },
          "CategoryId": {
            "type": "integer",
            "description": "Goods category Id.",
            "format": "int32"
          },
          "Category": {
            "$ref": "#/components/schemas/GoodsCategoryOutput"
          },
          "Barcodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Barcodes",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Commodity (from goods) class (GET)"
      },
      "GoodsOutputBaseCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GoodsOutputBase"
            }
          }
        },
        "additionalProperties": false
      },
      "GoodsTransportationOutput": {
        "required": [
          "Comment",
          "DccNumber",
          "Project"
        ],
        "type": "object",
        "properties": {
          "Fetched": {
            "type": "string",
            "description": "Fetched (pickup location)",
            "nullable": true
          },
          "FetchedLocationId": {
            "type": "integer",
            "description": "Pickup location id (references a goods location; resolve via the GoodsLocations endpoint)",
            "format": "int32",
            "nullable": true
          },
          "FetchedTime": {
            "type": "string",
            "description": "Pickup time of day (local time, format HH:mm)",
            "nullable": true
          },
          "Delivered": {
            "type": "string",
            "description": "Delivered (delivery location)",
            "nullable": true
          },
          "DeliveredLocationId": {
            "type": "integer",
            "description": "Delivery location id (references a goods location; resolve via the GoodsLocations endpoint)",
            "format": "int32",
            "nullable": true
          },
          "DeliveredTime": {
            "type": "string",
            "description": "Delivery time of day (local time, format HH:mm)",
            "nullable": true
          },
          "Kilometer": {
            "type": "number",
            "description": "Kilometer",
            "format": "double"
          },
          "NumberOfLoads": {
            "type": "integer",
            "description": "Number Of Loads",
            "format": "int32"
          },
          "Id": {
            "type": "integer",
            "description": "Id",
            "format": "int32"
          },
          "Amount": {
            "type": "number",
            "description": "Amount",
            "format": "double"
          },
          "Date": {
            "type": "string",
            "description": "Date",
            "format": "date-time",
            "nullable": true
          },
          "Project": {
            "$ref": "#/components/schemas/ProjectOutput"
          },
          "ProjectId": {
            "type": "integer",
            "description": "Project Id, alias for Project.Id",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "SubProject": {
            "$ref": "#/components/schemas/SubProjectOutput"
          },
          "User": {
            "$ref": "#/components/schemas/UserOutputMin"
          },
          "Goods": {
            "$ref": "#/components/schemas/GoodsOutputBase"
          },
          "GoodsId": {
            "type": "integer",
            "description": "Goods item Id, alias for Goods.Id",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "Comment": {
            "type": "string",
            "description": "Comment"
          },
          "Production": {
            "type": "boolean",
            "description": "Is Production"
          },
          "MassTransport": {
            "type": "boolean",
            "description": "Is Mass Transport"
          },
          "AENumber": {
            "type": "string",
            "description": "AENumber",
            "readOnly": true,
            "deprecated": true
          },
          "DccNumber": {
            "type": "string",
            "description": "DCC number"
          },
          "Expence": {
            "type": "boolean",
            "description": "Expence"
          },
          "Deviation": {
            "type": "boolean",
            "description": "Deviation"
          },
          "Alteration": {
            "type": "boolean",
            "description": "Alteration"
          },
          "Time": {
            "type": "string",
            "description": "Time",
            "nullable": true
          },
          "FuelConsumption": {
            "type": "number",
            "description": "FuelConsumption",
            "format": "double"
          },
          "NewUnitPrice": {
            "type": "number",
            "description": "NewUnitPrice",
            "format": "double"
          },
          "Invoiced": {
            "type": "boolean",
            "description": "Invoiced"
          },
          "DateRegistered": {
            "type": "string",
            "description": "DateRegistered",
            "format": "date-time",
            "nullable": true
          },
          "MachineId": {
            "type": "integer",
            "description": "MachineId",
            "format": "int32",
            "nullable": true
          },
          "DateInvoiced": {
            "type": "string",
            "description": "DateInvoiced",
            "format": "date-time",
            "nullable": true
          },
          "InvoicedBy": {
            "type": "string",
            "description": "InvoicedBy",
            "nullable": true
          },
          "AdminAttested": {
            "type": "boolean",
            "description": "Attested by Admin"
          },
          "DateAdminAttested": {
            "type": "string",
            "description": "Date Admin Attested",
            "format": "date-time",
            "nullable": true
          },
          "AdminName": {
            "type": "string",
            "description": "Admin Name",
            "nullable": true
          },
          "BasAttested": {
            "type": "boolean",
            "description": "Bas Attested"
          },
          "DateBasAttested": {
            "type": "string",
            "description": "Date Bas Attested",
            "format": "date-time",
            "nullable": true
          },
          "BasName": {
            "type": "string",
            "description": "Bas Name",
            "nullable": true
          },
          "ToInvoice": {
            "type": "boolean",
            "description": "To Invoice"
          },
          "DateToInvoice": {
            "type": "string",
            "description": "Date To Invoice",
            "format": "date-time"
          },
          "ToInvoiceBy": {
            "type": "string",
            "description": "To Invoice By",
            "format": "uuid",
            "nullable": true
          },
          "Exported": {
            "type": "boolean",
            "description": "Exported"
          },
          "ExportedDate": {
            "type": "string",
            "description": "Exported Date",
            "format": "date-time",
            "nullable": true
          },
          "AgreedPrice": {
            "type": "number",
            "description": "Agreed price to be used if set.",
            "format": "double",
            "nullable": true
          },
          "Sum": {
            "type": "number",
            "description": "Total sum. If AgreedPrice != null the total sum will be AgreedPrice.\r\nElse it is Amount * GoodsPrice",
            "format": "double"
          },
          "FlowId": {
            "$ref": "#/components/schemas/FlowType"
          },
          "LocationId": {
            "type": "integer",
            "description": "Location id",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Goods Transportation (GET)"
      },
      "GoodsTransportationOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GoodsTransportationOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "GoodsUnitOutput": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Goods category id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Goods category name / description"
          }
        },
        "additionalProperties": false,
        "description": "Goods unit class (GET)"
      },
      "GroupOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "GroupUserInput": {
        "type": "object",
        "properties": {
          "UserId": {
            "type": "string",
            "format": "uuid"
          },
          "GroupId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "InformationPicture": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Url": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "InvoiceEstimationSettings": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "WorkHours": {
            "type": "boolean",
            "nullable": true
          },
          "HourlyRate": {
            "type": "integer",
            "description": "FromProject - 1/FromWagetype - 2/FromWorkdescription - 3",
            "format": "int32",
            "nullable": true
          },
          "SplitAdditions": {
            "type": "boolean",
            "nullable": true
          },
          "SplitUnitAdditions": {
            "type": "boolean",
            "nullable": true
          },
          "SplitDiet": {
            "type": "boolean",
            "nullable": true
          },
          "WorkHoursOnlyAttested": {
            "type": "boolean",
            "nullable": true
          },
          "MachineHours": {
            "type": "boolean",
            "nullable": true
          },
          "MachineHourlyRate": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "GoodsConsumption": {
            "type": "boolean",
            "nullable": true
          },
          "Transportation": {
            "type": "boolean",
            "nullable": true
          },
          "Manufacturing": {
            "type": "boolean",
            "nullable": true
          },
          "Workroute": {
            "type": "boolean",
            "description": "Rodeliste",
            "nullable": true
          },
          "ShowOnlyMarkedToInvoicing": {
            "type": "boolean",
            "description": "GoodsConsumption/Transportation/Manufacturing – one of these must be selected",
            "nullable": true
          },
          "ShowKmForTransportation": {
            "type": "boolean",
            "description": "Option for showing km for transportation as separate line"
          },
          "ShowLatencyForTransportation": {
            "type": "boolean",
            "description": "Option for showing latency for transportation as separate line"
          },
          "ShowWorkingHoursForTransportation": {
            "type": "boolean",
            "description": "Option for showing working hours for transportation as separate line"
          },
          "UserId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "AdditionsAndUnitAdditions": {
            "type": "boolean",
            "nullable": true
          },
          "SupplierInvoice": {
            "type": "boolean",
            "nullable": true
          },
          "SupplierInvoiceDisplayOption": {
            "$ref": "#/components/schemas/ESupplierInvoiceDisplayOptions"
          },
          "AutoRegWorkRoutes": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceLineOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "RowId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Project": {
            "type": "string",
            "nullable": true
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SubProject": {
            "type": "string",
            "nullable": true
          },
          "AreaId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Area": {
            "type": "string",
            "nullable": true
          },
          "InvoiceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "InvoiceLineTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "InvoiceLineType": {
            "type": "string",
            "nullable": true
          },
          "PriceOriginal": {
            "type": "number",
            "format": "double"
          },
          "QuantityOriginal": {
            "type": "number",
            "format": "double"
          },
          "Price": {
            "type": "number",
            "format": "double"
          },
          "Quantity": {
            "type": "number",
            "format": "double"
          },
          "Discount": {
            "type": "number",
            "format": "double"
          },
          "Detail": {
            "type": "string",
            "nullable": true
          },
          "Code": {
            "type": "string",
            "nullable": true
          },
          "LineText": {
            "type": "string",
            "nullable": true
          },
          "UnitType": {
            "type": "string",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "nullable": true
          },
          "Created": {
            "type": "string",
            "format": "date-time"
          },
          "CreatedBy": {
            "type": "string",
            "format": "uuid"
          },
          "Order": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Surcharge": {
            "type": "number",
            "format": "double"
          },
          "StartPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MinPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "SupplierInvoiceId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "SupplierInvoiceLineId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "AutoRegInvoiceLineId": {
            "type": "string",
            "nullable": true
          },
          "Sum": {
            "type": "number",
            "format": "double",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "CompanyId": {
            "type": "integer",
            "format": "int32"
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SubProjectIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "AreaIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "InvoiceEstimationSettingsId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Created": {
            "type": "string",
            "format": "date-time"
          },
          "CreatedBy": {
            "type": "string",
            "format": "uuid"
          },
          "Updated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "UpdatedBy": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "UpdatedCounter": {
            "type": "integer",
            "format": "int32"
          },
          "DateFrom": {
            "type": "string",
            "format": "date-time"
          },
          "DateTo": {
            "type": "string",
            "format": "date-time"
          },
          "IsDraft": {
            "type": "boolean"
          },
          "Title": {
            "type": "string",
            "nullable": true
          },
          "InvoiceRef": {
            "type": "string",
            "nullable": true
          },
          "SerialNumber": {
            "type": "string",
            "nullable": true
          },
          "InvoicedBy": {
            "type": "string",
            "nullable": true
          },
          "InvoiceCalculationNote": {
            "type": "string",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "nullable": true
          },
          "WorkTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "WorkTypeNr": {
            "type": "string",
            "nullable": true
          },
          "EstimationSettings": {
            "$ref": "#/components/schemas/InvoiceEstimationSettings"
          },
          "InvoiceLines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceLineOutput"
            }
          },
          "InvoiceSummary": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceSummary"
            }
          },
          "Discount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Surcharge": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Sent": {
            "type": "boolean"
          },
          "SentBy": {
            "type": "string",
            "nullable": true
          },
          "SentDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Credited": {
            "type": "boolean"
          },
          "CreditedBy": {
            "type": "string",
            "nullable": true
          },
          "CreditedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "CustomerNumber": {
            "type": "string",
            "nullable": true
          },
          "CustomerName": {
            "type": "string",
            "nullable": true
          },
          "CustomerAddress": {
            "type": "string",
            "nullable": true
          },
          "CustomerZipCode": {
            "type": "string",
            "nullable": true
          },
          "CustomerCity": {
            "type": "string",
            "nullable": true
          },
          "CompanyName": {
            "type": "string",
            "nullable": true
          },
          "CompanyOrgNo": {
            "type": "string",
            "nullable": true
          },
          "CompanyPhone": {
            "type": "string",
            "nullable": true
          },
          "CompanyEmail": {
            "type": "string",
            "nullable": true
          },
          "CompanyWeb": {
            "type": "string",
            "nullable": true
          },
          "TotalPrice": {
            "type": "number",
            "format": "double"
          },
          "SubProjectIdsCalculationNote": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvoiceSummary": {
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "UnitType": {
            "type": "string",
            "nullable": true
          },
          "InvoiceLineTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "InvoiceLineType": {
            "type": "string",
            "nullable": true
          },
          "Quantity": {
            "type": "number",
            "format": "double"
          },
          "Price": {
            "type": "number",
            "format": "double"
          },
          "Code": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LicenseInfo": {
        "type": "object",
        "properties": {
          "AvailableLicenses": {
            "type": "integer",
            "format": "int32"
          },
          "TotalLicenses": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Location": {
        "type": "object",
        "properties": {
          "Latitude": {
            "type": "number",
            "format": "double"
          },
          "Longitude": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "LocationInput": {
        "type": "object",
        "properties": {
          "Latitude": {
            "maximum": 90,
            "minimum": -90,
            "type": "number",
            "description": "The latitude coordinate. Must be between -90 and 90.",
            "format": "double"
          },
          "Longitude": {
            "maximum": 180,
            "minimum": -180,
            "type": "number",
            "description": "The longitude coordinate. Must be between -180 and 180.",
            "format": "double"
          },
          "GeoFenceRadius": {
            "maximum": 2147483647,
            "minimum": 150,
            "type": "integer",
            "description": "The geofence radius in meters. Must be 150 or greater.",
            "format": "int32",
            "nullable": true
          },
          "AllowAutoLogout": {
            "type": "boolean"
          },
          "GeoPolygon": {
            "$ref": "#/components/schemas/GeoPolygon"
          }
        },
        "additionalProperties": false
      },
      "LocationOutput": {
        "type": "object",
        "properties": {
          "ProjectId": {
            "type": "integer",
            "format": "int32"
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Latitude": {
            "type": "number",
            "format": "double"
          },
          "Longitude": {
            "type": "number",
            "format": "double"
          },
          "GeoFenceRadius": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AllowAutoLogout": {
            "type": "boolean"
          },
          "GeoPolygon": {
            "$ref": "#/components/schemas/GeoPolygon"
          }
        },
        "additionalProperties": false
      },
      "MachineCategoryInput": {
        "required": [
          "IsActive",
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Equipment/Machine category name"
          },
          "Comment": {
            "maxLength": 2147483647,
            "minLength": 0,
            "type": "string",
            "description": "Comment",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active state"
          }
        },
        "additionalProperties": false,
        "description": "Equipment/Machine  category (POST/PUT)"
      },
      "MachineCategoryOutput": {
        "required": [
          "Id",
          "IsActive",
          "Name"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Equipment/Machine category Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Equipment/Machine category name"
          },
          "Comment": {
            "type": "string",
            "description": "Comment",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active state"
          }
        },
        "additionalProperties": false,
        "description": "Machine category (GET)"
      },
      "MachineHourRegistration": {
        "type": "object",
        "properties": {
          "MachineId": {
            "type": "integer",
            "format": "int32"
          },
          "Hours": {
            "type": "string",
            "format": "date-span"
          }
        },
        "additionalProperties": false
      },
      "MachineInput": {
        "required": [
          "IsActive"
        ],
        "type": "object",
        "properties": {
          "InternalNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Machine internal number",
            "nullable": true
          },
          "Name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Machine name",
            "nullable": true
          },
          "RegistrationNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Machine number",
            "nullable": true
          },
          "Description": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Machine description",
            "nullable": true
          },
          "HoursUsed": {
            "type": "integer",
            "description": "Hours Used",
            "format": "int32"
          },
          "MilageKm": {
            "type": "integer",
            "description": "Milage Km",
            "format": "int32"
          },
          "ModelYear": {
            "type": "integer",
            "description": "Machine year",
            "format": "int32"
          },
          "Location": {
            "maxLength": 150,
            "minLength": 0,
            "type": "string",
            "description": "Machine location",
            "nullable": true
          },
          "LocationDateTime": {
            "type": "string",
            "description": "Location DateTime",
            "format": "date-time",
            "nullable": true
          },
          "DateAcquired": {
            "type": "string",
            "description": "Date Acquired",
            "format": "date-time",
            "nullable": true
          },
          "ResponsibleUser1": {
            "type": "string",
            "description": "Responsible User Id",
            "format": "uuid",
            "nullable": true
          },
          "ResponsibleUser2": {
            "type": "string",
            "description": "Responsible User Id",
            "format": "uuid",
            "nullable": true
          },
          "Comment": {
            "maxLength": 250,
            "minLength": 0,
            "type": "string",
            "description": "Comment",
            "nullable": true
          },
          "PricePerHour": {
            "type": "number",
            "description": "Price Per Hour",
            "format": "double",
            "nullable": true
          },
          "SerialNumber": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Serial number",
            "nullable": true
          },
          "CategoryId": {
            "type": "integer",
            "description": "Machine category id",
            "format": "int32",
            "nullable": true
          },
          "InternalCost": {
            "type": "number",
            "description": "Machine Internal Cost",
            "format": "double",
            "nullable": true
          },
          "Code": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Machine Code",
            "nullable": true
          },
          "HideInTransportation": {
            "type": "boolean",
            "description": "Do not show this machine in transport."
          },
          "MaxTons": {
            "type": "number",
            "description": "Max capacity (tons).",
            "format": "double"
          },
          "MaxM3": {
            "type": "number",
            "description": "Max capacity (M3).",
            "format": "double"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active state"
          },
          "Trailer": {
            "type": "boolean",
            "description": "Is machine a trailer"
          },
          "ShowInRegistrations": {
            "type": "boolean",
            "description": "Show in workhour registration\r\nIf internal number equals \"0\" it will override this to false",
            "nullable": true
          },
          "DepartmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "DepartmentIds that machine belongs to.\r\nIf set to null on post all departments are selected\r\nIf set to null on put the saved department relation is kept.\r\nIf set to empty list all departments are selected.",
            "nullable": true
          },
          "DocumentCenterId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MachineOutput": {
        "required": [
          "DepartmentIds",
          "InternalNumber",
          "Name",
          "ResponsibleUsers"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Machine Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Machine name"
          },
          "InternalNumber": {
            "type": "string",
            "description": "Machine internal number"
          },
          "CategoryId": {
            "type": "integer",
            "description": "Machine category id",
            "format": "int32"
          },
          "RegistrationNumber": {
            "type": "string",
            "description": "Machine number",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Machine description",
            "nullable": true
          },
          "HoursUsed": {
            "type": "integer",
            "description": "Hours Used",
            "format": "int32"
          },
          "MilageKm": {
            "type": "integer",
            "description": "Milage Km",
            "format": "int32"
          },
          "ModelYear": {
            "type": "integer",
            "description": "Machine year",
            "format": "int32"
          },
          "Location": {
            "type": "string",
            "description": "Machines location",
            "nullable": true
          },
          "LocationDateTime": {
            "type": "string",
            "description": "Location DateTime",
            "format": "date-time",
            "nullable": true
          },
          "DateAcquired": {
            "type": "string",
            "description": "Date Acquired",
            "format": "date-time",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active state"
          },
          "Comment": {
            "type": "string",
            "description": "Comment",
            "nullable": true
          },
          "PricePerHour": {
            "type": "number",
            "description": "Price Per Hour",
            "format": "double",
            "nullable": true
          },
          "SerialNumber": {
            "type": "string",
            "description": "Serial number",
            "nullable": true
          },
          "CategoryName": {
            "type": "string",
            "description": "Machine category name",
            "nullable": true
          },
          "InternalCost": {
            "type": "number",
            "description": "Machine Internal Cost",
            "format": "double",
            "nullable": true
          },
          "Code": {
            "type": "string",
            "description": "Machine Code",
            "nullable": true
          },
          "HideInTransportation": {
            "type": "boolean",
            "description": "Do not show this machine in transport."
          },
          "MaxTons": {
            "type": "number",
            "description": "Max capacity (tons).",
            "format": "double"
          },
          "MaxM3": {
            "type": "number",
            "description": "Max capacity (M3).",
            "format": "double"
          },
          "ImageUrl": {
            "type": "string",
            "description": "Machine image Url",
            "nullable": true
          },
          "ResponsibleUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserOutputMin"
            },
            "description": "The responsible users."
          },
          "Trailer": {
            "type": "boolean",
            "description": "Machine is trailer."
          },
          "ShowInRegistrations": {
            "type": "boolean",
            "description": "Gets a value indicating whether machine should be shown in registrations or not."
          },
          "DepartmentIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The departments machine is visible for"
          }
        },
        "additionalProperties": false
      },
      "MachineOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachineOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "NewsPost": {
        "required": [
          "Author",
          "Body",
          "Summary",
          "Title",
          "VisibleTo"
        ],
        "type": "object",
        "properties": {
          "Title": {
            "type": "string",
            "description": "Title of the post."
          },
          "Author": {
            "type": "string",
            "description": "Author of the post."
          },
          "Summary": {
            "type": "string",
            "description": "Summary of the post."
          },
          "Body": {
            "type": "string",
            "description": "Body of the post."
          },
          "VisibleTo": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Role"
            },
            "description": "List of roles than can see the post."
          },
          "DateTimeVisible": {
            "type": "string",
            "description": "Date when post becomes visible.",
            "format": "date-time",
            "nullable": true
          },
          "IsDraft": {
            "type": "boolean",
            "description": "Indicates if post is a draft."
          },
          "PinnedToTop": {
            "type": "boolean",
            "description": "Indicates if post is pinned to the top."
          }
        },
        "additionalProperties": false,
        "description": "News post"
      },
      "OrderInput": {
        "required": [
          "IsActive",
          "OrderName",
          "OrderNumber"
        ],
        "type": "object",
        "properties": {
          "OrderNumber": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Order number"
          },
          "OrderName": {
            "maxLength": 70,
            "minLength": 0,
            "type": "string",
            "description": "Order name"
          },
          "OrderTypeId": {
            "type": "integer",
            "description": "Order type id",
            "format": "int32",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          },
          "Finished": {
            "type": "boolean",
            "nullable": true
          },
          "RecipientsIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "List of recipients.",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "description": "Customer id",
            "format": "int32",
            "nullable": true
          },
          "CompletedIn": {
            "type": "integer",
            "description": "Completed in (days)",
            "format": "int32"
          },
          "DescriptionText": {
            "maxLength": 600,
            "minLength": 0,
            "type": "string",
            "description": "A text describing the order.",
            "nullable": true
          },
          "Location": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "A text describing the location of the order.",
            "nullable": true
          },
          "PermissionsIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "List of users with access.",
            "nullable": true
          },
          "OrderOwnerName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "OrderOwnerEmail": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "OrderOwnerMobile": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "ClientCompanyContact": {
            "maxLength": 70,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "ClientCompanyName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "ClientCompanyEmail": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "ClientCompanyMobile": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "ExternalReference": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "description": "Order start date",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "Order end date",
            "format": "date-time",
            "nullable": true
          },
          "GeoLocation": {
            "$ref": "#/components/schemas/GeoLocation"
          }
        },
        "additionalProperties": false,
        "description": "Order class (POST / PUT)"
      },
      "OrderOutput": {
        "required": [
          "ClientCompanyContact",
          "ClientCompanyEmail",
          "ClientCompanyMobile",
          "ClientCompanyName",
          "DescriptionText",
          "Location",
          "OrderName",
          "OrderOwnerEmail",
          "OrderOwnerMobile",
          "OrderOwnerName"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique order Id.",
            "format": "int32"
          },
          "OrderNumber": {
            "type": "string",
            "description": "User defined order number.",
            "nullable": true
          },
          "OrderName": {
            "type": "string",
            "description": "Order name."
          },
          "OrderTypeId": {
            "type": "integer",
            "description": "The order type id.",
            "format": "int32"
          },
          "OrderTypeName": {
            "type": "string",
            "description": "Order type name.",
            "nullable": true
          },
          "CompletedIn": {
            "type": "integer",
            "description": "The completed in days.",
            "format": "int32"
          },
          "CustomerId": {
            "type": "integer",
            "description": "Customer Id.",
            "format": "int32",
            "nullable": true
          },
          "Location": {
            "type": "string",
            "description": "A text describing the location of the order."
          },
          "OrderOwnerName": {
            "type": "string",
            "description": "The name of the responsible."
          },
          "OrderOwnerEmail": {
            "type": "string",
            "description": "The responsible email."
          },
          "OrderOwnerMobile": {
            "type": "string",
            "description": "The responsible mobile."
          },
          "ClientCompanyName": {
            "type": "string",
            "description": "The name of the client company."
          },
          "ClientCompanyContact": {
            "type": "string",
            "description": "The client company contact."
          },
          "ClientCompanyEmail": {
            "type": "string",
            "description": "The client company email."
          },
          "ClientCompanyMobile": {
            "type": "string",
            "description": "The client company mobile."
          },
          "DescriptionText": {
            "type": "string",
            "description": "A text describing the order."
          },
          "IsActive": {
            "type": "boolean",
            "description": "If this order is Active."
          },
          "Finished": {
            "type": "boolean",
            "description": "If the order is finished."
          },
          "PermissionIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "List of users with access.",
            "nullable": true
          },
          "RecipientsIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "List of recipients.",
            "nullable": true
          },
          "WorkerIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "List of User Ids for workers who have been assigned to the order (read-only).\r\n            \r\nThis attribute is read-only. Changing the workers is done by invoking the\r\nPUT method on `/Orders/[Order ID]/Workers`.",
            "nullable": true
          },
          "Customer": {
            "$ref": "#/components/schemas/CustomerOutputMin"
          },
          "ExternalReference": {
            "type": "string",
            "nullable": true
          },
          "Created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Updated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "description": "Order start date",
            "format": "date-time"
          },
          "EndDate": {
            "type": "string",
            "description": "Order end date",
            "format": "date-time",
            "nullable": true
          },
          "GeoLocation": {
            "$ref": "#/components/schemas/GeoLocation"
          }
        },
        "additionalProperties": false,
        "description": "Order output (GET)"
      },
      "OrderOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "OrderTypeInput": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "type": "string"
          },
          "IsActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "OrderTypeOutput": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Order type Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Order type name"
          },
          "IsActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "description": "Order type. (GET)"
      },
      "OrderWorkers": {
        "required": [
          "Recipients",
          "Workers"
        ],
        "type": "object",
        "properties": {
          "Recipients": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Recipients are users that are registered as pending to accept the order, and become workers."
          },
          "Workers": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Workers are users that have accepted the order, and started working on it."
          }
        },
        "additionalProperties": false
      },
      "PictureOutput": {
        "type": "object",
        "properties": {
          "Url": {
            "type": "string"
          },
          "Location": {
            "$ref": "#/components/schemas/Location"
          }
        },
        "additionalProperties": false
      },
      "PictureOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PictureOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "Point": {
        "type": "object",
        "properties": {
          "Latitude": {
            "type": "number",
            "format": "double"
          },
          "Longitude": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "PostInput": {
        "required": [
          "Author",
          "Body",
          "Summary",
          "Title",
          "VisibleTo"
        ],
        "type": "object",
        "properties": {
          "Title": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Title of the post."
          },
          "Author": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Author of the post."
          },
          "Summary": {
            "maxLength": 500,
            "minLength": 0,
            "type": "string",
            "description": "Summary of the post."
          },
          "Body": {
            "type": "string",
            "description": "Body of the post."
          },
          "VisibleTo": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Role"
            },
            "description": "List of roles that can see the post."
          },
          "DateTimeVisible": {
            "type": "string",
            "description": "Date when post becomes visible.\r\nWill be set to `MaxValue` for posts that are draft\r\nIf null and post is not a draft, it will be visible immediately",
            "format": "date-time",
            "nullable": true
          },
          "IsDraft": {
            "type": "boolean",
            "description": "Indicates if post is a draft."
          },
          "PinnedToTop": {
            "type": "boolean",
            "description": "Indicates if post is pinned to the top."
          }
        },
        "additionalProperties": false,
        "description": "News post input"
      },
      "PriceOutput": {
        "required": [
          "EntityId",
          "EntityType",
          "PriceId"
        ],
        "type": "object",
        "properties": {
          "PriceId": {
            "type": "string",
            "format": "uuid"
          },
          "EntityId": {
            "type": "string"
          },
          "EntityType": {
            "$ref": "#/components/schemas/EntityType"
          },
          "InternalPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ExternalPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PriceOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceOutput"
            }
          }
        },
        "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": { }
      },
      "ProjectInput": {
        "required": [
          "IsActive",
          "ProjectName",
          "ProjectNumber"
        ],
        "type": "object",
        "properties": {
          "ProjectName": {
            "maxLength": 70,
            "minLength": 0,
            "type": "string",
            "description": "Project name"
          },
          "ProjectNumber": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Project number"
          },
          "DescriptionText": {
            "maxLength": 600,
            "minLength": 0,
            "type": "string",
            "description": "Project description",
            "nullable": true
          },
          "Location": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Project location",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "description": "Customer Id",
            "format": "int32",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "description": "Project starting date",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "Project end date",
            "format": "date-time",
            "nullable": true
          },
          "Departments": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "List of department Id's (assosiated departments for project)",
            "nullable": true
          },
          "ActivityIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "List of activity Id's (assosiated activites for project)",
            "nullable": true
          },
          "ProjectOwnerName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Projectmanager name",
            "nullable": true
          },
          "ProjectOwnerEmail": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Projectmanager e-mail (semicolon-separated for multiple addresses)",
            "nullable": true
          },
          "ProjectOwnerMobile": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Projectmanager phone",
            "nullable": true
          },
          "ClientCompanyName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name of the employer company.",
            "nullable": true
          },
          "ClientCompanyContact": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Employer name",
            "nullable": true
          },
          "ClientCompanyEmail": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Employer e-mail (semicolon-separated for multiple addresses)",
            "nullable": true
          },
          "ClientCompanyMobile": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Employer phone",
            "nullable": true
          },
          "DocumentUrl": {
            "maxLength": 2147483647,
            "minLength": 0,
            "type": "string",
            "description": "Project document URL.",
            "nullable": true
          },
          "CalculatedTimeConsumption": {
            "type": "integer",
            "description": "The calculated time consumption.",
            "format": "int32",
            "nullable": true
          },
          "HourlyRate": {
            "type": "number",
            "description": "HourlyRate",
            "format": "double"
          },
          "InternalCostPerHour": {
            "type": "number",
            "description": "Internal cost per hour",
            "format": "double"
          },
          "UserIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Users that have access to the project",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Whether this project is active"
          },
          "IsAbsenceProject": {
            "type": "boolean",
            "description": "Whether this project is Abscence"
          },
          "Finished": {
            "type": "boolean",
            "description": "Whether this project is Finished"
          },
          "ToBeInvoiced": {
            "type": "boolean",
            "description": "Whether this project should be included in invoices."
          },
          "GeoLocation": {
            "$ref": "#/components/schemas/GeoLocation"
          },
          "InvoiceCalculationNote": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Invoice reference",
            "nullable": true
          },
          "OrderTypeId": {
            "type": "integer",
            "description": "Order type id.\r\n            \r\nWhen creating a new project, setting this to non-null creates an order.\r\nWhen updating an existing project, this is required if the project is an order,\r\nand forbidden otherwise.",
            "format": "int32",
            "nullable": true
          },
          "HSEResponsibleId": {
            "type": "string",
            "description": "HSE responsible",
            "format": "uuid",
            "nullable": true
          },
          "QAResponsibleId": {
            "type": "string",
            "description": "Quality assurance responsible",
            "format": "uuid",
            "nullable": true
          },
          "ExternalReference": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "External reference. Only used with orders.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProjectInputLegacy": {
        "required": [
          "IsActive",
          "ProjectName",
          "ProjectNumber"
        ],
        "type": "object",
        "properties": {
          "ProjectName": {
            "maxLength": 70,
            "minLength": 0,
            "type": "string",
            "description": "Project name"
          },
          "ProjectNumber": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Project number"
          },
          "DescriptionText": {
            "maxLength": 2147483647,
            "minLength": 0,
            "type": "string",
            "description": "Project description",
            "nullable": true
          },
          "Location": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Project location",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "description": "Customer Id",
            "format": "int32",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "description": "Project starting date",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "Project end date",
            "format": "date-time",
            "nullable": true
          },
          "Departments": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "List of department Id's (assosiated departments for project)",
            "nullable": true
          },
          "ActivityIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "List of activity Id's (assosiated activites for project)",
            "nullable": true
          },
          "ProjectOwnerName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Projectmanager name",
            "nullable": true
          },
          "ProjectOwnerEmail": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Projectmanager e-mail (semicolon-separated for multiple addresses)",
            "nullable": true
          },
          "ProjectOwnerMobile": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Projectmanager phone",
            "nullable": true
          },
          "ClientCompanyName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name of the employer company.",
            "nullable": true
          },
          "ClientCompanyContact": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Employer name",
            "nullable": true
          },
          "ClientCompanyEmail": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Employer e-mail (semicolon-separated for multiple addresses)",
            "nullable": true
          },
          "ClientCompanyMobile": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "Employer phone",
            "nullable": true
          },
          "DocumentUrl": {
            "maxLength": 2147483647,
            "minLength": 0,
            "type": "string",
            "description": "Project document URL.",
            "nullable": true
          },
          "CalculatedTimeConsumption": {
            "type": "integer",
            "description": "The calculated time consumption.",
            "format": "int32",
            "nullable": true
          },
          "HourlyRate": {
            "type": "number",
            "description": "HourlyRate",
            "format": "double"
          },
          "InternalCostPerHour": {
            "type": "number",
            "description": "Internal cost per hour",
            "format": "double"
          },
          "UserIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Users that have access to the project",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Whether this project is active"
          },
          "IsAbsenceProject": {
            "type": "boolean",
            "description": "Whether this project is Abscence"
          },
          "Finished": {
            "type": "boolean",
            "description": "Whether this project is Finished"
          },
          "ToBeInvoiced": {
            "type": "boolean",
            "description": "Whether this project should be included in invoices."
          },
          "GeoLocation": {
            "$ref": "#/components/schemas/GeoLocation"
          },
          "InvoiceCalculationNote": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Invoice reference",
            "nullable": true
          },
          "OrderTypeId": {
            "type": "integer",
            "description": "Order type id.\r\n            \r\nWhen creating a new project, setting this to non-null creates an order.\r\nWhen updating an existing project, this is required if the project is an order,\r\nand forbidden otherwise.",
            "format": "int32",
            "nullable": true
          },
          "ExternalReference": {
            "type": "string",
            "description": "External reference. Only used with orders.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProjectOutput": {
        "required": [
          "ClientCompanyContact",
          "ClientCompanyEmail",
          "ClientCompanyMobile",
          "ClientCompanyName",
          "Departments",
          "DescriptionText",
          "DocumentUrl",
          "Location",
          "ProjectName",
          "ProjectNumber",
          "ProjectOwnerEmail",
          "ProjectOwnerMobile",
          "ProjectOwnerName",
          "UserIds"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Project Id.",
            "format": "int32"
          },
          "ProjectName": {
            "type": "string",
            "description": "Project name."
          },
          "ProjectNumber": {
            "type": "string",
            "description": "The project number."
          },
          "Departments": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "List of department ids for selected project"
          },
          "IsAbsenceProject": {
            "type": "boolean",
            "description": "Whether this project is absence"
          },
          "IsActive": {
            "type": "boolean",
            "description": "If this project is Active"
          },
          "IsOrder": {
            "type": "boolean",
            "description": "If this project is Order"
          },
          "OrderTypeId": {
            "type": "integer",
            "description": "If this project is an order, the ID of the order type.",
            "format": "int32",
            "nullable": true
          },
          "ExternalReference": {
            "type": "string",
            "description": "External reference. Only used with orders.",
            "nullable": true
          },
          "CustomerId": {
            "type": "integer",
            "description": "The customer identifier.",
            "format": "int32",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "description": "The prosject start date.",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "The prosject end date.",
            "format": "date-time",
            "nullable": true
          },
          "Location": {
            "type": "string",
            "description": "The projectplace."
          },
          "ProjectOwnerName": {
            "type": "string",
            "description": "The name of the responsible."
          },
          "ProjectOwnerEmail": {
            "type": "string",
            "description": "The responsible email."
          },
          "ProjectOwnerMobile": {
            "type": "string",
            "description": "The responsible mobile."
          },
          "ClientCompanyName": {
            "type": "string",
            "description": "The name of the client company."
          },
          "ClientCompanyContact": {
            "type": "string",
            "description": "The client company contact."
          },
          "ClientCompanyEmail": {
            "type": "string",
            "description": "The client company email."
          },
          "ClientCompanyMobile": {
            "type": "string",
            "description": "The client company mobile."
          },
          "DescriptionText": {
            "type": "string",
            "description": "A text describing the project."
          },
          "DocumentUrl": {
            "type": "string",
            "description": "Project document URL."
          },
          "CalcuatedTimeConsumption": {
            "type": "integer",
            "description": "Obsolete - Use CalculatedTimeConsumption instead",
            "format": "int32",
            "readOnly": true,
            "deprecated": true
          },
          "CalculatedTimeConsumption": {
            "type": "integer",
            "description": "The calculated time consumption.",
            "format": "int32"
          },
          "InternalCostPerHour": {
            "type": "number",
            "description": "The internal cost per hour.",
            "format": "double"
          },
          "HourlyRate": {
            "type": "number",
            "description": "External cost per hour.",
            "format": "double"
          },
          "Finished": {
            "type": "boolean",
            "description": "If the project is finished."
          },
          "ToBeInvoiced": {
            "type": "boolean",
            "description": "Whether this project should be included in invoices."
          },
          "GeoLocation": {
            "$ref": "#/components/schemas/GeoLocation"
          },
          "UserIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Users that have access to the project."
          },
          "Updated": {
            "type": "string",
            "description": "Last updated timestamp",
            "format": "date-time",
            "nullable": true
          },
          "Created": {
            "type": "string",
            "description": "Created timestamp",
            "format": "date-time",
            "nullable": true
          },
          "InvoiceCalculationNote": {
            "type": "string",
            "description": "Invoice reference",
            "nullable": true
          },
          "HSEResponsibleId": {
            "type": "string",
            "description": "HSE responsible",
            "format": "uuid",
            "nullable": true
          },
          "QAResponsibleId": {
            "type": "string",
            "description": "Quality assurance responsible",
            "format": "uuid",
            "nullable": true
          },
          "TimeConsumption": {
            "type": "number",
            "description": "Sum work hours registered",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Project"
      },
      "ProjectOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "ProjectOutputMin": {
        "required": [
          "ProjectId",
          "ProjectName",
          "ProjectNumber"
        ],
        "type": "object",
        "properties": {
          "ProjectId": {
            "type": "integer",
            "description": "Project Id",
            "format": "int32"
          },
          "ProjectName": {
            "type": "string",
            "description": "Project Name"
          },
          "ProjectNumber": {
            "type": "string",
            "description": "Project Number"
          }
        },
        "additionalProperties": false,
        "description": "Minimal representation of a project."
      },
      "QDReportLookup": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32"
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SubmitDate": {
            "type": "string",
            "format": "date-time"
          },
          "SubmitterName": {
            "type": "string",
            "nullable": true
          },
          "CaseWorkerName": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/RegistrationStatus"
          },
          "Title": {
            "type": "string",
            "nullable": true
          },
          "Lat": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Lon": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Accuracy": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "EventId": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "QDReportLookupExtended": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Status": {
            "$ref": "#/components/schemas/RegistrationStatus"
          },
          "SubmitDate": {
            "type": "string",
            "format": "date-time"
          },
          "Title": {
            "type": "string",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "EventId": {
            "type": "integer",
            "format": "int64"
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32"
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SubmitterName": {
            "type": "string",
            "nullable": true
          },
          "CaseWorkerName": {
            "type": "string",
            "nullable": true
          },
          "Lat": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Lon": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Accuracy": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Cause": {
            "type": "string",
            "nullable": true
          },
          "Concerning": {
            "type": "string",
            "nullable": true
          },
          "RelatesTo": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RUEEventLogOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Event log entry identifier",
            "format": "int64"
          },
          "Description": {
            "type": "string",
            "description": "Description of what changed",
            "nullable": true
          },
          "ChangeTime": {
            "type": "string",
            "description": "When the change occurred",
            "format": "date-time"
          },
          "UserId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Event log entry / audit trail item"
      },
      "RUEEventLogOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RUEEventLogOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "RUEMessageOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Message identifier",
            "format": "int64"
          },
          "Message": {
            "type": "string",
            "description": "Message content",
            "nullable": true
          },
          "SubmitterId": {
            "type": "string",
            "description": "User ID of the message author",
            "format": "uuid"
          },
          "TimeStamp": {
            "type": "string",
            "description": "When the message was posted",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Chat message/comment on a RUE report"
      },
      "RUEMessageOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RUEMessageOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "RUEReportDetailOutput": {
        "required": [
          "Severity",
          "Values"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique report identifier",
            "format": "int64"
          },
          "EventId": {
            "type": "integer",
            "description": "Sequential event number for this report",
            "format": "int64"
          },
          "Title": {
            "type": "string",
            "description": "Report title",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Detailed description of the incident",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/RUEStatus"
          },
          "Severity": {
            "type": "string",
            "description": "Severity level of the incident (translated)"
          },
          "SubmitDate": {
            "type": "string",
            "description": "Date and time when the report was submitted",
            "format": "date-time"
          },
          "EventTime": {
            "type": "string",
            "description": "Date and time when the incident occurred",
            "format": "date-time"
          },
          "DeadlineDateTime": {
            "type": "string",
            "description": "Deadline for processing the report",
            "format": "date-time",
            "nullable": true
          },
          "ProjectId": {
            "type": "integer",
            "description": "Project identifier",
            "format": "int32"
          },
          "SubProjectId": {
            "type": "integer",
            "description": "Sub-project identifier (if applicable)",
            "format": "int32",
            "nullable": true
          },
          "SubmitterId": {
            "type": "string",
            "description": "User ID of the person who submitted the report (null if anonymous)",
            "format": "uuid",
            "nullable": true
          },
          "OwnerId": {
            "type": "string",
            "description": "User ID of the case owner/responsible person",
            "format": "uuid"
          },
          "ImmediateMeasuresDescription": {
            "type": "string",
            "description": "Description of immediate measures taken",
            "nullable": true
          },
          "PermanentMeasuresDescription": {
            "type": "string",
            "description": "Description of permanent measures to prevent recurrence",
            "nullable": true
          },
          "ConsequenceAnalysis": {
            "type": "string",
            "description": "Analysis of consequences",
            "nullable": true
          },
          "Conclusion": {
            "type": "string",
            "description": "Conclusion when closing the report",
            "nullable": true
          },
          "ConclusionVisibleToSubmitter": {
            "type": "boolean",
            "description": "Whether the conclusion is visible to the submitter",
            "nullable": true
          },
          "EstimatedCost": {
            "type": "number",
            "description": "Estimated cost of the incident",
            "format": "double",
            "nullable": true
          },
          "ActualCost": {
            "type": "number",
            "description": "Actual cost of the incident",
            "format": "double",
            "nullable": true
          },
          "AbsenceDays": {
            "type": "integer",
            "description": "Number of absence days caused by the incident",
            "format": "int32",
            "nullable": true
          },
          "AbsenceAppliesTo": {
            "$ref": "#/components/schemas/AbsenceAppliesTo"
          },
          "GeoLocation": {
            "$ref": "#/components/schemas/GeoLocation"
          },
          "LocationAccuracy": {
            "type": "integer",
            "description": "GPS accuracy in meters",
            "format": "int32",
            "nullable": true
          },
          "ReportedBySubcontractor": {
            "type": "boolean",
            "description": "Whether the incident was reported by a subcontractor"
          },
          "Values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RUEValueGroupOutput"
            },
            "description": "Custom field values for this report"
          },
          "DefinitionId": {
            "type": "integer",
            "description": "RUE definition identifier for the company",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Complete RUE (Rapport om Uønskede Hendelser) report with all related data"
      },
      "RUEReportOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32"
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SubmitDate": {
            "type": "string",
            "format": "date-time"
          },
          "SubmitterName": {
            "type": "string",
            "nullable": true
          },
          "CaseWorkerName": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/RUEStatus"
          },
          "Title": {
            "type": "string",
            "nullable": true
          },
          "Lat": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Lon": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Accuracy": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "EventId": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RUEReportOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RUEReportOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "RUEReportSummaryOutput": {
        "required": [
          "Severity"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique report identifier",
            "format": "int64"
          },
          "EventId": {
            "type": "integer",
            "description": "Sequential event number for this report",
            "format": "int64"
          },
          "Title": {
            "type": "string",
            "description": "Report title",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/RUEStatus"
          },
          "Severity": {
            "type": "string",
            "description": "Severity level of the incident (translated)"
          },
          "SubmitDate": {
            "type": "string",
            "description": "Date and time when the report was submitted",
            "format": "date-time"
          },
          "EventTime": {
            "type": "string",
            "description": "Date and time when the incident occurred",
            "format": "date-time"
          },
          "DeadlineDateTime": {
            "type": "string",
            "description": "Deadline for processing the report",
            "format": "date-time",
            "nullable": true
          },
          "ProjectId": {
            "type": "integer",
            "description": "Project identifier",
            "format": "int32"
          },
          "SubProjectId": {
            "type": "integer",
            "description": "Sub-project identifier (if applicable)",
            "format": "int32",
            "nullable": true
          },
          "OwnerId": {
            "type": "string",
            "description": "User ID of the case owner/responsible person",
            "format": "uuid"
          },
          "SubmitterId": {
            "type": "string",
            "description": "User ID of the person who submitted the report (null if anonymous)",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Summary of a RUE report for list views"
      },
      "RUEReportSummaryOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RUEReportSummaryOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "RUEStatus": {
        "enum": [
          "Unprocessed",
          "Open",
          "Close",
          "Discarded"
        ],
        "type": "string"
      },
      "RUEValueGroupOutput": {
        "required": [
          "Values"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Value group identifier",
            "format": "int32"
          },
          "Type": {
            "$ref": "#/components/schemas/RUEValueType"
          },
          "Values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RUEValueOutput"
            },
            "description": "Selected values in this group"
          }
        },
        "additionalProperties": false,
        "description": "Custom field value group"
      },
      "RUEValueOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Value identifier",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Display name",
            "nullable": true
          },
          "Key": {
            "type": "string",
            "description": "Stable, language-independent key for this value.\r\nUse this for programmatic lookups instead of SmartDok.Nova.DTO.RUE.RUEValueOutput.Name.",
            "nullable": true
          },
          "Type": {
            "$ref": "#/components/schemas/RUEValueType"
          },
          "Sequence": {
            "type": "number",
            "description": "Sort order",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Individual custom field value"
      },
      "RUEValueType": {
        "enum": [
          "EventType",
          "EventInvolved",
          "CauseOfEvent",
          "WorkOperation",
          "Description",
          "Severity",
          "ImmediateMeasures",
          "Position",
          "SubmitAnonymously",
          "Photos",
          "Title"
        ],
        "type": "string"
      },
      "RegistrationStatus": {
        "enum": [
          "Unprocessed",
          "Open",
          "Close",
          "Discarded"
        ],
        "type": "string"
      },
      "RegistrationType": {
        "enum": [
          "Ordinary",
          "Deviation",
          "Change",
          "Calculation"
        ],
        "type": "string"
      },
      "ResourceOutput": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Resource Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Resource display name"
          },
          "ResourceType": {
            "$ref": "#/components/schemas/ResourceType"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Whether the resource is active"
          },
          "Comment": {
            "type": "string",
            "description": "Comment",
            "nullable": true
          },
          "UserId": {
            "type": "string",
            "description": "User id\r\n`null` if the resource is a machine or external",
            "format": "uuid",
            "nullable": true
          },
          "MachineId": {
            "type": "integer",
            "description": "Machine id\r\n`null` if the resource is a user or external",
            "format": "int32",
            "nullable": true
          },
          "IsExternal": {
            "type": "boolean",
            "description": "If the resource is external or not"
          }
        },
        "additionalProperties": false,
        "description": "Represents a schedulable resource (user or machine)"
      },
      "ResourceOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "ResourcePlanOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Planning block Id",
            "format": "uuid"
          },
          "ResourceId": {
            "type": "integer",
            "description": "Resource Id",
            "format": "int32"
          },
          "Start": {
            "type": "string",
            "description": "Block start (date and time)",
            "format": "date-time"
          },
          "End": {
            "type": "string",
            "description": "Block end (date and time)",
            "format": "date-time"
          },
          "ProjectId": {
            "type": "integer",
            "description": "Project Id",
            "format": "int32"
          },
          "SubProjectId": {
            "type": "integer",
            "description": "SubProject/Area Id",
            "format": "int32",
            "nullable": true
          },
          "ActivityId": {
            "type": "integer",
            "description": "Activity/Work category Id",
            "format": "int32",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "Description/Comment",
            "nullable": true
          },
          "ResourceGroupId": {
            "type": "string",
            "description": "Resource group Id (for connected planning blocks across multiple resources)",
            "format": "uuid",
            "nullable": true
          },
          "Created": {
            "type": "string",
            "description": "When the block was created",
            "format": "date-time"
          },
          "Modified": {
            "type": "string",
            "description": "When the block was last modified",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "A scheduled planning block for a resource"
      },
      "ResourcePlanOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourcePlanOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "ResourceType": {
        "enum": [
          "Person",
          "Machine"
        ],
        "type": "string",
        "description": "The type of resource"
      },
      "Role": {
        "enum": [
          "User",
          "Guest",
          "Foreman",
          "ProjectAdministrator",
          "Administrator",
          "EmployeeWithoutAccess",
          "SubContractor"
        ],
        "type": "string"
      },
      "SJAPotentialHazardType": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Key": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SJAReasonType": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Key": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SJASelectedReason": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SaveError": {
        "type": "object",
        "properties": {
          "Code": {
            "$ref": "#/components/schemas/SaveErrorCode"
          },
          "Message": {
            "type": "string",
            "description": "Textual error message.\r\n            \r\nThis is mainly for logging/debugging purposes."
          },
          "Error": {
            "type": "string",
            "description": "The error code as a string (e.g. \"NameIsRequired\").",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the result of a failed API save operation (PUT/POST).\r\n            \r\nIn case of errors, an error code is provided that represents the type\r\nof error that occurred, so that the client can react programmatically\r\nto different errors."
      },
      "SaveErrorCode": {
        "enum": [
          100,
          110,
          111,
          112,
          113,
          114,
          115,
          116,
          117,
          118,
          119,
          120,
          130,
          131,
          132,
          135,
          136,
          140,
          141,
          142,
          143,
          144,
          145,
          146,
          147,
          148,
          150,
          160,
          170,
          180,
          200
        ],
        "type": "integer",
        "description": "API error codes (PUT/POST).",
        "format": "int32"
      },
      "SubProjectInput": {
        "required": [
          "SubProjectName",
          "SubProjectNumber"
        ],
        "type": "object",
        "properties": {
          "SubProjectName": {
            "maxLength": 70,
            "minLength": 0,
            "type": "string",
            "description": "Sub project name"
          },
          "SubProjectNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "SubProject number"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Sub project Active",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "description": "The sub-prosject start date.",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "The sub-prosject end date.",
            "format": "date-time",
            "nullable": true
          },
          "DescriptionText": {
            "maxLength": 300,
            "minLength": 0,
            "type": "string",
            "description": "A text describing the sub-project.",
            "nullable": true
          },
          "ClientCompanyName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The name of the client company.",
            "nullable": true
          },
          "DocumentUrl": {
            "maxLength": 2147483647,
            "minLength": 0,
            "type": "string",
            "description": "Sub-project document URL.",
            "nullable": true
          },
          "CalculatedHourUse": {
            "type": "number",
            "description": "Calculated hour use.",
            "format": "double"
          },
          "Location": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Sub-project location.",
            "nullable": true
          },
          "GeoLocation": {
            "$ref": "#/components/schemas/GeoLocation"
          },
          "InvoiceCalculationNote": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Invoice reference",
            "nullable": true
          },
          "HSEResponsibleId": {
            "type": "string",
            "description": "HSE responsible",
            "format": "uuid",
            "nullable": true
          },
          "QAResponsibleId": {
            "type": "string",
            "description": "Quality assurance responsible",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Sub-project input data. (Post / Put)"
      },
      "SubProjectOutput": {
        "required": [
          "Project",
          "SubProjectName",
          "SubProjectNumber"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Sub project Id",
            "format": "int32"
          },
          "ProjectId": {
            "type": "integer",
            "description": "Parent project Id",
            "format": "int32"
          },
          "SubProjectName": {
            "type": "string",
            "description": "Sub project name"
          },
          "SubProjectNumber": {
            "type": "string",
            "description": "Sub project number"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active state"
          },
          "StartDate": {
            "type": "string",
            "description": "The sub-prosject start date.",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "The sub-prosject end date.",
            "format": "date-time",
            "nullable": true
          },
          "DescriptionText": {
            "type": "string",
            "description": "A text describing the sub-project.",
            "nullable": true
          },
          "ClientCompanyName": {
            "type": "string",
            "description": "The name of the client company.",
            "nullable": true
          },
          "DocumentUrl": {
            "type": "string",
            "description": "Sub-project document URL.",
            "nullable": true
          },
          "CalculatedHourUse": {
            "type": "number",
            "description": "Calculated hour use.",
            "format": "double"
          },
          "Location": {
            "type": "string",
            "description": "Sub-project location.",
            "nullable": true
          },
          "GeoLocation": {
            "$ref": "#/components/schemas/GeoLocation"
          },
          "Project": {
            "$ref": "#/components/schemas/ProjectOutputMin"
          },
          "Updated": {
            "type": "string",
            "description": "Last updated timestamp",
            "format": "date-time",
            "nullable": true
          },
          "InvoiceCalculationNote": {
            "type": "string",
            "description": "Invoice reference",
            "nullable": true
          },
          "HSEResponsibleId": {
            "type": "string",
            "description": "HSE responsible",
            "format": "uuid",
            "nullable": true
          },
          "QAResponsibleId": {
            "type": "string",
            "description": "Quality assurance responsible",
            "format": "uuid",
            "nullable": true
          },
          "TimeConsumption": {
            "type": "number",
            "description": "Sum work hours registered",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Definition of sub project items."
      },
      "SubProjectOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubProjectOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "SubmittedSJADocument": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "ProjectName": {
            "type": "string",
            "nullable": true
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32"
          },
          "SubProjectName": {
            "type": "string",
            "nullable": true
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Title": {
            "type": "string",
            "nullable": true
          },
          "SerialNumber": {
            "type": "string",
            "nullable": true
          },
          "SubmittedByName": {
            "type": "string",
            "nullable": true
          },
          "SubmitterId": {
            "type": "string",
            "format": "uuid"
          },
          "SubmittedDate": {
            "type": "string",
            "format": "date-time"
          },
          "DiscardReason": {
            "type": "string",
            "nullable": true
          },
          "SubTasksCount": {
            "type": "integer",
            "format": "int32"
          },
          "ParticipantsCount": {
            "type": "integer",
            "format": "int32"
          },
          "Reasons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SJASelectedReason"
            },
            "nullable": true
          },
          "OtherReasonDescription": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/ESJAStatus"
          },
          "LastUpdatedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubscribeInput": {
        "required": [
          "Callback",
          "Topic"
        ],
        "type": "object",
        "properties": {
          "Topic": {
            "$ref": "#/components/schemas/WebhookTopics"
          },
          "Callback": {
            "minLength": 1,
            "type": "string",
            "description": "Callback URL"
          }
        },
        "additionalProperties": false,
        "description": "Webhook subscription input data."
      },
      "SubscriptionOutput": {
        "required": [
          "Callback",
          "Topic"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Webhook Id",
            "format": "int32"
          },
          "Topic": {
            "$ref": "#/components/schemas/WebhookTopics"
          },
          "Callback": {
            "type": "string",
            "description": "Webhook Callback URL"
          }
        },
        "additionalProperties": false,
        "description": "Webhook subscription output data."
      },
      "SubscriptionOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "SupplierInvoiceBookingStatus": {
        "enum": [
          "Booked",
          "NotBooked",
          "NotSet"
        ],
        "type": "string"
      },
      "SupplierInvoiceDocumentInput": {
        "type": "object",
        "properties": {
          "DocumentName": {
            "type": "string"
          },
          "DocumentDownloadUrl": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SupplierInvoiceInput": {
        "required": [
          "BaseCurrency",
          "CostCenter",
          "ExternalInvoiceNumber",
          "InvoiceCurrency",
          "SupplierName"
        ],
        "type": "object",
        "properties": {
          "InvoiceNumber": {
            "type": "string",
            "nullable": true
          },
          "ExternalInvoiceNumber": {
            "type": "string",
            "description": "Unique identifier for the invoice in the external system for a given SmartDok User"
          },
          "InvoiceStatus": {
            "$ref": "#/components/schemas/SupplierInvoiceStatus"
          },
          "BookingStatus": {
            "$ref": "#/components/schemas/SupplierInvoiceBookingStatus"
          },
          "IssueDate": {
            "type": "string",
            "format": "date"
          },
          "DueDate": {
            "type": "string",
            "format": "date"
          },
          "FullyPaidDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "BaseCurrency": {
            "type": "string"
          },
          "InvoiceCurrency": {
            "type": "string"
          },
          "ConversionRate": {
            "type": "number",
            "format": "double"
          },
          "CostCenter": {
            "type": "string"
          },
          "ContactInReceiverCompany": {
            "type": "string",
            "nullable": true
          },
          "Freight": {
            "type": "number",
            "format": "double"
          },
          "TotalIncludingVat": {
            "type": "number",
            "format": "double"
          },
          "Vat": {
            "type": "number",
            "format": "double"
          },
          "SupplierNumber": {
            "type": "string",
            "nullable": true
          },
          "SupplierName": {
            "type": "string"
          },
          "ModifiedByName": {
            "type": "string",
            "nullable": true
          },
          "ModifiedByEmail": {
            "type": "string",
            "nullable": true
          },
          "Lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupplierInvoiceLineInput"
            }
          }
        },
        "additionalProperties": false
      },
      "SupplierInvoiceLineInput": {
        "required": [
          "ExternalInvoiceLineNumber",
          "ItemDescription"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "ExternalInvoiceLineNumber": {
            "type": "string"
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ItemDescription": {
            "type": "string"
          },
          "ItemCount": {
            "type": "number",
            "format": "double"
          },
          "PricePerUnit": {
            "type": "number",
            "format": "double"
          },
          "DiscountPercentage": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Vat": {
            "type": "number",
            "format": "double"
          },
          "AmountIncludingVat": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "SupplierInvoiceLineOutput": {
        "required": [
          "ItemDescription"
        ],
        "type": "object",
        "properties": {
          "ExternalInvoiceLineNumber": {
            "type": "string",
            "description": "This is an external line id, which needs to be used when doing updates.\r\nThis value must be a non-empty value and must be unique within current invoice.",
            "nullable": true
          },
          "Vat": {
            "type": "number",
            "format": "double"
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "DiscountPercentage": {
            "type": "number",
            "format": "double"
          },
          "ItemCount": {
            "type": "number",
            "format": "double"
          },
          "ItemDescription": {
            "type": "string"
          },
          "AmountIncludingVat": {
            "type": "number",
            "format": "double"
          },
          "PricePerUnit": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "SupplierInvoiceOutput": {
        "required": [
          "BaseCurrency",
          "InvoiceCurrency",
          "SupplierName"
        ],
        "type": "object",
        "properties": {
          "InvoiceNumber": {
            "type": "string",
            "nullable": true
          },
          "ExternalInvoiceNumber": {
            "type": "string",
            "description": "Unique identifier for the invoice in the external system for a given SmartDok User",
            "nullable": true
          },
          "InvoiceStatus": {
            "$ref": "#/components/schemas/SupplierInvoiceStatus"
          },
          "BookingStatus": {
            "$ref": "#/components/schemas/SupplierInvoiceBookingStatus"
          },
          "IssueDate": {
            "type": "string",
            "format": "date"
          },
          "DueDate": {
            "type": "string",
            "format": "date"
          },
          "FullyPaidDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "BaseCurrency": {
            "type": "string"
          },
          "InvoiceCurrency": {
            "type": "string"
          },
          "ConversionRate": {
            "type": "number",
            "format": "double"
          },
          "CostCenter": {
            "type": "string",
            "nullable": true
          },
          "ContactInReceiverCompany": {
            "type": "string",
            "nullable": true
          },
          "Freight": {
            "type": "number",
            "format": "double"
          },
          "TotalIncludingVat": {
            "type": "number",
            "format": "double"
          },
          "Vat": {
            "type": "number",
            "format": "double"
          },
          "SupplierNumber": {
            "type": "string",
            "nullable": true
          },
          "SupplierName": {
            "type": "string"
          },
          "ModifiedByName": {
            "type": "string",
            "nullable": true
          },
          "ModifiedByEmail": {
            "type": "string",
            "nullable": true
          },
          "Lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupplierInvoiceLineOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "SupplierInvoiceStatus": {
        "enum": [
          "Unbooked",
          "PaymentPending",
          "AuthorizePending",
          "Paid",
          "Cancelled",
          "NotSet"
        ],
        "type": "string"
      },
      "ToolCategoryInput": {
        "required": [
          "IsActive",
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "minLength": 1,
            "type": "string",
            "description": "Tool category name."
          },
          "Prefix": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Tool category prefix.",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Whether the tool category is active."
          }
        },
        "additionalProperties": false,
        "description": "Tool category input (PUT/POST)."
      },
      "ToolCategoryOutput": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Tool category id.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Tool category name.",
            "nullable": true
          },
          "Prefix": {
            "type": "string",
            "description": "Tool category prefix.",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Whether the tool category is active."
          },
          "IsEmpty": {
            "type": "boolean",
            "description": "Whether there are currently any tools that have this category (read-only)."
          }
        },
        "additionalProperties": false,
        "description": "Tool category"
      },
      "ToolInput": {
        "required": [
          "InternalNumber",
          "IsActive",
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Name of the tools."
          },
          "InternalNumber": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Internal tool number."
          },
          "LocationId": {
            "type": "integer",
            "description": "The ID of the tool's current location.\r\n            \r\nPUT: Changing location location when updating a tool is currently not allowed, and results in an error.",
            "format": "int32"
          },
          "CategoryId": {
            "type": "integer",
            "description": "The ID of the tool's category.",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Whther the tool is active (not discarded)."
          },
          "DeliveredBy": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Name of the store that the tool was purchased from.",
            "nullable": true
          },
          "AquiredDate": {
            "type": "string",
            "description": "The date that the tool was purchased.",
            "format": "date-time",
            "nullable": true
          },
          "DocumentUrl": {
            "maxLength": 2147483647,
            "minLength": 0,
            "type": "string",
            "description": "Document URL.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Tool input (PUT/POST)"
      },
      "ToolLocationInput": {
        "required": [
          "IsActive",
          "Name",
          "Number"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 70,
            "minLength": 0,
            "type": "string",
            "description": "Location name"
          },
          "Number": {
            "type": "integer",
            "description": "Location number",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Location active"
          }
        },
        "additionalProperties": false,
        "description": "Tools location input (POST / PUT)"
      },
      "ToolLocationOutput": {
        "required": [
          "Name",
          "Number"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Location id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Location name"
          },
          "Number": {
            "type": "integer",
            "description": "Location number",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Location active"
          }
        },
        "additionalProperties": false,
        "description": "Tools location output (GET)"
      },
      "ToolOutput": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Unique Id.",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of the tools."
          },
          "InternalNumber": {
            "type": "string",
            "description": "Internal tool number.",
            "nullable": true
          },
          "CategoryId": {
            "type": "integer",
            "description": "The ID of the tool's category.",
            "format": "int32"
          },
          "Category": {
            "$ref": "#/components/schemas/ToolCategoryOutput"
          },
          "LocationId": {
            "type": "integer",
            "description": "The ID of the tool's current location.",
            "format": "int32"
          },
          "Location": {
            "$ref": "#/components/schemas/ToolLocationOutput"
          },
          "LocationDate": {
            "type": "string",
            "description": "The date that the tool was moved to the current location.",
            "format": "date-time",
            "nullable": true
          },
          "RetrievedBy": {
            "type": "string",
            "description": "The name of the person that retrieved the tool at the current location.",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Whther the tool is active (not discarded)."
          },
          "LastComment": {
            "type": "string",
            "description": "The comment from the last log entry (read-only).",
            "nullable": true
          },
          "DeliveredBy": {
            "type": "string",
            "description": "Name of the store that the tool was purchased from.",
            "nullable": true
          },
          "AquiredDate": {
            "type": "string",
            "description": "The date that the tool was purchased.",
            "format": "date-time",
            "nullable": true
          },
          "DocumentUrl": {
            "type": "string",
            "description": "Document URL.",
            "nullable": true
          },
          "PictureUrl": {
            "type": "string",
            "description": "Picture URL.",
            "nullable": true
          },
          "MovedBy": {
            "type": "string",
            "description": "Moved by user",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Tools output (GET)."
      },
      "ToolOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ToolOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "TripToFromWorkAdditionInput": {
        "required": [
          "Code",
          "Name"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Code": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "IsActive": {
            "type": "boolean"
          },
          "IsExport": {
            "type": "boolean"
          },
          "IsTrailer": {
            "type": "boolean"
          },
          "IsPassenger": {
            "type": "boolean"
          },
          "Order": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TripToFromWorkAdditionOutput": {
        "required": [
          "Code",
          "Name"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Code": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "IsActive": {
            "type": "boolean"
          },
          "IsExport": {
            "type": "boolean"
          },
          "IsTrailer": {
            "type": "boolean"
          },
          "IsPassenger": {
            "type": "boolean"
          },
          "Order": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UnitType": {
        "type": "object",
        "properties": {
          "UnitId": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UpdateWageInput": {
        "required": [
          "IsActive"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Name of wage",
            "nullable": true
          },
          "Number": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "description": "Number of wage",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active state"
          },
          "Export": {
            "type": "boolean",
            "description": "Export"
          },
          "Rate": {
            "type": "number",
            "description": "Rate of wage",
            "format": "double",
            "nullable": true
          },
          "HourlyCost": {
            "type": "number",
            "description": "External price of wage",
            "format": "double",
            "nullable": true
          },
          "InternalPrice": {
            "type": "number",
            "description": "Internal price of wage",
            "format": "double",
            "nullable": true
          },
          "Order": {
            "type": "integer",
            "description": "Sorting order",
            "format": "int32"
          },
          "IsCommentRequired": {
            "type": "boolean",
            "description": "Require the employee to fill out a comment when registering."
          }
        },
        "additionalProperties": false,
        "description": "Wage input properties for update"
      },
      "UserInput": {
        "required": [
          "Email",
          "EmployeeNo",
          "Name",
          "UserName"
        ],
        "type": "object",
        "properties": {
          "UserName": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "Numeric User's name\r\n            \r\nUsername cannot be updated after September 1, 2025. Any attempts to update username via the API will be ignored. Username can only be set during user creation."
          },
          "Password": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "User's password.\r\nRequired when creating a new user.\r\nOptional when updating an existing user.",
            "nullable": true
          },
          "Name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "User's name"
          },
          "PhonePrefix": {
            "maxLength": 4,
            "minLength": 0,
            "type": "string",
            "description": "Phone number prefix (country code).",
            "nullable": true
          },
          "PhoneNumber": {
            "maxLength": 16,
            "minLength": 0,
            "type": "string",
            "description": "Phone",
            "nullable": true
          },
          "Email": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "User's e-mail",
            "format": "email"
          },
          "IsLockedOut": {
            "type": "boolean",
            "description": "Deprecated. Use IsEnded parameter to remove users.\r\nUser account is locked."
          },
          "Role": {
            "$ref": "#/components/schemas/Role"
          },
          "CountryID": {
            "type": "integer",
            "description": "User's country id (affects mobile prefix).\r\n            \r\nDeprecated: Use PhonePrefix instead",
            "format": "int32"
          },
          "LanguageCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "User's user interface language code.",
            "nullable": true
          },
          "DepartmentId": {
            "type": "integer",
            "description": "Id of the department",
            "format": "int32",
            "nullable": true
          },
          "GroupId": {
            "type": "integer",
            "description": "Id of the group that the user belongs to.",
            "format": "int32",
            "nullable": true
          },
          "EmployeeNo": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Internal user number"
          },
          "ExternalEmployeeNo": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "External user number",
            "nullable": true
          },
          "BirthDate": {
            "type": "string",
            "description": "BirthDate (dd.MM.YYYY)",
            "nullable": true
          },
          "IsEnded": {
            "type": "boolean",
            "description": "End user if true. User will not be able to login.",
            "nullable": true
          },
          "UserIsResource": {
            "type": "boolean",
            "description": "User is resource in resource planner"
          },
          "SendSMS": {
            "type": "boolean",
            "description": "Send an SMS with the password to the user"
          },
          "AccessibleProjects": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "List of projects user has access to"
          },
          "NextOfKinName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Next of kin name",
            "nullable": true
          },
          "NextOfKinPhonePrivate": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Next of kin private phone",
            "nullable": true
          },
          "NextOfKinPhoneWork": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Next of kin work phone",
            "nullable": true
          },
          "NextOfKinRelation": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Relation between user and next of kin",
            "nullable": true
          },
          "NextOfKin2Name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Next of kin 2 name",
            "nullable": true
          },
          "NextOfKin2PhonePrivate": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Next of kin 2 private phone",
            "nullable": true
          },
          "NextOfKin2PhoneWork": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Next of kin 2 work phone",
            "nullable": true
          },
          "NextOfKin2Relation": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Relation between user and next of kin 2",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserOutput": {
        "required": [
          "GroupName",
          "LanguageCode",
          "Role",
          "UserName"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Unique id",
            "format": "uuid"
          },
          "UserName": {
            "type": "string",
            "description": "Login name."
          },
          "Name": {
            "type": "string",
            "description": "User's name",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "description": "User's e-mail",
            "nullable": true
          },
          "PhonePrefix": {
            "type": "string",
            "description": "Phone prefix",
            "nullable": true
          },
          "PhoneNumber": {
            "type": "string",
            "description": "Phone",
            "nullable": true
          },
          "BirthDate": {
            "type": "string",
            "description": "BirthDate (dd.MM.YYYY)",
            "nullable": true
          },
          "Role": {
            "$ref": "#/components/schemas/Role"
          },
          "AccessLevelId": {
            "type": "string",
            "description": "User's access level",
            "format": "uuid"
          },
          "IsEnded": {
            "type": "boolean",
            "description": "True this user is ended (e.g. a former employee)."
          },
          "CompanyId": {
            "type": "integer",
            "description": "User's company Id",
            "format": "int32",
            "nullable": true
          },
          "DepartmentId": {
            "type": "integer",
            "description": "Id of the department",
            "format": "int32",
            "nullable": true
          },
          "EmployeeNo": {
            "type": "string",
            "description": "Internal user number",
            "nullable": true
          },
          "ExternalEmployeeNo": {
            "type": "string",
            "description": "External user number",
            "nullable": true
          },
          "GroupId": {
            "type": "integer",
            "description": "Id of the user's group",
            "format": "int32"
          },
          "GroupName": {
            "type": "string",
            "description": "Name of the user's group"
          },
          "LanguageCode": {
            "type": "string",
            "description": "User's language code"
          },
          "NextOfKinName": {
            "type": "string",
            "description": "Next of kin name",
            "nullable": true
          },
          "NextOfKinPhonePrivate": {
            "type": "string",
            "description": "Next of kin private phone",
            "nullable": true
          },
          "NextOfKinPhoneWork": {
            "type": "string",
            "description": "Next of kin work phone",
            "nullable": true
          },
          "NextOfKinRelation": {
            "type": "string",
            "description": "Relation between user and next of kin",
            "nullable": true
          },
          "NextOfKin2Name": {
            "type": "string",
            "description": "Next of kin 2 name",
            "nullable": true
          },
          "NextOfKin2PhonePrivate": {
            "type": "string",
            "description": "Next of kin 2 private phone",
            "nullable": true
          },
          "NextOfKin2PhoneWork": {
            "type": "string",
            "description": "Next of kin 2 work phone",
            "nullable": true
          },
          "NextOfKin2Relation": {
            "type": "string",
            "description": "Relation between user and next of kin 2",
            "nullable": true
          },
          "ResourceType": {
            "type": "string",
            "description": "resource type",
            "nullable": true
          },
          "DepartmentName": {
            "type": "string",
            "description": "Name of the Department",
            "nullable": true
          },
          "IsLockedOut": {
            "type": "boolean",
            "description": "User active state"
          },
          "IsDeleted": {
            "type": "boolean",
            "description": "User is deleted"
          },
          "IsContactPerson": {
            "type": "boolean",
            "description": "User is companies Contact Person"
          },
          "EmployeeCost": {
            "type": "number",
            "description": "Users employeeCost",
            "format": "double",
            "nullable": true
          },
          "LastActivityTime": {
            "type": "string",
            "description": "The last point in time when the user was active (logged in)\r\nNote. This field also gets updated when the user is created.",
            "format": "date-time"
          },
          "CreatedDate": {
            "type": "string",
            "description": "The date when the user was created in the system.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Data about a user"
      },
      "UserOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "UserOutputMin": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "format": "uuid"
          },
          "Name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UserValidationResult": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          1000
        ],
        "type": "integer",
        "format": "int32"
      },
      "UserValidationResultBooleanReturnObject": {
        "type": "object",
        "properties": {
          "Value": {
            "type": "boolean"
          },
          "Result": {
            "$ref": "#/components/schemas/UserValidationResult"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Exception": {
            "nullable": true
          },
          "IsSuccess": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "WageOutput": {
        "required": [
          "Name",
          "Number"
        ],
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "Wage Id",
            "format": "int32"
          },
          "Name": {
            "type": "string",
            "description": "Name of wage"
          },
          "IsAbsence": {
            "type": "boolean",
            "description": "True is current wage is absence"
          },
          "IsDaytime": {
            "type": "boolean",
            "description": "True if this is a daytime wage.\r\nIf it's a daytime wage the user should have the option to select Daytime elements."
          },
          "Number": {
            "type": "string",
            "description": "Number of wage"
          },
          "IsActive": {
            "type": "boolean",
            "description": "Active state"
          },
          "Export": {
            "type": "boolean",
            "description": "Export"
          },
          "Rate": {
            "type": "number",
            "description": "Rate of wage",
            "format": "double"
          },
          "HourlyCost": {
            "type": "number",
            "description": "External price of wage",
            "format": "double"
          },
          "InternalPrice": {
            "type": "number",
            "description": "Internal price of wage",
            "format": "double"
          },
          "Order": {
            "type": "integer",
            "description": "Sorting order",
            "format": "int32"
          },
          "IsCommentRequired": {
            "type": "boolean",
            "description": "Require the employee to fill out a comment when registering."
          }
        },
        "additionalProperties": false,
        "description": "Wage. (GET)"
      },
      "WebhookTopics": {
        "enum": [
          "SupplierInvoiceUpdated"
        ],
        "type": "string"
      },
      "WorkHourInput": {
        "required": [
          "Date",
          "ProjectId",
          "TimeFrom",
          "TimeTo",
          "UserId",
          "WageId"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "string",
            "format": "uuid"
          },
          "Date": {
            "type": "string",
            "format": "date"
          },
          "TimeFrom": {
            "type": "string",
            "format": "date-span"
          },
          "TimeTo": {
            "type": "string",
            "format": "date-span"
          },
          "BreakTime": {
            "type": "string",
            "format": "date-span"
          },
          "BreakStart": {
            "type": "string",
            "format": "date-span",
            "nullable": true
          },
          "HourBankDeposit": {
            "type": "string",
            "format": "date-span"
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32"
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ActivityId": {
            "type": "integer",
            "format": "int32"
          },
          "ActivityCategoryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "WageId": {
            "type": "integer",
            "format": "int32"
          },
          "WageComment": {
            "type": "string",
            "nullable": true
          },
          "DepartmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AreaId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ElementId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "nullable": true
          },
          "AdminComment": {
            "type": "string",
            "nullable": true
          },
          "RegistrationType": {
            "$ref": "#/components/schemas/RegistrationType"
          },
          "RegistrationNumber": {
            "type": "string",
            "nullable": true
          },
          "AvailabilityTime": {
            "type": "string",
            "format": "date-span",
            "nullable": true
          },
          "AllowanceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AllowanceComment": {
            "type": "string",
            "nullable": true
          },
          "DaytimeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AdditionRegistrations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionRegistration"
            }
          },
          "MachineHourRegistrations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachineHourRegistration"
            }
          }
        },
        "additionalProperties": false
      },
      "WorkHourOutput": {
        "required": [
          "AdminComment",
          "Comment",
          "DepartmentIDsProject",
          "ProjectName",
          "WorkDescription"
        ],
        "type": "object",
        "properties": {
          "CompanyID": {
            "type": "integer",
            "description": "Gets or sets the company identifier.",
            "format": "int32"
          },
          "UserID": {
            "type": "string",
            "description": "Gets or sets the user identifier.",
            "format": "uuid"
          },
          "EmployeeNo": {
            "type": "string",
            "description": "Gets or sets the employee no.",
            "nullable": true
          },
          "WorkHourID": {
            "type": "integer",
            "description": "Gets or sets the work hour identifier.",
            "format": "int32"
          },
          "AdminAttested": {
            "type": "boolean",
            "description": "AdminAttested.",
            "nullable": true
          },
          "ProjectAdminAttested": {
            "type": "boolean",
            "description": "ProjectAdminAttested",
            "nullable": true
          },
          "ForemanAttested": {
            "type": "boolean",
            "description": "ForemanAttested",
            "nullable": true
          },
          "Exported": {
            "type": "boolean",
            "description": "Exported marker (salary)"
          },
          "Invoiced": {
            "type": "boolean",
            "description": "Invoiced marker"
          },
          "Date": {
            "type": "string",
            "description": "Gets or sets the date.",
            "format": "date-time",
            "nullable": true
          },
          "DepartmentIDUser": {
            "type": "integer",
            "description": "Gets or sets the department identifier for the user.",
            "format": "int32",
            "nullable": true
          },
          "DepartmentIDsProject": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Gets or sets the department identifier's from project."
          },
          "DepartmentIDHours": {
            "type": "integer",
            "description": "Gets or sets the department identifier from hour registration (Option in SmartDok).",
            "format": "int32",
            "nullable": true
          },
          "Deviation": {
            "type": "boolean",
            "description": "Gets or sets the deviation.",
            "nullable": true
          },
          "ChangeHours": {
            "type": "boolean",
            "description": "Gets or sets the change hours.",
            "nullable": true
          },
          "PriceWork": {
            "type": "boolean",
            "description": "Gets or sets the price work.",
            "nullable": true
          },
          "AeNumber": {
            "type": "string",
            "description": "Gets or sets the ae number.",
            "nullable": true
          },
          "WorkDescriptionId": {
            "type": "integer",
            "description": "Gets or sets the work description identifier.",
            "format": "int32"
          },
          "WageId": {
            "type": "integer",
            "description": "Gets or sets the wage identifier.",
            "format": "int32",
            "nullable": true
          },
          "WageName": {
            "type": "string",
            "description": "Gets or sets the name of the wage.",
            "nullable": true
          },
          "WageCode": {
            "type": "string",
            "description": "Gets or sets the wage code.",
            "nullable": true
          },
          "WageAddition": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this is a wage addition."
          },
          "UnitAddition": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this is a unit addition."
          },
          "Diet": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this a is diet."
          },
          "TimeKontoLine": {
            "type": "boolean",
            "description": "TimeKonto"
          },
          "OrdinaryHoursFrom": {
            "type": "number",
            "description": "Gets or sets the ordinary hours from.",
            "format": "double",
            "nullable": true
          },
          "OrdinaryHoursTo": {
            "type": "number",
            "description": "Gets or sets the ordinary hours to.",
            "format": "double",
            "nullable": true
          },
          "OrdinaryHours": {
            "type": "number",
            "description": "Gets or sets the ordinary hours.",
            "format": "double",
            "nullable": true
          },
          "BreakTime": {
            "type": "number",
            "description": "Gets or sets the break time.",
            "format": "double",
            "nullable": true
          },
          "TimeKontoHours": {
            "type": "number",
            "description": "Gets or sets the time konto hours.",
            "format": "double",
            "nullable": true
          },
          "NetHours": {
            "type": "number",
            "description": "Gets or sets the net hours.",
            "format": "double",
            "nullable": true
          },
          "DailyWorkHours": {
            "type": "number",
            "description": "Gets or sets the daily work hours.",
            "format": "double",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "description": "Gets or sets the comment."
          },
          "AdminComment": {
            "type": "string",
            "description": "Gets or sets the admin comment."
          },
          "MachineHourId": {
            "type": "integer",
            "description": "Gets or sets the machine hour identifier.",
            "format": "int32",
            "nullable": true
          },
          "EquipmentId": {
            "type": "integer",
            "description": "Gets or sets the equipment identifier.",
            "format": "int32",
            "nullable": true
          },
          "EquipmentCode": {
            "type": "string",
            "description": "Gets or sets the equipment code.",
            "nullable": true
          },
          "WorkDescriptionCode": {
            "type": "string",
            "nullable": true
          },
          "WorkDescription": {
            "type": "string",
            "description": "Gets or sets the name of the work description."
          },
          "WorkDescriptionCategoryId": {
            "type": "integer",
            "description": "Gets or sets the id of the work description category.",
            "format": "int32",
            "nullable": true
          },
          "IsOrder": {
            "type": "boolean",
            "description": "Get if the project is Order"
          },
          "ProjectID": {
            "type": "integer",
            "description": "Gets or sets the project identifier.",
            "format": "int32"
          },
          "ProjectNo": {
            "type": "string",
            "description": "Obsolete - Use ProjectNumber instead",
            "nullable": true,
            "readOnly": true,
            "deprecated": true
          },
          "ProjectNumber": {
            "type": "string",
            "description": "Gets or sets the project number.",
            "nullable": true
          },
          "ProjectName": {
            "type": "string",
            "description": "Gets or sets the project name."
          },
          "SubProjectID": {
            "type": "integer",
            "description": "Gets or sets the sub project identifier.",
            "format": "int32",
            "nullable": true
          },
          "SubProjectNo": {
            "type": "string",
            "description": "Obsolete - Use SubProjectNumber instead",
            "nullable": true,
            "readOnly": true,
            "deprecated": true
          },
          "SubProjectNumber": {
            "type": "string",
            "description": "Gets or sets the sub project number.",
            "nullable": true
          },
          "SubProjectName": {
            "type": "string",
            "description": "Gets or sets the sub project name.",
            "nullable": true
          },
          "AreaID": {
            "type": "integer",
            "description": "Gets or sets the area identifier.",
            "format": "int32",
            "nullable": true
          },
          "AreaNumber": {
            "type": "string",
            "description": "Gets or sets the area number.",
            "nullable": true
          },
          "AreaName": {
            "type": "string",
            "description": "Gets or sets the area name.",
            "nullable": true
          },
          "ExportedExternal": {
            "type": "boolean",
            "description": "Exported external marker"
          },
          "ExportedExternalId": {
            "type": "string",
            "description": "Exported external id",
            "nullable": true
          },
          "LastUpdated": {
            "type": "string",
            "description": "Find workhours updated since LastUpdated value",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Hours Item"
      },
      "WorkHourOutputCollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkHourOutput"
            }
          }
        },
        "additionalProperties": false
      },
      "WorkHourOutputV2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "UserId": {
            "type": "string",
            "format": "uuid"
          },
          "Date": {
            "type": "string",
            "format": "date"
          },
          "TimeFrom": {
            "type": "string",
            "format": "date-span"
          },
          "TimeTo": {
            "type": "string",
            "format": "date-span"
          },
          "BreakTime": {
            "type": "string",
            "format": "date-span"
          },
          "BreakStart": {
            "type": "string",
            "format": "date-span",
            "nullable": true
          },
          "HourBankDeposit": {
            "type": "string",
            "format": "date-span"
          },
          "ProjectId": {
            "type": "integer",
            "format": "int32"
          },
          "SubProjectId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ActivityId": {
            "type": "integer",
            "format": "int32"
          },
          "ActivityCategoryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "WageId": {
            "type": "integer",
            "format": "int32"
          },
          "WageComment": {
            "type": "string",
            "nullable": true
          },
          "DepartmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AreaId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ElementId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Comment": {
            "type": "string",
            "nullable": true
          },
          "AdminComment": {
            "type": "string",
            "nullable": true
          },
          "AvailabilityTime": {
            "type": "string",
            "format": "date-span",
            "nullable": true
          },
          "DaytimeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AllowanceId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AllowanceComment": {
            "type": "string",
            "nullable": true
          },
          "RegistrationType": {
            "$ref": "#/components/schemas/RegistrationType"
          },
          "RegistrationNumber": {
            "type": "string",
            "nullable": true
          },
          "AdditionRegistrations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionRegistration"
            }
          },
          "MachineHourRegistrations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachineHourRegistration"
            }
          },
          "LastUpdated": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "WorkHourOutputV2CollectionOutput": {
        "required": [
          "Items"
        ],
        "type": "object",
        "properties": {
          "Count": {
            "type": "integer",
            "format": "int32"
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "Items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkHourOutputV2"
            }
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "description": "JWT Authorization header using the Bearer scheme.",
        "scheme": "Bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "tags": [
    {
      "name": "Additions",
      "description": "Additions"
    },
    {
      "name": "Allowance",
      "description": "Allowance API"
    },
    {
      "name": "Areas",
      "description": "Areas API"
    },
    {
      "name": "GoodsCategories",
      "description": "Goods categories API"
    },
    {
      "name": "GoodsConsumption",
      "description": "Goods consumption API"
    },
    {
      "name": "Goods",
      "description": "Goods API"
    },
    {
      "name": "GoodsLocations",
      "description": "Goods locations API"
    },
    {
      "name": "GoodsProduction",
      "description": "Goods production API"
    },
    {
      "name": "GoodsTransportation",
      "description": "Goods transportation API"
    },
    {
      "name": "Invoices",
      "description": "Invoices API"
    },
    {
      "name": "MachineCategories",
      "description": "Machine categories API"
    },
    {
      "name": "Machines",
      "description": "Machines API"
    },
    {
      "name": "Orders",
      "description": "Orders API"
    },
    {
      "name": "OrderWorkers",
      "description": "Order workers API"
    },
    {
      "name": "QualityDeviation",
      "description": "Quality deviations API"
    },
    {
      "name": "ResourcePlanning",
      "description": "Resource Planning API"
    },
    {
      "name": "RUE",
      "description": "RUE (Rapport om Uønskede Hendelser / Unwanted Incident Reports) API"
    },
    {
      "name": "SafeJobAnalysis",
      "description": "Safe job analysis API"
    },
    {
      "name": "SubProjects",
      "description": "Sub projects API"
    },
    {
      "name": "ToolCategories",
      "description": "Tool categories API"
    },
    {
      "name": "ToolLocations",
      "description": "Tool locations API"
    },
    {
      "name": "Tools",
      "description": "Tools API"
    },
    {
      "name": "Users",
      "description": "Users API"
    },
    {
      "name": "Wages",
      "description": "Wages API"
    },
    {
      "name": "WorkHours",
      "description": "Work hours API"
    }
  ]
}