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

출력 전용입니다. UI에 표시될 DeviceSession의 제목입니다.

state

enum (SessionState)

출력 전용입니다. DeviceSession의 현재 상태입니다.

stateHistories[]

object (SessionStateEvent)

출력 전용입니다. 현재 세션 상태를 포함한 sessionState 메시지의 이전 상태 전환입니다.

inactivityTimeout

string (Duration format)

출력 전용입니다. ACTIVE에서 TIMEOUT_INACTIVITY으로 전환되기 전에 기기와 상호작용해야 하는 시간 간격입니다.

소수점 아래가 최대 9자리까지이고 's'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"입니다.

createTime

string (Timestamp format)

출력 전용입니다. 세션이 생성된 시간입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

activeStartTime

string (Timestamp format)

출력 전용입니다. 세션이 처음 활성화 상태가 된 타임스탬프입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

androidDevice

object (AndroidDevice)

필수 항목입니다. 요청한 기기

통합 필드 expiration.

expiration는 다음 중 하나여야 합니다.

ttl

string (Duration format)

선택사항입니다. 기기가 처음에 할당되는 시간입니다. 이는 최종적으로 deviceSessions.patch RPC로 확장될 수 있습니다. 기본값은 15분입니다.

소수점 아래가 최대 9자리까지이고 's'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"입니다.

expireTime

string (Timestamp format)

선택사항입니다. 이때 기기가 여전히 사용 중이면 모든 연결이 종료되고 SessionState가 ACTIVE에서 FINISHED로 전환됩니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

세션 상태

기기 세션이 있는 상태입니다.

열거형
SESSION_STATE_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
REQUESTED 세션 요청의 초기 상태입니다. 세션의 정확성을 확인하는 중이며 기기가 아직 요청되지 않았습니다.
PENDING 세션이 확인되었으며 기기 대기열에 있습니다.
ACTIVE 세션이 부여되었으며 기기가 연결을 수락하고 있습니다.
EXPIRED 세션 시간이 기기의 예약 기간을 초과하여 자동으로 타임아웃되었습니다.
FINISHED 사용자가 세션을 종료했지만 요청이 아직 할당 중이거나 할당 후 및 기기 사용 기간 중에 사용자에 의해 취소되었습니다.
UNAVAILABLE 기기를 사용할 수 없고 스케줄러를 통해 할당할 수 없으므로 세션을 완료할 수 없습니다. 예를 들어 카탈로그에 없는 기기가 요청되었거나 할당 큐에서 요청이 만료되었습니다.
ERROR 인프라 장애와 같은 내부적인 이유로 세션을 완료할 수 없습니다.

세션 상태 이벤트

일련의 세션 상태와 DeviceSession이 이러한 상태에 처음 진입한 시간을 요약한 메시지입니다.

JSON 표현
{
  "sessionState": enum (SessionState),
  "eventTime": string,
  "stateMessage": string
}
필드
sessionState

enum (SessionState)

출력 전용입니다. 이 이벤트에서 추적하는 sessionState입니다.

eventTime

string (Timestamp format)

출력 전용입니다. sessionState에서 해당 상태를 처음 발견한 시간입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "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/{project_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가 설명하는 필드로 현재 기기 세션을 업데이트합니다.