{"components":{"schemas":{"Action":{"additionalProperties":false,"properties":{"action_type":{"$ref":"#/components/schemas/ActionType","description":"Action type."},"action_type_id":{"description":"Action type identifier.","examples":[101],"format":"int64","type":"integer"},"description":{"description":"Human-readable description.","examples":["This action is for rebooting the device"],"type":"string"},"devices":{"description":"Devices.","items":{"$ref":"#/components/schemas/DeviceAction"},"type":["array","null"]},"id":{"description":"Unique identifier for this resource.","examples":[1],"format":"int64","type":"integer"},"payload":{"contentEncoding":"base64","description":"payload","examples":["SGVsbG8sIFdvcmxkIQ=="],"type":"string"},"progression":{"description":"Action progress percent.","examples":[75],"format":"int64","type":"integer"},"registry_id":{"description":"Registry identifier.","examples":[75],"format":"int64","type":"integer"}},"required":["id","action_type_id","devices","payload","progression","registry_id"],"type":"object"},"ActionType":{"additionalProperties":false,"properties":{"capability_name":{"description":"Capability name associated with the encoder or action type.","examples":["Reboot"],"type":"string"},"created_at":{"description":"Creation timestamp in ISO 8601 format.","examples":["2024-09-30T12:00:00Z"],"type":"string"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","examples":["2024-09-30T12:45:00Z"],"type":"string"},"delivering_timeout":{"description":"Delivering timeout in seconds.","examples":[90],"format":"int64","type":"integer"},"execution_timeout":{"description":"Execution timeout in seconds.","examples":[60],"format":"int64","type":"integer"},"id":{"description":"Unique identifier for this resource.","examples":[123],"format":"int64","type":"integer"},"max_retries":{"description":"Max retries.","examples":[3],"format":"int64","type":"integer"},"name":{"description":"Human-readable name.","examples":["Example Task"],"type":"string"},"priority":{"description":"Priority.","examples":[5],"format":"int64","type":"integer"},"project_id":{"description":"Project identifier.","examples":[1],"format":"int64","type":"integer"},"type":{"description":"Resource type.","examples":[1],"format":"int64","type":"integer"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","examples":["2024-09-30T12:30:00Z"],"type":"string"}},"required":["id","project_id","name","type"],"type":"object"},"Alert":{"additionalProperties":false,"properties":{"conditions_triggering":{"description":"Telemetry conditions that are currently active and causing the alert to remain open.","items":{"$ref":"#/components/schemas/ConditionTriggering"},"type":["array","null"]},"created_at":{"description":"Timestamp when the alert was created or first triggered, in ISO 8601 format.","examples":["2024-10-02T18:00:00Z"],"type":"string"},"device_id":{"description":"Device whose telemetry caused the alert to trigger.","examples":[1],"format":"int64","type":"integer"},"id":{"description":"Unique identifier for this alert instance.","examples":[1],"format":"int64","type":"integer"},"level":{"description":"Severity level raised when the alert fires.","enum":["info","advisory","warning","minor","major","critical"],"examples":["critical"],"type":"string"},"project_id":{"description":"Project identifier that owns this alert.","examples":[1],"format":"int64","type":"integer"},"rule_id":{"description":"Identifier of the alert rule that triggered this alert.","examples":[1],"format":"int64","type":"integer"},"stopped_at":{"description":"Timestamp when the alert stopped because the triggering conditions were no longer active; null while the alert is open, in ISO 8601 format.","examples":["2024-10-02T18:00:00Z"],"type":["string","null"]}},"required":["id","rule_id","device_id","level","created_at","stopped_at"],"type":"object"},"AlertCondition":{"additionalProperties":false,"properties":{"hysteresis":{"description":"Hysteresis value used to avoid rapid alert flapping when the incoming value oscillates around the threshold.","examples":[2.5],"format":"double","type":"number"},"id":{"description":"Unique identifier for this alert condition.","examples":[1],"format":"int64","type":"integer"},"name":{"description":"Human-readable name for this condition.","examples":["Temperature Threshold"],"type":"string"},"operator":{"description":"Comparison operator applied to the telemetry value, for example \u003e, \u003c, =, or range-based checks.","examples":["\u003e"],"type":"string"},"state":{"description":"Telemetry field being evaluated, such as temperature, battery, or signal strength.","examples":["temperature"],"type":"string"},"value":{"description":"Threshold or target value used in the condition evaluation.","examples":["75"],"type":"string"}},"required":["id","name","state","operator","value"],"type":"object"},"AlertConditionUpdateInput":{"additionalProperties":false,"properties":{"hysteresis":{"description":"Hysteresis value used to avoid rapid alert flapping when the incoming value oscillates around the threshold.","examples":[2.5],"format":"double","type":"number"},"id":{"description":"Identifier of the existing condition being updated; omitted when creating a new one.","examples":[1],"format":"int64","type":"integer"},"name":{"description":"Human-readable name for this condition.","examples":["Temperature Threshold"],"type":"string"},"operator":{"description":"Comparison operator applied to the telemetry value, for example \u003e, \u003c, =, or range-based checks.","examples":["\u003e"],"type":"string"},"state":{"description":"Telemetry field being evaluated, such as temperature, battery, or signal strength.","examples":["temperature"],"type":"string"},"value":{"description":"Threshold or target value used in the condition evaluation.","examples":["75"],"type":"string"}},"required":["name","state","operator","value"],"type":"object"},"AlertMessage":{"additionalProperties":false,"properties":{"language":{"description":"ISO language code for the notification text, such as en or fr.","examples":["fr"],"type":"string"},"message":{"description":"Localized notification message sent when the alert is raised.","examples":["bonjour"],"type":"string"}},"required":["language","message"],"type":"object"},"AlertNotifiable":{"additionalProperties":false,"properties":{"roles":{"additionalProperties":{},"type":"object"},"users":{"items":{"$ref":"#/components/schemas/AlertNotifiableUser"},"type":["array","null"]}},"required":["users","roles"],"type":"object"},"AlertNotifiableUser":{"additionalProperties":false,"properties":{"email":{"type":"string"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"}},"required":["id","name","email"],"type":"object"},"AlertNotifierInput":{"additionalProperties":false,"properties":{"action_url":{"type":"string"},"notifiable":{},"notifiable_type":{"type":"string"}},"required":["notifiable_type","notifiable"],"type":"object"},"AlertNotifiers":{"additionalProperties":false,"properties":{"action_url":{"description":"URL included in the notification so the recipient can open the relevant resource or incident context.","type":"string"},"alert_rule_id":{"description":"Identifier of the alert rule that uses this notifier configuration.","format":"int64","type":"integer"},"id":{"description":"Unique identifier for this notifier configuration.","format":"int64","type":"integer"},"notifiable":{"description":"List of recipient user IDs or role names that should receive the notification.","examples":[[1,2]]},"notifiable_type":{"description":"Recipient type for the alert, either users or roles.","examples":["users"],"type":"string"},"project_id":{"description":"Project identifier that owns the alert rule notifier.","format":"int64","type":"integer"}},"required":["id","project_id","alert_rule_id","notifiable_type","notifiable","action_url"],"type":"object"},"AlertRule":{"additionalProperties":false,"properties":{"alert_count":{"description":"Number of active alert instances currently associated with this rule.","examples":[1],"format":"int64","type":"integer"},"alert_messages":{"description":"Localized notification messages sent when the alert is raised.","items":{"$ref":"#/components/schemas/AlertMessage"},"type":["array","null"]},"conditions":{"description":"Telemetry conditions evaluated by the rule to determine whether an alert should trigger.","items":{"$ref":"#/components/schemas/AlertCondition"},"type":["array","null"]},"deleted_at":{"description":"Timestamp when the rule was soft-deleted; null when it is active, in ISO 8601 format.","examples":["2020-01-01 01:01:01"],"type":"string"},"description":{"description":"Detailed description of the condition being monitored and why the alert exists.","examples":["Triggers an alert if the temperature exceeds safe limits"],"type":"string"},"id":{"description":"Unique identifier for this alert rule.","examples":[1],"format":"int64","type":"integer"},"is_active":{"description":"Whether this rule is currently enabled and evaluating incoming telemetry.","examples":[true],"type":"boolean"},"level":{"description":"Severity raised when the rule is triggered. Supported values are info, advisory, warning, minor, major, and critical.","examples":["critical"],"type":"string"},"name":{"description":"Short, human-readable name for the alert rule.","examples":["High Temperature Alert"],"type":"string"},"project_id":{"description":"Project identifier that owns this alert rule.","examples":[1],"format":"int64","type":"integer"},"registry_id":{"description":"Optional registry identifier if the alert rule is scoped to a specific registry.","examples":[1],"format":"int64","type":"integer"},"updated_at":{"description":"Timestamp when this rule was last modified, in ISO 8601 format.","examples":["2020-01-01 00:00:00 +0000 UTC"],"type":"string"}},"required":["id","alert_messages","conditions","project_id","alert_count","updated_at","name","description","is_active"],"type":"object"},"AlertRuleV2":{"additionalProperties":false,"properties":{"alert_count":{"description":"Number of active alert instances currently associated with this rule.","examples":[1],"format":"int64","type":"integer"},"alert_messages":{"description":"Localized notification messages sent when the alert is raised.","items":{"$ref":"#/components/schemas/AlertMessage"},"type":["array","null"]},"conditions":{"description":"Telemetry conditions evaluated by the rule to determine whether an alert should trigger.","items":{"$ref":"#/components/schemas/AlertCondition"},"type":["array","null"]},"deleted_at":{"description":"Timestamp when the rule was soft-deleted; null when it is active, in ISO 8601 format.","examples":["2020-01-01 01:01:01"],"type":"string"},"description":{"description":"Detailed description of the condition being monitored and why the alert exists.","examples":["Triggers an alert if the temperature exceeds safe limits"],"type":"string"},"id":{"description":"Unique identifier for this alert rule.","examples":[1],"format":"int64","type":"integer"},"is_active":{"description":"Whether this rule is currently enabled and evaluating incoming telemetry.","examples":[true],"type":"boolean"},"level":{"description":"Severity raised when the rule is triggered. Supported values are info, advisory, warning, minor, major, and critical.","examples":["critical"],"type":"string"},"name":{"description":"Short, human-readable name for the alert rule.","examples":["High Temperature Alert"],"type":"string"},"notifiers":{"description":"Notification destinations configured for this alert rule, such as users or roles.","items":{"$ref":"#/components/schemas/AlertNotifiers"},"type":["array","null"]},"project_id":{"description":"Project identifier that owns this alert rule.","examples":[1],"format":"int64","type":"integer"},"registry_id":{"description":"Optional registry identifier if the alert rule is scoped to a specific registry.","examples":[1],"format":"int64","type":"integer"},"updated_at":{"description":"Timestamp when this rule was last modified, in ISO 8601 format.","examples":["2020-01-01 00:00:00 +0000 UTC"],"type":"string"}},"required":["id","alert_messages","conditions","project_id","alert_count","updated_at","name","description","is_active"],"type":"object"},"BaseAlertCondition":{"additionalProperties":false,"properties":{"hysteresis":{"description":"Hysteresis value used to avoid rapid alert flapping when the incoming value oscillates around the threshold.","examples":[2.5],"format":"double","type":"number"},"name":{"description":"Human-readable name for this condition.","examples":["Temperature Threshold"],"type":"string"},"operator":{"description":"Comparison operator applied to the telemetry value, for example \u003e, \u003c, =, or range-based checks.","examples":["\u003e"],"type":"string"},"state":{"description":"Telemetry field being evaluated, such as temperature, battery, or signal strength.","examples":["temperature"],"type":"string"},"value":{"description":"Threshold or target value used in the condition evaluation.","examples":["75"],"type":"string"}},"required":["name","state","operator","value"],"type":"object"},"BaseDevice":{"additionalProperties":false,"properties":{"asset_type_id":{"description":"Asset type id.","examples":[123],"format":"int64","type":"integer"},"communication_methods":{"description":"Communication methods.","items":{"$ref":"#/components/schemas/CommunicationMethod"},"type":["array","null"]},"configuration":{"description":"Configuration payload."},"created_at":{"description":"Creation timestamp in ISO 8601 format.","examples":["2023-09-30T14:00:00Z"],"type":"string"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","examples":["null"],"type":"string"},"device_type_id":{"description":"Device type identifier.","examples":[5001],"format":"int64","type":"integer"},"id":{"description":"Unique identifier for this resource.","examples":[1],"format":"int64","type":"integer"},"last_heartbeat_at":{"deprecated":true,"description":"This field is deprecated. Use heartbeats endpoints to get device heartbeat information","type":"string"},"meta_data":{"description":"Meta data."},"name":{"description":"Human-readable name.","examples":["Temperature Sensor"],"type":"string"},"project_id":{"description":"Project identifier.","examples":[101],"format":"int64","type":"integer"},"protocols":{"description":"Protocols.","items":{"$ref":"#/components/schemas/Protocol"},"type":["array","null"]},"registry_id":{"description":"Registry identifier.","examples":[1001],"format":"int64","type":"integer"},"serial_number":{"description":"Serial number.","examples":["SN123456"],"type":"string"},"undeploy_configuration":{"description":"Undeploy configuration."},"up_time":{"description":"Device uptime in seconds.","examples":[3600],"format":"int64","type":"integer"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","examples":["2023-09-30T15:00:00Z"],"type":"string"},"wait_reboot":{"description":"Wait reboot.","examples":[false],"type":"boolean"}},"required":["id","project_id","registry_id","name","serial_number"],"type":"object"},"BatchCommand":{"additionalProperties":false,"properties":{"batch_id":{"description":"Batch identifier.","type":"string"},"command":{"$ref":"#/components/schemas/Command","description":"Command."},"commands_count":{"description":"Number of commands in the batch.","examples":[0],"format":"int64","type":"integer"},"last_update":{"description":"Last update.","type":"string"}},"required":["batch_id","last_update","commands_count"],"type":"object"},"BatchCommandReport":{"additionalProperties":false,"properties":{"count_by_status":{"description":"Count by status."}},"type":"object"},"Capability":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation timestamp in ISO 8601 format.","type":"string"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","type":"string"},"description":{"description":"Human-readable description.","type":"string"},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"name":{"description":"Name of the capability. The name is use to match ActionType with Capability","examples":["Reboot"],"type":"string"},"project_id":{"description":"Project of the capability. The Capability is global if project_id is null","format":"int64","type":["integer","null"]},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","type":"string"}},"required":["id","project_id","name","description","created_at","updated_at"],"type":"object"},"CapabilityEncoder":{"additionalProperties":false,"properties":{"capability":{"$ref":"#/components/schemas/Capability","description":"Capability."},"capability_id":{"description":"Capability identifier.","examples":[234],"format":"int64","type":"integer"},"device_type_id":{"description":"Device type identifier.","examples":[456],"format":"int64","type":"integer"},"encoder":{"$ref":"#/components/schemas/Encoder","description":"Encoder."},"encoder_id":{"description":"Encoder identifier.","examples":[345],"format":"int64","type":"integer"},"id":{"description":"Unique identifier for this resource.","examples":[123],"format":"int64","type":"integer"},"version_id":{"description":"Set if the encoder is for a specific firmware version, left null otherwise. When version_id is null, the capability will be the default for all devices with device_type_id","examples":[567],"format":"int64","type":["integer","null"]}},"required":["id","capability_id","encoder_id","device_type_id","version_id"],"type":"object"},"CloudProvider":{"additionalProperties":false,"properties":{"configuration":{"additionalProperties":{},"description":"Configuration payload.","type":"object"},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"name":{"description":"Human-readable name.","type":"string"}},"required":["id","name"],"type":"object"},"Command":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation timestamp in ISO 8601 format.","type":"string"},"default_parameters":{"description":"Default parameters."},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","type":"string"},"description":{"description":"Human-readable description.","type":"string"},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"name":{"description":"Human-readable name.","type":"string"},"pivot":{"$ref":"#/components/schemas/DeviceCommand","description":"Pivot."},"short_name":{"description":"Short command identifier.","type":"string"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","type":"string"}},"required":["id","name","short_name","description"],"type":"object"},"CommandCreateResponse":{"additionalProperties":false,"properties":{"command":{"$ref":"#/components/schemas/Command"},"deep_update":{"type":"boolean"},"device_id":{"format":"int64","type":"integer"},"gateways":{"items":{"$ref":"#/components/schemas/Device"},"type":["array","null"]},"versions":{"items":{"$ref":"#/components/schemas/DeviceVersion"},"type":["array","null"]}},"required":["device_id","command"],"type":"object"},"CommunicationMethod":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation timestamp in ISO 8601 format.","type":"string"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","type":"string"},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"name":{"description":"Human-readable name.","type":"string"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","type":"string"}},"required":["id","name"],"type":"object"},"ConditionTriggering":{"additionalProperties":false,"properties":{"created_at":{"description":"Timestamp when this condition state was recorded, in ISO 8601 format.","type":"string"},"is_triggering":{"description":"Whether this condition is currently in a triggering state.","type":"boolean"},"operator":{"description":"Comparison operator used to evaluate the state, such as \u003e, \u003c, or =.","type":"string"},"state_key":{"description":"Telemetry key being evaluated, such as temperature or battery level.","type":"string"},"state_value":{"description":"Current measured value associated with the condition.","type":"string"},"threshold_hysteresis":{"description":"Margin below the threshold that prevents the alert from flapping while the telemetry hovers around the limit.","type":"string"},"threshold_value":{"description":"Threshold value used when comparing the incoming telemetry against the alert rule.","type":"string"}},"required":["state_key","state_value","operator","is_triggering","threshold_value","created_at"],"type":"object"},"ConsumerTopic":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation timestamp in ISO 8601 format.","examples":["2024-01-01T12:00:00Z"],"type":"string"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","examples":["2024-01-03T12:00:00Z"],"type":"string"},"external_topic_name":{"description":"External topic name.","examples":["my-external-topic"],"type":"string"},"id":{"description":"Unique identifier for this resource.","examples":[123],"format":"int64","type":"integer"},"ingoing":{"description":"Ingoing.","examples":[true],"type":"boolean"},"project_id":{"description":"Project identifier.","examples":[456],"format":"int64","type":"integer"},"pubsub_topic_id":{"description":"Pubsub topic id.","examples":[101112],"format":"int64","type":"integer"},"pubsub_topic_name":{"description":"Associated Pub/Sub topic name.","examples":["my-pubsub-topic"],"type":"string"},"receiver_id":{"description":"Receiver id.","examples":[789],"format":"int64","type":"integer"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","examples":["2024-01-02T12:00:00Z"],"type":"string"}},"required":["id","project_id","receiver_id","pubsub_topic_id","external_topic_name","ingoing"],"type":"object"},"Device":{"additionalProperties":false,"properties":{"asset_type_id":{"description":"Asset type id.","examples":[123],"format":"int64","type":"integer"},"communication_methods":{"description":"Communication methods.","items":{"$ref":"#/components/schemas/CommunicationMethod"},"type":["array","null"]},"configuration":{"description":"Configuration payload."},"created_at":{"description":"Creation timestamp in ISO 8601 format.","examples":["2023-09-30T14:00:00Z"],"type":"string"},"current_version":{"$ref":"#/components/schemas/DeviceVersion","description":"Current firmware version on the device."},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","examples":["null"],"type":"string"},"device_type":{"$ref":"#/components/schemas/DeviceType","description":"Nested device type information."},"device_type_id":{"description":"Device type identifier.","examples":[5001],"format":"int64","type":"integer"},"id":{"description":"Unique identifier for this resource.","examples":[1],"format":"int64","type":"integer"},"last_heartbeat_at":{"deprecated":true,"description":"This field is deprecated. Use heartbeats endpoints to get device heartbeat information","type":"string"},"meta_data":{"description":"Meta data."},"name":{"description":"Human-readable name.","examples":["Temperature Sensor"],"type":"string"},"project_id":{"description":"Project identifier.","examples":[101],"format":"int64","type":"integer"},"protocols":{"description":"Protocols.","items":{"$ref":"#/components/schemas/Protocol"},"type":["array","null"]},"reachable_by":{"description":"Reachable by.","items":{"$ref":"#/components/schemas/LinkedDevice"},"type":["array","null"]},"registry":{"$ref":"#/components/schemas/Registry","description":"Registry."},"registry_id":{"description":"Registry identifier.","examples":[1001],"format":"int64","type":"integer"},"serial_number":{"description":"Serial number.","examples":["SN123456"],"type":"string"},"undeploy_configuration":{"description":"Undeploy configuration."},"undeploy_lora_app_key":{"$ref":"#/components/schemas/DeviceCommand","description":"Undeploy lora app key."},"up_time":{"description":"Device uptime in seconds.","examples":[3600],"format":"int64","type":"integer"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","examples":["2023-09-30T15:00:00Z"],"type":"string"},"wait_reboot":{"description":"Wait reboot.","examples":[false],"type":"boolean"}},"required":["id","project_id","registry_id","name","serial_number"],"type":"object"},"DeviceAction":{"additionalProperties":false,"properties":{"action":{"$ref":"#/components/schemas/Action","description":"Action."},"action_id":{"description":"Action identifier.","examples":[1001],"format":"int64","type":"integer"},"created_at":{"description":"Creation timestamp in ISO 8601 format.","examples":["2023-09-30T14:00:00Z"],"type":"string"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","examples":["null"],"type":"string"},"device":{"$ref":"#/components/schemas/DeviceActionDevice","description":"Device."},"device_id":{"description":"Device identifier.","examples":[2001],"format":"int64","type":"integer"},"done_at":{"description":"When the execution completed, in ISO 8601 format.","examples":["2023-09-30T14:45:00Z"],"type":["string","null"]},"execution_attempt_count":{"description":"Number of execution attempts made.","examples":[1],"format":"int64","type":"integer"},"id":{"description":"Unique identifier for this resource.","examples":[1],"format":"int64","type":"integer"},"progression":{"description":"Action progress percent.","examples":[50],"format":"int64","type":"integer"},"received_at":{"description":"When the command or action was received, in ISO 8601 format.","examples":["2023-09-30T14:10:00Z"],"type":["string","null"]},"sending_attempt_count":{"description":"Number of send attempts made.","examples":[2],"format":"int64","type":"integer"},"sent_at":{"description":"When the command or action was sent, in ISO 8601 format.","examples":["2023-09-30T14:10:00Z"],"type":["string","null"]},"started_at":{"description":"When the execution started, in ISO 8601 format.","examples":["2023-09-30T14:15:00Z"],"type":["string","null"]},"status":{"description":"Current status.","examples":["in_progress"],"type":"string"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","examples":["2023-09-30T15:00:00Z"],"type":"string"}},"required":["id","action_id","device_id","status","progression","created_at","updated_at","sent_at","received_at","started_at","done_at","sending_attempt_count","execution_attempt_count"],"type":"object"},"DeviceActionDevice":{"additionalProperties":false,"properties":{"deleted_at":{"type":"string"},"id":{"format":"int64","type":"integer"},"is_accessible":{"type":"boolean"},"project_id":{"format":"int64","type":"integer"},"reachable_by":{"format":"int64","type":"integer"},"registry_id":{"format":"int64","type":"integer"},"serial_number":{"type":"string"}},"required":["id","project_id","registry_id","serial_number","is_accessible","reachable_by"],"type":"object"},"DeviceAuthentication":{"additionalProperties":false,"properties":{"algorithm":{"type":"string"},"secret":{"type":"string"}},"required":["algorithm","secret"],"type":"object"},"DeviceCommand":{"additionalProperties":false,"properties":{"callback_url":{"description":"Callback url.","type":"string"},"command":{"$ref":"#/components/schemas/Command","description":"Command."},"command_id":{"description":"Command type identifier.","format":"int64","type":"integer"},"created_at":{"description":"Creation timestamp in ISO 8601 format.","type":"string"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","type":"string"},"device":{"$ref":"#/components/schemas/Device","description":"Device."},"device_id":{"description":"Device identifier.","format":"int64","type":"integer"},"done_at":{"description":"When the execution completed, in ISO 8601 format.","type":"string"},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"log":{"description":"Log.","type":"string"},"message":{"description":"Status message or result details.","type":"string"},"parameters":{"description":"Extra parameters used by the encoder."},"sent_at":{"description":"When the command or action was sent, in ISO 8601 format.","type":"string"},"started_at":{"description":"When the execution started, in ISO 8601 format.","type":"string"},"status":{"description":"Current status.","type":"string"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","type":"string"}},"required":["id","command_id","device_id","message","status","log"],"type":"object"},"DeviceSummary":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation timestamp in ISO 8601 format.","type":"string"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","examples":["null"],"type":"string"},"device_type":{"$ref":"#/components/schemas/DeviceTypeSummary","description":"Nested device type information."},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"meta_data":{"description":"Meta data."},"name":{"description":"Human-readable name.","type":"string"},"project_id":{"description":"Project identifier.","format":"int64","type":"integer"},"registry_id":{"description":"Registry identifier.","format":"int64","type":"integer"},"registry_name":{"description":"Registry name.","type":"string"},"serial_number":{"description":"Serial number.","type":"string"}},"required":["id","project_id","registry_id","registry_name","name","serial_number","device_type"],"type":"object"},"DeviceType":{"additionalProperties":false,"properties":{"asset_type_id":{"description":"Asset type id.","format":"int64","type":"integer"},"default_configuration":{"description":"Default configuration."},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","type":"string"},"icon":{"description":"Icon."},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"is_accessible":{"description":"Is accessible.","type":"boolean"},"is_gateway":{"description":"Is gateway.","type":"boolean"},"is_lorawan":{"description":"Is lorawan.","type":"boolean"},"meta_data":{"description":"Meta data."},"name":{"description":"Human-readable name.","type":"string"},"pivot":{"$ref":"#/components/schemas/DeviceTypePivot","description":"Pivot."},"project_id":{"description":"Project identifier.","format":"int64","type":["integer","null"]},"should_self_provision_has_mps":{"description":"Should self provision has mps.","type":"boolean"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","type":"string"},"versions":{"description":"Versions.","items":{"$ref":"#/components/schemas/DeviceVersion"},"type":["array","null"]}},"required":["id","project_id","asset_type_id","should_self_provision_has_mps","is_accessible","is_gateway","is_lorawan","name"],"type":"object"},"DeviceTypeHeartbeatConfig":{"additionalProperties":false,"properties":{"device_type_id":{"description":"Device type identifier.","examples":[1],"format":"int64","type":"integer"},"enabled":{"description":"Whether this feature is enabled.","examples":[true],"type":"boolean"},"project_id":{"description":"Project identifier.","examples":[123],"format":"int64","type":"integer"},"timeout":{"description":"Timeout in seconds.","examples":[300],"format":"int64","type":"integer"}},"required":["device_type_id","project_id","timeout","enabled"],"type":"object"},"DeviceTypeHeartbeatConfigInput":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DeviceTypeHeartbeatConfigInput.json"],"format":"uri","readOnly":true,"type":"string"},"enabled":{"description":"Whether this feature is enabled.","examples":[true],"type":"boolean"},"timeout":{"description":"Timeout in seconds.","examples":[300],"format":"int64","type":"integer"}},"required":["timeout","enabled"],"type":"object"},"DeviceTypePivot":{"additionalProperties":false,"properties":{"device_count":{"description":"Device count.","format":"int64","type":"integer"},"device_type_id":{"description":"Device type identifier.","format":"int64","type":"integer"},"provisioning_quantity":{"description":"Provisioning quantity.","format":"int64","type":"integer"},"registry_id":{"description":"Registry identifier.","format":"int64","type":"integer"}},"required":["registry_id","device_type_id","provisioning_quantity","device_count"],"type":"object"},"DeviceTypeSummary":{"additionalProperties":false,"properties":{"icon":{"additionalProperties":{},"description":"Icon.","type":"object"},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"name":{"description":"Human-readable name.","type":"string"}},"required":["id","name"],"type":"object"},"DeviceVersion":{"additionalProperties":false,"properties":{"configuration":{"description":"Configuration payload."},"created_at":{"description":"Creation timestamp in ISO 8601 format.","type":"string"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","type":"string"},"device_type_id":{"description":"Device type identifier.","format":"int64","type":"integer"},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"identifier":{"description":"Stable identifier for the resource.","type":"string"},"name":{"description":"Human-readable name.","type":"string"},"revision":{"description":"Version revision number.","format":"int64","type":"integer"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","type":"string"},"version_parent_id":{"description":"Parent version identifier.","format":"int64","type":"integer"}},"required":["id","version_parent_id","device_type_id","revision","name","identifier"],"type":"object"},"DeviceWithinReach":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation timestamp in ISO 8601 format.","type":"string"},"device_id":{"description":"Device identifier.","format":"int64","type":"integer"},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"is_connexion_lost":{"description":"Whether the connection to the device appears lost.","type":"boolean"},"other_device_id":{"description":"Other device id.","format":"int64","type":"integer"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","type":"string"}},"required":["id","device_id","other_device_id","is_connexion_lost"],"type":"object"},"Encoder":{"additionalProperties":false,"properties":{"function_id":{"description":"Id of the Fundamentum Function backing this encoder","examples":["jfCSdcmEEWfNyaq9Bogd47"],"type":"string"},"id":{"description":"Unique identifier for this resource.","examples":[123],"format":"int64","type":"integer"},"name":{"description":"Human-readable name.","examples":["JSON Command Encoder"],"type":"string"},"parameters":{"description":"Extra parameters used by the encoder.","examples":[{"key1":"value1","key2":"value2"}]},"project_id":{"description":"Project of the encoder. The Encoder is global if project_id is null","examples":[1],"format":"int64","type":["integer","null"]},"protocol":{"$ref":"#/components/schemas/EncoderProtocol","description":"Represents the way the encoded data is sent through Fundamentum to the device."},"protocol_id":{"description":"Protocol identifier.","examples":[1],"format":"int64","type":"integer"}},"required":["id","project_id","name","protocol_id","function_id"],"type":"object"},"EncoderProtocol":{"additionalProperties":false,"properties":{"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"is_groupable":{"description":"Indicates if the protocol supports grouping operations","type":"boolean"},"is_private":{"description":"Indicates if the protocol is available for user outside Fundamentum","type":"boolean"},"name":{"description":"Human-readable name.","examples":["V1 - Device Command"],"type":"string"},"topic":{"description":"Is the topic name used in MQTT broker to send the actions","examples":["registries/{REGISTRY_ID}/devices/{DEVICE_SN}/commands"],"type":"string"}},"required":["id","name","is_private","is_groupable","topic"],"type":"object"},"Error":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/Error.json"],"format":"uri","readOnly":true,"type":"string"},"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"},"FileTransfer":{"additionalProperties":false,"properties":{"direction":{"description":"Transfer direction.","type":"string"},"files":{"description":"Files included in this transfer.","items":{"$ref":"#/components/schemas/FileTransferFile"},"type":["array","null"]},"id":{"description":"Unique identifier for this resource.","type":"string"},"registry_id":{"description":"Registry identifier.","format":"int64","type":"integer"},"status":{"description":"Current status.","type":"string"},"targets":{"description":"Devices targeted by this transfer.","items":{"$ref":"#/components/schemas/FileTransferTarget"},"type":["array","null"]}},"required":["id","targets","files","direction","status","registry_id"],"type":"object"},"FileTransferFile":{"additionalProperties":false,"properties":{"download_url":{"description":"Download url.","type":"string"},"name":{"description":"Human-readable name.","type":"string"},"remote_path":{"description":"Path on the target device or remote host.","type":"string"},"upload_url":{"description":"Upload url.","type":"string"}},"required":["name","remote_path"],"type":"object"},"FileTransferFileInput":{"additionalProperties":false,"properties":{"name":{"default":"dummy","description":"Human-readable name.","minLength":1,"type":"string"},"remote_path":{"default":"./dummy.txt","description":"Path on the device the transfer will get or put the files (depending on the direction)","minLength":1,"type":"string"}},"required":["name","remote_path"],"type":"object"},"FileTransferHistory":{"additionalProperties":false,"properties":{"transitions":{"description":"Transitions.","items":{"$ref":"#/components/schemas/FileTransferTransition"},"type":["array","null"]}},"required":["transitions"],"type":"object"},"FileTransferTarget":{"additionalProperties":false,"properties":{"device_id":{"description":"Device identifier.","format":"int64","type":"integer"}},"required":["device_id"],"type":"object"},"FileTransferTransition":{"additionalProperties":false,"properties":{"status":{"description":"Current status.","type":"string"},"timestamp":{"description":"Timestamp for this record.","format":"date-time","type":"string"}},"required":["status","timestamp"],"type":"object"},"HealthOutputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/HealthOutputBody.json"],"format":"uri","readOnly":true,"type":"string"},"message":{"description":"Health of service","examples":["OK"],"type":"string"}},"required":["message"],"type":"object"},"HeartbeatRegistryConfig":{"additionalProperties":false,"properties":{"project_id":{"description":"Project identifier.","format":"int64","type":"integer"},"registry_id":{"description":"Registry identifier.","format":"int64","type":"integer"},"timeout":{"description":"Timeout in seconds.","format":"int64","type":"integer"}},"required":["project_id","registry_id","timeout"],"type":"object"},"HeartbeatV2":{"additionalProperties":false,"properties":{"device_id":{"description":"Device identifier.","examples":[1],"format":"int64","type":"integer"},"id":{"description":"Unique identifier for this resource.","examples":[12345],"format":"int64","minimum":0,"type":"integer"},"project_id":{"description":"Project identifier.","examples":[1],"format":"int64","type":"integer"},"registry_id":{"description":"Registry identifier.","examples":[1],"format":"int64","type":"integer"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","examples":["2024-10-02T12:00:00Z"],"type":"string"},"uptime":{"description":"Device uptime in seconds.","examples":[12345],"format":"int64","type":"integer"}},"required":["id","project_id","registry_id","device_id","updated_at","uptime"],"type":"object"},"Icon":{"additionalProperties":false,"properties":{"type":{"description":"Resource type.","examples":["fa"],"type":"string"},"value":{"description":"Value associated with this field.","examples":["layer-group"],"type":"string"}},"type":"object"},"LinkedDevice":{"additionalProperties":false,"properties":{"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"name":{"description":"Human-readable name.","type":"string"},"pivot":{"$ref":"#/components/schemas/DeviceWithinReach","description":"Pivot."},"serial_number":{"description":"Serial number.","type":"string"}},"required":["id","name","serial_number","pivot"],"type":"object"},"OutputResponseActionBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseActionBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Action"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseActionTypeBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseActionTypeBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/ActionType"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseAlertBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseAlertBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Alert"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseAlertNotifiableBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseAlertNotifiableBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/AlertNotifiable"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseAlertRuleBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseAlertRuleBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/AlertRule"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseAlertRuleV2Body":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseAlertRuleV2Body.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/AlertRuleV2"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseBaseDeviceBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseBaseDeviceBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/BaseDevice"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseBatchCommandReportBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseBatchCommandReportBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/BatchCommandReport"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseBoolBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseBoolBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"type":"boolean"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseCapabilityBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseCapabilityBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Capability"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseCapabilityEncoderBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseCapabilityEncoderBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/CapabilityEncoder"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseCommandCreateResponseBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseCommandCreateResponseBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/CommandCreateResponse"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseConsumerTopicBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseConsumerTopicBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/ConsumerTopic"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseDeviceActionBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseDeviceActionBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/DeviceAction"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseDeviceAuthenticationBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseDeviceAuthenticationBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/DeviceAuthentication"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseDeviceCommandBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseDeviceCommandBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/DeviceCommand"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseDeviceTypeBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseDeviceTypeBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/DeviceType"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseDeviceTypeHeartbeatConfigBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseDeviceTypeHeartbeatConfigBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/DeviceTypeHeartbeatConfig"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseDeviceVersionBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseDeviceVersionBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/DeviceVersion"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseEncoderBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseEncoderBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Encoder"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseFileTransferBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseFileTransferBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/FileTransfer"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseFileTransferHistoryBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseFileTransferHistoryBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/FileTransferHistory"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseHeartbeatRegistryConfigBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseHeartbeatRegistryConfigBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/HeartbeatRegistryConfig"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseHeartbeatV2Body":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseHeartbeatV2Body.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/HeartbeatV2"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseLastStatesContentBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseLastStatesContentBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"additionalProperties":{},"type":"object"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseListActionTypeBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseListActionTypeBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ActionType"},"type":["array","null"]},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseListAlertNotifiersBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseListAlertNotifiersBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/AlertNotifiers"},"type":["array","null"]},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseListFileTransferBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseListFileTransferBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/FileTransfer"},"type":["array","null"]},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseListFileTransferFileBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseListFileTransferFileBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/FileTransferFile"},"type":["array","null"]},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseListRegistryBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseListRegistryBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Registry"},"type":["array","null"]},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseListRegistryTopicBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseListRegistryTopicBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/RegistryTopic"},"type":["array","null"]},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseListStringBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseListStringBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"type":"string"},"type":["array","null"]},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponsePositioningConfigurationBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponsePositioningConfigurationBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/PositioningConfiguration"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponsePubSubTopicBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponsePubSubTopicBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/PubSubTopic"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseReceiverBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseReceiverBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Receiver"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseReceiverStatusBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseReceiverStatusBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/ReceiverStatus"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseRegistryBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseRegistryBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Registry"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseRegistryTopicBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseRegistryTopicBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/RegistryTopic"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseStringBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseStringBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"type":"string"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseVersionActionPayloadBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseVersionActionPayloadBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/VersionActionPayload"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseVersionFileBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseVersionFileBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/VersionFile"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseVersionFilesBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseVersionFilesBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/VersionFiles"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"Pager":{"additionalProperties":false,"properties":{"current_page":{"examples":[1],"format":"int64","type":"integer"},"from":{"examples":[0],"format":"int64","type":"integer"},"last_page":{"examples":[1],"format":"int64","type":"integer"},"per_page":{"examples":[25],"format":"int64","type":"integer"},"to":{"examples":[0],"format":"int64","type":"integer"},"total":{"examples":[0],"format":"int64","type":"integer"}},"required":["current_page","from","to","total","last_page","per_page"],"type":"object"},"PaginatedOutputActionBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputActionBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Action"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputAlertBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputAlertBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Alert"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputAlertRuleBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputAlertRuleBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/AlertRule"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputBaseDeviceBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputBaseDeviceBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/BaseDevice"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputBatchCommandBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputBatchCommandBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/BatchCommand"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputCapabilityBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputCapabilityBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Capability"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputCapabilityEncoderBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputCapabilityEncoderBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/CapabilityEncoder"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputConsumerTopicBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputConsumerTopicBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ConsumerTopic"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputDeviceActionBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputDeviceActionBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/DeviceAction"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputDeviceCommandBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputDeviceCommandBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/DeviceCommand"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputDeviceSummaryBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputDeviceSummaryBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/DeviceSummary"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputDeviceTypeBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputDeviceTypeBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/DeviceType"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputDeviceTypeHeartbeatConfigBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputDeviceTypeHeartbeatConfigBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/DeviceTypeHeartbeatConfig"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputDeviceVersionBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputDeviceVersionBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/DeviceVersion"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputEncoderBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputEncoderBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Encoder"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputEncoderProtocolBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputEncoderProtocolBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/EncoderProtocol"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputHeartbeatV2Body":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputHeartbeatV2Body.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/HeartbeatV2"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputPubSubTopicBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputPubSubTopicBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/PubSubTopic"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputReceiverBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputReceiverBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Receiver"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputScopeableTopicBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputScopeableTopicBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ScopeableTopic"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PaginatedOutputStateBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedOutputStateBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/State"},"type":["array","null"]},"pagination":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"PositioningConfiguration":{"additionalProperties":false,"properties":{"lost_position_delay":{"description":"Lost position delay.","format":"int64","type":"integer"},"positions_always_active":{"description":"Positions always active.","type":"boolean"},"project_id":{"description":"Project identifier.","format":"int64","type":"integer"},"recent_position_duration":{"description":"Recent position duration.","format":"int64","type":"integer"},"registry_id":{"description":"Registry identifier.","format":"int64","type":"integer"}},"required":["project_id","registry_id","recent_position_duration","lost_position_delay","positions_always_active"],"type":"object"},"Protocol":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation timestamp in ISO 8601 format.","type":"string"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","type":"string"},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"name":{"description":"Human-readable name.","type":"string"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","type":"string"}},"required":["id","name"],"type":"object"},"PubSubTopic":{"additionalProperties":false,"properties":{"default_type":{"description":"Default topic type.","type":"string"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","type":["string","null"]},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"is_default":{"description":"Whether this is the default option.","type":"boolean"},"name":{"description":"Human-readable name.","type":"string"},"project_id":{"description":"Project identifier.","format":"int64","type":"integer"},"registry_topic_count":{"description":"Registry topic count.","format":"int64","type":"integer"},"scoped_from":{"description":"List of scope sources.","items":{"type":"string"},"type":["array","null"]},"source":{"description":"Source of the data.","type":"string"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","type":["string","null"]}},"required":["id","project_id","name","is_default","default_type","updated_at","deleted_at","registry_topic_count","source"],"type":"object"},"PublishLinkInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PublishLinkInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"description":"Payload data.","type":"string"},"device_id":{"description":"Device identifier.","format":"int64","type":"integer"},"headers":{"additionalProperties":{"type":"string"},"description":"Headers.","type":"object"},"registry_id":{"description":"Registry identifier.","format":"int64","type":"integer"},"version":{"description":"Version.","type":"string"}},"required":["data"],"type":"object"},"PutActionInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PutActionInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"action_type_id":{"description":"Action type identifier.","examples":[1],"format":"int64","type":"integer"},"activate_at":{"description":"Activation timestamp for the scheduled action, in ISO 8601 format.","examples":["2023-09-30T14:00:00Z"],"type":"string"},"cron":{"description":"Cron expression describing when the action runs.","type":"string"},"description":{"description":"Human-readable description.","examples":["This action is for rebooting the device"],"type":"string"},"devices":{"description":"Devices.","examples":[[45323,45]],"items":{"format":"int64","type":"integer"},"type":["array","null"]},"end_at":{"description":"End timestamp for the scheduled action, in ISO 8601 format.","examples":["2023-09-30T14:00:00Z"],"type":"string"},"is_scheduled":{"description":"Is scheduled.","examples":[true],"type":"boolean"},"payload":{"contentEncoding":"base64","description":"Payload content for the action.","examples":["SGVsbG8sIFdvcmxkIQ=="],"type":"string"}},"required":["action_type_id","devices"],"type":"object"},"PutActionTypeInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PutActionTypeInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"capability_name":{"description":"Name of the capability. Use ONLY with an encoder.","examples":[""],"type":"string"},"delivering_timeout":{"description":"Delivering timeout.","examples":[120],"format":"int64","maximum":1000000,"minimum":60,"type":"integer"},"execution_timeout":{"description":"Execution timeout.","examples":[300],"format":"int64","maximum":1000000,"minimum":60,"type":"integer"},"max_retries":{"description":"Max retries.","examples":[3],"format":"int64","maximum":1000,"minimum":0,"type":"integer"},"name":{"description":"Human-readable name.","examples":["My Action"],"type":"string"},"priority":{"description":"Priority.","examples":[1],"format":"int64","minimum":0,"type":"integer"},"project_id":{"description":"Project identifier.","examples":[1],"format":"int64","minimum":0,"type":"integer"},"type":{"description":"Resource type.","examples":[1],"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["project_id","name","type","delivering_timeout","execution_timeout","max_retries","priority"],"type":"object"},"PutPubSubTopicInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PutPubSubTopicInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"default_type":{"type":"string"},"is_default":{"type":"boolean"},"name":{"type":"string"},"project_id":{"format":"int64","type":"integer"}},"required":["project_id","name","is_default","default_type"],"type":"object"},"Receiver":{"additionalProperties":false,"properties":{"adapter_type":{"description":"Adapter type identifier.","examples":[1],"format":"int64","type":"integer"},"connection_string":{"description":"Connection string used to reach the external adapter.","examples":["Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"],"type":"string"},"created_at":{"description":"Creation timestamp in ISO 8601 format.","examples":["2024-10-02T10:00:00Z"],"type":"string"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","examples":["null"],"type":"string"},"encrypted_placeholders":{"description":"Encrypted placeholders.","examples":[{"placeholder1":"encryptedValue1","placeholder2":"encryptedValue2"}]},"id":{"description":"Unique identifier for this resource.","examples":[12345],"format":"int64","type":"integer"},"is_enabled":{"description":"Whether this setting is enabled.","examples":[true],"type":"boolean"},"name":{"description":"Human-readable name.","examples":["Example Adapter"],"type":"string"},"project_id":{"description":"Project identifier.","examples":[1],"format":"int64","type":"integer"},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","examples":["2024-10-02T12:00:00Z"],"type":"string"}},"required":["id","name","project_id","adapter_type","connection_string","is_enabled"],"type":"object"},"ReceiverPlaceholderInput":{"additionalProperties":false,"properties":{"skip_update":{"description":"Skip update.","examples":[true],"type":"boolean"},"value":{"description":"Value associated with this field.","examples":["string"],"type":"string"}},"type":"object"},"ReceiverPlaceholdersInput":{"additionalProperties":false,"properties":{"ca_cert":{"$ref":"#/components/schemas/ReceiverPlaceholderInput","description":"Ca cert."},"client_cert":{"$ref":"#/components/schemas/ReceiverPlaceholderInput","description":"Client cert."},"client_key":{"$ref":"#/components/schemas/ReceiverPlaceholderInput","description":"Client key."},"password":{"$ref":"#/components/schemas/ReceiverPlaceholderInput","description":"Password."}},"type":"object"},"ReceiverStatus":{"additionalProperties":false,"properties":{"connected":{"type":"boolean"}},"required":["connected"],"type":"object"},"Registry":{"additionalProperties":false,"properties":{"cloud_provider":{"$ref":"#/components/schemas/CloudProvider","description":"Cloud provider."},"cloud_provider_id":{"description":"Cloud provider id.","format":"int64","type":"integer"},"configuration":{"description":"Configuration payload."},"cuid":{"description":"Cuid.","format":"int64","type":"integer"},"deleted_at":{"description":"Deletion timestamp in ISO 8601 format.","type":"string"},"device_types":{"description":"Device types.","items":{"$ref":"#/components/schemas/DeviceType"},"type":["array","null"]},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"name":{"description":"Human-readable name.","type":"string"},"project_id":{"description":"Project identifier.","format":"int64","type":"integer"},"provisioning_end_at":{"description":"Provisioning end at, in ISO 8601 format.","type":"string"},"provisioning_secret":{"description":"Provisioning secret.","type":"string"},"provisioning_start_at":{"description":"Provisioning start at, in ISO 8601 format.","type":"string"},"topics":{"description":"Topics.","items":{"$ref":"#/components/schemas/RegistryTopic"},"type":["array","null"]},"updated_at":{"description":"Last update timestamp in ISO 8601 format.","type":"string"}},"required":["id","project_id","name","cuid","provisioning_secret","provisioning_end_at","provisioning_start_at","cloud_provider_id","cloud_provider"],"type":"object"},"RegistryTopic":{"additionalProperties":false,"properties":{"configuration":{"additionalProperties":{},"description":"Configuration payload.","type":"object"},"id":{"description":"Unique identifier for this resource.","format":"int64","type":"integer"},"name":{"description":"Human-readable name.","type":"string"},"pub_sub_topic":{"$ref":"#/components/schemas/PubSubTopic","description":"Pub sub topic."},"pub_sub_topic_id":{"description":"Pub/Sub topic identifier.","format":"int64","type":"integer"},"registry_id":{"description":"Registry identifier.","format":"int64","type":"integer"},"sub_type_name":{"description":"Topic subtype name.","type":"string"},"type":{"description":"Resource type.","type":"string"}},"required":["id","registry_id","pub_sub_topic_id","pub_sub_topic","name","type"],"type":"object"},"ScopeableTopic":{"additionalProperties":false,"properties":{"name":{"description":"Human-readable name.","type":"string"},"scoped_name":{"description":"Scoped topic name.","type":"string"},"type":{"description":"Resource type.","type":"string"}},"required":["name","type","scoped_name"],"type":"object"},"State":{"additionalProperties":false,"properties":{"data":{"description":"Payload data."},"device_id":{"description":"Device identifier.","format":"int64","type":"integer"},"project_id":{"description":"Project identifier.","format":"int64","type":"integer"},"time":{"description":"Timestamp for this record.","type":"string"},"type":{"description":"Resource type.","type":"string"}},"required":["time","project_id","device_id","type"],"type":"object"},"StatusResponseBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StatusResponseBody.json"],"format":"uri","readOnly":true,"type":"string"},"status":{"type":"string"}},"required":["status"],"type":"object"},"StoreActionByRegistryInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreActionByRegistryInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"action_type_id":{"description":"Action type identifier.","examples":[1],"format":"int64","type":"integer"},"activate_at":{"description":"Activation timestamp for the scheduled action, in ISO 8601 format.","examples":["2023-09-30T14:00:00Z"],"type":"string"},"cron":{"description":"Cron expression describing when the action runs.","type":"string"},"description":{"description":"Human-readable description.","examples":["This action is for rebooting the device"],"type":"string"},"devices":{"description":"Devices.","examples":[[45323,45]],"items":{"format":"int64","type":"integer"},"type":["array","null"]},"end_at":{"description":"End timestamp for the scheduled action, in ISO 8601 format.","examples":["2023-09-30T14:00:00Z"],"type":"string"},"is_scheduled":{"description":"Is scheduled.","examples":[true],"type":"boolean"},"payload":{"contentEncoding":"base64","description":"Payload content for the action.","examples":["SGVsbG8sIFdvcmxkIQ=="],"type":"string"}},"required":["action_type_id","devices"],"type":"object"},"StoreActionInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreActionInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"action_type_id":{"description":"Action type identifier.","examples":[1],"format":"int64","type":"integer"},"activate_at":{"description":"Activation timestamp for the scheduled action, in ISO 8601 format.","examples":["2023-09-30T14:00:00Z"],"type":"string"},"cron":{"description":"Cron expression describing when the action runs.","type":"string"},"description":{"description":"Human-readable description.","examples":["This action is for rebooting the device"],"type":"string"},"devices":{"description":"Devices.","examples":[[45323,45]],"items":{"format":"int64","type":"integer"},"type":["array","null"]},"end_at":{"description":"End timestamp for the scheduled action, in ISO 8601 format.","examples":["2023-09-30T14:00:00Z"],"type":"string"},"is_scheduled":{"description":"Is scheduled.","examples":[true],"type":"boolean"},"payload":{"contentEncoding":"base64","description":"Payload content for the action.","examples":["SGVsbG8sIFdvcmxkIQ=="],"type":"string"}},"required":["action_type_id","devices"],"type":"object"},"StoreActionTypeInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreActionTypeInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"capability_name":{"description":"Name of the capability. Use ONLY with an encoder.","examples":[""],"type":"string"},"delivering_timeout":{"description":"Delivering timeout.","examples":[120],"format":"int64","maximum":1000000,"minimum":60,"type":"integer"},"execution_timeout":{"description":"Execution timeout.","examples":[300],"format":"int64","maximum":1000000,"minimum":60,"type":"integer"},"max_retries":{"description":"Max retries.","examples":[3],"format":"int64","maximum":1000,"minimum":0,"type":"integer"},"name":{"description":"Human-readable name.","examples":["My Action"],"type":"string"},"priority":{"description":"Priority.","examples":[1],"format":"int64","minimum":0,"type":"integer"},"project_id":{"description":"Project identifier.","examples":[1],"format":"int64","minimum":0,"type":"integer"},"type":{"description":"Resource type.","examples":[1],"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["project_id","name","type","delivering_timeout","execution_timeout","max_retries","priority"],"type":"object"},"StoreAlertRuleInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreAlertRuleInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"alert_messages":{"description":"Localized notification templates sent when this alert rule is triggered.","items":{"$ref":"#/components/schemas/AlertMessage"},"type":["array","null"]},"conditions":{"description":"Telemetry conditions that must be met before this alert rule creates an alert.","items":{"$ref":"#/components/schemas/BaseAlertCondition"},"type":["array","null"]},"description":{"description":"Detailed description of the condition being monitored and why the alert exists.","examples":["Triggers an alert if the temperature exceeds safe limits"],"type":"string"},"is_active":{"description":"Whether this rule is currently enabled and evaluating incoming telemetry.","examples":[true],"type":"boolean"},"level":{"description":"Severity raised when the rule is triggered. Supported values are info, advisory, warning, minor, major, and critical.","examples":["critical"],"type":"string"},"name":{"description":"Short, human-readable name for the alert rule.","examples":["High Temperature Alert"],"type":"string"},"notifiers":{"description":"Notification destinations for this alert rule, such as users or roles.","items":{"$ref":"#/components/schemas/AlertNotifierInput"},"type":["array","null"]},"registry_id":{"description":"Optional registry identifier if the alert rule is scoped to a specific registry.","examples":[1],"format":"int64","type":"integer"}},"required":["conditions","alert_messages","name","description","is_active"],"type":"object"},"StoreBatchCommandByDeviceIdsInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreBatchCommandByDeviceIdsInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"device_ids":{"description":"Device ids.","items":{"format":"int64","type":"integer"},"type":["array","null"]},"parameters":{"description":"Extra parameters used by the encoder.","examples":[[]]}},"type":"object"},"StoreBatchCommandByDeviceTypeInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreBatchCommandByDeviceTypeInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"parameters":{"description":"Extra parameters used by the encoder.","examples":[[]]}},"type":"object"},"StoreCapabilityEncoderInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreCapabilityEncoderInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"device_type_id":{"description":"Device type identifier.","format":"int64","type":"integer"},"encoder_id":{"description":"Encoder identifier.","format":"int64","type":"integer"},"version_id":{"description":"Firmware version identifier.","format":"int64","type":"integer"}},"required":["encoder_id","device_type_id"],"type":"object"},"StoreCapabilityInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreCapabilityInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"description":{"description":"Human-readable description.","type":"string"},"name":{"description":"Name of the capability. Must be 1 to 64 characters, start with a letter or digit, and contain only letters, digits, dots, hyphens and underscores.","examples":["Reboot"],"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$","type":"string"}},"required":["name","description"],"type":"object"},"StoreConnectorInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreConnectorInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"adapter_type":{"description":"Adapter type ID. Possibles values are 1:MQTT, 2:MQTTS and 3:HTTPS","examples":[1],"format":"int64","type":"integer"},"connection_string":{"description":"Connection string using 'key1=value1;key2=value2' format with placeholders for sensitive data. Placeholders values must be '%name_of_the_placeholder%' and their actual values must be set in the 'placeholders' field. Supported placeholders are 'password', 'ca_cert', 'client_cert' and 'client_key'","examples":["host=my_host_address;port=my_host_port;clientid=my_client_id;username=my_username;password=%password%;"],"type":"string"},"is_enabled":{"examples":[true],"type":["boolean","null"]},"name":{"description":"Human-readable name.","examples":["Example Receiver"],"type":"string"},"placeholders":{"$ref":"#/components/schemas/ReceiverPlaceholdersInput","description":"Placeholder values used by the adapter configuration.","examples":[{"ca_cert":{"skip_update":true},"password":{"skip_update":false,"value":"password_value"}}]}},"required":["name","adapter_type","connection_string","is_enabled"],"type":"object"},"StoreDeviceAuthInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreDeviceAuthInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"algorithm":{"type":"string"},"project_id":{"format":"int64","type":"integer"},"region_id":{"format":"int64","type":"integer"},"registry_id":{"format":"int64","type":"integer"},"secret":{"type":"string"},"serial_number":{"type":"string"}},"required":["project_id","region_id","registry_id","serial_number","secret","algorithm"],"type":"object"},"StoreDeviceCommandInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreDeviceCommandInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"command_id":{"description":"id of the command 'type'","examples":[1],"format":"int64","type":"integer"},"configuration":{"description":"Configuration payload."},"deep_update":{"description":"Deep update.","examples":[true],"type":"boolean"},"device_id":{"description":"id of the device","examples":[1],"format":"int64","type":"integer"},"gateway_id":{"description":"id of the gateway that should send the command to the end device","examples":[0],"format":"int64","type":"integer"},"parameters":{"description":"Extra parameters used by the encoder."},"version_id":{"description":"Firmware version identifier.","examples":[0],"format":"int64","type":"integer"}},"required":["command_id","device_id"],"type":"object"},"StoreDeviceInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreDeviceInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"asset_type_id":{"description":"Asset type id.","examples":[1],"format":"int64","type":"integer"},"communication_methods":{"description":"Communication methods.","examples":[[2,4]],"items":{"format":"int64","type":"integer"},"type":["array","null"]},"device_type_id":{"description":"Device type identifier.","examples":[2],"format":"int64","type":"integer"},"meta_data":{"description":"Meta data.","examples":[{"location":"warehouse","status":"active"}]},"name":{"description":"Human-readable name.","examples":["Temperature Sensor"],"type":"string"},"protocols":{"description":"Protocols.","examples":[[1,2,3]],"items":{"format":"int64","type":"integer"},"type":["array","null"]},"registry_id":{"description":"Registry identifier.","examples":[1],"format":"int64","type":"integer"},"serial_number":{"description":"Serial number.","examples":["df24d"],"type":"string"}},"required":["serial_number","registry_id","device_type_id","asset_type_id","name"],"type":"object"},"StoreDeviceTypeInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreDeviceTypeInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"asset_type_id":{"format":"int64","type":"integer"},"default_configuration":{},"heartbeat_config":{"$ref":"#/components/schemas/DeviceTypeHeartbeatConfigInput"},"icon":{"$ref":"#/components/schemas/Icon"},"is_accessible":{"type":"boolean"},"is_gateway":{"type":"boolean"},"is_lorawan":{"type":"boolean"},"meta_data":{"additionalProperties":{},"type":"object"},"name":{"type":"string"},"project_id":{"format":"int64","type":"integer"},"should_self_provision_has_mps":{"type":"boolean"}},"type":"object"},"StoreEncoderInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreEncoderInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"function_id":{"description":"Id of the Fundamentum Function that encodes payloads for this encoder","examples":["jfCSdcmEEWfNyaq9Bogd47"],"type":"string"},"name":{"description":"Human-readable name.","examples":["JSON Command Encoder"],"type":"string"},"parameters":{"description":"Extra parameters used by the encoder.","examples":[{"key1":"value1","key2":"value2"}]},"protocol_id":{"description":"Protocol identifier.","examples":[1],"format":"int64","type":"integer"}},"required":["name","protocol_id","function_id"],"type":"object"},"StoreFileTransferInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreFileTransferInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"direction":{"description":"Transfer direction.","enum":["cloud-to-device","device-to-cloud"],"type":"string"},"files":{"description":"Files that will be transferred to or from the target(s)","items":{"$ref":"#/components/schemas/FileTransferFileInput"},"minItems":1,"type":["array","null"]},"registry_id":{"default":1,"description":"Registry id","format":"int64","type":"integer"},"targets":{"description":"Devices targeted by this transfer. When direction is device-to-cloud, there can be only one target.","items":{"$ref":"#/components/schemas/FileTransferTarget"},"minItems":1,"type":["array","null"]}},"required":["targets","files","registry_id","direction"],"type":"object"},"StoreLinkInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreLinkInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"external_topic_name":{"description":"External topic name.","examples":["Example Topic"],"type":"string"},"ingoing":{"description":"Ingoing.","examples":[true],"type":"boolean"},"pubsub_topic_id":{"description":"Pubsub topic id.","examples":[1],"format":"int64","type":"integer"}},"required":["pubsub_topic_id","external_topic_name","ingoing"],"type":"object"},"StorePubSubTopicInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StorePubSubTopicInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"default_type":{"type":"string"},"is_default":{"type":"boolean"},"name":{"type":"string"},"project_id":{"format":"int64","type":"integer"}},"required":["project_id","name","is_default","default_type"],"type":"object"},"StoreRegistryTopicInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreRegistryTopicInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"pub_sub_topic_id":{"description":"Pub/Sub topic identifier.","format":"int64","type":"integer"},"registry_id":{"description":"Registry identifier.","format":"int64","type":"integer"},"sub_type_name":{"description":"Topic subtype name.","type":"string"},"type":{"description":"Resource type.","type":"string"}},"required":["registry_id","pub_sub_topic_id"],"type":"object"},"StoreVersionFileInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreVersionFileInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"file_name":{"type":"string"}},"required":["file_name"],"type":"object"},"StoreVersionInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreVersionInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"configuration":{"description":"Configuration payload."},"identifier":{"description":"Stable identifier for the resource.","type":"string"},"name":{"description":"Human-readable name.","type":"string"}},"required":["name","identifier"],"type":"object"},"UpdateAlertRuleInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateAlertRuleInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"alert_messages":{"description":"Localized notification templates sent when this alert rule is triggered.","items":{"$ref":"#/components/schemas/AlertMessage"},"type":["array","null"]},"conditions":{"description":"Updated telemetry conditions that define when the alert rule should trigger.","items":{"$ref":"#/components/schemas/AlertConditionUpdateInput"},"type":["array","null"]},"description":{"description":"Detailed description of the condition being monitored and why the alert exists.","examples":["Triggers an alert if the temperature exceeds safe limits"],"type":"string"},"is_active":{"description":"Whether this rule is currently enabled and evaluating incoming telemetry.","examples":[true],"type":"boolean"},"level":{"description":"Severity raised when the rule is triggered. Supported values are info, advisory, warning, minor, major, and critical.","examples":["critical"],"type":"string"},"name":{"description":"Short, human-readable name for the alert rule.","examples":["High Temperature Alert"],"type":"string"},"notifiers":{"description":"Notification destinations for this alert rule, such as users or roles.","items":{"$ref":"#/components/schemas/AlertNotifierInput"},"type":["array","null"]},"registry_id":{"description":"Optional registry identifier if the alert rule is scoped to a specific registry.","examples":[1],"format":"int64","type":"integer"}},"required":["conditions","alert_messages","name","description","is_active"],"type":"object"},"UpdateBatchCommandByStatusInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateBatchCommandByStatusInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"command_name":{"description":"Command name.","type":"string"},"message":{"description":"Status message or result details.","type":"string"},"status":{"description":"Current status.","type":"string"}},"required":["command_name","status","message"],"type":"object"},"UpdateCapabilityEncoderInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateCapabilityEncoderInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"device_type_id":{"description":"Device type identifier.","format":"int64","type":"integer"},"encoder_id":{"description":"Encoder identifier.","format":"int64","type":"integer"},"version_id":{"description":"Firmware version identifier.","format":"int64","type":"integer"}},"required":["encoder_id","device_type_id"],"type":"object"},"UpdateCapabilityInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateCapabilityInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"description":{"description":"Human-readable description.","type":"string"},"name":{"description":"Name of the capability. Must be 1 to 64 characters, start with a letter or digit, and contain only letters, digits, dots, hyphens and underscores.","examples":["Reboot"],"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$","type":"string"}},"required":["name","description"],"type":"object"},"UpdateConnectorInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateConnectorInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"adapter_type":{"description":"Adapter type ID. Possibles values are 1:MQTT, 2:MQTTS and 3:HTTPS","examples":[1],"format":"int64","type":"integer"},"connection_string":{"description":"Connection string using 'key1=value1;key2=value2' format with placeholders for sensitive data. Placeholders values must be '%name_of_the_placeholder%' and their actual values must be set in the 'placeholders' field. Supported placeholders are 'password', 'ca_cert', 'client_cert' and 'client_key'","examples":["host=my_host_address;port=my_host_port;clientid=my_client_id;username=my_username;password=%password%;"],"type":"string"},"is_enabled":{"examples":[true],"type":["boolean","null"]},"name":{"description":"Human-readable name.","examples":["Example Receiver"],"type":"string"},"placeholders":{"$ref":"#/components/schemas/ReceiverPlaceholdersInput","description":"Placeholder values used by the adapter configuration.","examples":[{"ca_cert":{"skip_update":true},"password":{"skip_update":false,"value":"password_value"}}]}},"required":["name","adapter_type","connection_string","is_enabled"],"type":"object"},"UpdateDeviceActionsInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateDeviceActionsInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"status":{"description":"Current status.","examples":["timeout"],"type":"string"}},"required":["status"],"type":"object"},"UpdateDeviceCommandInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateDeviceCommandInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"device_command_id":{"format":"int64","type":"integer"},"message":{"type":"string"},"status":{"type":"string"}},"required":["device_command_id","status"],"type":"object"},"UpdateDeviceInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateDeviceInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"communication_methods":{"description":"Communication methods.","examples":[[1,5]],"items":{"format":"int64","type":"integer"},"type":"array"},"configuration":{"description":"Configuration payload.","examples":[{"sampling_rate":"5s","threshold":"100"}]},"device_type_id":{"description":"Device type identifier.","examples":[2],"format":"int64","type":"integer"},"meta_data":{"description":"Meta data.","examples":[{"location":"warehouse","status":"active"}]},"name":{"description":"Human-readable name.","examples":["Temperature Sensor"],"type":"string"},"protocols":{"description":"Protocols.","examples":[[1,2,3]],"items":{"format":"int64","type":"integer"},"type":"array"},"registry_id":{"description":"Registry identifier.","examples":[1],"format":"int64","type":"integer"},"serial_number":{"description":"Serial number.","examples":["34252314534"],"type":"string"}},"type":"object"},"UpdateDeviceTypeInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateDeviceTypeInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"asset_type_id":{"format":"int64","type":"integer"},"default_configuration":{},"heartbeat_config":{"$ref":"#/components/schemas/DeviceTypeHeartbeatConfigInput"},"icon":{"$ref":"#/components/schemas/Icon"},"is_accessible":{"type":"boolean"},"is_gateway":{"type":"boolean"},"is_lorawan":{"type":"boolean"},"meta_data":{"additionalProperties":{},"type":"object"},"name":{"type":"string"},"project_id":{"format":"int64","type":"integer"},"should_self_provision_has_mps":{"type":"boolean"}},"type":"object"},"UpdateEncoderInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateEncoderInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"function_id":{"description":"Id of the Fundamentum Function that encodes payloads for this encoder","examples":["jfCSdcmEEWfNyaq9Bogd47"],"type":"string"},"name":{"description":"Human-readable name.","examples":["JSON Command Encoder"],"type":"string"},"parameters":{"description":"Extra parameters used by the encoder.","examples":[{"key1":"value1","key2":"value2"}]},"protocol_id":{"description":"Protocol identifier.","examples":[1],"format":"int64","type":"integer"}},"required":["name","protocol_id","function_id"],"type":"object"},"UpdateHeartbeatRegistryConfigInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateHeartbeatRegistryConfigInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"timeout":{"description":"Timeout in seconds.","format":"int64","type":"integer"}},"required":["timeout"],"type":"object"},"UpdateLinkInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateLinkInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"external_topic_name":{"description":"External topic name.","examples":["Example Topic"],"type":"string"},"ingoing":{"description":"Ingoing.","examples":[true],"type":"boolean"},"pubsub_topic_id":{"description":"Pubsub topic id.","examples":[1],"format":"int64","type":"integer"}},"required":["pubsub_topic_id","external_topic_name","ingoing"],"type":"object"},"UpdatePositioningConfigurationInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdatePositioningConfigurationInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"lost_position_delay":{"description":"Lost position delay.","format":"int64","type":"integer"},"positions_always_active":{"description":"Positions always active.","type":"boolean"},"recent_position_duration":{"description":"Recent position duration.","format":"int64","type":"integer"}},"type":"object"},"UpdateRegistryTopicInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateRegistryTopicInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"pub_sub_topic_id":{"description":"Pub/Sub topic identifier.","format":"int64","type":"integer"},"registry_id":{"description":"Registry identifier.","format":"int64","type":"integer"},"sub_type_name":{"description":"Topic subtype name.","type":"string"},"type":{"description":"Resource type.","type":"string"}},"required":["registry_id","pub_sub_topic_id"],"type":"object"},"UpdateVersionInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateVersionInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"configuration":{"description":"Configuration payload."},"identifier":{"description":"Stable identifier for the resource.","type":"string"},"name":{"description":"Human-readable name.","type":"string"}},"required":["name","identifier"],"type":"object"},"VersionActionPayload":{"additionalProperties":false,"properties":{"configuration":{"description":"Configuration payload."},"configuration_file_url":{"description":"Presigned download URLs of every file of the version","items":{"type":"string"},"type":["array","null"]},"id":{"description":"Unique identifier for this resource.","examples":[1],"format":"int64","type":"integer"},"identifier":{"description":"Stable identifier for the resource.","examples":["base-firmware-version-0.0.1"],"type":"string"},"name":{"description":"Human-readable name.","examples":["Fake firmware"],"type":"string"}},"required":["id","name","identifier","configuration","configuration_file_url"],"type":"object"},"VersionFile":{"additionalProperties":false,"properties":{"download_url":{"type":"string"},"file_name":{"type":"string"},"size":{"format":"int64","type":"integer"},"updated_at":{"type":"string"},"upload_url":{"type":"string"}},"required":["file_name"],"type":"object"},"VersionFiles":{"additionalProperties":false,"properties":{"files":{"description":"Files included in this transfer.","items":{"$ref":"#/components/schemas/VersionFile"},"type":["array","null"]}},"required":["files"],"type":"object"}},"securitySchemes":{"OAuth2":{"description":"OAuth2 Authorization","flows":{"implicit":{"authorizationUrl":"https://oauth.fundamentum-iot.com/oauth/authorize","scopes":{},"tokenUrl":""}},"type":"oauth2"}}},"info":{"description":"Public API that access Fundamentum IoT internal services","title":"Fundamentum public API","version":"v1"},"openapi":"3.1.0","paths":{"/v1/api/swagger.json":{"get":{"operationId":"getDoc","responses":{"200":{"content":{"application/json":{"schema":{"contentEncoding":"base64","type":"string"}}},"description":"OK","headers":{"Content-Disposition":{"schema":{"type":"string"}},"Content-Type":{"schema":{"type":"string"}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Swagger.json file","tags":["Documentation"]}},"/v1/health":{"get":{"operationId":"getHealthStatus","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthOutputBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Check API health status","tags":["Health"]}},"/v1/projects/{projectId}/action-types":{"get":{"description":"Returns all action types configured for the selected project.","operationId":"listActionTypes","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseListActionTypeBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List action types","tags":["Action"]},"post":{"description":"Creates a new action type for the specified project.","operationId":"storeActionType","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreActionTypeInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionTypeBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create action type","tags":["Action"]}},"/v1/projects/{projectId}/action-types/{actionTypeId}":{"delete":{"description":"Deletes an action type by id and project id","operationId":"deleteActionType","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"action type ID","in":"path","name":"actionTypeId","required":true,"schema":{"description":"action type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionTypeBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete action type","tags":["Action"]},"put":{"description":"Updates the action type identified by the supplied project and action type ID.","operationId":"updateActionTypes","parameters":[{"description":"action type ID","in":"path","name":"actionTypeId","required":true,"schema":{"description":"action type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutActionTypeInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionTypeBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update action type","tags":["Action"]}},"/v1/projects/{projectId}/actions":{"get":{"deprecated":true,"description":"Returns all actions for the selected project.","operationId":"listActions","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List actions","tags":["Action"]},"post":{"deprecated":true,"description":"Creates a new action for the selected project. This endpoint is deprecated; use the registry-scoped action route instead.","operationId":"storeAction","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreActionInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create action","tags":["Action"]}},"/v1/projects/{projectId}/actions/{actionId}":{"get":{"description":"Returns the action details for the specified project and action ID.","operationId":"getAction","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"action ID","in":"path","name":"actionId","required":true,"schema":{"description":"action ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get action","tags":["Action"]},"put":{"deprecated":true,"description":"Updates the action identified by the supplied project and action ID.","operationId":"updateAction","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"action ID","in":"path","name":"actionId","required":true,"schema":{"description":"action ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutActionInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update action","tags":["Action"]}},"/v1/projects/{projectId}/actions/{actionId}:cancel":{"post":{"description":"Cancels the action identified by the supplied action ID.","operationId":"cancelAction","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"action ID","in":"path","name":"actionId","required":true,"schema":{"description":"action ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Cancel action","tags":["Action"]}},"/v1/projects/{projectId}/actions/{actionId}:retry":{"post":{"description":"Retries an action by creating a new one from the original. Old device actions that have not yet finished will be cancelled before the new action is created. If the `status` filter is provided, only device actions with that status will be included in the new action.","operationId":"retryAction","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"action ID","in":"path","name":"actionId","required":true,"schema":{"description":"action ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"explode":false,"in":"query","name":"status","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionBody"}}},"description":"Successfully created a new action. The new action is returned in the response body."},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"The specified action does not exist, or no device actions match the provided status filter."},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Retry action","tags":["Action"]}},"/v1/projects/{projectId}/alert-rules":{"get":{"description":"Returns all alert rules configured for the specified project.","operationId":"getAlertRules","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputAlertRuleBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List alert rules","tags":["Alert"]},"post":{"description":"Creates a new alert rule for the selected project.","operationId":"storeAlertRule","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreAlertRuleInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseAlertRuleBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create alert rule","tags":["Alert"]}},"/v1/projects/{projectId}/alert-rules/{alertRuleId}":{"delete":{"description":"Deletes the alert rule identified by the supplied ID from the selected project.","operationId":"deleteAlertRule","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Identifier of the alert rule being accessed.","in":"path","name":"alertRuleId","required":true,"schema":{"description":"Identifier of the alert rule being accessed.","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseAlertRuleBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete alert rule","tags":["Alert"]},"get":{"description":"Returns the alert rule details for the specified project and alert rule ID.","operationId":"getAlertRule","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Identifier of the alert rule being accessed.","in":"path","name":"alertRuleId","required":true,"schema":{"description":"Identifier of the alert rule being accessed.","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseAlertRuleV2Body"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get alert rule","tags":["Alert"]},"put":{"description":"Updates the alert rule identified by the supplied ID for the selected project.","operationId":"updateAlertRule","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Identifier of the alert rule being accessed.","in":"path","name":"alertRuleId","required":true,"schema":{"description":"Identifier of the alert rule being accessed.","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAlertRuleInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseAlertRuleBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update alert rule","tags":["Alert"]}},"/v1/projects/{projectId}/alert-rules/{alertRuleId}/alerts":{"get":{"description":"Returns all alerts triggered by the selected alert rule in the project.","operationId":"getAlertsByRule","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Identifier of the alert rule being accessed.","in":"path","name":"alertRuleId","required":true,"schema":{"description":"Identifier of the alert rule being accessed.","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputAlertBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List alerts for alert rule","tags":["Alert"]}},"/v1/projects/{projectId}/alert-rules/{alertRuleId}/notifiers":{"get":{"description":"Returns the notification targets configured for the selected alert rule.","operationId":"getAlertRuleNotifiers","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Identifier of the alert rule being accessed.","in":"path","name":"alertRuleId","required":true,"schema":{"description":"Identifier of the alert rule being accessed.","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseListAlertNotifiersBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List alert rule notifiers","tags":["Alert"]}},"/v1/projects/{projectId}/alerts/{alertId}:resolve":{"post":{"description":"Marks the specified alert as resolved. If a new device state is later received, the rule may re-trigger and re-open the alert.","operationId":"resolveAlertByAlertID","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Alert record ID; this is not the alert rule ID.","in":"path","name":"alertId","required":true,"schema":{"description":"Alert record ID; this is not the alert rule ID.","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseAlertBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Resolve alert","tags":["Alert"]}},"/v1/projects/{projectId}/capabilities":{"get":{"description":"Returns all capabilities configured for the selected project.","operationId":"getCapabilities","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputCapabilityBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List capabilities","tags":["Capability"]},"post":{"description":"Creates a new capability for the specified project.","operationId":"storeCapability","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreCapabilityInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseCapabilityBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create capability","tags":["Capability"]}},"/v1/projects/{projectId}/capabilities/{capabilityId}":{"delete":{"description":"Deletes the capability identified by the supplied capability ID.","operationId":"deleteCapability","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Capability ID","in":"path","name":"capabilityId","required":true,"schema":{"description":"Capability ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseCapabilityBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete capability","tags":["Capability"]},"get":{"description":"Returns the capability identified by the supplied capability ID.","operationId":"getCapability","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Capability ID","in":"path","name":"capabilityId","required":true,"schema":{"description":"Capability ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseCapabilityBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get capability","tags":["Capability"]},"put":{"description":"Updates the capability identified by the supplied capability ID.","operationId":"updateCapability","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Capability ID","in":"path","name":"capabilityId","required":true,"schema":{"description":"Capability ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCapabilityInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseCapabilityBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update capability","tags":["Capability"]}},"/v1/projects/{projectId}/capabilities/{capabilityId}/encoders":{"get":{"description":"Returns all capability encoders associated with the selected capability.","operationId":"getCapabilityEncoders","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Capability ID","in":"path","name":"capabilityId","required":true,"schema":{"description":"Capability ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputCapabilityEncoderBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List capability encoders","tags":["Capability"]},"post":{"description":"Creates a new encoder association for the selected capability.","operationId":"storeCapabilityEncoder","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Capability ID","in":"path","name":"capabilityId","required":true,"schema":{"description":"Capability ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreCapabilityEncoderInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseCapabilityEncoderBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create capability encoder","tags":["Capability"]}},"/v1/projects/{projectId}/capabilities/{capabilityId}/encoders/{capabilityEncoderId}":{"delete":{"description":"Deletes the specified capability encoder for the selected project and capability.","operationId":"deleteCapabilityEncoder","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Capability ID","in":"path","name":"capabilityId","required":true,"schema":{"description":"Capability ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}},{"description":"Capability encoder ID","in":"path","name":"capabilityEncoderId","required":true,"schema":{"description":"Capability encoder ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseCapabilityEncoderBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete capability encoder","tags":["Capability"]},"get":{"description":"Returns the capability encoder for the specified project, capability, and encoder ID.","operationId":"getCapabilityEncoder","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Capability ID","in":"path","name":"capabilityId","required":true,"schema":{"description":"Capability ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}},{"description":"Capability encoder ID","in":"path","name":"capabilityEncoderId","required":true,"schema":{"description":"Capability encoder ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseCapabilityEncoderBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get capability encoder","tags":["Capability"]},"put":{"description":"Updates the capability encoder identified by the supplied encoder ID.","operationId":"updateCapabilityEncoder","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Capability ID","in":"path","name":"capabilityId","required":true,"schema":{"description":"Capability ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}},{"description":"Capability encoder ID","in":"path","name":"capabilityEncoderId","required":true,"schema":{"description":"Capability encoder ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCapabilityEncoderInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseCapabilityEncoderBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update capability encoder","tags":["Capability"]}},"/v1/projects/{projectId}/commands/{shortName}":{"get":{"description":"Creates a command for the selected device using the supplied short name and parameters.","operationId":"createDeviceCommands","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"DeviceId","explode":false,"in":"query","name":"deviceId","required":true,"schema":{"description":"DeviceId","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Command Short Name","in":"path","name":"shortName","required":true,"schema":{"description":"Command Short Name","examples":["reboot"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseCommandCreateResponseBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create device commands","tags":["Commands"]}},"/v1/projects/{projectId}/connectors":{"get":{"description":"Returns all connectors configured for the specified project.","operationId":"getConnectors","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputReceiverBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List connectors","tags":["PubSub"]},"post":{"description":"Creates a new connector for the selected project.","operationId":"storeConnector","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreConnectorInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseReceiverBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create connector","tags":["PubSub"]}},"/v1/projects/{projectId}/connectors/{connectorId}":{"delete":{"description":"Deletes the connector identified by the supplied connector ID for the selected project.","operationId":"deleteConnector","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"connector ID","in":"path","name":"connectorId","required":true,"schema":{"description":"connector ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseReceiverBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete connector","tags":["PubSub"]},"put":{"description":"Updates the connector identified by the supplied connector ID for the specified project.","operationId":"updateConnector","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"connector ID","in":"path","name":"connectorId","required":true,"schema":{"description":"connector ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConnectorInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseReceiverBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update connector","tags":["PubSub"]}},"/v1/projects/{projectId}/connectors/{connectorId}/links":{"get":{"description":"Returns all links configured for the selected project and connector.","operationId":"getLinks","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"connector ID","in":"path","name":"connectorId","required":true,"schema":{"description":"connector ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputConsumerTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List links","tags":["PubSub"]},"post":{"description":"Creates a new link for the selected project and connector.","operationId":"storeLink","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"connector ID","in":"path","name":"connectorId","required":true,"schema":{"description":"connector ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreLinkInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseConsumerTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create link","tags":["PubSub"]}},"/v1/projects/{projectId}/connectors/{connectorId}/links/{linkId}":{"delete":{"description":"Deletes the link identified by the supplied project, connector, and link ID.","operationId":"deleteLink","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"connector ID","in":"path","name":"connectorId","required":true,"schema":{"description":"connector ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"link ID","in":"path","name":"linkId","required":true,"schema":{"description":"link ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseConsumerTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete link","tags":["PubSub"]},"put":{"description":"Updates the link identified by the supplied project, connector, and link ID.","operationId":"updateLink","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"connector ID","in":"path","name":"connectorId","required":true,"schema":{"description":"connector ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"link ID","in":"path","name":"linkId","required":true,"schema":{"description":"link ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLinkInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseConsumerTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update link","tags":["PubSub"]}},"/v1/projects/{projectId}/connectors/{connectorId}/links/{linkId}/publish":{"post":{"description":"Publishes a message to the selected ingoing link for the project and connector.","operationId":"publishToLink","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"connector ID","in":"path","name":"connectorId","required":true,"schema":{"description":"connector ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"link ID","in":"path","name":"linkId","required":true,"schema":{"description":"link ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishLinkInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusResponseBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Publish message to link","tags":["PubSub"]}},"/v1/projects/{projectId}/connectors/{connectorId}/status":{"get":{"description":"Returns the current connection and health status for the selected connector.","operationId":"getConnectorStatus","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"connector ID","in":"path","name":"connectorId","required":true,"schema":{"description":"connector ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseReceiverStatusBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get connector status","tags":["PubSub"]}},"/v1/projects/{projectId}/device-actions/{deviceActionId}":{"get":{"deprecated":true,"description":"Returns the requested device action for the specified project and device action ID.","operationId":"getDeviceAction","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device action ID","in":"path","name":"deviceActionId","required":true,"schema":{"description":"device action ID","examples":[4],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get device action","tags":["Action"]},"put":{"deprecated":true,"description":"Updates the lifecycle status of the selected device action.","operationId":"updateDeviceAction","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device action ID","in":"path","name":"deviceActionId","required":true,"schema":{"description":"device action ID","examples":[4],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeviceActionsInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update device action","tags":["Action"]}},"/v1/projects/{projectId}/device-types":{"get":{"description":"Returns all device types configured for the selected project.","operationId":"listDeviceTypes","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputDeviceTypeBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List device types","tags":["Device Type"]},"post":{"description":"Creates a new device type for the selected project.","operationId":"storeDeviceType","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreDeviceTypeInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceTypeBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create device type","tags":["Device Type"]}},"/v1/projects/{projectId}/device-types/heartbeats/configs":{"get":{"description":"Returns all device type heartbeat configurations defined for the project.","operationId":"listDeviceTypeHeartbeatConfigs","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputDeviceTypeHeartbeatConfigBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List device type heartbeat configs","tags":["Heartbeat"]}},"/v1/projects/{projectId}/device-types/{deviceTypeId}":{"delete":{"description":"Deletes device type by project id and device type id","operationId":"deleteDeviceType","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceTypeBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete device type","tags":["Device Type"]},"get":{"description":"Returns the device type for the specified project and device type ID.","operationId":"getDeviceType","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceTypeBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get device type","tags":["Device Type"]},"put":{"description":"Updates the device type identified by the supplied project and device type ID.","operationId":"updateDeviceType","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeviceTypeInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceTypeBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update device type","tags":["Device Type"]}},"/v1/projects/{projectId}/device-types/{deviceTypeId}/heartbeats/config":{"delete":{"description":"Deletes the heartbeat configuration for the specified device type.","operationId":"deleteDeviceTypeHeartbeatConfig","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusResponseBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete device type heartbeat config","tags":["Heartbeat"]},"get":{"description":"Returns the heartbeat settings for the specified device type.","operationId":"getDeviceTypeHeartbeatConfig","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceTypeHeartbeatConfigBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get device type heartbeat config","tags":["Heartbeat"]},"put":{"description":"Creates or updates the heartbeat configuration for the specified device type.","operationId":"updateDeviceTypeHeartbeatConfig","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTypeHeartbeatConfigInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceTypeHeartbeatConfigBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update device type heartbeat config","tags":["Heartbeat"]}},"/v1/projects/{projectId}/device-types/{deviceTypeId}/versions":{"get":{"description":"Returns all firmware versions for the selected device type.","operationId":"get-v1-projects-by-project-id-device-types-by-device-type-id-versions","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputDeviceVersionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List versions","tags":["Device Type"]},"post":{"description":"Creates a new firmware version for the specified device type.","operationId":"storeVersion","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreVersionInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceVersionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create version","tags":["Device Type"]}},"/v1/projects/{projectId}/device-types/{deviceTypeId}/versions/{versionId}":{"delete":{"description":"Deletes the specified firmware version from the selected device type.","operationId":"deleteVersion","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"version ID","in":"path","name":"versionId","required":true,"schema":{"description":"version ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceVersionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete version","tags":["Device Type"]},"get":{"description":"Returns the requested firmware version for the specified device type.","operationId":"get-v1-projects-by-project-id-device-types-by-device-type-id-versions-by-version-id","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"version ID","in":"path","name":"versionId","required":true,"schema":{"description":"version ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceVersionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get version","tags":["Device Type"]},"put":{"description":"Updates the specified firmware version for the selected device type.","operationId":"updateVersion","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"version ID","in":"path","name":"versionId","required":true,"schema":{"description":"version ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVersionInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceVersionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update version","tags":["Device Type"]}},"/v1/projects/{projectId}/device-types/{deviceTypeId}/versions/{versionId}/action-payload":{"get":{"description":"Builds the payload of a `FirmwareUpdate` action for a version. The returned object is the exact JSON expected by the Fundamentum JSON encoder: base64 encode it as-is into the `payload` of the action. Every file of the version is resolved to a presigned download URL, valid for +7 days unless `expiration` is provided.","operationId":"get-v1-projects-by-project-id-device-types-by-device-type-id-versions-by-version-id-action-payload","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"version ID","in":"path","name":"versionId","required":true,"schema":{"description":"version ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Validity duration of the signed URL","explode":false,"in":"query","name":"expiration","schema":{"description":"Validity duration of the signed URL","examples":["+1 hour, +30 minutes, +7 days, tomorrow"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseVersionActionPayloadBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Build version action payload","tags":["Device Type"]}},"/v1/projects/{projectId}/device-types/{deviceTypeId}/versions/{versionId}/files":{"get":{"description":"Returns all files for the selected firmware version, including pre-signed download URLs.","operationId":"get-v1-projects-by-project-id-device-types-by-device-type-id-versions-by-version-id-files","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"version ID","in":"path","name":"versionId","required":true,"schema":{"description":"version ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Validity duration of the signed URL","explode":false,"in":"query","name":"expiration","schema":{"description":"Validity duration of the signed URL","examples":["+1 hour, +30 minutes, +7 days, tomorrow"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseVersionFilesBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List version files","tags":["Device Type"]},"post":{"description":"Uploads a file to the selected firmware version.","operationId":"storeVersionFile","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"version ID","in":"path","name":"versionId","required":true,"schema":{"description":"version ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Validity duration of the signed URL","explode":false,"in":"query","name":"expiration","schema":{"description":"Validity duration of the signed URL","examples":["+1 hour, +30 minutes, +7 days, tomorrow"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreVersionFileInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseVersionFileBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Upload version file","tags":["Device Type"]}},"/v1/projects/{projectId}/device-types/{deviceTypeId}/versions/{versionId}/files/{file_name}":{"delete":{"description":"Deletes the selected file from the firmware version.","operationId":"deleteVersionFile","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"version ID","in":"path","name":"versionId","required":true,"schema":{"description":"version ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Version File Name","in":"path","name":"file_name","required":true,"schema":{"description":"Version File Name","examples":["firmware.bin"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseVersionFileBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete version file","tags":["Device Type"]},"get":{"description":"Returns the selected file for the specified firmware version.","operationId":"get-v1-projects-by-project-id-device-types-by-device-type-id-versions-by-version-id-files-by-file-name","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"version ID","in":"path","name":"versionId","required":true,"schema":{"description":"version ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Version File Name","in":"path","name":"file_name","required":true,"schema":{"description":"Version File Name","examples":["firmware.bin"],"type":"string"}},{"description":"Validity duration of the signed URL","explode":false,"in":"query","name":"expiration","schema":{"description":"Validity duration of the signed URL","examples":["+1 hour, +30 minutes, +7 days, tomorrow"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseVersionFileBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get version file","tags":["Device Type"]},"put":{"description":"Updates the metadata and content for the selected file on the firmware version.","operationId":"updateVersionFile","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"version ID","in":"path","name":"versionId","required":true,"schema":{"description":"version ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Version File Name","in":"path","name":"file_name","required":true,"schema":{"description":"Version File Name","examples":["firmware.bin"],"type":"string"}},{"description":"Validity duration of the signed URL","explode":false,"in":"query","name":"expiration","schema":{"description":"Validity duration of the signed URL","examples":["+1 hour, +30 minutes, +7 days, tomorrow"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseVersionFileBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update version file","tags":["Device Type"]}},"/v1/projects/{projectId}/device/{deviceId}/commands":{"get":{"description":"Returns all commands associated with the selected device.","operationId":"listDeviceCommands","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputDeviceCommandBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List device commands","tags":["Commands"]}},"/v1/projects/{projectId}/device/{deviceId}/commands/{shortName}":{"post":{"description":"Creates one or more device commands for the selected device.","operationId":"storeDeviceCommands","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Command Short Name","in":"path","name":"shortName","required":true,"schema":{"description":"Command Short Name","examples":["reboot"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreDeviceCommandInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceCommandBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create device commands","tags":["Commands"]},"put":{"description":"Updates the submitted device command record for the selected device.","operationId":"updateDeviceCommands","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Command Short Name","in":"path","name":"shortName","required":true,"schema":{"description":"Command Short Name","examples":["reboot"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeviceCommandInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseBoolBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update device commands","tags":["Commands"]}},"/v1/projects/{projectId}/device/{deviceId}/commands/{shortName}/{deviceCommandId}":{"delete":{"description":"Deletes the selected device command entries for the specified device.","operationId":"deleteDeviceCommands","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Command Short Name","in":"path","name":"shortName","required":true,"schema":{"description":"Command Short Name","examples":["reboot"],"type":"string"}},{"description":"DeviceCommandId","in":"path","name":"deviceCommandId","required":true,"schema":{"description":"DeviceCommandId","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseBoolBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete device commands","tags":["Commands"]}},"/v1/projects/{projectId}/devices":{"get":{"description":"Returns all devices available in the specified project.","operationId":"listDevices","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputBaseDeviceBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List devices","tags":["Device"]},"post":{"description":"Creates a new device in the specified project.","operationId":"storeDevice","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreDeviceInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseBaseDeviceBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create device","tags":["Device"]}},"/v1/projects/{projectId}/devices/summaries":{"get":{"description":"Returns all devices available in the specified project.","operationId":"listDevicesV2","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputDeviceSummaryBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List devices quickly","tags":["Device"]}},"/v1/projects/{projectId}/devices/{deviceId}":{"delete":{"description":"Deletes the specified device from the selected project.","operationId":"deleteDevice","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseBaseDeviceBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete device","tags":["Device"]},"get":{"description":"Returns the device record for the specified project and device ID.","operationId":"getDevice","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseBaseDeviceBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get device","tags":["Device"]},"put":{"description":"Updates the device identified by the supplied project and device ID.","operationId":"updateDevice","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeviceInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseBaseDeviceBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update device","tags":["Device"]}},"/v1/projects/{projectId}/devices/{deviceId}/actions":{"get":{"description":"Returns all device actions for the selected project and device.","operationId":"getDeviceActions","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputDeviceActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List device actions","tags":["Action"]}},"/v1/projects/{projectId}/devices/{deviceId}/actions/{actionId}:cancel":{"post":{"description":"Cancel DeviceAction By Id","operationId":"cancelDeviceAction","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"action ID","in":"path","name":"actionId","required":true,"schema":{"description":"action ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Cancel device action","tags":["Action"]}},"/v1/projects/{projectId}/devices/{deviceId}/actions/{actionId}:retry":{"post":{"description":"Retries the selected device action and cancels any in-flight execution attempts that must be superseded.","operationId":"retryDeviceAction","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"action ID","in":"path","name":"actionId","required":true,"schema":{"description":"action ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Retry device action","tags":["Action"]}},"/v1/projects/{projectId}/devices/{deviceId}/alerts":{"get":{"description":"Returns all alerts associated with the selected device in the project.","operationId":"getAlertsByDevice","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputAlertBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List device alerts","tags":["Alert"]}},"/v1/projects/{projectId}/devices/{deviceId}/authentication":{"get":{"description":"Returns the authentication configuration for the specified project and device.","operationId":"getDeviceAuthentication","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceAuthenticationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get device authentication","tags":["Device"]},"post":{"description":"Creates a new device authentication entry for the specified project.","operationId":"storeDeviceAuth","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreDeviceAuthInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDeviceAuthenticationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create device authentication","tags":["Device"]}},"/v1/projects/{projectId}/devices/{deviceId}/heartbeats":{"get":{"description":"Returns the heartbeat history for the selected device.","operationId":"listDeviceHeartbeat","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputHeartbeatV2Body"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get device heartbeats","tags":["Heartbeat"]}},"/v1/projects/{projectId}/devices/{deviceId}/last-heartbeats":{"get":{"description":"Returns the latest heartbeat received from the selected device.","operationId":"getLastDeviceHeartbeat","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseHeartbeatV2Body"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get latest device heartbeat","tags":["Heartbeat"]}},"/v1/projects/{projectId}/devices/{deviceId}/last-states":{"get":{"description":"Returns the latest known states for the selected device.","operationId":"getLastStates","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"explode":false,"in":"query","name":"with_timestamps","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseLastStatesContentBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get last device states","tags":["Device"]}},"/v1/projects/{projectId}/devices/{deviceId}/state-types":{"get":{"description":"Returns the available state types for the selected device.","operationId":"getStateTypes","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseListStringBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List state types","tags":["Device"]}},"/v1/projects/{projectId}/devices/{deviceId}/states":{"get":{"description":"Returns the current state history for the selected device.","operationId":"getListStates","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"device ID","in":"path","name":"deviceId","required":true,"schema":{"description":"device ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputStateBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List device states","tags":["Device"]}},"/v1/projects/{projectId}/encoder-protocols":{"get":{"description":"Returns the available encoder protocols for the selected project.","operationId":"getEncoderProtocols","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputEncoderProtocolBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List encoder protocols","tags":["Capability"]}},"/v1/projects/{projectId}/encoders":{"get":{"description":"Returns all encoders configured for the selected project.","operationId":"getEncoders","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputEncoderBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List encoders","tags":["Capability"]},"post":{"description":"Creates a new encoder for the specified project.","operationId":"storeEncoder","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreEncoderInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseEncoderBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create encoder","tags":["Capability"]}},"/v1/projects/{projectId}/encoders/{encoderId}":{"delete":{"description":"Deletes the encoder identified by the supplied encoder ID.","operationId":"deleteEncoder","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Encoder ID","in":"path","name":"encoderId","required":true,"schema":{"description":"Encoder ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseEncoderBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete encoder","tags":["Capability"]},"get":{"description":"Returns the encoder identified by the supplied encoder ID.","operationId":"getEncoder","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Encoder ID","in":"path","name":"encoderId","required":true,"schema":{"description":"Encoder ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseEncoderBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get encoder","tags":["Capability"]},"put":{"description":"Updates the encoder identified by the supplied encoder ID.","operationId":"updateEncoder","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Encoder ID","in":"path","name":"encoderId","required":true,"schema":{"description":"Encoder ID","examples":[1],"format":"int64","minimum":1,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEncoderInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseEncoderBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update encoder","tags":["Capability"]}},"/v1/projects/{projectId}/heartbeats":{"get":{"description":"Returns the latest heartbeat record for each device in the project.","operationId":"listProjectHeartbeats","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputHeartbeatV2Body"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get project heartbeat summary","tags":["Heartbeat"]}},"/v1/projects/{projectId}/licenses/{licenseId}/alerts/{alertId}:resolve":{"post":{"description":"Marks the specified alert as resolved. If a new device state is later received, the rule may re-trigger and re-open the alert.","operationId":"resolveAlertByLicenseAndAlertID","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"license ID","in":"path","name":"licenseId","required":true,"schema":{"description":"license ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Alert record ID; this is not the alert rule ID.","in":"path","name":"alertId","required":true,"schema":{"description":"Alert record ID; this is not the alert rule ID.","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseAlertBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Resolve alert by license","tags":["Alert"]}},"/v1/projects/{projectId}/notifiable":{"get":{"description":"Returns the users and roles that can be notified in the specified project.","operationId":"getAlertRuleNotifiable","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseAlertNotifiableBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List notifiable users and roles","tags":["Alert"]}},"/v1/projects/{projectId}/pub-sub-topics":{"get":{"description":"Returns all Pub/Sub topics configured for the selected project.","operationId":"listPubSubTopics","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputPubSubTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List topics","tags":["PubSub"]},"post":{"description":"Creates a new topic in the selected project.","operationId":"storePubSubTopic","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorePubSubTopicInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePubSubTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create topic","tags":["PubSub"]}},"/v1/projects/{projectId}/pub-sub-topics/scopeable":{"get":{"description":"Returns the topics that can be scoped to a Pub/Sub topic.","operationId":"listScopeableTopics","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputScopeableTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List scopeable topics","tags":["PubSub"]}},"/v1/projects/{projectId}/pub-sub-topics/{pubSubTopicId}":{"delete":{"description":"Deletes the topic identified by the supplied topic ID for the selected project.","operationId":"deletePubSubTopic","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"pub sub topic ID","in":"path","name":"pubSubTopicId","required":true,"schema":{"description":"pub sub topic ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePubSubTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete topic","tags":["PubSub"]},"get":{"description":"Returns the topic identified by the supplied project and topic ID.","operationId":"getPubSubTopic","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"pub sub topic ID","in":"path","name":"pubSubTopicId","required":true,"schema":{"description":"pub sub topic ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePubSubTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get topic","tags":["PubSub"]},"put":{"description":"Updates the topic identified by the supplied ID for the selected project.","operationId":"updatePubSubTopic","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"pub sub topic ID","in":"path","name":"pubSubTopicId","required":true,"schema":{"description":"pub sub topic ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutPubSubTopicInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePubSubTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update topic","tags":["PubSub"]}},"/v1/projects/{projectId}/pub-sub-topics/{scopeableTopic}/scoped":{"delete":{"description":"Removes a topic from a Pub/Sub scope so messages are no longer mirrored to that destination.","operationId":"unscopePubSubTopic","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"The name of the scopeable topic.","in":"path","name":"scopeableTopic","required":true,"schema":{"description":"The name of the scopeable topic.","examples":["device"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePubSubTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Unscope topic","tags":["PubSub"]},"post":{"description":"Scopes a scopeable topic to a Pub/Sub topic so messages from the same project are mirrored to both destinations.","operationId":"scopePubSubTopic","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"The name of the scopeable topic.","in":"path","name":"scopeableTopic","required":true,"schema":{"description":"The name of the scopeable topic.","examples":["device"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePubSubTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Scope topic","tags":["PubSub"]}},"/v1/projects/{projectId}/registries":{"get":{"description":"Returns all registries available in the specified project.","operationId":"listRegistries","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseListRegistryBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List registries","tags":["Registry"]}},"/v1/projects/{projectId}/registries/{registryId}":{"get":{"description":"Returns the registry details for the specified project and registry ID.","operationId":"getRegistry","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRegistryBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get registry","tags":["Registry"]}},"/v1/projects/{projectId}/registries/{registryId}/actions":{"get":{"description":"Returns all actions for the selected project and registry.","operationId":"getActionsByRegistry","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List actions for registry","tags":["Action"]},"post":{"description":"Creates a new action for the selected project and registry.","operationId":"storeActionByRegistry","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreActionByRegistryInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create action","tags":["Action"]}},"/v1/projects/{projectId}/registries/{registryId}/batch-commands":{"get":{"description":"Returns all batch commands for the specified registry.","operationId":"listBatchCommands","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputBatchCommandBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List batch commands","tags":["Commands"]}},"/v1/projects/{projectId}/registries/{registryId}/batch-commands/{batchId}/device-commands":{"get":{"description":"Returns the commands belonging to the specified batch.","operationId":"listBatchCommandDeviceCommands","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Batch ID","in":"path","name":"batchId","required":true,"schema":{"description":"Batch ID","examples":["67897845e9d81"],"type":"string"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputDeviceCommandBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List batch command device commands","tags":["Commands"]}},"/v1/projects/{projectId}/registries/{registryId}/batch-commands/{batchId}/report":{"get":{"description":"Returns the current status summary for the selected batch command set.","operationId":"batchCommandReport-report","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Batch ID","in":"path","name":"batchId","required":true,"schema":{"description":"Batch ID","examples":["67897845e9d81"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseBatchCommandReportBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get batch command report","tags":["Commands"]}},"/v1/projects/{projectId}/registries/{registryId}/batch-commands/{batchId}/status/{status}":{"delete":{"description":"Deletes batch commands whose status matches the supplied value.","operationId":"deleteBatchCommandByStatus","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Batch ID","in":"path","name":"batchId","required":true,"schema":{"description":"Batch ID","examples":["67897845e9d81"],"type":"string"}},{"description":"Status","in":"path","name":"status","required":true,"schema":{"description":"Status","examples":["pending"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseBoolBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete batch commands by status","tags":["Commands"]},"put":{"description":"Updates batch commands whose status matches the supplied value.","operationId":"updateBatchCommandByStatus","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Batch ID","in":"path","name":"batchId","required":true,"schema":{"description":"Batch ID","examples":["67897845e9d81"],"type":"string"}},{"description":"Status","in":"path","name":"status","required":true,"schema":{"description":"Status","examples":["pending"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBatchCommandByStatusInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseBoolBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update batch commands by status","tags":["Commands"]}},"/v1/projects/{projectId}/registries/{registryId}/batch-commands/{shortName}":{"post":{"description":"Creates a batch command for the selected device IDs.","operationId":"storeBatchCommandByDeviceIds","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Command Short Name","in":"path","name":"shortName","required":true,"schema":{"description":"Command Short Name","examples":["reboot"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreBatchCommandByDeviceIdsInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseStringBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create batch command for device IDs","tags":["Commands"]}},"/v1/projects/{projectId}/registries/{registryId}/batch-commands/{shortName}/device-types/{deviceTypeId}":{"post":{"description":"Creates a batch command for the selected device type.","operationId":"storeBatchCommandByDeviceType","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Command Short Name","in":"path","name":"shortName","required":true,"schema":{"description":"Command Short Name","examples":["reboot"],"type":"string"}},{"description":"device type ID","in":"path","name":"deviceTypeId","required":true,"schema":{"description":"device type ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreBatchCommandByDeviceTypeInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseStringBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create batch command for device type","tags":["Commands"]}},"/v1/projects/{projectId}/registries/{registryId}/configuration":{"get":{"description":"Returns the positioning configuration for the specified project and registry.","operationId":"getPositioningConfiguration","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePositioningConfigurationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get positioning configuration","tags":["PositioningConfiguration"]},"put":{"description":"Updates positioning configuration by project id and registry id","operationId":"updatePositioningConfiguration","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePositioningConfigurationInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePositioningConfigurationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update positioning configuration","tags":["PositioningConfiguration"]}},"/v1/projects/{projectId}/registries/{registryId}/configuration/reset":{"put":{"description":"Resets positioning configuration by project id and registry id","operationId":"resetPositioningConfiguration","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePositioningConfigurationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Reset positioning configuration","tags":["PositioningConfiguration"]}},"/v1/projects/{projectId}/registries/{registryId}/device-actions":{"get":{"deprecated":true,"description":"Returns all device actions registered for the selected registry.","operationId":"getDeviceActionsByRegistry","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputDeviceActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List device actions for registry","tags":["Action"]}},"/v1/projects/{projectId}/registries/{registryId}/heartbeats":{"get":{"description":"Returns the latest heartbeat record for each device in the registry.","operationId":"listRegistryHeartbeats","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter clauses applied to the request.","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter clauses applied to the request.","type":"string"}},{"description":"Additional OR filter clauses.","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Additional OR filter clauses.","type":"string"}},{"description":"Sort order for results.","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort order for results.","type":"string"}},{"description":"Related data to include in the response.","explode":false,"in":"query","name":"with","schema":{"description":"Related data to include in the response.","type":"string"}},{"description":"Page number to fetch.","explode":false,"in":"query","name":"page","schema":{"description":"Page number to fetch.","type":"string"}},{"description":"Number of items per page.","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Number of items per page.","type":"string"}},{"description":"Whether soft-deleted records should be included.","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Whether soft-deleted records should be included.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedOutputHeartbeatV2Body"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get registry heartbeat summary","tags":["Heartbeat"]}},"/v1/projects/{projectId}/registries/{registryId}/heartbeats/config":{"get":{"deprecated":true,"description":"Returns the heartbeat registry configuration for the selected project and registry.","operationId":"getHeartbeatRegistryConfig","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseHeartbeatRegistryConfigBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get heartbeat registry config","tags":["Heartbeat"]},"put":{"deprecated":true,"description":"Updates the heartbeat configuration for the selected registry.","operationId":"updateHeartbeatRegistryConfig","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateHeartbeatRegistryConfigInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseHeartbeatRegistryConfigBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update heartbeat registry config","tags":["Heartbeat"]}},"/v1/projects/{projectId}/registries/{registryId}/topics":{"post":{"description":"Creates a new registry topic for the selected project and registry.","operationId":"storeRegistryTopic","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreRegistryTopicInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRegistryTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create registry topic","tags":["Registry"]}},"/v1/projects/{projectId}/registries/{registryId}/topics/reset":{"post":{"description":"Resets the registry topics for the selected project and registry.","operationId":"resetRegistryTopics","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseListRegistryTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Reset registry topics","tags":["Registry"]}},"/v1/projects/{projectId}/registries/{registryId}/topics/{registryTopicId}":{"put":{"description":"Updates the registry topic identified by the supplied project and registry ID.","operationId":"updateRegistryTopic","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry ID","in":"path","name":"registryId","required":true,"schema":{"description":"registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"registry topic ID","in":"path","name":"registryTopicId","required":true,"schema":{"description":"registry topic ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRegistryTopicInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRegistryTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update registry topic","tags":["Registry"]}},"/v1/projects/{projectId}/transfers":{"get":{"description":"Returns all file transfers configured in the specified project.","operationId":"listFileTransfers","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseListFileTransferBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List file transfers","tags":["FileTransfers"]},"post":{"description":"Creates a new file transfer for the selected project and targets.","operationId":"storeFileTransfer","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreFileTransferInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseFileTransferBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a file transfer, either for transferring files from the cloud to the devices (cloud-to-device direction), or for transferring files from a device to the cloud (device-to-cloud direction). When the direction is cloud-to-device,pre-signed urls will be returned for each file in the transfer, allowing the caller to upload those files to the cloud (fundamentum platform).","tags":["FileTransfers"]}},"/v1/projects/{projectId}/transfers/{transferId}":{"delete":{"description":"Deletes the specified file transfer from the project.","operationId":"deleteFileTransfer","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"File transfer ID","in":"path","name":"transferId","required":true,"schema":{"description":"File transfer ID","examples":["qwertyu22pasdfghjk2zxc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseFileTransferBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete file transfer","tags":["FileTransfers"]}},"/v1/projects/{projectId}/transfers/{transferId}/files":{"get":{"description":"Returns the transfer files with the appropriate pre-signed upload or download URLs for each file.","operationId":"getFileTransferFiles","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"File transfer ID","in":"path","name":"transferId","required":true,"schema":{"description":"File transfer ID","examples":["qwertyu22pasdfghjk2zxc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseListFileTransferFileBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List transfer files","tags":["FileTransfers"]}},"/v1/projects/{projectId}/transfers/{transferId}/history":{"get":{"description":"Returns every state transition recorded for the selected transfer.","operationId":"getFileTransferHistory","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"File transfer ID","in":"path","name":"transferId","required":true,"schema":{"description":"File transfer ID","examples":["qwertyu22pasdfghjk2zxc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseFileTransferHistoryBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get transfer history","tags":["FileTransfers"]}},"/v1/projects/{projectId}/transfers/{transferId}:cancel":{"post":{"description":"Cancels the selected file transfer so it can no longer be executed.","operationId":"cancelFileTransfer","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"File transfer ID","in":"path","name":"transferId","required":true,"schema":{"description":"File transfer ID","examples":["qwertyu22pasdfghjk2zxc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseFileTransferBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Cancel a file transfer, so it cannot be executed anymore. Acts as a kind of soft-delete","tags":["FileTransfers"]}},"/v1/projects/{projectId}/transfers/{transferId}:execute":{"post":{"description":"Executes the selected file transfer for the specified project.","operationId":"executeFileTransfer","parameters":[{"description":"project ID","in":"path","name":"projectId","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"File transfer ID","in":"path","name":"transferId","required":true,"schema":{"description":"File transfer ID","examples":["qwertyu22pasdfghjk2zxc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseFileTransferBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Execute file transfer. If transfer direction is cloud-to-device, pre-signed urls to download the files specified in the transfer will be sent to the targeted devices.If transfer direction is device-to-cloud, pre-signed urls to upload the files specified in the transfer will be sent to the targeted devices.","tags":["FileTransfers"]}}},"security":[{"OAuth2":[]}]}