Zasób: DeviceSession
Komunikat protokołu opisujący komunikat urządzenia, używany z kilku RPC.
Zapis JSON |
---|
{ "name": string, "displayName": string, "state": enum ( |
Pola | |
---|---|
name |
Opcjonalnie. Nazwa sesji na urządzeniu, np. „projects/{identyfikator_projektu}/deviceSessions/{identyfikator_sesji}” |
displayName |
Tylko dane wyjściowe. Tytuł sesji na urządzeniu, który będzie wyświetlany w interfejsie. |
state |
Tylko dane wyjściowe. Bieżący stan sesji na urządzeniu. |
stateHistories[] |
Tylko dane wyjściowe. Historyczne zmiany stanu wiadomości sessionState, w tym bieżący stan sesji. |
inactivityTimeout |
Tylko dane wyjściowe. Okres, po którym urządzenie musi być używane, zanim zmieni się z ACTIVE na TIMEOUT_INACTIVITY. Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „ |
createTime |
Tylko dane wyjściowe. Czas utworzenia sesji. Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową i maksymalnie 9 cyframi po przecinku. Przykłady: |
activeStartTime |
Tylko dane wyjściowe. Sygnatura czasowa, kiedy sesja po raz pierwszy stała się AKTYWNA. Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową i maksymalnie 9 cyframi po przecinku. Przykłady: |
androidDevice |
Wymagane. Żądane urządzenie |
Pole sumy
|
|
ttl |
Opcjonalnie. Czas, przez który urządzenie będzie początkowo przydzielone. Można to później rozszerzyć za pomocą polecenia RPC deviceSessions.patch. Domyślnie: 15 minut. Czas trwania w sekundach składający się z maksymalnie 9 cyfr po przecinku, kończący się cyfrą „ |
expireTime |
Opcjonalnie. Jeśli urządzenie jest nadal używane, wszystkie połączenia zostaną zakończone, a stan SessionState zmieni się z ACTIVE na FINISHED. Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową i maksymalnie 9 cyframi po przecinku. Przykłady: |
Stan sesji
Stan sesji na urządzeniu.
Wartości w polu enum | |
---|---|
SESSION_STATE_UNSPECIFIED |
Wartość domyślna. Ta wartość nie jest używana. |
REQUESTED |
Początkowy stan żądania sesji. Sesja jest weryfikowana pod kątem poprawności i nie zostało jeszcze wysłane żądanie dotyczące urządzenia. |
PENDING |
Sesja została zweryfikowana i znajduje się w kolejce dla urządzenia. |
ACTIVE |
Sesja została przyznana, a urządzenie akceptuje połączenia. |
EXPIRED |
Czas trwania sesji przekroczył okres rezerwacji urządzenia i automatycznie upłynął limit czasu. |
FINISHED |
Użytkownik zakończył sesję i została anulowana przez podczas przydzielania żądania lub po przydzieleniu jej oraz w okresie użytkowania urządzenia. |
UNAVAILABLE |
Nie udało się ukończyć sesji, ponieważ urządzenie było niedostępne i nie udało się go przydzielić za pomocą algorytmu szeregowania. Na przykład żądanie dotyczące urządzenia, którego nie ma w katalogu, lub wygasło w kolejce alokacji. |
ERROR |
Nie można ukończyć sesji z przyczyn wewnętrznych (np. awarii infrastruktury). |
Zdarzenie stanu sesji
Komunikat zawierający serię stanów sesji i czas, w którym sesja na urządzeniu po raz pierwszy weszła w te stany.
Zapis JSON |
---|
{
"sessionState": enum ( |
Pola | |
---|---|
sessionState |
Tylko dane wyjściowe. Wartość sessionState śledzona przez to zdarzenie |
eventTime |
Tylko dane wyjściowe. Czas pierwszego wystąpienia tego stanu przez parametr sessionState. Sygnatura czasowa w RFC3339 UTC „Zulu” z rozdzielczością nanosekundową i maksymalnie 9 cyframi po przecinku. Przykłady: |
stateMessage |
Tylko dane wyjściowe. Zrozumiały dla człowieka komunikat wyjaśniający stan. |
Metody |
|
---|---|
|
POST /v1/projects/{identyfikator_projektu}/deviceSessions/{device_session_id}:cancel zmienia wartość DeviceSession na FINISHED i kończy wszystkie połączenia. |
|
POST /v1/projects/{id_projektu}/deviceSessions |
|
GET /v1/projects/{identyfikator_projektu}/deviceSessions/{device_session_id} zwraca sesję DeviceSession, która dokumentuje stan przydziału i wskazuje, czy urządzenie zostało przydzielone. |
|
GET /v1/projects/{identyfikator_projektu}/deviceSessions zawiera listę sesji na urządzeniu należących do użytkownika projektu. |
|
PATCH /v1/projects/{projectId}/deviceSessions/deviceSessionId}:updateDeviceSession aktualizuje bieżącą sesję urządzenia do pól opisanych przez update_mask. |