Files
octokit.net/Octokit.Reactive/Clients/IObservableIssuesLabelsClient.cs
2015-03-24 00:12:41 +10:00

147 lines
7.1 KiB
C#

using System;
using System.Diagnostics.CodeAnalysis;
using System.Reactive;
namespace Octokit.Reactive
{
public interface IObservableIssuesLabelsClient
{
/// <summary>
/// Gets all labels for the issue.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-labels-on-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="repo">The name of the repository</param>
/// <param name="number">The number of the issue</param>
/// <returns>The list of labels</returns>
IObservable<Label> GetAllForIssue(string owner, string repo, int number);
/// <summary>
/// Gets all labels for the repository.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository">API documentation</a> for more information.
/// </remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="repo">The name of the repository</param>
/// <returns>The list of labels</returns>
IObservable<Label> GetAllForRepository(string owner, string repo);
/// <summary>
/// Gets a single Label by name.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-a-single-label">API documentation</a> for more information.
/// </remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="repo">The name of the repository</param>
/// <param name="name">The name of the label</param>
/// <returns>The label</returns>
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get",
Justification = "Method makes a network request")]
IObservable<Label> Get(string owner, string repo, string name);
/// <summary>
/// Deletes a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#delete-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="repo">The name of the repository</param>
/// <param name="name">The name of the label</param>
/// <returns></returns>
IObservable<Unit> Delete(string owner, string repo, string name);
/// <summary>
/// Creates a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#create-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="repo">The name of the repository</param>
/// <param name="newLabel">The data for the label to be created</param>
/// <returns>The created label</returns>
IObservable<Label> Create(string owner, string repo, NewLabel newLabel);
/// <summary>
/// Updates a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#update-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="repo">The name of the repository</param>
/// <param name="name">The name of the label</param>
/// <param name="labelUpdate">The data for the label to be updated</param>
/// <returns>The updated label</returns>
IObservable<Label> Update(string owner, string repo, string name, LabelUpdate labelUpdate);
/// <summary>
/// Adds a label to an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#add-labels-to-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="repo">The name of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labels">The names of the labels to add</param>
/// <returns></returns>
IObservable<Label> AddToIssue(string owner, string repo, int number, string[] labels);
/// <summary>
/// Removes a label from an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#remove-a-label-from-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="repo">The name of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="label">The name of the label to remove</param>
/// <returns></returns>
IObservable<Unit> RemoveFromIssue(string owner, string repo, int number, string label);
/// <summary>
/// Replaces all labels on the specified issues with the provided labels
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#replace-all-labels-for-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="repo">The name of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labels">The names of the labels to set</param>
/// <returns></returns>
IObservable<Label> ReplaceAllForIssue(string owner, string repo, int number, string[] labels);
/// <summary>
/// Removes all labels from an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#remove-all-labels-from-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="repo">The name of the repository</param>
/// <param name="number">The number of the issue</param>
/// <returns></returns>
IObservable<Unit> RemoveAllFromIssue(string owner, string repo, int number);
/// <summary>
/// Gets labels for every issue in a milestone
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone">API documentation</a> for more information.
/// </remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="repo">The name of the repository</param>
/// <param name="number">The number of the milestone</param>
/// <returns></returns>
IObservable<Label> GetAllForMilestone(string owner, string repo, int number);
}
}