About
Examples
All of the example requests are written using curl with bash. The variables service and user are expected to be set. Any Guid's referenced need to be substituted for locally applicable IDs.
Example of setting the environment variables:
export [email protected]:bca2e6ae-d0c2-4833-9fcd-9446076442a5
export service=http://10.10.0.30
Request Structure
Requests are composed of several components. The URL is structured as protocol://address:port/path?query. POST requests can optionally contain data that is not part of the URL, GET requests can not. The protocol will be http or https depending on your services configuration. The address:port is identical to the one configured for use with GigaFox's web service. The path is always one or more static nouns. Dynamic nouns, such as IDs, and verbs, are in the query. GigaFox's REST API is structured that all requests getting data use GET requests. All requests to modify data use POST requests and return a ResultModel.
Entitlements
Each user is assigned roles with varying degrees of entitlements, allowing users access to certain features, functions, and actions. Once roles are assigned, users will only have access to the entitlements determined by assigned role(s). A full list of entitlements can be found in the Users section of the GigaFox user guide.
Authentification
Authentication is performed using BASIC http authentication with the user's API token as the password.
Requests
Application Requests
GET /Application
curl -u $user "$service/apiv1/Application"
curl -u $user "$service/apiv1/Application?id=477f5020-fe89-4675-8e6d-92ed4302105a"
POST /Application?update&id={Guid}
Field | Type | Description |
---|---|---|
id | application GUID | The ID of the application to update. |
Field | Type | Description |
---|---|---|
Application update properties | update | A JSON object of the properties to change and their new values. |
curl -XPOST -u $user "$service/apiv1/Application?update&id=477f5020-fe89-4675-8e6d-92ed4302105a" \
-H "Content-Type: application/json" \
-d "{DisplayName:\"New application name\"}"
POST /Application?delete&id={Guid}
Field | Type | Description |
---|---|---|
id | application GUID | The ID of the application to delete. |
all | bool? | If set to true, all applications with the same identifier are deleted. If set to false or excluded, only the application specified by id is deleted. |
curl -XPOST -u $user "$service/apiv1/Application?delete&id=477f5020-fe89-4675-8e6d-92ed4302105a"
POST /Application?add
curl -XPOST -u $user "$service/apiv1/Application?add" --form "upload=@C:\files\deviceControl.ipa"
POST /Application?action=install&id={Guid}&deviceId={string}
Field | Type | Description |
---|---|---|
id | application GUID | The ID of the application to install. |
deviceId | GigaFox ID, serial number, or vendor ID | The device to install the application to. |
force | bool? | If set to true, any existing copy of the application is uninstalled and all user data for it is deleted. This may be required when changing signing certificates on iOS or Android. If false or excluded, a normal application installation is attempted. |
nativeAutomation | bool? | If set to true, the application is installed ready for using native automation with Trust automation. If false or excluded, the application is installed normally. |
curl -XPOST -u $user "$service/apiv1/Application?action=install&id=477f5020-fe89-4675-8e6d-92ed4302105a&deviceId=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6"
POST /Application?action=uninstall&id={Guid}&deviceId={string}
Field | Type | Description |
---|---|---|
id | application GUID | The ID of the application to uninstall. |
deviceId | GigaFox ID, serial number, or vendor ID | The device to uninstall the application from. |
removedata | bool? | If set to true or excluded, the user data for the application is removed. If set to false, the application data is preserved. This would be any files that the application has stored. |
curl -XPOST -u $user "$service/apiv1/Application?action=uninstall&id=477f5020-fe89-4675-8e6d-92ed4302105a&deviceId=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6"
POST /Application?action=uninstallBundle&bundleId={string}&deviceId={string}
Field | Type | Description |
---|---|---|
bundleId | string | The bundle id of the application to uninstall. |
deviceId | GigaFox ID, serial number, or vendor ID | The device to uninstall the application from. |
removedata | bool? | If set to true or excluded, the user data for the application is removed. If set to false, the application data is preserved. This would be any files that the application has stored. |
curl -XPOST -u $user "$service/apiv1/Application?action=uninstallBundle&bundleId=com.mobilelabs.trustbrowser&deviceId=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6"
POST /Application?action=launch&id={Guid}&deviceId={string}
Field | Type | Description |
---|---|---|
id | application GUID | The ID of the application to launch. |
deviceId | GigaFox ID, serial number, or vendor ID | The device to launch the application on. |
startOnly | bool? | If set to true, no instrumentation is performed on the application. |
arguments | string | The arguments to send to "am start" on Android, or the arguments to pass to the program on iOS. |
curl -XPOST -u $user "$service/apiv1/Application?action=launch&id=477f5020-fe89-4675-8e6d-92ed4302105a&deviceId=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6"
Device Requests
GET /Device
Field | Type | Description |
---|---|---|
properties | bool? | Include the Properties field. |
applications | bool? | If set to true, returns the GigaFox managed applications that are installed on the device in installedApplications. |
allApplications | bool? | If set to true, returns all applications that are installed on the device in installedApplications. Applications not managed by GigaFox will have 00000000-0000-0000-0000-000000000000 as their id. |
curl -u $user "$service/apiv1/Device"
curl -u $user "$service/apiv1/Device?availability=Online&properties=true"
curl -u $user "$service/apiv1/Device?enabled=true&availability=Online"
curl -u $user "$service/apiv1/Device?applications=true&id=0a7c9243-dj18-44cd-919a-nnd31hhf624f&"
curl -u $user "$service/apiv1/Device?applications=true&"
GET /Device/Available
Field | Type | Description |
---|---|---|
properties | bool? | Include the Properties field. |
applications | bool? | If set to true, returns the GigaFox managed applications that are installed on the device in installedApplications. |
allApplications | bool? | If set to true, returns all applications that are installed on the device in installedApplications. Applications not managed by GigaFox will have 00000000-0000-0000-0000-000000000000 as their id. |
curl -u $user "http://$server/apiv1/Device/Available"
GET /Device/Log?id={string}
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | The device to get the system log for. |
curl -u $user "$service/apiv1/Device/Log?id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6"
GET /Device/AppiumLog?id={string}
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | The device to get the system log for. |
currentSessionOnly | bool? | Only return logs for the current (or if session has ended, the last active) session. |
curl -u $user "$service/apiv1/Device/AppiumLog?id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6¤tSessionOnly=true"
POST /Device?delete&id={string}
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | The ID of the device to delete. |
curl -XPOST -u $user "$service/apiv1/Device?delete&id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6"
POST /Device?update&id={string}
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | The ID of the device to update. |
Type | Description |
---|---|
Device update process | A JSON object of the properties to change and their new values. |
curl -XPOST -u $user "$service/apiv1/Device?update&id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6" \
-H "Content-Type: application/json" \
-d "{Notes:\"This device is in-use by automation.\"}"
POST /Device/UsbPort?update&id={string}&usbHubPortState={UsbHubPortState}
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | , or *The ID of the device to update. If * is specified, then all devices are targeted. |
usbHubPortState | UsbHubPortState | The state to transition the USB hub port to. |
curl -XPOST -u $user "$service/apiv1/Device/UsbPort?update&id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6&usbHubPortState=Charge"
curl -XPOST -u $user "$service/apiv1/Device/UsbPort?update&id=*&usbHubPortState=Data"
POST /Device?action=reboot&id={string}
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | The ID of the device to reboot. |
curl -XPOST -u $user "$service/apiv1/Device?action=reboot&id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6"
POST /Device?action=retain&id={string}
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | The ID of the device to retain. |
curl -XPOST -u $user "$service/apiv1/Device?action=retain&id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6"
POST /Device?action=release&id={string}
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | The ID of the device to release. |
curl -XPOST -u $user "$service/apiv1/Device?action=release&id=1c32079b-53bc-4-bc4-bcf6-71444a7e6bb6"
POST /Device?action=enable&id={string}
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | The ID of the device to enable. |
curl -XPOST -u $user "$service/apiv1/Device?action=enable&id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6"
POST /Device?action=disable&id={string}
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | The ID of the device to disable. |
curl -XPOST -u $user "$service/apiv1/Device?action=disable&id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6"
POST /Device?action=reset&id={string}
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | The ID of the device to reset. |
uninstallAll | bool? | If set to true, all user installed applications on the device will be uninstalled. If false, no applications are uninstalled. If excluded, the default inside GigaFox's System area is used. |
reboot | bool? | If set to true, the device is reboot. If false, no reboot is performed. If excluded, the default inside GigaFox's System area is used. |
curl -XPOST -u $user "$service/apiv1/Device?action=reset&id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6"
Metrics Requests
GET /Device/Metrics?id={string}&table={string}
Metrics are gathered passively in the background for all devices managed by GigaFox, unless explicitly disabled. The metrics collected are to the best available for the given device which has some variance as documented. The metrics are stored in an InfluxDB service, which has some implications as documented.
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | The ID of the device to query metrics for. |
table | string |
Tables to select fields from. Formatted as a comma delineated list of measurement names. Table names are listed in the metrics schema. Example: &table=event, &table=event,log Warning: Referencing more than one table in a single query has a severe performance impact in InfluxDB. |
fields | string? | A list of fields to select. If excluded, all fields from the referenced tables will be returned. Referencing specific fields can drastically decrease the response size. Formatted as a comma delineated list of fields. Field names are listed in the metrics schema. |
aggr | string? |
A list of functions to perform on the referenced fields. When used, "fields" becomes a required argument. Formatted as a comma delineated list. Each function is implicitly given each listed field as the first argument. The function list is shown in influxdata. Example: Get the max aggregate of 2 fields. &aggr=max&fields=fieldA,fieldB performs the query as SELECT max(fieldA), max(fieldB) Example: Get the max aggregate and mean of 2 fields. &aggr=max,mean&fields=fieldA,fieldB performs the query as SELECT max(fieldA), max(fieldB), mean(fieldA), mean(fieldB) |
marker | string? |
The name of a marker. When used, the results are limited to the intermediate periods for the most recent specified markers. The marker session is
automatically inserted for the periods of time when a device is retained. Custom markers can be inserted using the startmarker and
stopmarker API actions. When a marker is specified, start and end are ignored.
Example: Get the metrics for the last 5 sessions. &marker=session&markerLimit=5 |
markerLimit | int? | The number of number of marker entries to reference. If not specific, defaults to 1. Having a markerLimit greater than 1 produces multiple timelines in a single result and may not be directly processable. This is a side effect of InfluxDB. |
markerOffset | int? | The number of markers to skip. For example, if markerLimit is 1, and markerOffset is 3, then the 4th previous marker entry will be used. |
limit | int? | Limit the result rows to the specified limit. If not set, there is no limit. limit can be used with offset to "page" results in smaller portions. limit is required if marker, start, and end are not present. |
offset | int? | The result row to start at. Can only be specified if limit is also specified. |
start | DateTime? | |
end | DateTim? | The time range to limit the query to. Both do not need to be specified. These values are ignored if marker is present. |
groupBy | string? | A field name to group the results by. |
orderBy | string? |
A field name to order the results by. Due to limitations in InfluxDB, at present only the time field is supported. An ordering
direction can be specified after a space in the field name. Ascending is assumed, desc can be specified manually.
Example: Order by time descending. &orderBy=time+desc |
format | string? | The format of the result. Possible values are csv and default. If CSV is not given, default is assumed. default is a pass-through of the JSON returned by InfluxDB. This permits any InfluxDB result processing tool to be used. Documentation of the format is available on their site: influxdata csv is a transcoding of the JSON to CSV format. CSV is beneficial in it may be less CPU intensive to process,could consume less bandwidth, and has compatibility with any CSV processing application. |
filename | string? | The filename for the returned document. If not specified, the default is "metrics-" followed by the device's name. The extension is automatically set according to the specified format. |
timeout | int? | The optional number of seconds to allow the query to run. The default is 120 seconds. This may need to be adjusted for more complex or larger queries. |
curl -u $user "$service/apiv1/Device/Metrics?id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6&marker=session&aggr=mean&table=sample&fields=Load"
curl -OJ -u $user "$service/apiv1/Device/Metrics?id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6&marker=session&table=sample&format=csv"
POST /Device/Metrics?action=startmarker&id={string}&name={string}
Field | Type | Description |
---|---|---|
id | GigaFox ID, serial number, or vendor ID | The ID of the device. |
name | string | The name of the marker. There are no character limitations. |
curl -XPOST -u $user "$service/apiv1/Device/Metrics?action=startmarker&id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6&name=account-login"
POST /Device/Metrics?action=stopmarker&id={string}&name={string}
Field | Type | Description |
---|---|---|
id | Guid | GigaFox ID, serial number, or vendor ID |
name | string | The name of the marker which was passed to startmarker. |
curl -XPOST -u $user "$service/apiv1/Device/Metrics?action=stopmarker&id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6&name=account-login"
curl -XPOST -u $user "$service/apiv1/Device/Metrics?id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6&table=sample&marker=account-login"
POST /Device/Metrics?action=enabled&id={string}&enable={bool}
Field | Type | Description |
---|---|---|
id | Guid | GigaFox ID, serial number, or vendor ID |
enable | bool | Set to true if metrics should be passively logged for this device. |
curl -XPOST -u $user "$service/apiv1/Device/Metrics?action=enabled&id=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6&enable=false"
User Requests
GET /User
curl -u $user "$service/apiv1/User"
curl -u $user "$service/apiv1/User?PostalCode=90210"
POST /User?update&id={Guid}
Field | Type | Description |
---|---|---|
id | Guid | The ID of the user. |
Type | Uses | Description |
---|---|---|
User update properties | update | A JSON object of the properties to change and their new values. |
curl -XPOST -u $user "$service/apiv1/User?update&id=571c211e-96d8-4dad-b11d-7e5e80e2c5fb" \
-X POST -H "Content-Type: application/json" \
-d "{LastName:\"Doe\",FirstName:\"John\"}"
POST /User?add
Type | Description |
---|---|
User | The model of the new user to create. |
curl -XPOST -u $user "http://10.4.5.135/apiv1/User?add" \
-X POST -H "Content-Type: application/json" \
-d "{Email:\"[email protected]\",Password:\"correcthorsebatterystaple\",isActive:\"true\",LastName:\"Doe\",FirstName:\"John\"}"
Report Requests
GET /Report/Availability
Field | Type | Description |
---|---|---|
days | int? | Only events newer than this many days old are returned. Used instead of fromDate. |
fromDate | DateTime? | Only events newer than the provided date are returned. If excluded, there is no minimum date. |
toDate | DateTime? | Only events older than the provided date are returned. If excluded, there is no maximum date. |
window | DateTime? | Only events within the set period of time. A time period with 30 second intervals would be window=00:00:30. |
curl -u $user "$service/apiv1/Report/Availability?window=00:00:30&"
curl -u $user "$service/apiv1/Report/Availability?toDate=04-01-2019&"
GET /Report/History
Field | Type | Description |
---|---|---|
applicationId | Guid? | Return only history for the application with this ID. If excluded, all applications are returned. |
deviceId | GigaFox ID, serial number, or vendor ID | Return only history for the specified device. If excluded, all devices are returned. |
userId | Guid? | Return only history for the user with this ID. If excluded, all users are returned. |
fromDate | DateTime? | Only events newer than the provided date are returned. If excluded, there is no minimum date. |
toDate | DateTime? | Only events older than the provided date are returned. If excluded, there is no maximum date. |
days | int? | Only events newer than this many days old are returned. Used instead of fromDate. |
skip | int? | The numeric starting entry to return the history from. Can be used in conjunction with take to paginate results. |
take | int? | The maximum number of entries to return. Can be used in conjunction with skip to paginate results. |
curl -u $user "$service/apiv1/Report/History?days=5&userId=571c211e-96d8-4dad-b11d-7e5e80e2c5fb"
GET /Report/Usage
Field | Type | Description |
---|---|---|
applicationId | Guid? | Return only history for the application with this ID. If excluded, all applications are returned. |
deviceId | GigaFox ID, serial number, or vendor ID | Return only history for the specified device. If excluded, all devices are returned. |
userId | Guid? | Return only history for the user with this ID. If excluded, all users are returned. |
fromDate | DateTime? | Only events newer than the provided date are returned. If excluded, there is no minimum date. |
toDate | DateTime? | Only events older than the provided date are returned. If excluded, there is no maximum date. |
days | int? | Only events newer than this many days old are returned. Used instead of fromDate. |
skip | int? | The numeric starting entry to return the history from. Can be used in conjunction with take to paginate results. |
take | int? | The maximum number of entries to return. Can be used in conjunction with skip to paginate results. |
curl -u $user "$service/apiv1/Report/Usage?days=7&deviceId=1c32079b-53bc-4bc4-bcf6-71444a7e6bb6"
Service Requests
GET /Service
curl -u $user "$service/apiv1/Service?"
Gateway Requests
GET /Gateway
curl -u $user "$service/apiv1/Gateway"
POST /Gateway/UsbHub?update&id={string}&usbHubPort={int}&usbHubPortState={UsbHubPortState}
Field | Type | Description |
---|---|---|
id | string | The serial number for the USB hub. |
usbHubPort | int | The numerical port number of the USB hub port to change. |
usbHubPortState | UsbHubPortState | The state to transition the port to. |
POST /Gateway/UsbHub?action=reboot&id={string}
Field | Type | Description |
---|---|---|
id | string | The serial number of the USB hub to reboot. |
Async Requests
GET /Async?id={Guid}
Field | Type | Description |
---|---|---|
id | Guid | The async ID. |
Async
Some requests take longer than a HTTP request can be held open. These requests return an AsyncResponse. The status of the request must then be polled using Get /Async.
Get Async will return a false value in isComplete until either an error or success occurs, then isComplete will be true, and data will be populated with the result. Once a completed status is returned, the async ID is invalidated and can no longer be used. Async results that have not been polled in 5 minutes are invalidated.
Metric Schema
The table names usb_hub, log, health_check, and sample. The column device_id is consistent across all tables.
usb_hub
Type | Description |
---|---|
device_id | The device ID. |
voltage | The current voltage on the USB hub's v5 line. |
amperage | The amperage draw the device is placing on the USB hub. |
wattage | The wattage draw the device is placing on the USB hub. |
usb_state | The state of this USB port. Possible values are Off, Sync, or Charge. |
charging_profile | When the device is in Charge state, the profile used by the Cambrionix USB hub to charge the device. No further information is available on this at this time. |
charging_seconds | When the number of seconds the device has been in the Charge state. |
battery_percentage | If available, the percentage of battery reported by the device. |
battery_status | If available, the status of the battery reported by the device. Possible values are Unknown, Charging, Discharging, NotCharging, Full. |
log
Type | Description |
---|---|
device_id | The device ID. |
log | The textual contents of the log line. |
health_check
Type | Description |
---|---|
device_id | The device ID. |
elapsed_seconds | The number of seconds taken to complete the health check. |
is_error | True if the health check failed, false otherwise. |
failure_reason | If a health check failed, an error message. |
sample
- iOS and Android
- device_id
- Memory
- Wired
- Used
- Free
- Active
- Inactive
- Network
- Bytes Out
- Bytes In
- Bytes Out Per Second
- Bytes In Per Second
- CPU
- Load
- User Load
- System Load
- iOS only
- Memory
- VM Swap Used
- VM Page Out Bytes
- VM Page In Bytes
- Disk
- Bytes Written
- Bytes Read
- Bytes Written Per Second
- Bytes Read Per Second
- Write Ops Per Second
- Read Ops Per Second
- Write Ops
- Read Ops
- Network
- Packets out
- Packets in
- Packets In Per Second
- Packets Out Per Second
- CPU
- Nice Load
- Threads
- The total sum of threads on all processes.
-
Android only
The Android only memory metrics can be referenced to from /proc/meminfo in man7.org.
Graphics information is only available if there's a process that was launched by GigaFox. What entries are available under Graphics varies between Android versions. More information can be found in developer.android.com. - Network
- Errors Out
- Dropped Out
- Errors In
- Dropped In
- CPU
- IO Wait Load
- IRQ Load
- Frequency
- Memory
- Buffers
- Cached
- Active (anon)
- Inactive (anon)
- Active (file)
- Inactive (file)
- User Total (HighTotal)
- User Free (HighFree)
- Kernel Total (LowTotal)
- Kernel Free (LowFree)
- AnonPages
- Mapped
- Kernel Stack
- Page Tables
- Commit Limit
- Committed_AS
- Vmalloc Total
- Vmalloc Used
- Vmalloc Chunk
- Graphics
- Total frames rendered
- Janky frames (count)
- Janky frames (percent)
- 90th percentile
- 95th percentile
- 99th percentile
- Number Missed Vsync
- Number High input latency
- Number Slow UI thread
- Number Slow bitmap uploads
- Number Slow issue draw commands
- TextureCache Current
- TextureCache Total
- LayerCache Current
- LayerCache Total
- RenderBufferCache Current
- RenderBufferCache Total
- GradientCache Current
- GradientCache Total
- PathCache Current
- PathCache Total
- TessellationCache Current
- TessellationCache Total
- TextDropShadowCache Current
- TextDropShadowCache Total
- PatchCache Current
- PatchCache Total
- FontRenderer 0 A8 Current
- FontRenderer 0 A8 Total
- FontRenderer 0 RGBA Current
- FontRenderer 0 RGBA Total
- FontRenderer 0 total Current
- FontRenderer 0 total Total
- FboCache Current
- FboCache Total
- Total graphics memory
Models
Enums
Enums are passed as strings.
Type | Description |
---|---|
DeviceAvailabilityStatus | Offline, Online |
ApplicationFormFactor | Universal, Phone, Tablet |
DeviceBatteryStatus | Unknown, Charging, Discharging, NotCharging, Full |
EventType | DeviceAvailability, DeviceRetained, DeviceEnablement, DeviceOperatingSystemChange, DeviceDeletion, ApplicationLaunch, ApplicationInstall, SharedViewOnlySessionCreated, UserLogin, UserCreated, ServerStarting, ServerRestarting, Note |
DeviceOperatingSystem | Unknown, iOS, Android |
DeviceFormFactor | Unknown, Phone, Tablet |
DevicePropertyType | System |
UsbHubPortState | Unknown, Off, Data, Charge |
UsbHubDeviceFlags | None, Off, Sync, Biased, ChargeIdle, ChargeProfiling, ChargeCharging, ChargeFinished, Attached, Detached, Errors, Rebooted, VBusReset |
Models
Application
Field | Type |
---|---|
id | Guid |
displayName | string |
applicationIdentifier | string |
version | string |
buildVersion | string |
Operating System | DeviceOperatingSystem |
minimumOperatingSystemVersion | string |
applicationBlob | string |
originalApplicationBlob | string |
fileName | string |
remotePort | int |
versionCounter | int |
iconBlob | string |
fileByteCount | long |
vendorApplicationName | string |
provisionExpirationDate | DateTime? |
provisionsAllDevices | bool |
signingCertificateName | string |
isSigningCertificatePresentInEmbeddedProvisi onProfile | bool |
supportedFormFactors | ApplicationFormFactor |
applicationErrors | string[] |
enabled | bool |
createdDate | DateTime |
appTeamIdentifier | string |
trustDylibTeamIdentifier | string |
isTrustDylibEmbeddedInApp | bool |
notes | string |
Device
Field | Type |
---|---|
id | Guid |
availability | DeviceAvailabilityStatus |
retainedById | Guid? |
retainedByDisplayName | string |
enabled | bool |
batteryStatus | DeviceBatteryStatus |
batteryPercentCharged | int |
diskSpace | long |
slotNumber | int? |
diskSpaceUsed | long |
nextReservationStartTime | DateTime? |
nextReservationEndTime | DateTime? |
reservedById | Guid? |
reservedByDisplayName | string |
lastInuseAt | DateTime? |
lastDisconnectedAt | DateTime? |
lastConnectedAt | DateTime? |
deleted | bool |
notes | string |
retainedByUserName | string |
name | string |
model | string |
operatingSystem | DeviceOperatingSystem |
operatingSystemVersion | string |
macAddress | string |
serialNumber | string |
manufacturer | string |
friendlyModel | string |
vendorUniqueIdentifier | string |
vendorDeviceName | string |
deviceClass | string |
formFactor | DeviceFormFactor |
productType | string |
isAudioEnabled | bool |
hardwareModel | string |
operatingSystemBuild | string |
usbHubSerialNumber | string |
usbHubPortNumber | int |
usbLocation | string |
bluetoothAddress | string |
properties | DeviceProperty[] |
application | Application[] |
DeviceProperty
Field | Type |
---|---|
name | string |
value | string |
type | DevicePropertyType |
User
Field | Type |
---|---|
id | Guid |
string | |
isActive | bool |
firstName | string |
middleName | string |
lastName | string |
notes | string |
organization | string |
title | string |
location | string |
address1 | string |
address2 | string |
city | string |
region | string |
postalCode | string |
country | string |
homePhone | string |
mobilePhone | string |
officePhone | string |
faxPhone | string |
createdDate | DateTime? |
lastLoginDate | DateTime? |
roles | string[] |
properties | UserProperty[] |
UserProperty
Field | Type |
---|---|
name | string |
value | string |
Event
Field | Type |
---|---|
id | Guid |
deviceId | Guid? |
deviceName | string |
eventType | EventType |
EventDate | DateTime |
performedById | Guid? |
performedByName | string |
intValue | int |
boolValue | bool |
stringValue | string |
message | string |
isSuccess | bool |
propertiesId | Guid? |
applicationName | string |
userId | Guid? |
deviceInuseCount | int |
deviceOnlineCount | int |
DeviceUsageSummary
Field | Type |
---|---|
id | Guid |
deviceId | Guid |
deviceName | string |
performedById | Guid? |
performedByName | string |
applicationId | Guid? |
applicationName | string |
reservedById | Guid? |
reservedByName | string |
eventType | EventType |
operatingSystem | DeviceOperatingSystem |
operatingSystemVersion | string |
startDate | DateTime |
endDate | DateTime |
duration | TimeSpan |
isDirty | bool |
EventHistory
Field | Type |
---|---|
count | int |
pageSize | int |
events | Event[] |
DeviceUsageHistory
Field | Type |
---|---|
count | int |
pageSize | int |
deviceUsage | DeviceUsageSummary[] |
GatewayDescription
Field | Type |
---|---|
name | string |
publicAddress | string |
publicPort | int |
usbHubList | UsbHub[] |
UsbHub
Field | Type |
---|---|
name | string |
location | string |
serialNumber | string |
description | string |
model | string |
firmware | string |
firmwareDate | string |
uptime | TimeSpan |
fiveVoltNow | double |
fiveVoltMin | double |
fiveVoltMax | double |
errorMessage | string |
isErrored | bool |
devices | UsbHubDevice[] |
UsbHubDevice
Field | Type |
---|---|
name | string |
location | string |
serialNumber | string |
usbHubSerialNumber | string |
usbHubPortNumber | int |
milliamps | int |
state | UsbHubPortState |
flags | UsbHubDeviceFlags |
chargingTime | TimeSpan |
chargingProfile | string |
DeviceAccessTicket
Field | Type |
---|---|
authenticator | string |
gatewayAddress | string |
gatewayPort | int |
deviceVendorUniqueIdentifier | string |
serialNumber | string |
Result<T>
The success of an action with an optional data component attached. Any model defined as returning ResultModel does not have data at anytime.
Field | Type | Description |
---|---|---|
isSuccess | bool | If the query operation was successful. |
errorMessage | string? | A textual message of the error that happened. Excluded if isSuccess is true. |
data | T? | The resulting data. Excluded if isSuccess is false. |
AsyncResponse
Field | Type |
---|---|
asyncResponseId | Guid |
AsyncStatus<T>
Field | Type |
---|---|
isComplete | bool |
data | T? |
Properties
Application
Field | Type | Uses |
---|---|---|
Id | Guid | query |
displayName | string | query; update |
ApplicationIdentifier | string | query |
Version | string | query |
buildVersion | string | query |
OperatingSystem | string | query |
MinimumOperatingSystemVersion | string | query |
ApplicationBlob | string | query |
OriginalApplicationBlob | string | query |
FileName | string | query |
Device
Field | Type | Uses |
---|---|---|
Id | Guid | query |
Name | string | query; update |
SlotNumber | string | query; update |
Enabled | bool | query; update |
Deleted | bool | query; update |
Notes | string | update |
OperatingSystem | string | query |
Availability | string | query |
User
Field | Type | Uses |
---|---|---|
Id | Guid | query |
UserName | string | query; update |
IsActive | string | query; update |
FirstName | string | query; update |
MiddleName | string | query; update |
LastName | string | update; update |
Notes | string | query; update |
Organization | string | query; update |
Title | string | query; update |
Location | string | query; update |
Address1 | string | query; update |
Address2 | string | query; update |
City | string | query; update |
Region | string | query; update |
PostalCode | string | query; update |
Country | string | query; update |
HomePhone | string | query; update |
MobilePhone | string | query; update |
OfficePhone | string | query; update |
FaxPhone | string | query; update |
Password | string | update |
AppiumInformation
Field | Type | Description |
---|---|---|
path | string | Path of the Appium configuration. |
version | string | The GigaFox managed patch version. |
pathHash | string | The GigaFox managed patch version. |
XcodeInformation
Field | Type | Description |
---|---|---|
path | string | The Xcode installation path. |
versionString | string | Xcode version |
version | string | Xcode version |
buildVersion | string | The Xcode build version. |
HubInformation
Field | Type | Description |
---|---|---|
deviceConnectNodeId | string | The unique licensed node ID of the hub service. |
GigaFoxVersion | string | The GigaFox version installed on the server. |
systemDateTime | DateTime | The local date/time of the server. |
systemDateTimeUtc | DateTime | The UTC date/time of the server. |
deviceGatewayInformation | GatewayInformation[] | Information regarding the connected device gateway servers. |
DeviceGatewayInformation
Field | Type | Description |
---|---|---|
GigaFoxId | string | The unique licensed node ID of the hub service. |
GigaFoxVersion | string | The GigaFox version installed on the server. |
systemDateTime | DateTime | The local date/time of the server. |
systemDateTimeUtc | DateTime | The UTC date/time of the server. |
deviceVendorUniqueIdentifiers | string[] | The list of vendor unique device IDs attached to this device gateway. |
xcode | XcodeInformation[] | The Xcode versions available on this device gateway. |
appium | AppiumInformation[] | The Appium versions available on this device gateway. |
appiumConfigurationError | string | Any known configuration issues with the Appium installation. |
General
Field | Type | Description |
---|---|---|
pretty | bool? | When set to true, data returns with line breaks and whitespace. |
Data Types
Any data type with a question mark postfix is optional. Generic types are represented with less than greater than brackets. For example, ResultModel<Guid> would be a ResultModel with a data property of Guid.
Guid
All Guids are v4 uuids. Most requests in GigaFox refer to objects internally by an assigned Guid. They should be treated no differently than strings.
Example: 1c32079b-53bc-4bc4-bcf6-71444a7e6bb6
bool
A boolean value.
bool results are always returned as true or false.
Requests accept boolean values in any case.
Examples:
- True
- true
String
Text. A sequence of characters.
int
A 32bit signed numerical value. Ranges are -2147483648 to 2147483647.
long
A 64bit signed numerical value. Ranges are -9223372036854775808 to 9223372036854775807.
DateTime
Represents a date and time combined.
DateTime results are always given as fully qualified ISO 8601 combined date time stamps in UTC.
Example: 2016-08-10T08:04:00Z
Requests accept any format which is valid for .net's DateTime.Parse. The timezone is presumed the server's timezone unless specified.
Examples:
- 05/01/2016 14:57:32.8
- 2016-05-01 14:57:32.8
- 2016-05-01T14:57:32.8375298-04:00
- 5/01/2016
TimeSpan
TimeSpans are returned as the total number of seconds as a decimal.
Example: 550000.0