using System;
using System.Reactive;
namespace Octokit.Reactive
{
public interface IObservablePackageVersionsClient
{
///
/// List all versions of a package.
///
///
/// See the API documentation for more details
///
/// Required: Organisation Name
/// Required: The type of package
/// Required: The name of the package
/// Optional: Return packages with a state. Defaults to Active
/// Optional: Paging options
IObservable GetAllForOrg(string org, PackageType packageType, string packageName, PackageVersionState state = PackageVersionState.Active, ApiOptions options = null);
///
/// Get a specific version of a package.
///
///
/// See the API documentation for more details
///
/// Required: Organisation Name
/// Required: The type of package
/// Required: The name of the package
/// Required: The id of the package version
IObservable GetForOrg(string org, PackageType packageType, string packageName, int packageVersionId);
///
/// Deletes a specific package version in an organization.
///
///
/// See the API documentation for more details
///
/// Required: Organisation Name
/// Required: The type of package
/// Required: The name of the package
/// Required: The id of the package version
IObservable DeleteForOrg(string org, PackageType packageType, string packageName, int packageVersionId);
///
/// Restores a specific package version in an organization.
///
///
/// See the API documentation for more details
///
/// Required: Organisation Name
/// Required: The type of package
/// Required: The name of the package
/// Required: The id of the package version
IObservable RestoreForOrg(string org, PackageType packageType, string packageName, int packageVersionId);
///
/// Returns all package versions for a package owned by the authenticated user.
///
///
/// See the API documentation for more details
///
/// Required: The type of package
/// Required: The name of the package
/// Optional: Return packages with a state. Defaults to Active
/// Optional: Paging options
IObservable GetAllForActiveUser(PackageType packageType, string packageName, PackageVersionState state = PackageVersionState.Active, ApiOptions options = null);
///
/// Gets a specific package version for a package owned by the authenticated user.
///
///
/// See the API documentation for more details
///
/// Required: The type of package
/// Required: The name of the package
/// Required: The id of the package version
IObservable GetForActiveUser(PackageType packageType, string packageName, int packageVersionId);
///
/// Deletes a specific package version for a package owned by the authenticated user.
///
///
/// See the API documentation for more details
///
/// Required: The type of package
/// Required: The name of the package
/// Required: The id of the package version
IObservable DeleteForActiveUser(PackageType packageType, string packageName, int packageVersionId);
///
/// Restores a package version owned by the authenticated user.
///
///
/// See the API documentation for more details
///
/// Required: The type of package
/// Required: The name of the package
/// Required: The id of the package version
IObservable RestoreForActiveUser(PackageType packageType, string packageName, int packageVersionId);
///
/// Returns all package versions for a public package owned by a specified user.
///
///
/// See the API documentation for more details
///
/// Required: Username
/// Required: The type of package
/// Required: The name of the package
/// Optional: Return packages with a state. Defaults to Active
/// Optional: Paging options
IObservable GetAllForUser(string username, PackageType packageType, string packageName, PackageVersionState state = PackageVersionState.Active, ApiOptions options = null);
///
/// Gets a specific package version for a public package owned by a specified user.
///
///
/// See the API documentation for more details
///
/// Required: Username
/// Required: The type of package
/// Required: The name of the package
/// Required: The id of the package version
IObservable GetForUser(string username, PackageType packageType, string packageName, int packageVersionId);
///
/// Deletes a specific package version for a user.
///
///
/// See the API documentation for more details
///
/// Required: Username
/// Required: The type of package
/// Required: The name of the package
/// Required: The id of the package version
IObservable DeleteForUser(string username, PackageType packageType, string packageName, int packageVersionId);
///
/// Restores a specific package version for a user.
///
///
/// See the API documentation for more details
///
/// Required: Username
/// Required: The type of package
/// Required: The name of the package
/// Required: The id of the package version
IObservable RestoreForUser(string username, PackageType packageType, string packageName, int packageVersionId);
}
}