using System; using System.Diagnostics.CodeAnalysis; using System.Reactive; using System.Threading; namespace Octokit.Reactive { /// /// A client for GitHub's Releases API. /// /// /// See the Releases API documentation for more information. /// public interface IObservableReleasesClient { /// /// Generates a s for the specified repository with auto generated notes. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// The request for generating release notes /// Thrown when a general API error occurs. IObservable GenerateReleaseNotes(string owner, string name, GenerateReleaseNotesRequest data); /// /// Generates a s for the specified repository with auto generated notes. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// The request for generating release notes /// Thrown when a general API error occurs. IObservable GenerateReleaseNotes(long repositoryId, GenerateReleaseNotesRequest data); /// /// Gets all s for the specified repository. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// Thrown when a general API error occurs. IObservable GetAll(string owner, string name); /// /// Gets all s for the specified repository. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// Thrown when a general API error occurs. IObservable GetAll(long repositoryId); /// /// Gets all s for the specified repository. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// Options for changing the API response /// Thrown when a general API error occurs. IObservable GetAll(string owner, string name, ApiOptions options); /// /// Gets all s for the specified repository. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// Options for changing the API response /// Thrown when a general API error occurs. IObservable GetAll(long repositoryId, ApiOptions options); /// /// Gets a single for the specified repository. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// The id of the release /// Thrown when a general API error occurs. IObservable Get(string owner, string name, long id); /// /// Gets a single for the specified repository. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// The tag of the release /// Thrown when a general API error occurs. IObservable Get(string owner, string name, string tag); /// /// Gets a single for the specified repository. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// The id of the release /// Thrown when a general API error occurs. IObservable Get(long repositoryId, long id); /// /// Gets a single for the specified repository. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// The tag of the release /// Thrown when a general API error occurs. IObservable Get(long repositoryId, string tag); /// /// Gets the latest for the specified repository. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// Thrown when a general API error occurs. IObservable GetLatest(string owner, string name); /// /// Gets the latest for the specified repository. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// Thrown when a general API error occurs. IObservable GetLatest(long repositoryId); /// /// Creates a new for the specified repository. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// A description of the release to create /// Thrown when a general API error occurs. IObservable Create(string owner, string name, NewRelease data); /// /// Creates a new for the specified repository. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// A description of the release to create /// Thrown when a general API error occurs. IObservable Create(long repositoryId, NewRelease data); /// /// Edits an existing for the specified repository. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// The id of the release /// A description of the release to edit /// Thrown when a general API error occurs. IObservable Edit(string owner, string name, long id, ReleaseUpdate data); /// /// Edits an existing for the specified repository. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// The id of the release /// A description of the release to edit /// Thrown when a general API error occurs. IObservable Edit(long repositoryId, long id, ReleaseUpdate data); /// /// Deletes an existing for the specified repository. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// The id of the release to delete /// Thrown when a general API error occurs. IObservable Delete(string owner, string name, long id); /// /// Deletes an existing for the specified repository. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// The id of the release to delete /// Thrown when a general API error occurs. IObservable Delete(long repositoryId, long id); /// /// Gets all for the specified release of the specified repository. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// The id of the . /// Thrown when a general API error occurs. IObservable GetAllAssets(string owner, string name, long id); /// /// Gets all for the specified release of the specified repository. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// The id of the . /// Thrown when a general API error occurs. IObservable GetAllAssets(long repositoryId, long id); /// /// Gets all for the specified release of the specified repository. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// The id of the . /// Options for changing the API response /// Thrown when a general API error occurs. IObservable GetAllAssets(string owner, string name, long id, ApiOptions options); /// /// Gets all for the specified release of the specified repository. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// The id of the . /// Options for changing the API response /// Thrown when a general API error occurs. IObservable GetAllAssets(long repositoryId, long id, ApiOptions options); /// /// Uploads a for the specified release. /// /// /// See the API documentation for more information. /// /// The to attach the uploaded asset to /// Description of the asset with its data /// An optional token to monitor for cancellation requests /// Thrown when a general API error occurs. IObservable UploadAsset(Release release, ReleaseAssetUpload data, CancellationToken cancellationToken = default); /// /// Gets the specified for the specified release of the specified repository. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// The id of the IObservable GetAsset(string owner, string name, int assetId); /// /// Gets the specified for the specified release of the specified repository. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// The id of the IObservable GetAsset(long repositoryId, int assetId); /// /// Edits the for the specified release of the specified repository. /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// The id of the /// Description of the asset with its amended data IObservable EditAsset(string owner, string name, int assetId, ReleaseAssetUpdate data); /// /// Edits the for the specified release of the specified repository. /// /// /// See the API documentation for more information. /// /// The Id of the repository /// The id of the /// Description of the asset with its amended data IObservable EditAsset(long repositoryId, int assetId, ReleaseAssetUpdate data); /// /// Deletes the specified from the specified repository /// /// /// See the API documentation for more information. /// /// The repository's owner /// The repository's name /// The id of the . IObservable DeleteAsset(string owner, string name, int assetId); /// /// Deletes the specified from the specified repository /// /// /// See the API documentation for more information. /// /// The Id of the repository /// The id of the . IObservable DeleteAsset(long repositoryId, int assetId); } }