namespace FileLiberator; /// /// A step that downloads something Audible delivers through a content license: the audiobook, and the /// supplement whose link the same license carries. /// /// One license serves every such step for a title. The request is identical - response_groups asks for /// pdf_url alongside the content reference - so a run holding a license must hand it on rather than ask /// for another, which would be a second refusal to record for a title already refused once. /// /// public interface ILicensedDownload { /// /// Optional override to supply license info directly instead of querying the api based on Configuration options /// DownloadOptions.LicenseInfo? LicenseInfo { get; set; } /// /// The license this step ended up using, whether supplied or requested, so the next step for the same title /// can reuse it. Null until a license has been obtained, and reset at the start of every attempt: a /// Processable instance is reused across books, so a license left behind belongs to a different title. /// DownloadOptions.LicenseInfo? ObtainedLicense { get; } }