using System;
using System.Reactive;
namespace Octokit.Reactive
{
///
/// A client for GitHub's Pull Request Review API.
///
///
/// See the Review API documentation for more information.
///
public interface IObservablePullRequestReviewsClient
{
///
/// Gets reviews for a specified pull request.
///
/// https://developer.github.com/v3/pulls/reviews/#list-reviews-on-a-pull-request
/// The owner of the repository
/// The name of the repository
/// The pull request number
IObservable GetAll(string owner, string name, int pullRequestNumber);
///
/// Gets reviews for a specified pull request.
///
/// https://developer.github.com/v3/pulls/reviews/#list-reviews-on-a-pull-request
/// The Id of the repository
/// The pull request number
IObservable GetAll(long repositoryId, int pullRequestNumber);
///
/// Gets reviews for a specified pull request.
///
/// https://developer.github.com/v3/pulls/reviews/#list-reviews-on-a-pull-request
/// The owner of the repository
/// The name of the repository
/// The pull request number
/// Options for changing the API response
IObservable GetAll(string owner, string name, int pullRequestNumber, ApiOptions options);
///
/// Gets reviews for a specified pull request.
///
/// https://developer.github.com/v3/pulls/reviews/#list-reviews-on-a-pull-request
/// The Id of the repository
/// The pull request number
/// Options for changing the API response
IObservable GetAll(long repositoryId, int pullRequestNumber, ApiOptions options);
///
/// Gets a single pull request review by ID.
///
/// https://developer.github.com/v3/pulls/reviews/#get-a-single-review
/// The owner of the repository
/// The name of the repository
/// The pull request number
/// The pull request review number
IObservable Get(string owner, string name, int pullRequestNumber, long reviewId);
///
/// Gets a single pull request review by ID.
///
/// https://developer.github.com/v3/pulls/reviews/#get-a-single-review
/// The Id of the repository
/// The pull request number
/// The pull request review number
IObservable Get(long repositoryId, int pullRequestNumber, long reviewId);
///
/// Creates a pull request review.
///
/// https://developer.github.com/v3/pulls/reviews/#create-a-pull-request-review
/// The owner of the repository
/// The name of the repository
/// The pull request number
/// The review
IObservable Create(string owner, string name, int pullRequestNumber, PullRequestReviewCreate review);
///
/// Creates a pull request review.
///
/// https://developer.github.com/v3/pulls/reviews/#create-a-pull-request-review
/// The Id of the repository
/// The pull request number
/// The review
IObservable Create(long repositoryId, int pullRequestNumber, PullRequestReviewCreate review);
///
/// Deletes a pull request review.
///
/// https://developer.github.com/v3/pulls/reviews/#delete-a-pending-review
/// The owner of the repository
/// The name of the repository
/// The pull request number
/// The pull request review number
IObservable Delete(string owner, string name, int pullRequestNumber, long reviewId);
///
/// Deletes a pull request review.
///
/// https://developer.github.com/v3/pulls/reviews/#delete-a-pending-review
/// The Id of the repository
/// The pull request number
/// The pull request review number
IObservable Delete(long repositoryId, int pullRequestNumber, long reviewId);
///
/// Submits a pull request review.
///
/// https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review
/// The owner of the repository
/// The name of the repository
/// The pull request number
/// The pull request review number
/// The message and event being submitted for the review
IObservable Submit(string owner, string name, int pullRequestNumber, long reviewId, PullRequestReviewSubmit submitMessage);
///
/// Submits a pull request review.
///
/// https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review
/// The Id of the repository
/// The pull request number
/// The pull request review number
/// The message and event being submitted for the review
IObservable Submit(long repositoryId, int pullRequestNumber, long reviewId, PullRequestReviewSubmit submitMessage);
///
/// Dismisses a pull request review.
///
/// https://developer.github.com/v3/pulls/reviews/#dismiss-a-pull-request-review
/// The owner of the repository
/// The name of the repository
/// The pull request number
/// The pull request review number
/// The message indicating why the review was dismissed
IObservable Dismiss(string owner, string name, int pullRequestNumber, long reviewId, PullRequestReviewDismiss dismissMessage);
///
/// Dismisses a pull request review.
///
/// https://developer.github.com/v3/pulls/reviews/#dismiss-a-pull-request-review
/// The Id of the repository
/// The pull request number
/// The pull request review number
/// The message indicating why the review was dismissed
IObservable Dismiss(long repositoryId, int pullRequestNumber, long reviewId, PullRequestReviewDismiss dismissMessage);
///
/// Lists comments for a single review
///
/// https://developer.github.com/v3/pulls/reviews/#get-comments-for-a-single-review
/// The owner of the repository
/// The name of the repository
/// The pull request number
/// The pull request review number
IObservable GetAllComments(string owner, string name, int pullRequestNumber, long reviewId);
///
/// Dismisses a pull request review.
///
/// https://developer.github.com/v3/pulls/reviews/#get-comments-for-a-single-review
/// The Id of the repository
/// The pull request number
/// The pull request review number
IObservable GetAllComments(long repositoryId, int pullRequestNumber, long reviewId);
///
/// Lists comments for a single review
///
/// https://developer.github.com/v3/pulls/reviews/#get-comments-for-a-single-review
/// The owner of the repository
/// The name of the repository
/// The pull request number
/// The pull request review number
/// Options for changing the API response
IObservable GetAllComments(string owner, string name, int pullRequestNumber, long reviewId, ApiOptions options);
///
/// Dismisses a pull request review.
///
/// https://developer.github.com/v3/pulls/reviews/#get-comments-for-a-single-review
/// The Id of the repository
/// The pull request number
/// The pull request review number
/// Options for changing the API response
IObservable GetAllComments(long repositoryId, int pullRequestNumber, long reviewId, ApiOptions options);
}
}