using System.Collections.Generic; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using gehGassi.Pwned.Models; namespace gehGassi.Pwned { /// /// Ein Client der mit der Pwned API kommuniziert um Passwörter zu prüfen /// public interface IPwnedBreachService { /// /// via DI. /// HttpClient Client { get; } /// /// Returns full or short breach information about compromised email account. /// /// An email address of the compromised user. /// Default is false, unverified breaches. /// Filters breaches that have been flagged as "unverified". /// By default, only verified breaches are returned web performing a search. /// /// Default is true and returns a full set of data about the breach. /// Filters the result set to only breaches against the domain specified. /// It is possible that one site (and consequently domain), is compromised on multiple occasions. /// /// Task> GetBreachesByAccountAsync(string emailAccount, bool unVerified = false, bool fullResponse = true, string domain = "", CancellationToken token = default); /// /// A "breach" is an instance of a system having been compromised by an attacker and the data disclosed. /// For example, Adobe was a breach, Gawker was a breach etc. /// It is possible to return the details of each of breach in the system which currently stands at 300 breaches. /// /// /// Filters the result set to only breaches against the domain specified. /// It is possible that one site (and consequently domain), is compromised on multiple occasions. /// /// /// Task> GetAllBreachesAsync(string domain = "", CancellationToken token = default); /// /// A "data class" is an attribute of a record compromised in a breach. /// For example, many breaches expose data classes such as "Email addresses" and "Passwords". /// The values returned by this service are ordered alphabetically in a string array /// and will expand over time as new breaches expose previously unseen classes of data. /// /// /// Task> GetAllDataClassesAsync(CancellationToken token = default); /// /// Unlike searching for breaches, usernames that are not email addresses cannot be searched for. /// /// /// /// Task> GetPastByAccountAsync(string emailAccount, CancellationToken token = default); } }