using System;
using System.Diagnostics.CodeAnalysis;
namespace Octokit.Reactive
{
///
/// A client for GitHub's Project Cards API.
///
///
/// See the Repository Projects API documentation for more information.
///
public interface IObservableProjectCardsClient
{
///
/// Gets all cards.
///
///
/// See the API documentation for more information.
///
/// The id of the column
IObservable GetAll(int columnId);
///
/// Gets all cards.
///
///
/// See the API documentation for more information.
///
/// The id of the column
/// Options for changing the API response
IObservable GetAll(int columnId, ApiOptions options);
///
/// Gets all cards.
///
///
/// See the API documentation for more information.
///
/// The id of the column
/// Used to filter the list of project cards returned
IObservable GetAll(int columnId, ProjectCardRequest request);
///
/// Gets all cards.
///
///
/// See the API documentation for more information.
///
/// The id of the column
/// Used to filter the list of project cards returned
/// Options for changing the API response
IObservable GetAll(int columnId, ProjectCardRequest request, ApiOptions options);
///
/// Gets a single card.
///
///
/// See the API documentation for more information.
///
/// The id of the card
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get")]
IObservable Get(long id);
///
/// Creates a card.
///
///
/// See the API documentation for more information.
///
/// The id of the column
/// The card to create
IObservable Create(int columnId, NewProjectCard newProjectCard);
///
/// Updates a card.
///
///
/// See the API documentation for more information.
///
/// The id of the card
/// New values to update the card with
IObservable Update(long id, ProjectCardUpdate projectCardUpdate);
///
/// Deletes a card.
///
///
/// See the API documentation for more information.
///
/// The id of the card
IObservable Delete(long id);
///
/// Moves a card.
///
///
/// See the API documentation for more information.
///
/// The id of the card
/// The position to move the card
IObservable Move(long id, ProjectCardMove position);
}
}