{"openapi":"3.1.0","info":{"contact":{"email":"support@domotz.com","name":"API Support","url":"https://www.domotz.com/"},"description":"# Introduction\nTo begin using the Domotz Public API, first obtain your `API key` and `server` reference from the <a href=\"https://portal.domotz.com/portal/settings/services?selected_menu=api_keys\">Domotz Portal</a>.\n\nThe Domotz Public API follows standard REST principles. It uses conventional HTTP response codes, authentication mechanisms, and HTTP verbs. All requests accept JSON bodies, and all responses are returned in JSON format. Date-time values must follow the `yyyy-mm-ddThh:mm:ss` format and must always be expressed in UTC. Other time zones are not supported.\n\n# Webhooks\nYou can subscribe to events occurring on the Domotz platform by using Webhooks. Subscriptions are available for both Collector-level events and Device-level events.\n\nRefer to the [user-guide](https://help.domotz.com/user-guide/shared-alerts-webhooks-ticketing-systems/) for detailed instructions on how to configure Webhooks as a notification channel and how to create a Shared Alert Profile. You can also consult the sections on [Alert profiles list](#tag/alerts/get/alert-profile), [Alert profile collector binding](#tag/alerts/post/alert-profile/{alert_profile_id}/binding/agent/{agent_id}), and [Alert profile device binding](#tag/alerts/post/alert-profile/{alert_profile_id}/binding/agent/{agent_id}/device/{device_id}) to retrieve all Shared Alert Profiles and to bind them to specific Collectors or Devices. These sections also contain the complete list of available Webhook events and provide links to their corresponding schemas.\n","termsOfService":"https://www.domotz.com/terms-and-conditions/","title":"Domotz Public API","version":"1"},"paths":{"/contact-channel":{"get":{"tags":["Contact Channel"],"summary":"List Contact Channels","description":"Returns the Contact Channels available for alert notifications within the account.","operationId":"listContactChannels","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ContactChannelResponseModel"},"type":"array","title":"Response Listcontactchannels"}}}}}}},"/custom-driver/{custom_driver_id}/agent/{agent_id}/device/{device_id}/execute/{action_id}":{"post":{"tags":["Drivers"],"summary":"Driver action trigger","description":"Executes a driver action on an associated device. Optional `parameters` override the association's stored values for this run only.","operationId":"executeCustomDriverAction","parameters":[{"name":"custom_driver_id","in":"path","required":true,"schema":{"type":"integer","title":"Custom Driver Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}},{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomDriverExecutionRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomDriverExecutionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/custom-driver/agent/{agent_id}/execution-log":{"get":{"tags":["Drivers"],"summary":"Collector drivers execution logs","description":"Returns recent drivers execution logs for the given collector's devices, newest first. Optional `from`/`to` (ISO-8601) bound the time range; `limit` caps the number of rows; `outcome` filters by outcome (default failure).","operationId":"listAgentCustomDriverExecutionLogs","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":1000,"minimum":1},{"type":"null"}],"title":"Limit"}},{"name":"outcome","in":"query","required":false,"schema":{"anyOf":[{"enum":["failure","success","all"],"type":"string"},{"type":"null"}],"title":"Outcome"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentDriverExecutionLogResponseModel"},"title":"Response Listagentcustomdriverexecutionlogs"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/custom-driver/agent/{agent_id}/device/{device_id}/execution-log":{"get":{"tags":["Drivers"],"summary":"Device drivers execution logs","description":"Returns recent drivers execution logs for the given devices, newest first. Optional `from`/`to` (ISO-8601) bound the time range; `limit` caps the number of rows; `outcome` filters by outcome (default failure).","operationId":"listCustomDriverExecutionLogs","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":1000,"minimum":1},{"type":"null"}],"title":"Limit"}},{"name":"outcome","in":"query","required":false,"schema":{"anyOf":[{"enum":["failure","success","all"],"type":"string"},{"type":"null"}],"title":"Outcome"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DriverExecutionLogResponseModel"},"title":"Response Listcustomdriverexecutionlogs"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/alert":{"get":{"tags":["Alert"],"summary":"List Alerts","description":"Returns alert events generated by Alert Rules, including active and resolved alerts. Results are sorted by `triggered_at` descending. The `from`/`to` time window is mandatory and is matched against the Alert event triggered timestamp.","operationId":"listAlerts","parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Window start as ISO-8601 UTC; matched against the Alert event triggered timestamp (e.g. 2026-06-03T11:22:00Z)","title":"From"},"description":"Window start as ISO-8601 UTC; matched against the Alert event triggered timestamp (e.g. 2026-06-03T11:22:00Z)"},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Window end as ISO-8601 UTC; matched against the Alert event triggered timestamp (e.g. 2026-06-03T11:22:00Z)","title":"To"},"description":"Window end as ISO-8601 UTC; matched against the Alert event triggered timestamp (e.g. 2026-06-03T11:22:00Z)"},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/AlertSeverity"},{"type":"null"}],"description":"Filter by severity (Critical, High, Warning, Info)","title":"Severity"},"description":"Filter by severity (Critical, High, Warning, Info)"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/AlertStatus"},{"type":"null"}],"description":"Filter by status (Open, Resolved)","title":"Status"},"description":"Filter by status (Open, Resolved)"},{"name":"alert_rule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter to Alert events produced by a specific Alert Rule","title":"Alert Rule Id"},"description":"Filter to Alert events produced by a specific Alert Rule"},{"name":"collector_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter to Alert events on a specific Collector","title":"Collector Id"},"description":"Filter to Alert events on a specific Collector"},{"name":"device_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter to Alert events on a specific Device","title":"Device Id"},"description":"Filter to Alert events on a specific Device"},{"name":"page_number","in":"query","required":false,"schema":{"type":"integer","description":"Zero-based page index; clamped to >= 0","default":0,"title":"Page Number"},"description":"Zero-based page index; clamped to >= 0"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","description":"Page size; defaults to 50, capped by the deployment configuration","default":50,"title":"Page Size"},"description":"Page size; defaults to 50, capped by the deployment configuration"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/alert/{alert_id}/resolve":{"post":{"tags":["Alert"],"summary":"Resolve Alert","description":"Manually resolves an active alert and records the authenticated user as the resolver.","operationId":"resolveAlert","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","title":"Alert Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/alert-rule":{"get":{"tags":["Alert Rule"],"summary":"List Alert Rules","description":"Returns all Alert Rules configured in the account, including severity, datapoint, condition, Contact Channels, status","operationId":"listAlertRules","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AlertRuleModel"},"type":"array","title":"Response Listalertrules"}}}}}},"post":{"tags":["Alert Rule"],"summary":"Create Alert Rule","description":"Creates a new Alert Rule with a datapoint, condition, severity, operands.","operationId":"createAlertRule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAlertRuleRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRuleCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/alert-rule/{alert_rule_id}":{"get":{"tags":["Alert Rule"],"summary":"Get Alert Rule Details","description":"Returns the complete configuration details for a specific Alert Rule.","operationId":"getAlertRuleDetails","parameters":[{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Rule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRuleDetailsModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Alert Rule"],"summary":"Update Alert Rule","description":"Updates one or more fields of an existing Alert Rule, such as name, severity, condition, operands, or status.","operationId":"updateAlertRule","parameters":[{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Rule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAlertRuleRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/alert-rule/{alert_rule_id}/agent/{agent_id}/binding":{"post":{"tags":["Alert Rule"],"summary":"Apply Alert Rule to Collector","description":"Applies an Alert Rule to a Collector so it monitors every Device on the Collector.","operationId":"applyAlertRuleToCollector","parameters":[{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Rule Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Alert Rule"],"summary":"Remove Alert Rule from Collector","description":"Removes an Alert Rule from a Collector.","operationId":"removeAlertRuleFromCollector","parameters":[{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Rule Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/alert-rule/{alert_rule_id}/agent/{agent_id}/device/{device_id}/binding":{"post":{"tags":["Alert Rule"],"summary":"Apply Alert Rule to Device","description":"Applies an Alert Rule to a single Device.","operationId":"applyAlertRuleToDevice","parameters":[{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Rule Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Alert Rule"],"summary":"Remove Alert Rule from Device","description":"Removes an Alert Rule from a Device.","operationId":"removeAlertRuleFromDevice","parameters":[{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Rule Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/alert-rule/{alert_rule_id}/contact-channel/{channel_id}/binding":{"post":{"tags":["Alert Rule"],"summary":"Apply Contact Channel to Alert Rule","description":"Applies a Contact Channel to an Alert Rule so notifications for incidents matching the rule are routed to that channel.","operationId":"applyContactChannelToAlertRule","parameters":[{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Rule Id"}},{"name":"channel_id","in":"path","required":true,"schema":{"type":"integer","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Alert Rule"],"summary":"Remove Contact Channel from Alert Rule","description":"Removes a Contact Channel from an Alert Rule.","operationId":"removeContactChannelFromAlertRule","parameters":[{"name":"alert_rule_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Rule Id"}},{"name":"channel_id","in":"path","required":true,"schema":{"type":"integer","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/datapoint/{datapoint_id}":{"get":{"tags":["Datapoint"],"summary":"Datapoint details","description":"Returns the details of a datapoint — including category, entity, data type, unit — along with the conditions/operators that can be applied to it when defining an Alert Rule.","operationId":"getDatapointDetails","parameters":[{"name":"datapoint_id","in":"path","required":true,"schema":{"type":"integer","title":"Datapoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatapointDetailsModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/custom-tag":{"get":{"tags":["Custom Tags"],"summary":"Tag list","description":"Retrieves all Tags available in the account, including their metadata and usage counts.","operationId":"getCustomTags","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTagListResponseModel"}}}}}},"post":{"tags":["Custom Tags"],"summary":"Tag creation","description":"Creates a new Tag.","operationId":"createCustomTag","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTagModel"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/custom-tag/{custom_tag_id}":{"put":{"tags":["Custom Tags"],"summary":"Tag edit","description":"Updates one or more properties of an existing Tag.","operationId":"editCustomTag","parameters":[{"name":"custom_tag_id","in":"path","required":true,"schema":{"type":"integer","title":"Custom Tag Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTagModel"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Custom Tags"],"summary":"Tag deletion","description":"Deletes a Tag and removes it from Collectors and Devices.","operationId":"deleteCustomTag","parameters":[{"name":"custom_tag_id","in":"path","required":true,"schema":{"type":"integer","title":"Custom Tag Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organization":{"get":{"tags":["Organizations"],"summary":"List Organizations","description":"Returns all Organizations for an account, including name, Organization ID, and associated Collectors. Supports filtering by name, Collector, or Organization ID (external reference).","operationId":"listOrganizations","parameters":[{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by Organization name (case-insensitive substring)","title":"Name"},"description":"Filter by Organization name (case-insensitive substring)"},{"name":"collector_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter to the Organization the given Collector is bound to","title":"Collector Id"},"description":"Filter to the Organization the given Collector is bound to"},{"name":"external_reference","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by exact Organization ID (external reference)","title":"External Reference"},"description":"Filter by exact Organization ID (external reference)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationResponse"},"title":"Response Listorganizations"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Organizations"],"summary":"Create Organization","description":"Creates a new Organization with a name and an optional Organization ID.","operationId":"createOrganization","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organization/{organization_id}":{"get":{"tags":["Organizations"],"summary":"Get Organization Details","description":"Returns the complete details of a specific Organization, including name, Organization ID, and associated Collectors.","operationId":"getOrganization","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Organizations"],"summary":"Update Organization","description":"Updates one or more fields of an existing Organization, such as name or Organization ID.","operationId":"editOrganization","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Organizations"],"summary":"Delete Organization","description":"Deletes an Organization from an account.","operationId":"deleteOrganization","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"confirm_unlink_collectors","in":"query","required":false,"schema":{"type":"boolean","description":"Acknowledge that bound Collectors will be unlinked (not deleted). Required when the Organization has associated Collectors.","default":false,"title":"Confirm Unlink Collectors"},"description":"Acknowledge that bound Collectors will be unlinked (not deleted). Required when the Organization has associated Collectors."}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organization/{organization_id}/agent/{agent_id}/binding":{"post":{"tags":["Organizations"],"summary":"Apply Organization to Collector","description":"Associates a Collector with an Organization.","operationId":"bindCollectorToOrganization","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Organizations"],"summary":"Remove Organization from Collector","description":"Removes the association between a Collector and an Organization.","operationId":"unbindCollectorFromOrganization","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organization/{organization_id}/contact":{"get":{"tags":["Organizations"],"summary":"List Organization Contacts","description":"Returns all contacts of an Organization.","operationId":"listOrganizationContacts","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationContactResponse"},"title":"Response Listorganizationcontacts"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Organizations"],"summary":"Create Organization Contact","description":"Creates a new contact for an Organization with a name, email and optional phone numbers.","operationId":"createOrganizationContact","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationContactRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationContactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organization/{organization_id}/contact/{contact_id}":{"get":{"tags":["Organizations"],"summary":"Get Organization Contact Details","description":"Returns the details of a specific Organization contact.","operationId":"getOrganizationContact","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationContactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Organizations"],"summary":"Update Organization Contact","description":"Updates one or more fields of an existing Organization contact.","operationId":"editOrganizationContact","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationContactRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Organizations"],"summary":"Delete Organization Contact","description":"Deletes a contact from an Organization.","operationId":"deleteOrganizationContact","parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"integer","title":"Organization Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"integer","title":"Contact Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/rbac/member":{"get":{"tags":["Access Management"],"summary":"User list","description":"List all RBAC Users with their details.","operationId":"getUsers","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadUsersResponse"}}}}}},"post":{"tags":["Access Management"],"summary":"User creation","description":"Create a new RBAC User.","operationId":"createUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserRequestBackend"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/rbac/member/{member_id}":{"get":{"tags":["Access Management"],"summary":"User","description":"Retrieve RBAC User details by User ID.","operationId":"getUser","parameters":[{"name":"member_id","in":"path","required":true,"schema":{"type":"integer","title":"Member Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UserWithDetails"},{"type":"null"}],"title":"Response Getuser"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Access Management"],"summary":"User edit","description":"Update an RBAC User by user ID. Note: User groups are replaced by those provided in the request; omit required_authentication_type to reset the User's required authentication type.","operationId":"editUser","parameters":[{"name":"member_id","in":"path","required":true,"schema":{"type":"integer","title":"Member Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequestBackend"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Access Management"],"summary":"User deletion","description":"Delete an RBAC User by user ID.","operationId":"deleteUser","parameters":[{"name":"member_id","in":"path","required":true,"schema":{"type":"integer","title":"Member Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/rbac/user-group":{"get":{"tags":["Access Management"],"summary":"User group list","description":"List all RBAC User groups with their details.","operationId":"getUserGroups","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadUserGroupsResponse"}}}}}},"post":{"tags":["Access Management"],"summary":"User group creation","description":"Create a new RBAC User group.","operationId":"createUserGroup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserGroupRequest"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/rbac/user-group/{user_group_id}":{"get":{"tags":["Access Management"],"summary":"User group","description":"Retrieve RBAC User group details by user group ID.","operationId":"getUserGroup","parameters":[{"name":"user_group_id","in":"path","required":true,"schema":{"type":"integer","title":"User Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ReadUserGroupDataResponseBackend"},{"type":"null"}],"title":"Response Getusergroup"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Access Management"],"summary":"User group edit","description":"Update an RBAC User group by user group ID. Note: Users and roles are replaced by those provided in the request.","operationId":"editUserGroup","parameters":[{"name":"user_group_id","in":"path","required":true,"schema":{"type":"integer","title":"User Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserGroupRequest"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Access Management"],"summary":"User group deletion","description":"Delete an RBAC User group by user group ID.","operationId":"deleteUserGroup","parameters":[{"name":"user_group_id","in":"path","required":true,"schema":{"type":"integer","title":"User Group Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/rbac/role":{"get":{"tags":["Access Management"],"summary":"Role list","description":"List all RBAC roles and associated user groups.","operationId":"getRoles","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadRolesResponseBackend"}}}}}}},"/rbac/role/{role_id}":{"get":{"tags":["Access Management"],"summary":"Role","description":"Retrieve a Role and its Permissions. Note: When 'is_applied_to_all_entities' is true, 'entity_ids' is omitted.","operationId":"getRole","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ReadRoleDataResponseBackend"},{"type":"null"}],"title":"Response Getrole"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent":{"get":{"tags":["Collector"],"summary":"List collectors","description":"Returns the list of collectors accessible by the user.","operationId":"listAgents","parameters":[{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Page Size"}},{"name":"page_number","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Page Number"}},{"name":"display_name","in":"query","required":false,"schema":{"type":"string","title":"Display Name"}},{"name":"team_name","in":"query","required":false,"schema":{"type":"string","title":"Team Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentResponseModel"},"title":"Response Listagents"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"summary":"Collectors count","description":"Counts the collectors.","tags":["Collector"],"parameters":[{"name":"display_name","required":false,"in":"query","description":"Consider only collectors with `display_name` containing the string (case insensitive)","schema":{"type":"string"}},{"name":"team_name","required":false,"in":"query","description":"Filters by team name (companies only)","schema":{"type":"string"}}],"operationId":"countAgents","responses":{"204":{"description":"The number of collectors matching the filtering criteria","headers":{"X-Entities-Count":{"schema":{"type":"integer","format":"int32"},"description":"The number of collectors matching the filtering criteria"}}}}}},"/agent/{agent_id}":{"get":{"tags":["Collector"],"summary":"Collector details","description":"Returns the details of a collector.","operationId":"getAgent","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentDetailResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Collector deletion","description":"Deletes a collector.","tags":["Collector"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"deleteAgent","responses":{"204":{"description":""}}}},"/agent/{agent_id}/network/interfaces":{"get":{"tags":["Network Configuration"],"summary":"Monitored networks","description":"Returns the networks monitored by the collector.","operationId":"getAgentInterfaces","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentInterfacesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/service-port/{service_port_protocol}":{"get":{"tags":["Network Configuration"],"summary":"Service port","description":"Returns the collector-level custom port configured for a service protocol.","operationId":"getAgentServicePort","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"service_port_protocol","in":"path","required":true,"schema":{"type":"string","title":"Service Port Protocol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePortResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Network Configuration"],"summary":"Service port update","description":"Sets the collector-level custom port used for a service protocol.","operationId":"setAgentServicePort","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"service_port_protocol","in":"path","required":true,"schema":{"type":"string","title":"Service Port Protocol"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePortWriteModel"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Network Configuration"],"summary":"Service port removal","description":"Removes the collector-level custom port for a service protocol, reverting to the default.","operationId":"deleteAgentServicePort","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"service_port_protocol","in":"path","required":true,"schema":{"type":"string","title":"Service Port Protocol"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/datapoint":{"get":{"tags":["Datapoint"],"summary":"List Collector Entity Datapoints","description":"Returns the datapoints available for Alert Rules on a Collector.","operationId":"listCollectorDatapoints","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DatapointModel"},"title":"Response Listcollectordatapoints"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/alert-rule":{"get":{"tags":["Alert Rule"],"summary":"List Alert Rules applied to a Collector","description":"Returns the Alert Rules currently applied to a Collector. Returns the same response schema as List Alert Rules.","operationId":"listAgentAlertRules","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertRuleModel"},"title":"Response Listagentalertrules"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/custom-tag/binding":{"get":{"tags":["Custom Tags"],"summary":"Collector Tag list","description":"Retrieves all Tags assigned to a specific Collector.","operationId":"getCollectorCustomTagBindings","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceTagResponseModel"},"title":"Response Getcollectorcustomtagbindings"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/custom-tag/{custom_tag_id}/binding":{"post":{"tags":["Custom Tags"],"summary":"Collector Tag assignment","description":"Assigns a Tag to a Collector.","operationId":"createCollectorCustomTagBinding","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"custom_tag_id","in":"path","required":true,"schema":{"type":"integer","title":"Custom Tag Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Custom Tags"],"summary":"Collector Tag removal","description":"Removes a Tag from a Collector.","operationId":"deleteCollectorCustomTagBinding","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"custom_tag_id","in":"path","required":true,"schema":{"type":"integer","title":"Custom Tag Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/device":{"get":{"tags":["Device"],"summary":"Collector devices list","description":"Returns all the devices of a collector. On per-device licensing collectors, only the managed devices are included.","operationId":"listDevices","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"show_hidden","in":"query","required":false,"schema":{"type":"boolean","description":"Whether to include hidden devices in the returned list. Default is False","default":false,"title":"Show Hidden"},"description":"Whether to include hidden devices in the returned list. Default is False"},{"name":"show_excluded","in":"query","required":false,"schema":{"type":"boolean","description":"Whether to include excluded devices in the returned list. Default is True","default":true,"title":"Show Excluded"},"description":"Whether to include excluded devices in the returned list. Default is True"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/LocalIpDevice"},{"$ref":"#/components/schemas/ExternalIpDevice"},{"$ref":"#/components/schemas/SubnetIpDevice"},{"$ref":"#/components/schemas/DummyDevice"}],"discriminator":{"propertyName":"protocol","mapping":{"IP":"#/components/schemas/LocalIpDevice","IP_EXTERNAL":"#/components/schemas/ExternalIpDevice","IP_SUBNET":"#/components/schemas/SubnetIpDevice","DUMMY":"#/components/schemas/DummyDevice"}}},"title":"Response Listdevices"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Device"],"summary":"Bulk offline devices deletion","description":"Deletes all the DOWN devices of *IP* protocol.","operationId":"deleteDownDevices","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/device/{device_id}":{"get":{"tags":["Device"],"summary":"Device details","description":"Returns the details of a device.","operationId":"getDevice","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/LocalIpDevice"},{"$ref":"#/components/schemas/ExternalIpDevice"},{"$ref":"#/components/schemas/SubnetIpDevice"},{"$ref":"#/components/schemas/DummyDevice"}],"discriminator":{"propertyName":"protocol","mapping":{"IP":"#/components/schemas/LocalIpDevice","IP_EXTERNAL":"#/components/schemas/ExternalIpDevice","IP_SUBNET":"#/components/schemas/SubnetIpDevice","DUMMY":"#/components/schemas/DummyDevice"}},"title":"Response Getdevice"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Device"],"summary":"Device deletion","description":"Deletes a device, whether ONLINE, OFFLINE or DOWN. If a device is deleted while online, it may reappear when rediscovered automatically.","operationId":"deleteDevice","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/device/{device_id}/datapoint":{"get":{"tags":["Datapoint"],"summary":"List Device Entity Datapoints","description":"Returns the datapoints available for Alert Rules on Device.","operationId":"listDeviceDatapoints","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DatapointModel"},"title":"Response Listdevicedatapoints"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/device/{device_id}/alert-rule":{"get":{"tags":["Alert Rule"],"summary":"List Alert Rules applied to a Device","description":"Returns the Alert Rules currently applied to a Device. Returns the same response schema as List Alert Rules.","operationId":"listDeviceAlertRules","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertRuleModel"},"title":"Response Listdevicealertrules"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/device/{device_id}/custom-tag/binding":{"get":{"tags":["Custom Tags"],"summary":"Device Tag list","description":"Retrieves all Tags assigned to a specific Device.","operationId":"getDeviceCustomTagBindings","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceTagResponseModel"},"title":"Response Getdevicecustomtagbindings"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/device/{device_id}/custom-tag/{custom_tag_id}/binding":{"post":{"tags":["Custom Tags"],"summary":"Device Tag assignment","description":"Assigns a Tag to a Device.","operationId":"createDeviceCustomTagBinding","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}},{"name":"custom_tag_id","in":"path","required":true,"schema":{"type":"integer","title":"Custom Tag Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Custom Tags"],"summary":"Device Tag removal","description":"Removes a Tag from a Device.","operationId":"deleteDeviceCustomTagBinding","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}},{"name":"device_id","in":"path","required":true,"schema":{"type":"integer","title":"Device Id"}},{"name":"custom_tag_id","in":"path","required":true,"schema":{"type":"integer","title":"Custom Tag Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/device/monitoring-state/unmanaged":{"get":{"tags":["Device"],"summary":"Unmanaged devices list","description":"Returns the list of unmanaged Devices for a specific Collector. This endpoint returns a limited set of data to support per-device licensing flows. The list of managed Devices can be retrieved using the listDevices API.","operationId":"listUnmanagedDevices","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UnmanagedDeviceResponseModel"},"title":"Response Listunmanageddevices"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agent/{agent_id}/activity-log":{"get":{"summary":"Activity log","description":"Returns the activity log of a collector.","tags":["Collector"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"from","required":false,"in":"query","description":"The start time of the time series. Default value is one week","schema":{"type":"string","format":"date-time"}},{"name":"to","required":false,"in":"query","description":"The end time of the time series. Default value is now","schema":{"type":"string","format":"date-time"}},{"name":"type","required":false,"in":"query","description":"If present, only the specified type(s) will be fetched.","schema":{"type":"string","enum":["note","agent_alert_level_set","agent_alert_resume","rtd_session_start","cresnet_node_reboot","device_reboot","firmware_update_start","applications_terminate","configuration_restore","factory_reset","network_configuration_change","custom_driver_execute","remote_session_start","remote_session_terminate","remote_session_limit_reached","vpn_session_start","vpn_session_terminate","chat_started","chat_resolved","operator_joined","operator_left","power_on","power_off","power_cycle","camera_snapshot","camera_streaming_start","configuration_management_status_change"]}}],"operationId":"getAgentActivityLog","responses":{"200":{"description":"List of activity log entries","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ActivityLog"}}}}}}}},"/agent/{agent_id}/connection/consumption":{"get":{"summary":"Remote connections consumption","description":"Returns the remote connection consumption on the given collector.","tags":["Remote Connection"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getConnectionConsumption","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionConsumption"}}}}}}},"/agent/{agent_id}/connection/vpn-session":{"get":{"summary":"Active VPN connections list","description":"Returns the active VPN connections for the collector.","tags":["Remote Connection"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getAgentVPNActiveConnections","responses":{"200":{"description":"Collector VPN Connection information","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentVPNActiveConnection"}}}}}}},"post":{"summary":"VPN connection creation","description":"Creates a temporary VPN server on the collector and returns the vpn configuration file content. Current consumption and consumption limits can be retrieved with a call to <a href='#getconnectionconsumption'> getConnectionConsumption</a> endpoint.","tags":["Remote Connection"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"createAgentVPNConnection","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVPNConnection"}}}},"responses":{"201":{"description":"OpenVPN Configuration file content","content":{"text/plain":{"schema":{"type":"string","format":"binary"}}}}}}},"/agent/{agent_id}/connection/vpn-session/{vpn_session_id}":{"delete":{"summary":"Active VPN connection closure","description":"Closes an active VPN connection session for the collector.","tags":["Remote Connection"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"vpn_session_id","required":true,"in":"path","description":"Session ID","schema":{"type":"integer","format":"int32"}}],"operationId":"deleteAgentVPNConnection","responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/{field}":{"put":{"summary":"Device property change","description":"Changes a proprety of the device.","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"field","required":true,"in":"path","description":"The field to update - for the type and valid values see the description of the corresponding output parameter <a href=\"#tocSabstractdevice\">here</a>","schema":{"type":"string","enum":["importance","user_data/model","user_data/type","user_data/name","user_data/vendor","details/room","details/zone","details/serial","details/notes"]}}],"operationId":"editDevice","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"string"}}},"description":"The value that the field will change to"},"responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/action/power":{"get":{"summary":"Device power management actions","description":"Returns the power management actions available on the device at the current moment. See <a href='#schemadevicepoweraction'> DevicePowerAction </a> schema for further details.","tags":["Power Management"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getDevicePowerActions","responses":{"200":{"description":"Returns a JSON object indicating the current availability of each power action on the device ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevicePowerAction"}}}}}}},"/agent/{agent_id}/device/{device_id}/action/power/{field}":{"post":{"summary":"Device power action operation","description":"Performs the action on the device, according to the specified {<b> field </b>} value. The availability of such operations can be determined with a call to <a href='#getdevicepoweractions'> getDevicePowerActions </a>  operation.","tags":["Power Management"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"field","required":true,"in":"path","description":"Specifies the power action to perform","schema":{"type":"string","enum":["on","off","cycle","software-reboot"]}}],"operationId":"powerActionOnDevice","responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/application":{"get":{"summary":"Device applications list","description":"Returns the list of applications of the device. The feature is only available on collectors under the Enterprise Plan.","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"page_size","required":false,"in":"query","description":"The maximum number of items to return. Min value is 1. Max value is 1000. Default value is 100","schema":{"type":"integer","format":"int32","maximum":1000,"minimum":1,"default":100}},{"name":"page_number","required":false,"in":"query","description":"The requested page number, 0-indexed. Default value is 0","schema":{"type":"integer","format":"int32","minimum":0,"default":0}},{"name":"name","required":false,"in":"query","description":"Allows filtering by `name`","schema":{"type":"string"}},{"name":"device_ids","required":false,"in":"query","description":"Allows filtering by `device_ids`","schema":{"type":"string"}}],"operationId":"listDeviceApplications","responses":{"200":{"description":"The list of applications of the device","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceApplication"}}}}}}},"head":{"summary":"Device applications count","description":"Counts the applications. The feature is only available on collectors under the Enterprise Plan.","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"name","required":false,"in":"query","description":"Allows filtering by `name`","schema":{"type":"string"}},{"name":"device_ids","required":false,"in":"query","description":"Allows filtering by `device_ids`","schema":{"type":"string"}}],"operationId":"countDeviceApplications","responses":{"204":{"description":"Returns the application count","headers":{"X-Entities-Count":{"schema":{"type":"integer","format":"int32"},"description":"Returns the application count"}}}}}},"/agent/{agent_id}/device/{device_id}/configuration-management/backup":{"post":{"summary":"Device configuration backup execution","description":"Sends a command to backup a device configuration.","tags":["Configuration Management"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"backupDeviceConfiguration","responses":{"202":{"description":"Command has been sent"}}}},"/agent/{agent_id}/device/{device_id}/configuration-management/history":{"get":{"summary":"Device configurations list","description":"Returns the list of available device configurations.","tags":["Configuration Management"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"deviceConfigurationHistoryList","responses":{"200":{"description":"The list of saved device configurations","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceConfigurationMetadata"}}}}}}},"post":{"summary":"Device configuration creation","description":"Creates a device configuration backup in the configuration history.","tags":["Configuration Management"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"createDeviceConfiguration","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceConfigurationCreate"}}}},"responses":{"202":{"description":"Configuration backup has been created"}}}},"/agent/{agent_id}/device/{device_id}/configuration-management/history/{configuration_timestamp}?)":{"get":{"summary":"Device configuration detail","description":"Returns the details of a device configuration entry.","tags":["Configuration Management"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"configuration_timestamp","required":true,"in":"path","description":"Configuration timestamp (\"latest\" or YYYY-MM-DDTHH:MM:SS+00:00)","schema":{"type":"string","pattern":"latest|\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\+00:00)?"}}],"operationId":"getDeviceConfiguration","responses":{"200":{"description":"The device's configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceConfiguration"}}}}}}},"/agent/{agent_id}/device/{device_id}/connection":{"post":{"summary":"Device secure connection creation","description":"Establishes a direct secure connection to the `device`. Current consumption and consumption limits can be retrieved with a call to <a href='#getconnectionconsumption'> getConnectionConsumption</a> endpoint.","tags":["Remote Connection"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"connectToDevice","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceConnection"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionSession"}}}}}}},"/agent/{agent_id}/device/{device_id}/credentials":{"put":{"summary":"Device credentials update","description":"Sets the device credentials to perform extended discovery. This operation will affect the <b> authentication_status </b> of the device.","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"setCredentials","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceCredentials"}}},"description":"device credentials payload"},"responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/eye/snmp":{"get":{"summary":"SNMP sensors list","description":"Returns the list of configured SNMP sensors.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"listEyesSNMP","responses":{"200":{"description":"The list of configured SNMP sensors for the device and their latest values","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SNMPDomotzEye"}}}}}}},"post":{"summary":"SNMP sensor creation","description":"Creates a new SNMP sensors.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"createEyeSNMP","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SNMPDomotzEyeCreation"}}}},"responses":{"201":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/eye/snmp/{sensor_id}":{"delete":{"summary":"SNMP sensor deletion","description":"Deletes the SNMP sensor.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"sensor_id","required":true,"in":"path","description":"SNMP Sensor ID","schema":{"type":"integer","format":"int32"}}],"operationId":"deleteEyeSNMP","responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/eye/snmp/{sensor_id}/function":{"get":{"summary":"SNMP sensor trigger functions list","description":"Returns the list of functions for the SNMP sensor trigger.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"sensor_id","required":true,"in":"path","description":"SNMP Sensor ID","schema":{"type":"integer","format":"int32"}}],"operationId":"listEyesSNMPTriggerFunction","responses":{"200":{"description":"The list of functions that can be used by the trigger","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SNMPDomotzEyeTriggerFunction"}}}}}}}},"/agent/{agent_id}/device/{device_id}/eye/snmp/{sensor_id}/history":{"get":{"summary":"SNMP sensor time series","description":"Returns the time series of the SNMP sensor collected samples.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"sensor_id","required":true,"in":"path","description":"SNMP Sensor ID","schema":{"type":"integer","format":"int32"}},{"name":"from","required":false,"in":"query","description":"The start time of the time series. Default value is one week","schema":{"type":"string","format":"date-time"}},{"name":"to","required":false,"in":"query","description":"The end time of the time series. Default value is now","schema":{"type":"string","format":"date-time"}}],"operationId":"getEyesSNMPHistory","responses":{"200":{"description":"The list of SNMP sensor samples","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceEyeSNMPHistorySample"}}}}}}}},"/agent/{agent_id}/device/{device_id}/eye/snmp/{sensor_id}/trigger":{"get":{"summary":"SNMP sensor triggers list","description":"Returns the list of triggers for the SNMP Sensor.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"sensor_id","required":true,"in":"path","description":"SNMP Sensor ID","schema":{"type":"integer","format":"int32"}}],"operationId":"listEyesSNMPTrigger","responses":{"200":{"description":"The list of triggers associated to the sensor","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SNMPDomotzEyeTrigger"}}}}}}},"post":{"summary":"SNMP sensor trigger creation","description":"Creates a new SNMP Trigger for the sensor. \n\nFor instance, to receive a notification when the value of the sensor is above a threshold x, it is required to add a trigger specifying the function_id = 2 (is greater than) and the operand value equals to [x]. \nThe function_id value can be retrieved with the listEyesSNMPTriggerFunction call. \nTo activate the alert, it is required to call createEyeSNMPTriggerAlert after the trigger creation.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"sensor_id","required":true,"in":"path","description":"SNMP Sensor ID","schema":{"type":"integer","format":"int32"}}],"operationId":"createEyeSNMPTrigger","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SNMPDomotzSnmpTriggerCreation"}}}},"responses":{"201":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/eye/snmp/{sensor_id}/trigger/{trigger_id}":{"delete":{"summary":"SNMP sensor trigger deletion","description":"Deletes the SNMP Trigger for the sensor.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"sensor_id","required":true,"in":"path","description":"SNMP Sensor ID","schema":{"type":"integer","format":"int32"}},{"name":"trigger_id","required":true,"in":"path","description":"SNMP Sensor Trigger ID","schema":{"type":"integer","format":"int32"}}],"operationId":"deleteEyeSNMPTrigger","responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/eye/snmp/{sensor_id}/trigger/{trigger_id}/alert/{medium_name}":{"post":{"summary":"SNMP sensor trigger alert creation","description":"Add an alert to a SNMP Trigger.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"sensor_id","required":true,"in":"path","description":"SNMP Sensor ID","schema":{"type":"integer","format":"int32"}},{"name":"trigger_id","required":true,"in":"path","description":"SNMP Sensor Trigger ID","schema":{"type":"integer","format":"int32"}},{"name":"medium_name","required":true,"in":"path","description":"the name of the medium","schema":{"type":"string","enum":["email","mobile"]}}],"operationId":"createEyeSNMPTriggerAlert","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SNMPDomotzSnmpTriggerAlertCreation"}}}},"responses":{"201":{"description":""}}},"delete":{"summary":"SNMP sensor trigger alert deletion","description":"Deletes the alert for thee SNMP Trigger.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"sensor_id","required":true,"in":"path","description":"SNMP Sensor ID","schema":{"type":"integer","format":"int32"}},{"name":"trigger_id","required":true,"in":"path","description":"SNMP Sensor Trigger ID","schema":{"type":"integer","format":"int32"}},{"name":"medium_name","required":true,"in":"path","description":"the name of the medium","schema":{"type":"string","enum":["email","mobile"]}}],"operationId":"deleteEyeSNMPTriggerAlert","responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/eye/tcp":{"get":{"summary":"TCP sensors list","description":"Returns the list of configured TCP sensors.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"listEyesTCP","responses":{"200":{"description":"The list of configured TCP sensors for the device and their latest values","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TCPDomotzEye"}}}}}}},"post":{"summary":"TCP sensor creation","description":"Creates a new TCP sensors.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"createEyeTCP","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TCPDomotzEyeCreation"}}}},"responses":{"201":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/eye/tcp/{service_id}":{"delete":{"summary":"TCP sensor deletion","description":"Deletes the TCP sensor.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"service_id","required":true,"in":"path","description":"TCP Sensor ID","schema":{"type":"integer","format":"int32"}}],"operationId":"deleteEyeTCP","responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/history/network/event":{"get":{"summary":"Device state change history","description":"Returns the time series of the state changes of the device.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"from","required":false,"in":"query","description":"The start time of the time series. Default value is one week","schema":{"type":"string","format":"date-time"}},{"name":"to","required":false,"in":"query","description":"The end time of the time series. Default value is now","schema":{"type":"string","format":"date-time"}}],"operationId":"getDeviceStatusHistory","responses":{"200":{"description":"A time series","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceHistory"}}}}}}}},"/agent/{agent_id}/device/{device_id}/history/rtd":{"get":{"summary":"Round Trip Delay statistics history","description":"Returns the Round Trip Delay history for the device. Each item represents the statistical aggregate of a set of Round Trip Delay measurements.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"from","required":false,"in":"query","description":"The start time of the time series. Default value is one week","schema":{"type":"string","format":"date-time"}},{"name":"to","required":false,"in":"query","description":"The end time of the time series. Default value is now","schema":{"type":"string","format":"date-time"}}],"operationId":"getDeviceRTDHistory","responses":{"200":{"description":"Device RTD History","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceRTDHistorySample"}}}}}}}},"/agent/{agent_id}/device/{device_id}/inventory":{"get":{"summary":"Device inventory fields list","description":"Returns the device's inventory data.","tags":["Inventory Fields"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getDeviceInventory","responses":{"200":{"description":"The device's inventory, with the fields sorted alphabetically. Not set fields will be null","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceInventoryField"}}}}}}}},"/agent/{agent_id}/device/{device_id}/inventory/{inventory_field}":{"put":{"summary":"Device inventory field update","description":"Sets the value of an Inventory field for the device, a value can't be set to `null`.","tags":["Inventory Fields"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"inventory_field","required":true,"in":"path","description":"Field identifier, unique within the Inventory","schema":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,24}$"}}],"operationId":"setDeviceInventoryFieldValue","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"string","maxLength":255}}}},"responses":{"204":{"description":""}}},"delete":{"summary":"Device inventory field deletion","description":"Deletes the Inventory field for the device.","tags":["Inventory Fields"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"inventory_field","required":true,"in":"path","description":"Field identifier, unique within the Inventory","schema":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,24}$"}}],"operationId":"deleteDeviceInventoryField","responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/monitoring-state":{"put":{"summary":"Device monitoring state update","description":"Sets the monitoring state of a device to either managed or unmanaged. This endpoint is available only for agents using per-device licensing.","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"updateDeviceMonitoringState","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceMonitoringState"}}},"description":"The value that the device monitoring state will assume"},"responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/multimedia/camera/snapshot":{"get":{"summary":"Take camera snapshot","description":"Take a snapshot of the camera. Internally, a device connection is established. Current consumption and consumption limits can be retrieved with a call to <a href='#getconnectionconsumption'> getConnectionConsumption</a> endpoint.","tags":["Multimedia"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"onvifSnapshot","responses":{"200":{"description":"A binary image","content":{"image/*":{"schema":{"type":"string","format":"binary"}}}}}}},"/agent/{agent_id}/device/{device_id}/power-outlet":{"get":{"summary":"Device power outlets list","description":"Returns a list of the power outlets discovered on the device.","tags":["Power Management"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getDeviceOutlets","responses":{"200":{"description":"A list of outlet objects","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceOutlet"}}}}}}}},"/agent/{agent_id}/device/{device_id}/power-outlet/{power_outlet_id}":{"put":{"summary":"Power outlet name update","description":"Update the power outlet with the specified custom name.","tags":["Power Management"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"power_outlet_id","required":true,"in":"path","description":"Outlet ID","schema":{"type":"string"}}],"operationId":"updateDeviceOutlet","requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceOutletUpdate"}}}},"responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/power-outlet/{power_outlet_id}/action/{action}":{"post":{"summary":"Power outlet action operation","description":"Trigger an action on a power outlet.","tags":["Power Management"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"power_outlet_id","required":true,"in":"path","description":"Outlet ID","schema":{"type":"string"}},{"name":"action","required":true,"in":"path","description":"Action to perform on the outlet","schema":{"type":"string","enum":["on","off","cycle"]}}],"operationId":"triggerOutletAction","responses":{"202":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/power-outlet/{power_outlet_id}/attach/{attached_device_id}":{"post":{"summary":"Power outlet device attachment","description":"Attach a device to a power outlet.","tags":["Power Management"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"power_outlet_id","required":true,"in":"path","description":"Outlet ID","schema":{"type":"string"}},{"name":"attached_device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"attachDeviceToOutlet","responses":{"204":{"description":""}}},"delete":{"summary":"Power outlet device detachment","description":"Detach a device from a power outlet.","tags":["Power Management"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"power_outlet_id","required":true,"in":"path","description":"Outlet ID","schema":{"type":"string"}},{"name":"attached_device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"detachDeviceFromOutlet","responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/snmp-authentication":{"get":{"summary":"Device SNMP authentication details","description":"Returns the SNMP authentication info.","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getSNMPAuthentication","responses":{"200":{"description":"The SNMP authentication info for the device","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SNMPDomotzAuthentication"}}}}}},"put":{"summary":"Device SNMP authentication update","description":"Sets the SNMP authentication info. <ul><li>_snmp_read_community_ and _snmp_write_community_ are  relevant only for _V1_ and _V2_. </li><li>_V3_NO_AUTH_ requires a valid _username_. </li><li>_V3_AUTH_NO_PRIV_ requires _username_, _authentication_protocol_ and _authentication_key_. </li><li>_V3_AUTH_PRIV_ requires _username_, _authentication_protocol_, _authentication_key_, _encryption_protocol_ and _encryption_key_.</li></ul>","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"setSNMPAuthentication","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SNMPDomotzAuthentication"}}}},"responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/snmp-community":{"put":{"summary":"Device SNMP community update","description":"Saves a snmp community (read, optionally write) on device. _Deprecated_, please use <a href='#setsnmpauthentication'> setSNMPAuthentication </a>.","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"setSnmpCommunity","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceSnmpCommunity"}}},"description":"The value that the snmp community entries will change to"},"responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/{device_id}/uptime":{"get":{"summary":"Device uptime","description":"Returns the uptime of the device.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"from","required":false,"in":"query","description":"The start time of the time series. Default value is one week","schema":{"type":"string","format":"date-time"}},{"name":"to","required":false,"in":"query","description":"The end time of the time series. Default value is now","schema":{"type":"string","format":"date-time"}}],"operationId":"getDeviceUptime","responses":{"200":{"description":"The uptime of the device","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceUptime"}}}}}}},"/agent/{agent_id}/device/{device_id}/variable":{"get":{"summary":"Device variables list","description":"Returns the list of device variables.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"page_size","required":false,"in":"query","description":"The maximum number of items to return. Min value is 1. Max value is 1000. Default value is 100","schema":{"type":"integer","format":"int32","maximum":1000,"minimum":1,"default":100}},{"name":"page_number","required":false,"in":"query","description":"The requested page number, 0-indexed. Default value is 0","schema":{"type":"integer","format":"int32","minimum":0,"default":0}},{"name":"value","required":false,"in":"query","description":"Allows filtering by `value`","schema":{"type":"string"}},{"name":"path","required":false,"in":"query","description":"Allows filtering by `path`","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","description":"Allows ordering by `path`, `id`, `value`, `label`, `value_update_time`, `creation_time`","schema":{"type":"string","enum":["path","id","value","label","value_update_time","creation_time"]}},{"name":"sorting_direction","required":false,"in":"query","description":"The default is `asc`","schema":{"type":"string","enum":["asc","desc"]}},{"name":"has_history","required":false,"in":"query","description":"Allows filtering by `has_history` field","schema":{"type":"boolean"}},{"name":"metric","required":false,"in":"query","description":"Allows filtering by `metric`","schema":{"type":"string"}}],"operationId":"listDeviceVariables","responses":{"200":{"description":"The list of device variables","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceVariable"}}}}}}},"head":{"summary":"Device variables count","description":"Returns device variables count.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"value","required":false,"in":"query","description":"Allows filtering by `value`","schema":{"type":"string"}},{"name":"path","required":false,"in":"query","description":"Allows filtering by `path`","schema":{"type":"string"}},{"name":"has_history","required":false,"in":"query","description":"Allows filtering by `has_history` field","schema":{"type":"boolean"}},{"name":"metric","required":false,"in":"query","description":"Allows filtering by `metric`","schema":{"type":"string"}}],"operationId":"countDeviceVariables","responses":{"204":{"description":"The device variables count","headers":{"X-Entities-Count":{"schema":{"type":"integer","format":"int32"},"description":"The device variables count"}}}}}},"/agent/{agent_id}/device/{device_id}/variable/{variable_id}/history":{"get":{"summary":"Device variable history","description":"Returns the device variable history.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}},{"name":"variable_id","required":true,"in":"path","description":"Variable ID","schema":{"type":"integer","format":"int32"}},{"name":"from","required":false,"in":"query","description":"The start time of the time series. Default value is one week","schema":{"type":"string","format":"date-time"}},{"name":"to","required":false,"in":"query","description":"The end time of the time series. Default value is now","schema":{"type":"string","format":"date-time"}}],"operationId":"getVariableHistory","responses":{"200":{"description":"The device variable's history, a list of dictionaries, each composed by the timestamp (a datetime) and the value (a string)","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VariableHistorySample"}}}}}}}},"/agent/{agent_id}/device/{device_id}/visibility":{"delete":{"summary":"Hide a device","description":"Hides a device (available only on DOWN devices).","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"hideDevice","responses":{"204":{"description":""}}}},"/agent/{agent_id}/device/application":{"get":{"summary":"Collector device applications list","description":"Returns the list of applications of all the devices belonging to the collector. The feature is only available on collectors under the Enterprise Plan.","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"page_size","required":false,"in":"query","description":"The maximum number of items to return. Min value is 1. Max value is 1000. Default value is 100","schema":{"type":"integer","format":"int32","maximum":1000,"minimum":1,"default":100}},{"name":"page_number","required":false,"in":"query","description":"The requested page number, 0-indexed. Default value is 0","schema":{"type":"integer","format":"int32","minimum":0,"default":0}},{"name":"name","required":false,"in":"query","description":"Allows filtering by `name`","schema":{"type":"string"}},{"name":"device_ids","required":false,"in":"query","description":"Allows filtering by `device_ids`","schema":{"type":"string"}}],"operationId":"listAgentDeviceApplications","responses":{"200":{"description":"The list of applications of all the devices belonging to the collector","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentDeviceApplication"}}}}}}},"head":{"summary":"Collector device applications count","description":"Counts the applications of all devices belonging to the collector. The feature is only available on collectors under the Enterprise Plan.","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"name","required":false,"in":"query","description":"Allows filtering by `name`","schema":{"type":"string"}},{"name":"device_ids","required":false,"in":"query","description":"Allows filtering by `device_ids`","schema":{"type":"string"}}],"operationId":"countAgentDeviceApplications","responses":{"204":{"description":"Returns the application count","headers":{"X-Entities-Count":{"schema":{"type":"integer","format":"int32"},"description":"Returns the application count"}}}}}},"/agent/{agent_id}/device/external-host":{"post":{"summary":"External host creation","description":"Creates an external host.","tags":["Network Configuration"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"createExternalHost","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalHost"}}}},"responses":{"201":{"description":""}}}},"/agent/{agent_id}/device/eye/snmp":{"get":{"summary":"Collector SNMP sensors list","description":"Returns the list of configured SNMP sensors on the collector.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"listAgentEyesSNMP","responses":{"200":{"description":"The list of configured SNMP sensors on the collector","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SNMPDomotzAgentEye"}}}}}}}},"/agent/{agent_id}/device/eye/tcp":{"get":{"summary":"Collector TCP sensors list","description":"Returns the list of configured TCP sensors on the collector.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"listAgentEyesTCP","responses":{"200":{"description":"The list of configured TCP sensors on the collector and their latest values","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TCPDomotzEye"}}}}}}}},"/agent/{agent_id}/device/rtd":{"get":{"summary":"Round Trip Delay statistics","description":"Returns the Round Trip Delay statistics for all devices monitored by the collector. The aggregate values of _avg_min_, _avg_max_, _avg_median_ help to understand the baseline response time of a device in a weekly time frame, while _latest_median_ helps detecting a possible deviation from the baseline.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getAgentRTDStats","responses":{"200":{"description":"Devices RTD Statistics","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceRTDStatistics"}}}}}}}},"/agent/{agent_id}/device/variable":{"get":{"summary":"Collector device variables list","description":"Returns the list of all device variables of the collector.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"page_size","required":false,"in":"query","description":"The maximum number of items to return. Min value is 1. Max value is 1000. Default value is 100","schema":{"type":"integer","format":"int32","maximum":1000,"minimum":1,"default":100}},{"name":"page_number","required":false,"in":"query","description":"The requested page number, 0-indexed. Default value is 0","schema":{"type":"integer","format":"int32","minimum":0,"default":0}},{"name":"value","required":false,"in":"query","description":"Allows filtering by `value`","schema":{"type":"string"}},{"name":"path","required":false,"in":"query","description":"Allows filtering by `path`","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","description":"Allows ordering by `path`, `id`, `value`, `label`, `value_update_time`, `creation_time`, `device_id`","schema":{"type":"string","enum":["path","id","value","label","value_update_time","creation_time","device_id"]}},{"name":"sorting_direction","required":false,"in":"query","description":"The default is `asc`","schema":{"type":"string","enum":["asc","desc"]}},{"name":"has_history","required":false,"in":"query","description":"Allows filtering by `has_history` field","schema":{"type":"boolean"}},{"name":"metric","required":false,"in":"query","description":"Allows filtering by `metric`","schema":{"type":"string"}}],"operationId":"listAgentDeviceVariables","responses":{"200":{"description":"The list of all device variables of a collector","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentDeviceVariable"}}}}}}},"head":{"summary":"Collector device variables count","description":"Returns the device variables count of the collector.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"value","required":false,"in":"query","description":"Allows filtering by `value`","schema":{"type":"string"}},{"name":"path","required":false,"in":"query","description":"Allows filtering by `path`","schema":{"type":"string"}},{"name":"has_history","required":false,"in":"query","description":"Allows filtering by `has_history` field","schema":{"type":"boolean"}},{"name":"metric","required":false,"in":"query","description":"Allows filtering by `metric`","schema":{"type":"string"}}],"operationId":"countAgentDeviceVariables","responses":{"204":{"description":"The device variables count","headers":{"X-Entities-Count":{"schema":{"type":"integer","format":"int32"},"description":"The device variables count"}}}}}},"/agent/{agent_id}/eye-statistics":{"get":{"summary":"Sensors usage and limits","description":"Returns information about Domotz Sensors usage and limits.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"eyesUsageInfo","responses":{"200":{"description":"A data structure containing information about current Domotz Sensors usage and limits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomotzEyesUsageInformation"}}}}}}},"/agent/{agent_id}/history/network/event":{"get":{"summary":"Collector state change history","description":"Returns the time series of the state changes of the collector.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"from","required":false,"in":"query","description":"The start time of the time series. Default value is one week","schema":{"type":"string","format":"date-time"}},{"name":"to","required":false,"in":"query","description":"The end time of the time series. Default value is now","schema":{"type":"string","format":"date-time"}}],"operationId":"getAgentStatusHistory","responses":{"200":{"description":"A time series","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentHistory"}}}}}}}},"/agent/{agent_id}/history/network/speed":{"get":{"summary":"Internet Speed Test time series","description":"Returns the time series of the Internet Speed measurements taken from the collector, both in\ndownload and in upload.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"from","required":false,"in":"query","description":"The start time of the time series. Default value is one week","schema":{"type":"string","format":"date-time"}},{"name":"to","required":false,"in":"query","description":"The end time of the time series. Default value is now","schema":{"type":"string","format":"date-time"}}],"operationId":"getSpeedTestHistory","responses":{"200":{"description":"A time series","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NetworkSpeedSample"}}}}}}}},"/agent/{agent_id}/ip-conflict":{"get":{"summary":"Active IP conflicts","description":"Returns the list of active IP conflicts on a collector.","tags":["Collector"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getAgentIPConflicts","responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentIpConflict"}}}}}}}},"/agent/{agent_id}/metric-statistics":{"get":{"summary":"Metrics usage and limits","description":"Returns Domotz Sensors usage and limits.","tags":["Sensor"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"MetricUsageInfo","responses":{"200":{"description":"Current Domotz Sensors usage and limits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomotzMetricUsageInformation"}}}}}}},"/agent/{agent_id}/network/dhcp-device-discovery":{"put":{"summary":"DHCP device discovery setting","description":"Enable/disable the collector DHCP Device Discovery.","tags":["Network Configuration"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"setDHCPDeviceDiscovery","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DHCPDeviceDiscoverySetting"}}},"description":"Enable/disable the DHCP Device Discovery on the collector"},"responses":{"204":{"description":""}}}},"/agent/{agent_id}/network/excluded-device":{"get":{"summary":"Excluded devices list","description":"Returns all the excluded devices of a collector, i.e., devices present in Device Blacklist section.","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"listExcludedDevices","responses":{"200":{"description":"The list of all devices excluded from collector monitoring","content":{"application/json":{"schema":{"type":"array","items":{"discriminator":{"propertyName":"protocol","mapping":{"DUMMY":"#/components/schemas/DummyDevice","IP":"#/components/schemas/LocalIpDevice","IP_EXTERNAL":"#/components/schemas/ExternalIpDevice","IP_SUBNET":"#/components/schemas/SubnetIpDevice"}},"oneOf":[{"$ref":"#/components/schemas/DummyDevice"},{"$ref":"#/components/schemas/LocalIpDevice"},{"$ref":"#/components/schemas/ExternalIpDevice"},{"$ref":"#/components/schemas/SubnetIpDevice"}]}}}}}}}},"/agent/{agent_id}/network/excluded-device/{device_id}":{"post":{"summary":"Device exclusion","description":"Excludes a device from collector monitoring.","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"addExcludedDevice","responses":{"204":{"description":""}}},"delete":{"summary":"Device exclusion removal","description":"Removes a device from the excluded devices list.","tags":["Device"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"deleteExcludedDevice","responses":{"204":{"description":""}}}},"/agent/{agent_id}/network/external-host-scan-policy":{"put":{"summary":"External host scan policy update","description":"Updates the current external host scan policy. It is possible to enable/disable each one of the three available methods (ICMP, TCP-SYN, TCP-ACK). For TCP-SYN and TCP-ACK is mandatory to specify a set of TCP ports. If a method is not specified in the payload of the request, it will be configured as disabled.","tags":["Network Configuration"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"setAgentExternalHostScanPolicy","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentExternalHostScanPolicy"}}},"description":"The external host scan policy to be applied"},"responses":{"204":{"description":""}}},"get":{"summary":"External host scan policy","description":"Returns the current external host scan policy.","tags":["Network Configuration"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getAgentExternalHostScanPolicy","responses":{"200":{"description":"The external host scan policy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentExternalHostScanPolicy"}}}}}},"delete":{"summary":"External host scan policy reset","description":"Restore the external host scan policy to default.","tags":["Network Configuration"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"deleteAgentExternalHostScanPolicy","responses":{"204":{"description":""}}}},"/agent/{agent_id}/network/interfaces-policy":{"put":{"summary":"Network interface filtering policy update","description":"Updates the current network interface filtering policy.","tags":["Network Configuration"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"setAgentInterfacesPolicy","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentInterfacesPolicy"}}},"description":"the filtering policy to be applied"},"responses":{"204":{"description":""}}},"get":{"summary":"Network interface filtering policy","description":"Returns the current network interface filtering policy. The interfaces policy defines the set of interfaces which will be ignored (`deny`) or scanned (`allow`) by the collector. The default behavior is to scan all available interfaces.","tags":["Network Configuration"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getAgentInterfacesPolicy","responses":{"200":{"description":"The current network interface filtering policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentInterfacesPolicy"}}}}}},"delete":{"summary":"Network interface policy reset","description":"Resets the network interface filtering policy to the default value.","tags":["Network Configuration"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"deleteAgentInterfacesPolicy","responses":{"204":{"description":""}}}},"/agent/{agent_id}/network/ip-scan-policy":{"put":{"summary":"IP address scan policy update","description":"Updates the current IP address scan policy. The list of IP addresses provided in `forced_ip_addresses` and the list of IP address ranges provided in `forced_ip_ranges` will be scanned regardless of the automatic discovery settings of the collector.","tags":["Network Configuration"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"setAgentIPScanPolicy","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentIPScanPolicy"}}},"description":"the IP scan policy to be applied"},"responses":{"204":{"description":""}}},"get":{"summary":"IP address scan policy","description":"Returns the current IP addresses management policy. It is possible to specify a set of IP addresses in the `forced_ip_addresses` field array or a set of IP address ranges in the `forced_ip_ranges` field array to be always scanned.","tags":["Network Configuration"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getAgentIPScanPolicy","responses":{"200":{"description":"The IP scan policy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentIPScanPolicy"}}}}}},"delete":{"summary":"IP address scan policy reset","description":"Resets the IP scan policy to the default value.","tags":["Network Configuration"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"deleteAgentIPScanPolicy","responses":{"204":{"description":""}}}},"/agent/{agent_id}/network/routed":{"post":{"summary":"Routed network creation","description":"Creates a routed network.","tags":["Network Configuration"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"createRoutedNetwork","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoutedNetwork"}}}},"responses":{"201":{"description":""}}}},"/agent/{agent_id}/network-topology":{"get":{"summary":"Network topology","description":"Returns the collector's network topology.","tags":["Topology"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getNetworkTopology","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkTopology"}}}}}}},"/agent/{agent_id}/ownership/team/{team_id}":{"put":{"summary":"Collector team reassignment","description":"Moves a collector under the control of a different team. Note: This API is restricted to users on the Enterprise Plan. Please contact <a href=\"mailto:sales@domotz.com\">sales@domotz.com</a> to learn more.","tags":["Enterprise"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"team_id","required":true,"in":"path","description":"Team ID","schema":{"type":"integer","format":"int32"}}],"operationId":"moveAgent","responses":{"204":{"description":""}}}},"/agent/{agent_id}/uptime":{"get":{"summary":"Collector uptime","description":"Returns the uptime of the collector.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"from","required":false,"in":"query","description":"The start time of the time series. Default value is one week","schema":{"type":"string","format":"date-time"}},{"name":"to","required":false,"in":"query","description":"The end time of the time series. Default value is now","schema":{"type":"string","format":"date-time"}}],"operationId":"getAgentUptime","responses":{"200":{"description":"The uptime of the collector","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUptime"}}}}}}},"/agent/{agent_id}/variable":{"get":{"summary":"Collector variables list","description":"Returns the list of all collector variables of the collector.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"page_size","required":false,"in":"query","description":"The maximum number of items to return. Min value is 1. Max value is 1000. Default value is 100","schema":{"type":"integer","format":"int32","maximum":1000,"minimum":1,"default":100}},{"name":"page_number","required":false,"in":"query","description":"The requested page number, 0-indexed. Default value is 0","schema":{"type":"integer","format":"int32","minimum":0,"default":0}},{"name":"value","required":false,"in":"query","description":"Allows filtering by `value`","schema":{"type":"string"}},{"name":"path","required":false,"in":"query","description":"Allows filtering by `path`","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","description":"Allows ordering by `path`, `id`, `value`, `label`, `value_update_time`, `creation_time`","schema":{"type":"string","enum":["path","id","value","label","value_update_time","creation_time"]}},{"name":"sorting_direction","required":false,"in":"query","description":"The default is `asc`","schema":{"type":"string","enum":["asc","desc"]}},{"name":"has_history","required":false,"in":"query","description":"Allows filtering by `has_history` field","schema":{"type":"boolean"}},{"name":"metric","required":false,"in":"query","description":"Allows filtering by `metric`","schema":{"type":"string"}}],"operationId":"listAgentVariables","responses":{"200":{"description":"The list of all collector variables of the collector","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentVariable"}}}}}}},"head":{"summary":"Collector variables count","description":"Returns the collector variables count of the collector.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"value","required":false,"in":"query","description":"Allows filtering by `value`","schema":{"type":"string"}},{"name":"path","required":false,"in":"query","description":"Allows filtering by `path`","schema":{"type":"string"}},{"name":"has_history","required":false,"in":"query","description":"Allows filtering by `has_history` field","schema":{"type":"boolean"}},{"name":"metric","required":false,"in":"query","description":"Allows filtering by `metric`","schema":{"type":"string"}}],"operationId":"countAgentVariables","responses":{"204":{"description":"The collector variables count","headers":{"X-Entities-Count":{"schema":{"type":"integer","format":"int32"},"description":"The collector variables count"}}}}}},"/agent/{agent_id}/variable/{variable_id}/history":{"get":{"summary":"Collector variable history","description":"Returns the collector variable history.","tags":["Metrics"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"variable_id","required":true,"in":"path","description":"Variable ID","schema":{"type":"integer","format":"int32"}},{"name":"from","required":false,"in":"query","description":"The start time of the time series. Default value is one week","schema":{"type":"string","format":"date-time"}},{"name":"to","required":false,"in":"query","description":"The end time of the time series. Default value is now","schema":{"type":"string","format":"date-time"}}],"operationId":"getAgentVariableHistory","responses":{"200":{"description":"The collector variable's history, a list of dictionaries, each composed by the timestamp (a datetime) and the value (a string)","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VariableHistorySample"}}}}}}}},"/agent/uptime":{"get":{"summary":"All collectors uptime","description":"Returns the uptime of all collectors.","tags":["Metrics"],"parameters":[{"name":"from","required":false,"in":"query","description":"The start time of the time series. Default value is one week","schema":{"type":"string","format":"date-time"}},{"name":"to","required":false,"in":"query","description":"The end time of the time series. Default value is now","schema":{"type":"string","format":"date-time"}}],"operationId":"getAgentListUptime","responses":{"200":{"description":"The uptime of the collectors","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentUptime"}}}}}}}},"/alert-profile":{"get":{"summary":"Alert profiles list","description":"Returns the list of configured alert profiles. You can configure alert profiles on the Domotz Portal. Alert profiles define the association between a list of events and a notification channel (email, webhook or slack).","tags":["Alerts"],"operationId":"getAlertProfiles2","responses":{"200":{"description":"The list of configured alert profiles","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertProfile"}}}}}}}},"/alert-profile/{alert_profile_id}/binding/agent/{agent_id}":{"post":{"summary":"Alert profile collector binding","description":"Bind an alert profile to a collector. After binding, a webhook will be sent to the configured service when one of the events associated to the profile occurs. You can configure the profile and the webhook endpoint on the Domotz Portal","tags":["Alerts"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"alert_profile_id","required":true,"in":"path","description":"Profile ID","schema":{"type":"integer","format":"int32"}}],"operationId":"bindAlertProfileToAgent","callbacks":{"agent_status_up":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentStatusEvent"}}}},"responses":{"201":{"description":""}}}}},"agent_status_down":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentStatusEvent"}}}},"responses":{"201":{"description":""}}}}},"agent_speed_test":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSpeedTestEvent"}}}},"responses":{"201":{"description":""}}}}},"agent_security_issue":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSecurityIssueEvent"}}}},"responses":{"201":{"description":""}}}}},"agent_device_discovery":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceDiscoveryEvent"}}}},"responses":{"201":{"description":""}}}}},"agent_wan_change":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentWANChangeEvent"}}}},"responses":{"201":{"description":""}}}}},"agent_lan_change":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentLANChangeEvent"}}}},"responses":{"201":{"description":""}}}}},"agent_feature_discovery":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureDiscoveryEvent"}}}},"responses":{"201":{"description":""}}}}},"agent_feature_discovery_mib":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MibDiscoveryEvent"}}}},"responses":{"201":{"description":""}}}}}},"responses":{"204":{"description":""}}},"delete":{"summary":"Alert profile collector unbinding","description":"Unbind an alert profile from a collector.","tags":["Alerts"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"alert_profile_id","required":true,"in":"path","description":"Profile ID","schema":{"type":"integer","format":"int32"}}],"operationId":"unbindAlertProfileFromAgent","responses":{"204":{"description":""}}}},"/alert-profile/{alert_profile_id}/binding/agent/{agent_id}/device/{device_id}":{"post":{"summary":"Alert profile device binding","description":"Bind an alert profile to a device. After binding, a webhook will be sent to the configured service when one of the events associated to the profile occurs. You can configure the profile and the webhook endpoint on the Domotz Portal","tags":["Alerts"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"alert_profile_id","required":true,"in":"path","description":"Profile ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"bindAlertProfileToDevice","callbacks":{"device_heartbeat_lost":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceHeartbeatLostEvent"}}}},"responses":{"201":{"description":""}}}}},"device_ip_change":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceIPChangeEvent"}}}},"responses":{"201":{"description":""}}}}},"device_snmp":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceSNMPEvent"}}}},"responses":{"201":{"description":""}}}}},"device_rtd":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceRTDIssueEvent"}}}},"responses":{"201":{"description":""}}}}},"device_status_up":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceStatusChangeEvent"}}}},"responses":{"201":{"description":""}}}}},"device_status_down":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceStatusChangeEvent"}}}},"responses":{"201":{"description":""}}}}},"device_tcp":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTCPEvent"}}}},"responses":{"201":{"description":""}}}}},"device_configuration_change":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceConfigurationChangeEvent"}}}},"responses":{"201":{"description":""}}}}},"device_configuration_misalignment":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceConfigurationMisalignmentEvent"}}}},"responses":{"201":{"description":""}}}}},"monitoring_profile_state_changed":{"":{"post":{"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitoringProfileStateChanged"}}}},"responses":{"201":{"description":""}}}}}},"responses":{"204":{"description":""}}},"delete":{"summary":"Alert profile device unbinding","description":"Unbind an alert profile from a device.","tags":["Alerts"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"alert_profile_id","required":true,"in":"path","description":"Profile ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"unbindAlertProfileFromDevice","responses":{"204":{"description":""}}}},"/alert-profile/binding/agent/{agent_id}":{"get":{"summary":"Collector alert profile bindings","description":"Returns the alert profile bindings of a collector.","tags":["Alerts"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getAgentAlertProfile","responses":{"200":{"description":"The alert profile bindings of an collector","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertProfileAgentBinding"}}}}}}}},"/alert-profile/binding/agent/{agent_id}/device":{"get":{"summary":"Device alert profile bindings","description":"Returns the alert profile bindings of the devices of a collector.","tags":["Alerts"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getDevicesAlertProfile","responses":{"200":{"description":"The alert profile bindings for all devices of the collector","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertProfileDeviceBinding"}}}}}}}},"/area":{"get":{"summary":"Company areas list","description":"Returns all the areas of a Company. Note: This API is restricted to users on the Enterprise Plan. Please contact <a href=\"mailto:sales@domotz.com\">sales@domotz.com</a> to learn more.","tags":["Enterprise"],"operationId":"listAreas","responses":{"200":{"description":"The list of all the areas in the User's Company","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Area"}}}}}}}},"/area/{area_id}/team":{"get":{"summary":"Return all the teams of an Area","description":"Returns all the teams of an Area. Note: This API is restricted to users on the Enterprise Plan. Please contact <a href=\"mailto:sales@domotz.com\">sales@domotz.com</a> to learn more.","tags":["Enterprise"],"parameters":[{"name":"area_id","required":true,"in":"path","description":"Area ID","schema":{"type":"integer","format":"int32"}}],"operationId":"listTeams","responses":{"200":{"description":"The list of all the teams in a Company Area's","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Team"}}}}}}},"post":{"summary":"Create a new Team","description":"Creates a new Team. Note: This API is restricted to users on the Enterprise Plan. Please contact <a href=\"mailto:sales@domotz.com\">sales@domotz.com</a> to learn more.","tags":["Enterprise"],"parameters":[{"name":"area_id","required":true,"in":"path","description":"Area ID","schema":{"type":"integer","format":"int32"}}],"operationId":"createTeam","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamCreation"}}}},"responses":{"201":{"description":""}}}},"/custom-driver":{"get":{"summary":"Drivers list","description":"Retrieves the list of available Drivers.","tags":["Drivers"],"operationId":"listCustomDrivers","responses":{"200":{"description":"The list of available Drivers","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomDriver"}}}}}}}},"/custom-driver/{custom_driver_id}":{"get":{"summary":"Driver details","description":"Returns details of a Driver.","tags":["Drivers"],"parameters":[{"name":"custom_driver_id","required":true,"in":"path","description":"Driver ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getCustomDriver","responses":{"200":{"description":"Driver details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomDriverDetails"}}}}}}},"/custom-driver/{custom_driver_id}/agent/{agent_id}/device/{device_id}/association":{"post":{"summary":"Driver device binding","description":"Apply a Driver to a device.","tags":["Drivers"],"parameters":[{"name":"custom_driver_id","required":true,"in":"path","description":"Driver ID","schema":{"type":"integer","format":"int32"}},{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}},{"name":"device_id","required":true,"in":"path","description":"Device ID","schema":{"type":"integer","format":"int32"}}],"operationId":"createCustomDriverAssociation","requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomDriverAssociationCreation"}}}},"responses":{"201":{"description":"The outcome of the association","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomDriverAssociationCreationResult"}}}}}}},"/custom-driver/{custom_driver_id}/association/{association_id}":{"delete":{"summary":"Driver device unbinding","description":"Remove a Driver from a device. This irreversibly deletes all variables created by the driver for that device.","tags":["Drivers"],"parameters":[{"name":"custom_driver_id","required":true,"in":"path","description":"Driver ID","schema":{"type":"integer","format":"int32"}},{"name":"association_id","required":true,"in":"path","description":"Driver Association ID","schema":{"type":"integer","format":"int32"}}],"operationId":"deleteCustomDriverAssociation","responses":{"204":{"description":""}}},"put":{"summary":"Driver device binding paramaters update","description":"Update the parameters for a Driver association.","tags":["Drivers"],"parameters":[{"name":"custom_driver_id","required":true,"in":"path","description":"Driver ID","schema":{"type":"integer","format":"int32"}},{"name":"association_id","required":true,"in":"path","description":"Driver Association ID","schema":{"type":"integer","format":"int32"}}],"operationId":"updateCustomDriverAssociationParameters","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomDriverAssociationParameterCreation"}}},"description":"A list of parameters to update"},"responses":{"204":{"description":""}}}},"/custom-driver/agent/{agent_id}/association":{"get":{"summary":"Driver device bindings list","description":"Retrieves a list of all Driver associations for a collector.","tags":["Drivers"],"parameters":[{"name":"agent_id","required":true,"in":"path","description":"Agent ID","schema":{"type":"integer","format":"int32"}}],"operationId":"listCustomDriverAssociations","responses":{"200":{"description":"The list of Driver associations","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomDriverAssociation"}}}}}}}},"/custom-driver/association/re-enable":{"post":{"summary":"Disabled Drivers reactivation","description":"Re-enable all disabled Drivers for the current user.","tags":["Drivers"],"parameters":[{"name":"include_unrecoverable","required":false,"in":"query","description":"If true, will also re-enable associations that the system has determined unable to recover (e.g. due to missing credentials). Defaults to false.","schema":{"type":"boolean"}}],"operationId":"reEnableCustomDriverAssociations","responses":{"204":{"description":""}}}},"/device-profile":{"get":{"summary":"Device profiles list","description":"Returns the list of the available device profiles.","tags":["Device"],"operationId":"listDeviceProfiles","responses":{"200":{"description":"The list of the available device profiles","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceProfile"}}}}}}}},"/device-profile/{device_profile_id}/apply":{"post":{"summary":"Device profile application","description":"Applies a device profile to a set of devices.","tags":["Device"],"parameters":[{"name":"device_profile_id","required":true,"in":"path","description":"Device Profile ID","schema":{"type":"integer","format":"int32"}}],"operationId":"applyDeviceProfile","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceProfileApplyRequest"}}}},"responses":{"204":{"description":""}}}},"/inventory":{"get":{"summary":"Inventory fields list","description":"Enumerates all the Inventory fields.","tags":["Inventory Fields"],"operationId":"getInventory","responses":{"200":{"description":"The inventory fields, sorted by creation time","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InventoryField"}}}}}}},"delete":{"summary":"Inventory deletion","description":"Clears the inventory.","tags":["Inventory Fields"],"operationId":"deleteInventory","responses":{"204":{"description":""}}}},"/inventory/{inventory_field}":{"post":{"summary":"Inventory field creation","description":"Creates a new Inventory Field - the user will be able to set key-values pairs on every device.","tags":["Inventory Fields"],"parameters":[{"name":"inventory_field","required":true,"in":"path","description":"Field identifier, unique within the Inventory","schema":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,24}$"}}],"operationId":"createInventoryField","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WriteInventoryField"}}}},"responses":{"201":{"description":"The inventory field will be referenced to with its name"}}},"delete":{"summary":"Inventory field deletion","description":"Deletes the Inventory Field.","tags":["Inventory Fields"],"parameters":[{"name":"inventory_field","required":true,"in":"path","description":"Field identifier, unique within the Inventory","schema":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,24}$"}}],"operationId":"deleteInventoryField","responses":{"204":{"description":""}}},"put":{"summary":"Inventory field update","description":"Updates the Inventory Field.","tags":["Inventory Fields"],"parameters":[{"name":"inventory_field","required":true,"in":"path","description":"Field identifier, unique within the Inventory","schema":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,24}$"}}],"operationId":"updateInventoryField","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WriteInventoryField"}}}},"responses":{"204":{"description":""}}}},"/meta/usage":{"get":{"summary":"API usage and limits","description":"Returns information about API usage and limits.","tags":["Metadata"],"operationId":"apiUsageInfo","responses":{"200":{"description":"A data structure containing information about current API usage and usage limits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIUsageInformation"}}}}}}},"/type/device/base":{"get":{"summary":"Device types list","description":"Returns the device types list.","tags":["Metadata"],"operationId":"listDeviceBaseTypes","responses":{"200":{"description":"The types list","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceBaseType"}}}}}}}},"/type/device/detected":{"get":{"summary":"Detected device types list","description":"Returns the detected device types list.","tags":["Metadata"],"operationId":"listDeviceDetectedTypes","responses":{"200":{"description":"The types list","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DetectedDeviceType"}}}}}}}},"/user":{"get":{"summary":"Account details","description":"Returns the account information.","tags":["Account"],"operationId":"getUser","responses":{"200":{"description":"The user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/user/{user_id}/alert-profile":{"get":{"summary":"Alert profiles list","description":"Returns the list of configured alert profiles. You can configure alert profiles on the Domotz Portal. Alert profiles define the association between a list of events and a notification channel (email, webhook or slack).","tags":["Alerts"],"parameters":[{"name":"user_id","required":true,"in":"path","description":"User ID","schema":{"type":"integer","format":"int32"}}],"operationId":"getAlertProfiles _Deprecated_ (please use getAlertProfiles2)","responses":{"200":{"description":"The list of configured alert profiles","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertProfile"}}}}}}}}},"components":{"schemas":{"AgentDetailResponseModel":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"access_right":{"anyOf":[{"$ref":"#/components/schemas/AgentAccessRight"},{"type":"null"}]},"creation_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Creation Time"},"status":{"anyOf":[{"$ref":"#/components/schemas/AgentStatus"},{"type":"null"}]},"licence":{"anyOf":[{"$ref":"#/components/schemas/AgentLicence"},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"version":{"anyOf":[{"$ref":"#/components/schemas/AgentVersion"},{"type":"null"}]},"team":{"anyOf":[{"$ref":"#/components/schemas/AgentTeam"},{"type":"null"}]},"location":{"anyOf":[{"$ref":"#/components/schemas/AgentLocation"},{"type":"null"}]},"organization":{"anyOf":[{"$ref":"#/components/schemas/AgentOrganization"},{"type":"null"}]},"installation_info":{"anyOf":[{"$ref":"#/components/schemas/AgentInstallationInfo"},{"type":"null"}]},"wan_info":{"anyOf":[{"$ref":"#/components/schemas/AgentWanInfo"},{"type":"null"}]},"tags":{"items":{"$ref":"#/components/schemas/AgentTagResponseModel"},"type":"array","title":"Tags"},"listen_on":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Listen On"}},"type":"object","title":"AgentDetailResponseModel"},"AgentDriverExecutionLogResponseModel":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"When the execution completed (ISO-8601)."},"driver_id":{"type":"integer","title":"Driver Id","description":"ID of the executed custom driver."},"driver_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Name","description":"Name of the custom driver."},"driver_type":{"type":"string","title":"Driver Type","description":"Driver type (e.g. GENERIC)."},"outcome":{"type":"string","title":"Outcome","description":"Execution outcome (failure or success)."},"error_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Type","description":"Short error identifier when outcome is failure."},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message","description":"Human-readable error description."},"script_log":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Script Log","description":"Script log lines emitted during execution."},"elapsed_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Elapsed Ms","description":"Elapsed execution time in milliseconds."},"scheduling":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduling","description":"Origin of the execution (AGENT, CLOUD, WEB_APP, MCP, PUBLIC_API)."},"function_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Function Name","description":"Driver function that was executed."},"device_id":{"type":"integer","title":"Device Id","description":"ID of the device the driver ran against."}},"type":"object","required":["timestamp","driver_id","driver_type","outcome","device_id"],"title":"AgentDriverExecutionLogResponseModel","description":"Agent-level view: same as the device-level entry plus ``device_id``.\n\nThe agent-level endpoint aggregates across all of the agent's devices, so the\ndevice the driver ran against is part of the response."},"AgentInterfacesResponseModel":{"properties":{"attached":{"items":{"$ref":"#/components/schemas/AttachedInterfaceModel"},"type":"array","title":"Attached","description":"Attached network interfaces"},"routed":{"items":{"$ref":"#/components/schemas/RoutedInterfaceModel"},"type":"array","title":"Routed","description":"Routed network interfaces"}},"type":"object","title":"AgentInterfacesResponseModel","description":"Response model for agent interfaces API."},"AgentResponseModel":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"access_right":{"anyOf":[{"$ref":"#/components/schemas/AgentAccessRight"},{"type":"null"}]},"creation_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Creation Time"},"status":{"anyOf":[{"$ref":"#/components/schemas/AgentStatus"},{"type":"null"}]},"licence":{"anyOf":[{"$ref":"#/components/schemas/AgentLicence"},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"version":{"anyOf":[{"$ref":"#/components/schemas/AgentVersion"},{"type":"null"}]},"team":{"anyOf":[{"$ref":"#/components/schemas/AgentTeam"},{"type":"null"}]},"location":{"anyOf":[{"$ref":"#/components/schemas/AgentLocation"},{"type":"null"}]},"organization":{"anyOf":[{"$ref":"#/components/schemas/AgentOrganization"},{"type":"null"}]},"installation_info":{"anyOf":[{"$ref":"#/components/schemas/AgentInstallationInfo"},{"type":"null"}]},"wan_info":{"anyOf":[{"$ref":"#/components/schemas/AgentWanInfo"},{"type":"null"}]},"tags":{"items":{"$ref":"#/components/schemas/AgentTagResponseModel"},"type":"array","title":"Tags"}},"type":"object","title":"AgentResponseModel"},"AlertListResponse":{"properties":{"total_count":{"type":"integer","title":"Total Count","description":"Total number of Alert events matching the filters"},"alerts":{"items":{"$ref":"#/components/schemas/AlertModel"},"type":"array","title":"Alerts","description":"Alert events matching the filters, sorted by `triggered_at` descending"}},"type":"object","required":["total_count"],"title":"AlertListResponse"},"AlertRuleCreateResponse":{"properties":{"alert_rule_id":{"type":"integer","title":"Alert Rule Id","description":"Identifier of the newly created Alert Rule"}},"type":"object","required":["alert_rule_id"],"title":"AlertRuleCreateResponse","description":"Response for POST /public-api/v1/alert-rule."},"AlertRuleDetailsModel":{"properties":{"id":{"type":"integer","title":"Id","description":"Stable identifier of the Alert Rule"},"name":{"type":"string","title":"Name","description":"Human-readable name"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity","description":"Severity level label, when set"},"condition_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Condition Id","description":"Identifier of the condition applied — see List Datapoint Conditions"},"operands":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Operands","description":"Operands passed to the condition"},"operands_unit":{"anyOf":[{"$ref":"#/components/schemas/OperandUnitType"},{"type":"null"}],"description":"Unit of measurement for the operands, when applicable. Allowed values:\n- `%` — percentage (0–100)\n- `ms`, `s`, `m`, `h`, `d`, `M`, `y` — time (millisecond, second, minute, hour, day, month, year; lowercase `m` = minute, uppercase `M` = month)\n- `B`, `KiB`, `MiB`, `GiB`, `TiB` — size, binary (1 KiB = 1024 B)\n- `b/s`, `Kb/s`, `Mb/s`, `Gb/s`, `Tb/s` — bit rate, decimal (1 Kb/s = 1000 b/s)\n- `B/s`, `KiB/s`, `MiB/s`, `GiB/s`, `TiB/s` — byte rate, binary (1 KiB/s = 1024 B/s)"},"creation_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Creation Time","description":"ISO-8601 timestamp at which the Alert Rule was created"},"datapoint_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Datapoint Id","description":"Numeric identifier of the datapoint"},"contact-channels":{"items":{"$ref":"#/components/schemas/ContactChannelResponseModel"},"type":"array","title":"Contact-Channels","description":"Contact Channels notified when the Alert Rule fires. Same shape as the items returned by `GET /public-api/v1/contact-channel/`."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"ENABLED / DISABLED"},"condition_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition Name","description":"Programmatic identifier of the condition (e.g. GREATER_THAN)"},"condition_repr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition Repr","description":"Human-readable representation of the condition (e.g. \"> 1\")"},"datapoint_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datapoint Name","description":"Programmatic name of the datapoint (matches Datapoint List `name`)"},"datapoint_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datapoint Label","description":"Human-readable label for the datapoint"},"datapoint_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datapoint Unit","description":"Unit of measurement of the datapoint"},"datapoint_entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datapoint Entity Type","description":"Entity the datapoint targets (e.g. DEVICE, AGENT)"},"applied_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Applied Count","description":"Number of devices/collectors the Alert Rule is currently applied to"}},"type":"object","required":["id","name"],"title":"AlertRuleDetailsModel","description":"Detailed view of an Alert Rule.\n\nReturned by `GET /public-api/v1/alert-rule/{alert_rule_id}`.\nSuperset of `AlertRuleModel` with enrichment derived from the bound datapoint\nand from the count of devices/collectors using the rule."},"AlertRuleModel":{"properties":{"id":{"type":"integer","title":"Id","description":"Stable identifier of the Alert Rule"},"name":{"type":"string","title":"Name","description":"Human-readable name"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity","description":"Severity level label, when set"},"condition_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Condition Id","description":"Identifier of the condition applied — see List Datapoint Conditions"},"operands":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Operands","description":"Operands passed to the condition"},"operands_unit":{"anyOf":[{"$ref":"#/components/schemas/OperandUnitType"},{"type":"null"}],"description":"Unit of measurement for the operands, when applicable. Allowed values:\n- `%` — percentage (0–100)\n- `ms`, `s`, `m`, `h`, `d`, `M`, `y` — time (millisecond, second, minute, hour, day, month, year; lowercase `m` = minute, uppercase `M` = month)\n- `B`, `KiB`, `MiB`, `GiB`, `TiB` — size, binary (1 KiB = 1024 B)\n- `b/s`, `Kb/s`, `Mb/s`, `Gb/s`, `Tb/s` — bit rate, decimal (1 Kb/s = 1000 b/s)\n- `B/s`, `KiB/s`, `MiB/s`, `GiB/s`, `TiB/s` — byte rate, binary (1 KiB/s = 1024 B/s)"},"creation_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Creation Time","description":"ISO-8601 timestamp at which the Alert Rule was created"},"datapoint_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Datapoint Id","description":"Numeric identifier of the datapoint"},"contact-channels":{"items":{"$ref":"#/components/schemas/ContactChannelRef"},"type":"array","title":"Contact-Channels","description":"Contact Channels notified when the Alert Rule fires"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"ENABLED / DISABLED"}},"type":"object","required":["id","name"],"title":"AlertRuleModel"},"AlertSeverity":{"type":"string","enum":["Critical","High","Warning","Info"],"title":"AlertSeverity"},"AlertStatus":{"type":"string","enum":["Open","Resolved"],"title":"AlertStatus"},"ContactChannelResponseModel":{"properties":{"id":{"type":"integer","title":"Id","description":"The unique identifier of the contact channel"},"type":{"$ref":"#/components/schemas/CommunicationChannelType","description":"Type of the contact channel"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Human-readable description of the contact channel"},"endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endpoint","description":"Endpoint/destination address (e.g. an email address, a webhook URL)"}},"type":"object","required":["id","type"],"title":"ContactChannelResponseModel"},"CreateAlertRuleRequest":{"properties":{"name":{"type":"string","title":"Name","description":"Human-readable name for the Alert Rule"},"datapoint_id":{"type":"integer","title":"Datapoint Id","description":"Numeric identifier of the datapoint to monitor"},"condition_id":{"type":"integer","title":"Condition Id","description":"Identifier of the condition to apply"},"operands":{"items":{"type":"string"},"type":"array","title":"Operands","description":"Operands consumed by the condition"},"operands_unit":{"anyOf":[{"$ref":"#/components/schemas/OperandUnitType"},{"type":"null"}],"description":"Unit of measurement for the operands, when applicable. Allowed values:\n- `%` — percentage (0–100)\n- `ms`, `s`, `m`, `h`, `d`, `M`, `y` — time (millisecond, second, minute, hour, day, month, year; lowercase `m` = minute, uppercase `M` = month)\n- `B`, `KiB`, `MiB`, `GiB`, `TiB` — size, binary (1 KiB = 1024 B)\n- `b/s`, `Kb/s`, `Mb/s`, `Gb/s`, `Tb/s` — bit rate, decimal (1 Kb/s = 1000 b/s)\n- `B/s`, `KiB/s`, `MiB/s`, `GiB/s`, `TiB/s` — byte rate, binary (1 KiB/s = 1024 B/s)"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity","description":"Severity label (Info / Warning / High / Critical)"}},"type":"object","required":["name","datapoint_id","condition_id"],"title":"CreateAlertRuleRequest","description":"Request body for POST /public-api/v1/alert-rule."},"CreateOrganizationContactRequest":{"properties":{"name":{"type":"string","title":"Name","description":"Full name of the contact"},"email":{"type":"string","title":"Email","description":"Email address of the contact"},"mobile_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mobile Phone","description":"Mobile phone number of the contact"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone","description":"Landline phone number of the contact"}},"additionalProperties":false,"type":"object","required":["name","email"],"title":"CreateOrganizationContactRequest","description":"Request body for POST /public-api/v1/organization/{organization_id}/contact."},"CreateOrganizationContactResponse":{"properties":{"contact_id":{"type":"integer","title":"Contact Id","description":"Numeric identifier of the newly created contact"}},"type":"object","required":["contact_id"],"title":"CreateOrganizationContactResponse","description":"Response for POST /public-api/v1/organization/{organization_id}/contact."},"CreateOrganizationRequest":{"properties":{"name":{"type":"string","title":"Name","description":"Human-readable name of the Organization"},"external_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Reference","description":"Organization ID — an optional user-assignable identifier for the Organization (distinct from the numeric id used to address it)."}},"additionalProperties":false,"type":"object","required":["name"],"title":"CreateOrganizationRequest","description":"Request body for POST /public-api/v1/organization."},"CreateOrganizationResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Numeric identifier of the newly created Organization"}},"type":"object","required":["id"],"title":"CreateOrganizationResponse","description":"Response for POST /public-api/v1/organization."},"CreateTagModel":{"properties":{"name":{"type":"string","title":"Name"},"color":{"type":"string","title":"Color","description":"<b>Possible values:</b> gray, light-blue, dark-green, yellow, red, purple, blue, orange, pink, green"}},"type":"object","required":["name","color"],"title":"CreateTagModel"},"CreateUserGroupRequest":{"properties":{"name":{"type":"string","title":"Name"},"user_ids":{"items":{"type":"integer"},"type":"array","title":"User Ids"},"role_ids":{"items":{"type":"integer"},"type":"array","title":"Role Ids"}},"type":"object","required":["name","user_ids","role_ids"],"title":"CreateUserGroupRequest"},"CreateUserRequestBackend":{"properties":{"email":{"type":"string","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"required_authentication_type":{"anyOf":[{"$ref":"#/components/schemas/RequiredAuthenticationType"},{"type":"null"}]},"is_external":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is External","default":false},"user_group_ids":{"items":{"type":"integer"},"type":"array","title":"User Group Ids"}},"type":"object","required":["email","user_group_ids"],"title":"CreateUserRequestBackend"},"CustomDriverExecutionRequest":{"properties":{"test":{"type":"boolean","title":"Test","description":"If true, variables produced by the script are not persisted.","default":true},"parameters":{"anyOf":[{"items":{"$ref":"#/components/schemas/ParameterInput"},"type":"array"},{"type":"null"}],"title":"Parameters","description":"Optional one-shot parameter overrides for this execution. Names matching an association's persisted parameter override the persisted value for this run only; names not declared by the driver schema are forwarded to the driver script as-is."}},"type":"object","title":"CustomDriverExecutionRequest"},"CustomDriverExecutionResponse":{"properties":{"outcome":{"type":"string","enum":["success","failure","undefined"],"title":"Outcome","description":"Result of the action execution."},"elapsed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Elapsed","description":"Elapsed execution time in milliseconds."},"log":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Log","description":"Script log lines emitted during execution."},"errorType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Errortype","description":"Short error identifier when outcome is not success."},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Errormessage","description":"Human-readable error description."}},"type":"object","required":["outcome"],"title":"CustomDriverExecutionResponse"},"DatapointDetailsModel":{"properties":{"datapoint_name":{"type":"string","title":"Datapoint Name","description":"Stable string identifier of the datapoint"},"datapoint_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Datapoint Id","description":"Numeric identifier of the datapoint"},"datapoint_label":{"type":"string","title":"Datapoint Label","description":"Human-readable label"},"category":{"type":"string","title":"Category","description":"Top-level grouping"},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subcategory","description":"Sub-grouping within the category"},"entity":{"type":"string","enum":["AGENT","DEVICE"],"title":"Entity","description":"Entity type the datapoint applies to"},"data_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Type","description":"Value type (STRING, INT, FLOAT, DATETIME, BOOL, EVENT)"},"datapoint_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datapoint Unit","description":"Unit of measurement, when applicable"},"conditions":{"items":{"$ref":"#/components/schemas/DatapointConditionModel"},"type":"array","title":"Conditions","description":"Conditions applicable to the datapoint. Each condition is referenced by its `condition_id` when creating an Alert Rule."}},"type":"object","required":["datapoint_name","datapoint_label","category","entity"],"title":"DatapointDetailsModel","description":"Datapoint metric details plus the conditions that can be applied to it."},"DatapointModel":{"properties":{"datapoint_name":{"type":"string","title":"Datapoint Name","description":"Stable string identifier of the datapoint"},"datapoint_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Datapoint Id","description":"Numeric identifier of the datapoint"},"datapoint_label":{"type":"string","title":"Datapoint Label","description":"Human-readable label"},"category":{"type":"string","title":"Category","description":"Top-level grouping"},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subcategory","description":"Sub-grouping within the category"},"entity":{"type":"string","enum":["AGENT","DEVICE"],"title":"Entity","description":"Entity type the datapoint applies to"},"data_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Type","description":"Value type (STRING, INT, FLOAT, DATETIME, BOOL, EVENT)"},"datapoint_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datapoint Unit","description":"Unit of measurement, when applicable"}},"type":"object","required":["datapoint_name","datapoint_label","category","entity"],"title":"DatapointModel","description":"A datapoint exposed by a Collector or Device."},"DeviceTagResponseModel":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"color":{"type":"string","title":"Color"}},"type":"object","required":["id","name","color"],"title":"DeviceTagResponseModel"},"DriverExecutionLogResponseModel":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"When the execution completed (ISO-8601)."},"driver_id":{"type":"integer","title":"Driver Id","description":"ID of the executed custom driver."},"driver_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Driver Name","description":"Name of the custom driver."},"driver_type":{"type":"string","title":"Driver Type","description":"Driver type (e.g. GENERIC)."},"outcome":{"type":"string","title":"Outcome","description":"Execution outcome (failure or success)."},"error_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Type","description":"Short error identifier when outcome is failure."},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message","description":"Human-readable error description."},"script_log":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Script Log","description":"Script log lines emitted during execution."},"elapsed_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Elapsed Ms","description":"Elapsed execution time in milliseconds."},"scheduling":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduling","description":"Origin of the execution (AGENT, CLOUD, WEB_APP, MCP, PUBLIC_API)."},"function_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Function Name","description":"Driver function that was executed."}},"type":"object","required":["timestamp","driver_id","driver_type","outcome"],"title":"DriverExecutionLogResponseModel","description":"Public-API view of a custom-driver execution-log entry (device-level).\n\nInternal columns carried by the javathehutt Data API row — ``agent_id``\n(always in the request path), ``disabled_on_failure`` and ``execution_index``\n(internal bookkeeping), and ``device_id`` (redundant with the path on the\ndevice-level endpoint) — are not exposed."},"DummyDevice":{"properties":{"id":{"type":"integer","title":"Id"},"main_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Main Id","description":"In a clustered configuration, the main device id"},"display_name":{"type":"string","title":"Display Name"},"protocol":{"type":"string","const":"DUMMY","title":"Protocol","default":"DUMMY"},"authentication_status":{"anyOf":[{"$ref":"#/components/schemas/DeviceAuthenticationStatus"},{"type":"null"}],"description":"When defined the device requires authentication info to perform extended discovery <ul>\n<li>\n*REQUIRED*: the device requires authentication, extended discovery is locked\n</li><li>\n*PENDING*: credentials have been submitted but not verified yet\n</li><li>\n*WRONG_CREDENTIALS*: device authentication failed\n</li><li>\n*AUTHENTICATED*: device authentication succeeded\n</li></ul>\n"},"snmp_status":{"anyOf":[{"$ref":"#/components/schemas/DeviceSnmpStatus"},{"type":"null"}],"description":"Get the status of SNMP service for the device <ul>\n<li>\n*CHECKING*:  Indicates that Domotz is currently verifying the SNMP status on the device. This is a transient state.\n</li><li>\n*NOT_FOUND*: This status indicates that the SNMP service could not be found on the device.\n</li><li>\n*NOT_AUTHENTICATED*: This status occurs when the SNMP service is detected as active, but Domotz is unable to retrieve data\nfrom it. This is most likely due to incorrect community strings or credentials.\n</li><li>\n*AUTHENTICATED*:  This status indicates that Domotz is successfully reading SNMP data from the device.\n</li></ul>\n"},"user_data":{"anyOf":[{"$ref":"#/components/schemas/DeviceUserDataModel"},{"type":"null"}]},"first_seen_on":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Seen On","description":"Format: ISO 8601 with timezone offset, example `2025-11-17T09:10:58+00:00`.","examples":["2025-11-17T09:10:58+00:00"]},"importance":{"anyOf":[{"$ref":"#/components/schemas/DeviceImportance"},{"type":"null"}]},"type":{"anyOf":[{"$ref":"#/components/schemas/DeviceTypeModel"},{"type":"null"}],"description":"The device type, if recognised by domotz"},"details":{"anyOf":[{"$ref":"#/components/schemas/DeviceDetailsResponseModel"},{"type":"null"}]},"organization":{"anyOf":[{"$ref":"#/components/schemas/DeviceOrganizationModel"},{"type":"null"}]},"os":{"anyOf":[{"$ref":"#/components/schemas/DeviceOsModel"},{"type":"null"}]},"is_excluded":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Excluded","description":"When true, the Domotz Collector is ignoring the device for all the automatic operations. The Domotz Collector will scan one time the device after its IP address change. An excluded device is listed on Devices Excluded from Discovery section on webapp."},"tags":{"items":{"$ref":"#/components/schemas/DeviceTagResponseModel"},"type":"array","title":"Tags"}},"type":"object","required":["id","display_name"],"title":"DummyDevice","description":"A device that has no network access whatsoever and cannot be discovered or interacted with by the collector. A user can create a Dummy Device to attach it to a power outlet so that it is easier to remember which port controls the device"},"ExternalIpDevice":{"properties":{"id":{"type":"integer","title":"Id"},"main_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Main Id","description":"In a clustered configuration, the main device id"},"display_name":{"type":"string","title":"Display Name"},"protocol":{"type":"string","const":"IP_EXTERNAL","title":"Protocol","default":"IP_EXTERNAL"},"authentication_status":{"anyOf":[{"$ref":"#/components/schemas/DeviceAuthenticationStatus"},{"type":"null"}],"description":"When defined the device requires authentication info to perform extended discovery <ul>\n<li>\n*REQUIRED*: the device requires authentication, extended discovery is locked\n</li><li>\n*PENDING*: credentials have been submitted but not verified yet\n</li><li>\n*WRONG_CREDENTIALS*: device authentication failed\n</li><li>\n*AUTHENTICATED*: device authentication succeeded\n</li></ul>\n"},"snmp_status":{"anyOf":[{"$ref":"#/components/schemas/DeviceSnmpStatus"},{"type":"null"}],"description":"Get the status of SNMP service for the device <ul>\n<li>\n*CHECKING*:  Indicates that Domotz is currently verifying the SNMP status on the device. This is a transient state.\n</li><li>\n*NOT_FOUND*: This status indicates that the SNMP service could not be found on the device.\n</li><li>\n*NOT_AUTHENTICATED*: This status occurs when the SNMP service is detected as active, but Domotz is unable to retrieve data\nfrom it. This is most likely due to incorrect community strings or credentials.\n</li><li>\n*AUTHENTICATED*:  This status indicates that Domotz is successfully reading SNMP data from the device.\n</li></ul>\n"},"user_data":{"anyOf":[{"$ref":"#/components/schemas/DeviceUserDataModel"},{"type":"null"}]},"first_seen_on":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Seen On","description":"Format: ISO 8601 with timezone offset, example `2025-11-17T09:10:58+00:00`.","examples":["2025-11-17T09:10:58+00:00"]},"importance":{"anyOf":[{"$ref":"#/components/schemas/DeviceImportance"},{"type":"null"}]},"type":{"anyOf":[{"$ref":"#/components/schemas/DeviceTypeModel"},{"type":"null"}],"description":"The device type, if recognised by domotz"},"details":{"anyOf":[{"$ref":"#/components/schemas/DeviceDetailsResponseModel"},{"type":"null"}]},"organization":{"anyOf":[{"$ref":"#/components/schemas/DeviceOrganizationModel"},{"type":"null"}]},"os":{"anyOf":[{"$ref":"#/components/schemas/DeviceOsModel"},{"type":"null"}]},"is_excluded":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Excluded","description":"When true, the Domotz Collector is ignoring the device for all the automatic operations. The Domotz Collector will scan one time the device after its IP address change. An excluded device is listed on Devices Excluded from Discovery section on webapp."},"tags":{"items":{"$ref":"#/components/schemas/DeviceTagResponseModel"},"type":"array","title":"Tags"},"ip_addresses":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ip Addresses"},"last_status_change":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Status Change","description":"Format: ISO 8601 with timezone offset, example `2025-11-17T09:10:58+00:00`.","examples":["2025-11-17T09:10:58+00:00"]},"status":{"anyOf":[{"$ref":"#/components/schemas/DeviceStatus"},{"type":"null"}]},"vendor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor","description":"Detected vendor. Max length: 100 characters."},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Detected model. Max length: 255 characters."},"grace_period":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grace Period","description":"The number of seconds a device must be unreachable before being declared DOWN"},"agent_reachable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Agent Reachable","description":"When `true` the device is reachable by the collector over an IP network.\nWhen `false` Domotz knows about the status of the device by the means of another source e.g. a third party controller.\n\nThis field is significant only when the status of the device is `ONLINE` and its value is `false` because it means\nthat even if the IP device is up and running, many features aren't allowed, such as the direct connection or the TCP\nservices monitoring."},"open_ports":{"anyOf":[{"$ref":"#/components/schemas/OpenPortsModel"},{"type":"null"}],"description":"The list of TCP and UDP open ports. Domotz scans a subset of all the ports, visit the <a href='https://help.domotz.com/user-guide/device-tcp-udp-ports-services-discovery/'>user guide</a> for more details."},"names":{"anyOf":[{"$ref":"#/components/schemas/ExternalIpDeviceNamesModel"},{"type":"null"}]}},"type":"object","required":["id","display_name"],"title":"ExternalIpDevice","description":"A device added by the means of 'Advanced Monitoring': it is an IP device manually added by the user, no discoveries are done over it, just periodical ping to see whether it is reachable"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LocalIpDevice":{"properties":{"id":{"type":"integer","title":"Id"},"main_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Main Id","description":"In a clustered configuration, the main device id"},"display_name":{"type":"string","title":"Display Name"},"protocol":{"type":"string","const":"IP","title":"Protocol","default":"IP"},"authentication_status":{"anyOf":[{"$ref":"#/components/schemas/DeviceAuthenticationStatus"},{"type":"null"}],"description":"When defined the device requires authentication info to perform extended discovery <ul>\n<li>\n*REQUIRED*: the device requires authentication, extended discovery is locked\n</li><li>\n*PENDING*: credentials have been submitted but not verified yet\n</li><li>\n*WRONG_CREDENTIALS*: device authentication failed\n</li><li>\n*AUTHENTICATED*: device authentication succeeded\n</li></ul>\n"},"snmp_status":{"anyOf":[{"$ref":"#/components/schemas/DeviceSnmpStatus"},{"type":"null"}],"description":"Get the status of SNMP service for the device <ul>\n<li>\n*CHECKING*:  Indicates that Domotz is currently verifying the SNMP status on the device. This is a transient state.\n</li><li>\n*NOT_FOUND*: This status indicates that the SNMP service could not be found on the device.\n</li><li>\n*NOT_AUTHENTICATED*: This status occurs when the SNMP service is detected as active, but Domotz is unable to retrieve data\nfrom it. This is most likely due to incorrect community strings or credentials.\n</li><li>\n*AUTHENTICATED*:  This status indicates that Domotz is successfully reading SNMP data from the device.\n</li></ul>\n"},"user_data":{"anyOf":[{"$ref":"#/components/schemas/DeviceUserDataModel"},{"type":"null"}]},"first_seen_on":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Seen On","description":"Format: ISO 8601 with timezone offset, example `2025-11-17T09:10:58+00:00`.","examples":["2025-11-17T09:10:58+00:00"]},"importance":{"anyOf":[{"$ref":"#/components/schemas/DeviceImportance"},{"type":"null"}]},"type":{"anyOf":[{"$ref":"#/components/schemas/DeviceTypeModel"},{"type":"null"}],"description":"The device type, if recognised by domotz"},"details":{"anyOf":[{"$ref":"#/components/schemas/DeviceDetailsResponseModel"},{"type":"null"}]},"organization":{"anyOf":[{"$ref":"#/components/schemas/DeviceOrganizationModel"},{"type":"null"}]},"os":{"anyOf":[{"$ref":"#/components/schemas/DeviceOsModel"},{"type":"null"}]},"is_excluded":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Excluded","description":"When true, the Domotz Collector is ignoring the device for all the automatic operations. The Domotz Collector will scan one time the device after its IP address change. An excluded device is listed on Devices Excluded from Discovery section on webapp."},"tags":{"items":{"$ref":"#/components/schemas/DeviceTagResponseModel"},"type":"array","title":"Tags"},"ip_addresses":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ip Addresses"},"last_status_change":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Status Change","description":"Format: ISO 8601 with timezone offset, example `2025-11-17T09:10:58+00:00`.","examples":["2025-11-17T09:10:58+00:00"]},"status":{"anyOf":[{"$ref":"#/components/schemas/DeviceStatus"},{"type":"null"}]},"vendor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor","description":"Detected vendor. Max length: 100 characters."},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Detected model. Max length: 255 characters."},"grace_period":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grace Period","description":"The number of seconds a device must be unreachable before being declared DOWN"},"agent_reachable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Agent Reachable","description":"When `true` the device is reachable by the collector over an IP network.\nWhen `false` Domotz knows about the status of the device by the means of another source e.g. a third party controller.\n\nThis field is significant only when the status of the device is `ONLINE` and its value is `false` because it means\nthat even if the IP device is up and running, many features aren't allowed, such as the direct connection or the TCP\nservices monitoring."},"open_ports":{"anyOf":[{"$ref":"#/components/schemas/OpenPortsModel"},{"type":"null"}],"description":"The list of TCP and UDP open ports. Domotz scans a subset of all the ports, visit the <a href='https://help.domotz.com/user-guide/device-tcp-udp-ports-services-discovery/'>user guide</a> for more details."},"hw_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hw Address","description":"MAC Address"},"names":{"anyOf":[{"$ref":"#/components/schemas/LocalIpDeviceNamesModel"},{"type":"null"}]},"is_jammed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Jammed","description":"When true, the Domotz Agent is blocking the device to access the Internet. The device can still reach every other device in the local network"}},"type":"object","required":["id","display_name"],"title":"LocalIpDevice","description":"Standard device, automatically discovered in the local IP network of the collector."},"OrganizationContactResponse":{"properties":{"contact_id":{"type":"integer","title":"Contact Id","description":"Numeric identifier of the contact"},"name":{"type":"string","title":"Name","description":"Full name of the contact"},"email":{"type":"string","title":"Email","description":"Email address of the contact"},"mobile_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mobile Phone","description":"Mobile phone number of the contact"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone","description":"Landline phone number of the contact"}},"type":"object","required":["contact_id","name","email"],"title":"OrganizationContactResponse","description":"A contact as returned by the public API."},"OrganizationResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Numeric identifier of the Organization, used to address it in the API"},"name":{"type":"string","title":"Name","description":"Human-readable name of the Organization"},"external_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Reference","description":"Organization ID — the user-assignable identifier, when set"},"agents":{"items":{"type":"integer"},"type":"array","title":"Agents","description":"Identifiers of the Collectors bound to this Organization"}},"type":"object","required":["id","name"],"title":"OrganizationResponse","description":"An Organization as returned by the public API."},"ReadRoleDataResponseBackend":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"user_groups":{"items":{"$ref":"#/components/schemas/UserGroupBackend"},"type":"array","title":"User Groups"},"permissions":{"items":{"$ref":"#/components/schemas/PermissionBackend"},"type":"array","title":"Permissions"}},"type":"object","required":["id","name","user_groups","permissions"],"title":"ReadRoleDataResponseBackend"},"ReadRolesResponseBackend":{"properties":{"roles":{"items":{"$ref":"#/components/schemas/RoleEnrichedBackend"},"type":"array","title":"Roles"}},"type":"object","required":["roles"],"title":"ReadRolesResponseBackend"},"ReadUserGroupDataResponseBackend":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"roles":{"items":{"$ref":"#/components/schemas/Role"},"type":"array","title":"Roles"},"users":{"items":{"type":"integer"},"type":"array","title":"Users"}},"type":"object","required":["id","name","roles","users"],"title":"ReadUserGroupDataResponseBackend"},"ReadUserGroupsResponse":{"properties":{"user_groups":{"items":{"$ref":"#/components/schemas/UserGroupEnriched"},"type":"array","title":"User Groups"}},"type":"object","required":["user_groups"],"title":"ReadUserGroupsResponse"},"ReadUsersResponse":{"properties":{"users":{"items":{"$ref":"#/components/schemas/UserWithDetails"},"type":"array","title":"Users"}},"type":"object","required":["users"],"title":"ReadUsersResponse"},"ServicePortResponseModel":{"properties":{"protocol":{"type":"string","title":"Protocol","description":"Service protocol (e.g. SSH)"},"port":{"type":"integer","title":"Port","description":"Custom port configured for the protocol"}},"type":"object","required":["protocol","port"],"title":"ServicePortResponseModel","description":"Response model for a collector-level service-port override."},"ServicePortWriteModel":{"properties":{"port":{"type":"integer","maximum":65535.0,"minimum":1.0,"title":"Port","description":"Custom port used for the service on the collector"}},"type":"object","required":["port"],"title":"ServicePortWriteModel","description":"Request model to set a collector-level service-port override."},"SubnetIpDevice":{"properties":{"id":{"type":"integer","title":"Id"},"main_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Main Id","description":"In a clustered configuration, the main device id"},"display_name":{"type":"string","title":"Display Name"},"protocol":{"type":"string","const":"IP_SUBNET","title":"Protocol","default":"IP_SUBNET"},"authentication_status":{"anyOf":[{"$ref":"#/components/schemas/DeviceAuthenticationStatus"},{"type":"null"}],"description":"When defined the device requires authentication info to perform extended discovery <ul>\n<li>\n*REQUIRED*: the device requires authentication, extended discovery is locked\n</li><li>\n*PENDING*: credentials have been submitted but not verified yet\n</li><li>\n*WRONG_CREDENTIALS*: device authentication failed\n</li><li>\n*AUTHENTICATED*: device authentication succeeded\n</li></ul>\n"},"snmp_status":{"anyOf":[{"$ref":"#/components/schemas/DeviceSnmpStatus"},{"type":"null"}],"description":"Get the status of SNMP service for the device <ul>\n<li>\n*CHECKING*:  Indicates that Domotz is currently verifying the SNMP status on the device. This is a transient state.\n</li><li>\n*NOT_FOUND*: This status indicates that the SNMP service could not be found on the device.\n</li><li>\n*NOT_AUTHENTICATED*: This status occurs when the SNMP service is detected as active, but Domotz is unable to retrieve data\nfrom it. This is most likely due to incorrect community strings or credentials.\n</li><li>\n*AUTHENTICATED*:  This status indicates that Domotz is successfully reading SNMP data from the device.\n</li></ul>\n"},"user_data":{"anyOf":[{"$ref":"#/components/schemas/DeviceUserDataModel"},{"type":"null"}]},"first_seen_on":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Seen On","description":"Format: ISO 8601 with timezone offset, example `2025-11-17T09:10:58+00:00`.","examples":["2025-11-17T09:10:58+00:00"]},"importance":{"anyOf":[{"$ref":"#/components/schemas/DeviceImportance"},{"type":"null"}]},"type":{"anyOf":[{"$ref":"#/components/schemas/DeviceTypeModel"},{"type":"null"}],"description":"The device type, if recognised by domotz"},"details":{"anyOf":[{"$ref":"#/components/schemas/DeviceDetailsResponseModel"},{"type":"null"}]},"organization":{"anyOf":[{"$ref":"#/components/schemas/DeviceOrganizationModel"},{"type":"null"}]},"os":{"anyOf":[{"$ref":"#/components/schemas/DeviceOsModel"},{"type":"null"}]},"is_excluded":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Excluded","description":"When true, the Domotz Collector is ignoring the device for all the automatic operations. The Domotz Collector will scan one time the device after its IP address change. An excluded device is listed on Devices Excluded from Discovery section on webapp."},"tags":{"items":{"$ref":"#/components/schemas/DeviceTagResponseModel"},"type":"array","title":"Tags"},"ip_addresses":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ip Addresses"},"last_status_change":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Status Change","description":"Format: ISO 8601 with timezone offset, example `2025-11-17T09:10:58+00:00`.","examples":["2025-11-17T09:10:58+00:00"]},"status":{"anyOf":[{"$ref":"#/components/schemas/DeviceStatus"},{"type":"null"}]},"vendor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor","description":"Detected vendor. Max length: 100 characters."},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Detected model. Max length: 255 characters."},"grace_period":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grace Period","description":"The number of seconds a device must be unreachable before being declared DOWN"},"agent_reachable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Agent Reachable","description":"When `true` the device is reachable by the collector over an IP network.\nWhen `false` Domotz knows about the status of the device by the means of another source e.g. a third party controller.\n\nThis field is significant only when the status of the device is `ONLINE` and its value is `false` because it means\nthat even if the IP device is up and running, many features aren't allowed, such as the direct connection or the TCP\nservices monitoring."},"open_ports":{"anyOf":[{"$ref":"#/components/schemas/OpenPortsModel"},{"type":"null"}],"description":"The list of TCP and UDP open ports. Domotz scans a subset of all the ports, visit the <a href='https://help.domotz.com/user-guide/device-tcp-udp-ports-services-discovery/'>user guide</a> for more details."},"names":{"anyOf":[{"$ref":"#/components/schemas/SubnetIpDeviceNamesModel"},{"type":"null"}]}},"type":"object","required":["id","display_name"],"title":"SubnetIpDevice","description":"A device automatically discovered by the collector that exists in an IP subnet defined by the user. The collector reaches the device through a Level 3 switch or similar device, so it cannot get the MAC address or other level 2 information, such as DHCP lease data"},"UnmanagedDeviceResponseModel":{"properties":{"id":{"type":"integer","title":"Id"},"display_name":{"type":"string","title":"Display Name"},"first_seen_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Seen On"},"protocol":{"type":"string","title":"Protocol"},"ip_addresses":{"items":{"type":"string"},"type":"array","title":"Ip Addresses"},"vendor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor"},"type":{"anyOf":[{"$ref":"#/components/schemas/UnmanagedDeviceTypeModel"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"mac":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mac"},"tags":{"items":{"$ref":"#/components/schemas/DeviceTagResponseModel"},"type":"array","title":"Tags"}},"type":"object","required":["id","display_name","protocol"],"title":"UnmanagedDeviceResponseModel"},"UpdateAlertRuleRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Human-readable name"},"condition_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Condition Id","description":"Identifier of the condition to apply"},"operands":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Operands","description":"Operands consumed by the condition"},"operands_unit":{"anyOf":[{"$ref":"#/components/schemas/OperandUnitType"},{"type":"null"}],"description":"Unit of measurement for the operands"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity","description":"Severity label (Info / Warning / High / Critical)"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"ENABLED or DISABLED"}},"additionalProperties":false,"type":"object","title":"UpdateAlertRuleRequest","description":"Request body for PATCH /public-api/v1/alert-rule/{alert_rule_id}.\n\nAll fields are optional — only fields present in the request are applied."},"UpdateOrganizationContactRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Full name of the contact"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Email address of the contact"},"mobile_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mobile Phone","description":"Mobile phone number of the contact"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone","description":"Landline phone number of the contact"}},"additionalProperties":false,"type":"object","title":"UpdateOrganizationContactRequest","description":"Request body for PUT /public-api/v1/organization/{organization_id}/contact/{contact_id}.\n\nAll fields are optional, but at least one must be provided. Fields that are\nomitted keep their current value."},"UpdateOrganizationRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Human-readable name of the Organization"},"external_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Reference","description":"Organization ID — a user-assignable identifier for the Organization (distinct from the numeric id used to address it)."}},"additionalProperties":false,"type":"object","title":"UpdateOrganizationRequest","description":"Request body for PUT /public-api/v1/organization/{organization_id}.\n\nAll fields are optional, but at least one must be provided."},"UpdateTagModel":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color","description":"<b>Possible values:</b> gray, light-blue, dark-green, yellow, red, purple, blue, orange, pink, green"}},"type":"object","title":"UpdateTagModel"},"UpdateUserGroupRequest":{"properties":{"user_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"User Ids"},"role_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Role Ids"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"UpdateUserGroupRequest"},"UpdateUserRequestBackend":{"properties":{"user_group_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"User Group Ids"},"required_authentication_type":{"anyOf":[{"$ref":"#/components/schemas/RequiredAuthenticationType"},{"type":"null"}]},"is_external":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is External","default":false},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"}},"type":"object","title":"UpdateUserRequestBackend"},"UserTagListResponseModel":{"properties":{"tags":{"items":{"$ref":"#/components/schemas/TagResponseModel"},"type":"array","title":"Tags"}},"type":"object","required":["tags"],"title":"UserTagListResponseModel"},"UserWithDetails":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"is_external":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is External"},"required_authentication_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Required Authentication Type"},"authentication_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authentication Type"},"user_groups":{"items":{"$ref":"#/components/schemas/UserWithDetailsUserGroup"},"type":"array","title":"User Groups"}},"type":"object","required":["id","email","user_groups"],"title":"UserWithDetails"},"AgentAccessRight":{"properties":{"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"api_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Api Enabled"},"granting_user":{"anyOf":[{"$ref":"#/components/schemas/AgentAccessRightGrantingUser"},{"type":"null"}]}},"type":"object","title":"AgentAccessRight"},"AgentAccessRightGrantingUser":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"AgentAccessRightGrantingUser"},"AgentInstallationInfo":{"properties":{"customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"},"contract_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Id"}},"type":"object","title":"AgentInstallationInfo"},"AgentLicence":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"bound_mac_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bound Mac Address"},"activation_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Activation Time"},"expiration_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expiration Time"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},"type":"object","title":"AgentLicence"},"AgentLocation":{"properties":{"latitude":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Longitude"}},"type":"object","title":"AgentLocation"},"AgentOrganization":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"AgentOrganization"},"AgentStatus":{"properties":{"value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value"},"last_change":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Change"}},"type":"object","title":"AgentStatus"},"AgentTagResponseModel":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"color":{"type":"string","title":"Color"}},"type":"object","required":["id","name","color"],"title":"AgentTagResponseModel"},"AgentTeam":{"properties":{"area":{"anyOf":[{"$ref":"#/components/schemas/AgentTeamArea"},{"type":"null"}]},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"leader_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Leader Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"AgentTeam"},"AgentTeamArea":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"}},"type":"object","title":"AgentTeamArea"},"AgentVersion":{"properties":{"agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent"},"package":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Package"}},"type":"object","title":"AgentVersion"},"AgentWanInfo":{"properties":{"ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip"},"hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hostname"}},"type":"object","title":"AgentWanInfo"},"AlertModel":{"properties":{"id":{"type":"string","title":"Id","description":"Stable identifier of the Alert event"},"status":{"$ref":"#/components/schemas/AlertStatus","description":"Current state of the Alert event"},"severity":{"anyOf":[{"$ref":"#/components/schemas/AlertSeverity"},{"type":"null"}],"description":"Severity level of the Alert event. May be null when the source Alert Rule had no severity configured."},"triggered_at":{"type":"string","format":"date-time","title":"Triggered At","description":"UTC timestamp at which the Alert event was triggered"},"closed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Closed At","description":"UTC timestamp at which the Alert event was closed, when applicable"},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Seconds","description":"Duration of the Alert event in seconds, when closed"},"trigger_condition_repr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trigger Condition Repr","description":"Human-readable representation of the condition that fired the Alert Rule"},"trigger_value":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Trigger Value","description":"Values of the datapoint that satisfied the Alert Rule condition. Always a list since some conditions (e.g. ranges) carry two values."},"collector_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Collector Id","description":"Identifier of the Collector the Alert event refers to. May be null when the Collector has been deleted after the Alert was triggered."},"device_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Device Id","description":"Identifier of the Device the Alert event refers to. May be null when the Device has been deleted after the Alert was triggered, or when the Alert targets a Collector directly."},"alert_rule_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Alert Rule Id","description":"Identifier of the Alert Rule that produced the Alert event. May be null when the Alert Rule has been deleted after the Alert was triggered."}},"type":"object","required":["id","status","triggered_at"],"title":"AlertModel"},"AttachedInterfaceModel":{"properties":{"name":{"type":"string","title":"Name","description":"Interface name"},"mac_address":{"type":"string","title":"Mac Address","description":"MAC address of the interface"},"address":{"type":"string","title":"Address","description":"IP address of the interface"},"netmask":{"type":"integer","title":"Netmask","description":"Network mask"},"vlan_id":{"anyOf":[{"type":"integer","maximum":4095.0,"minimum":0.0},{"type":"null"}],"title":"Vlan Id","description":"VLAN ID if available"}},"type":"object","required":["name","mac_address","address","netmask"],"title":"AttachedInterfaceModel","description":"Model representing an attached network interface on the collector."},"CommunicationChannelType":{"type":"string","enum":["EMAIL","WEBHOOK","SLACK","MICROSOFT_TEAMS","TICKETING_SYSTEM","TELEGRAM","PUSH_NOTIFICATION"],"title":"CommunicationChannelType"},"ContactChannelRef":{"properties":{"id":{"type":"integer","title":"Id","description":"Contact Channel identifier"}},"type":"object","required":["id"],"title":"ContactChannelRef"},"DatapointConditionModel":{"properties":{"condition_id":{"type":"integer","title":"Condition Id","description":"Stable identifier of the condition. Send this value when creating an Alert Rule to reference the condition."},"name":{"type":"string","title":"Name","description":"Machine-readable name of the condition"},"display_name":{"type":"string","title":"Display Name","description":"Human-readable label for UI display"},"cardinality":{"type":"integer","title":"Cardinality","description":"Number of operands the condition requires. 0 means the condition takes no operand (e.g. is-null), 1 means a single operand, and so on."}},"type":"object","required":["condition_id","name","display_name","cardinality"],"title":"DatapointConditionModel","description":"A condition/operator that can be applied to a datapoint when defining an Alert Rule."},"DeviceAuthenticationStatus":{"type":"string","enum":["NO_AUTHENTICATION","AUTHENTICATED","PENDING","REQUIRED","WRONG_CREDENTIALS"],"title":"DeviceAuthenticationStatus"},"DeviceDetailsResponseModel":{"properties":{"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone","description":"Device zone. Max length: 256 characters."},"room":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Room","description":"Device room. Max length: 256 characters."},"firmware_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firmware Version"},"serial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Serial","description":"Set to null to reset and allow the automatically discovered serial number to be used for device. Max length: 32 characters."},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"User notes. Max length: 256 characters."},"snmp_read_community":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snmp Read Community","description":"Deprecated. Please use <a href='#tag/device/GET/agent/{agent_id}/device/{device_id}/snmp-authentication'> getSNMPAuthentication </a>"},"snmp_write_community":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snmp Write Community","description":"Deprecated. Please use <a href='#tag/device/GET/agent/{agent_id}/device/{device_id}/snmp-authentication'> getSNMPAuthentication </a>"}},"type":"object","title":"DeviceDetailsResponseModel"},"DeviceImportance":{"type":"string","enum":["VITAL","FLOATING"],"title":"DeviceImportance"},"DeviceOrganizationModel":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"DeviceOrganizationModel"},"DeviceOsModel":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"build":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build"}},"type":"object","title":"DeviceOsModel"},"DeviceSnmpStatus":{"type":"string","enum":["CHECKING","NOT_FOUND","NOT_AUTHENTICATED","AUTHENTICATED"],"title":"DeviceSnmpStatus"},"DeviceStatus":{"type":"string","enum":["ONLINE","OFFLINE","DOWN","HIDDEN"],"title":"DeviceStatus"},"DeviceTypeModel":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"detected_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Detected Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","title":"DeviceTypeModel"},"DeviceUserDataModel":{"properties":{"type":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Type"},"vendor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor","description":"Custom vendor. Max length: 100 characters."},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Custom model. Max length: 100 characters."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Custom name. Max length: 64 characters."}},"type":"object","title":"DeviceUserDataModel"},"ExternalIpDeviceNamesModel":{"properties":{"host":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Host"},"inspection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inspection"}},"type":"object","title":"ExternalIpDeviceNamesModel"},"LocalIpDeviceNamesModel":{"properties":{"host":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Host"},"bonjour":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bonjour"},"upnp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Upnp"},"snmp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snmp"},"dhcp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dhcp"},"inspection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inspection"},"netbios":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Netbios"},"zeroconf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zeroconf"}},"type":"object","title":"LocalIpDeviceNamesModel"},"OpenPortsModel":{"properties":{"tcp":{"items":{"type":"integer"},"type":"array","title":"Tcp"},"udp":{"items":{"type":"integer"},"type":"array","title":"Udp"}},"type":"object","title":"OpenPortsModel"},"OperandUnitType":{"type":"string","enum":["%","ms","s","m","h","d","M","y","B","KiB","MiB","GiB","TiB","b/s","Kb/s","Mb/s","Gb/s","Tb/s","B/s","KiB/s","MiB/s","GiB/s","TiB/s"],"title":"OperandUnitType","description":"Units accepted by mercury for an Alert Rule's operand.\n\nMirrors the value set of\n`domotz_business_entities_devices.entities.monitoring_profile.monitoring_profile_unit.OperandUnitType`\nso backend_api can ship a stable cross-service contract without taking a\ndependency on business_entities_devices."},"ParameterInput":{"properties":{"name":{"type":"string","title":"Name","description":"Parameter name as declared by the driver, or an extra name supplied for this execution only.","examples":["target_ip"]},"value":{"anyOf":[{"type":"string","title":"String"},{"type":"integer","title":"Integer"},{"type":"number","title":"Float"},{"items":{"anyOf":[{"type":"string","title":"String"},{"type":"integer","title":"Integer"},{"type":"number","title":"Float"}]},"type":"array","title":"List"},{"additionalProperties":true,"type":"object","title":"Object"}],"title":"Value","description":"Value to apply for this execution. The type is inferred from the JSON shape: string → STRING, number → NUMBER, array → LIST (items are coerced to strings), object → OBJECT (forwarded as JSON).","examples":["10.0.0.5"]}},"type":"object","required":["name","value"],"title":"ParameterInput"},"PermissionBackend":{"properties":{"permission_name":{"type":"string","title":"Permission Name"},"entity_type":{"type":"string","title":"Entity Type"},"is_applied_to_all_entities":{"type":"boolean","title":"Is Applied To All Entities","default":false},"entity_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Entity Ids"}},"type":"object","required":["permission_name","entity_type"],"title":"PermissionBackend"},"RequiredAuthenticationType":{"type":"string","enum":["2FA","SAML"],"title":"RequiredAuthenticationType"},"Role":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["id","name"],"title":"Role"},"RoleEnrichedBackend":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"user_groups":{"items":{"$ref":"#/components/schemas/UserGroupBackend"},"type":"array","title":"User Groups"}},"type":"object","required":["id","name","user_groups"],"title":"RoleEnrichedBackend"},"RoutedInterfaceModel":{"properties":{"name":{"type":"string","title":"Name","description":"Interface name"},"address":{"type":"string","title":"Address","description":"IP address of the interface"},"netmask":{"type":"integer","title":"Netmask","description":"Network mask"}},"type":"object","required":["name","address","netmask"],"title":"RoutedInterfaceModel","description":"Model representing a routed network interface on the collector."},"SubnetIpDeviceNamesModel":{"properties":{"host":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Host"},"bonjour":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bonjour"},"upnp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Upnp"},"snmp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snmp"},"inspection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inspection"}},"type":"object","title":"SubnetIpDeviceNamesModel"},"TagResponseModel":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"color":{"type":"string","title":"Color"},"device_count":{"type":"integer","title":"Device Count"},"agent_count":{"type":"integer","title":"Agent Count"}},"type":"object","required":["id","name","color","device_count","agent_count"],"title":"TagResponseModel"},"UnmanagedDeviceTypeModel":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"detected_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Detected Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","title":"UnmanagedDeviceTypeModel"},"UserGroupBackend":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"UserGroupBackend"},"UserGroupEnriched":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"user_count":{"type":"integer","title":"User Count"},"roles":{"items":{"$ref":"#/components/schemas/Role"},"type":"array","title":"Roles"}},"type":"object","required":["id","name","user_count","roles"],"title":"UserGroupEnriched"},"UserWithDetailsUserGroup":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"UserWithDetailsUserGroup"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"AgentBase":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"display_name":{"type":"string"},"access_right":{"type":"object","properties":{"status":{"type":"string","enum":["OWNED","GRANTED","PROPOSED","ASSIGNED"],"description":"<ul><li>\n*OWNED*: you own this collector\n</li><li>\n*PROPOSED*: the owner proposed you to access the collector, you can accept or reject the offer\n</li><li>\n*GRANTED*: you accepted the collaboration request for this collector\n</li><li>\n*ASSIGNED*: your team leader has given you access to the collector\n</li></ul>"},"api_enabled":{"type":"boolean","description":"If `false` the collector plan doesn't allow for API access: you only can see this collector in the list"},"granting_user":{"type":"object","properties":{"name":{"type":"string","format":"email"}}}}},"creation_time":{"type":"string","format":"date-time"},"status":{"type":"object","properties":{"value":{"type":"string","enum":["ONLINE","OFFLINE"]},"last_change":{"type":"string","format":"date-time"}}},"licence":{"type":"object","properties":{"bound_mac_address":{"type":"string","description":"The MAC address of the primary interface of the device the software collector runs on"},"code":{"type":"string"},"id":{"type":"integer","format":"int32"},"activation_time":{"type":"string","format":"date-time"},"expiration_time":{"type":"string","format":"date-time"}}},"timezone":{"type":"string"},"version":{"type":"object","properties":{"agent":{"type":"string"},"package":{"type":"string"}}},"team":{"type":"object","description":"The Team and Company Area information, only available for companies","properties":{"area":{"type":"object","properties":{"id":{"type":"integer","format":"int32"}}},"id":{"type":"integer","format":"int32"},"leader_id":{"type":"integer","format":"int32"},"name":{"type":"string"}}},"location":{"type":"object","properties":{"latitude":{"type":"string","pattern":"^-?\\d+(\\.\\d{8})?$"},"longitude":{"type":"string","pattern":"^-?\\d+(\\.\\d{8})?$"}}},"organization":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"}}},"installation_info":{"type":"object","properties":{"customer_id":{"type":"string"},"contract_id":{"type":"string"}}},"wan_info":{"type":"object","properties":{"ip":{"type":"string"},"hostname":{"type":"string"}}}},"required":["display_name","id"]},"AgentDetail":{"allOf":[{"$ref":"#/components/schemas/AgentBase"},{"type":"object","properties":{"listen_on":{"type":"string","description":"The local IP and port the Domotz Agent software is listening on if online - the last known value otherwise"},"location":{"type":"object","properties":{"latitude":{"type":"string","pattern":"^-?\\d+(\\.\\d{8})?$"},"longitude":{"type":"string","pattern":"^-?\\d+(\\.\\d{8})?$"}}},"wan_info":{"type":"object","properties":{"ip":{"type":"string"},"hostname":{"type":"string"}}}}}]},"ActivityLog":{"type":"object","properties":{"device_id":{"type":"integer","format":"int32","description":"Device that triggered the event (if applicable)"},"type":{"type":"string","enum":["note","agent_alert_level_set","agent_alert_resume","rtd_session_start","cresnet_node_reboot","device_reboot","firmware_update_start","applications_terminate","configuration_restore","factory_reset","network_configuration_change","custom_driver_execute","remote_session_start","remote_session_terminate","remote_session_limit_reached","vpn_session_start","vpn_session_terminate","chat_started","chat_resolved","operator_joined","operator_left","power_on","power_off","power_cycle","camera_snapshot","camera_streaming_start","configuration_management_status_change"],"description":"Type of the event"},"description":{"type":"string","description":"Description of the event"},"user":{"type":"string","description":"User who triggered the event"},"timestamp":{"type":"string","format":"date-time","description":"Timestamp of the event"},"details":{"type":"object","additionalProperties":true,"description":"Additional details of the event"}},"required":["description","timestamp","type","user"],"description":"An activity log item"},"ConnectionConsumption":{"type":"object","properties":{"limit":{"type":"integer","format":"int32","description":"Maximum connection consumption (bytes) "},"current":{"type":"integer","format":"int32","description":"Current connection consumption (bytes) "}},"required":["current","limit"]},"AgentVPNActiveConnection":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"The ID of the VPN connection"},"status":{"type":"string","enum":["ACTIVE","INACTIVE","EXPIRED"],"description":"The status of the vpn connection"},"name":{"type":"string","description":"The user that started the VPN connection"},"bytes":{"type":"integer","format":"int32","description":"Current VPN connection consumption (bytes) "},"creation_time":{"type":"string","format":"date-time"},"expiration_time":{"type":"string","format":"date-time"}},"required":["bytes","creation_time","expiration_time","id","name","status"]},"AgentVPNConnection":{"type":"object","properties":{"allowed_ip":{"type":"string","pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$","description":"The only public IP address allowed to access the connection.\n        It will be impossible to use the connection from other IP addresses. You should use your public IP address. \n"},"routing_policy":{"type":"string","enum":["global","local"],"description":"The traffic routing policy for the VPN connection: \n</br>- *global*: All the traffic is routed through the VPN On Demand. More consumption on the Domotz Cloud\n</br>- *local*: Only LAN traffic passes through the VPN On Demand. Less consumption on the Domotz Cloud\n"},"ttl_hours":{"type":"integer","format":"int32","maximum":24,"minimum":1,"default":1,"description":"The duration in hours of the connection."}},"required":["allowed_ip","routing_policy"]},"IpDevice":{"allOf":[{"$ref":"#/components/schemas/AbstractDevice"},{"type":"object","properties":{"ip_addresses":{"type":"array","items":{"type":"string","pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"}},"last_status_change":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["ONLINE","OFFLINE","DOWN","HIDDEN"]},"vendor":{"type":"string","maxLength":100},"grace_period":{"type":"integer","format":"int32","description":"The number of seconds a device must be unreachable before being declared DOWN"},"model":{"type":"string","maxLength":255},"agent_reachable":{"type":"boolean","description":"When `true` the device is reachable by the collector over an IP network.\nWhen `false` Domotz knows about the status of the device by the means of another source e.g. a third party controller.\n\nThis field is significant only when the status of the device is `ONLINE` and its value is `false` because it means\nthat even if the IP device is up and running, many features aren't allowed, such as the direct connection or the TCP\nservices monitoring."},"open_ports":{"type":"object","properties":{"tcp":{"type":"array","items":{"type":"integer","format":"int32"}},"udp":{"type":"array","items":{"type":"integer","format":"int32"}}},"description":"The list of TCP and UDP open ports. Domotz scans a subset of all the ports, visit the <a href='https://help.domotz.com/user-guide/device-tcp-udp-ports-services-discovery/'>user guide</a> for more details."}},"description":"Base abstract class for all IP devices"}]},"AbstractDevice":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"main_id":{"type":"integer","format":"int32","description":"In a clustered configuration, the main device id"},"display_name":{"type":"string"},"protocol":{"type":"string","enum":["IP","DUMMY","IP_EXTERNAL"]},"authentication_status":{"type":"string","enum":["NO_AUTHENTICATION","AUTHENTICATED","PENDING","REQUIRED","WRONG_CREDENTIALS"],"description":"When defined the device requires authentication info to perform extended discovery <ul>\n<li>\n*REQUIRED*: the device requires authentication, extended discovery is locked\n</li><li>\n*PENDING*: credentials have been submitted but not verified yet\n</li><li>\n*WRONG_CREDENTIALS*: device authentication failed\n</li><li>\n*AUTHENTICATED*: device authentication succeeded\n</li></ul>\n"},"snmp_status":{"type":"string","enum":["CHECKING","NOT_FOUND","NOT_AUTHENTICATED","AUTHENTICATED"],"description":"Get the status of SNMP service for the device <ul>\n<li>\n*CHECKING*:  Indicates that Domotz is currently verifying the SNMP status on the device. This is a transient state.\n</li><li>\n*NOT_FOUND*: This status indicates that the SNMP service could not be found on the device.\n</li><li>\n*NOT_AUTHENTICATED*: This status occurs when the SNMP service is detected as active, but Domotz is unable to retrieve data\nfrom it. This is most likely due to incorrect community strings or credentials.\n</li><li>\n*AUTHENTICATED*:  This status indicates that Domotz is successfully reading SNMP data from the device.\n</li></ul>\n"},"user_data":{"type":"object","properties":{"model":{"type":"string","maxLength":100},"name":{"type":"string","maxLength":64},"type":{"type":"integer","format":"int32"},"vendor":{"type":"string","maxLength":100}}},"first_seen_on":{"type":"string","format":"date-time"},"importance":{"type":"string","enum":["VITAL","FLOATING"]},"type":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"detected_id":{"type":"integer","format":"int32"},"label":{"type":"string"}},"description":"The device type, if recognised by domotz"},"details":{"type":"object","properties":{"zone":{"type":"string","maxLength":256},"room":{"type":"string","maxLength":256},"firmware_version":{"type":"string"},"snmp_read_community":{"type":"string","description":"Deprecated. Please use <a href='#getsnmpauthentication'> getSNMPAuthentication </a>"},"snmp_write_community":{"type":"string","description":"Deprecated. Please use <a href='#getsnmpauthentication'> getSNMPAuthentication </a>"},"serial":{"type":"string","maxLength":32,"description":"Set to null to reset and allow the automatically discovered serial number to be used for device"},"notes":{"type":"string","maxLength":256}},"description":"DeviceDetails"},"organization":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"}}},"os":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"},"build":{"type":"string"}},"description":"DeviceOS"},"is_excluded":{"type":"boolean","description":"When true, the Domotz Collector is ignoring the device for all the automatic operations. The Domotz Collector will scan one time the device after its IP address change. An excluded device is listed on Device Blacklist section on webapp."}},"required":["display_name","id","protocol"],"description":"Base abstract class for all devices"},"DevicePowerAction":{"type":"object","properties":{"on":{"type":"boolean","description":"Indicates that the device can be powered on. Available if the device is connected to one or more PDU. <br><br> In the latter case the operation will be performed on all available PDUs.<br><br> If there is no PDU but there is one POE connection, the operation will still available through that connection."},"off":{"type":"boolean","description":"Indicates that the device can be powered off. Available if the device is connected to one or more PDU. <br><br> In the latter case the operation will be performed on all available PDUs.<br><br> If there no PDU but there is one POE connection, the operation will still be available through that connection.<br><br>"},"cycle":{"type":"boolean","description":"Indicates that a power cycle on the device is possible. Available if the device is connected to just one PDU."},"software_reboot":{"type":"boolean","description":"Indicates that software reboot on the device is possible.<br><br> The operation availability depends on the device."}}},"DeviceApplication":{"type":"object","properties":{"application_id":{"type":"string"},"name":{"type":"string"},"version":{"type":"string"},"first_time_seen":{"type":"string","format":"date-time"},"last_update":{"type":"string","format":"date-time"},"publisher":{"type":"string"},"install_location":{"type":"string"},"info":{"type":"string"},"install_date":{"type":"string","format":"date-time"},"last_modified":{"type":"string","format":"date-time"}},"required":["application_id","first_time_seen"],"description":"The list of applications of a device"},"DeviceConfigurationMetadata":{"type":"object","properties":{"label":{"type":"string","description":"Human readable configuration label"},"timestamp":{"type":"string","description":"Timestamp of when the backup was made in ISO format (%Y-%m-%dT%H:%M:%S%z)"},"running_md5":{"type":"string","description":"MD5 hash of the running configuration"},"startup_md5":{"type":"string","description":"MD5 hash of the startup configuration"}},"required":["label","running_md5","timestamp"],"description":"A backed up device configuration metadata"},"DeviceConfigurationCreate":{"type":"object","properties":{"label":{"type":"string","description":"Human readable configuration label"},"running":{"type":"string","description":"Base64 encoded running configuration"},"startup":{"type":"string","description":"Optional base64 encoded startup configuration"}},"required":["label","running"],"description":"Device configuration data to create a backup"},"DeviceConfiguration":{"allOf":[{"$ref":"#/components/schemas/DeviceConfigurationMetadata"},{"type":"object","properties":{"running":{"type":"string","description":"The running configuration"},"startup":{"type":"string","description":"The startup configuration, skipped if not saved or if it is the same as the running configuration"}},"required":["running"],"description":"A device configuration"}]},"ConnectionSession":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp","ssh","rdp"],"description":"The protocol wrapped by the connection:\n\n</br>- *http/https*: the `link` field in the reply will contain an `https` URL. A browser or a similar user agent must be used:\nthe client must have cookies enabled and the capability of following 302 redirects. If the protocol is `https` the\ndevice's certificate will be accepted without checks and its information ignored (our server will act as a proxy).\n</br>- *tcp*: the `link` field will be in the form `tcp://{host}:{port}`. Any connection established (e.g. with `telnet`\n or `ssh`) on these coordinates will be securely forwarded to the requested `port` of the device.\n </br>- *ssh*: the `link` field will  contain an `https` URL. A browser or a similar user agent must be used:\nthe client must have cookies enabled and the capability of following 302 redirects.\n</br>- *rdp*: the `link` field will  contain an `https` URL. A browser or a similar user agent must be used:\nthe client must have cookies enabled and the capability of following 302 redirects.\n "},"port":{"type":"integer","format":"int32","maximum":65535,"minimum":0},"allowed_ip":{"type":"string","pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$","description":"The only public IP address allowed to access the connection.\n        It will be impossible to use the connection from other IP addresses. You should use your public IP address. \n"},"id":{"type":"integer","format":"int32","description":"The unique identifier of the `connection`"},"link":{"type":"string","description":"Either the link to access the device's HTTP(s) interface in the browser or the host/port coordinates of the proxied TCP port, depending on the protocol (see protocol description in the request)"},"expiration":{"type":"string","format":"date-time","description":"The time after which the connection will be closed"}},"required":["allowed_ip","id","port","protocol"]},"DeviceConnection":{"type":"object","properties":{"protocol":{"type":"string","enum":["http","https","tcp","ssh","rdp"],"description":"The protocol wrapped by the connection:\n\n</br>- *http/https*: the `link` field in the reply will contain an `https` URL. A browser or a similar user agent must be used:\nthe client must have cookies enabled and the capability of following 302 redirects. If the protocol is `https` the\ndevice's certificate will be accepted without checks and its information ignored (our server will act as a proxy).\n</br>- *tcp*: the `link` field will be in the form `tcp://{host}:{port}`. Any connection established (e.g. with `telnet`\n or `ssh`) on these coordinates will be securely forwarded to the requested `port` of the device.\n </br>- *ssh*: the `link` field will  contain an `https` URL. A browser or a similar user agent must be used:\nthe client must have cookies enabled and the capability of following 302 redirects.\n</br>- *rdp*: the `link` field will  contain an `https` URL. A browser or a similar user agent must be used:\nthe client must have cookies enabled and the capability of following 302 redirects.\n "},"port":{"type":"integer","format":"int32","maximum":65535,"minimum":0},"allowed_ip":{"type":"string","pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$","description":"The only public IP address allowed to access the connection.\n        It will be impossible to use the connection from other IP addresses. You should use your public IP address. \n"},"ttl_hours":{"type":"integer","format":"int32","maximum":24,"minimum":1,"default":1,"description":"The duration in hours of the connection."}},"required":["allowed_ip","port","protocol"]},"DeviceCredentials":{"type":"object","properties":{"username":{"type":"string","description":"username"},"password":{"type":"string","description":"password"},"scope":{"type":"string","enum":["CUSTOM_DRIVER_MANAGEMENT","CONFIGURATION_MANAGEMENT","DEVICE_MANAGEMENT","OS_MANAGEMENT"],"default":"DEVICE_MANAGEMENT","description":"The Scope for the Credentials. Default is 'DEVICE_MANAGEMENT' used for device integrations"}},"required":["password","username"]},"SNMPDomotzEye":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"The ID of the SNMP Domotz Sensor"},"category":{"type":"string","enum":["OTHER","CONSUMABLE","CPU","DISK_SPACE","MEMORY","NETWORK_TRAFFIC","TEMPERATURE"],"description":"The category of the OID"},"value_type":{"type":"string","enum":["STRING","NUMERIC","ENUM"],"description":"The type of the OID"},"oid":{"type":"string","description":"The OID string"},"name":{"type":"string","description":"The name of the Domotz Sensors"},"latest_value":{"type":"string","description":"The value retrieved on the OID"},"latest_enum_value":{"type":"string","description":"The enum value retrieved on the OID"},"last_update":{"type":"string","format":"date-time","description":"The timestamp of the latest update"},"device_id":{"type":"integer","format":"int32","description":"The unique identifier of the device"}},"required":["category","id","last_update","latest_value","name","oid","value_type"],"description":"Information about a configured SNMP Domotz Sensor"},"SNMPDomotzEyeCreation":{"type":"object","properties":{"oid":{"type":"string","description":"The OID string"},"name":{"type":"string","description":"The name of the Domotz Sensors"},"category":{"type":"string","enum":["OTHER","CONSUMABLE","CPU","DISK_SPACE","MEMORY","NETWORK_TRAFFIC","TEMPERATURE"],"description":"The category of the OID"},"value_type":{"type":"string","enum":["STRING","NUMERIC","ENUM"],"description":"The type of the OID"}},"required":["category","name","oid","value_type"],"description":"SNMP Domotz Sensor Data"},"SNMPDomotzEyeTriggerFunction":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"The unique identifier of the SNMP Trigger function"},"name":{"type":"string","description":"The name of the function"},"cardinality":{"type":"integer","format":"int32","description":"The number of arguments of the function"},"value_types":{"type":"string","enum":["STRING","NUMERIC","ENUM"],"description":"The type of the operands"}},"required":["cardinality","id","name","value_types"],"description":"Information about a trigger function"},"DeviceEyeSNMPHistorySample":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"The time the sample was reported to Domotz"},"value":{"type":"string"},"enum_value":{"type":"string"}},"required":["timestamp","value"]},"SNMPDomotzEyeTrigger":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"The unique identifier of the SNMP Trigger"},"name":{"type":"string","description":"The name of the trigger"},"function_id":{"type":"integer","format":"int32","description":"The unique identifier of the function assigned to the trigger"},"operands":{"type":"array","items":{"type":"string"},"description":"The operands for the function"},"creation_time":{"type":"string","format":"date-time"},"alert":{"type":"object","description":"The alerts details","properties":{"email":{"type":"boolean","description":"True if the email alert is active"},"mobile":{"type":"boolean","description":"True if the mobile alert is active"}}}},"required":["function_id","id","name","operands"],"description":"Information about a trigger"},"SNMPDomotzSnmpTriggerCreation":{"type":"object","properties":{"function_id":{"type":"integer","format":"int32","description":"The unique identifier of the sensor function"},"name":{"type":"string","description":"The name of the trigger"},"operands":{"type":"array","items":{"type":"string"},"description":"The operands for the function"}},"required":["function_id","name","operands"],"description":"SNMP Trigger"},"SNMPDomotzSnmpTriggerAlertCreation":{"type":"object","properties":{},"description":"SNMP Trigger Alert"},"TCPDomotzEye":{"type":"object","properties":{"port":{"type":"integer","format":"int32","description":"The port number"},"id":{"type":"integer","format":"int32","description":"The ID of the TCP sensor"},"status":{"type":"string","enum":["UP","DOWN"],"description":"The status of the TCP service"},"last_update":{"type":"string","format":"date-time","description":"The timestamp of the latest update"},"device_id":{"type":"integer","format":"int32","description":"The unique identifier of the device"}},"required":["id","last_update","port","status"],"description":"Information about a configured TCP sensor"},"TCPDomotzEyeCreation":{"type":"object","properties":{"port":{"type":"integer","format":"int32","description":"The port number"}},"required":["port"],"description":"TCP sensor Data"},"DeviceHistory":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"The time the sample was reported to Domotz"},"type":{"type":"string","enum":["IP_CHANGE","CREATED","UP","DOWN"],"description":"The device event type"},"details":{"type":"object","properties":{"new_ip":{"type":"array","items":{"type":"string"},"description":"The new IP addresses"},"old_ip":{"type":"array","items":{"type":"string"},"description":"The old IP addresses"}}}},"required":["timestamp","type"]},"DeviceRTDHistorySample":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"The time the sample was reported to Domotz"},"min":{"type":"string","pattern":"^-?\\d+(\\.\\d{1})?$"},"median":{"type":"string","pattern":"^-?\\d+(\\.\\d{1})?$"},"max":{"type":"string","pattern":"^-?\\d+(\\.\\d{1})?$"},"lost_packet_count":{"type":"integer","format":"int32"},"sent_packet_count":{"type":"integer","format":"int32"}},"required":["timestamp"]},"DeviceInventoryField":{"type":"object","properties":{"key":{"type":"string","maxLength":25,"minLength":1,"pattern":"/^[a-z][a-z0-9_-]{0,24}]$/","description":"The name of the field, unique in the Inventory"},"value":{"type":"string","maxLength":255},"creation_time":{"type":"string","format":"date-time"}},"required":["key","value"],"description":"A device inventory field"},"DeviceMonitoringState":{"type":"object","properties":{"monitoring_state":{"type":"string","enum":["MANAGED","UNMANAGED"],"description":"The value that the device monitoring state will assume"}},"required":["monitoring_state"]},"DeviceOutlet":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the outlet"},"device_id":{"type":"integer","format":"int32","description":"Unique identifier of the device the outlet belongs to"},"name":{"type":"string","description":"Name of the outlet discovered automatically"},"custom_name":{"type":"string","description":"Name of the outlet assigned by the user"},"power":{"type":"string","enum":["ON","OFF","unknown"],"description":"The current power state of the outlet"},"can_write":{"type":"boolean","description":"True if power actions can be executed on the outlet"},"links":{"type":"array","items":{"type":"integer","format":"int32"},"description":"List of device ids attached to the outlet"}},"required":["can_write","device_id","id","links","name","power"],"description":"Power outlet of a device"},"DeviceOutletUpdate":{"type":"object","properties":{"custom_name":{"type":"string","description":"Custom name to assign to the outlet"}},"description":"Outlet update data"},"SNMPDomotzAuthentication":{"type":"object","properties":{"version":{"type":"string","enum":["V2","V1","V3_AUTH_PRIV","V3_NO_AUTH","V3_AUTH_NO_PRIV"],"description":"The configured SNMP version"},"snmp_read_community":{"type":"string"},"snmp_write_community":{"type":"string"},"username":{"type":"string"},"authentication_protocol":{"type":"string","enum":["MD5","SHA","SHA-224","SHA-256","SHA-384","SHA-512"],"description":"The SNMP authentication protocol"},"authentication_key":{"type":"string"},"encryption_protocol":{"type":"string","enum":["DES","AES","AES-256B","AES-256R"],"description":"The SNMP encryption protocol"},"encryption_key":{"type":"string"}},"required":["version"],"description":"The SNMP authentication setting of a device"},"DeviceSnmpCommunity":{"type":"object","properties":{"read":{"type":"string","description":"Defines new read snmp community"},"write":{"type":"string","description":"Defines new write snmp community (defaults to read community if not used)"}},"required":["read"]},"DeviceUptime":{"type":"object","properties":{"uptime":{"type":"string","description":"The uptime percentage of the device"},"online_seconds":{"type":"integer","format":"int32"},"total_seconds":{"type":"integer","format":"int32"},"agent_uptime":{"type":"string","description":"The uptime percentage of the collector"},"downtime_intervals":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"}}}}},"required":["agent_uptime","online_seconds","total_seconds","uptime"]},"DeviceVariable":{"type":"object","properties":{"path":{"type":"string","description":"The variable path"},"id":{"type":"integer","format":"int32","description":"The ID of the variable"},"has_history":{"type":"boolean","description":"If true the history of the variable can be retrieved with <a href='#getvariablehistory'> getVariableHistory</a>"},"value":{"type":"string","description":"The variable value"},"previous_value":{"type":"string","description":"The previous value of the variable"},"unit":{"type":"string","description":"The unit of measurement"},"label":{"type":"string","description":"The label"},"metric":{"type":"string","description":"The metric"},"value_update_time":{"type":"string","format":"date-time","description":"The update time of the variable value"},"creation_time":{"type":"string","format":"date-time","description":"The creation time of the variable"}},"required":["has_history","id","path"],"description":"The representation of a device variable"},"VariableHistorySample":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"The time the sample was reported to Domotz"},"value":{"type":"string","description":"The sample value"}},"required":["timestamp","value"]},"AgentDeviceApplication":{"type":"object","properties":{"application_id":{"type":"string"},"name":{"type":"string"},"version":{"type":"string"},"first_time_seen":{"type":"string","format":"date-time"},"last_update":{"type":"string","format":"date-time"},"publisher":{"type":"string"},"install_location":{"type":"string"},"info":{"type":"string"},"install_date":{"type":"string","format":"date-time"},"last_modified":{"type":"string","format":"date-time"},"device_id":{"type":"string"}},"required":["application_id","device_id","first_time_seen"],"description":"The list of applications of all devices belonging to the collector"},"ExternalHost":{"type":"object","properties":{"host":{"type":"string","description":"Hostname or IP Address"},"name":{"type":"string","description":"Device Name"}},"required":["host","name"]},"SNMPDomotzAgentEye":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"The ID of the SNMP Domotz Sensor"},"category":{"type":"string","enum":["OTHER","CONSUMABLE","CPU","DISK_SPACE","MEMORY","NETWORK_TRAFFIC","TEMPERATURE"],"description":"The category of the OID"},"value_type":{"type":"string","enum":["STRING","NUMERIC","ENUM"],"description":"The type of the OID"},"oid":{"type":"string","description":"The OID string"},"name":{"type":"string","description":"The name of the Domotz Sensors"},"device_id":{"type":"integer","format":"int32","description":"The unique identifier of the device"}},"required":["category","id","name","oid","value_type"],"description":"Information about a configured SNMP Domotz Sensor"},"MinimalDevice":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"display_name":{"type":"string"},"first_seen_on":{"type":"string","format":"date-time"},"protocol":{"type":"string","enum":["IP","DUMMY","IP_EXTERNAL"]},"ip_addresses":{"type":"array","items":{"type":"string","pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"}},"vendor":{"type":"string","maxLength":100},"type":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"detected_id":{"type":"integer","format":"int32"},"label":{"type":"string"}},"description":"The device type, if recognised by domotz"},"model":{"type":"string","maxLength":100},"mac":{"type":"string"}},"required":["display_name","id","protocol"],"description":"A minimal representation of a device, containing only the most essential fields."},"DeviceRTDStatistics":{"type":"object","properties":{"device_id":{"type":"integer","format":"int32"},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the latest update"},"avg_max":{"type":"string","pattern":"^-?\\d+(\\.\\d{1})?$"},"avg_median":{"type":"string","pattern":"^-?\\d+(\\.\\d{1})?$"},"avg_min":{"type":"string","pattern":"^-?\\d+(\\.\\d{1})?$"},"latest_median":{"type":"string","pattern":"^-?\\d+(\\.\\d{1})?$","description":"The median value of the latest collection sample"},"latest_lost_packet_count":{"type":"integer","format":"int32","description":"The number of lost packets of the latest collection sample"},"latest_sent_packet_count":{"type":"integer","format":"int32","description":"The number of sent packets of the latest collection sample"}},"required":["device_id","timestamp"]},"AgentDeviceVariable":{"type":"object","properties":{"path":{"type":"string","description":"The variable path"},"id":{"type":"integer","format":"int32","description":"The ID of the variable"},"has_history":{"type":"boolean","description":"If true the history of the variable can be retrieved with <a href='#getvariablehistory'> getVariableHistory</a>"},"value":{"type":"string","description":"The variable value"},"previous_value":{"type":"string","description":"The previous value of the variable"},"unit":{"type":"string","description":"The unit of measurement"},"label":{"type":"string","description":"The label"},"metric":{"type":"string","description":"The metric"},"value_update_time":{"type":"string","format":"date-time","description":"The update time of the variable value"},"creation_time":{"type":"string","format":"date-time","description":"The creation time of the variable"},"device_id":{"type":"integer","format":"int32","description":"The ID of the device"}},"required":["device_id","has_history","id","path"],"description":"The representation of a device variable"},"DomotzEyesUsageInformation":{"type":"object","properties":{"limit":{"type":"integer","format":"int32","description":"Number of allowed Domotz Sensors for the collector"},"usage":{"type":"object","properties":{"total":{"type":"integer","format":"int32","description":"Number of configured Domotz Sensors on the collector."},"tcp":{"type":"integer","format":"int32","description":"Number of configured Domotz Sensors of type `tcp` on the collector."},"snmp":{"type":"integer","format":"int32","description":"Number of configured Domotz Sensors of type `snmp` on the collector."}}}},"description":"Information about Domotz Sensors current usage and limits"},"AgentHistory":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"The time the sample was reported to Domotz"},"type":{"type":"string","enum":["CONNECTION_RECOVERED","CONNECTION_LOST","UP","DOWN"],"description":"The collector event type"}},"required":["timestamp","type"]},"NetworkSpeedSample":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"The time the sample was reported to Domotz"},"values":{"type":"array","items":{"type":"integer","format":"int32"},"description":"A pair of values: the download and upload speed, in Bit Per Seconds (bps), as measured by the Agent"}},"description":"A Network Speed Sample is the result of the measurement of the Internet download and upload\n     speed, in bits per second, taken by the Agent"},"AgentIpConflict":{"type":"object","properties":{"ip":{"type":"string"},"conflicting_devices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"mac":{"type":"string"}}}}}},"DomotzMetricUsageInformation":{"type":"object","properties":{"limit":{"type":"integer","format":"int32","description":"Number of allowed Domotz Sensors for the collector"},"usage":{"type":"object","properties":{"total":{"type":"integer","format":"int32","description":"Number of configured Domotz Sensors on the collector."},"custom_driver":{"type":"integer","format":"int32","description":"Number of configured Domotz Sensors of type `driver` on the collector."},"tcp":{"type":"integer","format":"int32","description":"Number of configured Domotz Sensors of type `tcp` on the collector."},"snmp":{"type":"integer","format":"int32","description":"Number of configured Domotz Sensors of type `snmp` on the collector."}}}},"description":"Information about Domotz Sensors current usage and limits"},"DHCPDeviceDiscoverySetting":{"type":"object","properties":{"dhcp_device_discovery":{"type":"boolean","description":"When set to 'true', the collector will create devices that initiate DHCP requests even if they fail to obtain an IP address"}},"required":["dhcp_device_discovery"]},"AgentExternalHostScanPolicy":{"type":"object","properties":{"icmp":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable/disable this scan method"}},"required":["enabled"]},"tcp_syn":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable or disable this scan method. The collector sends a SYN packet to the target host and waits for a response. If the target responds with a SYN/ACK packet or an RST packet, the host is considered up."},"ports":{"type":"array","items":{"type":"integer","format":"int32"},"description":"The list of TCP port to be scanned with this method. The list cannot be empty if this method is enabled"}},"required":["enabled","ports"]},"tcp_ack":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable/disable this scan method. The collector sends a TCP packet with only the acknowledgement (ACK) flag set, and a responding reset (RST) packet from the host reveals its presence."},"ports":{"type":"array","items":{"type":"integer","format":"int32"},"description":"The list of TCP port to be scanned with this method. The list cannot be empty if this method is enabled"}},"required":["enabled","ports"]}}},"AgentInterfacesPolicy":{"type":"object","properties":{"policy":{"type":"string","enum":["allow","deny"]},"rules":{"type":"array","items":{"type":"string"},"description":"Rules can be expressed as lists of case-insensitive strings representing the names of the interfaces to be matched. The `*` wildcard can be used to match variable parts of the interface name. Example: `[\"eth*\", \"tun0\"]`"}},"required":["policy","rules"]},"AgentIPScanPolicy":{"type":"object","properties":{"forced_ip_addresses":{"type":"array","items":{"type":"string"},"description":"The list of IP addresses always checked by the collector. By default the list is empty and the collector performs hosts discovery automatically. The addresses must be expressed in dotted decimal notation and must belong to private networks (see <a href='https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml/'>iana-ipv4-special-registry</a>)"},"forced_ip_ranges":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","description":"192.168.1.1"},"end":{"type":"string","description":"192.168.1.10"}},"required":["end","start"]},"description":"The list of IP address ranges always checked by the collector. By default the list is empty and the collector performs hosts discovery automatically. The addresses must be expressed in dotted decimal notation and must belong to private networks (see <a href='https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml/'>iana-ipv4-special-registry</a>)"}},"required":["forced_ip_addresses","forced_ip_ranges"]},"RoutedNetwork":{"type":"object","properties":{"address":{"type":"string"},"netmask":{"type":"integer","format":"int32"},"name":{"type":"string"}},"required":["address","name","netmask"]},"NetworkTopology":{"type":"object","properties":{"edges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"integer","format":"int32"},"to":{"type":"integer","format":"int32"}},"required":["from","to"]},"description":"The list of edges. Each item contains the IDs of the connected devices."}},"required":["edges"]},"AgentUptime":{"type":"object","properties":{"uptime":{"type":"string","description":"The uptime percentage of the collector"},"online_seconds":{"type":"integer","format":"int32"},"total_seconds":{"type":"integer","format":"int32"},"agent_id":{"type":"integer","format":"int32"},"downtime_intervals":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"}}}}},"required":["agent_id","online_seconds","total_seconds","uptime"]},"AgentVariable":{"type":"object","properties":{"path":{"type":"string","description":"The variable path"},"id":{"type":"integer","format":"int32","description":"The ID of the variable"},"has_history":{"type":"boolean","description":"If true the history of the variable can be retrieved with <a href='#getvariablehistory'> getVariableHistory</a>"},"value":{"type":"string","description":"The variable value"},"previous_value":{"type":"string","description":"The previous value of the variable"},"unit":{"type":"string","description":"The unit of measurement"},"label":{"type":"string","description":"The label"},"metric":{"type":"string","description":"The metric"},"value_update_time":{"type":"string","format":"date-time","description":"The update time of the variable value"},"creation_time":{"type":"string","format":"date-time","description":"The creation time of the variable"}},"required":["has_history","id","path"],"description":"The representation of a collector variable"},"AlertProfile":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"The id of the event profile"},"name":{"type":"string","description":"The symbolic name associated to the profile"},"is_enabled":{"type":"boolean","description":"true if the event profile is enabled, false otherwise"},"description":{"type":"string","description":"The description of the alert profile"},"tag":{"type":"string","description":"A label associated to the profile"},"events":{"type":"array","items":{"type":"string","enum":["device_status_up","device_status_down","device_heartbeat_lost","device_ip_change","device_snmp","device_tcp","device_rtd","device_configuration_change","device_configuration_misalignment","agent_feature_discovery","agent_status_up","agent_status_down","agent_speed_test","agent_device_discovery","agent_security_issue","agent_wan_change","agent_lan_change"]},"description":"The list of events associated to the profile"}},"required":["id"]},"MibDiscoveryEvent":{"allOf":[{"$ref":"#/components/schemas/FeatureDiscoveryEvent"},{"type":"object","properties":{"data":{"type":"object","properties":{"value":{"type":"object","properties":{"data":{"type":"object","properties":{"mib":{"type":"array","items":{"type":"string"},"description":"The discovered MIB"}}}}},"agent":{"$ref":"#/components/schemas/AgentBase"},"device":{"$ref":"#/components/schemas/AbstractDevice"}}}},"description":"Triggered when a new feature MIB is discovered on a device"}]},"FeatureDiscoveryEvent":{"type":"object","properties":{"name":{"type":"string","enum":["agent_feature_discovery"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"device_id":{"type":"integer","format":"int32","description":"The `id` of the `device`"},"feature":{"type":"string","enum":["mib_discovery"],"description":"The discovered feature"},"value":{"type":"object","properties":{"data":{"type":"object","additionalProperties":true}}},"agent":{"$ref":"#/components/schemas/AgentBase"},"device":{"$ref":"#/components/schemas/AbstractDevice"}}}},"required":["name","timestamp"],"description":"Triggered when a new feature is discovered on a device"},"AgentSecurityIssueEvent":{"type":"object","properties":{"name":{"type":"string","enum":["agent_security_issue"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"value":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["TCP_OPEN_PORT","UPNP_IGD_FORWARD","UPNP_IGD_SERVICE"]},"port":{"type":"integer","format":"int32"}}}},"agent":{"$ref":"#/components/schemas/AgentBase"}}}},"required":["name","timestamp"],"description":"Triggered when Domotz detects a security issue"},"AgentLANChangeEvent":{"type":"object","properties":{"name":{"type":"string","enum":["agent_lan_change"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"gateway":{"type":"object","properties":{"old":{"type":"string"},"new":{"type":"string"}}},"dns":{"type":"object","properties":{"old":{"type":"array","items":{"type":"string"}},"new":{"type":"array","items":{"type":"string"}}}},"dhcp":{"type":"object","properties":{"old":{"type":"array","items":{"type":"string"}},"new":{"type":"array","items":{"type":"string"}}}},"agent":{"$ref":"#/components/schemas/AgentBase"},"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"}},"required":["agent_id"]}},"required":["name","timestamp"],"description":"Triggered when gateway, DNS servers, DHCP servers change"},"AgentWANChangeEvent":{"type":"object","properties":{"name":{"type":"string","enum":["agent_wan_change"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"ip":{"type":"object","properties":{"old":{"type":"object","properties":{"address":{"type":"string"},"name":{"type":"string"}}},"new":{"type":"object","properties":{"address":{"type":"string"},"name":{"type":"string"}}}}},"provider":{"type":"object","properties":{"old":{"type":"object","properties":{"country":{"type":"string"},"descr":{"type":"string"},"inetnum":{"type":"string"},"netname":{"type":"string"}}},"new":{"type":"object","properties":{"country":{"type":"string"},"descr":{"type":"string"},"inetnum":{"type":"string"},"netname":{"type":"string"}}}}},"agent":{"$ref":"#/components/schemas/AgentBase"},"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"}},"required":["agent_id"]}},"required":["name","timestamp"],"description":"Triggered when ISP or Public IP address changes"},"AgentSpeedTestEvent":{"type":"object","properties":{"name":{"type":"string","enum":["agent_speed_test"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"threshold":{"type":"object","properties":{"upload":{"type":"integer","format":"int32","description":"The configured upload threshold"},"download":{"type":"integer","format":"int32","description":"The configured download threshold"}}},"value":{"type":"object","properties":{"upload":{"type":"integer","format":"int32","description":"The measured upload value"},"download":{"type":"integer","format":"int32","description":"The measured download value"}}},"status":{"type":"string","enum":["SPEED_TEST_ISSUE_DETECTED","SPEED_TEST_ISSUE_RESOLVED"]},"agent":{"$ref":"#/components/schemas/AgentBase"}}}},"required":["name","timestamp"],"description":"Triggered when the measured Internet speed goes below the defined threshold"},"AgentStatusEvent":{"type":"object","properties":{"name":{"type":"string","enum":["agent_status"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"value":{"type":"string","enum":["UP","DOWN"]},"agent":{"$ref":"#/components/schemas/AgentBase"}}}},"required":["name","timestamp"],"description":"Triggered when the collector connectivity status changes"},"DeviceDiscoveryEvent":{"type":"object","properties":{"name":{"type":"string","enum":["agent_device_discovery"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"device_id":{"type":"integer","format":"int32","description":"The `id` of the `device`"},"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"agent":{"$ref":"#/components/schemas/AgentBase"},"device":{"$ref":"#/components/schemas/AbstractDevice"}}}},"required":["name","timestamp"],"description":"Triggered when a new device appears on the network"},"DeviceIPChangeEvent":{"type":"object","properties":{"name":{"type":"string","enum":["device_ip_change"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"old_ip_addresses":{"type":"array","items":{"type":"string"},"description":"The list of previous IP addresses"},"value":{"type":"array","items":{"type":"string"},"description":"The list of new IP addresses"},"agent":{"$ref":"#/components/schemas/AgentBase"},"device":{"$ref":"#/components/schemas/AbstractDevice"},"device_id":{"type":"integer","format":"int32","description":"The `id` of the `device`"}},"required":["device_id"]}},"required":["name","timestamp"],"description":"Triggered when the device IP address changes"},"DeviceHeartbeatLostEvent":{"type":"object","properties":{"name":{"type":"string","enum":["device_heartbeat_lost"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"agent":{"$ref":"#/components/schemas/AgentBase"},"device":{"$ref":"#/components/schemas/AbstractDevice"},"device_id":{"type":"integer","format":"int32","description":"The `id` of the `device`"}},"required":["device_id"]}},"required":["name","timestamp"],"description":"Triggered when a device does not respond to a ping"},"DeviceStatusChangeEvent":{"type":"object","properties":{"name":{"type":"string","enum":["device_status"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"value":{"type":"string","enum":["UP","DOWN"]},"agent":{"$ref":"#/components/schemas/AgentBase"},"device":{"$ref":"#/components/schemas/AbstractDevice"},"device_id":{"type":"integer","format":"int32","description":"The `id` of the `device`"}},"required":["device_id"]}},"required":["name","timestamp"],"description":"Triggered when the status of a device changes"},"DeviceSNMPEvent":{"type":"object","properties":{"name":{"type":"string","enum":["device_snmp"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"trigger_name":{"type":"string"},"value":{"type":"string","description":"The current value of the SNMP sensor"},"enum_value":{"type":"string","description":"The current enum value of the SNMP sensor if the OID is of type enum"},"agent":{"$ref":"#/components/schemas/AgentBase"},"device":{"$ref":"#/components/schemas/AbstractDevice"},"device_id":{"type":"integer","format":"int32","description":"The `id` of the `device`"}},"required":["device_id"]}},"required":["name","timestamp"],"description":"Triggered when the status of an SNMP value changes"},"MonitoringProfileStateChanged":{"type":"object","properties":{"name":{"type":"string","enum":["monitoring_profile_state_changed"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"value":{"type":"object","properties":{"current":{"type":"object","additionalProperties":true},"previous":{"type":"object","additionalProperties":true}}},"agent":{"$ref":"#/components/schemas/AgentBase"},"device":{"$ref":"#/components/schemas/AbstractDevice"},"variable":{"$ref":"#/components/schemas/DeviceVariable"},"monitoring_profile":{"type":"object","properties":{"severity":{"type":"string"},"name":{"type":"string"}},"required":["name"]},"state":{"type":"object","properties":{"current":{"type":"string"},"previous":{"type":"string"}}},"details":{"type":"object","additionalProperties":true},"metric":{"type":"string"}},"required":["metric"]}},"required":["name","timestamp"],"description":"Triggered when a monitoring profile state changes"},"DeviceConfigurationMisalignmentEvent":{"type":"object","properties":{"name":{"type":"string","enum":["device_configuration_misalignment"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"agent":{"$ref":"#/components/schemas/AgentBase"},"device":{"$ref":"#/components/schemas/AbstractDevice"},"device_id":{"type":"integer","format":"int32","description":"The `id` of the `device`"}},"required":["device_id"]}},"required":["name","timestamp"],"description":"Triggered when the device configuration becomes different from the startup one"},"DeviceConfigurationChangeEvent":{"type":"object","properties":{"name":{"type":"string","enum":["device_configuration_change"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"agent":{"$ref":"#/components/schemas/AgentBase"},"device":{"$ref":"#/components/schemas/AbstractDevice"},"device_id":{"type":"integer","format":"int32","description":"The `id` of the `device`"}},"required":["device_id"]}},"required":["name","timestamp"],"description":"Triggered when the device configuration changes"},"DeviceRTDIssueEvent":{"type":"object","properties":{"name":{"type":"string","enum":["device_rtd"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"threshold":{"type":"object","properties":{"latency":{"type":"integer","format":"int32","description":"The configured latency threshold"},"packet_loss_percentage":{"type":"integer","format":"int32","description":"The configured packet loss percentage threshold"}}},"value":{"type":"object","properties":{"latency":{"type":"integer","format":"int32","description":"The current latency value"},"packet_loss_percentage":{"type":"integer","format":"int32","description":"The current packet loss percentage  value"}}},"status":{"type":"string","enum":["RTD_ISSUE_DETECTED","RTD_ISSUE_RESOLVED"]},"agent":{"$ref":"#/components/schemas/AgentBase"},"device":{"$ref":"#/components/schemas/AbstractDevice"},"device_id":{"type":"integer","format":"int32","description":"The `id` of the `device`"}},"required":["device_id"]}},"required":["name","timestamp"],"description":"Triggered when the Round-Trip-Delay values of a device exceeds the defined thresholds"},"DeviceTCPEvent":{"type":"object","properties":{"name":{"type":"string","enum":["device_tcp"]},"timestamp":{"type":"string","format":"date-time","description":"The timestamp of the event"},"data":{"type":"object","properties":{"agent_id":{"type":"integer","format":"int32","description":"The `id` of the `collector`"},"value":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string","enum":["UP","DOWN"]},"port":{"type":"integer","format":"int32"}}}},"agent":{"$ref":"#/components/schemas/AgentBase"},"device":{"$ref":"#/components/schemas/AbstractDevice"},"device_id":{"type":"integer","format":"int32","description":"The `id` of the `device`"}},"required":["device_id"]}},"required":["name","timestamp"],"description":"Triggered when the status of a monitored TCP service changes"},"AlertProfileAgentBinding":{"type":"object","properties":{"alert_profile_id":{"type":"integer","format":"int32","description":"The id of the alert profile"}},"required":["alert_profile_id"]},"AlertProfileDeviceBinding":{"type":"object","properties":{"alert_profile_id":{"type":"integer","format":"int32","description":"The id of the alert profile"},"device_id":{"type":"integer","format":"int32"}},"required":["alert_profile_id","device_id"]},"Area":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"The identifier of the Area"},"name":{"type":"string","description":"The name of the Area"}},"required":["id","name"],"description":"Represents an area of the Company"},"Team":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"The identifier of the Team"},"name":{"type":"string","description":"The name of the Team"}},"required":["id","name"],"description":"Represents a team of the Company"},"TeamCreation":{"type":"object","properties":{"name":{"type":"string","description":"The Team's name"},"leader":{"type":"object","description":"The Team Leader","properties":{"name":{"type":"string","description":"The Team Leader's name"},"password":{"type":"string","description":"The Team Leader's password"},"details":{"type":"object","description":"The Team Leader's details","properties":{"display_name":{"type":"string","description":"The Team Leader's display name"}},"required":["display_name"]}},"required":["details","name","password"]}},"required":["leader","name"],"description":"Team Creation under specified Area"},"CustomDriver":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"The identifier of the Driver"},"name":{"type":"string","description":"Name of the Driver"},"type":{"type":"string","enum":["GENERIC","CONFIGURATION_MANAGEMENT"],"description":"The Driver type.\n Driver usage differs between types such as data collection and/or available actions"},"description":{"type":"string","description":"Description of the Driver"},"minimal_sample_period":{"type":"integer","format":"int32","description":"The minimal sampling interval of the Driver (in seconds)"},"is_valid":{"type":"boolean","description":"True if the Driver has valid code, False otherwise"},"requires_credentials":{"type":"boolean","description":"True if the Driver requires credentials to run, False otherwise"},"code_inspection":{"type":"object","description":"Result of the Driver code analysis","properties":{"has_independent_variables":{"type":"boolean","description":"True if the Driver creates independent variables on execution"},"has_table":{"type":"boolean","description":"True if the Driver creates a variable table on execution"},"has_parameters":{"type":"boolean","description":"True if the Driver uses parameters during execution"},"data_saving_functions":{"type":"array","items":{"type":"string"},"description":"A list of functions of the Driver that save data. Only a one of these can be executed on the same device at a time."}},"required":["data_saving_functions","has_independent_variables","has_parameters","has_table"]},"device_ids":{"type":"array","items":{"type":"integer","format":"int32"},"description":"List of the device IDs the Driver is applied on"}},"required":["code_inspection","device_ids","id","is_valid","minimal_sample_period","name","requires_credentials","type"],"description":"A Driver that can be applied on devices"},"CustomDriverDetails":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"The identifier of the Driver"},"name":{"type":"string","description":"Name of the Driver"},"type":{"type":"string","enum":["GENERIC","CONFIGURATION_MANAGEMENT"],"description":"The Driver type.\n Driver usage differs between types such as data collection and/or available actions"},"description":{"type":"string","description":"Description of the Driver"},"minimal_sample_period":{"type":"integer","format":"int32","description":"The minimal sampling interval of the Driver (in seconds)"},"is_valid":{"type":"boolean","description":"True if the Driver has valid code, False otherwise"},"requires_credentials":{"type":"boolean","description":"True if the Driver requires credentials to run, False otherwise"},"code_inspection":{"type":"object","description":"Result of the Driver code analysis","properties":{"has_independent_variables":{"type":"boolean","description":"True if the Driver creates independent variables on execution"},"has_table":{"type":"boolean","description":"True if the Driver creates a variable table on execution"},"has_parameters":{"type":"boolean","description":"True if the Driver uses parameters during execution"},"data_saving_functions":{"type":"array","items":{"type":"string"},"description":"A list of functions of the Driver that save data. Only a one of these can be executed on the same device at a time."}},"required":["data_saving_functions","has_independent_variables","has_parameters","has_table"]},"code":{"type":"string","description":"The source code of the Driver"},"actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"Identifier of the Driver action. Used in execution API Values range 1-30 depending on defined actions in the Driver code"},"line":{"type":"integer","format":"int32","description":"Line number of the function declaration for the action"},"label":{"type":"string","description":"The label of the action, shown as the button label in the ui when the Driver is applied to a device"},"documentation":{"type":"string","description":"Detailed description of the Driver action"}},"required":["documentation","id","label","line"]},"description":"A list of the custom actions that can be executed by this Driver (empty if none exist)"},"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","description":"Error message"},"line":{"type":"integer","format":"int32","description":"The line number in the code that raised the error."},"type":{"type":"string","description":"Type of the error"}},"required":["type"]},"description":"A list of errors in this Driver's code. Only returned if the Driver's code is invalid and cannot be executed"},"parameters":{"type":"array","items":{"type":"object","properties":{"default_value":{"description":"Default value of the parameter.\nIts type can be either a float, a string or a list based on its value_type."},"description":{"type":"string","description":"Description of the parameter"},"id":{"type":"integer","format":"int32","description":"Unique id"},"value_type":{"type":"string","enum":["STRING","NUMBER","LIST"],"description":"Value type of the parameter.\nNumbers are treated as floats, list items are treated as strings"},"name":{"type":"string","description":"The identifier by which the parameter is called in the Driver script"}},"required":["id","name","value_type"]},"description":"A list of parameters used by this Driver. Only returned if the Driver has parameters defined"}},"required":["actions","code","code_inspection","id","is_valid","minimal_sample_period","name","requires_credentials","type"],"description":"Detailed information for a Driver that can be applied on devices"},"CustomDriverAssociationCreationResult":{"type":"object","properties":{"result":{"type":"integer","format":"int32","description":"The id of the newly created association. Returned in case of success."},"error":{"type":"string","description":"Description of the error that occurred. Returned in case of failure."}},"description":"The outcome of applying a Driver to a device"},"CustomDriverAssociationCreation":{"type":"object","properties":{"sample_period":{"type":"integer","format":"int32","description":"The sampling interval of the Driver (in seconds). Must be one of [300, 600, 900, 1800, 3600, 7200, 21600, 43200, 86400] and equal to or greater than the minimal_sample_period of the Driver. \nDefault value is the minimal_sample_period of the Driver"},"credentials":{"type":"object","description":"The credentials for the Driver (with scope DeviceAccessKeyPurposeModel.CUSTOM_DRIVER_MANAGEMENT).\nOnly required if the Driver requires credentials, and there are none saved for the device","properties":{"username":{"type":"string","description":"username"},"password":{"type":"string","description":"password"}},"required":["password","username"]},"parameters":{"type":"array","items":{"type":"object","properties":{"value":{"description":"Value of the parameter for the association.\nIts type can be either a float, a string or a list based on its value_type.\nThe following restrictions apply based on the value type: \n<ul><li>STRING: maximum 100 characters</li><li>LIST: maximum 50 items, maximum 100 characters each</li></ul>"},"custom_driver_parameter_id":{"type":"integer","format":"int32","description":"The id of the parameter on the Driver level"}},"required":["custom_driver_parameter_id"]},"description":"A list of parameters to be used for the association. Only required if the Driver uses parameters. Parameters with default values at the Driver level can be skipped."}},"description":"Properties for associating a Driver and a device"},"CustomDriverAssociationParameterCreation":{"type":"object","properties":{"parameters":{"type":"array","items":{"type":"object","properties":{"value":{"description":"Value of the parameter for the association.\nIts type can be either a float, a string or a list based on its value_type.\nThe following restrictions apply based on the value type: \n<ul><li>STRING: maximum 100 characters</li><li>LIST: maximum 50 items, maximum 100 characters each</li></ul>"},"custom_driver_parameter_id":{"type":"integer","format":"int32","description":"The id of the parameter on the Driver level"}},"required":["custom_driver_parameter_id"]}}},"required":["parameters"],"description":"Creation data for multiple association parameters"},"CustomDriverAssociation":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"The id of the association"},"custom_driver_id":{"type":"integer","format":"int32","description":"The id of the Driver"},"device_id":{"type":"integer","format":"int32","description":"The id of the device the Driver is applied to"},"last_inspection_time":{"type":"string","format":"date-time","description":"The last time (datetime) the device inspection was executed"},"sample_period":{"type":"integer","format":"int32","description":"The sampling interval of the Driver (in seconds)"},"status":{"type":"string","enum":["ENABLED","DISABLED"],"description":"<ul><li>\n*ENABLED*: The association is enabled and running\n</li><li>\n*DISABLED*: The association is disabled due to failure\n</li></ul>"},"used_variables":{"type":"integer","format":"int32","description":"The number of variables used by this Driver association"},"parameters":{"type":"array","items":{"type":"object","properties":{"value":{"description":"Value of the parameter used for the association.\nIn case it is not set on the association level, the Driver default is shown.\nEmpty if the parameter was added to the Driver without a default value after the association was created"},"description":{"type":"string","description":"Description of the parameter"},"custom_driver_parameter_id":{"type":"integer","format":"int32","description":"The id of the parameter on the Driver level"},"value_type":{"type":"string","enum":["STRING","NUMBER","LIST"],"description":"Value type of the parameter.\nNumbers are treated as floats, list items are treated as strings"},"name":{"type":"string","description":"The identifier by which the parameter is called in the Driver script"}},"required":["custom_driver_parameter_id","name","value_type"]},"description":"Parameters used in the association"}},"required":["custom_driver_id","device_id","id","last_inspection_time","sample_period","status","used_variables"],"description":"An association between a Driver and a device"},"DeviceProfile":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"Device profile id"},"name":{"type":"string","description":"Device profile name"},"description":{"type":"string","description":"Device profile description"},"last_modified":{"type":"string","format":"date-time","description":"The last time the device profile was edited"},"creation_time":{"type":"string","format":"date-time","description":"The time the device profile was created"},"modified_by":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"User id"},"name":{"type":"string","description":"Username"}},"description":"The user that edited the device profile"},"modules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"Module id"},"module_type":{"type":"string","enum":["INFO","SHARED_ALERT","SNMP_CUSTOM_OID","SNMP_PRECONFIGURED_SENSOR","TCP_SENSOR"],"description":"Module type"},"is_active":{"type":"boolean","description":"Module status"},"last_modified":{"type":"string","format":"date-time","description":"The last time the device profile module was edited"},"creation_time":{"type":"string","format":"date-time","description":"The time the device profile module was added"},"apply_mode":{"type":"string","enum":["REPLACE","ADDITIVE"],"description":"the mode used to apply the module configuration"}},"required":["apply_mode","creation_time","id","is_active","last_modified","module_type"]},"description":"The list of modules associated to the device profile"}},"required":["creation_time","description","id","last_modified","modified_by","modules","name"]},"DeviceProfileApplyRequest":{"type":"object","properties":{"device_ids":{"type":"array","items":{"type":"integer","format":"int32"},"description":"The list of device ids on which to apply the device profile"}},"required":["device_ids"]},"InventoryField":{"allOf":[{"$ref":"#/components/schemas/WriteInventoryField"},{"type":"object","properties":{"key":{"type":"string","maxLength":25,"minLength":1,"pattern":"/^[a-z][a-z0-9_-]{0,24}]$/","description":"The name of the field, unique in the Inventory"},"defined_by_user":{"type":"integer","format":"int32","description":"The `id` of the user that defined the inventory field - if different from your id, this field can't be deleted or changed"},"creation_time":{"type":"string","format":"date-time"}},"required":["key"],"description":"DTO Returned by the API describing an Inventory Field"}]},"WriteInventoryField":{"type":"object","properties":{"label":{"type":"string","maxLength":100,"description":"A detailed description of the field, for documentation"}},"required":["label"],"description":"DTO Used for creating/updating Inventory fields"},"APIUsageInformation":{"type":"object","properties":{"daily_limit":{"type":"integer","format":"int32","description":"Number of allowed calls to the API in a 24 hours span."},"concurrent_allowed":{"type":"integer","format":"int32","description":"Number of allowed calls to the API in a minute."},"daily_usage":{"type":"integer","format":"int32","description":"Number of API call performed in the last 24 hours. "},"by_key":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The mnemonic API key name"},"count":{"type":"integer","format":"int32","description":"The number of calls done using this key in the last 24 hours"},"id":{"type":"integer","format":"int32","description":"The ID of the API key"}}}},"by_ip":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The IP address"},"count":{"type":"integer","format":"int32","description":"The number of calls originated from that IP address"}}}},"by_resource":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The base resource name"},"count":{"type":"integer","format":"int32","description":"The number of calls for the resource"}}}}},"description":"Information about Domotz API current usage and usage limits"},"DeviceBaseType":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"An unique identifier of the type, referred in the `Device` entity"},"identifier":{"type":"string","description":"The name of the type"},"label":{"type":"string","description":"A human-readable short description of the type   "},"vital":{"type":"boolean","description":"Whether a device of this type will be marked as `VITAL` as soon as recognised"}},"description":"A device type, either set by the user or as identified by the Domotz system"},"DetectedDeviceType":{"type":"object","properties":{"id":{"type":"integer","format":"int32","description":"An unique identifier of the type, referred in the `Device` entity"},"identifier":{"type":"string","description":"The name of the type"},"label":{"type":"string","description":"A human-readable short description of the type"},"type_id":{"type":"integer","format":"int32","description":"The corresponding `device type` "},"capabilities":{"type":"array","items":{"type":"string"},"description":"The features of the device"}},"description":"A device type, detected by the Domotz device identification feature"},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string"}}}},"securitySchemes":{"api_key":{"type":"apiKey","name":"X-Api-Key","in":"header","description":"Create your API Key from the <a href=\"https://portal.domotz.com/portal/settings/services?selected_menu=api_keys\">Domotz Portal</a> or contact us"}}},"servers":[[{"url":"https://api-us-east-1-cell-1.domotz.com/public-api/v1/"}]],"security":[{"api_key":[]}]}