Files
octokit.net/Octokit.Reactive/IObservableSshKeysClient.cs
Haacked f6c156f371 Return IReadOnlyList over IReadOnlyCollection
ReadOnlyCollection implements IReadOnlyList. Whodathunkit?
2013-10-04 10:23:28 -07:00

60 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Reactive;
namespace Octokit.Reactive
{
public interface IObservableSshKeysClient
{
/// <summary>
/// Retrieves the <see cref="SshKey"/> for the specified id.
/// </summary>
/// <param name="id">The ID of the SSH key.</param>
/// <returns>A <see cref="SshKey"/></returns>
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get")]
IObservable<SshKey> Get(int id);
/// <summary>
/// Retrieves the <see cref="SshKey"/> for the specified id.
/// </summary>
/// <param name="user">The login of the user.</param>
/// <returns>A <see cref="IReadOnlyPagedCollection{SshKey}"/> of <see cref="SshKey"/>.</returns>
IObservable<IReadOnlyList<SshKey>> GetAll(string user);
/// <summary>
/// Retrieves the <see cref="SshKey"/> for the specified id.
/// </summary>
/// <exception cref="AuthorizationException">Thrown if the client is not authenticated.</exception>
/// <returns>A <see cref="IReadOnlyPagedCollection{SshKey}"/> of <see cref="SshKey"/>.</returns>
[SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate",
Justification = "Makes a network request")]
IObservable<IReadOnlyList<SshKey>> GetAllForCurrent();
/// <summary>
/// Update the specified <see cref="UserUpdate"/>.
/// </summary>
/// <param name="key"></param>
/// <exception cref="AuthorizationException">Thrown if the client is not authenticated.</exception>
/// <returns>A <see cref="User"/></returns>
IObservable<SshKey> Create(SshKeyUpdate key);
/// <summary>
/// Update the specified <see cref="UserUpdate"/>.
/// </summary>
/// <param name="id"></param>
/// <param name="key"></param>
/// <exception cref="AuthorizationException">Thrown if the client is not authenticated.</exception>
/// <returns>A <see cref="User"/></returns>
IObservable<SshKey> Update(int id, SshKeyUpdate key);
/// <summary>
/// Update the specified <see cref="UserUpdate"/>.
/// </summary>
/// <param name="id">The id of the SSH key</param>
/// <exception cref="AuthorizationException">Thrown if the client is not authenticated.</exception>
/// <returns>A <see cref="User"/></returns>
IObservable<Unit> Delete(int id);
}
}