{"openapi":"3.0.1","info":{"title":"OpenAPI definition","version":"v0"},"servers":[{"url":"https://api.hertekconnect.nl","description":"Generated server url"}],"tags":[{"name":"Document Chat","description":"Document conversation management endpoints"},{"name":"Test","description":"Endpoint for testing the API and authentication"},{"name":"Invitation","description":"Endpoints to accept invitations"},{"name":"Mobile Devices","description":"Endpoint to manage mobile devices"},{"name":"Reseller chain management","description":"Endpoint to manage reseller chains"},{"name":"Device","description":"Endpoint for managing the currently authenticated device"},{"name":"Authorization","description":"Authorization and capability checking"},{"name":"Role Assignments","description":"API endpoints for managing role assignments"},{"name":"Reseller management","description":"Endpoint to manage resellers"},{"name":"Pairing","description":"Pair a new device with the a pairing code to retrieve an API token to authenticate against the API."},{"name":"Feature Flags","description":"Endpoint to manage feature flags"},{"name":"Webhooks","description":"Manage your webhooks"},{"name":"Installation Mutations","description":"Endpoint to manage installation mutations"},{"name":"Business unit management","description":"Endpoint to manage business units"},{"name":"Installations","description":"Installations API"},{"name":"Alarm Receiving Centers","description":"Endpoint to manage alarm receiving centers"},{"name":"Predictive Maintenance","description":"Endpoints for predictive maintenance data"},{"name":"Push Notifications","description":"Endpoints to manage Firebase Cloud Messaging for push notifications"},{"name":"Invitation management","description":"Endpoints to manage user invitations"},{"name":"Installation Migration","description":"Admin-only migration tools"},{"name":"Notification Performance","description":"Endpoint to export notification performance data"},{"name":"Maintenance mode management","description":"Endpoints to manage maintenance mode sessions"},{"name":"Element Synchronisations","description":"Endpoints to manage element synchronisations"},{"name":"Events","description":"Event endpoint to fetch information about ongoing installation events, e.g. fire alarms."},{"name":"Elements","description":"Elements API"},{"name":"User management","description":"Endpoint to manage users"},{"name":"Log entry management","description":"Endpoint to manage log entries and log entry notes"},{"name":"Health ping","description":"Polling endpoint for devices to let the system know they are online and receive status information"},{"name":"Element management","description":"Endpoint to manage elements"},{"name":"Service Organisations","description":"Endpoint to manage service organisations"},{"name":"Authentication","description":"Authenticate with your Hertek Connect account to generate a Hertek Connect Link Token."},{"name":"Installation Push Notification Settings","description":"Capability-based installation push notification channel settings"},{"name":"Installation Requests","description":"Endpoint to manage installation requests"},{"name":"Customer organisation management","description":"Endpoint to manage customer organisations"},{"name":"Installations","description":"Endpoint to manage installations"},{"name":"Installation invitations","description":"Endpoints to manage installation invitations"},{"name":"Maintenance mode management","description":"Endpoints to manage maintenance mode sessions (V2 - Capability-based authorization)"},{"name":"Identity list","description":"List identities with access at a scope level"},{"name":"Document View","description":"Secure document viewing endpoints"},{"name":"Customer Organisations","description":"Endpoint to manage customer organisations"},{"name":"Zones","description":"Zones API"},{"name":"Zone management","description":"Endpoint to manage zones"},{"name":"Installation Settings","description":"Endpoint to manage Connect Evac installation settings"}],"paths":{"/silent-alarm/v1/device":{"put":{"tags":["Device"],"summary":"Endpoint to update the firebase token of the currently authenticated device","operationId":"updateFirebaseToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFirebaseTokenRequest"}}},"required":true},"responses":{"204":{"description":"Firebase token has been updated successfully"},"400":{"description":"Request contains an empty firebase token"},"401":{"description":"Unauthorized device"}}}},"/silent-alarm/v1/device/active-status":{"put":{"tags":["Device"],"summary":"Endpoint to update the active status of the currently authenticated device, should be set to false when device is charging","operationId":"updateDeviceActiveStatus","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeviceActiveStatusRequest"}}},"required":true},"responses":{"204":{"description":"Device status has been updated successfully"},"400":{"description":"Request contains an empty active status"},"401":{"description":"Unauthorized device"}}}},"/installation/v2/resellers/{resellerId}/installation-requests/{id}":{"get":{"tags":["Installation Requests"],"summary":"Returns the installation request associated with the given id","operationId":"show","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestResponseV2"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"put":{"tags":["Installation Requests"],"summary":"Updates an installation request","operationId":"update","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestRequestV2"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestResponseV2"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v2/resellers/{resellerId}/installation-requests/{id}/products":{"get":{"tags":["Installation Requests"],"summary":"Returns the products that have been selected when configuring the installation request","operationId":"showProducts","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}}}}}},"security":[{"Session authentication":[]}]},"put":{"tags":["Installation Requests"],"summary":"Selects the products for an installation request","operationId":"updateProducts","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}}}}}},"security":[{"Session authentication":[]}]}},"/installation/v2/resellers/{resellerId}/installation-requests/{id}/finalize":{"put":{"tags":["Installation Requests"],"summary":"Finalizes an installation request by setting the Web Way One Id","operationId":"finalizeInstallationRequest","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestFinalizationRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestResponseV2"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v2/resellers/{resellerId}/installation-requests/{id}/configuration":{"get":{"tags":["Installation Requests"],"summary":"Returns the technical configuration for an installation request","operationId":"showConfiguration","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnicalConfigurationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"put":{"tags":["Installation Requests"],"summary":"Updates the technical configuration for an installation request","operationId":"updateConfiguration","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnicalConfigurationRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnicalConfigurationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v2/push-notification-settings":{"get":{"tags":["Installation Push Notification Settings"],"summary":"Get user push notification settings","description":"Returns the user's notification channel subscriptions. Available channels are determined by the user's capabilities.","operationId":"getUserSettings","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationPushNotificationSettingsOutputV2"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"put":{"tags":["Installation Push Notification Settings"],"summary":"Update user notification settings","description":"Updates the user's notification channel subscriptions. Channel availability and update permissions are determined by the user's capabilities.","operationId":"updateUserSettings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInstallationPushNotificationSettingsRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationPushNotificationSettingsOutputV2"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/maintenance-mode/stop":{"put":{"tags":["Maintenance mode management"],"summary":"Stop maintenance mode for an installation","description":"Stops the active maintenance session for the specified installation.\n\nAuthorization is capability-based: requires INSTALLATION_MAINTENANCE_MODE_STOP capability.\n","operationId":"stopMaintenanceMode","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceModeResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installation-mutations/{id}/finalize":{"put":{"tags":["Installation Mutations"],"summary":"Finalizes the installation mutation","operationId":"finalizeMutation","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationMutationResponseV2"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/installation/v1/installations/{installationId}/maintenance-mode/stop":{"put":{"tags":["Maintenance mode management"],"summary":"Stop maintenance mode for an installation","description":"Stops the active maintenance session for the specified installation","operationId":"stopMaintenanceMode_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceModeResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installation-requests/{id}":{"get":{"tags":["Installation Requests"],"summary":"Returns the installation request associated with the given id","operationId":"show_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Installation Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestResponseV1"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"put":{"tags":["Installation Requests"],"summary":"Updates an installation request","operationId":"update_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestRequestV1"}}},"required":true},"responses":{"200":{"description":"Installation Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestResponseV1"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"422":{"description":"Unprocessable Entity"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installation-requests/{id}/products":{"get":{"tags":["Installation Requests"],"summary":"Returns the products that have been selected when configuring the installation request","operationId":"showProducts_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Products","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"put":{"tags":["Installation Requests"],"summary":"Selects the products for an installation request","operationId":"updateProducts_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}}}},"required":true},"responses":{"200":{"description":"Products","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"422":{"description":"Unprocessable Entity"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installation-requests/{id}/finalize":{"put":{"tags":["Installation Requests"],"summary":"Finalizes an installation request by setting the Web Way One Id","operationId":"finalizeInstallationRequest_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestFinalizationRequest"}}},"required":true},"responses":{"200":{"description":"Installation Request","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InstallationRequestResponseV1"}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"422":{"description":"Unprocessable Entity"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installation-requests/{id}/configuration":{"get":{"tags":["Installation Requests"],"summary":"Returns the technical configuration for an installation request","operationId":"showConfiguration_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Technical Configuration","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TechnicalConfigurationResponse"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"put":{"tags":["Installation Requests"],"summary":"Updates the technical configuration for an installation request","operationId":"updateConfiguration_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnicalConfigurationRequest"}}},"required":true},"responses":{"200":{"description":"Technical Configuration","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TechnicalConfigurationResponse"}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"422":{"description":"Unprocessable Entity"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installation-mutations/{id}/finalize":{"put":{"tags":["Installation Mutations"],"summary":"Finalizes the installation mutation","operationId":"finalizeMutation_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationMutationResponseV1"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/feature-flags/v2/feature-flags":{"get":{"tags":["Feature Flags"],"summary":"Returns all feature flags","description":"Returns all feature flags","operationId":"index","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"bearerToken":[]}]},"put":{"tags":["Feature Flags"],"summary":"Set status of given feature flag","description":"Set status of given feature flag","operationId":"update_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"bearerToken":[]}]}},"/feature-flags/v1/feature-flags":{"get":{"tags":["Feature Flags"],"summary":"Returns all feature flags","description":"Returns all feature flags","operationId":"index_1","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"bearerToken":[]}]},"put":{"tags":["Feature Flags"],"summary":"Set status of given feature flag","description":"Set status of given feature flag","operationId":"update_3","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"bearerToken":[]}]}},"/silent-alarm/v1/ping":{"post":{"tags":["Health ping"],"summary":"Endpoint the device should use to let the system know it's still active. Returns an update of the installation the device is paired to.","operationId":"ping","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PingRequest"}}},"required":true},"responses":{"200":{"description":"Info about the installation the device is paired to","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthPingResponse"}}}},"422":{"description":"When the request contains an empty Firebase token"},"401":{"description":"Unauthorized device"}}}},"/silent-alarm/v1/pair-device":{"post":{"tags":["Pairing"],"summary":"Pairs a device to the system and returns the generated API token. The Pairing code can only be used once!","operationId":"pairDevice","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PairingRequest"}}},"required":true},"responses":{"200":{"description":"Pair device response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PairingResponse"}}}},"400":{"description":"When the request contains invalid or misses values."},"401":{"description":"Invalid pairing code"},"422":{"description":"When the device is already paired."}}}},"/silent-alarm/v1/events/twilio":{"post":{"tags":["Events"],"operationId":"twilioCallback","parameters":[{"name":"requestMap","in":"query","required":true,"schema":{"type":"object","additionalProperties":{"type":"string"}}}],"responses":{"200":{"description":"OK"}}}},"/silent-alarm/v1/events/confirmreceipt":{"post":{"tags":["Events"],"summary":"Confirms the receipt of a notification for an event","operationId":"confirmNotificationReceipt","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmNotificationRequest"}}},"required":true},"responses":{"204":{"description":"The confirmation is found and acknowledged"},"400":{"description":"When the request contains an empty notification uuid"},"404":{"description":"When there is no notification found for the authorized mobile device with the given notification uuid"},"401":{"description":"Unauthorized device"}}}},"/silent-alarm/v1/events/ack-connnectionfault":{"post":{"tags":["Events"],"summary":"Acknowledges a connection fault for the installation that the requesting device is connected to.","operationId":"acknowledgeConnectionFault","responses":{"204":{"description":"The current open connection fault is found and acknowledged"},"404":{"description":"There is no installation connection fault found to acknowledge for the authorized mobile device"},"401":{"description":"Unauthorized device"},"409":{"description":"The connection fault was already acknowledged."}}}},"/invitation/v1/{token}/accept":{"post":{"tags":["Invitation"],"summary":"Accepts an invitation","operationId":"acceptInvitation","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationAcceptResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"409":{"description":"Conflict","content":{"application/json":{"schema":{"required":["error","reason"],"type":"object","properties":{"error":{"type":"string"},"reason":{"type":"string","enum":["ALREADY_ACCEPTED"]}}}}}},"410":{"description":"Gone","content":{"application/json":{"schema":{"required":["error","reason"],"type":"object","properties":{"error":{"type":"string"},"reason":{"type":"string","enum":["EXPIRED"]}}}}}}},"security":[{"bearerToken":[]}]}},"/installation/v2/service-organisations/{serviceOrganisationId}/migrations":{"post":{"tags":["Installation Migration"],"summary":"Migrate installations from service organization to reseller","description":"Migrates installations, installation requests, and installation mutations from a legacy service organization to a reseller. Automatically creates authorization hierarchy paths. Only accessible to Platform Admin users.","operationId":"migrateToReseller","parameters":[{"name":"serviceOrganisationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MigrationRequest"}}},"required":true},"responses":{"200":{"description":"Migration completed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MigrationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"bearerToken":[]}]}},"/installation/v2/resellers/{resellerId}/installation-requests":{"get":{"tags":["Installation Requests"],"summary":"Returns the installation requests that have not been finished yet","operationId":"index_2","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InstallationRequestResponseV2"}}}}}},"security":[{"Session authentication":[]}]},"post":{"tags":["Installation Requests"],"summary":"Creates an installation request","operationId":"create","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestRequestV2"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestResponseV2"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones/{zoneId}/elements/{elementId}/set-enabled":{"post":{"tags":["Element management"],"summary":"Enable or disable an element","description":"Triggers a request for enabling or disabling the specified element. Returns 204 NO_CONTENT if successful.","operationId":"setEnabled","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"elementId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementEnablementRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones/{zoneId}/elements/{elementId}/request-analog-value":{"post":{"tags":["Element management"],"summary":"Request analog value for an element","description":"Triggers a request for the analog value of the specified element. Returns 204 NO_CONTENT if successful.","operationId":"requestAnalogValueForElement","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"elementId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/reset-installation":{"post":{"tags":["Installations"],"summary":"Reset installation","description":"Resets the specified installation. This will recover the installation from faults.","operationId":"resetInstallation","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/mute-installation":{"post":{"tags":["Installations"],"summary":"Mute installation","description":"Mutes the buzzer of the specified installation.","operationId":"muteInstallation","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/maintenance-mode/start":{"post":{"tags":["Maintenance mode management"],"summary":"Start maintenance mode for an installation","description":"Starts a new maintenance session for the specified installation and devices.\n\nIf no timeout is provided in timeoutMinutes, the default timeout will be used.\nThere will ALWAYS be a timeout either implicit (default) or explicit (provided).\n\nThe timeout duration is validated against the maximum allowed duration to prevent\nunreasonably long maintenance sessions.\n\nAuthorization is capability-based: requires INSTALLATION_MAINTENANCE_MODE_START capability.\n","operationId":"startMaintenanceMode","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceModeRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceModeResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/log-entries/{logEntryId}/log-entry-notes":{"post":{"tags":["Log entry management"],"summary":"Creates a log entry note","description":"Creates a log entry note associated with the given log entry id<br/>Returns the created log entry note.","operationId":"createLogEntryNote","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"logEntryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEntryNoteRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEntryNoteResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/invitations":{"post":{"tags":["Installation invitations"],"summary":"Creates a new invitation for an installation","operationId":"createInvitation","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationInvitationRequest"}}},"required":true},"responses":{"202":{"description":"Accepted"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"},"409":{"description":"Conflict","content":{"application/json":{"schema":{"required":["error","reason"],"type":"object","properties":{"error":{"type":"string"},"reason":{"type":"string","enum":["EXISTING_ACCESS","ACTIVE_INVITATION"]}}}}}}},"security":[{"bearerToken":[]}]}},"/installation/v2/installations/{installationId}/installation-mutations":{"get":{"tags":["Installation Mutations"],"summary":"Returns the installation mutations for the given installation","operationId":"getMutationsForInstallation","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InstallationMutationResponseV2"}}}}}}},"post":{"tags":["Installation Mutations"],"summary":"Mutates an installation","operationId":"mutate","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationMutationRequestV2"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationMutationResponseV2"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}}}},"/installation/v2/installations/{installationId}/enable-sirens":{"post":{"tags":["Installations"],"summary":"Enable sirens for the installation","description":"Enables all sirens for the specified installation","operationId":"enableSirens","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/element-synchronisations":{"get":{"tags":["Element Synchronisations"],"summary":"Returns element synchronisations for an installation","description":"---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"getElementSynchronisationsForInstallation","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"synchronisationStatus","in":"query","required":false,"schema":{"type":"string","enum":["PENDING","COMPLETED","CANCELED"]}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ElementSynchronisationResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"post":{"tags":["Element Synchronisations"],"summary":"Starts a new element synchronisation for an installation","operationId":"startElementSynchronisation","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementSynchronisationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/disable-sirens":{"post":{"tags":["Installations"],"summary":"Disable sirens for the installation","description":"Disables all sirens for the specified installation","operationId":"disableSirens","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/activate":{"post":{"tags":["Installations"],"summary":"Activates the installation","description":"Activates the specified installation","operationId":"activate","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/zones/{zoneId}/elements/{elementId}/set-enabled":{"post":{"tags":["Element management"],"summary":"Enable or disable an element","description":"Triggers a request for enabling or disabling the specified element. Returns 204 NO_CONTENT if successful.","operationId":"setEnabled_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"elementId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementEnablementRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/zones/{zoneId}/elements/{elementId}/request-analog-value":{"post":{"tags":["Element management"],"summary":"Request analog value for an element","description":"Triggers a request for the analog value of the specified element. Returns 204 NO_CONTENT if successful.","operationId":"requestAnalogValueForElement_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"elementId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/reset-installation":{"post":{"tags":["Installations"],"summary":"Reset installation","description":"Resets the specified installation. This will recover the installation from faults.","operationId":"resetInstallation_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/mute-installation":{"post":{"tags":["Installations"],"summary":"Mute installation","description":"Mutes the buzzer of the specified installation.","operationId":"muteInstallation_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/maintenance-mode/start":{"post":{"tags":["Maintenance mode management"],"summary":"Start maintenance mode for an installation","description":"Starts a new maintenance session for the specified installation and devices.\n\nIf no timeout is provided in timeoutMinutes, the default timeout will be used.\nThere will ALWAYS be a timeout either implicit (default) or explicit (provided).\n\nThe timeout duration is validated against the maximum allowed duration to prevent\nunreasonably long maintenance sessions.\n","operationId":"startMaintenanceMode_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceModeRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceModeResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/log-entries/{logEntryId}/log-entry-notes":{"post":{"tags":["Log entry management"],"summary":"Creates a log entry note","description":"Creates a log entry note associated with the given log entry id<br/>Returns the created log entry note.","operationId":"createLogEntryNote_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"logEntryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEntryNoteRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEntryNoteResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/installation-mutations":{"get":{"tags":["Installation Mutations"],"summary":"Returns the installation mutations for the given installation","operationId":"getMutationsForInstallation_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InstallationMutationResponseV1"}}}}}},"security":[{"Session authentication":[]}]},"post":{"tags":["Installation Mutations"],"summary":"Mutates an installation","operationId":"mutate_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationMutationRequestV1"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationMutationResponseV1"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/enable-sirens":{"post":{"tags":["Installations"],"summary":"Enable sirens for the installation","description":"Enables all sirens for the specified installation","operationId":"enableSirens_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/element-synchronisations":{"get":{"tags":["Element Synchronisations"],"summary":"Returns element synchronisations for an installation","description":"---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"getElementSynchronisationsForInstallation_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"synchronisationStatus","in":"query","required":false,"schema":{"type":"string","enum":["PENDING","COMPLETED","CANCELED"]}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ElementSynchronisationResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"post":{"tags":["Element Synchronisations"],"summary":"Starts a new element synchronisation for an installation","operationId":"startElementSynchronisation_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementSynchronisationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/disable-sirens":{"post":{"tags":["Installations"],"summary":"Disable sirens for the installation","description":"Disables all sirens for the specified installation","operationId":"disableSirens_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installation-requests":{"get":{"tags":["Installation Requests"],"summary":"Returns the installation requests that have not been finished yet","operationId":"index_3","responses":{"200":{"description":"Installation Requests","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InstallationRequestResponseV1"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"Session authentication":[]}]},"post":{"tags":["Installation Requests"],"summary":"Creates an installation request","operationId":"create_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestRequestV1"}}},"required":true},"responses":{"200":{"description":"Installation Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationRequestResponseV1"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"422":{"description":"Unprocessable Entity"}},"security":[{"Session authentication":[]}]}},"/firebaseRegistrationToken":{"post":{"tags":["Push Notifications"],"summary":"Registers a Firebase registration token for the authenticated user (legacy endpoint)","description":"Legacy endpoint for backward compatibility. Associates a Firebase Cloud Messaging registration token with the authenticated user. If the token is already associated with another user, it will be re-associated to the current user. This enables push notifications to be sent to the user's device.","operationId":"addRegistrationTokenLegacy","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"204":{"description":"No Content"}},"deprecated":true}},"/firebase-registration-tokens":{"get":{"tags":["Push Notifications"],"summary":"Get all Firebase registration tokens for the authenticated user","description":"Returns a list of all Firebase Cloud Messaging registration tokens currently associated with the authenticated user. Used for debugging multi-device push notification issues and displaying registered devices.","operationId":"getAllRegistrationTokens","responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenListResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}},"post":{"tags":["Push Notifications"],"summary":"Registers a Firebase registration token for the authenticated user","description":"Associates a Firebase Cloud Messaging registration token with the authenticated user. If the token is already associated with another user, it will be re-associated to the current user. This enables push notifications to be sent to the user's device.","operationId":"addRegistrationToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationTokenRequest"}}},"required":true},"responses":{"204":{"description":"No Content"}}},"delete":{"tags":["Push Notifications"],"summary":"Deletes a Firebase registration token for the authenticated user","description":"Removes the association between the authenticated user and the specified Firebase registration token. This should be called when the user logs out or when the device should no longer receive push notifications for this user.","operationId":"deleteRegistrationToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationTokenRequest"}}},"required":true},"responses":{"204":{"description":"No Content"}}}},"/firebase-registration-tokens/echo":{"post":{"tags":["Push Notifications"],"summary":"Send a test push notification to verify token registration","description":"Sends a test notification with a custom message directly to the specified Firebase registration token. The token must be owned by the authenticated user. Used to verify that the token is valid and the device can receive notifications. This is a diagnostic endpoint that bypasses normal permission checks.","operationId":"sendEchoNotification","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EchoNotificationRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}}}},"/documents/v1/chat/stream":{"post":{"tags":["Document Chat"],"summary":"Stream a chat message","description":"Send a message to the AI document assistant and receive a streaming response via Server-Sent Events.\n\nThe response streams word-by-word, allowing real-time display in the UI.\n\n**Event types:**\n- `thinking` - Sent immediately while waiting for AI response\n- `token` - Contains a single word/token of the response\n- `sources` - Contains source document references (sent after all tokens)\n- `done` - Final event with conversationId for follow-up messages\n- `error` - Sent if an error occurs\n\nIf conversationId is provided, continues an existing conversation.\nIf conversationId is not provided, a new conversation is created.\n","operationId":"streamChat","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}},"required":true},"responses":{"200":{"description":"SSE stream of chat events (thinking, token, sources, done, error)","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}},"401":{"description":"Unauthorized","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}},"403":{"description":"Forbidden - missing DOCUMENT_CHAT capability","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}},"429":{"description":"Too Many Requests - rate limit exceeded","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}},"security":[{"Session authentication":[]}]}},"/connect-evac/v2/installations/{installationId}/mobile-devices":{"get":{"tags":["Mobile Devices"],"summary":"Returns the mobile devices that have been paired to the given installation","description":"---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"list","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/MobileDeviceResponseV2"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"post":{"tags":["Mobile Devices"],"summary":"Generate a pairing code for a new mobile device","operationId":"create_2","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PairingCodeResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/authorization/v1/role-assignments/batch":{"post":{"tags":["Role Assignments"],"summary":"Batch assign roles to users","description":"Creates multiple role assignments in a single transaction. All assignments succeed or all fail (atomic operation).\n\n**Authorization**: Requires ADMIN role at PLATFORM scope.\n\n**Validation Rules**:\n- All users must exist\n- All hierarchy paths (objectType + objectId combinations) must exist\n- effectiveFrom cannot be in the past (defaults to now if not provided)\n- effectiveTo must be after effectiveFrom (optional, null means no expiration)\n- No duplicate active assignments allowed (same user, object, role, overlapping time period)\n\n**Error Responses**:\n- 400 Bad Request: Validation failure (e.g., effectiveFrom in past, invalid time constraints)\n- 404 Not Found: User not found, hierarchy path not found, or insufficient permissions\n- 409 Conflict: Duplicate active role assignment exists\n- 422 Unprocessable Entity: Invalid request body structure\n\n**Maximum batch size**: 100 assignments per request\n","operationId":"batchAssignRoles","requestBody":{"description":"Batch role assignment request containing list of assignments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchRoleAssignmentRequest"},"examples":{"Single permanent assignment":{"description":"Assign ADMIN role to a user for a reseller, effective immediately with no expiration","value":{"assignments":[{"userId":123,"objectType":"RESELLER","objectId":5,"role":"ADMIN","effectiveFrom":null,"effectiveTo":null}]}},"Multiple assignments with time constraints":{"description":"Assign different roles to multiple users with specific time periods","value":{"assignments":[{"userId":123,"objectType":"RESELLER","objectId":5,"role":"ADMIN","effectiveFrom":"2025-01-01T00:00:00Z","effectiveTo":"2025-12-31T23:59:59Z"},{"userId":456,"objectType":"BUSINESS_UNIT","objectId":10,"role":"TECHNICAL_SPECIALIST","effectiveFrom":"2025-01-15T09:00:00Z","effectiveTo":null}]}},"Temporary assignment":{"description":"Assign a role with both start and end dates for temporary access","value":{"assignments":[{"userId":789,"objectType":"PLATFORM","objectId":1,"role":"SERVICE_COORDINATOR","effectiveFrom":"2025-01-01T00:00:00Z","effectiveTo":"2025-01-31T23:59:59Z"}]}}}}},"required":true},"responses":{"201":{"description":"Role assignments created successfully","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BatchRoleAssignmentResponse"}}}},"400":{"description":"Invalid request - validation failure","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BatchRoleAssignmentResponse"}}}},"404":{"description":"Resource not found or insufficient permissions","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BatchRoleAssignmentResponse"}}}},"409":{"description":"Conflict - duplicate active assignment","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BatchRoleAssignmentResponse"}}}},"422":{"description":"Invalid request body structure","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BatchRoleAssignmentResponse"}}}}},"security":[{"bearerToken":[]}]}},"/authorization/v1/capabilities/batch":{"post":{"tags":["Authorization"],"summary":"Batch check capabilities for multiple objects","description":"Returns the capabilities that the authenticated user has for each requested object.\nMaximum 200 IDs per object type.\n\nObjects where the user has no capabilities are omitted from the response (not included as keys in the result map).\nThis applies regardless of whether you request 1 ID or 100 IDs - inaccessible objects are always omitted.\nThis prevents information disclosure about resource existence.\n\nFor example, if you request [1, 2, 3] but only have access to [2], the response will only contain key \"2\".\nIf you request [1] with no access, you'll receive an empty map for that object type.\n","operationId":"batchCheckCapabilities","requestBody":{"description":"List of object type requests to check capabilities for","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BatchCheckCapabilitiesRequest"}},"examples":{"Batch capability check":{"description":"Batch capability check","value":[{"objectType":"INSTALLATION","identifiers":[1,2,3]},{"objectType":"RESELLER","identifiers":[10,20]},{"objectType":"CUSTOMER_ORGANISATION","identifiers":[5]}]}}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCheckCapabilitiesResponse"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/api/v1/installations/{installationId}/webhooks":{"get":{"tags":["Webhooks"],"summary":"Returns your currently active webhooks for this installation.","operationId":"all","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Webhooks","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDTO"}}}}},"401":{"description":"Authentication failure"},"404":{"description":"Not found"}},"security":[{"bearerToken":[]}]},"post":{"tags":["Webhooks"],"summary":"Creates a new webhook for this installation","operationId":"create_3","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookRequest"}}},"required":true},"responses":{"201":{"description":"Webhook created","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDTO"}}}}},"401":{"description":"Authentication failure"},"404":{"description":"Installation was not found"},"406":{"description":"Webhook parameters are not acceptable"}},"security":[{"bearerToken":[]}]}},"/api/v1/installations/{installationId}/webhooks/{id}/test":{"post":{"tags":["Webhooks"],"summary":"Sends a test payload to this webhook","operationId":"testWebhook","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Test payload sent"},"401":{"description":"Authentication failure"},"404":{"description":"Installation or webhook was not found"}},"security":[{"bearerToken":[]}]}},"/api/v1/auth/request_token":{"post":{"tags":["Authentication"],"summary":"Authenticate with Hertek Connect to request a new expiring API token","description":"Hertek Connect uses an expiring token to authenticate with API endpoints. You will need to periodically refresh this token to ensure you have a valid token. Tokens are linked to a Hertek Connect user account.","operationId":"request_token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationRequest"}}},"required":true},"responses":{"200":{"description":"Successfully authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationResponse"}}}},"401":{"description":"Authentication failure"}},"security":[{"login":[]}]}},"/administration/v1/users":{"post":{"tags":["User management"],"summary":"Creates a new user","description":"Creates a new user. Requires USER_CREATE capability at platform level.","operationId":"createUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"bearerToken":[]}]}},"/administration/v1/invitations":{"post":{"tags":["Invitation management"],"summary":"Creates a new invitation","operationId":"createInvitation_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdministrationInvitationRequest"}}},"required":true},"responses":{"202":{"description":"Accepted"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"},"409":{"description":"Conflict","content":{"application/json":{"schema":{"required":["error","reason"],"type":"object","properties":{"error":{"type":"string"},"reason":{"type":"string","enum":["EXISTING_ACCESS","ACTIVE_INVITATION"]}}}}}}},"security":[{"bearerToken":[]}]}},"/administration/v1/business-units/{businessUnitId}/resellers":{"get":{"tags":["Reseller management"],"summary":"Returns the resellers associated with the given business unit id","description":"Returns the resellers associated with the given business unit id, the result will be wrapped in a pageable object. The client may specify the page size, page number, sort and direction.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"getResellersForBusinessUnit","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ResellerResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"post":{"tags":["Reseller management"],"summary":"Creates a new reseller","description":"Creates a new reseller within the given business unit. Requires RESELLER_CREATE capability at platform level.","operationId":"createReseller","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResellerRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResellerResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/administration/v1/business-units/{businessUnitId}/reseller-chains":{"get":{"tags":["Reseller chain management"],"summary":"Returns the reseller chains associated with the given business unit id","description":"Returns the reseller chains associated with the given business unit id, the result will be wrapped in a pageable object. The client may specify the page size, page number, sort and direction.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"getResellerChainsForBusinessUnit","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ResellerChainResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"post":{"tags":["Reseller chain management"],"summary":"Creates a new reseller chain","description":"Creates a new reseller chain within the given business unit. Requires RESELLER_CHAIN_CREATE capability at platform level.","operationId":"createResellerChain","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResellerChainRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResellerChainResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/log-entries/{logEntryId}/log-entry-notes/{logEntryNoteId}":{"patch":{"tags":["Log entry management"],"summary":"Edits a log entry note","description":"Edits a log entry note associated with the given log entry note id<br />Returns the updated log entry note.","operationId":"editLogEntryNote","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"logEntryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"logEntryNoteId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEntryNoteRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEntryNoteResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/log-entries/{logEntryId}/log-entry-notes/{logEntryNoteId}":{"patch":{"tags":["Log entry management"],"summary":"Edits a log entry note","description":"Edits a log entry note associated with the given log entry note id<br />Returns the updated log entry note.","operationId":"editLogEntryNote_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"logEntryId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"logEntryNoteId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEntryNoteRequest"}}},"required":true},"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogEntryNoteResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/connect-evac/v2/installations/{installationId}/settings":{"get":{"tags":["Installation Settings"],"summary":"Returns the Connect Evac settings for the given installation","operationId":"getSettings","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvacSettingsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"patch":{"tags":["Installation Settings"],"summary":"Updates the Connect Evac settings for the given installation","operationId":"updateSettings","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEvacSettingsRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"},"422":{"description":"Unprocessable Content"}},"security":[{"Session authentication":[]}]}},"/silent-alarm/v1/events":{"get":{"tags":["Events"],"summary":"Event endpoint to fetch information about ongoing installation events, e.g. fire alarms.","operationId":"findEvents","parameters":[{"name":"filter","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Info about ongoing events in the installation. Can contain an empty list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventResponse"}}}},"401":{"description":"Unauthorized device"}}}},"/organisation/v1/service-organisations":{"get":{"tags":["Service Organisations"],"summary":"Returns the service organisations that a user has access to","description":"---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"index_4","parameters":[{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ServiceOrganisationResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/organisation/v1/service-organisations/{id}":{"get":{"tags":["Service Organisations"],"summary":"Returns the service organisation associated with the given id","operationId":"show_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceOrganisationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/organisation/v1/customer-organisations":{"get":{"tags":["Customer Organisations"],"summary":"Returns the customer organisations that a user has access to","operationId":"index_5","responses":{"200":{"description":"Customer Organisations","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomerOrganisationResponse"}}}}},"401":{"description":"Unauthorized"}},"security":[{"Session authentication":[]}]}},"/installation/v2/resellers/{resellerId}/predictive-maintenance":{"get":{"tags":["Predictive Maintenance"],"summary":"Get predictive maintenance data by reseller and period","description":"Returns installations with predictive maintenance data for the given reseller and period. Results are paginated and sorted by total count descending.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"getInstallationsForReseller","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"period","in":"query","required":true,"schema":{"type":"string","enum":["TWO_MONTHS","TWELVE_MONTHS"]}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/InstallationPredictiveMaintenanceCount"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/resellers/{resellerId}/installations":{"get":{"tags":["Installations"],"summary":"Returns the installations associated with the given reseller id","description":"Returns the installations associated with the given reseller id, the result will be wrapped in a pageable object. The client may specify the page size, page number, sort and direction. Filters can be applied for status categories, connection statuses, and search term.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `statusCategories`: Status categories to filter installations by their overall status\n- `connectionStatuses`: Connection statuses to filter installations by their connection status\n- `searchTerm`: Search term to filter installations (case insensitive, searches across customer name, location name, street, city, postal code, purchase number, and Connect ID)\n","operationId":"getForReseller","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"statusCategories","in":"query","description":"Status categories to filter installations by their overall status","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"connectionStatuses","in":"query","description":"Connection statuses to filter installations by their connection status","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["OK","OK_NO_DATA_CONNECTION","FAULT","NOT_OPERATIONAL"]}}},{"name":"searchTerm","in":"query","description":"Search term to filter installations (case insensitive, searches across customer name, location name, street, city, postal code, purchase number, and Connect ID)","required":false,"schema":{"type":"string"}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/InstallationResponseV2"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v2/resellers/{resellerId}/installations/available-filters":{"get":{"tags":["Installations"],"summary":"Get available filter options for installations","description":"Returns the available status categories and connection statuses for filtering installations within the given reseller","operationId":"getAvailableInstallationFiltersForReseller","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableInstallationFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/resellers/{resellerId}/alarm-receiving-centers":{"get":{"tags":["Alarm Receiving Centers"],"summary":"Returns the available alarm receiving centers","operationId":"getAllByReseller","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlarmReceivingCenterResponse"}}}}}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}":{"get":{"tags":["Installations"],"summary":"Returns the installation associated with the given id","operationId":"show_3","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationResponseV2"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones":{"get":{"tags":["Zone management"],"summary":"Returns the zones associated with the given installation id","description":"Returns the zones associated with the given installation id, the result will be wrapped in a pageable object.The client may specify the page size, page number, sort and direction.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `searchTerm`: Search term to filter zones by name, number, or element address. Supports element address formats: loop.address.subAddress (e.g., '1.19.0'), loop.address (e.g., '1.19'), or loop only (e.g., '1')\n","operationId":"getZonesForInstallation","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"searchTerm","in":"query","description":"Search term to filter zones by name, number, or element address. Supports element address formats: loop.address.subAddress (e.g., '1.19.0'), loop.address (e.g., '1.19'), or loop only (e.g., '1')","required":false,"schema":{"type":"string"},"example":"1.19.0"},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ZoneResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones/{zoneId}":{"get":{"tags":["Zone management"],"summary":"Returns the zone associated with the given installation id and zone id","description":"Returns the zone associated with the given installation id and zone id.","operationId":"getZoneForInstallationAndZone","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZoneResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones/{zoneId}/log-entries":{"get":{"tags":["Log entry management"],"summary":"Log-entries for given installation and zone","description":"Returns the log-entries associated with the given installation and zone id.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `from`: Date to filter log entries (only get log entries after this date)\n- `to`: Date to filter log entries (only get log entries before this date)\n- `entryTypes`: EntryTypes to filter log entries (show log entries of these types)\n- `statusCategories`: StatusCategories to filter log entries (show log entries with these statuses)\n- `userActions`: UserActions to filter log entries (show log entries with these user actions)\n- `elementDeviceTypes`: Element device types to filter log entries (show log entries with these device types)\n","operationId":"getLogEntriesForInstallationAndZone","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"from","in":"query","description":"Date to filter log entries (only get log entries after this date)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","description":"Date to filter log entries (only get log entries before this date)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"entryTypes","in":"query","description":"EntryTypes to filter log entries (show log entries of these types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["USER_ACTION","CONNECTION_STATUS","TOO_FEW_MOBILE_DEVICES_ONLINE","EVENT"]}}},{"name":"statusCategories","in":"query","description":"StatusCategories to filter log entries (show log entries with these statuses)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"userActions","in":"query","description":"UserActions to filter log entries (show log entries with these user actions)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["RESET","REQUEST_ALL_DEVICE_STATUSES","MUTE","SILENCE","RESOUND","ELEMENT_ENABLE","ELEMENT_DISABLE","ELEMENT_REQUEST_ANALOG_VALUE","SILENT_ALARM_DEVICE_PAIRED","SILENT_ALARM_DEVICE_DELETED","SILENT_ALARM_CONNECTION_FAULT_ACKNOWLEDGED","UPDATE_EVAC_MIN_DEVICES","MAINTENANCE_START","MAINTENANCE_END"]}}},{"name":"elementDeviceTypes","in":"query","description":"Element device types to filter log entries (show log entries with these device types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]}}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/LogEntryResponseV2"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones/{zoneId}/log-entries/available-filters":{"get":{"tags":["Log entry management"],"summary":"Get available filter options for log entries at zone level","description":"Returns available entry types, status categories, user actions, and element device types for filtering log entries within the zone","operationId":"getAvailableFiltersForZone","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableLogEntryFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones/{zoneId}/elements":{"get":{"tags":["Element management"],"summary":"Returns the elements associated with the given installation id and zone id","description":"Returns the elements associated with the given installation id and zone id, the result will be wrapped in a pageable object. The client may specify the page size, page number, sort and direction.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `searchTerm`: Search term to filter elements by name, address, or sub-address (case insensitive)\n- `statusCategories`: Status categories to filter elements (show elements with these statuses)\n- `elementDeviceTypes`: Element device types to filter elements (show elements with these device types)\n","operationId":"getElementsForInstallationAndZone","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"searchTerm","in":"query","description":"Search term to filter elements by name, address, or sub-address (case insensitive)","required":false,"schema":{"type":"string"}},{"name":"statusCategories","in":"query","description":"Status categories to filter elements (show elements with these statuses)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"elementDeviceTypes","in":"query","description":"Element device types to filter elements (show elements with these device types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]}}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ElementResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones/{zoneId}/elements/{elementId}":{"get":{"tags":["Element management"],"summary":"Returns the element for the given installation id, zone id and element id","operationId":"getElementForInstallationAndZone","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"elementId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones/{zoneId}/elements/{elementId}/predictive-maintenance":{"get":{"tags":["Predictive Maintenance"],"summary":"Get predictive maintenance data for a single element","description":"Returns the highest priority predictive maintenance record for the specified element and period. If the element has both HIGH and MEDIUM predictions, only HIGH is returned.","operationId":"getForElement","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"elementId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"period","in":"query","required":true,"schema":{"type":"string","enum":["TWO_MONTHS","TWELVE_MONTHS"]}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictiveMaintenanceResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones/{zoneId}/elements/{elementId}/log-entries":{"get":{"tags":["Log entry management"],"summary":"Log-entries for given installation, zone and element","description":"Returns the log-entries associated with the given installation, zone and element id.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `from`: Date to filter log entries (only get log entries after this date)\n- `to`: Date to filter log entries (only get log entries before this date)\n- `entryTypes`: EntryTypes to filter log entries (show log entries of these types)\n- `statusCategories`: StatusCategories to filter log entries (show log entries with these statuses)\n- `userActions`: UserActions to filter log entries (show log entries with these user actions)\n- `elementDeviceTypes`: Element device types to filter log entries (show log entries with these device types)\n","operationId":"getLogEntriesForInstallationAndZoneAndElement","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"elementId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"from","in":"query","description":"Date to filter log entries (only get log entries after this date)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","description":"Date to filter log entries (only get log entries before this date)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"entryTypes","in":"query","description":"EntryTypes to filter log entries (show log entries of these types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["USER_ACTION","CONNECTION_STATUS","TOO_FEW_MOBILE_DEVICES_ONLINE","EVENT"]}}},{"name":"statusCategories","in":"query","description":"StatusCategories to filter log entries (show log entries with these statuses)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"userActions","in":"query","description":"UserActions to filter log entries (show log entries with these user actions)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["RESET","REQUEST_ALL_DEVICE_STATUSES","MUTE","SILENCE","RESOUND","ELEMENT_ENABLE","ELEMENT_DISABLE","ELEMENT_REQUEST_ANALOG_VALUE","SILENT_ALARM_DEVICE_PAIRED","SILENT_ALARM_DEVICE_DELETED","SILENT_ALARM_CONNECTION_FAULT_ACKNOWLEDGED","UPDATE_EVAC_MIN_DEVICES","MAINTENANCE_START","MAINTENANCE_END"]}}},{"name":"elementDeviceTypes","in":"query","description":"Element device types to filter log entries (show log entries with these device types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]}}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/LogEntryResponseV2"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones/{zoneId}/elements/{elementId}/log-entries/available-filters":{"get":{"tags":["Log entry management"],"summary":"Get available filter options for log entries at element level","description":"Returns available entry types, status categories, user actions, and element device types for filtering log entries for the element","operationId":"getAvailableFiltersForElement","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"elementId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableLogEntryFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones/{zoneId}/elements/available-filters":{"get":{"tags":["Element management"],"summary":"Returns available filter values for elements in a zone","description":"Returns the distinct status categories and device types that are present in the zone's elements","operationId":"getAvailableFiltersForZone_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableElementFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/zones/available-filters":{"get":{"tags":["Zone management"],"summary":"Returns available filter options for zones","description":"Returns the distinct status categories and element device types available for filtering zones in the given installation.","operationId":"getAvailableZoneFilters","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableZoneFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/predictive-maintenance":{"get":{"tags":["Predictive Maintenance"],"summary":"Get predictive maintenance data for all elements in an installation","description":"Returns predictive maintenance records for all elements in the installation for the specified period. Results are paginated. For elements with multiple predictions, only the highest priority record is returned (HIGH takes precedence over MEDIUM).\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"getAllForInstallation","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"period","in":"query","required":true,"schema":{"type":"string","enum":["TWO_MONTHS","TWELVE_MONTHS"]}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/PredictiveMaintenanceResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/maintenance-mode/status":{"get":{"tags":["Maintenance mode management"],"summary":"Get maintenance mode status for an installation","description":"Returns the current maintenance mode status and active session if any.\n\nAuthorization is capability-based: requires INSTALLATION_MAINTENANCE_MODE_READ capability.\n","operationId":"getMaintenanceModeStatus","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceModeStatusResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/log-entries":{"get":{"tags":["Log entry management"],"summary":"Log-entries for installation","description":"Returns the log-entries associated with the given installation id.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `from`: Date to filter log entries (only get log entries after this date)\n- `to`: Date to filter log entries (only get log entries before this date)\n- `entryTypes`: EntryTypes to filter log entries (show log entries of these types)\n- `statusCategories`: StatusCategories to filter log entries (show log entries with these statuses)\n- `userActions`: UserActions to filter log entries (show log entries with these user actions)\n- `elementDeviceTypes`: Element device types to filter log entries (show log entries with these device types)\n","operationId":"getLogEntriesForInstallation","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"from","in":"query","description":"Date to filter log entries (only get log entries after this date)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","description":"Date to filter log entries (only get log entries before this date)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"entryTypes","in":"query","description":"EntryTypes to filter log entries (show log entries of these types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["USER_ACTION","CONNECTION_STATUS","TOO_FEW_MOBILE_DEVICES_ONLINE","EVENT"]}}},{"name":"statusCategories","in":"query","description":"StatusCategories to filter log entries (show log entries with these statuses)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"userActions","in":"query","description":"UserActions to filter log entries (show log entries with these user actions)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["RESET","REQUEST_ALL_DEVICE_STATUSES","MUTE","SILENCE","RESOUND","ELEMENT_ENABLE","ELEMENT_DISABLE","ELEMENT_REQUEST_ANALOG_VALUE","SILENT_ALARM_DEVICE_PAIRED","SILENT_ALARM_DEVICE_DELETED","SILENT_ALARM_CONNECTION_FAULT_ACKNOWLEDGED","UPDATE_EVAC_MIN_DEVICES","MAINTENANCE_START","MAINTENANCE_END"]}}},{"name":"elementDeviceTypes","in":"query","description":"Element device types to filter log entries (show log entries with these device types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]}}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/LogEntryResponseV2"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/log-entries/available-filters":{"get":{"tags":["Log entry management"],"summary":"Get available filter options for log entries at installation level","description":"Returns available entry types, status categories, user actions, and element device types for filtering log entries within the installation","operationId":"getAvailableFiltersForInstallation","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableLogEntryFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/installations/{installationId}/alarm-receiving-centers":{"get":{"tags":["Alarm Receiving Centers"],"summary":"Returns the available alarm receiving centers","operationId":"getAllByInstallation","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlarmReceivingCenterResponse"}}}}}},"security":[{"Session authentication":[]}]}},"/installation/v2/installation-mutations/{id}":{"get":{"tags":["Installation Mutations"],"summary":"Returns the installation mutation associated with the given id","operationId":"show_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationMutationResponseV2"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/installation/v2/installation-mutations/{id}/products":{"get":{"tags":["Installation Mutations"],"summary":"Returns the products that have been selected when configuring the installation mutation","operationId":"showProducts_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}}}}}}}},"/installation/v2/installation-mutations/{id}/configuration":{"get":{"tags":["Installation Mutations"],"summary":"Returns the technical configuration for an installation mutation","operationId":"showConfiguration_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnicalConfigurationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/installation/v2/customer-organisations/{customerOrganisationId}/installations":{"get":{"tags":["Installations"],"summary":"Returns the installations associated with the given customer organisation id","description":"Returns all installations belonging to the customer organisation. The result will be wrapped in a pageable object. The client may specify the page size, page number, sort and direction. Filters can be applied for status categories, connection statuses, and search term.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `statusCategories`: Status categories to filter installations by their overall status\n- `connectionStatuses`: Connection statuses to filter installations by their connection status\n- `searchTerm`: Search term to filter installations (case insensitive, searches across reseller name, customer name, location name, street, city, postal code, purchase number, and Connect ID)\n","operationId":"getForCustomerOrganisation","parameters":[{"name":"customerOrganisationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"statusCategories","in":"query","description":"Status categories to filter installations by their overall status","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"connectionStatuses","in":"query","description":"Connection statuses to filter installations by their connection status","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["OK","OK_NO_DATA_CONNECTION","FAULT","NOT_OPERATIONAL"]}}},{"name":"searchTerm","in":"query","description":"Search term to filter installations (case insensitive, searches across reseller name, customer name, location name, street, city, postal code, purchase number, and Connect ID)","required":false,"schema":{"type":"string"}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/InstallationResponseV2"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v2/customer-organisations/{customerOrganisationId}/installations/available-filters":{"get":{"tags":["Installations"],"summary":"Get available filter options for installations in customer organisation","description":"Returns the available status categories and connection statuses for filtering installations within the given customer organisation","operationId":"getAvailableFiltersForCustomerOrganisation","parameters":[{"name":"customerOrganisationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableInstallationFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/check-hardware-serial-number-in-use":{"get":{"tags":["Installations"],"summary":"Check if a hardware serial number is in use","description":"Returns true if the serial number is already associated with another installation. Optional installationId can be passed to exclude it from the check.","operationId":"checkHardwareSerialNumberIsInUse","parameters":[{"name":"hardwareSerialNumber","in":"query","description":"Hardware serial number to check","required":true,"schema":{"type":"string"}},{"name":"installationId","in":"query","description":"Optional installation ID to exclude from the check","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"boolean"}}}}},"security":[{"Session authentication":[]}]}},"/installation/v2/business-units/{businessUnitId}/installations":{"get":{"tags":["Installations"],"summary":"Returns the installations associated with the given business unit id","description":"Returns all installations across all resellers in the business unit. The result will be wrapped in a pageable object. The client may specify the page size, page number, sort and direction. Filters can be applied for status categories, connection statuses, and search term.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `statusCategories`: Status categories to filter installations by their overall status\n- `connectionStatuses`: Connection statuses to filter installations by their connection status\n- `searchTerm`: Search term to filter installations (case insensitive, searches across reseller name, customer name, location name, street, city, postal code, purchase number, and Connect ID)\n","operationId":"getForBusinessUnit","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"statusCategories","in":"query","description":"Status categories to filter installations by their overall status","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"connectionStatuses","in":"query","description":"Connection statuses to filter installations by their connection status","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["OK","OK_NO_DATA_CONNECTION","FAULT","NOT_OPERATIONAL"]}}},{"name":"searchTerm","in":"query","description":"Search term to filter installations (case insensitive, searches across reseller name, customer name, location name, street, city, postal code, purchase number, and Connect ID)","required":false,"schema":{"type":"string"}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/InstallationResponseV2"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v2/business-units/{businessUnitId}/installations/available-filters":{"get":{"tags":["Installations"],"summary":"Get available filter options for installations in business unit","description":"Returns the available status categories and connection statuses for filtering installations within the given business unit","operationId":"getAvailableFiltersForBusinessUnit","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableInstallationFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/business-units/{businessUnitId}/installation-requests":{"get":{"tags":["Installation Requests"],"summary":"Returns installation requests for a business unit","operationId":"getInstallationRequestsForBusinessUnit","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InstallationRequestResponseV2"}}}}}},"security":[{"Session authentication":[]}]}},"/installation/v2/business-units/{businessUnitId}/installation-mutations":{"get":{"tags":["Installation Mutations"],"summary":"Returns installation mutations for a business unit","operationId":"getInstallationMutationsForBusinessUnit","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InstallationMutationResponseV2"}}}}}}}},"/installation/v1/service-organisations/{serviceOrganisationId}/installations":{"get":{"tags":["Installations"],"summary":"Returns the installations associated with the given service organisation id","description":"Returns the installations associated with the given service organisation id, the result will be wrapped in a pageable object. The client may specify the page size, page number, sort and direction. Filters can be applied for status categories, connection statuses, and search term.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `statusCategories`: Status categories to filter installations by their overall status\n- `connectionStatuses`: Connection statuses to filter installations by their connection status\n- `searchTerm`: Search term to filter installations (case insensitive, searches across customer name, location name, street, city, postal code, purchase number, and Connect ID)\n","operationId":"getForServiceOrganisation","parameters":[{"name":"serviceOrganisationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"statusCategories","in":"query","description":"Status categories to filter installations by their overall status","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"connectionStatuses","in":"query","description":"Connection statuses to filter installations by their connection status","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["OK","OK_NO_DATA_CONNECTION","FAULT","NOT_OPERATIONAL"]}}},{"name":"searchTerm","in":"query","description":"Search term to filter installations (case insensitive, searches across customer name, location name, street, city, postal code, purchase number, and Connect ID)","required":false,"schema":{"type":"string"}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/InstallationResponseV1"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v1/service-organisations/{serviceOrganisationId}/installations/available-filters":{"get":{"tags":["Installations"],"summary":"Get available filter options for installations","description":"Returns the available status categories and connection statuses for filtering installations within the given service organisation","operationId":"getAvailableFilters","parameters":[{"name":"serviceOrganisationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableInstallationFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}":{"get":{"tags":["Installations"],"summary":"Returns the installation associated with the given id","operationId":"show_5","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationResponseV1"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/zones":{"get":{"tags":["Zone management"],"summary":"Returns the zones associated with the given installation id","description":"Returns the zones associated with the given installation id, the result will be wrapped in a pageable object.The client may specify the page size, page number, sort and direction.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `searchTerm`: Search term to filter zones by name, number, or element address. Supports element address formats: loop.address.subAddress (e.g., '1.19.0'), loop.address (e.g., '1.19'), or loop only (e.g., '1')\n- `statusCategories`: Status categories to filter zones by their overall status\n- `elementDeviceTypes`: Element device types to filter zones (show zones with elements having these device types)\n","operationId":"getZonesForInstallation_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"searchTerm","in":"query","description":"Search term to filter zones by name, number, or element address. Supports element address formats: loop.address.subAddress (e.g., '1.19.0'), loop.address (e.g., '1.19'), or loop only (e.g., '1')","required":false,"schema":{"type":"string"},"example":"1.19.0"},{"name":"statusCategories","in":"query","description":"Status categories to filter zones by their overall status","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"elementDeviceTypes","in":"query","description":"Element device types to filter zones (show zones with elements having these device types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]}}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ZoneResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/zones/{zoneId}":{"get":{"tags":["Zone management"],"summary":"Returns the zone associated with the given installation id and zone id","description":"Returns the zone associated with the given installation id and zone id.","operationId":"getZoneForInstallationAndZone_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZoneResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/zones/{zoneId}/log-entries":{"get":{"tags":["Log entry management"],"summary":"Log-entries for given installation and zone","description":"Returns the log-entries associated with the given installation and zone id.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `from`: Date to filter log entries (only get log entries after this date)\n- `to`: Date to filter log entries (only get log entries before this date)\n- `entryTypes`: EntryTypes to filter log entries (show log entries of these types)\n- `statusCategories`: StatusCategories to filter log entries (show log entries with these statuses)\n- `userActions`: UserActions to filter log entries (show log entries with these user actions)\n- `elementDeviceTypes`: Element device types to filter log entries (show log entries with these device types)\n","operationId":"getLogEntriesForInstallationAndZone_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"from","in":"query","description":"Date to filter log entries (only get log entries after this date)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","description":"Date to filter log entries (only get log entries before this date)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"entryTypes","in":"query","description":"EntryTypes to filter log entries (show log entries of these types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["USER_ACTION","CONNECTION_STATUS","TOO_FEW_MOBILE_DEVICES_ONLINE","EVENT"]}}},{"name":"statusCategories","in":"query","description":"StatusCategories to filter log entries (show log entries with these statuses)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"userActions","in":"query","description":"UserActions to filter log entries (show log entries with these user actions)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["RESET","REQUEST_ALL_DEVICE_STATUSES","MUTE","SILENCE","RESOUND","ELEMENT_ENABLE","ELEMENT_DISABLE","ELEMENT_REQUEST_ANALOG_VALUE","SILENT_ALARM_DEVICE_PAIRED","SILENT_ALARM_DEVICE_DELETED","SILENT_ALARM_CONNECTION_FAULT_ACKNOWLEDGED","UPDATE_EVAC_MIN_DEVICES","MAINTENANCE_START","MAINTENANCE_END"]}}},{"name":"elementDeviceTypes","in":"query","description":"Element device types to filter log entries (show log entries with these device types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]}}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/LogEntryResponseV1"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/zones/{zoneId}/log-entries/available-filters":{"get":{"tags":["Log entry management"],"summary":"Get available filter options for log entries at zone level","description":"Returns available entry types, status categories, user actions, and element device types for filtering log entries within the zone","operationId":"getAvailableFiltersForZone_2","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableLogEntryFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/zones/{zoneId}/elements":{"get":{"tags":["Element management"],"summary":"Returns the elements associated with the given installation id and zone id","description":"Returns the elements associated with the given installation id and zone id, the result will be wrapped in a pageable object. The client may specify the page size, page number, sort and direction.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `searchTerm`: Search term to filter elements by name, address, or sub-address (case insensitive)\n- `statusCategories`: Status categories to filter elements (show elements with these statuses)\n- `elementDeviceTypes`: Element device types to filter elements (show elements with these device types)\n","operationId":"getElementsForInstallationAndZone_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"searchTerm","in":"query","description":"Search term to filter elements by name, address, or sub-address (case insensitive)","required":false,"schema":{"type":"string"}},{"name":"statusCategories","in":"query","description":"Status categories to filter elements (show elements with these statuses)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"elementDeviceTypes","in":"query","description":"Element device types to filter elements (show elements with these device types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]}}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ElementResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/zones/{zoneId}/elements/{elementId}":{"get":{"tags":["Element management"],"summary":"Returns the element for the given installation id, zone id and element id","operationId":"getElementForInstallationAndZone_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"elementId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/zones/{zoneId}/elements/{elementId}/log-entries":{"get":{"tags":["Log entry management"],"summary":"Log-entries for given installation, zone and element","description":"Returns the log-entries associated with the given installation, zone and element id.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `from`: Date to filter log entries (only get log entries after this date)\n- `to`: Date to filter log entries (only get log entries before this date)\n- `entryTypes`: EntryTypes to filter log entries (show log entries of these types)\n- `statusCategories`: StatusCategories to filter log entries (show log entries with these statuses)\n- `userActions`: UserActions to filter log entries (show log entries with these user actions)\n- `elementDeviceTypes`: Element device types to filter log entries (show log entries with these device types)\n","operationId":"getLogEntriesForInstallationAndZoneAndElement_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"elementId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"from","in":"query","description":"Date to filter log entries (only get log entries after this date)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","description":"Date to filter log entries (only get log entries before this date)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"entryTypes","in":"query","description":"EntryTypes to filter log entries (show log entries of these types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["USER_ACTION","CONNECTION_STATUS","TOO_FEW_MOBILE_DEVICES_ONLINE","EVENT"]}}},{"name":"statusCategories","in":"query","description":"StatusCategories to filter log entries (show log entries with these statuses)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"userActions","in":"query","description":"UserActions to filter log entries (show log entries with these user actions)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["RESET","REQUEST_ALL_DEVICE_STATUSES","MUTE","SILENCE","RESOUND","ELEMENT_ENABLE","ELEMENT_DISABLE","ELEMENT_REQUEST_ANALOG_VALUE","SILENT_ALARM_DEVICE_PAIRED","SILENT_ALARM_DEVICE_DELETED","SILENT_ALARM_CONNECTION_FAULT_ACKNOWLEDGED","UPDATE_EVAC_MIN_DEVICES","MAINTENANCE_START","MAINTENANCE_END"]}}},{"name":"elementDeviceTypes","in":"query","description":"Element device types to filter log entries (show log entries with these device types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]}}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/LogEntryResponseV1"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/zones/{zoneId}/elements/{elementId}/log-entries/available-filters":{"get":{"tags":["Log entry management"],"summary":"Get available filter options for log entries at element level","description":"Returns available entry types, status categories, user actions, and element device types for filtering log entries for the element","operationId":"getAvailableFiltersForElement_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"elementId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableLogEntryFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/zones/{zoneId}/elements/available-filters":{"get":{"tags":["Element management"],"summary":"Returns available filter values for elements in a zone","description":"Returns the distinct status categories and device types that are present in the zone's elements","operationId":"getAvailableFiltersForZone_3","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableElementFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/zones/available-filters":{"get":{"tags":["Zone management"],"summary":"Returns available filter options for zones","description":"Returns the distinct status categories and element device types available for filtering zones in the given installation.","operationId":"getAvailableFilters_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableZoneFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/maintenance-mode/status":{"get":{"tags":["Maintenance mode management"],"summary":"Get maintenance mode status for an installation","description":"Returns the current maintenance mode status and active session if any","operationId":"getMaintenanceModeStatus_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceModeStatusResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/log-entries":{"get":{"tags":["Log entry management"],"summary":"Log-entries for installation","description":"Returns the log-entries associated with the given installation id.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n\n\n---\n\n**🔎 Filter Parameters**\n\nUse the following query parameters to filter results:\n- `from`: Date to filter log entries (only get log entries after this date)\n- `to`: Date to filter log entries (only get log entries before this date)\n- `entryTypes`: EntryTypes to filter log entries (show log entries of these types)\n- `statusCategories`: StatusCategories to filter log entries (show log entries with these statuses)\n- `userActions`: UserActions to filter log entries (show log entries with these user actions)\n- `elementDeviceTypes`: Element device types to filter log entries (show log entries with these device types)\n","operationId":"getLogEntriesForInstallation_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"from","in":"query","description":"Date to filter log entries (only get log entries after this date)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","description":"Date to filter log entries (only get log entries before this date)","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"entryTypes","in":"query","description":"EntryTypes to filter log entries (show log entries of these types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["USER_ACTION","CONNECTION_STATUS","TOO_FEW_MOBILE_DEVICES_ONLINE","EVENT"]}}},{"name":"statusCategories","in":"query","description":"StatusCategories to filter log entries (show log entries with these statuses)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}}},{"name":"userActions","in":"query","description":"UserActions to filter log entries (show log entries with these user actions)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["RESET","REQUEST_ALL_DEVICE_STATUSES","MUTE","SILENCE","RESOUND","ELEMENT_ENABLE","ELEMENT_DISABLE","ELEMENT_REQUEST_ANALOG_VALUE","SILENT_ALARM_DEVICE_PAIRED","SILENT_ALARM_DEVICE_DELETED","SILENT_ALARM_CONNECTION_FAULT_ACKNOWLEDGED","UPDATE_EVAC_MIN_DEVICES","MAINTENANCE_START","MAINTENANCE_END"]}}},{"name":"elementDeviceTypes","in":"query","description":"Element device types to filter log entries (show log entries with these device types)","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]}}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/LogEntryResponseV1"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"400":{"description":"Bad Request"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installations/{installationId}/log-entries/available-filters":{"get":{"tags":["Log entry management"],"summary":"Get available filter options for log entries at installation level","description":"Returns available entry types, status categories, user actions, and element device types for filtering log entries within the installation","operationId":"getAvailableFiltersForInstallation_1","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableLogEntryFiltersResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installation-mutations":{"get":{"tags":["Installation Mutations"],"summary":"Returns the installation mutations that the user has access to","operationId":"index_6","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InstallationMutationResponseV1"}}}}}},"security":[{"Session authentication":[]}]}},"/installation/v1/installation-mutations/{id}":{"get":{"tags":["Installation Mutations"],"summary":"Returns the installation mutation associated with the given id","operationId":"show_6","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallationMutationResponseV1"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installation-mutations/{id}/products":{"get":{"tags":["Installation Mutations"],"summary":"Returns the products that have been selected when configuring the installation mutation","operationId":"showProducts_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}}}}}},"security":[{"Session authentication":[]}]}},"/installation/v1/installation-mutations/{id}/configuration":{"get":{"tags":["Installation Mutations"],"summary":"Returns the technical configuration for an installation mutation","operationId":"showConfiguration_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TechnicalConfigurationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v1/check-hardware-serial-number-in-use":{"get":{"tags":["Installations"],"summary":"Check if a hardware serial number is in use","description":"Returns true if the serial number is already associated with another installation. Optional installationId can be passed to exclude it from the check.","operationId":"checkHardwareSerialNumberIsInUse_1","parameters":[{"name":"hardwareSerialNumber","in":"query","description":"Hardware serial number to check","required":true,"schema":{"type":"string"}},{"name":"installationId","in":"query","description":"Optional installation ID to exclude from the check","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"boolean"}}}}},"security":[{"Session authentication":[]}]}},"/installation/v1/alarm-receiving-centers":{"get":{"tags":["Alarm Receiving Centers"],"summary":"Returns the available alarm receiving centers","operationId":"index_7","responses":{"200":{"description":"Alarm Receiving Centers","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlarmReceivingCenterResponse"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"security":[{"Session authentication":[]}]}},"/firebase-registration-tokens/exists":{"get":{"tags":["Push Notifications"],"summary":"Check if a Firebase registration token exists for the authenticated user","description":"Returns whether the specified Firebase registration token is currently registered for the authenticated user. Used by the frontend to determine if the subscribe button should be enabled or disabled.","operationId":"checkTokenExists","parameters":[{"name":"registrationToken","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenExistsResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/documents/v1/{filename}":{"get":{"tags":["Document View"],"summary":"Download document content","description":"Securely downloads document content. Each request requires authentication and authorization. Only PDF documents are currently supported.","operationId":"downloadDocument","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Ok","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Unauthorized","content":{"application/pdf":{"schema":{"type":"string","format":"byte"}}}},"403":{"description":"Forbidden","content":{"application/pdf":{"schema":{"type":"string","format":"byte"}}}},"404":{"description":"Not Found","content":{"application/pdf":{"schema":{"type":"string","format":"byte"}}}}},"security":[{"Session authentication":[]}]}},"/documents/v1/conversations":{"get":{"tags":["Document Chat"],"summary":"List user conversations","description":"Returns all conversations for the current user, ordered by most recently updated","operationId":"getConversations","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConversationResponse"}}}}}},"security":[{"Session authentication":[]}]}},"/documents/v1/conversations/{conversationId}":{"get":{"tags":["Document Chat"],"summary":"Get conversation details","description":"Returns details of a specific conversation","operationId":"getConversation","parameters":[{"name":"conversationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]},"delete":{"tags":["Document Chat"],"summary":"Archive a conversation","description":"Archives a conversation. Archived conversations are hidden from the default list but not deleted.","operationId":"archiveConversation","parameters":[{"name":"conversationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"204":{"description":"Conversation archived successfully"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/documents/v1/conversations/{conversationId}/messages":{"get":{"tags":["Document Chat"],"summary":"Get conversation messages","description":"Returns paginated messages for a specific conversation, ordered by creation time\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"getConversationMessages","parameters":[{"name":"conversationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/MessageResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/connect-evac/v2/installations/{installationId}/notification-performance":{"get":{"tags":["Notification Performance"],"summary":"Returns notification performance data for the given installation","description":"---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"getNotificationPerformance","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPerformanceResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/connect-evac/v1/installations/{id}/mobile-devices":{"get":{"tags":["Mobile Devices"],"summary":"Returns the mobile devices that have been paired to the given installation","operationId":"show_7","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Mobile Devices","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MobileDeviceResponse"}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/authorization/v1/object-types/{objectType}/objects/{objectId}/identities":{"get":{"tags":["Identity list"],"description":"---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"getIdentitiesAtScope","parameters":[{"name":"objectType","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ObjectType"}},{"name":"objectId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/IdentityWithRolesResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/authorization/v1/business-units/{businessUnitId}/object-types/{objectType}/has-accessible-descendants":{"get":{"tags":["Authorization"],"summary":"Check if user has accessible descendants under business unit","operationId":"hasAccessibleDescendants","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"objectType","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ObjectType"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HasAccessibleDescendantsResponse"}}}},"401":{"description":"Unauthorized"}},"security":[{"Session authentication":[]}]}},"/api/v1/ping":{"get":{"tags":["test","Test"],"summary":"Ping Hertek Connect to validate the correct operation of your token and client.","operationId":"ping_1","responses":{"200":{"description":"Successful ping","content":{"text/plain":{"schema":{"type":"string"}}}},"401":{"description":"Authentication failure"}},"security":[{"bearerToken":[]}]}},"/api/v1/installations":{"get":{"tags":["Installations"],"summary":"Returns the installations connected to a user","operationId":"all_1","responses":{"200":{"description":"Installations","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InstallationDTO"}}}}},"401":{"description":"Authentication failure"}},"security":[{"bearerToken":[]}]}},"/api/v1/installations/{installationId}/zones":{"get":{"tags":["Zones"],"summary":"Returns the zones of an installation","operationId":"all_2","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Zones","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ZoneDTO"}}}}},"401":{"description":"Authentication failure"},"404":{"description":"Not found"}},"security":[{"bearerToken":[]}]}},"/api/v1/installations/{installationId}/zones/{zoneId}/elements":{"get":{"tags":["Elements"],"summary":"Returns the elements of a zone","operationId":"all_3","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"zoneId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Elements","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ElementDTO"}}}}},"401":{"description":"Authentication failure"},"404":{"description":"Not found"}},"security":[{"bearerToken":[]}]}},"/api/v1/installations/{installationId}/webhooks/{id}":{"get":{"tags":["Webhooks"],"summary":"Returns the selected webhook and a list of recent events for that webhook","operationId":"one","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook and events","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDTO"}}}}},"401":{"description":"Authentication failure"},"404":{"description":"Not found"}},"security":[{"bearerToken":[]}]},"delete":{"tags":["Webhooks"],"summary":"Deletes a specifc webhook for this installation","operationId":"destroy","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Webhook deleted"},"401":{"description":"Authentication failure"},"404":{"description":"Installation or webhook was not found"}},"security":[{"bearerToken":[]}]}},"/api/v1/installations/{installationId}/alerts":{"get":{"tags":["Elements"],"summary":"Returns the elements that have state that is not normal.","operationId":"alerts","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Elements","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ElementDTO"}}}}},"401":{"description":"Authentication failure"},"404":{"description":"Not found"}},"security":[{"bearerToken":[]}]}},"/administration/v1/reseller-chains/{resellerChainId}/resellers":{"get":{"tags":["Reseller management"],"summary":"Returns the resellers associated with the given reseller chain id","description":"Returns the resellers associated with the given reseller chain id, the result will be wrapped in a pageable object. The client may specify the page size, page number, sort and direction.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"getResellersForResellerChain","parameters":[{"name":"resellerChainId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ResellerResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/administration/v1/reseller-chains/{id}":{"get":{"tags":["Reseller chain management"],"summary":"Returns a reseller chain by id","description":"Returns a reseller chain by id. Requires RESELLER_CHAIN_READ capability.","operationId":"getResellerChainById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResellerChainResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/administration/v1/business-units/{businessUnitId}":{"get":{"tags":["Business unit management"],"summary":"Returns the business unit with the given id","description":"Returns the business unit associated with the given id.","operationId":"getBusinessUnit","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"minimum":0,"exclusiveMinimum":true,"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessUnitResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/administration/v1/business-units/{businessUnitId}/resellers/{resellerId}":{"get":{"tags":["Reseller management"],"summary":"Returns the reseller associated with the given id and business unit id","description":"Returns the reseller associated with the given id and business unit id.","operationId":"getResellerForBusinessUnitAndReseller","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResellerResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/administration/v1/business-units/{businessUnitId}/customer-organisations":{"get":{"tags":["Customer organisation management"],"summary":"Returns the customer organisations associated with the given business unit id","description":"Returns the customer organisations associated with the given business unit id, the result will be wrapped in a pageable object. The client may specify the page size, page number, sort and direction.\n\n---\n\n\n**📄 Paginated Response**\n\nThis endpoint returns results in pages to handle large datasets efficiently. The response includes:\n- `content`: Array of actual data items\n- `totalElements`: Total number of items across all pages\n- `totalPages`: Total number of pages available\n- `size`: Number of items per page (configurable via `pageSize` parameter)\n- `number`: Current page number (0-based, configurable via `pageNumber` parameter)\n- `first`/`last`: Boolean flags indicating if this is the first/last page\n- `sort`: Sorting information applied to the results\n\n**Navigation**: Use `pageNumber` and `pageSize` query parameters to navigate through results.\nStart with `pageNumber=0` and increment to retrieve subsequent pages.\n\n**Sorting**: Use the `sort` and `direction` parameter to order results by specific fields:\n- `sort=fieldName&direction=ASC` or `sort=fieldName&direction=DESC`\n- Default sort is by id if not specified: `sort=id`\n- Default direction is ascending if not specified: `direction=ASC`\n\nExample:\n- `?pageNumber=0&pageSize=20&sort=createdAt&direction=DESC` - First page, 20 items, sorted by creation date (newest first)\n","operationId":"getCustomerOrganisationsForBusinessUnit","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"pageNumber","in":"query","description":"Page number","schema":{"type":"integer","example":"0"}},{"name":"pageSize","in":"query","description":"Page size","schema":{"type":"integer","example":"25"}},{"name":"sort","in":"query","description":"Sort field","schema":{"type":"string","example":"id"}},{"name":"direction","in":"query","description":"Sort direction (ASC or DESC)","schema":{"type":"string","example":"ASC"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/CustomerOrganisationResponse"}},"pageable":{"type":"object","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}}}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer"},"last":{"type":"boolean"},"size":{"type":"integer"},"number":{"type":"integer"},"sort":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"first":{"type":"boolean"},"numberOfElements":{"type":"integer"},"empty":{"type":"boolean"}}}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/administration/v1/business-units/{businessUnitId}/customer-organisations/{customerOrganisationId}":{"get":{"tags":["Customer organisation management"],"summary":"Returns the customer organisation associated with the given id and business unit id","description":"Returns the customer organisation associated with the given id and business unit id.","operationId":"getCustomerOrganisationForBusinessUnit","parameters":[{"name":"businessUnitId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"customerOrganisationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerOrganisationResponse"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}},"/installation/v2/resellers/{resellerId}/installation-requests/{id}/delete":{"delete":{"tags":["Installation Requests"],"summary":"Deletes an installation request","operationId":"deleteInstallationRequest","parameters":[{"name":"resellerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"}},"security":[{"Session authentication":[]}]}},"/installation/v1/installation-requests/{id}/delete":{"delete":{"tags":["Installation Requests"],"summary":"Deletes an installation request","operationId":"deleteInstallationRequest_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"422":{"description":"Unprocessable Entity"}},"security":[{"Session authentication":[]}]}},"/connect-evac/v2/installations/{installationId}/mobile-devices/{deviceId}":{"delete":{"tags":["Mobile Devices"],"summary":"Delete a mobile device from an installation","operationId":"deleteDevice","parameters":[{"name":"installationId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"deviceId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"force","in":"query","description":"If true, bypass the minimum online device threshold check","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"409":{"description":"Minimum device threshold not met","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MinimumDeviceThresholdErrorResponse"}}}},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"security":[{"Session authentication":[]}]}}},"components":{"schemas":{"UpdateFirebaseTokenRequest":{"required":["firebaseToken"],"type":"object","properties":{"firebaseToken":{"minLength":1,"type":"string"}}},"UpdateDeviceActiveStatusRequest":{"required":["active"],"type":"object","properties":{"active":{"type":"boolean"}}},"InstallationRequestRequestV2":{"required":["city","country","houseNumber","installationName","resellerId","street","usageFunction","zipCode"],"type":"object","properties":{"resellerId":{"type":"integer","format":"int32"},"installationName":{"maxLength":60,"minLength":0,"type":"string"},"street":{"maxLength":60,"minLength":0,"type":"string"},"houseNumber":{"maxLength":60,"minLength":0,"type":"string"},"zipCode":{"maxLength":7,"minLength":0,"type":"string"},"city":{"maxLength":60,"minLength":0,"type":"string"},"country":{"type":"string","enum":["NETHERLANDS","GERMANY"]},"purchaseNumber":{"maxLength":60,"minLength":0,"type":"string"},"externalReference":{"maxLength":60,"minLength":0,"type":"string"},"usageFunction":{"type":"string","enum":["INDUSTRIAL","OFFICE","SPORTS","SHOPPING","RESIDENTIAL","MEETING","CELLS","HEALTH","HOSPITALITY","EDUCATION","OTHER"]}}},"InstallationRequestResponseV2":{"required":["city","country","houseNumber","id","installationName","resellerId","status","street","updatedAt","usageFunction","zipCode"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"resellerId":{"type":"integer","format":"int32"},"lastUpdatedByUserId":{"type":"integer","format":"int32"},"webWayOneId":{"type":"string"},"status":{"type":"string","enum":["CONCEPT","PENDING","FINAL"]},"installationName":{"type":"string"},"street":{"type":"string"},"houseNumber":{"type":"string"},"zipCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string","enum":["NETHERLANDS","GERMANY"]},"purchaseNumber":{"type":"string"},"externalReference":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"finishedAt":{"type":"string","format":"date-time"},"usageFunction":{"type":"string","enum":["INDUSTRIAL","OFFICE","SPORTS","SHOPPING","RESIDENTIAL","MEETING","CELLS","HEALTH","HOSPITALITY","EDUCATION","OTHER"]}}},"InstallationRequestFinalizationRequest":{"type":"object","properties":{"webWayOneId":{"pattern":"^\\d{8}$","type":"string"}}},"TechnicalConfigurationRequest":{"required":["hardwareSerialNumber","mobileConnection"],"type":"object","properties":{"alarmReceivingCenterId":{"type":"integer","format":"int32"},"alarmTransmissionSystemCategory":{"type":"string","enum":["SP2","SP3","DP1","DP2","DP3","DP4"]},"alarmReceivingCenterRegistrationNumber":{"maxLength":60,"minLength":0,"pattern":"^\\d*$","type":"string"},"hardwareSerialNumber":{"minLength":1,"pattern":"^\\d{2}-\\d{6}-\\d$","type":"string"},"connectEvacLicenses":{"maximum":100,"minimum":1,"type":"integer","format":"int32"},"mobileConnection":{"type":"string","enum":["MOBILE_ONBOARD","MOBILE_EXTERNAL_EXPANSION_SET"]},"dualConnection":{"type":"string","enum":["LAN","MOBILE"]},"ipAddressType":{"type":"string","enum":["DHCP","FIXED"]},"ipAddress":{"type":"string"},"gateway":{"type":"string"},"subnetMask":{"pattern":"^(255\\.){3}255$|^(?:255\\.){0,3}(?:254|252|248|240|224|192|128|0)(?:\\.0){0,3}$","type":"string"},"geofenceRadius":{"maximum":2000,"minimum":200,"type":"integer","format":"int32"},"latitude":{"maximum":90,"minimum":-90,"type":"number","format":"double"},"longitude":{"maximum":180,"minimum":-180,"type":"number","format":"double"}}},"TechnicalConfigurationResponse":{"required":["geofenceRadius","id"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"alarmReceivingCenterId":{"type":"integer","format":"int32"},"alarmTransmissionSystemCategory":{"type":"string","enum":["SP2","SP3","DP1","DP2","DP3","DP4"]},"alarmReceivingCenterRegistrationNumber":{"type":"string"},"hardwareSerialNumber":{"type":"string"},"connectEvacLicenses":{"type":"integer","format":"int32"},"mobileConnection":{"type":"string","enum":["MOBILE_ONBOARD","MOBILE_EXTERNAL_EXPANSION_SET"]},"dualConnection":{"type":"string","enum":["LAN","MOBILE"]},"ipAddressType":{"type":"string","enum":["DHCP","FIXED"]},"ipAddress":{"type":"string"},"gateway":{"type":"string"},"subnetMask":{"type":"string"},"geofenceRadius":{"type":"integer","format":"int32"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"}}},"PushNotificationChannel":{"required":["name","subscribed"],"type":"object","properties":{"name":{"type":"string","enum":["URGENT","SAFETY","DISABLEMENT","TEST","MAINTENANCE","CONNECTION"]},"subscribed":{"type":"boolean"}}},"UpdateInstallationPushNotificationSettingsRequest":{"required":["pushNotificationChannels"],"type":"object","properties":{"pushNotificationChannels":{"type":"array","items":{"$ref":"#/components/schemas/PushNotificationChannel"}}}},"InstallationPushNotificationSettingsOutputV2":{"required":["pushNotificationChannels"],"type":"object","properties":{"pushNotificationChannels":{"type":"array","items":{"$ref":"#/components/schemas/PushNotificationChannel"}}}},"MaintenanceModeResponse":{"required":["deviceIds","id","installationId","isActive","isTimedOut","remainingTime","startedAt","startedByName","timeoutAt","timeoutDuration"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"installationId":{"type":"integer","format":"int32"},"deviceIds":{"type":"array","items":{"type":"integer","format":"int32"}},"startedByName":{"type":"string"},"startedAt":{"type":"string","format":"date-time"},"endedByName":{"type":"string"},"endedAt":{"type":"string","format":"date-time"},"isActive":{"type":"boolean"},"timeoutDuration":{"type":"string"},"timeoutAt":{"type":"string","format":"date-time"},"remainingTime":{"type":"string"},"isTimedOut":{"type":"boolean"}}},"InstallationMutationResponseV2":{"required":["id","location","products","resellerId","status","technicalConfiguration","traceability","webWayOneId"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"resellerId":{"type":"integer","format":"int32"},"webWayOneId":{"type":"string"},"location":{"$ref":"#/components/schemas/LocationResponse"},"traceability":{"$ref":"#/components/schemas/TraceabilityResponse"},"products":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}},"technicalConfiguration":{"$ref":"#/components/schemas/TechnicalConfigurationResponse"},"status":{"type":"string","enum":["PENDING","CONFIRMED","COMPLETED"]}}},"LocationResponse":{"required":["city","country","houseNumber","id","name","street","usageFunction","zipCode"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"},"street":{"type":"string"},"houseNumber":{"type":"string"},"zipCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string","enum":["NETHERLANDS","GERMANY"]},"purchaseNumber":{"type":"string"},"externalReference":{"type":"string"},"usageFunction":{"type":"string","enum":["INDUSTRIAL","OFFICE","SPORTS","SHOPPING","RESIDENTIAL","MEETING","CELLS","HEALTH","HOSPITALITY","EDUCATION","OTHER"]}}},"TraceabilityResponse":{"required":["lastUpdatedByUserId","updatedAt"],"type":"object","properties":{"submittedByUserId":{"type":"integer","format":"int32"},"lastUpdatedByUserId":{"type":"integer","format":"int32"},"updatedAt":{"type":"string","format":"date-time"},"finishedAt":{"type":"string","format":"date-time"}}},"InstallationRequestResponseV1":{"required":["city","country","customerOrganisationId","houseNumber","id","installationName","lastUpdatedByUserId","status","street","updatedAt","usageFunction","zipCode"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"customerOrganisationId":{"type":"integer","format":"int32"},"lastUpdatedByUserId":{"type":"integer","format":"int32"},"webWayOneId":{"type":"string"},"status":{"type":"string","enum":["CONCEPT","PENDING","FINAL"]},"installationName":{"type":"string"},"street":{"type":"string"},"houseNumber":{"type":"string"},"zipCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string","enum":["NETHERLANDS","GERMANY"]},"purchaseNumber":{"type":"string"},"externalReference":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"finishedAt":{"type":"string","format":"date-time"},"usageFunction":{"type":"string","enum":["INDUSTRIAL","OFFICE","SPORTS","SHOPPING","RESIDENTIAL","MEETING","CELLS","HEALTH","HOSPITALITY","EDUCATION","OTHER"]}}},"InstallationRequestRequestV1":{"required":["city","country","customerOrganisationId","houseNumber","installationName","street","usageFunction","zipCode"],"type":"object","properties":{"customerOrganisationId":{"type":"integer","format":"int32"},"installationName":{"maxLength":60,"minLength":0,"type":"string"},"street":{"maxLength":60,"minLength":0,"type":"string"},"houseNumber":{"maxLength":60,"minLength":0,"type":"string"},"zipCode":{"maxLength":7,"minLength":0,"type":"string"},"city":{"maxLength":60,"minLength":0,"type":"string"},"country":{"type":"string","enum":["NETHERLANDS","GERMANY"]},"purchaseNumber":{"maxLength":60,"minLength":0,"type":"string"},"externalReference":{"maxLength":60,"minLength":0,"type":"string"},"usageFunction":{"type":"string","enum":["INDUSTRIAL","OFFICE","SPORTS","SHOPPING","RESIDENTIAL","MEETING","CELLS","HEALTH","HOSPITALITY","EDUCATION","OTHER"]}}},"InstallationMutationResponseV1":{"required":["customerOrganisationId","id","location","products","status","technicalConfiguration","traceability","webWayOneId"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"webWayOneId":{"type":"string"},"customerOrganisationId":{"type":"integer","format":"int32"},"location":{"$ref":"#/components/schemas/LocationResponse"},"traceability":{"$ref":"#/components/schemas/TraceabilityResponse"},"products":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}},"technicalConfiguration":{"$ref":"#/components/schemas/TechnicalConfigurationResponse"},"status":{"type":"string","enum":["PENDING","CONFIRMED","COMPLETED"]}}},"FeatureFlagRequest":{"required":["featureFlag","status"],"type":"object","properties":{"featureFlag":{"type":"string","enum":["MAINTENANCE_MODE","DOCUMENT_CHAT"]},"status":{"type":"boolean"}}},"FeatureFlagResponse":{"required":["featureFlags"],"type":"object","properties":{"featureFlags":{"type":"object","additionalProperties":{"type":"boolean"}}},"example":{"featureFlags":{"MAINTENANCE_MODE":false,"DOCUMENT_CHAT":true}}},"HealthPingResponse":{"required":["activeDeviceCount","deviceName","installationName","installationStatus","minimumActiveDeviceCount","phoneNumber","supportedAndroidOSVersions","totalDeviceCount"],"type":"object","properties":{"installationName":{"type":"string"},"installationStatus":{"type":"string","enum":["FIRE","ALARM","NORMAL","CONNECT_FAULT","CLIENT_DEVICE_INACTIVE","MAINTENANCE_MODE"]},"totalDeviceCount":{"type":"integer","format":"int32"},"activeDeviceCount":{"type":"integer","format":"int32"},"deviceName":{"type":"string"},"phoneNumber":{"type":"string"},"supportedAndroidOSVersions":{"type":"array","items":{"type":"integer","format":"int32"}},"minimumActiveDeviceCount":{"type":"integer","format":"int32"}}},"PingRequest":{"required":["firebaseToken"],"type":"object","properties":{"firebaseToken":{"minLength":1,"type":"string"},"latitude":{"type":"string"},"longitude":{"type":"string"},"appVersion":{"type":"string"},"osVersion":{"type":"string"}}},"PairingResponse":{"required":["apiKey","deviceName","installationName","phoneNumber"],"type":"object","properties":{"apiKey":{"type":"string"},"installationName":{"type":"string"},"phoneNumber":{"type":"string"},"deviceName":{"type":"string"}}},"PairingRequest":{"required":["deviceName","deviceNativeId","firebaseToken","osVersion","pairingCode","phoneNumber"],"type":"object","properties":{"pairingCode":{"maxLength":6,"minLength":6,"type":"string"},"deviceNativeId":{"minLength":1,"type":"string"},"osVersion":{"minLength":1,"type":"string"},"firebaseToken":{"minLength":1,"type":"string"},"phoneNumber":{"minLength":1,"pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"deviceName":{"minLength":1,"type":"string"}}},"ConfirmNotificationRequest":{"required":["notificationUUID"],"type":"object","properties":{"notificationUUID":{"minLength":1,"type":"string"}}},"InvitationAcceptResponse":{"required":["objectId","objectName","objectType","roles"],"type":"object","properties":{"objectType":{"$ref":"#/components/schemas/ObjectType"},"objectId":{"type":"integer","format":"int32"},"objectName":{"type":"string"},"businessUnitId":{"type":"integer","format":"int32"},"roles":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/Role"}}}},"ObjectType":{"type":"string","description":"The type of object for authorization checks","enum":["PLATFORM","BUSINESS_UNIT","RESELLER_CHAIN","RESELLER","CUSTOMER_ORGANISATION","INSTALLATION"]},"Role":{"type":"string","description":"Available roles","enum":["ADMIN","SERVICE_COORDINATOR","TECHNICAL_SPECIALIST","BMI_MANAGER","ASSET_MANAGER","SUPPORT"]},"MigrationRequest":{"required":["resellerId"],"type":"object","properties":{"resellerId":{"type":"integer","format":"int32"}}},"MigrationResponse":{"type":"object","properties":{"result":{"$ref":"#/components/schemas/MigrationResult"}}},"MigrationResult":{"type":"object","properties":{"installationsMigrated":{"type":"integer","format":"int32"},"installationsSkipped":{"type":"integer","format":"int32"},"requestsMigrated":{"type":"integer","format":"int32"},"requestsSkipped":{"type":"integer","format":"int32"},"mutationsMigrated":{"type":"integer","format":"int32"},"mutationsSkipped":{"type":"integer","format":"int32"}}},"ElementEnablementRequest":{"required":["enabled"],"type":"object","properties":{"enabled":{"type":"boolean"},"note":{"type":"string"}}},"MaintenanceModeRequest":{"required":["deviceIds"],"type":"object","properties":{"deviceIds":{"minItems":1,"type":"array","items":{"type":"integer","format":"int32"}},"timeoutMinutes":{"type":"integer","format":"int32"}}},"LogEntryNoteRequest":{"required":["message"],"type":"object","properties":{"message":{"minLength":1,"type":"string"}}},"LogEntryNoteResponse":{"required":["createdAt","creatorEmail","creatorFirstName","creatorLastName","id","logEntryId","message","userId"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"logEntryId":{"type":"integer","format":"int32"},"userId":{"type":"integer","format":"int32"},"creatorFirstName":{"type":"string"},"creatorLastName":{"type":"string"},"creatorEmail":{"type":"string"},"message":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"InstallationInvitationRequest":{"required":["email","roles"],"type":"object","properties":{"email":{"type":"string","format":"email"},"roles":{"minItems":1,"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/Role"}},"authorized":{"type":"boolean"}}},"InstallationMutationRequestV2":{"required":["location","products","technicalConfiguration"],"type":"object","properties":{"location":{"$ref":"#/components/schemas/LocationRequest"},"products":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}},"technicalConfiguration":{"$ref":"#/components/schemas/TechnicalConfigurationRequest"}}},"LocationRequest":{"required":["city","country","houseNumber","name","street","usageFunction","zipCode"],"type":"object","properties":{"name":{"maxLength":60,"minLength":0,"type":"string"},"street":{"maxLength":60,"minLength":0,"type":"string"},"houseNumber":{"maxLength":60,"minLength":0,"type":"string"},"zipCode":{"maxLength":7,"minLength":0,"type":"string"},"city":{"maxLength":60,"minLength":0,"type":"string"},"country":{"type":"string","enum":["NETHERLANDS","GERMANY"]},"purchaseNumber":{"maxLength":60,"minLength":0,"type":"string"},"externalReference":{"maxLength":60,"minLength":0,"type":"string"},"usageFunction":{"type":"string","enum":["INDUSTRIAL","OFFICE","SPORTS","SHOPPING","RESIDENTIAL","MEETING","CELLS","HEALTH","HOSPITALITY","EDUCATION","OTHER"]}}},"ElementSynchronisationResponse":{"required":["createdAt","id","installationId","status"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"installationId":{"type":"integer","format":"int32"},"status":{"type":"string","enum":["PENDING","COMPLETED","CANCELED"]},"createdAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"}}},"InstallationMutationRequestV1":{"required":["customerOrganisationId","location","products","technicalConfiguration","webWayOneId"],"type":"object","properties":{"customerOrganisationId":{"type":"integer","format":"int32"},"webWayOneId":{"pattern":"^\\d{8}$","type":"string"},"location":{"$ref":"#/components/schemas/LocationRequest"},"products":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}},"technicalConfiguration":{"$ref":"#/components/schemas/TechnicalConfigurationRequest"}}},"RegistrationTokenRequest":{"required":["registrationToken"],"type":"object","properties":{"registrationToken":{"minLength":1,"type":"string"}}},"EchoNotificationRequest":{"required":["message","registrationToken"],"type":"object","properties":{"registrationToken":{"minLength":1,"type":"string","description":"Firebase registration token to send notification to","example":"fGH5kXj7..."},"message":{"minLength":1,"type":"string","description":"Test message body","example":"This is a test notification"}},"description":"Request to send a test push notification"},"ChatRequest":{"required":["message"],"type":"object","properties":{"message":{"maxLength":10000,"minLength":0,"type":"string"},"conversationId":{"type":"integer","format":"int32"}}},"SseEmitter":{"type":"object","properties":{"timeout":{"type":"integer","format":"int64"}}},"PairingCodeResponse":{"type":"object","properties":{"pairingCode":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"}}},"BatchRoleAssignmentRequest":{"required":["assignments"],"type":"object","properties":{"assignments":{"maxItems":100,"minItems":0,"type":"array","description":"List of role assignments to create. Maximum 100 assignments per batch.","items":{"$ref":"#/components/schemas/RoleAssignmentRequest"}}},"description":"Request to batch assign roles to multiple users"},"RoleAssignmentRequest":{"required":["objectId","objectType","role","userId"],"type":"object","properties":{"userId":{"type":"integer","description":"ID of the user to assign the role to","format":"int32"},"objectType":{"$ref":"#/components/schemas/ObjectType"},"objectId":{"type":"integer","description":"ID of the object in the hierarchy","format":"int32"},"role":{"$ref":"#/components/schemas/Role"},"effectiveFrom":{"type":"string","description":"When the assignment becomes effective. Defaults to now if not provided.","format":"date-time"},"effectiveTo":{"type":"string","description":"When the assignment expires. Null means no expiration.","format":"date-time"}},"description":"Single role assignment to be created"},"BatchRoleAssignmentResponse":{"type":"object","properties":{"assignments":{"type":"array","items":{"$ref":"#/components/schemas/RoleAssignmentResponse"}}}},"RoleAssignmentResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"userId":{"type":"integer","format":"int32"},"objectType":{"$ref":"#/components/schemas/ObjectType"},"objectId":{"type":"integer","format":"int32"},"role":{"$ref":"#/components/schemas/Role"},"effectiveFrom":{"type":"string","format":"date-time"},"effectiveTo":{"type":"string","format":"date-time"}}},"BatchCheckCapabilitiesRequest":{"required":["identifiers","objectType"],"type":"object","properties":{"objectType":{"$ref":"#/components/schemas/ObjectType"},"identifiers":{"maxItems":200,"minItems":1,"type":"array","description":"List of object identifiers. Maximum 200 IDs per request.","example":[1,2,3],"items":{"type":"integer","description":"List of object identifiers. Maximum 200 IDs per request.","format":"int32"}}},"description":"Request to check capabilities for a specific object type"},"BatchCheckCapabilitiesResponse":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/Capability"}}}}},"description":"Batch capability check response containing capabilities grouped by object type and identifier","example":{"data":{"INSTALLATION":{"1":["INSTALLATION_READ","INSTALLATION_UPDATE"],"2":["INSTALLATION_READ"]},"RESELLER":{"10":["INSTALLATION_CREATE","INSTALLATION_READ"]}}}},"Capability":{"type":"string","description":"Available capabilities for authorization checks","enum":["INSTALLATION_READ","INSTALLATION_CREATE","INSTALLATION_UPDATE","INSTALLATION_DELETE","INSTALLATION_ENABLE_SIREN","INSTALLATION_DISABLE_SIREN","INSTALLATION_MUTE","INSTALLATION_RESET","INSTALLATION_MAINTENANCE_MODE_START","INSTALLATION_MAINTENANCE_MODE_STOP","INSTALLATION_MAINTENANCE_MODE_READ","INSTALLATION_LOG_ENTRY_READ","INSTALLATION_LOG_ENTRY_NOTE_CREATE","INSTALLATION_LOG_ENTRY_NOTE_UPDATE","INSTALLATION_START_ELEMENT_SYNCHRONISATION","CUSTOMER_ORGANISATION_READ","CUSTOMER_ORGANISATION_CREATE","CUSTOMER_ORGANISATION_UPDATE","CUSTOMER_ORGANISATION_DELETE","RESELLER_CHAIN_CREATE","RESELLER_CHAIN_READ","RESELLER_CREATE","RESELLER_READ","RESELLER_UPDATE","RESELLER_DELETE","ELEMENT_ENABLE","ELEMENT_DISABLE","ELEMENT_UPDATE_VALUE","USER_PUSH_NOTIFICATION_SETTINGS_READ","USER_PUSH_NOTIFICATION_SETTINGS_UPDATE","USER_PUSH_NOTIFICATION_SETTINGS_UPDATE_TEST","USER_PUSH_NOTIFICATION_SETTINGS_UPDATE_MAINTENANCE","INSTALLATION_REQUEST_FINALIZE","INSTALLATION_MUTATION_FINALIZE","INSTALLATION_MANUAL_ACTIVATE","INSTALLATION_MIGRATE","EVAC_MOBILE_DEVICE_READ","EVAC_MOBILE_DEVICE_CREATE","EVAC_MOBILE_DEVICE_DELETE","EVAC_SETTINGS_UPDATE","USER_UPDATE","USER_CREATE","ROLE_ASSIGNMENT_CREATE","FEATURE_FLAG_UPDATE","DOCUMENT_READ","DOCUMENT_CHAT"]},"WebhookDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"endpoint":{"type":"string"},"token":{"type":"string"},"events":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventDTO"}}}},"WebhookEventDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"successful":{"type":"boolean"},"result":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"WebhookRequest":{"required":["endpoint","token"],"type":"object","properties":{"endpoint":{"minLength":1,"type":"string"},"token":{"minLength":1,"type":"string"}}},"AuthenticationResponse":{"required":["token","validUntil"],"type":"object","properties":{"token":{"type":"string"},"validUntil":{"type":"string","format":"date-time"}}},"AuthenticationRequest":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"}}},"UserRequest":{"required":["email","firstName","language","lastName"],"type":"object","properties":{"firstName":{"minLength":1,"type":"string"},"lastName":{"minLength":1,"type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"language":{"type":"string","enum":["DUTCH","GERMAN"]}}},"UserResponse":{"required":["email","firstName","id","language","lastName"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"language":{"type":"string","enum":["DUTCH","GERMAN"]}}},"AdministrationInvitationRequest":{"required":["email","objectId","objectType","roles"],"type":"object","properties":{"email":{"type":"string","format":"email"},"objectType":{"$ref":"#/components/schemas/ObjectType"},"objectId":{"type":"integer","format":"int32"},"roles":{"minItems":1,"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/Role"}},"authorized":{"type":"boolean"}}},"ResellerRequest":{"required":["address","city","country","debtorNumber","invoiceAddress","invoiceCity","invoiceCountry","invoiceName","invoicePostcode","name","postcode"],"type":"object","properties":{"resellerChainId":{"type":"integer","format":"int32"},"name":{"type":"string"},"address":{"type":"string"},"postcode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string","enum":["NETHERLANDS","GERMANY"]},"phoneNumber":{"type":"string"},"email":{"type":"string"},"debtorNumber":{"type":"string"},"invoiceName":{"type":"string"},"invoiceAddress":{"type":"string"},"invoicePostcode":{"type":"string"},"invoiceCity":{"type":"string"},"invoiceCountry":{"type":"string","enum":["NETHERLANDS","GERMANY"]}}},"ResellerResponse":{"required":["address","city","country","debtorNumber","id","invoiceAddress","invoiceCity","invoiceCountry","invoiceName","invoicePostcode","name","postcode"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"},"address":{"type":"string"},"postcode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string","enum":["NETHERLANDS","GERMANY"]},"phoneNumber":{"type":"string"},"email":{"type":"string"},"debtorNumber":{"type":"string"},"invoiceName":{"type":"string"},"invoiceAddress":{"type":"string"},"invoicePostcode":{"type":"string"},"invoiceCity":{"type":"string"},"invoiceCountry":{"type":"string","enum":["NETHERLANDS","GERMANY"]},"cooperationType":{"type":"string"}}},"ResellerChainRequest":{"required":["name"],"type":"object","properties":{"name":{"maxLength":255,"minLength":0,"type":"string"}}},"ResellerChainResponse":{"required":["businessUnitId","id","name"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"maxLength":255,"minLength":0,"type":"string"},"businessUnitId":{"type":"integer","format":"int32"}}},"UpdateEvacSettingsRequest":{"required":["minOnlineDevices"],"type":"object","properties":{"minOnlineDevices":{"minimum":2,"type":"integer","format":"int32"}}},"Event":{"type":"object","properties":{"eventType":{"type":"string","enum":["FIRE","ALARM","FAULT"]},"zone":{"type":"string"},"location":{"type":"string"},"deviceType":{"type":"string"},"startedAt":{"type":"string","format":"date-time"},"isAcknowledged":{"type":"boolean"},"isAcknowledgedByMe":{"type":"boolean"},"acknowledgedBy":{"type":"string"}}},"EventResponse":{"required":["ongoingEvents"],"type":"object","properties":{"ongoingEvents":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}}},"ServiceOrganisationResponse":{"required":["address","city","debtorNumber","email","id","name","phoneNumber","postcode"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"},"address":{"type":"string"},"postcode":{"type":"string"},"city":{"type":"string"},"debtorNumber":{"type":"string"},"phoneNumber":{"type":"string"},"email":{"type":"string"}}},"CustomerOrganisationResponse":{"required":["address","city","id","name","postcode"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"},"address":{"type":"string"},"postcode":{"type":"string"},"city":{"type":"string"},"customerNumber":{"type":"string"},"email":{"type":"string"}}},"InstallationPredictiveMaintenanceCount":{"required":["installationId","installationLocation","installationName"],"type":"object","properties":{"installationId":{"type":"integer","format":"int32"},"installationName":{"type":"string"},"installationLocation":{"type":"string"},"highCount":{"type":"integer","format":"int32"},"mediumCount":{"type":"integer","format":"int32"},"totalCount":{"type":"integer","format":"int32"}}},"InstallationResponseV2":{"required":["alertElementCount","connectionStatus","editable","id","location","products","resellerId","resellerName","statusCategory","statusPrioritySortKey","technicalConfiguration","webWayOneId"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"webWayOneId":{"type":"string"},"resellerId":{"type":"integer","format":"int32"},"resellerName":{"type":"string"},"statusCategory":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]},"connectionStatus":{"type":"string","enum":["OK","OK_NO_DATA_CONNECTION","FAULT","NOT_OPERATIONAL"]},"location":{"$ref":"#/components/schemas/LocationResponse"},"products":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}},"technicalConfiguration":{"$ref":"#/components/schemas/TechnicalConfigurationResponse"},"editable":{"type":"boolean"},"statusPrioritySortKey":{"type":"string"},"alertElementCount":{"type":"integer","format":"int32"}}},"AvailableInstallationFiltersResponse":{"type":"object","properties":{"statusCategories":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}},"connectionStatuses":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["OK","OK_NO_DATA_CONNECTION","FAULT","NOT_OPERATIONAL"]}}}},"AlarmReceivingCenterResponse":{"required":["id","name"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"}}},"ZoneResponse":{"required":["alertElementCount","id","installationId","name","nodes","number","statusCategory","statusPrioritySortKey","updatedAt"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"},"number":{"type":"integer","format":"int32"},"statusCategory":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]},"installationId":{"type":"integer","format":"int32"},"updatedAt":{"type":"string","format":"date-time"},"archivedAt":{"type":"string","format":"date-time"},"nodes":{"uniqueItems":true,"type":"array","items":{"type":"integer","format":"int32"}},"statusPrioritySortKey":{"type":"string"},"alertElementCount":{"type":"integer","format":"int32"}}},"ElementResponse":{"required":["address","analogValue","analogValueSince","enabled","id","isSwitchable","loop","name","node","status","statusActiveSince","statusCategory","statusPrioritySortKey","subAddress","type"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"},"type":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]},"number":{"type":"integer","format":"int32"},"node":{"type":"integer","format":"int32"},"loop":{"type":"integer","format":"int32"},"address":{"type":"integer","format":"int32"},"subAddress":{"type":"integer","format":"int32"},"analogValue":{"type":"string"},"analogValueSince":{"type":"string","format":"date-time"},"statusCategory":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]},"status":{"type":"string"},"statusActiveSince":{"type":"string","format":"date-time"},"enabled":{"type":"boolean"},"isSwitchable":{"type":"boolean"},"statusPrioritySortKey":{"type":"string"}}},"LogEntryResponseV2":{"required":["createdAt","entryType","id","logEntryNotes","startedAt","status","updatedAt","userAction"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"entryType":{"type":"string","enum":["USER_ACTION","CONNECTION_STATUS","TOO_FEW_MOBILE_DEVICES_ONLINE","EVENT"]},"status":{"type":"string"},"statusCategory":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]},"startedAt":{"type":"string","format":"date-time"},"endedAt":{"type":"string","format":"date-time"},"userAction":{"type":"string","enum":["RESET","REQUEST_ALL_DEVICE_STATUSES","MUTE","SILENCE","RESOUND","ELEMENT_ENABLE","ELEMENT_DISABLE","ELEMENT_REQUEST_ANALOG_VALUE","SILENT_ALARM_DEVICE_PAIRED","SILENT_ALARM_DEVICE_DELETED","SILENT_ALARM_CONNECTION_FAULT_ACKNOWLEDGED","UPDATE_EVAC_MIN_DEVICES","MAINTENANCE_START","MAINTENANCE_END"]},"userId":{"type":"integer","format":"int32"},"logEntryNotes":{"type":"array","items":{"$ref":"#/components/schemas/LogEntryNoteResponse"}},"installation":{"$ref":"#/components/schemas/InstallationResponseV2"},"zone":{"$ref":"#/components/schemas/ZoneResponse"},"element":{"$ref":"#/components/schemas/ElementResponse"},"mobileDevice":{"$ref":"#/components/schemas/MobileDeviceResponse"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"creatorFirstName":{"type":"string"},"creatorLastName":{"type":"string"}}},"MobileDeviceResponse":{"required":["deviceNativeId","online"],"type":"object","properties":{"deviceNativeId":{"type":"string"},"online":{"type":"boolean"},"deviceName":{"type":"string"},"phoneNumber":{"type":"string"}}},"AvailableLogEntryFiltersResponse":{"type":"object","properties":{"entryTypes":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["USER_ACTION","CONNECTION_STATUS","TOO_FEW_MOBILE_DEVICES_ONLINE","EVENT"]}},"statusCategories":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}},"userActions":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["RESET","REQUEST_ALL_DEVICE_STATUSES","MUTE","SILENCE","RESOUND","ELEMENT_ENABLE","ELEMENT_DISABLE","ELEMENT_REQUEST_ANALOG_VALUE","SILENT_ALARM_DEVICE_PAIRED","SILENT_ALARM_DEVICE_DELETED","SILENT_ALARM_CONNECTION_FAULT_ACKNOWLEDGED","UPDATE_EVAC_MIN_DEVICES","MAINTENANCE_START","MAINTENANCE_END"]}},"elementDeviceTypes":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]}}}},"PredictiveMaintenanceResponse":{"required":["elementAddress","elementDeviceType","elementId","elementLoop","elementName","elementStatus","elementStatusCategory","elementSubAddress","id","importedAt","installationId","predictionZone","updatedAt","zoneId","zoneName"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"installationId":{"type":"integer","format":"int32"},"zoneId":{"type":"integer","format":"int32"},"zoneName":{"type":"string"},"elementId":{"type":"integer","format":"int32"},"elementName":{"type":"string"},"elementLoop":{"type":"integer","format":"int32"},"elementAddress":{"type":"integer","format":"int32"},"elementSubAddress":{"type":"integer","format":"int32"},"elementDeviceType":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]},"elementStatusCategory":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]},"elementStatus":{"type":"string"},"predictionZone":{"type":"string","enum":["HIGH","MEDIUM"]},"period":{"type":"string","enum":["TWO_MONTHS","TWELVE_MONTHS"]},"valueFeature":{"type":"number","format":"double"},"explanationId":{"type":"string"},"importedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"AvailableElementFiltersResponse":{"type":"object","properties":{"statusCategories":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}},"elementDeviceTypes":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]}}}},"AvailableZoneFiltersResponse":{"type":"object","properties":{"statusCategories":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]}},"elementDeviceTypes":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["AUDIO","BEACON","CALL_POINT","CARBON_MONOXIDE_FIRE_SENSOR","CARBON_MONOXIDE_GAS_SENSOR","CONNECTION_STACK","CURRENT","DOUBLE_ADDRESS","FLAME_DETECTOR","HEAT","INPUT","IONISATION_SMOKE","MA_4_TO_20_INPUT","MULTI","MULTI_HEAT","MONITOR","MONITORED_RELAY","MONITORED_SWITCH","OPTICAL_SMOKE","RADIO_INTERFACE","RATE_OF_RISE_HEAT","RELAY","SENSOR","SOUNDER","SWITCH","TEMPERATURE_SENSOR","UNKNOWN","VOLTS","ZONE_MONITOR"]}}}},"MaintenanceModeStatusResponse":{"type":"object","properties":{"isActive":{"type":"boolean"},"activeSession":{"$ref":"#/components/schemas/MaintenanceModeResponse"}}},"InstallationResponseV1":{"required":["alertElementCount","connectionStatus","customerOrganisationId","customerOrganisationName","editable","id","location","products","statusCategory","statusPrioritySortKey","technicalConfiguration","webWayOneId"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"webWayOneId":{"type":"string"},"customerOrganisationId":{"type":"integer","format":"int32"},"customerOrganisationName":{"type":"string"},"statusCategory":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]},"connectionStatus":{"type":"string","enum":["OK","OK_NO_DATA_CONNECTION","FAULT","NOT_OPERATIONAL"]},"location":{"$ref":"#/components/schemas/LocationResponse"},"products":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["CONNECT_STANDARD_ALARM_FORWARDING","CONNECT_INTELLIGENT_ALARM_FORWARDING","CONNECT_SUPPORT","CONNECT_CONTROL","CONNECT_EVAC","CONNECT_LINK","EXTRA_MOBILE_SUBSCRIPTION"]}},"technicalConfiguration":{"$ref":"#/components/schemas/TechnicalConfigurationResponse"},"editable":{"type":"boolean"},"statusPrioritySortKey":{"type":"string"},"alertElementCount":{"type":"integer","format":"int32"}}},"LogEntryResponseV1":{"required":["createdAt","entryType","id","logEntryNotes","startedAt","status","updatedAt","userAction"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"entryType":{"type":"string","enum":["USER_ACTION","CONNECTION_STATUS","TOO_FEW_MOBILE_DEVICES_ONLINE","EVENT"]},"status":{"type":"string"},"statusCategory":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]},"startedAt":{"type":"string","format":"date-time"},"endedAt":{"type":"string","format":"date-time"},"userAction":{"type":"string","enum":["RESET","REQUEST_ALL_DEVICE_STATUSES","MUTE","SILENCE","RESOUND","ELEMENT_ENABLE","ELEMENT_DISABLE","ELEMENT_REQUEST_ANALOG_VALUE","SILENT_ALARM_DEVICE_PAIRED","SILENT_ALARM_DEVICE_DELETED","SILENT_ALARM_CONNECTION_FAULT_ACKNOWLEDGED","UPDATE_EVAC_MIN_DEVICES","MAINTENANCE_START","MAINTENANCE_END"]},"userId":{"type":"integer","format":"int32"},"logEntryNotes":{"type":"array","items":{"$ref":"#/components/schemas/LogEntryNoteResponse"}},"installation":{"$ref":"#/components/schemas/InstallationResponseV1"},"zone":{"$ref":"#/components/schemas/ZoneResponse"},"element":{"$ref":"#/components/schemas/ElementResponse"},"mobileDevice":{"$ref":"#/components/schemas/MobileDeviceResponse"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"creatorFirstName":{"type":"string"},"creatorLastName":{"type":"string"}}},"TokenListResponse":{"type":"object","properties":{"tokens":{"type":"array","items":{"type":"string"}}}},"TokenExistsResponse":{"type":"object","properties":{"exists":{"type":"boolean"}}},"ConversationResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"title":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","ARCHIVED"]},"createdAt":{"type":"string","format":"date-time"},"lastMessageAt":{"type":"string","format":"date-time"},"messageCount":{"type":"integer","format":"int32"}}},"MessageResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"role":{"type":"string","enum":["USER","ASSISTANT"]},"content":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"sources":{"type":"array","items":{"$ref":"#/components/schemas/SourceResponse"}}}},"SourceResponse":{"type":"object","properties":{"filename":{"type":"string"},"viewUrl":{"type":"string"}}},"EvacSettingsResponse":{"required":["maxDevices","minOnlineDevices","totalPairedDevices"],"type":"object","properties":{"usageFunction":{"type":"string","enum":["INDUSTRIAL","OFFICE","SPORTS","SHOPPING","RESIDENTIAL","MEETING","CELLS","HEALTH","HOSPITALITY","EDUCATION","OTHER"]},"resellerName":{"type":"string"},"minOnlineDevices":{"type":"integer","format":"int32"},"maxDevices":{"type":"integer","format":"int32"},"totalPairedDevices":{"type":"integer","format":"int32"}}},"NotificationPerformanceResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"notificationUuid":{"type":"string"},"eventType":{"type":"string","enum":["FIRE","ALARM","FAULT"]},"sendAt":{"type":"string","format":"date-time"},"receivedAt":{"type":"string","format":"date-time"},"initiatedVoiceCallAt":{"type":"string","format":"date-time"},"confirmedVoiceCallAt":{"type":"string","format":"date-time"},"answeredBy":{"type":"string"},"callStatus":{"type":"string"},"deviceName":{"type":"string"},"phoneNumber":{"type":"string"},"elementName":{"type":"string"},"elementNode":{"type":"integer","format":"int32"},"elementLoop":{"type":"integer","format":"int32"},"elementAddress":{"type":"integer","format":"int32"}}},"MobileDeviceResponseV2":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"deviceNativeId":{"type":"string"},"status":{"type":"string","enum":["online","offline","test","inactive"]},"deviceName":{"type":"string"},"phoneNumber":{"type":"string"},"appVersion":{"type":"string"},"osVersion":{"type":"string"},"sortKey":{"type":"string"},"lastCheckIn":{"type":"string","format":"date-time"}}},"IdentityWithRolesResponse":{"required":["email","firstName","lastName","roles","userId"],"type":"object","properties":{"userId":{"type":"integer","format":"int32"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/Role"}}}},"HasAccessibleDescendantsResponse":{"type":"object","properties":{"hasAccessibleDescendants":{"type":"boolean","description":"Whether the user has access to at least one descendant object of the specified type","example":true}},"description":"Response indicating whether the user has access to at least one descendant object"},"CustomerOrganisationDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"}}},"InstallationDTO":{"type":"object","properties":{"connectId":{"type":"string"},"id":{"type":"integer","format":"int32"},"name":{"type":"string"},"address":{"type":"string"},"postcode":{"type":"string"},"city":{"type":"string"},"usageFunction":{"type":"string","enum":["INDUSTRIAL","OFFICE","SPORTS","SHOPPING","RESIDENTIAL","MEETING","CELLS","HEALTH","HOSPITALITY","EDUCATION","OTHER"]},"externalReference":{"type":"string"},"statusCategory":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]},"connectionStatus":{"type":"string","enum":["UNKNOWN","OK","FAULT"]},"serviceOrganisation":{"$ref":"#/components/schemas/ServiceOrganisationDTO"},"customerOrganisation":{"$ref":"#/components/schemas/CustomerOrganisationDTO"},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/NodeDTO"}}}},"NodeDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"networkNode":{"type":"integer","format":"int32"},"accessLevel":{"type":"integer","format":"int32"},"lastCheckinAt":{"type":"string"}}},"ServiceOrganisationDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"}}},"ZoneDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"},"number":{"type":"integer","format":"int32"},"statusCategory":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]},"nrOfElements":{"type":"integer","format":"int32"}}},"ElementDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"},"status":{"type":"string"},"statusCategory":{"type":"string","enum":["FIRE","ALARM","VERIFYING","PRE_ALARM","MALFUNCTION","WARNING","SUPERVISORY","DISABLEMENT","TEST","MAINTENANCE","DIRTY","UNKNOWN","NORMAL"]},"deviceType":{"type":"string"},"node":{"type":"integer","format":"int32"},"loop":{"type":"integer","format":"int32"},"address":{"type":"integer","format":"int32"},"subAddress":{"type":"integer","format":"int32"},"analogValue":{"type":"string"},"zoneId":{"type":"integer","format":"int32"},"installationId":{"type":"integer","format":"int32"},"number":{"type":"integer","format":"int32"}}},"BusinessUnitResponse":{"required":["id","name"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"}}},"MinimumDeviceThresholdErrorResponse":{"type":"object","properties":{"error":{"type":"string"},"reason":{"type":"string"},"minimumRequired":{"type":"integer","format":"int32"},"onlineCountAfterDeletion":{"type":"integer","format":"int32"}}}}}}