using System;
using System.Reactive;
namespace Octokit.Reactive
{
public interface IObservablePackagesClient
{
IObservablePackageVersionsClient PackageVersions { get; }
///
/// List all packages for an organisations, readable by the current user
///
///
/// See the API documentation for more details
///
/// Required: Organisation Name
/// Required: The type of package
IObservable GetAllForOrg(string org, PackageType packageType);
///
/// List all packages for an organisations, readable by the current user
///
///
/// See the API documentation for more details
///
/// Required: Organisation Name
/// Required: The type of package
/// Options for changing the API response
IObservable GetAllForOrg(string org, PackageType packageType, ApiOptions options);
///
/// List all packages for an organisations, readable by the current user
///
///
/// See the API documentation for more details
///
/// Required: Organisation Name
/// Required: The type of package
/// Optional: The visibility of the package
IObservable GetAllForOrg(string org, PackageType packageType, PackageVisibility? packageVisibility);
///
/// List all packages for an organisations, readable by the current user
///
///
/// See the API documentation for more details
///
/// Required: Organisation Name
/// Required: The type of package
/// Optional: The visibility of the package
/// Options for changing the API response
IObservable GetAllForOrg(string org, PackageType packageType, PackageVisibility? packageVisibility, ApiOptions options);
///
/// Get a specific package for an Organization.
///
///
/// See the API documentation for more details
///
/// Required: Organisation Name
/// Required: The type of package
/// Required: The name of the package
IObservable GetForOrg(string org, PackageType packageType, string packageName);
///
/// Delete a specific package for an Organization.
///
///
/// See the API documentation for more details
///
/// Required: Organisation Name
/// Required: The type of package
/// Required: The name of the package
IObservable DeleteForOrg(string org, PackageType packageType, string packageName);
///
/// Restore a specific package for an Organization.
///
///
/// See the API documentation for more details
///
/// Required: Organisation Name
/// Required: The type of package
/// Required: The name of the package
IObservable RestoreForOrg(string org, PackageType packageType, string packageName);
///
/// Lists packages owned by the authenticated user within the user's namespace
///
///
/// See the API documentation for more details
///
/// Required: The type of package
IObservable GetAllForActiveUser(PackageType packageType);
///
/// Lists packages owned by the authenticated user within the user's namespace
///
///
/// See the API documentation for more details
///
/// Required: The type of package
/// Options for changing the API response
IObservable GetAllForActiveUser(PackageType packageType, ApiOptions options);
///
/// Lists packages owned by the authenticated user within the user's namespace
///
///
/// See the API documentation for more details
///
/// Required: The type of package
/// Optional: The visibility of the package
IObservable GetAllForActiveUser(PackageType packageType, PackageVisibility? packageVisibility);
///
/// Lists packages owned by the authenticated user within the user's namespace
///
///
/// See the API documentation for more details
///
/// Required: The type of package
/// Optional: The visibility of the package
/// Options for changing the API response
IObservable GetAllForActiveUser(PackageType packageType, PackageVisibility? packageVisibility, ApiOptions options);
///
/// Gets a specific package 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
IObservable GetForActiveUser(PackageType packageType, string packageName);
///
/// Deletes 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
IObservable DeleteForActiveUser(PackageType packageType, string packageName);
///
/// Restores 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
IObservable RestoreForActiveUser(PackageType packageType, string packageName);
///
/// Lists packages owned by the authenticated user within the user's namespace
///
///
/// See the API documentation for more details
///
/// Required: Username
/// Required: The type of package
IObservable GetAllForUser(string username, PackageType packageType);
///
/// Lists packages owned by the authenticated user within the user's namespace
///
///
/// See the API documentation for more details
///
/// Required: Username
/// Required: The type of package
/// Options for changing the API response
IObservable GetAllForUser(string username, PackageType packageType, ApiOptions options);
///
/// Lists packages owned by the authenticated user within the user's namespace
///
///
/// See the API documentation for more details
///
/// Required: Username
/// Required: The type of package
/// Optional: The visibility of the package
IObservable GetAllForUser(string username, PackageType packageType, PackageVisibility? packageVisibility);
///
/// Lists packages owned by the authenticated user within the user's namespace
///
///
/// See the API documentation for more details
///
/// Required: Username
/// Required: The type of package
/// Optional: The visibility of the package
/// Options for changing the API response
IObservable GetAllForUser(string username, PackageType packageType, PackageVisibility? packageVisibility, ApiOptions options);
///
/// Gets a specific package metadata for a public package owned by a user.
///
///
/// See the API documentation for more details
///
/// Required: Username
/// Required: The type of package
/// Required: The name of the package
IObservable GetForUser(string username, PackageType packageType, string packageName);
///
/// Deletes an entire package for a user.
///
///
/// See the API documentation for more details
///
/// Required: Username
/// Required: The type of package
/// Required: The name of the package
IObservable DeleteForUser(string username, PackageType packageType, string packageName);
///
/// Restores an entire package for a user.
///
///
/// See the API documentation for more details
///
/// Required: Username
/// Required: The type of package
/// Required: The name of the package
IObservable RestoreForUser(string username, PackageType packageType, string packageName);
}
}