blob: 30c33bfb850c4615ea251158457ecd8c8398f9bf [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.auth.oldtokens;
/// The id of a user linked to this device, alongside the current access token
/// to make requests on the user's behalf.
table Credential {
/// Opaque id for the user with which this credential is associated. It is
/// stable across reconnections to the CredentialsProducer protocol.
1: string user_id;
/// OAuth2 access token for this user.
2: string access_token;
};
/// Clients can connect to this protocol to subscribe to changes in the set of
/// users linked to this device, as well as the OAuth2 access token associated
/// with each.
///
/// This protocol won't be supported on the majority of devices, and shouldn't
/// be used without permission from its maintainers.
[Discoverable]
protocol CredentialsProducer {
/// Get the set of users linked to this device, and their corresponding access
/// tokens. While the connection to the service remains uninterrumpted, the
/// method call hangs if it would return the same response as the previous
/// time it was called by this client. In other words, if the client already
/// has the most up-to-date credentials, the method acts as a hanging get and
/// only returns when there's an update to report.
GetUpdatedCredentials() -> (vector<Credential> credentials);
};