Event-based API to interface between customer integration apps and edge connected devices
Channel delivering button_pressed notifications from the edge.
Events on button presses on connected devices.
Accepts the following message:
Event messages notifying a button pressed.
Schema of event data sent in the button_pressed stream
{
"api_version": "3.0",
"button_id": 2,
"device_serial": "M2MR111101051",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_type": "button_pressed",
"gateway_serial": "PGGW000000058",
"ref_id": "SCREEN_1",
"screen_context": {
"action_buttons_contexts": [
{
"button_id": 2,
"ref_id": "PHY_BUTTON_1"
},
{
"button_id": 3,
"ref_id": "PHY_BUTTON_2"
},
{
"button_id": 4,
"ref_id": "PHY_BUTTON_3"
},
{
"button_id": 5,
"ref_id": "PHY_BUTTON_4"
}
],
"active_screen_view": "SCREEN_VIEW_2",
"ref_id": "SCREEN_1",
"screen_views_contexts": [
{
"ref_id": "SCREEN_VIEW_1",
"workflow": {
"fields_contexts": [
{
"button": {
"ref_id": "BUTTON_1"
}
},
{
"text": {
"content": "Some text",
"ref_id": "FIELD_1"
}
}
]
}
},
{
"list": {
"pg_list_t2": {
"items_contexts": [
{
"ref_id": "ITEM_1",
"selected": true
},
{
"ref_id": "ITEM_2",
"selected": false
}
]
}
},
"ref_id": "SCREEN_VIEW_2"
},
{
"notification": {},
"ref_id": "SCREEN_VIEW_3"
}
]
},
"time_created": 1546300800000,
"trigger_gesture": "TRIGGER_SINGLE_CLICK"
}
Channel delivering image capture requests to the edge.
Command to capture an image on a connected device.
Accepts the following message:
Event messages requesting an image capture.
Schema of image capture command data sent in the capture_image! stream
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"connection_gateway_rssi": -1000,
"device_serial": "M2MR111101051",
"encoding_quality": 5,
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_type": "capture_image!",
"gateway_serial": "PGGW000000058",
"report_description": "string",
"report_summary": "string",
"report_title": "My Incident Report",
"resolution": "1280x960",
"time_created": 1546300800000,
"timeout": 1000
}
Channel posting display commands to the edge.
Command to display visual content on a connected device.
Accepts the following message:
Command messages to interface with a display capable connected device
Schema of feedback command data sent in the display! stream to render text on display devices
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"device_serial": "M2MR111101051",
"display_fields": [
{
"display_field_header": "First",
"display_field_header_right": "First",
"display_field_id": 1,
"display_field_text": "Item 1234"
}
],
"display_refresh_type": "DEFAULT",
"display_screen_context": 0,
"display_template_id": "PG1",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_time_to_live_duration": 0,
"event_type": "display!",
"gateway_serial": "PGGW000000058",
"time_created": 1546300800000,
"time_validity_duration": 0
}
Channel posting display_v2 commands to the edge.
Accepts the following message:
Command messages to interface with a display capable connected device
Schema of the display_v2! command stream to set multiple screen views on a compatible device
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"action_buttons": {
"back_inside": {
"action_on_single_click": {
"basic": "NOTIFY"
},
"color": "GREEN",
"ref_id": "PHY_BUTTON_BACK_INSIDE",
"text": "Button 3"
},
"back_outside": {
"action_on_single_click": {
"basic": "NOTIFY"
},
"color": "ORANGE",
"ref_id": "PHY_BUTTON_BACK_OUTSIDE",
"text": "Button 4"
},
"front_inside": {
"action_on_single_click": {
"basic": "NOTIFY"
},
"color": "YELLOW",
"ref_id": "PHY_BUTTON_FRONT_INSDE",
"text": "Button 2"
},
"front_outside": {
"action_on_single_click": {
"basic": "NOTIFY"
},
"color": "BLUE",
"ref_id": "PHY_BUTTON_FRONT_OUTSIDE",
"text": "Button 1"
}
},
"action_buttons_mode": "SHARED",
"active_screen_view": "SCREEN_VIEW_2",
"api_version": "3.0",
"device_serial": "M2MR111101051",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_type": "display_v2!",
"forced_orientation": "PORTRAIT",
"gateway_serial": "PGGW000000058",
"ref_id": "SCREEN_1",
"screen_views": [
{
"pg_work1_btn1_t1": {
"button_1": {
"action_on_click": {
"basic": "NOTIFY"
},
"ref_id": "BUTTON_1",
"text": "Button 1"
},
"field_top": {
"input_method": {
"num_pad": {
"hint": "My numpad",
"initial_value": "123"
}
},
"ref_id": "CELL_1",
"state": {
"highlighted": true,
"type": "FOCUSED"
},
"text_content": "Field top",
"text_header": "Header"
}
},
"ref_id": "SCREEN_VIEW_1"
},
{
"pg_work2_t1": {
"field_bottom": {
"input_method": {
"num_wheel": {
"initial_value": 123,
"title": "My numwheel"
}
},
"text_content": "Field bottom",
"text_header": "Header"
},
"field_top": {
"text_content": "Field top",
"text_header": "Header"
}
},
"ref_id": "SCREEN_VIEW_2"
},
{
"pg_work2_t4": {
"field_left": {
"input_method": {
"keyboard": {
"hint": "My keyboard",
"initial_value": "Test 123",
"layout": {
"predefined": "QWERTY"
}
}
},
"text_content": "Field left",
"text_header": "Header"
},
"field_right": {
"text_content": "Field right",
"text_header": "Header"
}
},
"ref_id": "SCREEN_VIEW_3"
}
],
"time_created": 1546300800000,
"timer": {
"action_on_expire": {
"click_on_component": {
"ref_id": "CELL_1"
}
},
"timeout": 1000
}
}
Channel posting display_v2 events to the edge.
Accepts the following message:
Command messages to interface with a display capable connected device
Schema of the display_v2 event stream received when the device triggered an event like a timer has expired or a UI component has been clicked.
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"device_serial": "M2MR111101051",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_type": "display_v2",
"gateway_serial": "PGGW000000058",
"integration_instance_id": "9348a763c7f7",
"integration_session_id": "aa7e9e79-cabd-4b79-9bcc-8db851e953e6",
"integration_session_request": "e946dbbc-4e5b-4834-9b16-5fe1dae27f22",
"screen_context": {
"action_buttons_contexts": [
{
"button_id": 2,
"ref_id": "PHY_BUTTON_1"
},
{
"button_id": 3,
"ref_id": "PHY_BUTTON_2"
},
{
"button_id": 4,
"ref_id": "PHY_BUTTON_3"
},
{
"button_id": 5,
"ref_id": "PHY_BUTTON_4"
}
],
"active_screen_view": "SCREEN_VIEW_2",
"ref_id": "SCREEN_1",
"screen_views_contexts": [
{
"ref_id": "SCREEN_VIEW_1",
"workflow": {
"fields_contexts": [
{
"button": {
"ref_id": "BUTTON_1"
}
},
{
"text": {
"content": "Some text",
"ref_id": "FIELD_1"
}
}
]
}
},
{
"list": {
"pg_list_t2": {
"items_contexts": [
{
"ref_id": "ITEM_1",
"selected": true
},
{
"ref_id": "ITEM_2",
"selected": false
}
]
}
},
"ref_id": "SCREEN_VIEW_2"
},
{
"notification": {},
"ref_id": "SCREEN_VIEW_3"
}
]
},
"screen_event": {
"component_clicked": {
"ref_id": "BUTTON_1"
}
},
"time_created": 1546300800000
}
Channel delivering errors notifications from the edge.
Error events encountered on an edge device.
Accepts the following message:
Event messages notifying an error.
Schema of error event sent in the error stream.
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"device_model": "Unknown",
"device_serial": "M2MR111101051",
"error_code": "ERROR_UNKNOWN",
"error_message": [
"No suitable font for input string"
],
"error_severity": "WARNING",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_reference_id": [
"13ff7152-d804-4c12-a519-bdb0ac3a43d1"
],
"event_type": "errors",
"gateway_serial": "PGGW000000058",
"time_created": 1546300800000
}
Channel posting feedback commands to the edge.
Command to cause feedback to the user on a connected device.
Accepts the following message:
Command messages to interface with a feedback capable connected device
Schema of feedback command data sent in the feedback! stream
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"device_serial": "M2MR111101051",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_time_to_live_duration": 0,
"event_type": "feedback!",
"feedback_action_id": "FEEDBACK_POSITIVE",
"gateway_serial": "PGGW000000058",
"time_created": 1546300800000
}
Channel posting Gateway state commands to the edge.
Command to request edge devices state including current software and configuration.
Accepts the following message:
Command messages to request the Gateway state.
Schema of the command to request the Gateway state.
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_type": "gateway_state!",
"gateway_serial": "PGGW000000058",
"time_created": 1546300800000
}
Channel posting Gateway state events from the edge.
Events on an edge devices software and configuration state.
Accepts the following message:
Events messages notifying the Gateway state.
Schema of the event sent to report the Gateway state.
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"device_connected_list": [
{
"device_battery_level": 100,
"device_bce_revision": [
"PAABLS00-005-R05 F X "
],
"device_firmware_version": [
"v2.2.0"
],
"device_manufacturer": [
"Workaround GmbH"
],
"device_model": "Unknown",
"device_serial": "M2MR111101051"
}
],
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_reference_id": [
"13ff7152-d804-4c12-a519-bdb0ac3a43d1"
],
"event_type": "gateway_state",
"gateway_app_version": [
"v2.4.0"
],
"gateway_serial": "PGGW000000058",
"integration_instance_id": "9348a763c7f7",
"integration_session_id": "aa7e9e79-cabd-4b79-9bcc-8db851e953e6",
"integration_session_request": "e946dbbc-4e5b-4834-9b16-5fe1dae27f22",
"time_created": 1546300800000
}
Channel posting photo report status events from the edge.
Events on the status of photo reports ongoing on connected devices.
Accepts the following message:
Command messages to report upload status of a photo report to insight.
Schema of the event sent to notify the status of the photo report (creating/created) for customer integrations.
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"device_model": "Unknown",
"device_serial": "M2MR111101051",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_reference_id": [
"13ff7152-d804-4c12-a519-bdb0ac3a43d1"
],
"event_type": "photo_report_status",
"gateway_serial": "PGGW000000058",
"report_description": "string",
"report_id": [
"13ff7152-d804-4c12-a519-bdb0ac3a43d1"
],
"report_status": "report_created",
"report_summary": "string",
"report_title": "My Incident Report",
"time_created": 1546300800000
}
Channel delivering meta messages.
Ping meta events encountered on an edge device.
Accepts the following message:
Event messages sending a meta message
Schema of ping event sent in the ping stream.
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_reference_id": [
"13ff7152-d804-4c12-a519-bdb0ac3a43d1"
],
"event_type": "ping",
"gateway_serial": "PGGW000000058",
"time_created": 1546300800000
}
Channel posting set process identifiers request events from the edge.
Command to set the process identifiers on a connected device.
Accepts the following message:
Command messages to set the process identifiers..
Schema for setting process identifiers via Streams API stream. When a customer sets a process identifier, the connectivity device will decorate the event with the provided data. Process identifiers should be set for every scanner independently.
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"connection_gateway_rssi": -1000,
"customer_anonymizeduser_id": "string",
"customer_anonymizeduser_id_last_changed": 1546300800000,
"customer_custom_identifier": "string",
"customer_process_trace_id": "string",
"customer_process_trace_started": 1546300800000,
"customer_process_type_id": "string",
"customer_process_type_started": 1546300800000,
"device_serial": "M2MR111101051",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_type": "process_identifiers!",
"gateway_serial": "PGGW000000058",
"time_created": 1546300800000
}
Channel delivering scan notifications from the edge.
Events on scans taken on a connected device.
Accepts the following message:
Event messages notifying a scan from a connected device
Schema of scan event data sent in the scan stream
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"configuration_id": "string",
"configuration_profile_id": "string",
"configuration_profile_revision": 0,
"configuration_tag": "string",
"connection_device_rssi": -1000,
"connection_gateway_rssi": -1000,
"custom": {
"namespace_key": "value",
"other_key": 123
},
"customer_anonymizeduser_id": "string",
"customer_anonymizeduser_id_last_changed": 1546300800000,
"customer_custom_identifier": "string",
"customer_process_trace_id": "string",
"customer_process_trace_started": 1546300800000,
"customer_process_type_id": "string",
"customer_process_type_started": 1546300800000,
"device_battery": 150,
"device_firmware": "1.2.3-rc1",
"device_manufacturer": "ProGlove",
"device_model": "Unknown",
"device_serial": "M2MR111101051",
"device_temperature": -100,
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_type": "scan",
"gateway_firmware": "string",
"gateway_manufacturer": "Samsung",
"gateway_model": "A5",
"gateway_serial": "PGGW000000058",
"gateway_type": "mobile",
"gateway_wifi_ap_ipv4_address": "192.168.0.1",
"gateway_wifi_ap_ipv6_addresses": [
"fe90::53f2:1d1f:bd8a:cc33"
],
"gateway_wifi_bssid": "5c:0e:8b:7f:20:33",
"gateway_wifi_local_ipv4_address": "192.168.0.1",
"gateway_wifi_local_ipv6_addresses": [
"fe90::53f2:1d1f:bd8a:cc33"
],
"gateway_wifi_signal_strength": -256,
"gateway_wifi_ssid": "proglove-guest",
"host_app": "com.example.warehouse.app",
"integration_instance_id": "9348a763c7f7",
"integration_session_id": "aa7e9e79-cabd-4b79-9bcc-8db851e953e6",
"integration_session_request": "e946dbbc-4e5b-4834-9b16-5fe1dae27f22",
"metrics": [
{
"metric_name": "bce_duration",
"metric_type": "scalars",
"metric_unit": "ms",
"values": [
0
]
}
],
"metrics_worker_steps": 0,
"metrics_worker_steps_connectivity_device": 0,
"scan_bytes": "string",
"scan_code": "string",
"scan_decode_symbology": "string",
"scan_duration": 60,
"scan_mode": "SCAN_MODE_SINGLE",
"scan_session_id": 0,
"screen_context": {
"action_buttons_contexts": [
{
"button_id": 2,
"ref_id": "PHY_BUTTON_1"
},
{
"button_id": 3,
"ref_id": "PHY_BUTTON_2"
},
{
"button_id": 4,
"ref_id": "PHY_BUTTON_3"
},
{
"button_id": 5,
"ref_id": "PHY_BUTTON_4"
}
],
"active_screen_view": "SCREEN_VIEW_2",
"ref_id": "SCREEN_1",
"screen_views_contexts": [
{
"ref_id": "SCREEN_VIEW_1",
"workflow": {
"fields_contexts": [
{
"button": {
"ref_id": "BUTTON_1"
}
},
{
"text": {
"content": "Some text",
"ref_id": "FIELD_1"
}
}
]
}
},
{
"list": {
"pg_list_t2": {
"items_contexts": [
{
"ref_id": "ITEM_1",
"selected": true
},
{
"ref_id": "ITEM_2",
"selected": false
}
]
}
},
"ref_id": "SCREEN_VIEW_2"
},
{
"notification": {},
"ref_id": "SCREEN_VIEW_3"
}
]
},
"session_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"session_message_counter": 123,
"time_created": 1546300800000
}
Channel posting scanner connectivity commands from the edge.
Events on connected devices on the edge appearing or disappearing.
Accepts the following message:
Command messages to control the connectivity of attached devices.
Schema for managing scanners connectivity.
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"connect": [
true
],
"disconnect": [
[
"PGGW000000058",
"MMMM000000031",
"PGM2000000011"
],
"all"
],
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_type": "scanner_connectivity!",
"time_created": 1546300800000
}
Channel delivering scanner state notifications from the edge.
Events propagated to update on the state of connected devices.
Accepts the following message:
Event messages notifying a scanner state change.
Schema of scanner state event sent in the scanner_connection stream.
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"configuration_id": "string",
"configuration_profile_id": "string",
"configuration_profile_revision": 0,
"configuration_tag": "string",
"connection_device_rssi": -1000,
"customer_anonymizeduser_id": "string",
"customer_anonymizeduser_id_last_changed": 1546300800000,
"customer_custom_identifier": "string",
"customer_process_trace_id": "string",
"customer_process_trace_started": 1546300800000,
"customer_process_type_id": "string",
"customer_process_type_started": 1546300800000,
"device_battery": 150,
"device_connected_state": "STATE_CONNECTED",
"device_disconnect_reason": "CONNECTION_TIMEOUT",
"device_model": "Unknown",
"device_search_duration": 0,
"device_serial": "M2MR111101051",
"device_temperature": -100,
"display_device_type": "UNKNOWN",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_type": "scanner_state",
"gateway_serial": "PGGW000000058",
"session_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"session_message_counter": 123,
"time_created": 1546300800000
}
Channel posting messages to initialize integration sessions.
Event sent to initialize an integration session.
Accepts the following message:
Initialize and authenticate an integration session.
This can entail login credentials to authenticate the client. The integration system should answer with a corresponding session_state stream message containing the integation_session_id attribute associated with the resulting session. Clients should always attach its value in integration_session_id attributes and be prepared for changes to the session announced by session_state stream messages. If the session peer has previously associated with a integration_session_id it should add this old ID as well to allow the integration system to reclaim associated resources.
{
"api_version": "3.0",
"device_serial": "M2MR111101051",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_type": "session_init",
"gateway_serial": "PGGW000000058",
"integration_instance_id": "9348a763c7f7",
"integration_session_id": "aa7e9e79-cabd-4b79-9bcc-8db851e953e6",
"integration_session_request": "e946dbbc-4e5b-4834-9b16-5fe1dae27f22",
"login_access_token": "eyJhbGciOiAibm9uZSIsICJ0eXAiOiAiSldUIn0.eyJzdWIiOiAiam9obmRvZSJ9.",
"login_password": "sesame",
"login_refresh_token": "eyJhbGciOiAibm9uZSIsICJ0eXAiOiAiSldUIn0.eyJzdWIiOiAiam9obmRvZSJ9.",
"login_username": "johndoe",
"session_kind": "unauthenticated",
"time_created": 1546300800000
}
Channel posting commands related to the status of integration sessions.
Command sent to announce the status of an integration session.
Accepts the following message:
Status of an integration session.
Integration session status update. The integration should send this in response to a session_init stream message for any status change of the resulting session. This includes the initial response on the authentication login as well as later changes e.g. when the authentication credentials expire for some reason. The contained integration_session_id value should be attached to all stream messages of the associated session peer (e.g. worker device) that support it.
{
"api_version": "3.0",
"device_serial": "M2MR111101051",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_type": "session_status!",
"gateway_serial": "PGGW000000058",
"integration_auth_supported": [
"plain"
],
"integration_instance_id": "9348a763c7f7",
"integration_instance_load": 42,
"integration_session_id": "aa7e9e79-cabd-4b79-9bcc-8db851e953e6",
"integration_session_request": "e946dbbc-4e5b-4834-9b16-5fe1dae27f22",
"login_access_token": "eyJhbGciOiAibm9uZSIsICJ0eXAiOiAiSldUIn0.eyJzdWIiOiAiam9obmRvZSJ9.",
"login_refresh_token": "eyJhbGciOiAibm9uZSIsICJ0eXAiOiAiSldUIn0.eyJzdWIiOiAiam9obmRvZSJ9.",
"session_status": "proposed",
"time_created": 1546300800000
}
Channel posting trigger block commands to the edge.
Command blocking some button actions on connected device.
Accepts the following message:
Command messages to interface with a trigger blocking capable connected device
Schema of trigger block command data sent in the trigger_block! stream
{
"ack_event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"ack_required": "ON_RECEIVE",
"api_version": "3.0",
"device_serial": "M2MR111101051",
"event_id": "881f6fd2-8bba-418d-a076-c5ed067d8321",
"event_time_to_live_duration": 0,
"event_type": "trigger_block!",
"gateway_serial": "PGGW000000058",
"time_created": 1546300800000,
"time_validity_duration": 0,
"trigger_block_gesture_list": [
"TRIGGER_LONG_PRESS"
],
"trigger_block_state": true,
"trigger_unblock_gesture_list": [
"TRIGGER_LONG_PRESS"
]
}