diff --git a/docs/api/sdk/README.md b/docs/api/sdk/README.md
index 7f39bf24d..aa63eff0f 100644
--- a/docs/api/sdk/README.md
+++ b/docs/api/sdk/README.md
@@ -146,7 +146,7 @@ Content-Disposition: form-data; name="event"
--PieBoundary123456789012345678901234567
Content-Disposition: form-data; name="event"
-{"type":"gesture_scroll","id":"9873a2fb-a0d1-4912-a92f-9e43e72afbc6","timestamp":"2023-08-24T14:51:41.000000534Z","session_id":"633a2fbc-a0d1-4912-a92f-9e43e72afbc6","gesture_scroll":{"target":"some-scroll-target","target_id":"scroll-target-id","touch_down_time":3394122,"touch_up_time":3395418,"x":1234,"y":340,"end_x":1330,"end_y":370,"velocity_px":123,"direction":"up"},"attributes":{"user_id":null,"installation_id":"322a2fbc-a0d1-1212-a92f-9e43e72afbc7","device_name":"sunfish","device_model":"SM-G950F","device_manufacturer":"samsung","device_type":"phone","device_is_foldable":true,"device_is_physical":false,"device_density_dpi":100,"device_width_px":480,"device_height_px":800,"device_density":2,"os_name":"android","os_version":"31","platform":"android","app_version":"1.0.1","app_build":"576358","app_unique_id":"com.example.app","network_type":"cellular","network_provider":"airtel","network_generation":"4g","measure_sdk_version":"0.0.1","thread_name":"main"},"attachments":[]}
+{"type":"gesture_scroll","id":"9873a2fb-a0d1-4912-a92f-9e43e72afbc6","timestamp":"2023-08-24T14:51:41.000000534Z","session_id":"633a2fbc-a0d1-4912-a92f-9e43e72afbc6","gesture_scroll":{"target":"some-scroll-target","target_id":"scroll-target-id","touch_down_time":3394122,"touch_up_time":3395418,"x":1234,"y":340,"end_x":1330,"end_y":370,"direction":"up"},"attributes":{"user_id":null,"installation_id":"322a2fbc-a0d1-1212-a92f-9e43e72afbc7","device_name":"sunfish","device_model":"SM-G950F","device_manufacturer":"samsung","device_type":"phone","device_is_foldable":true,"device_is_physical":false,"device_density_dpi":100,"device_width_px":480,"device_height_px":800,"device_density":2,"os_name":"android","os_version":"31","platform":"android","app_version":"1.0.1","app_build":"576358","app_unique_id":"com.example.app","network_type":"cellular","network_provider":"airtel","network_generation":"4g","measure_sdk_version":"0.0.1","thread_name":"main"},"attachments":[]}
--PieBoundary123456789012345678901234567
Content-Disposition: form-data; name="blob-9e45a0bc-9277-468c-92f6-5eba2afc26e8"
@@ -270,7 +270,7 @@ Exhaustive list of all JSON fields.
Events can contain the following attributes, some of which are mandatory.
| Field | Type | Optional | Comment |
-| --------------------- | ------- | -------- | --------------------------------------------------------------------------- |
+|-----------------------|---------|----------|-----------------------------------------------------------------------------|
| `installation_id` | string | No | A unique identifier for an installation of an app, generated by the client. |
| `app_version` | string | No | App version identifier |
| `app_build` | string | No | App build identifier |
@@ -285,10 +285,10 @@ Events can contain the following attributes, some of which are mandatory.
| `device_type` | string | Yes | `phone` or `tablet` |
| `device_is_foldable` | boolean | Yes | `true` for foldable devices |
| `device_is_physical` | boolean | Yes | `true` for physical devices |
-| `device_density_dpi` | number | Yes | DPI density |
-| `device_width_px` | number | Yes | Screen width |
-| `device_height_px` | number | Yes | Screen height |
-| `device_density` | number | Yes | Device density |
+| `device_density_dpi` | uint16 | Yes | DPI density |
+| `device_width_px` | uint16 | Yes | Screen width |
+| `device_height_px` | uint16 | Yes | Screen height |
+| `device_density` | float32 | Yes | Device density |
| `device_locale` | string | Yes | Locale based on RFC 5646, eg. en-US |
| `os_name` | string | Yes | Operating system name |
| `os_version` | string | Yes | Operating system version |
@@ -379,9 +379,9 @@ Each thread object contains further fields.
Each frame object contains further fields.
| Field | Type | Optional | Comment |
-| ------------- | ------ | -------- | ------------------------------ |
-| `line_num` | number | Yes | Line number of the method |
-| `col_num` | number | Yes | Column number of the method |
+| ------------- |--------| -------- | ------------------------------ |
+| `line_num` | int | Yes | Line number of the method |
+| `col_num` | int | Yes | Column number of the method |
| `module_name` | string | Yes | Name of the originating module |
| `file_name` | string | Yes | Name of the originating file |
| `class_name` | string | Yes | Name of the originating class |
@@ -422,9 +422,9 @@ Each thread object contains further fields.
Each frame object contains further fields.
| Field | Type | Optional | Comment |
-| ------------- | ------ | -------- | ------------------------------ |
-| `line_num` | number | Yes | Line number of the method |
-| `col_num` | number | Yes | Column number of the method |
+| ------------- |--------| -------- | ------------------------------ |
+| `line_num` | int | Yes | Line number of the method |
+| `col_num` | int | Yes | Column number of the method |
| `module_name` | string | Yes | Name of the originating module |
| `file_name` | string | Yes | Name of the originating file |
| `class_name` | string | Yes | Name of the originating class |
@@ -443,60 +443,59 @@ Use the `string` type when sending unstructured or structured logs. Make sure st
Use the `gesture_long_click` body type for longer press and hold gestures.
-| Field | Type | Optional | Comment |
-| ----------------- | ------ | -------- | ------------------------------------------- |
-| `target` | string | Yes | Class/Instance name of the originating view |
-| `target_id` | string | Yes | Unique identifier for the target |
-| `touch_down_time` | string | Yes | System uptime when target was pressed |
-| `touch_up_time` | string | Yes | System uptime when target was released |
-| `width` | number | Yes | Width of the target view in pixels |
-| `height` | number | Yes | Height of the target view in pixels |
-| `x` | number | No | X coordinate of the target view |
-| `y` | number | No | Y coordinate of the target view |
+| Field | Type | Optional | Comment |
+|-------------------|---------|----------|---------------------------------------------|
+| `target` | string | Yes | Class/Instance name of the originating view |
+| `target_id` | string | Yes | Unique identifier for the target |
+| `touch_down_time` | string | Yes | System uptime when target was pressed |
+| `touch_up_time` | string | Yes | System uptime when target was released |
+| `width` | uint16 | Yes | Width of the target view in pixels |
+| `height` | uint16 | Yes | Height of the target view in pixels |
+| `x` | float32 | No | X coordinate of the target view |
+| `y` | float32 | No | Y coordinate of the target view |
#### **`gesture_scroll`**
Use the `gesture_scroll` body type for scroll events.
-| Field | Type | Optional | Comment |
-| ----------------- | ------ | -------- | ----------------------------------------------- |
-| `target` | string | Yes | Class/Instance name of the originating view |
-| `target_id` | string | Yes | Unique identifier for the target |
-| `touch_down_time` | string | Yes | System uptime when target scroll started |
-| `touch_up_time` | string | Yes | System uptime when target scroll ended |
-| `x` | number | No | X coordinate of the target where scroll started |
-| `y` | number | No | Y coordinate of the target where scroll started |
-| `end_x` | number | No | X coordinate of the target where scroll ended |
-| `end_y` | number | No | Y coordinate of the target where scroll ended |
-| `velocity_px` | number | Yes | Velocity at the time of scroll release |
-| `direction` | number | Yes | Angle at which the scroll took place |
+| Field | Type | Optional | Comment |
+|-------------------|---------|----------|-----------------------------------------------------|
+| `target` | string | Yes | Class/Instance name of the originating view |
+| `target_id` | string | Yes | Unique identifier for the target |
+| `touch_down_time` | uint32 | Yes | System uptime when target scroll started |
+| `touch_up_time` | uint32 | Yes | System uptime when target scroll ended |
+| `x` | float32 | No | X coordinate of the target where scroll started |
+| `y` | float32 | No | Y coordinate of the target where scroll started |
+| `end_x` | float32 | No | X coordinate of the target where scroll ended |
+| `end_y` | float32 | No | Y coordinate of the target where scroll ended |
+| `direction` | string | Yes | The direction of the scroll - left, right, up, down |
#### **`gesture_click`**
Use the `gesture_click` body type for taps or clicks.
-| Field | Type | Optional | Comment |
-| ----------------- | ------ | -------- | ----------------------------------------------- |
-| `target` | string | Yes | Class/Instance name of the originating view |
-| `target_id` | string | Yes | Unique identifier for the target |
-| `touch_down_time` | string | Yes | System uptime when target was pressed |
-| `touch_up_time` | string | Yes | System uptime when target was released |
-| `width` | number | Yes | Width of the target view in pixels |
-| `height` | number | Yes | Height of the target view in pixels |
-| `x` | number | No | X coordinate of the target where click happened |
-| `y` | number | No | Y coordinate of the target where click happened |
+| Field | Type | Optional | Comment |
+|-------------------|---------|----------|-------------------------------------------------|
+| `target` | string | Yes | Class/Instance name of the originating view |
+| `target_id` | string | Yes | Unique identifier for the target |
+| `touch_down_time` | string | Yes | System uptime when target was pressed |
+| `touch_up_time` | string | Yes | System uptime when target was released |
+| `width` | uint16 | Yes | Width of the target view in pixels |
+| `height` | uint16 | Yes | Height of the target view in pixels |
+| `x` | float32 | No | X coordinate of the target where click happened |
+| `y` | float32 | No | Y coordinate of the target where click happened |
#### **`http`**
Use the `http` body type for tracking a single HTTP network.
| Field | Type | Optional | Comment |
-| --------------------- | ------ | -------- | ------------------------------------------------------------------------------- |
+|-----------------------|--------|----------|---------------------------------------------------------------------------------|
| `url` | string | No | Complete URL of the HTTP request |
| `method` | string | No | Any of the common HTTP method like, `GET` or `POST` |
| `status_code` | int | Yes | Any of the common HTTP response codes. |
-| `start_time` | number | Yes | The uptime at which the http call started, in ms. |
-| `end_time` | number | Yes | The uptime at which the http call ended, in ms. |
+| `start_time` | uint32 | Yes | The uptime at which the http call started, in ms. |
+| `end_time` | uint32 | Yes | The uptime at which the http call ended, in ms. |
| `failure_reason` | string | Yes | The reason for failure. For Android, typically the IOException class name. |
| `failure_description` | string | Yes | The description of the failure. For Android, Typically the IOException message. |
| `request_headers` | map | Yes | The request headers. |
@@ -524,12 +523,12 @@ Use the `network_change` type for tracking changes to the network state of the d
Use the `app_exit` type for Application Exit events.
| Field | Type | Optional | Comment |
-| -------------- | ------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| -------------- |--------| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `reason` | string | No | One of the following:
- `REASON_ANR`
- `REASON_CRASH`
- `REASON_CRASH_NATIVE`
- `REASON_DEPENDENCY_DIED`
- `REASON_EXCESSIVE_RESOURCE_USAGE`
- `REASON_EXIT_SELF`
- `REASON_FREEZER`
- `REASON_INITIALIZATION_FAILURE`
- `REASON_LOW_MEMORY`
- `REASON_OTHER`
- `REASON_PACKAGE_STATE_CHANGE`
- `REASON_PACKAGE_UPDATED`
- `REASON_PERMISSION_CHANGE`
- `REASON_SIGNALED`
- `REASON_UNKNOWN`
- `REASON_USER_REQUESTED`
- `REASON_USER_STOPPED` |
| `importance` | string | No | Importance of the process that it used to have before death
- `IMPORTANCE_FOREGROUND`
- `IMPORTANCE_FOREGROUND_SERVICE`
- `IMPORTANCE_TOP_SLEEPING`
- `IMPORTANCE_VISIBLE`
- `IMPORTANCE_PERCEPTIBLE`
- `IMPORTANCE_CANT_SAVE_STATE`
- `IMPORTANCE_SERVICE`
- `IMPORTANCE_CACHED`
- `IMPORTANCE_GONE` |
| `trace` | string | Yes | Modified trace given by ApplicationExitInfo to help debug ANRs. Must be only set for session that had an ANR. |
-| `process_name` | number | No | Name of the process |
-| `pid` | number | Yes | ID of the process that died |
+| `process_name` | string | No | Name of the process |
+| `pid` | string | Yes | ID of the process that died |
| `timestamp` | string | Yes | Unix epoch timestamp of the process's death, in milliseconds. |
#### **`lifecycle_activity`**
@@ -568,10 +567,10 @@ Use the `cold_launch` type for Android cold app launch time.
| Field | Type | Optional | Comment |
| -------------------------------- | ------- | -------- | ---------------------------------------------------------------------- |
-| `process_start_uptime` | number | Yes | The start uptime, measure in ms. |
-| `process_start_requested_uptime` | number | Yes | The start uptime, measure in ms. |
-| `content_provider_attach_uptime` | number | Yes | The start uptime, measure in ms. |
-| `on_next_draw_uptime` | number | No | The time at which the app became visible to the user. |
+| `process_start_uptime` | uint32 | Yes | The start uptime, measure in ms. |
+| `process_start_requested_uptime` | uint32 | Yes | The start uptime, measure in ms. |
+| `content_provider_attach_uptime` | uint32 | Yes | The start uptime, measure in ms. |
+| `on_next_draw_uptime` | uint32 | No | The time at which the app became visible to the user. |
| `launched_activity` | string | No | The activity which drew the first frame during cold launch. |
| `has_saved_state` | boolean | No | Whether the _launched_activity_ was created with a saved state bundle. |
| `intent_data` | string | Yes | The Intent data used to launch the _launched_activity_. |
@@ -582,8 +581,8 @@ Use the `warm_launch` type for Android warm app launch time.
| Field | Type | Optional | Comment |
| ------------------- | ------- | -------- | ---------------------------------------------------------------------- |
-| app_visible_uptime | number | Yes | The time since the app became visible to the user, in ms. |
-| on_next_draw_uptime | number | No | The time at which the app became visible to the user, in ms. |
+| app_visible_uptime | uint32 | Yes | The time since the app became visible to the user, in ms. |
+| on_next_draw_uptime | uint32 | No | The time at which the app became visible to the user, in ms. |
| launched_activity | string | No | The activity which drew the first frame during launch |
| has_saved_state | boolean | No | Whether the _launched_activity_ was created with a saved state bundle. |
| intent_data | string | Yes | The Intent data used to launch the _launched_activity_. |
@@ -594,8 +593,8 @@ Use the `hot_launch` type for Android hot app launch time.
| Field | Type | Optional | Comment |
| ------------------- | ------- | -------- | ----------------------------------------------------------------- |
-| app_visible_uptime | number | Yes | The time elapsed since the app became visible to the user, in ms. |
-| on_next_draw_uptime | number | No | The time at which the app became visible to the user, in ms. |
+| app_visible_uptime | uint32 | Yes | The time elapsed since the app became visible to the user, in ms. |
+| on_next_draw_uptime | uint32 | No | The time at which the app became visible to the user, in ms. |
| launched_activity | string | No | The activity which drew the first frame during launch |
| has_saved_state | boolean | No | Whether the _launched_activity_ was created with a saved state. |
| intent_data | string | Yes | The Intent data used to launch the _launched_activity_. |
@@ -604,47 +603,47 @@ Use the `hot_launch` type for Android hot app launch time.
Use the `cpu_usage` type for CPU usage of a Linux based OS.
-| Field | Type | Optional | Description |
-| ----------------- | :----- | :------- | ------------------------------------------------------------------- |
-| `num_cores` | number | No | Number of cores in the device. |
-| `clock_speed` | number | No | Clock speed of the device, in Hz. |
-| `uptime` | number | No | Time since the device booted, in ms. |
-| `utime` | number | No | Time spent executing code in user mode, in Jiffies. |
-| `stime` | number | No | Time spent executing code in kernel mode, in Jiffies. |
-| `cutime` | number | No | Time spent executing code in user mode with children, in Jiffies. |
-| `cstime` | number | No | Time spent executing code in kernel mode with children, in Jiffies. |
-| `interval` | number | No | The interval between two collections, in ms. |
-| `percentage_usage`| number | No | The percentage CPU usage in the interval. |
-| `start_time` | number | No | The process start time, in Jiffies. |
+| Field | Type | Optional | Description |
+|--------------------|:--------|:---------|---------------------------------------------------------------------|
+| `num_cores` | uint8 | No | Number of cores in the device. |
+| `clock_speed` | uint32 | No | Clock speed of the device, in Hz. |
+| `uptime` | uint64 | No | Time since the device booted, in ms. |
+| `utime` | uint64 | No | Time spent executing code in user mode, in Jiffies. |
+| `stime` | uint64 | No | Time spent executing code in kernel mode, in Jiffies. |
+| `cutime` | uint64 | No | Time spent executing code in user mode with children, in Jiffies. |
+| `cstime` | uint64 | No | Time spent executing code in kernel mode with children, in Jiffies. |
+| `interval` | uint32 | No | The interval between two collections, in ms. |
+| `percentage_usage` | float64 | No | The percentage CPU usage in the interval. |
+| `start_time` | uint64 | No | The process start time, in Jiffies. |
#### **`memory_usage`**
Use the `memory_usage` type for memory usage of JVM applications.
| Field | Type | Optional | Description |
-| ----------------- | :----- | :------- | ----------------------------------------------------------------------------------------------------------------------------- |
-| java_max_heap | number | No | Maximum size of the Java heap allocated to the application. Measured in kB. |
-| java_total_heap | number | No | Total size of the Java heap available for memory allocation. Measured in kB. |
-| java_free_heap | number | No | Amount of free memory available in the Java heap. Measured in kB. |
-| total_pss | number | No | Total proportional set size - the amount of memory used by the process, including shared memory and code. Measured in kB. |
-| rss | number | Yes | Resident set size of the Java process - the amount of physical memory currently used by the Java application. Measured in kB. |
-| native_total_heap | number | No | Total size of the native heap (memory outside of Java's control) available for memory allocation. Measured in kB. |
-| native_free_heap | number | No | Amount of free memory available in the native heap. Measured in kB. |
-| interval | number | No | The interval between two consecutive readings. Measured in ms. |
+|-------------------|:-------|:---------|-------------------------------------------------------------------------------------------------------------------------------|
+| java_max_heap | uint64 | No | Maximum size of the Java heap allocated to the application. Measured in kB. |
+| java_total_heap | uint64 | No | Total size of the Java heap available for memory allocation. Measured in kB. |
+| java_free_heap | uint64 | No | Amount of free memory available in the Java heap. Measured in kB. |
+| total_pss | uint64 | No | Total proportional set size - the amount of memory used by the process, including shared memory and code. Measured in kB. |
+| rss | uint64 | Yes | Resident set size of the Java process - the amount of physical memory currently used by the Java application. Measured in kB. |
+| native_total_heap | uint64 | No | Total size of the native heap (memory outside of Java's control) available for memory allocation. Measured in kB. |
+| native_free_heap | uint64 | No | Amount of free memory available in the native heap. Measured in kB. |
+| interval | uint64 | No | The interval between two consecutive readings. Measured in ms. |
#### **`low_memory`**
Use the `low_memory` type for a low memory event from the system.
| Field | Type | Optional | Description |
-| ----------------- | :----- | :------- | ----------------------------------------------------------------------------------------------------------------------------- |
-| java_max_heap | number | No | Maximum size of the Java heap allocated to the application. Measured in kB. |
-| java_total_heap | number | No | Total size of the Java heap available for memory allocation. Measured in kB. |
-| java_free_heap | number | No | Amount of free memory available in the Java heap. Measured in kB. |
-| total_pss | number | No | Total proportional set size - the amount of memory used by the process, including shared memory and code. Measured in kB. |
-| rss | number | Yes | Resident set size of the Java process - the amount of physical memory currently used by the Java application. Measured in kB. |
-| native_total_heap | number | No | Total size of the native heap (memory outside of Java's control) available for memory allocation. Measured in kB. |
-| native_free_heap | number | No | Amount of free memory available in the native heap. Measured in kB. |
+|-------------------|:-------|:---------|-------------------------------------------------------------------------------------------------------------------------------|
+| java_max_heap | uint64 | No | Maximum size of the Java heap allocated to the application. Measured in kB. |
+| java_total_heap | uint64 | No | Total size of the Java heap available for memory allocation. Measured in kB. |
+| java_free_heap | uint64 | No | Amount of free memory available in the Java heap. Measured in kB. |
+| total_pss | uint64 | No | Total proportional set size - the amount of memory used by the process, including shared memory and code. Measured in kB. |
+| rss | uint64 | Yes | Resident set size of the Java process - the amount of physical memory currently used by the Java application. Measured in kB. |
+| native_total_heap | uint64 | No | Total size of the native heap (memory outside of Java's control) available for memory allocation. Measured in kB. |
+| native_free_heap | uint64 | No | Amount of free memory available in the native heap. Measured in kB. |
#### **`trim_memory`**