using System;
using System.Diagnostics.CodeAnalysis;
using System.Reactive;
namespace Octokit.Reactive
{
///
/// A client for GitHub's Issues API.
///
///
/// See the Issues API documentation for more information.
///
public interface IObservableIssuesClient
{
///
/// Client for managing assignees.
///
IObservableAssigneesClient Assignee { get; }
///
/// Client for managing milestones.
///
IObservableMilestonesClient Milestone { get; }
///
/// Client for reading various event information associated with issues/pull requests.
/// This is useful both for display on issue/pull request information pages and also to
/// determine who should be notified of comments.
///
IObservableIssuesEventsClient Events { get; }
///
/// Client for managing labels.
///
IObservableIssuesLabelsClient Labels { get; }
///
/// Client for managing comments.
///
IObservableIssueCommentsClient Comment { get; }
///
/// Gets a single Issue by number.
///
///
/// http://developer.github.com/v3/issues/#get-a-single-issue
///
/// The owner of the repository
/// The name of the repository
/// The issue number
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get",
Justification = "Method makes a network request")]
IObservable Get(string owner, string name, int number);
///
/// Gets a single Issue by number.
///
///
/// http://developer.github.com/v3/issues/#get-a-single-issue
///
/// The Id of the repository
/// The issue number
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get",
Justification = "Method makes a network request")]
IObservable Get(int repositoryId, int number);
///
/// Gets all open issues assigned to the authenticated user across all the authenticated user’s visible
/// repositories including owned repositories, member repositories, and organization repositories.
///
///
/// Issues are sorted by the create date descending.
/// http://developer.github.com/v3/issues/#list-issues
///
IObservable GetAllForCurrent();
///
/// Gets all open issues assigned to the authenticated user across all the authenticated user’s visible
/// repositories including owned repositories, member repositories, and organization repositories.
///
/// Options for changing the API response
///
/// Issues are sorted by the create date descending.
/// http://developer.github.com/v3/issues/#list-issues
///
IObservable GetAllForCurrent(ApiOptions options);
///
/// Gets all issues across all the authenticated user’s visible repositories including owned repositories,
/// member repositories, and organization repositories.
///
///
/// http://developer.github.com/v3/issues/#list-issues
///
/// Used to filter and sort the list of issues returned
IObservable GetAllForCurrent(IssueRequest request);
///
/// Gets all issues across all the authenticated user’s visible repositories including owned repositories,
/// member repositories, and organization repositories.
///
///
/// http://developer.github.com/v3/issues/#list-issues
///
/// Used to filter and sort the list of issues returned
/// Options for changing the API response
IObservable GetAllForCurrent(IssueRequest request, ApiOptions options);
///
/// Gets all open issues assigned to the authenticated user across owned and member repositories for the
/// authenticated user.
///
///
/// Issues are sorted by the create date descending.
/// http://developer.github.com/v3/issues/#list-issues
///
IObservable GetAllForOwnedAndMemberRepositories();
///
/// Gets all open issues assigned to the authenticated user across owned and member repositories for the
/// authenticated user.
///
/// Options for changing the API response
///
/// Issues are sorted by the create date descending.
/// http://developer.github.com/v3/issues/#list-issues
///
IObservable GetAllForOwnedAndMemberRepositories(ApiOptions options);
///
/// Gets all issues across owned and member repositories for the authenticated user.
///
///
/// http://developer.github.com/v3/issues/#list-issues
///
/// Used to filter and sort the list of issues returned
IObservable GetAllForOwnedAndMemberRepositories(IssueRequest request);
///
/// Gets all issues across owned and member repositories for the authenticated user.
///
///
/// http://developer.github.com/v3/issues/#list-issues
///
/// Used to filter and sort the list of issues returned
/// Options for changing the API response
IObservable GetAllForOwnedAndMemberRepositories(IssueRequest request, ApiOptions options);
///
/// Gets all open issues assigned to the authenticated user for a given organization for the authenticated user.
///
///
/// http://developer.github.com/v3/issues/#list-issues
///
/// The name of the organization
IObservable GetAllForOrganization(string organization);
///
/// Gets all open issues assigned to the authenticated user for a given organization for the authenticated user.
///
///
/// http://developer.github.com/v3/issues/#list-issues
///
/// The name of the organization
/// Options for changing the API response
IObservable GetAllForOrganization(string organization, ApiOptions options);
///
/// Gets all issues for a given organization for the authenticated user.
///
///
/// http://developer.github.com/v3/issues/#list-issues
///
/// The name of the organization
/// Used to filter and sort the list of issues returned
IObservable GetAllForOrganization(string organization, IssueRequest request);
///
/// Gets all issues for a given organization for the authenticated user.
///
///
/// http://developer.github.com/v3/issues/#list-issues
///
/// The name of the organization
/// Used to filter and sort the list of issues returned
/// Options for changing the API response
IObservable GetAllForOrganization(string organization, IssueRequest request, ApiOptions options);
///
/// Gets all open issues assigned to the authenticated user for the repository.
///
///
/// http://developer.github.com/v3/issues/#list-issues-for-a-repository
///
/// The owner of the repository
/// The name of the repository
IObservable GetAllForRepository(string owner, string name);
///
/// Gets all open issues assigned to the authenticated user for the repository.
///
///
/// http://developer.github.com/v3/issues/#list-issues-for-a-repository
///
/// The Id of the repository
IObservable GetAllForRepository(int repositoryId);
///
/// Gets all open issues assigned to the authenticated user for the repository.
///
///
/// http://developer.github.com/v3/issues/#list-issues-for-a-repository
///
/// The owner of the repository
/// The name of the repository
/// Options for changing the API response
IObservable GetAllForRepository(string owner, string name, ApiOptions options);
///
/// Gets all open issues assigned to the authenticated user for the repository.
///
///
/// http://developer.github.com/v3/issues/#list-issues-for-a-repository
///
/// The Id of the repository
/// Options for changing the API response
IObservable GetAllForRepository(int repositoryId, ApiOptions options);
///
/// Gets issues for a repository.
///
///
/// http://developer.github.com/v3/issues/#list-issues-for-a-repository
///
/// The owner of the repository
/// The name of the repository
/// Used to filter and sort the list of issues returned
IObservable GetAllForRepository(string owner, string name, RepositoryIssueRequest request);
///
/// Gets issues for a repository.
///
///
/// http://developer.github.com/v3/issues/#list-issues-for-a-repository
///
/// The Id of the repository
/// Used to filter and sort the list of issues returned
IObservable GetAllForRepository(int repositoryId, RepositoryIssueRequest request);
///
/// Gets issues for a repository.
///
///
/// http://developer.github.com/v3/issues/#list-issues-for-a-repository
///
/// The owner of the repository
/// The name of the repository
/// Used to filter and sort the list of issues returned
/// Options for changing the API response
IObservable GetAllForRepository(string owner, string name, RepositoryIssueRequest request, ApiOptions options);
///
/// Gets issues for a repository.
///
///
/// http://developer.github.com/v3/issues/#list-issues-for-a-repository
///
/// The Id of the repository
/// Used to filter and sort the list of issues returned
/// Options for changing the API response
IObservable GetAllForRepository(int repositoryId, RepositoryIssueRequest request, ApiOptions options);
///
/// Creates an issue for the specified repository. Any user with pull access to a repository can create an
/// issue.
///
/// http://developer.github.com/v3/issues/#create-an-issue
/// The owner of the repository
/// The name of the repository
/// A instance describing the new issue to create
IObservable Create(string owner, string name, NewIssue newIssue);
///
/// Creates an issue for the specified repository. Any user with pull access to a repository can create an
/// issue.
///
/// http://developer.github.com/v3/issues/#create-an-issue
/// The Id of the repository
/// A instance describing the new issue to create
IObservable Create(int repositoryId, NewIssue newIssue);
///
/// Creates an issue for the specified repository. Any user with pull access to a repository can create an
/// issue.
///
/// http://developer.github.com/v3/issues/#create-an-issue
/// The owner of the repository
/// The name of the repository
/// The issue number
/// An instance describing the changes to make to the issue
///
IObservable Update(string owner, string name, int number, IssueUpdate issueUpdate);
///
/// Creates an issue for the specified repository. Any user with pull access to a repository can create an
/// issue.
///
/// http://developer.github.com/v3/issues/#create-an-issue
/// The Id of the repository
/// The issue number
/// An instance describing the changes to make to the issue
///
IObservable Update(int repositoryId, int number, IssueUpdate issueUpdate);
///
/// Locks an issue for the specified repository. Issue owners and users with push access can lock an issue.
///
/// https://developer.github.com/v3/issues/#lock-an-issue
/// The owner of the repository
/// The name of the repository
/// The issue number
IObservable Lock(string owner, string name, int number);
///
/// Locks an issue for the specified repository. Issue owners and users with push access can lock an issue.
///
/// https://developer.github.com/v3/issues/#lock-an-issue
/// The Id of the repository
/// The issue number
IObservable Lock(int repositoryId, int number);
///
/// Unlocks an issue for the specified repository. Issue owners and users with push access can unlock an issue.
///
/// https://developer.github.com/v3/issues/#unlock-an-issue
/// The owner of the repository
/// The name of the repository
/// The issue number
IObservable Unlock(string owner, string name, int number);
///
/// Unlocks an issue for the specified repository. Issue owners and users with push access can unlock an issue.
///
/// https://developer.github.com/v3/issues/#unlock-an-issue
/// The Id of the repository
/// The issue number
IObservable Unlock(int repositoryId, int number);
}
}