using System;
using System.Diagnostics.CodeAnalysis;
namespace Octokit.Reactive
{
public interface IObservableUsersClient
{
///
/// Returns the user specified by the login.
///
/// The login name for the user
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get")]
[SuppressMessage("Microsoft.Naming", "CA1726:UsePreferredTerms", MessageId = "login")]
IObservable Get(string login);
///
/// Returns a for the current authenticated user.
///
/// Thrown if the client is not authenticated.
/// A
IObservable Current();
///
/// Update the specified .
///
/// The login for the user
/// Thrown if the client is not authenticated.
/// A
IObservable Update(UserUpdate user);
///
/// A client for GitHub's User Followers API
///
///
/// See the Followers API documentation for more information.
///
IObservableFollowersClient Followers { get; }
///
/// A client for GitHub's User Emails API
///
///
/// See the Emails API documentation for more information.
///
IObservableUserEmailsClient Email { get; }
///
/// A client for GitHub's User Keys API
///
///
/// See the Keys API documentation for more information.
///
IObservableUserKeysClient Keys { get; }
///
/// A client for GitHub's UserUser GPG Keys API.
///
///
/// See the User GPG Keys documentation for more information.
///
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gpg")]
IObservableUserGpgKeysClient GpgKey { get; }
///
/// A client for GitHub's User Administration API
///
///
/// See the User Administrator API documentation for more information.
///
IObservableUserAdministrationClient Administration { get; }
}
}