Model Contracts
8 min
these contracts match the public node js sdk types in version 1 0 0 java response models expose the same fields through record style accessors such as device serial() and allocation allocationid() page interface pagedto\<t> { size number; page number; totalpages number; totalelements number; data t\[]; } { "size" 20, "page" 0, "totalpages" 1, "totalelements" 1, "data" \[] } device and pool interface device { id number | null; serial string | null; marketname string | null; model string | null; manufacturer string | null; platform string | null; platformversion string | null; version string | null; state string | null; issimulator boolean | null; ispublic boolean | null; } interface pool { id string | null; name string | null; } device state is a server provided string sdk version 1 0 0 does not publish a device state enum, so integrations must not assume undocumented values such as available , busy or offline issimulator and ispublic were added to the java and node js device models for master parity they remain nullable because older or environment specific responses may omit them allocation request interface deviceallocationrequest { serial? string; manufacturer? string; model? string; platform? string; platformversion? string; devicepoolid? string; priority number; } response interface allocation { allocationid string | null; deviceserial string | null; requestid string | null; position number | null; expiresat string | null; } { "allocationid" "allocation 123", "deviceserial" null, "requestid" "request 456", "position" 2, "expiresat" "2026 07 14t12 30 00z" } priority defaults to 3 and accepts 1 through 5 a null deviceserial means the allocation response does not yet identify an assigned device keep the same allocationid while waiting session request interface devicestartsessionrequest { allocationid? string; companypoolid? string; sessionid? string; videorecording boolean; userid? number; useremail? string; companyid? number; companyname? string; customvideorecordingpath? string; appiumversion? string; } response interface session { id number | null; state string | null; client string | null; sessionid string | null; allocationid string | null; startdate string | null; enddate string | null; latestinteractiontime string | null; userid number | null; useremail string | null; companyid number | null; companyname string | null; deviceserial string | null; devicename string | null; devicemodel string | null; devicemanufacturer string | null; deviceplatform string | null; deviceversion string | null; videorecording boolean | null; videorecordurl string | null; appiumversion string | null; createdat string | null; updatedat string | null; dataaccessenddate string | null; } session state is also server provided and has no public sdk enum in version 1 0 0 treat unknown values as valid and decide readiness from the workflow contract supplied for your device park environment application and screen record interface application { revision number | null; sizeinbytes number | null; version string | null; filekey string | null; filepath string | null; downloadurl string | null; createdat string | null; } interface screenrecord { filekey string | null; filepath string | null; downloadurl string | null; createdat string | null; updatedat string | null; duration number | null; } download urls can expire persist filekey , not downloadurl , when a stable application or recording identifier is required published constants const sortdirection = { asc "asc", desc "desc" } as const; const searchoperation = { equal "equal", not equal "not equal", greater than "greater than", less than "less than" } as const; java exposes the same values as sortdirection and searchoperation enums filter key constants are listed in pagination and filtering /reference/pagination and filtering
