blob: 92473eea610d12750e80cd641237c6b4e12f17d4 [file] [log] [blame]
// Copyright 2017 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.modular.auth;
/// Stores attributes related to an account that is exposed to base shell.
/// A list of existing account(s) can be obtained via
/// UserProvider.PreviousUsers() and a new account can be added via
/// UserProvider.AddAccount().
struct Account {
/// A randomly generated identifier that is used to identify this
/// account on this device. This is meant to be used by base shell when it
/// wants to login as a user who has previously logged in.
string id;
/// The identity provider that was used to authenticate the user on this
/// device.
IdentityProvider identity_provider;
/// Unique identifier configured for the given user at the Identity provider.
/// Profile id is fetched from user profile attributes as configured by the
/// user at the given identity provider.
string profile_id;
/// The name that is displayed on the base shell while logging in. Display
/// name is fetched from user profile attributes as configured by the user at
/// the given identity provider.
string display_name;
/// User's profile url that is used by the base shell while logging in.
/// Profile url is fetched from user profile attributes as configured by the
/// user at the given identity provider.
string url;
/// User's profile image url that is used by the base shell while logging in.
/// Profile image url is fetched from user profile attributes as configured by
/// the user at the given identity provider.
string image_url;
};
/// The currently supported identity providers. An identity provider provides
/// identifiers for users to interact with the system and may provide information
/// about the user that is known to the provider.
enum IdentityProvider {
/// An identity provider that's used for development and testing. If this
/// identity provider is chosen, the Framework will continue as if it has
/// identified the user. Note that the users that use this id provider would
/// not get cloud ledger access (unless done via a side channel).
DEV = 0;
/// Uses Google as the identity provider. Doing this requires a working network
/// connection and a web view.
GOOGLE = 1;
};