using System;
using System.Collections.Generic;
using System.Reactive;
using System.Text;
namespace Octokit.Reactive
{
///
/// A client for GitHub's Repository Secrets API.
///
///
/// See the Repository Secrets API documentation for more details.
///
public interface IObservableRepositorySecretsClient
{
///
/// Get the public signing key to encrypt secrets for a repository.
///
///
/// See the API documentation for more information.
///
/// The owner of the repository
/// The name of the repository
/// Thrown when a general API error occurs.
/// A instance for the repository public key.
IObservable GetPublicKey(string owner, string repoName);
///
/// List the secrets for a repository.
///
///
/// See the API documentation for more information.
///
/// The owner of the repository
/// The name of the repository
/// Thrown when a general API error occurs.
/// A instance for the list of repository secrets.
IObservable GetAll(string owner, string repoName);
///
/// Get a secret from a repository.
///
///
/// See the API documentation for more information.
///
/// The owner of the repository
/// The name of the repository
/// The name of the secret
/// Thrown when a general API error occurs.
/// A instance for the repository secret.
IObservable Get(string owner, string repoName, string secretName);
///
/// Create or update a secret in a repository.
///
///
/// See the API documentation for more information.
///
/// The owner of the repository
/// The name of the repository
/// The name of the secret
/// The encrypted value and id of the encryption key
/// Thrown when a general API error occurs.
/// A instance for the repository secret that was created or updated.
IObservable CreateOrUpdate(string owner, string repoName, string secretName, UpsertRepositorySecret upsertSecret);
///
/// Delete a secret in a repository.
///
///
/// See the API documentation for more information.
///
/// The owner of the repository
/// The name of the repository
/// The name of the secret
/// Thrown when a general API error occurs.
IObservable Delete(string owner, string repoName, string secretName);
}
}