{
  "openapi": "3.0.4",
  "info": {
    "title": "Noccela Partner API",
    "description": "Noccela Cloud External API for Partners",
    "contact": {
      "name": "Noccela Support",
      "url": "https://www.noccela.com",
      "email": "support@noccela.com"
    },
    "version": "v1.3"
  },
  "servers": [
    {
      "url": "https://api.noccela.io"
    },
    {
      "url": "https://api.n1.fi1.noccela.io"
    },
    {
      "url": "https://api.n2.fi1.noccela.io"
    }
  ],
  "paths": {
    "/device": {
      "get": {
        "tags": [
          "DeviceInformation"
        ],
        "summary": "Fetch information about a device (beacon, tag).",
        "description": "Provide a list of device IDs to fetch information about them.\nLeave null to fetch information for every device the client has permissions for.\nIt is recommended to filter the query by only requesting the devices needed.",
        "parameters": [
          {
            "name": "Devices",
            "in": "query",
            "description": "Device IDs identifying the device(s) to fetch details for.\nIf null or missing then all devices the client has access to are fetched.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": null
            }
          },
          {
            "name": "Account",
            "in": "query",
            "description": "Optional account filter. Filters devices for this account if present.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          },
          {
            "name": "Site",
            "in": "query",
            "description": "Optional site filter. Filters devices for this site if present.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          },
          {
            "name": "IncludeVersionInfo",
            "in": "query",
            "description": "Fetch most recent version FW version information for each of the devices.\nFalse by default, enable only if version information is needed as this makes the query considerably slower.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceInfoResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceInfoResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceInfoResponse"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/device/initialtagstate": {
      "get": {
        "tags": [
          "DeviceInformation"
        ],
        "summary": "Fetch tags' current state.",
        "description": "**IMPORTANT!** The request is received live from the running site and the request must thus be made against the\ncorrect node/subdomain. Refer to `/realtime/domain` to see how the correct address is fetched.\nMaking the request against wrong domain, or making the request for an offline site manifests as timeout and no data.",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "CompactResponse",
            "in": "query",
            "description": "If set to true returns response encoded with messagepack.\nIf false or omitted returns json.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "Devices",
            "in": "query",
            "description": "Tag device IDs.\nIf null or missing then all tags for the site are fetched.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              },
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/InitialTagState"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/InitialTagState"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/InitialTagState"
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/device/neighbors": {
      "get": {
        "tags": [
          "DeviceInformation"
        ],
        "summary": "Fetch beacons' connection information and their neighbor signal characteristics.",
        "description": "**IMPORTANT!** The request is received live from the running site and the request must thus be made against the\ncorrect node/subdomain. Refer to `/realtime/domain` to see how the correct address is fetched.\nMaking the request against wrong domain, or making the request for an offline site manifests as timeout and no data.",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Devices",
            "in": "query",
            "description": "Sensor device IDs.\nIf null or missing then all sensors for the site are fetched.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              },
              "default": null
            }
          },
          {
            "name": "TimeoutSeconds",
            "in": "query",
            "description": "Maximum timeout for listening to sensor live data.\nIf all required information is received before, will return before timeout.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/SensorLiveDetails"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/SensorLiveDetails"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/SensorLiveDetails"
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/device/initialbeaconstate": {
      "get": {
        "tags": [
          "DeviceInformation"
        ],
        "summary": "Fetch devices' current state.",
        "description": "**IMPORTANT!** The request is received live from the running site and the request must thus be made against the\ncorrect node/subdomain. Refer to `/realtime/domain` to see how the correct address is fetched.\nMaking the request against wrong domain, or making the request for an offline site manifests as timeout and no data.",
        "parameters": [
          {
            "name": "AccountId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SiteId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "UseCompactData",
            "in": "query",
            "description": "If set to false returns json. If true or omitted returns response encoded with messagepack.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "GetDiagnostics",
            "in": "query",
            "description": "Determines if diagnostics data should be included in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "GetNeighbors",
            "in": "query",
            "description": "Determines if neighbor data should be included in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "DeviceIds",
            "in": "query",
            "description": "Beacon device IDs. If null, missing or empty then all beacons for the site are fetched.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              },
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/FullBeaconState"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/FullBeaconState"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/FullBeaconState"
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/device/tag": {
      "post": {
        "tags": [
          "DeviceModification"
        ],
        "summary": "Modify tag's properties, for example name.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TagInfoModificationRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TagInfoModificationRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TagInfoModificationRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TagInfoModificationRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/device/buzzer": {
      "post": {
        "tags": [
          "DeviceModification"
        ],
        "summary": "Turn on tag's LED and play either short buzzer or loud alert beeper.",
        "description": "Currently the length and other properties are hard-coded and there are\ntwo options to choose from. In future the sound will be configurable.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TagSoundLedRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TagSoundLedRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TagSoundLedRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TagSoundLedRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/device/addexternaltag": {
      "post": {
        "tags": [
          "DeviceModification"
        ],
        "summary": "Add an external tag to the site.",
        "description": "Returns a deviceId for the generated external tag. Use the returned deviceId to modify the tag.\nRecommended deviceModel would be \"CustomTag\".\nNOTE: only 1000 external tags per account is allowed at the moment.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AddExternalTagRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AddExternalTagRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AddExternalTagRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AddExternalTagRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AddExternalTagResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddExternalTagResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddExternalTagResponse"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/device/modifyexternaltag": {
      "post": {
        "tags": [
          "DeviceModification"
        ],
        "summary": "Adjust external tag's position, name or trigger button.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifyExternalTagRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifyExternalTagRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifyExternalTagRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifyExternalTagRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/device/removeexternaltag": {
      "post": {
        "tags": [
          "DeviceModification"
        ],
        "summary": "Remove existing external tag.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RemoveExternalTagRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RemoveExternalTagRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RemoveExternalTagRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RemoveExternalTagRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/device/reboot": {
      "post": {
        "tags": [
          "DeviceModification"
        ],
        "summary": "Reboot beacons.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RebootRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RebootRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RebootRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RebootRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/device/radiostatus": {
      "post": {
        "tags": [
          "DeviceModification"
        ],
        "summary": "Set beacons' uwb-radio on/off.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RadioStatusRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RadioStatusRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RadioStatusRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RadioStatusRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/eventapi/endpoint": {
      "post": {
        "tags": [
          "EventApi"
        ],
        "summary": "Create a new endpoint for event API.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateEndpointRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateEndpointRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateEndpointRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateEndpointRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateEndpointResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "EventApi"
        ],
        "summary": "Remove endpoint and all linked event subscriptions.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Endpoint ID.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "EventApi"
        ],
        "summary": "Receive details for a single or multiple endpoints.",
        "description": "If no parameters are provided, details are returned for all endpoints this\napp has access to (i.e. has created).",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Endpoint ID(s).",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetEndpointsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/eventapi/registerendpoint": {
      "post": {
        "tags": [
          "EventApi"
        ],
        "summary": "Register (validate) created endpoint. This results in a challenge\nrequest being dispatched against the user provided URL.",
        "description": "For details about this process, refer to the PDF document.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterEndpointRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterEndpointRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterEndpointRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterEndpointRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/eventapi/modifyendpoint": {
      "post": {
        "tags": [
          "EventApi"
        ],
        "summary": "Modify created endpoint. Currently only modification of retry-policy and secret is supported.",
        "description": "For details about this process, refer to the PDF document.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifyEndpointRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifyEndpointRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifyEndpointRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifyEndpointRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/eventapi/event": {
      "post": {
        "tags": [
          "EventApi"
        ],
        "summary": "Create a new event subscription.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterEventRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterEventRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterEventRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterEventRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegisterEventResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "EventApi"
        ],
        "summary": "Remove an event subscription.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "ID of the event subscription.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "EventApi"
        ],
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Registration IDs for event registrations.\nID received upon event registration.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              }
            }
          },
          {
            "name": "EndpointId",
            "in": "query",
            "description": "Endpoint(s) from which to get registered events.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetEventsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/eventapi/events": {
      "get": {
        "tags": [
          "EventApi"
        ],
        "summary": "Fetch occurred events from registration. Returns all events from specified registration with greater id than specified in the request.",
        "parameters": [
          {
            "name": "RegistrationId",
            "in": "query",
            "description": "Registration ID which events should be fetched.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "EventId",
            "in": "query",
            "description": "Event Id of the last received event. Only events with greater id are returned. If null or omitted => all events are returned.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetEventsFromRegistrationResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/info": {
      "get": {
        "tags": [
          "GeneralInformation"
        ],
        "summary": "Get client's configuration. Useful for testing the API connection.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserInfoResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/history/socialdistancing": {
      "get": {
        "tags": [
          "History"
        ],
        "summary": "Fetch details about social distancing breach events.",
        "parameters": [
          {
            "name": "AccountId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SiteId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Start",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "Stop",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "MinDurationSeconds",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          },
          {
            "name": "DeviceIds",
            "in": "query",
            "description": "Devices to get events for, if null all devices are used.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              },
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SocialDistancingEvent"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SocialDistancingEvent"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/history": {
      "get": {
        "tags": [
          "History"
        ],
        "summary": "Fetch historical data about tag(s), including their coordinates and state.",
        "description": "Requires at least either a start date or `count` N for N latest rows in the range.\nStart and stop date can be combined with `count` for more efficient queries.\nThis data does not contain every single location of the tag.\nOnly rows with location differing over 0.5m are stored is database.",
        "parameters": [
          {
            "name": "Devices",
            "in": "query",
            "description": "Ids for tag devices. If null all devices are fetched.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              },
              "default": null
            }
          },
          {
            "name": "Start",
            "in": "query",
            "description": "Search start as ISO date or datetime. 24 hours as default.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Stop",
            "in": "query",
            "description": "Optionally, search stop time. Current moment as default.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Count",
            "in": "query",
            "description": "If present, fetch N latest rows *per tag* in the given time span.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          },
          {
            "name": "IncludeProperties",
            "in": "query",
            "description": "List of properties (property name, case insensitive) to include in result data set.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": null
            }
          },
          {
            "name": "Timeout",
            "in": "query",
            "description": "Specifies timeout for database operations.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 30
            }
          },
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TagHistoryResponse"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TagHistoryResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/installationtool/gettagpoints": {
      "get": {
        "tags": [
          "InstallationTool"
        ],
        "summary": "Inform site to add tag point and start collecting data.",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetTagPointsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/installationtool/addtagpoint": {
      "post": {
        "tags": [
          "InstallationTool"
        ],
        "summary": "Inform site to add tag point and start collecting data.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AddTagPointRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AddTagPointRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AddTagPointRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AddTagPointRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddTagPointResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/installationtool/updatetagpoint": {
      "post": {
        "tags": [
          "InstallationTool"
        ],
        "summary": "Inform site to update tag point and start collecting data.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateTagPointRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateTagPointRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateTagPointRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateTagPointRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/installationtool/removetagpoint": {
      "post": {
        "tags": [
          "InstallationTool"
        ],
        "summary": "Inform site to remove tag point.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RemoveTagPointRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RemoveTagPointRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RemoveTagPointRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RemoveTagPointRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/installationtool/maptagpoints": {
      "post": {
        "tags": [
          "InstallationTool"
        ],
        "summary": "Inform site to map tag point.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MapTagPointsRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MapTagPointsRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MapTagPointsRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MapTagPointsRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/installationtool/sensorlocationsuggestion": {
      "post": {
        "tags": [
          "InstallationTool"
        ],
        "summary": "Get suggestion for sensor positions, based on site's RTLS-areas.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteSensorLocationSuggestionRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteSensorLocationSuggestionRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteSensorLocationSuggestionRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteSensorLocationSuggestionRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BasicBeaconPositionResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/installationtool/calibratepositions": {
      "post": {
        "tags": [
          "InstallationTool"
        ],
        "summary": "Get calibrated positions for beacons.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CalibratePositionsRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CalibratePositionsRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CalibratePositionsRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CalibratePositionsRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceIdsForPositionsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/installationtool/beaconled": {
      "post": {
        "tags": [
          "InstallationTool"
        ],
        "summary": "Change beacon's led color for x seconds.",
        "description": "Changing beacon's led color for a moment is mainly used to verify that correct device id is set for the right position.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BeaconLedRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BeaconLedRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BeaconLedRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BeaconLedRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/integrations/get": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "Fetch information about an application.",
        "parameters": [
          {
            "name": "ApplicationId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetResponse"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/integrations/list": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "Lists all applications for partner.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Application"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Application"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Application"
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/integrations/delete": {
      "delete": {
        "tags": [
          "Integrations"
        ],
        "summary": "Deletes an application.",
        "parameters": [
          {
            "name": "ApplicationId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/integrations/create": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "summary": "Creates new application.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/integrations/modify": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "summary": "Modifies an application.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifyRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifyRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifyRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifyRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/integrations/secrets": {
      "get": {
        "tags": [
          "Integrations"
        ],
        "summary": "Lists data from client secrets of specified application.",
        "parameters": [
          {
            "name": "ApplicationId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AppSecretData"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AppSecretData"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AppSecretData"
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/integrations/secret": {
      "post": {
        "tags": [
          "Integrations"
        ],
        "summary": "Creates a new client secret for application.",
        "parameters": [
          {
            "name": "ApplicationId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SecretResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecretResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecretResponse"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/integrations/deletesecret": {
      "delete": {
        "tags": [
          "Integrations"
        ],
        "summary": "Deletes a client secret.",
        "parameters": [
          {
            "name": "SecretId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "ApplicationId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/network/settings": {
      "get": {
        "tags": [
          "NetworkInformation"
        ],
        "summary": "Get network's settings available for editing.",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkSettingsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkSettingsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkSettingsResponse"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "NetworkModification"
        ],
        "summary": "Modify network's settings. Use get method to first fetch the current settings.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/NetworkSettingsModificationRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/NetworkSettingsModificationRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/NetworkSettingsModificationRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/NetworkSettingsModificationRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/realtime": {
      "get": {
        "tags": [
          "RealTime"
        ],
        "summary": "Real-time API over Websockets entry point.",
        "description": "Only used for upgrading to WebSocket connection.\nCheck relevant documentation.",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "101": {
            "description": "Switching Protocols"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/realtime/domain": {
      "get": {
        "tags": [
          "RealTimeUtils"
        ],
        "summary": "Fetch domain for the node running the site for real time services.",
        "description": "Services accessing real time data should connect directly to the node running the site.",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SiteNodeDomainResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteNodeDomainResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteNodeDomainResponse"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site": {
      "get": {
        "tags": [
          "SiteInformation"
        ],
        "summary": "Get basic information about a site, including its name and location.",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SiteInformationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteInformationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteInformationResponse"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/layout": {
      "get": {
        "tags": [
          "SiteInformation"
        ],
        "summary": "Get site layout, like walls, areas, beacon positions etc.",
        "description": "Can be used for example to make relevant modifications and post the configuration back to modify endpoint.",
        "parameters": [
          {
            "name": "MinorId",
            "in": "query",
            "description": "MinorId of the layout that is requested. If null or omitted => current layout is returned.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          },
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SiteLayoutResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteLayoutResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteLayoutResponse"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "SiteModification"
        ],
        "summary": "Modify site's layout including infrastructure, virtual walls, alert areas etc.",
        "description": "This configuration will replace existing one, use the previous configuration from GET response as template.\nItems not included in request will be removed!",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutModificationRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutModificationRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutModificationRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutModificationRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModifySiteLayoutResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "SiteModification"
        ],
        "summary": "Delete site's layout.",
        "description": "Deleting currently active layout is not supported.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutRemoveRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutRemoveRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutRemoveRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutRemoveRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/layout/versions": {
      "get": {
        "tags": [
          "SiteInformation"
        ],
        "summary": "Get site layout versions. Can be used for viewing or editing old version.",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SiteLayoutVersionsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteLayoutVersionsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteLayoutVersionsResponse"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/settings": {
      "get": {
        "tags": [
          "SiteInformation"
        ],
        "summary": "Get site's settings available for editing.",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SiteSettingsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteSettingsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteSettingsResponse"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "SiteModification"
        ],
        "summary": "Modify site's settings. Use get method to first fetch the current settings.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifySiteSettingsRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifySiteSettingsRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifySiteSettingsRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ModifySiteSettingsRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/availablesensors": {
      "get": {
        "tags": [
          "SiteInformation"
        ],
        "summary": "Get available beacons for site. This means that a beacon is assigned to the account and has not been assigned to another site.",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AvailableBeacon"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AvailableBeacon"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AvailableBeacon"
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/sensorlocations": {
      "get": {
        "tags": [
          "SiteInformation"
        ],
        "summary": "Get coordinates relative to site's origo for each sensor device on the given site.",
        "description": "Note that the coordinate system in the Noccela system is not absolute, the coordinates are not meaningful out of context.\nEach site has (usually) arbitrary origo into which all coordinates like sensor locations and tag positions are relative to.",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SiteSensorLocationResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SiteSensorLocationResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SiteSensorLocationResponse"
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "SiteModification"
        ],
        "summary": "Add, remove or modify sensors on the site, namely their coordinates.",
        "description": "Sensors that exists on the site are modified, sensors which are not in request are removed and new ones are added to site.\nModification requests require either automatic or explicit reload for changes to take effect.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SensorPositionModificationsRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SensorPositionModificationsRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SensorPositionModificationsRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SensorPositionModificationsRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModifySiteSensorsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/blueprint": {
      "get": {
        "tags": [
          "SiteInformation"
        ],
        "summary": "Fetch information about site's blueprint image(s).",
        "description": "This can be used to later download the images using file endpoint.",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SiteBlueprintResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SiteBlueprintResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SiteBlueprintResponse"
                  }
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/file": {
      "get": {
        "tags": [
          "SiteInformation"
        ],
        "summary": "Download a file belonging to a site, for example a blueprint.",
        "description": "Use fileId from another request.",
        "parameters": [
          {
            "name": "FileId",
            "in": "query",
            "description": "Unique ID for the file. ID can be obtained by using the blueprint endpoint.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Account",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Site",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/create": {
      "post": {
        "tags": [
          "SiteModification"
        ],
        "summary": "Create new site for account.\nRequires special \"all sites\" permission for the given account.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateSiteRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateSiteRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateSiteRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateSiteRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSiteResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSiteResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSiteResponse"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/remove": {
      "delete": {
        "tags": [
          "SiteModification"
        ],
        "summary": "Removes a site from account.\nRequires special \"all sites\" permission for the given account.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RemoveSiteRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RemoveSiteRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RemoveSiteRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RemoveSiteRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/reload": {
      "post": {
        "tags": [
          "SiteModification"
        ],
        "summary": "Reload site in cloud process.\nRequired for certain changes to take effect e.g. layout modifications.",
        "description": "Can be used if multiple changes done in batch.\nOnly one reload is necessary after multiple changes.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ReloadSiteRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ReloadSiteRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ReloadSiteRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ReloadSiteRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/usecaseanddifficulty": {
      "post": {
        "tags": [
          "SiteModification"
        ],
        "summary": "Reload site in cloud process.\nRequired for certain changes to take effect e.g. layout modifications.",
        "description": "Can be used if multiple changes done in batch.\nOnly one reload is necessary after multiple changes.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateUseCaseAndDifficultyRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateUseCaseAndDifficultyRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateUseCaseAndDifficultyRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateUseCaseAndDifficultyRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/layout/activate": {
      "post": {
        "tags": [
          "SiteModification"
        ],
        "summary": "Activate site's previous layout version again.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutActivationRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutActivationRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutActivationRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutActivationRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/layout/modify": {
      "post": {
        "tags": [
          "SiteModification"
        ],
        "summary": "Modify site's layout version properties.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutUpdateRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutUpdateRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutUpdateRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SiteLayoutUpdateRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/site/layout/fillpolygon": {
      "post": {
        "tags": [
          "SiteModification"
        ],
        "summary": "Fill the given master polygon with the given slave polygons. This results in slavepolygons being modified in a way that the master polygon is fully filled with slave polygons\nand slave polygons will not be overlapping.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/FillPolygonRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/FillPolygonRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/FillPolygonRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/FillPolygonRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FillPolygonResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/workflow/getworkflows": {
      "get": {
        "tags": [
          "WorkFlow"
        ],
        "summary": "Fetch information about work flows.",
        "parameters": [
          {
            "name": "AccountId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SiteId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WorkFlow"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/workflow/getworkflowresults": {
      "get": {
        "tags": [
          "WorkFlow"
        ],
        "summary": "Fetch work flow results for specific work flow.",
        "parameters": [
          {
            "name": "AccountId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SiteId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FlowId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "Start",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "Stop",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WorkFlowResult"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/workflow/externaltrigger": {
      "post": {
        "tags": [
          "WorkFlow"
        ],
        "summary": "Trigger workflow step(s) with condition \"external trigger\" with the specified identifier.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ExternalTriggerRequest"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ExternalTriggerRequest"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ExternalTriggerRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ExternalTriggerRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WorkFlowResult"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Action": {
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WorkFlowActionTypes"
              }
            ]
          },
          "tagsForAllActions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagRestrictionForAllSteps"
              }
            ],
            "nullable": true
          },
          "ledBuzzer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LedOrBuzzerAction"
              }
            ],
            "nullable": true
          },
          "sms": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SmsAction"
              }
            ],
            "nullable": true
          },
          "customAlert": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomAlertAction"
              }
            ],
            "nullable": true
          },
          "renameTag": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RenameTagAction"
              }
            ],
            "nullable": true
          },
          "sleep": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FlowSleepAction"
              }
            ],
            "nullable": true
          },
          "clearGroup": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ClearGroupAction"
              }
            ],
            "nullable": true
          },
          "email": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EmailAction"
              }
            ],
            "nullable": true
          },
          "signalFlash": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SignalFlashAction"
              }
            ],
            "nullable": true
          },
          "startStep": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StartStepAction"
              }
            ],
            "nullable": true
          },
          "setTagGroup": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SetTagGroupAction"
              }
            ],
            "nullable": true
          },
          "setTagDigitalIo": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SetTagDigitalIoOutputAction"
              }
            ],
            "nullable": true
          },
          "setTagCycleStride": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SetTagCycleStrideAction"
              }
            ],
            "nullable": true
          },
          "setTagVisualization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SetTagVisualizationAction"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddExternalTagRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "deviceModel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DeviceModels"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "AddExternalTagResponse": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "AddTagPointRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "deviceId": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "AddTagPointResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Id of added tag point.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "AlarmTypes": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19
        ],
        "type": "integer",
        "description": "0 = Unknown, 1 = DetachedWithCutters, 2 = OffLimits, 3 = SignalLost, 4 = OffLimitsSilent, 5 = Magnet, 6 = Shock, 7 = LeftQuarantine, 8 = MovedSilent, 9 = DetachedWithMagnet, 10 = SalesBoostByMovement, 11 = SalesBoostByArea, 12 = ProductLeftBehind, 13 = BackupRequestFromGuard, 14 = AssistanceRequest, 15 = PosActivity, 16 = BackupRequestFromTag, 17 = MinorSafeZoneViolation, 18 = MajorSafeZoneViolation, 19 = CustomAlert",
        "format": "int32"
      },
      "AppSecretData": {
        "type": "object",
        "properties": {
          "secretId": {
            "type": "integer",
            "format": "int64"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastUsed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expiration": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Application": {
        "type": "object",
        "properties": {
          "applicationId": {
            "type": "integer",
            "format": "int64"
          },
          "clientId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "revoked": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Permission"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AreaRestrictionForStep": {
        "type": "object",
        "properties": {
          "areaId": {
            "type": "integer",
            "format": "int32"
          },
          "entrancePoints": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AvailableBeacon": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "integer",
            "description": "Device Id.",
            "format": "int64"
          },
          "deviceModel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DeviceModels"
              }
            ],
            "description": "Device model of the beacon."
          },
          "lastContact": {
            "type": "integer",
            "description": "Time in unix seconds when the beacon last fetched information from Noccela's maindatacenter.",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BasicBeaconPositionResponse": {
        "type": "object",
        "properties": {
          "x": {
            "type": "integer",
            "description": "Beacon's X coordinate.",
            "format": "int32"
          },
          "y": {
            "type": "integer",
            "description": "Beacon's Y coordinate.",
            "format": "int32"
          },
          "z": {
            "type": "integer",
            "description": "Beacon's Z coordinate.",
            "format": "int32"
          },
          "floorId": {
            "type": "integer",
            "description": "ID (permanentId) for the floor of the beacon.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "BatteryStatuses": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "0 = Unknown, 1 = Ok, 2 = Low, 3 = Empty",
        "format": "int32"
      },
      "BeaconLedRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "device": {
            "type": "integer",
            "description": "Device ID for the beacon which led color should get changed.",
            "format": "int64"
          },
          "color": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LedColors"
              }
            ],
            "description": "Color of the led. Default value is white.",
            "default": "white",
            "nullable": true
          },
          "seconds": {
            "type": "integer",
            "description": "How many seconds the new color should be visible. Default is 30 seconds.",
            "format": "int32",
            "default": 30,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BeaconNeighborInformation": {
        "type": "object",
        "properties": {
          "sourceDeviceId": {
            "type": "integer",
            "format": "int64"
          },
          "destinationDeviceId": {
            "type": "integer",
            "format": "int64"
          },
          "distance": {
            "type": "integer",
            "format": "int32"
          },
          "rssi": {
            "type": "integer",
            "format": "int32"
          },
          "fp": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "BeaconPosition": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "integer",
            "format": "int64"
          },
          "x": {
            "type": "number",
            "format": "double"
          },
          "y": {
            "type": "number",
            "format": "double"
          },
          "z": {
            "type": "number",
            "format": "double"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionStatuses"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "BeaconRadiusSettings": {
        "required": [
          "subSettings"
        ],
        "type": "object",
        "properties": {
          "nullIfRadiusExceeded": {
            "type": "boolean"
          },
          "keepPositionIfRadiusExceeded": {
            "type": "boolean"
          },
          "disableFromTrilateration": {
            "type": "boolean"
          },
          "suckTagInSeconds": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "subSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeaconRadiusSubSetting"
            }
          }
        },
        "additionalProperties": false
      },
      "BeaconRadiusSubSetting": {
        "type": "object",
        "properties": {
          "radius": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "angle": {
            "type": "integer",
            "format": "int32"
          },
          "onlyIfOnSmaller": {
            "type": "boolean"
          },
          "placeTagOnTheRing": {
            "type": "boolean"
          },
          "allowFloorChange": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BeaconStatusCodes": {
        "enum": [
          0,
          64,
          128,
          256,
          512,
          1024,
          2048,
          4096,
          8192,
          16384,
          32768,
          65536,
          16777216,
          33554432,
          67108864,
          134217728,
          268435456,
          536870912,
          4294967296,
          17179869184,
          34359738368,
          68719476736
        ],
        "type": "integer",
        "description": "0 = AllOk, 64 = MonolithVersionNotOk, 128 = CoCpuVersionNotOk, 256 = CoCpuNotOnline, 512 = SuperframesNotOk, 1024 = ApiStatusNotOk, 2048 = NotAuthenticated, 4096 = NoNeighbours, 8192 = NotConnected, 16384 = IsNotSending, 32768 = ConnectionNotActive, 65536 = PingNotOk, 16777216 = TagImagesNotOk, 33554432 = TagsUpdating, 67108864 = SensorUpdating, 134217728 = SensorOverloaded, 268435456 = PowerCut, 536870912 = PingTimedOut",
        "format": "int64"
      },
      "CalibratePositionsRequest": {
        "type": "object",
        "properties": {
          "positions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeaconPosition"
            },
            "nullable": true
          },
          "tagPoints": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "tagPointData": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagPointDataItem"
            },
            "nullable": true
          },
          "maxDrift": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "shiftUp": {
            "type": "boolean",
            "default": false
          },
          "amountOfBeaconsThatCanBeLeftOut": {
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          "neighbors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BeaconNeighborInformation"
            },
            "default": null,
            "nullable": true
          },
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "floorId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ClearGroupAction": {
        "type": "object",
        "properties": {
          "clearMain": {
            "type": "boolean"
          },
          "clearSecondary": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ConnectingSlotConfiguration": {
        "type": "object",
        "properties": {
          "slotsInBurst": {
            "maximum": 8,
            "minimum": 1,
            "type": "integer",
            "description": "How many slots are allocated for every tag in single connecting cycle.\nNote: If null or omitted, then the recommended value 2 is used.\nNote: Accepted values are 1,2,4 or 8.\nNote: It's highly recommended to use values greater than 1.\nNote: If null or omitted, the default value is used.\nDefault values for Use cases: Default = 2.",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "cycleSize": {
            "maximum": 65536,
            "minimum": 2,
            "type": "integer",
            "description": "The length of the connecting cycle.\nNote: If null or omitted, then a dynamically determined optimized value is used.\nNote: If null or omitted, the default value is used.\nNote: In case of wake-up, default will always be valued from the EU.\nDefault values for Regions: EU = Online cycle size + network latency, US = 10 seconds",
            "format": "int32",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateEndpointRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name for the endpoint.",
            "nullable": true
          },
          "url": {
            "type": "string",
            "description": "Full URL for the HTTP endpoint.",
            "nullable": true
          },
          "retryPolicy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EventApiEndpointRetryPolicy"
              }
            ],
            "description": "Retry policy for the endpoint.",
            "nullable": true
          },
          "secret": {
            "type": "string",
            "description": "Secret for the endpoint. If non-null value, this secret is sent for this endpoint with every event.\nFormat is Authorization header with value \"Basic base64(noccela:secret)\"\nUse empty string to keep old value and null to disable secret.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateEndpointResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unique ID for the new endpoint.",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "CreateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "default": "Application name",
            "nullable": true
          },
          "description": {
            "type": "string",
            "default": "Application description",
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Permission"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateResponse": {
        "type": "object",
        "properties": {
          "applicationId": {
            "type": "integer",
            "format": "int64"
          },
          "clientId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "revoked": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Permission"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateSiteRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "integer",
            "format": "int32"
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "useCase": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SiteUseCases"
              }
            ]
          },
          "difficulty": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RtlsSiteDifficulties"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "CreateSiteResponse": {
        "type": "object",
        "properties": {
          "siteId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CustomAlertAction": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "nullable": true
          },
          "alertType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AlarmTypes"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "DeviceIdForPosition": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "integer",
            "description": "Sensor's device id for this position.",
            "format": "int64",
            "nullable": true
          },
          "x": {
            "type": "integer",
            "description": "Beacon's X coordinate.",
            "format": "int32"
          },
          "y": {
            "type": "integer",
            "description": "Beacon's Y coordinate.",
            "format": "int32"
          },
          "z": {
            "type": "integer",
            "description": "Beacon's Z coordinate.",
            "format": "int32"
          },
          "floorId": {
            "type": "integer",
            "description": "ID (permanentId) for the floor of the beacon.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DeviceIdsForPositionsResponse": {
        "type": "object",
        "properties": {
          "beaconPositions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeviceIdForPosition"
            },
            "nullable": true
          },
          "tagPointPositions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagPointPosition"
            },
            "nullable": true
          },
          "rectangleWidth": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "rectangleHeight": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ignoredBeaconsFromCalibration": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          },
          "ignoredBeaconPairsFromCalibration": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              }
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeviceInfoResponse": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "integer",
            "format": "int32"
          },
          "siteId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "deviceId": {
            "type": "integer",
            "description": "Device ID.",
            "format": "int64"
          },
          "manufactured": {
            "type": "string",
            "description": "Device manufacturing date.",
            "format": "date-time"
          },
          "deviceType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DeviceTypes"
              }
            ],
            "description": "Device type.\nCheck enum for values."
          },
          "deviceModel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DeviceModels"
              }
            ],
            "description": "Device model.\nCheck enum for values."
          },
          "fwVersion": {
            "type": "string",
            "description": "Firmware version as string.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeviceModels": {
        "enum": [
          "Unknown",
          "SensorUnknown",
          "Sensor2Obsolete",
          "Sensor2Black",
          "Sensor2White",
          "TestStrobe",
          "Strobe",
          "Beacon3A0Black",
          "Beacon3A1Black",
          "Beacon3A0White",
          "Beacon3A1White",
          "Beacon3A2Black",
          "Beacon3A2White",
          "Beacon3A3Black",
          "Beacon3A3White",
          "Beacon3A3BlackUs",
          "Beacon3A3WhiteUs",
          "TagUnknown",
          "TagDual2White",
          "TagDual2Black",
          "TagDual2BSafer",
          "TagDual2B",
          "TagDual2BBadge",
          "TagDual2BCallButton",
          "TagBadge",
          "TagDual2B2",
          "TagCallButton",
          "Badge3A0PuBlack",
          "Badge3A1PuBlack",
          "Badge3A2PuBlack",
          "Badge3A1UBlack",
          "Badge3A2UBlack",
          "TagCallButton2A0White",
          "TagIndustrial0A0",
          "TagIndustrial0A0Led",
          "TagIndustrial1A0",
          "TagIndustrial1A0Led",
          "TagIndustrial1A1",
          "TagIndustrial1A1Led",
          "TagSport0A0Black",
          "TagSport0A0White",
          "TagSport0A0FlangesBlack",
          "TagSport0A0FlangesWhite",
          "TagSport1A0Black",
          "TagSport1A0White",
          "TagSport1A0FlangesBlack",
          "TagSport1A0FlangesWhite",
          "TagSport1A1Black",
          "TagSport1A1White",
          "TagSport1A1FlangesBlack",
          "TagSport1A1FlangesWhite",
          "TagSport0B0White",
          "CustomTag",
          "RfidTag",
          "ExpanderTag",
          "Ruwb001",
          "DockUnknown",
          "Dock48Badge30A0",
          "LocalServerUnknown",
          "GenericLocalServer"
        ],
        "type": "string",
        "description": "0 = Unknown, 256 = SensorUnknown, 258 = Sensor2Obsolete, 259 = Sensor2Black, 260 = Sensor2White, 261 = TestStrobe, 262 = Strobe, 263 = Beacon3A0Black, 264 = Beacon3A1Black, 265 = Beacon3A0White, 272 = Beacon3A1White, 273 = Beacon3A2Black, 274 = Beacon3A2White, 275 = Beacon3A3Black, 276 = Beacon3A3White, 277 = Beacon3A3BlackUs, 278 = Beacon3A3WhiteUs, 512 = TagUnknown, 518 = TagDual2White, 519 = TagDual2Black, 520 = TagDual2BSafer, 521 = TagDual2B, 528 = TagDual2BBadge, 529 = TagDual2BCallButton, 530 = TagBadge, 531 = TagDual2B2, 532 = TagCallButton, 533 = Badge3A0PuBlack, 534 = Badge3A1PuBlack, 535 = Badge3A2PuBlack, 536 = Badge3A1UBlack, 537 = Badge3A2UBlack, 544 = TagCallButton2A0White, 545 = TagIndustrial0A0, 546 = TagIndustrial0A0Led, 547 = TagIndustrial1A0, 548 = TagIndustrial1A0Led, 549 = TagIndustrial1A1, 550 = TagIndustrial1A1Led, 551 = TagSport0A0Black, 552 = TagSport0A0White, 553 = TagSport0A0FlangesBlack, 560 = TagSport0A0FlangesWhite, 561 = TagSport1A0Black, 562 = TagSport1A0White, 563 = TagSport1A0FlangesBlack, 564 = TagSport1A0FlangesWhite, 565 = TagSport1A1Black, 566 = TagSport1A1White, 567 = TagSport1A1FlangesBlack, 568 = TagSport1A1FlangesWhite, 569 = TagSport0B0White, 576 = CustomTag, 577 = RfidTag, 578 = ExpanderTag, 579 = Ruwb001, 768 = DockUnknown, 769 = Dock48Badge30A0, 1024 = LocalServerUnknown, 1025 = GenericLocalServer"
      },
      "DeviceTypes": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "0 = Unknown, 1 = InfrastructureDevice, 2 = Tag, 3 = Dock, 4 = LocalServer",
        "format": "int32"
      },
      "DigitalIo": {
        "type": "object",
        "properties": {
          "state": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagIoConfigStates"
              }
            ]
          },
          "wantedValue": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EmailAction": {
        "type": "object",
        "properties": {
          "recipients": {
            "type": "string",
            "nullable": true
          },
          "subject": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EventApiEndpointResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "created": {
            "type": "integer",
            "format": "int64"
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EventApiEndpointStatus"
              }
            ]
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "retryPolicy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EventApiEndpointRetryPolicy"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EventApiEndpointRetryPolicy": {
        "type": "object",
        "properties": {
          "hoursToDiscard": {
            "type": "integer",
            "format": "int32",
            "default": 6
          },
          "maxFailedAttempts": {
            "type": "integer",
            "format": "int32",
            "default": 3
          },
          "cooldownBetweenAttempts": {
            "type": "integer",
            "format": "int32",
            "default": 10
          },
          "maxFailedTriesInSingleAttempt": {
            "type": "integer",
            "format": "int32",
            "default": 100
          },
          "maxMinutesToWaitBetweenTriesInSingleAttempt": {
            "type": "integer",
            "format": "int32",
            "default": 1
          }
        },
        "additionalProperties": false
      },
      "EventApiEndpointStatus": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = Unknown, 1 = Created, 2 = Registered",
        "format": "int32"
      },
      "EventApiEventFromRegistrationEvent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "p": {
            "nullable": true
          },
          "ts": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "EventApiEventResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "endpointId": {
            "type": "integer",
            "format": "int64"
          },
          "parameters": {
            "nullable": true
          },
          "created": {
            "type": "integer",
            "format": "int64"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EventApiEventType"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "EventApiEventType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "description": "0 = Unknown, 1 = Debug, 2 = RoomChange, 3 = StrokeCount, 4 = AreaChange, 5 = TagStateChange, 6 = BeaconStateChange",
        "format": "int32"
      },
      "ExternalTrigger": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalTriggerRequest": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "integer",
            "format": "int32"
          },
          "siteId": {
            "type": "integer",
            "format": "int32"
          },
          "identifier": {
            "type": "string",
            "description": "Identifier that is specified in the workflow step with condition \"external trigger\".",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Tags that's flow steps should get triggered. If omitted or empty => then all tags get triggered.",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FillPolygonPolygon": {
        "type": "object",
        "properties": {
          "x": {
            "type": "integer",
            "format": "int32"
          },
          "y": {
            "type": "integer",
            "format": "int32"
          },
          "polygonPoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PolygonPoint"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FillPolygonRequest": {
        "type": "object",
        "properties": {
          "masterPolygon": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FillPolygonPolygon"
              }
            ],
            "nullable": true
          },
          "slavePolygons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FillPolygonPolygon"
            },
            "nullable": true
          },
          "resolution": {
            "type": "integer",
            "format": "int32",
            "default": 200
          },
          "tolerance": {
            "type": "number",
            "format": "double",
            "default": 0.1
          }
        },
        "additionalProperties": false
      },
      "FillPolygonResponse": {
        "type": "object",
        "properties": {
          "slavePolygons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FillPolygonPolygon"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FloorItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "permanentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ItemTypes"
              }
            ]
          },
          "file": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ItemFile"
              }
            ],
            "default": null,
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "minX": {
            "type": "integer",
            "format": "int32"
          },
          "minY": {
            "type": "integer",
            "format": "int32"
          },
          "maxX": {
            "type": "integer",
            "format": "int32"
          },
          "maxY": {
            "type": "integer",
            "format": "int32"
          },
          "minZ": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxZ": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "angle": {
            "type": "number",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "radius": {
            "type": "number",
            "format": "double",
            "default": null,
            "nullable": true
          },
          "fileId": {
            "type": "integer",
            "format": "int64",
            "default": null,
            "nullable": true
          },
          "polygonPoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PolygonPoint"
            },
            "default": null,
            "nullable": true
          },
          "deviceId": {
            "type": "integer",
            "format": "int64",
            "default": null,
            "nullable": true
          },
          "tagStatus": {
            "type": "integer",
            "format": "int64",
            "default": null,
            "nullable": true
          },
          "z": {
            "type": "integer",
            "format": "int64",
            "default": 0
          },
          "isDeniedDirectionOnPlusSide": {
            "type": "boolean",
            "default": false
          },
          "isSilentStrobe": {
            "type": "boolean",
            "default": false
          },
          "isPosArea": {
            "type": "boolean",
            "default": false
          },
          "tagCooldown": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "mergeAlerts": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "movementNeeded": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "movementPeriod": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "isFittingRoomArea": {
            "type": "boolean",
            "default": false
          },
          "generateSalesboostWithLocationingMode": {
            "type": "boolean",
            "default": false
          },
          "buzzerOnSeconds": {
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          "sleepLimit": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "guards": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "default": null,
            "nullable": true
          },
          "tagGroups": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "default": null,
            "nullable": true
          },
          "tagGroupsAsAnd": {
            "type": "boolean",
            "default": false
          },
          "denyBackupRequest": {
            "type": "boolean"
          },
          "triggerInAmount": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "triggerInPeriod": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "triggerOutAmount": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "triggerOutPeriod": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "areaIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "default": null,
            "nullable": true
          },
          "radiusSettingsForTagGroups": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/BeaconRadiusSettings"
            },
            "nullable": true
          },
          "defaultRadiusSettings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BeaconRadiusSettings"
              }
            ],
            "nullable": true
          },
          "positionStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PositionStatuses"
              }
            ]
          },
          "useCase": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SiteUseCases"
              }
            ]
          },
          "difficulty": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RtlsSiteDifficulties"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "FloorLayer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "permanentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "integer",
            "format": "int32"
          },
          "visible": {
            "type": "boolean"
          },
          "opacity": {
            "type": "integer",
            "format": "int32"
          },
          "overlapping": {
            "type": "boolean"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FloorItem"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FlowSleepAction": {
        "type": "object",
        "properties": {
          "seconds": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ForcePositionToEntrancePointWhenNoSuccessfulPositionLimits": {
        "type": "object",
        "properties": {
          "secondsWithoutSuccessfulPositioningToForcePositionToClosestEntrancePoint": {
            "type": "integer",
            "description": "Amount of seconds without successful positioning to set tags position to closest entrance point from last known tags position.\nThere is two additional conditions for this rule: max distance limit from closest entrance point and if complete tags signal lost situation is allowed.",
            "format": "int32",
            "default": 10
          },
          "maxMillisFromEntrancePointWhenNoSuccessfulPositioning": {
            "type": "integer",
            "description": "Max amount of millimeters for the distance from tags last known position to the closest entrance point. This limit is checked when time limit since last successful positioning has been triggered.\nNull value disables this additional condition.",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "setPositionToClosestEntrancePointOnSignalLost": {
            "type": "boolean",
            "description": "Disable time limit for forcing position to closest entrance point when tag's signal is lost completely.",
            "default": false
          }
        },
        "additionalProperties": false
      },
      "ForcePositionToEntrancePointWhenOutOfRtlsAreaLimits": {
        "type": "object",
        "properties": {
          "maxMillisFromEntrancePointAfterSuccessfulPositioningToForcePositionToClosestEntrancePoint": {
            "type": "integer",
            "description": "Max amount of millimeters for the distance from tags just calculated new position to the closest entrance point to force tags position to the closest entrance point.\nThis works together with the distance limit from tags position to closest rtls-area and both limits have to get triggered.",
            "format": "int32",
            "default": 1000
          },
          "minMillisFromRtlsAreaAfterSuccessfulPositioningToForcePositionToClosestEntrancePoint": {
            "type": "integer",
            "description": "Min amount of millimeters for the distance from tags just calculated new position to the closest rtls-area to force tags position to the closest entrance point.\nThis works together with the distance limit from tags position to closest entrance point and both limits have to get triggered.",
            "format": "int32",
            "default": 1000
          }
        },
        "additionalProperties": false
      },
      "FullBeaconState": {
        "type": "object",
        "properties": {
          "neighbors": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/NeighborStreamData"
            },
            "nullable": true
          },
          "removedNeighbors": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          },
          "online": {
            "type": "boolean",
            "nullable": true
          },
          "charging": {
            "type": "boolean",
            "nullable": true
          },
          "voltage": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "deviceModel": {
            "type": "integer",
            "format": "int32"
          },
          "connectTimestamp": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "statusCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BeaconStatusCodes"
              }
            ],
            "nullable": true
          },
          "pingTime": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "clockMasterWanted": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "clockMasterActive": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "radioDisabled": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetEndpointsResponse": {
        "type": "object",
        "properties": {
          "endpoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventApiEndpointResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetEventsFromRegistrationResponse": {
        "type": "object",
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventApiEventFromRegistrationEvent"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetEventsResponse": {
        "type": "object",
        "properties": {
          "registrations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventApiEventResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetResponse": {
        "type": "object",
        "properties": {
          "applicationId": {
            "type": "integer",
            "format": "int64"
          },
          "clientId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "revoked": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Permission"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetTagPointsResponse": {
        "type": "object",
        "properties": {
          "points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagPoint"
            },
            "description": "Tag points.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InitialTagState": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "batteryVoltage": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "batteryStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BatteryStatuses"
              }
            ]
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagStatuses"
              }
            ]
          },
          "areas": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "wire": {
            "type": "boolean"
          },
          "reed": {
            "type": "boolean"
          },
          "isOnline": {
            "type": "boolean"
          },
          "timestamp": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "x": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "y": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "z": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "accelerometer": {
            "type": "boolean"
          },
          "floorId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "signalLost": {
            "type": "boolean"
          },
          "powerSave": {
            "type": "boolean"
          },
          "deviceModel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DeviceModels"
              }
            ]
          },
          "fwVersion": {
            "type": "string",
            "nullable": true
          },
          "strokeCount": {
            "type": "integer",
            "format": "int64"
          },
          "uncertaintyDistance": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "odometer": {
            "type": "integer",
            "format": "int64"
          },
          "tripmeter": {
            "type": "integer",
            "format": "int64"
          },
          "speed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "digitalInputIoState": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "nullable": true
          },
          "digitalOutputIoState": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "nullable": true
          },
          "digitalOutputOfflineIoState": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "nullable": true
          },
          "ioConfigState": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/TagIoConfigStates"
            },
            "nullable": true
          },
          "cycleStride": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "color": {
            "type": "string",
            "nullable": true
          },
          "iconName": {
            "type": "string",
            "nullable": true
          },
          "animationFrequency": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "batteryPercentage": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minX": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minY": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "minZ": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "inCharger": {
            "type": "boolean"
          },
          "maxX": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxY": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxZ": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ItemFile": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ItemTypes": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17
        ],
        "type": "integer",
        "description": "1 = Scalegrid, 2 = Blueprint, 3 = Anchor, 4 = Rectangle, 5 = Circle, 6 = Polygon, 8 = Camera, 9 = Ethernet, 10 = Power, 11 = Device, 12 = Tag, 13 = Wall, 14 = RouteDetector, 15 = VirusProofWall, 16 = EntrancePoint, 17 = AreaGroup",
        "format": "int32"
      },
      "LayoutCreationRequest": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "deprecated": true
          },
          "stop": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "deprecated": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "majorId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "majorNumber": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "azimuthAngle": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "floors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LayoutFloor"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LayoutFloor": {
        "type": "object",
        "properties": {
          "permanentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "start": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "stop": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "layers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FloorLayer"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LayoutIdsResponse": {
        "type": "object",
        "properties": {
          "majorId": {
            "type": "integer",
            "format": "int32"
          },
          "minorId": {
            "type": "integer",
            "format": "int32"
          },
          "majorNumber": {
            "type": "integer",
            "format": "int32"
          },
          "minorNumber": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "LayoutUpdateRequest": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "stop": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "majorId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "LedBlinkFrequencys": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "0 = NoBlink, 1 = Hz4, 2 = Hz2, 3 = Hz1",
        "format": "int32"
      },
      "LedColors": {
        "enum": [
          "unknown",
          "off",
          "black",
          "red",
          "green",
          "blue",
          "yellow",
          "white",
          "pink",
          "cyan",
          "magenta"
        ],
        "type": "string",
        "description": "0 = Unknown, 1 = Off, 2 = Black, 3 = Red, 4 = Green, 5 = Blue, 6 = Yellow, 7 = White, 8 = Pink, 9 = Cyan, 10 = Magenta"
      },
      "LedModes": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "0 = Off, 1 = Info, 2 = Alert, 3 = Debug",
        "format": "int32"
      },
      "LedOrBuzzerAction": {
        "type": "object",
        "properties": {
          "ledDuration": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ledMode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LedModes"
              }
            ]
          },
          "blinkFrequency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LedBlinkFrequencys"
              }
            ]
          },
          "buzzerDuration": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "buzzerMode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WorkFlowBuzzerModes"
              }
            ]
          },
          "ledOff": {
            "type": "boolean"
          },
          "buzzerOff": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "MapTagPointsRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagPoint2"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ModifyEndpointRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Endpoint ID.",
            "format": "int64"
          },
          "retryPolicy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EventApiEndpointRetryPolicy"
              }
            ],
            "description": "Retry policy for the endpoint.",
            "nullable": true
          },
          "secret": {
            "type": "string",
            "description": "Secret for the endpoint. If non-null value, this secret is sent for this endpoint with every event.\nFormat is Authorization header with value \"Basic base64(noccela:secret)\"\nUse empty string to keep old value and null to disable secret.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ModifyExternalTagRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "deviceId": {
            "type": "integer",
            "format": "int64"
          },
          "x": {
            "type": "integer",
            "format": "int32"
          },
          "y": {
            "type": "integer",
            "format": "int32"
          },
          "z": {
            "type": "integer",
            "description": "Not required. If omitted => zero z-coordinate will be given.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "Not required. If omitted => name will not be changed.",
            "nullable": true
          },
          "floorId": {
            "type": "integer",
            "description": "Not required. If omitted => tag will be placed to the first floor on site.",
            "format": "int32",
            "nullable": true
          },
          "button": {
            "type": "boolean",
            "description": "Not required. Default value is false."
          },
          "mac": {
            "type": "integer",
            "format": "int64",
            "readOnly": true,
            "deprecated": true
          }
        },
        "additionalProperties": false
      },
      "ModifyRequest": {
        "type": "object",
        "properties": {
          "applicationId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "default": "Application name",
            "nullable": true
          },
          "description": {
            "type": "string",
            "default": "Application description",
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Permission"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ModifySiteLayoutResponse": {
        "type": "object",
        "properties": {
          "layoutIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LayoutIdsResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ModifySiteSensorsResponse": {
        "type": "object",
        "properties": {
          "layoutIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LayoutIdsResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ModifySiteSettingsRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          "site": {
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          "minMillisToBeOutOfRtlsAreaToForcePositionToClosestEntrancePoint": {
            "type": "integer",
            "description": "When tags new position is not on rtls-area and the distance from tags position to closest rtls-area exceeds this limit, then tags position is forced to the closest entrance point.\nNull value disables this rule.",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "forcePositionToEntrancePointWhenOutOfRtlsAreaLimits": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ForcePositionToEntrancePointWhenOutOfRtlsAreaLimits"
              }
            ],
            "description": "Specifies rules for setting tags position to closest entrance point when tag is out of rtls-area and close enough to entrance point.\nNull value disables this rule.",
            "default": null,
            "nullable": true
          },
          "forcePositionToEntrancePointWhenNoSuccessfulPositionLimits": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ForcePositionToEntrancePointWhenNoSuccessfulPositionLimits"
              }
            ],
            "description": "Specifies rules for setting tags position to closest entrance point when no successful position can be calculated.\nNull value disables this rule.",
            "default": null,
            "nullable": true
          },
          "locateTagsToRtlsAreasOnly": {
            "type": "boolean",
            "description": "If set to true and tag's position would get outside of rtls-areas, then tags position will be set to closest point on any rtls-area.\nIf tags current floor doesn't have any rtls-areas, then this does nothing.",
            "default": true
          },
          "defaultCycleStride": {
            "type": "integer",
            "description": "Adjusts tags' positioning frequency. Zero value uses the site's default frequency and other positive values adjusts the default frequency: default frequency * 0.5 ^ value.\nFor example if default frequency is 2.5Hz => setting value 2 => default frequency = 2.5 * 0.5 ^ 2 = 0.625Hz.",
            "format": "int32",
            "default": 0
          },
          "areaSafeLimit": {
            "type": "integer",
            "description": "Describes a value in millimeters that the tag has to be inside of an area to be registered on that area. Also the tag has to be out as much for the area to get unregistered.",
            "format": "int32",
            "default": 500
          }
        },
        "additionalProperties": false
      },
      "NeighborStreamData": {
        "type": "object",
        "properties": {
          "rssi": {
            "type": "integer",
            "format": "int32"
          },
          "fp": {
            "type": "integer",
            "format": "int32"
          },
          "distance": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "NetworkSettingsModificationRequest": {
        "required": [
          "account",
          "regionProfile",
          "site",
          "sleeping",
          "useCaseProfile",
          "wakingUp"
        ],
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          "site": {
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          "regionProfile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RegionProfiles"
              }
            ],
            "description": "Profile that determines default values for positioning parameters.\nSelecting \"US\" leads to a less aggressive reconnection policy.",
            "default": "EU"
          },
          "useCaseProfile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UseCaseProfiles"
              }
            ],
            "description": "Profile that determines default values for positioning parameters.\nCurrently, only \"default\" is supported.",
            "default": "Default"
          },
          "positioning": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PositioningConfiguration"
              }
            ],
            "nullable": true
          },
          "sleeping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SleepConfiguration"
              }
            ]
          },
          "wakingUp": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WakeupConfiguration"
              }
            ]
          },
          "poweredOnMotionThreshold": {
            "maximum": 12,
            "minimum": 2,
            "type": "integer",
            "description": "Acceleration threshold for the tag to not go to the sleep mode.\nFor example, value 8 means that a 126 mG acceleration spike is required for the tag to reset sleep counter (8 / 127 * 2 ≈ 126 mG).\nRecommended values are 4-12.\nNote: If null or omitted, the value is not changed.",
            "format": "int32",
            "default": 8,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "NetworkSettingsResponse": {
        "required": [
          "regionProfile",
          "sleeping",
          "useCaseProfile",
          "wakingUp"
        ],
        "type": "object",
        "properties": {
          "regionProfile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RegionProfiles"
              }
            ],
            "description": "Profile that determines default values for positioning parameters.\nSelecting \"US\" leads to a less aggressive reconnection policy.",
            "default": "EU"
          },
          "useCaseProfile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UseCaseProfiles"
              }
            ],
            "description": "Profile that determines default values for positioning parameters.\nCurrently, only \"default\" is supported.",
            "default": "Default"
          },
          "positioning": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PositioningConfiguration"
              }
            ],
            "nullable": true
          },
          "sleeping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SleepConfiguration"
              }
            ]
          },
          "wakingUp": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WakeupConfiguration"
              }
            ]
          },
          "poweredOnMotionThreshold": {
            "maximum": 12,
            "minimum": 2,
            "type": "integer",
            "description": "Acceleration threshold for the tag to not go to the sleep mode.\nFor example, value 8 means that a 126 mG acceleration spike is required for the tag to reset sleep counter (8 / 127 * 2 ≈ 126 mG).\nRecommended values are 4-12.\nNote: If null or omitted, the value is not changed.",
            "format": "int32",
            "default": 8,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OnlineSlotConfiguration": {
        "type": "object",
        "properties": {
          "slotsInBurst": {
            "maximum": 8,
            "minimum": 1,
            "type": "integer",
            "description": "How many slots are allocated for every tag in a single positioning burst.\nHigher value leads to more accurate positioning result and reduced battery life.\nNote: Accepted values are 1,2,4 or 8.\nNote: If null or omitted, the default value is used.\nDefault values for Use cases: Default = 4.",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "cycleSize": {
            "maximum": 65536,
            "minimum": 2,
            "type": "integer",
            "description": "The length of the positioning cycle. Each tag conducts a single positioning burst in a cycle.\nLower values lead to higher positioning frequency.\nNote: this value has to be a power of 2.\nTags positioning frequency can be determined: 1000 / (CycleSize * 1.6 * 0.97 * 2 ^ CycleStride).\nCycleStride can be adjusted for individual tags. For example, CycleSize of 512 and CycleStride of 0 results in 1.25Hz frequency.\nNote: If null or omitted, the default value is used.\nDefault values for Use cases: Default = 512.",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "triggerOfflineModeSeconds": {
            "maximum": 255,
            "minimum": 5,
            "type": "integer",
            "description": "How many seconds without a response from the base station for the tag to enter offline mode.\nNote: If null or omitted, the default value is used.\nDefault values for Regions: EU = 30 and US = 10.",
            "format": "int32",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Permission": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "integer",
            "format": "int32"
          },
          "siteId": {
            "type": "integer",
            "format": "int32"
          },
          "permissions": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SitePermissions"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Point": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number",
            "format": "double"
          },
          "y": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Polygon": {
        "type": "object",
        "properties": {
          "points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Point"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PolygonPoint": {
        "type": "object",
        "properties": {
          "x": {
            "type": "integer",
            "format": "int32"
          },
          "y": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PositionStatuses": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "0 = Unknown, 1 = Approximate, 2 = Calibrated, 3 = Measured",
        "format": "int32"
      },
      "PositioningConfiguration": {
        "type": "object",
        "properties": {
          "onlineSlots": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OnlineSlotConfiguration"
              }
            ],
            "description": "Configuration of tags UWB-Tx parameters when the tag has successfully connected to the base station(s).\nNote: When null or omitted: default values are used",
            "nullable": true
          },
          "wakeUpSlots": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WakeupSlotConfiguration"
              }
            ],
            "description": "Configuration of tags UWB-Tx parameters immediately after tags wake up.\nNote: When null or omitted: default values are used",
            "nullable": true
          },
          "offlineSlots": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectingSlotConfiguration"
              }
            ],
            "description": "Configuration of tags UWB-Tx parameters when connection to the base stations has been lost.\nNote: When null or omitted: default values are used",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PreviousStepAreaCondition": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = None, 1 = HasToBeSameAreaAsPrevious, 2 = HasToBeDifferentAreaThanPrevious",
        "format": "int32"
      },
      "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": { }
      },
      "RadioStatusRequest": {
        "type": "object",
        "properties": {
          "disable": {
            "type": "boolean"
          },
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "devices": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "If empty, null or omitted => all site's beacons are affected.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RebootRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "devices": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "If empty, null or omitted => all site's beacons are affected.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RegionProfiles": {
        "enum": [
          "EU",
          "US"
        ],
        "type": "string",
        "description": "0 = EU, 1 = US"
      },
      "RegisterEndpointRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Endpoint ID received as a response to creation request.",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RegisterEventRequest": {
        "type": "object",
        "properties": {
          "endpointId": {
            "type": "integer",
            "description": "Created and registered endpoint into which the events should\nbe sent to.",
            "format": "int64"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EventApiEventType"
              }
            ],
            "description": "Type of the event to register to."
          },
          "parameters": {
            "description": "Event-specific parameters, refer to EventAPI documentation.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RegisterEventResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Endpoint ID.",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "ReloadSiteRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "RemoveExternalTagRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "deviceId": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RemoveSiteRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "RemoveTagPointRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "RenameTagAction": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RtlsSiteDifficulties": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "0 = VeryEasy, 1 = Easy, 2 = Medium, 3 = Hard",
        "format": "int32"
      },
      "SecretResponse": {
        "type": "object",
        "properties": {
          "secret": {
            "type": "string",
            "nullable": true
          },
          "secretId": {
            "type": "integer",
            "format": "int64"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastUsed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expiration": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "SensorLiveDetails": {
        "type": "object",
        "properties": {
          "coCpuOnline": {
            "type": "boolean"
          },
          "isConnected": {
            "type": "boolean"
          },
          "allOk": {
            "type": "boolean"
          },
          "connectionUpTime": {
            "type": "string",
            "nullable": true
          },
          "lastPingTime": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "neighbors": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/SensorNeighbor"
            },
            "nullable": true
          },
          "lastTimestamp": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "radioDisabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "SensorNeighbor": {
        "type": "object",
        "properties": {
          "rssi": {
            "type": "integer",
            "format": "int32"
          },
          "fp": {
            "type": "integer",
            "format": "int32"
          },
          "distance": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "realDistance": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "distanceError": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "average": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "median": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SensorPositionModificationRequest": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "x": {
            "type": "integer",
            "format": "int32"
          },
          "y": {
            "type": "integer",
            "format": "int32"
          },
          "z": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "floorId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SensorPositionModificationsRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "positions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SensorPositionModificationRequest"
            },
            "nullable": true
          },
          "reloadSite": {
            "type": "boolean",
            "default": true
          }
        },
        "additionalProperties": false
      },
      "SetTagCycleStrideAction": {
        "type": "object",
        "properties": {
          "cycleStride": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SetTagDigitalIoOutputAction": {
        "type": "object",
        "properties": {
          "isOffline": {
            "type": "boolean"
          },
          "stateToSet": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SetTagGroupAction": {
        "type": "object",
        "properties": {
          "groupId": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SetTagVisualizationAction": {
        "type": "object",
        "properties": {
          "size": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "color": {
            "type": "string",
            "nullable": true
          },
          "iconName": {
            "type": "string",
            "nullable": true
          },
          "animationFrequency": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SignalFlashAction": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "integer",
            "format": "int64"
          },
          "lightSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "soundSeconds": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SiteBlueprintResponse": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string",
            "description": "Filename for the file.",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "description": "File id that can be used to download the file.",
            "format": "int32"
          },
          "download": {
            "type": "string",
            "description": "Link to download the file.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SiteDesignerRequest": {
        "type": "object",
        "properties": {
          "remove": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true,
            "deprecated": true
          },
          "update": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LayoutUpdateRequest"
            },
            "nullable": true,
            "deprecated": true
          },
          "create": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LayoutCreationRequest"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SiteInformationResponse": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "integer",
            "description": "Site's account id.",
            "format": "int32"
          },
          "siteId": {
            "type": "integer",
            "description": "Site's id.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "Site's name.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Country the site resides in.",
            "nullable": true
          },
          "City": {
            "type": "string",
            "description": "City the site resides in.",
            "nullable": true
          },
          "lat": {
            "type": "string",
            "description": "Latitude of the site's coordinates.",
            "nullable": true
          },
          "lng": {
            "type": "string",
            "description": "Longitude of the site's coordinates.",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "description": "Postal code.",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "description": "Additional comments about the site.",
            "nullable": true
          },
          "useCase": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SiteUseCases"
              }
            ],
            "description": "Use case of site."
          },
          "difficulty": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RtlsSiteDifficulties"
              }
            ],
            "description": "Difficulty of site in RTLS perspective."
          }
        },
        "additionalProperties": false
      },
      "SiteLayoutActivationRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "minorId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SiteLayoutModificationRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "layouts": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SiteDesignerRequest"
              }
            ],
            "nullable": true
          },
          "reloadSite": {
            "type": "boolean",
            "default": true
          }
        },
        "additionalProperties": false
      },
      "SiteLayoutRemoveRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "minorId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SiteLayoutResponse": {
        "type": "object",
        "properties": {
          "minorId": {
            "type": "integer",
            "format": "int32"
          },
          "minorNumber": {
            "type": "integer",
            "format": "int32"
          },
          "majorId": {
            "type": "integer",
            "format": "int32"
          },
          "majorNumber": {
            "type": "integer",
            "format": "int32"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "azimuthAngle": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "floors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LayoutFloor"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SiteLayoutUpdateRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "minorId": {
            "type": "integer",
            "format": "int32"
          },
          "comment": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SiteLayoutVersionResponse": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string",
            "nullable": true
          },
          "minorId": {
            "type": "integer",
            "format": "int32"
          },
          "active": {
            "type": "boolean"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "SiteLayoutVersionsResponse": {
        "type": "object",
        "properties": {
          "versions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SiteLayoutVersionResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SiteNodeDomainResponse": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain for node on which the site is running.\nReal-time API should connect to this node to access site's information.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SitePermissions": {
        "enum": [
          0,
          1,
          2,
          4,
          8,
          16,
          32,
          64,
          128,
          256,
          512,
          1024,
          2048,
          4094
        ],
        "type": "integer",
        "description": "0 = Nothing, 1 = LocalServerAdmin, 2 = SiteInformation, 4 = DeviceInformation, 8 = Designer, 16 = EventApi, 32 = RealTimeApi, 64 = HistoricalData, 128 = SiteModifications, 256 = DeviceModifications, 512 = WorkFlowModifications, 1024 = InstallationTool, 2048 = Integrations, 4094 = All",
        "format": "int64"
      },
      "SiteSensorLocationResponse": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "integer",
            "description": "Sensor's device ID.",
            "format": "int64"
          },
          "x": {
            "type": "integer",
            "description": "Sensor's X coordinate.",
            "format": "int32"
          },
          "y": {
            "type": "integer",
            "description": "Sensor's Y coordinate.",
            "format": "int32"
          },
          "z": {
            "type": "integer",
            "description": "Sensor's Z coordinate (elevation from the current floor).",
            "format": "int32"
          },
          "floorId": {
            "type": "integer",
            "description": "ID (permanentId) for the floor the sensor device currently resides on.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SiteSensorLocationSuggestionRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "floorId": {
            "type": "integer",
            "format": "int32"
          },
          "difficulty": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RtlsSiteDifficulties"
              }
            ]
          },
          "useCase": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SiteUseCases"
              }
            ]
          },
          "area": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Polygon"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SiteSettingsResponse": {
        "type": "object",
        "properties": {
          "minMillisToBeOutOfRtlsAreaToForcePositionToClosestEntrancePoint": {
            "type": "integer",
            "description": "When tags new position is not on rtls-area and the distance from tags position to closest rtls-area exceeds this limit, then tags position is forced to the closest entrance point.\nNull value disables this rule.",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "forcePositionToEntrancePointWhenOutOfRtlsAreaLimits": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ForcePositionToEntrancePointWhenOutOfRtlsAreaLimits"
              }
            ],
            "description": "Specifies rules for setting tags position to closest entrance point when tag is out of rtls-area and close enough to entrance point.\nNull value disables this rule.",
            "default": null,
            "nullable": true
          },
          "forcePositionToEntrancePointWhenNoSuccessfulPositionLimits": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ForcePositionToEntrancePointWhenNoSuccessfulPositionLimits"
              }
            ],
            "description": "Specifies rules for setting tags position to closest entrance point when no successful position can be calculated.\nNull value disables this rule.",
            "default": null,
            "nullable": true
          },
          "locateTagsToRtlsAreasOnly": {
            "type": "boolean",
            "description": "If set to true and tag's position would get outside of rtls-areas, then tags position will be set to closest point on any rtls-area.\nIf tags current floor doesn't have any rtls-areas, then this does nothing.",
            "default": true
          },
          "defaultCycleStride": {
            "type": "integer",
            "description": "Adjusts tags' positioning frequency. Zero value uses the site's default frequency and other positive values adjusts the default frequency: default frequency * 0.5 ^ value.\nFor example if default frequency is 2.5Hz => setting value 2 => default frequency = 2.5 * 0.5 ^ 2 = 0.625Hz.",
            "format": "int32",
            "default": 0
          },
          "areaSafeLimit": {
            "type": "integer",
            "description": "Describes a value in millimeters that the tag has to be inside of an area to be registered on that area. Also the tag has to be out as much for the area to get unregistered.",
            "format": "int32",
            "default": 500
          }
        },
        "additionalProperties": false
      },
      "SiteUseCases": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "0 = Eas, 1 = ContactTracingRtls, 2 = ContactTracingP2P, 3 = ItemTracking, 4 = Sports",
        "format": "int32"
      },
      "SleepConfiguration": {
        "required": [
          "maxSleepDuration",
          "sleepAfterNoAccelerationSeconds"
        ],
        "type": "object",
        "properties": {
          "maxSleepDuration": {
            "maximum": 65534,
            "minimum": 0,
            "type": "integer",
            "description": "How many seconds a tag will sleep before it's woken up by timer.\nDefault is 7 hours. Use min value 0 to disable sleeping completely, and with max value 65534 tag will sleep until acceleration is detected.",
            "format": "int32",
            "default": 25200
          },
          "sleepAfterNoAccelerationSeconds": {
            "maximum": 255,
            "minimum": 5,
            "type": "integer",
            "description": "How many seconds without acceleration for the tag to go to sleep while positioning.",
            "format": "int32",
            "default": 30
          },
          "sleepAfterNoAccelerationSecondsOfflineMode": {
            "maximum": 255,
            "minimum": 0,
            "type": "integer",
            "description": "How many seconds without acceleration for the tag to go to sleep while in offline mode.\nNote: If this is omitted or zero, then the value of SleepAfterNoAccelerationSeconds is used.",
            "format": "int32",
            "default": 30
          }
        },
        "additionalProperties": false
      },
      "SmsAction": {
        "type": "object",
        "properties": {
          "recipients": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SocialDistancingEvent": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "integer",
            "format": "int64"
          },
          "deviceIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          },
          "duration": {
            "type": "integer",
            "format": "int32"
          },
          "distance": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "StartStepAction": {
        "type": "object",
        "properties": {
          "stepName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StaticCoordinates": {
        "type": "object",
        "properties": {
          "minX": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "maxX": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "minY": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "maxY": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "minZ": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "maxZ": {
            "type": "integer",
            "format": "int32",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Step": {
        "type": "object",
        "properties": {
          "delay": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "canMoveWithinDelay": {
            "type": "boolean"
          },
          "timeout": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "writeToDb": {
            "type": "boolean"
          },
          "previousAreaCondition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PreviousStepAreaCondition"
              }
            ]
          },
          "condition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WorkFlowStepConditions"
              }
            ]
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagRestrictionForMultiTagStep"
            },
            "nullable": true
          },
          "tagsForAllSteps": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagRestrictionForAllSteps"
              }
            ],
            "nullable": true
          },
          "areas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AreaRestrictionForStep"
            },
            "nullable": true
          },
          "areasForStep": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "tagProximity": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagProximityRestriction"
              }
            ],
            "nullable": true
          },
          "tagBattery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagBatteryRestriction"
              }
            ],
            "nullable": true
          },
          "tagMotion": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagMotionRestriction"
              }
            ],
            "nullable": true
          },
          "externalTrigger": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalTrigger"
              }
            ],
            "nullable": true
          },
          "uiButton": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UiButtonStep"
              }
            ],
            "nullable": true
          },
          "uiToggleButton": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UiToggleButtonStep"
              }
            ],
            "nullable": true
          },
          "tagObjectSafeZone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagObjectSafeZoneRestriction"
              }
            ],
            "nullable": true
          },
          "tagDigitalIo": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagDigitalIoRestriction"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StepData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "left": {
            "type": "integer",
            "format": "int32"
          },
          "top": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WorkFlowStepTypes"
              }
            ]
          },
          "step": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Step"
              }
            ],
            "nullable": true
          },
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Action"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StepLink": {
        "type": "object",
        "properties": {
          "from": {
            "type": "integer",
            "format": "int32"
          },
          "to": {
            "type": "integer",
            "format": "int32"
          },
          "fromConnector": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StepResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "ts": {
            "type": "integer",
            "format": "int64"
          },
          "stopTs": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "ep": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "condition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WorkFlowStepConditions"
              }
            ]
          },
          "area": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TagAmountOperatorsForStep": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = ExactlySame, 1 = MoreThan, 2 = LessThan",
        "format": "int32"
      },
      "TagBatteryRestriction": {
        "type": "object",
        "properties": {
          "voltageHighLimit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "voltageLowLimit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "percentageHighLimit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "percentageLowLimit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TagDigitalIoRestriction": {
        "type": "object",
        "properties": {
          "ios": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/DigitalIo"
            },
            "nullable": true
          },
          "requireChange": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TagHistoryResponse": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "integer",
            "format": "int64"
          },
          "deviceId": {
            "type": "integer",
            "format": "int64"
          },
          "x": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "y": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "z": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "signalLost": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "batteryStatus": {
            "type": "string",
            "nullable": true
          },
          "batteryVoltage": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "deviceModel": {
            "type": "string",
            "nullable": true
          },
          "areas": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "floorId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "wire": {
            "type": "boolean"
          },
          "reed": {
            "type": "boolean"
          },
          "powerSave": {
            "type": "boolean"
          },
          "accountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "inCharger": {
            "type": "boolean"
          },
          "fwVersion": {
            "type": "string",
            "nullable": true
          },
          "uncertaintyDistance": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "groupId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "odometer": {
            "type": "integer",
            "format": "int64"
          },
          "tripmeter": {
            "type": "integer",
            "format": "int64"
          },
          "orientation": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ioConfig": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/TagIoConfigStates"
            },
            "nullable": true
          },
          "digitalIoInput": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "nullable": true
          },
          "digitalIoOutput": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "nullable": true
          },
          "digitalIoOfflineOutput": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "nullable": true
          },
          "cycleStride": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "batteryPercentage": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TagInFlowConditions": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = None, 1 = InFlow, 2 = NotInFlow",
        "format": "int32"
      },
      "TagInfoModificationRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "device": {
            "type": "integer",
            "description": "Device ID for tag to be modified.",
            "format": "int64"
          },
          "newName": {
            "type": "string",
            "description": "New name for the tag. Note that if this is missing or null\nname will not be modified. Name cannot be null, for no name set \"\".",
            "default": null,
            "nullable": true
          },
          "resetTripmeter": {
            "type": "boolean",
            "description": "Boolean indicating whether tags tripmeter should get reset. If omitted => tripmeter will not be reset.",
            "default": false
          },
          "cycleStride": {
            "type": "integer",
            "description": "New cycle stride for tag. Note that if this is missing or null cycle stride will not be modified",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "size": {
            "type": "integer",
            "description": "Tag size percentage in Noccela portal. Null or omitted doesn't change value and values less than zero will reset the value.",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "color": {
            "type": "string",
            "description": "Tag's color in Noccela portal. Null or omitted doesn't change value and empty string will reset the value.",
            "default": null,
            "nullable": true
          },
          "iconName": {
            "type": "string",
            "description": "Tag's icon in Noccela portal. Null or omitted doesn't change value and empty string will reset the value.",
            "default": null,
            "nullable": true
          },
          "animationFrequency": {
            "type": "integer",
            "description": "Tag opacity animation frequency in Noccela portal. Null or omitted doesn't change value and values less than zero will reset the value.",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "staticCoordinates": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StaticCoordinates"
              }
            ],
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TagIoConfigStates": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "0 = Unknown, 1 = DigitalInput, 2 = DigitalOutput, 3 = AnalogInput",
        "format": "int32"
      },
      "TagLedColor": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = Green, 1 = Red, 2 = Yellow",
        "format": "int32"
      },
      "TagMotionRestriction": {
        "type": "object",
        "properties": {
          "movementNeeded": {
            "type": "integer",
            "format": "int32"
          },
          "movementPeriod": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TagObjectSafeZoneRestriction": {
        "type": "object",
        "properties": {
          "useFrontArea": {
            "type": "boolean"
          },
          "useRearArea": {
            "type": "boolean"
          },
          "secondsSinceLastPositioning": {
            "type": "integer",
            "format": "int32"
          },
          "includeGroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "excludeGroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isClear": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TagPoint": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Id of tag point.",
            "format": "int32"
          },
          "x": {
            "type": "integer",
            "description": "X-coordinate of tag point.",
            "format": "int32",
            "nullable": true
          },
          "y": {
            "type": "integer",
            "description": "Y-coordinate of tag point.",
            "format": "int32",
            "nullable": true
          },
          "z": {
            "type": "integer",
            "description": "Z-coordinate of tag point.",
            "format": "int32"
          },
          "floorId": {
            "type": "integer",
            "description": "Floor id of tag point.",
            "format": "int32"
          },
          "deviceId": {
            "type": "integer",
            "description": "Device id of the attached tag.",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "TagPoint2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "x": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "y": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "z": {
            "type": "integer",
            "format": "int32"
          },
          "floorId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TagPointDataItem": {
        "type": "object",
        "properties": {
          "x": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "y": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "z": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "distances": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TagPointPosition": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Tag points id.",
            "format": "int32"
          },
          "x": {
            "type": "integer",
            "description": "Beacon's X coordinate.",
            "format": "int32"
          },
          "y": {
            "type": "integer",
            "description": "Beacon's Y coordinate.",
            "format": "int32"
          },
          "z": {
            "type": "integer",
            "description": "Beacon's Z coordinate.",
            "format": "int32"
          },
          "floorId": {
            "type": "integer",
            "description": "ID (permanentId) for the floor of the beacon.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TagProximityRestriction": {
        "type": "object",
        "properties": {
          "distance": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "lowDistance": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "includeGroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "excludeGroup": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "activityLimitSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "batteryCondition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BatteryStatuses"
              }
            ],
            "nullable": true
          },
          "cooldown": {
            "type": "integer",
            "format": "int32"
          },
          "bothTagsWithActionsAndResult": {
            "type": "boolean"
          },
          "sameTagsAsPreviousStep": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TagRestrictionForAllSteps": {
        "type": "object",
        "properties": {
          "allTags": {
            "type": "boolean"
          },
          "tagGroups": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          },
          "inFlowCondition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagInFlowConditions"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "TagRestrictionForMultiTagStep": {
        "type": "object",
        "properties": {
          "groupId": {
            "type": "integer",
            "format": "int64"
          },
          "amount": {
            "type": "integer",
            "format": "int32"
          },
          "condition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagAmountOperatorsForStep"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "TagRestrictionsForFlow": {
        "type": "object",
        "properties": {
          "allTags": {
            "type": "boolean"
          },
          "tagGroups": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          },
          "deviceIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TagSoundLedRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          "site": {
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          "devices": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Device IDs / Serial numbers for tag(s).\n<remarks>If null, all of the tags on the site are used!</remarks>",
            "default": null,
            "nullable": true
          },
          "alertSound": {
            "type": "boolean",
            "description": "Use the louder alert sound rather than the silent buzzer.",
            "default": false
          },
          "buzzerSeconds": {
            "type": "integer",
            "description": "How many seconds the buzzer should be played. If null, then default value is used",
            "format": "int32",
            "default": 15,
            "nullable": true
          },
          "ledSeconds": {
            "type": "integer",
            "description": "How many seconds the led should be blinked. If null, then default value is used",
            "format": "int32",
            "default": 15,
            "nullable": true
          },
          "buzzerOnInterval": {
            "type": "integer",
            "description": "Buzzers on interval in steps of 50 ms. Value 5 means that buzzer will be on for 250 ms on each interval. If null, then default value is used",
            "format": "int32",
            "default": 5,
            "nullable": true
          },
          "buzzerOffInterval": {
            "type": "integer",
            "description": "Buzzers off interval in steps of 50 ms. Value 5 means that buzzer will be off for 250 ms on each interval. If null, then default value is used",
            "format": "int32",
            "default": 5,
            "nullable": true
          },
          "ledColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagLedColor"
              }
            ],
            "description": "Color of the tags led. If null, then default value is used",
            "default": 0,
            "nullable": true
          },
          "ledBlinkFrequency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LedBlinkFrequencys"
              }
            ],
            "description": "Frequency of the tags led blinking. If null, then default value is used",
            "default": 2,
            "nullable": true
          },
          "playWithDelay": {
            "type": "boolean",
            "description": "In order to play tags buzzer/led the tag has to be alive. If this is set to true and the tag is not alive, the request will be sent to the tag when it becomes alive again. If this is set to false and tag is not alive, the request is ignored.",
            "default": false
          }
        },
        "additionalProperties": false
      },
      "TagStatuses": {
        "enum": [
          0,
          1,
          2,
          4,
          5,
          7,
          8,
          9,
          10,
          11
        ],
        "type": "integer",
        "description": "0 = NotSupported, 1 = FetchingDetails, 2 = AlarmUnarmed, 4 = AlarmArmed, 5 = ForeignTag, 7 = AssistanceRequestTag, 8 = BackupRequestTag, 9 = ExternalPhoneTag, 10 = IOTag, 11 = TagObject",
        "format": "int32"
      },
      "UiButtonStep": {
        "type": "object",
        "properties": {
          "buttonText": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UiToggleButtonStep": {
        "type": "object",
        "properties": {
          "buttonText0": {
            "type": "string",
            "nullable": true
          },
          "buttonText1": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateTagPointRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "deviceId": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "UpdateUseCaseAndDifficultyRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "integer",
            "format": "int32"
          },
          "site": {
            "type": "integer",
            "format": "int32"
          },
          "useCase": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SiteUseCases"
              }
            ]
          },
          "difficulty": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RtlsSiteDifficulties"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "UseCaseProfiles": {
        "enum": [
          "Default"
        ],
        "type": "string",
        "description": "0 = Default"
      },
      "UserInfoResponse": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "integer",
            "description": "You app's client id.",
            "format": "int64"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserPermissionItem"
            },
            "description": "Sites the client has permissions to access and the fine grained rights to each site.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserPermissionItem": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "integer",
            "description": "Site's owner account id.",
            "format": "int32"
          },
          "siteId": {
            "type": "integer",
            "description": "Site's id.",
            "format": "int32",
            "nullable": true
          },
          "permissions": {
            "type": "string",
            "description": "All given permissions to the site.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WakeUpStrategy": {
        "required": [
          "accelerationThreshold",
          "amountOfDetectedSamples",
          "samplesPeriod"
        ],
        "type": "object",
        "properties": {
          "accelerationThreshold": {
            "maximum": 12,
            "minimum": 2,
            "type": "integer",
            "description": "Acceleration threshold for the tag to increase the number of detected samples.\nRecommended values are 4-12.",
            "format": "int32",
            "default": 8
          },
          "amountOfDetectedSamples": {
            "maximum": 255,
            "minimum": 0,
            "type": "integer",
            "description": "How many acceleration samples above the threshold are required for the tag to start positioning.\nZero value disables the strategy completely.",
            "format": "int32",
            "default": 5
          },
          "samplesPeriod": {
            "maximum": 255,
            "minimum": 0,
            "type": "integer",
            "description": "Defines the maximum number of samples. Sampling is done by 10Hz frequency.",
            "format": "int32",
            "default": 10
          }
        },
        "additionalProperties": false
      },
      "WakeupConfiguration": {
        "required": [
          "wakeUpAccelerationThreshold"
        ],
        "type": "object",
        "properties": {
          "wakeUpAccelerationThreshold": {
            "maximum": 12,
            "minimum": 2,
            "type": "integer",
            "description": "Acceleration threshold for the tag to wakeup.\nFor example, value 8 means that 126 mG acceleration spike is required for the tag to wake up (8 / 127 * 2 ≈ 126 mG).\nRecommended values are 4-12.",
            "format": "int32",
            "default": 8
          },
          "wakeUpStrategy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WakeUpStrategy"
              }
            ],
            "description": "If no additional acceleration detection is required before the tag starts positioning, leave this null or omitted.\nIf this is defined, then after wake-up tag will start sampling acceleration values with 10Hz frequency.\nTag has to detect x acceleration samples above threshold y out of z samples to start positioning. If this requirement is not met, then tag will go back to sleep.\nThis can be used to prevent tag from waking up by a single acceleration spike. The main advantage is increasing tag's battery life.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WakeupSlotConfiguration": {
        "type": "object",
        "properties": {
          "triggerOfflineModeSeconds": {
            "maximum": 255,
            "minimum": 5,
            "type": "integer",
            "description": "How many seconds without a response from the base station for the tag to enter offline mode.\nNote: If null or omitted, the default value is used.\nDefault values: EU = 30 and US = 10.",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "slotsInBurst": {
            "maximum": 8,
            "minimum": 1,
            "type": "integer",
            "description": "How many slots are allocated for every tag in single connecting cycle.\nNote: If null or omitted, then the recommended value 2 is used.\nNote: Accepted values are 1,2,4 or 8.\nNote: It's highly recommended to use values greater than 1.\nNote: If null or omitted, the default value is used.\nDefault values for Use cases: Default = 2.",
            "format": "int32",
            "default": null,
            "nullable": true
          },
          "cycleSize": {
            "maximum": 65536,
            "minimum": 2,
            "type": "integer",
            "description": "The length of the connecting cycle.\nNote: If null or omitted, then a dynamically determined optimized value is used.\nNote: If null or omitted, the default value is used.\nNote: In case of wake-up, default will always be valued from the EU.\nDefault values for Regions: EU = Online cycle size + network latency, US = 10 seconds",
            "format": "int32",
            "default": null,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WorkFlow": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "removed": {
            "type": "boolean"
          },
          "flow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WorkFlowData"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WorkFlowActionTypes": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19
        ],
        "type": "integer",
        "description": "1 = LedBuzzerOn, 2 = LedBuzzerOff, 3 = Sms, 4 = CustomAlert, 5 = RenameTag, 6 = DbWrite, 7 = FlowSleep, 8 = ClearTagGroup, 9 = Email, 10 = SetUnknownPosition, 11 = SignalFlash, 12 = ResetTripmeter, 13 = SetTagGroup, 14 = StartStep, 15 = StopStep, 16 = TagJoinsFlow, 17 = SetTagDigitalIoOutput, 18 = SetTagCycleStride, 19 = SetTagVisualization",
        "format": "int32"
      },
      "WorkFlowBuzzerModes": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = Off, 1 = Low, 2 = High",
        "format": "int32"
      },
      "WorkFlowData": {
        "type": "object",
        "properties": {
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StepLink"
            },
            "nullable": true
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StepData"
            },
            "nullable": true
          },
          "tags": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TagRestrictionsForFlow"
              }
            ],
            "nullable": true
          },
          "allowOverlapping": {
            "type": "boolean"
          },
          "manuallyStartable": {
            "type": "boolean"
          },
          "isMultiTag": {
            "type": "boolean"
          },
          "disableAutoStepStart": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "WorkFlowResult": {
        "type": "object",
        "properties": {
          "ts": {
            "type": "integer",
            "format": "int64"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          },
          "tagNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "area": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StepResult"
            },
            "nullable": true
          },
          "guid": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "WorkFlowStepConditions": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22
        ],
        "type": "integer",
        "description": "1 = TagEntersArea, 2 = TagExitsArea, 3 = TagHasArea, 4 = TagHasNotArea, 5 = TagsInArea, 6 = TagButtonPressed, 7 = MagnetDetected, 8 = TagIsInArea, 9 = GuardReacted, 10 = SignalLost, 11 = TagProximity, 12 = TagWokeUp, 13 = TagWentToSleep, 14 = TagMotion, 15 = ExternalTrigger, 16 = UIButtonPressed, 17 = UIToggleButtonPressed, 18 = ManualStart, 19 = MultipleTagsNotInAreaAnymore, 20 = ObjectSafeZoneViolation, 21 = DigitalIoState, 22 = BatteryStatusChange",
        "format": "int32"
      },
      "WorkFlowStepTypes": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "0 = Start, 1 = Step, 2 = Action",
        "format": "int32"
      }
    },
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://auth.noccela.io/connect/token",
            "scopes": {
              "global": "Complete access to API"
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "oauth2": [
        "global"
      ]
    }
  ]
}