using System;
using System.Diagnostics.CodeAnalysis;
using System.Reactive;
using System.Reactive.Threading.Tasks;
namespace Octokit.Reactive
{
///
/// A client for GitHub's Enterprise LDAP API
///
///
/// See the Enterprise LDAP API documentation for more information.
///
public interface IObservableEnterpriseLdapClient
{
///
/// Update the LDAP mapping for a user on a GitHub Enterprise appliance (must be Site Admin user).
///
///
/// https://developer.github.com/v3/enterprise/ldap/#update-ldap-mapping-for-a-user
///
/// The username to update LDAP mapping
/// The
/// The object.
IObservable UpdateUserMapping(string userName, NewLdapMapping newLdapMapping);
///
/// Queue an LDAP Sync job for a user on a GitHub Enterprise appliance (must be Site Admin user).
///
///
/// https://developer.github.com/v3/enterprise/ldap/#sync-ldap-mapping-for-a-user
///
/// The username to sync LDAP mapping
/// The of the queue request.
IObservable QueueSyncUserMapping(string userName);
///
/// Update the LDAP mapping for a team on a GitHub Enterprise appliance (must be Site Admin user).
///
///
/// https://developer.github.com/v3/enterprise/ldap/#update-ldap-mapping-for-a-team
///
/// The teamId to update LDAP mapping
/// The
/// The object.
IObservable UpdateTeamMapping(int teamId, NewLdapMapping newLdapMapping);
///
/// Queue an LDAP Sync job for a team on a GitHub Enterprise appliance (must be Site Admin user).
///
///
/// https://developer.github.com/v3/enterprise/ldap/#sync-ldap-mapping-for-a-team
///
/// The teamId to update LDAP mapping
/// The of the queue request.
IObservable QueueSyncTeamMapping(int teamId);
}
}