using System;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
namespace Octokit
{
///
/// A client for GitHub's Users API.
///
///
/// See the Users API documentation for more information.
///
public interface IUsersClient
{
///
/// A client for GitHub's User Emails API
///
///
/// See the Emails API documentation for more information.
///
IUserEmailsClient Email { get; }
///
/// A client for GitHub's User Keys API
///
///
/// See the Keys API documentation for more information.
///
[Obsolete("Ssh key information is now available under the GitSshKey property. This will be removed in a future update.")]
IUserKeysClient Keys { get; }
///
/// A client for GitHub's User Keys API
///
///
/// See the Keys API documentation for more information.
///
IUserKeysClient GitSshKey { get; }
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gpg")]
IUserGpgKeysClient GpgKey { get; }
///
/// 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")]
Task Get(string login);
///
/// Returns a for the current authenticated user.
///
/// Thrown if the client is not authenticated.
/// A
Task Current();
///
/// Update the specified .
///
/// The login for the user
/// Thrown if the client is not authenticated.
/// A
Task Update(UserUpdate user);
///
/// A client for GitHub's User Followers API
///
///
/// See the Followers API documentation for more information.
///
IFollowersClient Followers { get; }
///
/// A client for GitHub's User Administration API
///
///
/// See the User Administrator API documentation for more information.
///
IUserAdministrationClient Administration { get; }
}
}