REST Resource: projects.deviceSessions

资源:DeviceSession

描述设备消息的 Protobuf 消息,用于多个 RPC。

JSON 表示法
{
  "name": string,
  "displayName": string,
  "state": enum (SessionState),
  "stateHistories": [
    {
      object (SessionStateEvent)
    }
  ],
  "inactivityTimeout": string,
  "createTime": string,
  "activeStartTime": string,
  "androidDevice": {
    object (AndroidDevice)
  },

  // Union field expiration can be only one of the following:
  "ttl": string,
  "expireTime": string
  // End of list of possible types for union field expiration.
}
字段
name

string

可选。DeviceSession 的名称,例如“projects/{projectId}/deviceSessions/{session_id}”

displayName

string

仅限输出。要在界面中显示的 DeviceSession 的标题。

state

enum (SessionState)

仅限输出。DeviceSession 的当前状态。

stateHistories[]

object (SessionStateEvent)

仅限输出。sessionState 消息的历史状态转换,包括当前会话状态。

inactivityTimeout

string (Duration format)

仅限输出。在此设备从 ACTIVE 转换为 TIMEOUT_INACTIVITY 之前,必须与之互动的时间间隔。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

createTime

string (Timestamp format)

仅限输出。会话的创建时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

activeStartTime

string (Timestamp format)

仅限输出。会话首次变为 ACTIVE 的时间戳。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

androidDevice

object (AndroidDevice)

必需。请求的设备

联合字段 expiration

expiration 只能是下列其中一项:

ttl

string (Duration format)

可选。最初为设备分配的时长。最终可以通过 deviceSessions.patch RPC 进行扩展。默认值:15 分钟。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

expireTime

string (Timestamp format)

可选。如果此时设备仍在使用中,所有连接都将终止,且 SessionState 将从 ACTIVE 转换为 FINISHED。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

会话状态

设备会话所处的状态。

枚举
SESSION_STATE_UNSPECIFIED 默认值。此值未使用。
REQUESTED 会话请求的初始状态。验证会话是否正确,但尚未请求设备。
PENDING 该会话已通过验证,且已列入设备的队列。
ACTIVE 会话已授予,设备正在接受连接。
EXPIRED 会话时长超过了设备的预订时长,自动超时。
FINISHED 用户结束了会话,并且在请求仍在分配期间、分配之后以及设备使用期内被用户取消。
UNAVAILABLE 无法完成会话,因为设备不可用,且未能通过调度器分配。例如,请求的目录中不在目录中的设备,或者请求在分配队列中已过期。
ERROR 由于内部原因(例如基础架构故障),无法完成会话。

SessionStateEvent 类中的方法

一条消息,封装了一系列会话状态以及 DeviceSession 首次进入这些状态的时间。

JSON 表示法
{
  "sessionState": enum (SessionState),
  "eventTime": string,
  "stateMessage": string
}
字段
sessionState

enum (SessionState)

仅限输出。此事件跟踪的 sessionState

eventTime

string (Timestamp format)

仅限输出。sessionState 首次遇到该状态的时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

stateMessage

string

仅限输出。用于说明状态的人类可读消息。

方法

cancel

POST /v1/projects/{project_id}/deviceSessions/{device_session_id}:cancel 将 DeviceSession 更改为状态 FINISHED 并终止所有连接。

create

POST /v1/projects/{项目 ID}/deviceSessions

get

GET /v1/projects/{project_id}/deviceSessions/{device_session_id} 返回一个 DeviceSession,用于记录分配状态以及设备是否已分配。

list

GET /v1/projects/{project_id}/deviceSessions 列出项目用户拥有的设备会话。

patch

PATCH /v1/projects/{projectId}/deviceSessions/deviceSessionId}:updateDeviceSession 将当前设备会话更新为 update_mask 所描述的字段。