Voting helps other researchers find interesting modules.
The current and future availabilities of a user. The response contains a timeline, which starts before or at the request time, and the timeline is split into a set of disjoint intervals (without gaps), where the first range always contains the request time. Each range represents what should be displayed in the UI during this time range. The time range might be different from the actual time range of the underlying status. For example, if the user is OOO from 09:00 to 10:00, and a request is made at 8:00, the response might contain two intervals: [08:00, 09:00) - "User is INACTIVE, but leaving the office soon" [09:00, 10:00) - "User is OOO till 10:00" For intervals that don't have a clear availability signal coming from Calendar (e.g. OOO), we return INACTIVE. For more details, please see https://docs.google.com/presentation/d/1ADCTxGawjF9UqMnfuVrVNxGvdyjeiV8h4D7p0a9zYgw/edit#slide=id.g3e2824ac6c_12_94 The service returns availabilities for some short period of time - likely one day, but the client should stick to the "next_poll_time" to decide when to query the server again at the latest. Below there is an example response from the server. Let's assume the client calls the service at 17:59:45. The client receives the message and, assuming its current time is between [17:59:45, 18:00:00), it displays "inactive". When the current time becomes 18:00:00 it displays "outside working hours". At 18:00:40 the client issues another rpc which will return the availabilities for the next minute. The original response looks like availabilities { time_range { start_time: 17:59:45 end_time: 18:00:00 } status { inactive {} } } availabilities { time_range { start_time: 18:00:00 end_time: 18:00:45 } status { outside_working_hours { } } } next_poll_time: 18:00:40
availabilities
list(GoogleApi.ContentWarehouse.V1.Model.GoogleInternalAppsWaldoV1alphaUserAvailability.t)
nil
nextPollTime
DateTime.t
workingHours
GoogleApi.ContentWarehouse.V1.Model.GoogleInternalAppsWaldoV1alphaWorkingHours.t
Unwrap a decoded JSON object into its complex fields.
@type t() :: %GoogleApi.ContentWarehouse.V1.Model.GoogleInternalAppsWaldoV1alphaUserAvailabilities{ availabilities: [ GoogleApi.ContentWarehouse.V1.Model.GoogleInternalAppsWaldoV1alphaUserAvailability.t() ] | nil, nextPollTime: DateTime.t() | nil, workingHours: GoogleApi.ContentWarehouse.V1.Model.GoogleInternalAppsWaldoV1alphaWorkingHours.t() | nil }
@spec decode(struct(), keyword()) :: struct()