#ifndef DISTRO_SERIES_H #define DISTRO_SERIES_H #include #include #include #include #include #ifndef LAUNCHPAD_API #ifdef BUILDING_LAUNCHPAD #define LAUNCHPAD_API __attribute__((visibility("default"))) #else #define LAUNCHPAD_API #endif #endif class launchpad; class distro_series { public: distro_series(); ~distro_series(); static std::optional parse(const std::string& json_data); void parse_json(const std::string& json_data); void set_lp(launchpad* lp_ptr); bool active; bool advertise_by_hash; std::string all_milestones_collection_link; std::string all_specifications_collection_link; std::string architectures_collection_link; bool backports_not_automatic; std::string bug_reported_acknowledgement; std::string bug_reporting_guidelines; std::string changeslist; std::vector component_names; std::string date_created; std::string datereleased; std::string description; std::string displayname; std::string distribution_link; std::string driver_link; std::string drivers_collection_link; std::string fullseriesname; std::string http_etag; bool include_long_descriptions; std::vector index_compressors; bool language_pack_full_export_requested; std::string main_archive_link; std::string name; std::string nominatedarchindep_link; std::vector official_bug_tags; std::string owner_link; std::string previous_series_link; bool proposed_not_automatic; bool publish_by_hash; bool publish_i18n_index; std::string registrant_link; std::string resource_type_link; std::string self_link; std::string status; bool strict_supported_component_dependencies; std::vector suite_names; std::string summary; bool supported; std::string title; std::string translations_usage; std::string valid_specifications_collection_link; std::string version; std::string web_link; std::string active_milestones_collection_link; std::string archive_mirrors_collection_link; std::string archives_collection_link; std::string series_collection_link; std::string vulnerabilities_collection_link; std::string webhooks_collection_link; std::optional get() const; bool patch(const nlohmann::json& data) const; bool put(const nlohmann::json& data) const; std::generator getBuildRecords(const std::string& build_state="", const std::string& pocket="", const std::string& source_name="") const; std::generator getDerivedSeries() const; std::generator getDifferenceComments(const std::string& since="", const std::string& source_package_name="") const; std::generator getDifferencesTo(const std::optional& parent_series, const std::optional& difference_type, const std::optional& source_package_name_filter, const std::optional& status, bool child_version_higher=false) const; std::optional getDistroArchSeries(const std::string& archtag) const; std::generator getPackageUploads(const std::optional& archive=std::nullopt, const std::optional& created_since_date=std::nullopt, const std::optional& custom_type=std::nullopt, bool exact_match=false, const std::optional& name=std::nullopt, const std::optional& pocket=std::nullopt, const std::optional& status=std::nullopt, const std::optional& version=std::nullopt) const; std::generator getParentSeries() const; std::optional getSourcePackage(const std::string& name_) const; std::optional getSpecification(const std::string& name_) const; std::optional getSubscription(const std::string& person) const; std::generator getSubscriptions() const; std::generator getTranslationImportQueueEntries(const std::optional& import_status=std::nullopt, const std::optional& file_extension=std::nullopt) const; std::optional getTranslationTemplateStatistics() const; std::generator getTranslationTemplates() const; std::generator searchTasks(const std::map& params) const; std::optional userHasBugSubscriptions() const; bool addBugSubscription(const std::optional& subscriber=std::nullopt) const; bool addBugSubscriptionFilter(const std::optional& subscriber=std::nullopt) const; bool initDerivedDistroSeries(const std::optional& archindep_archtag, const std::vector& architectures, const std::vector& overlay_components, const std::vector& overlay_pockets, const std::vector& overlays, const std::vector& packagesets, const std::vector& parents, bool rebuild=false) const; std::optional newMilestone(const std::string& name, const std::optional& code_name, const std::optional& date_targeted, const std::optional& summary) const; bool removeBugSubscription(const std::optional& subscriber=std::nullopt) const; private: launchpad* lp; }; #endif