<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">

<!--
Copyright Contributors to the libdnf project.

This file is part of libdnf: https://github.com/rpm-software-management/libdnf/

Libdnf is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 2.1 of the License, or
(at your option) any later version.

Libdnf is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with libdnf.  If not, see <https://www.gnu.org/licenses/>.
-->

<node>
<!-- org.rpm.dnf.v0.Advisory:
   @short_description: Interface to security advisories
-->
<interface name="org.rpm.dnf.v0.Advisory">
    <!--
        list:
        @options: an array of key/value pairs
        @advisories: array of returned advisories with requested attributes

        Get list of security advisories that match to given filters.

        Following options and filters are supported:

            - advisory_attrs: list of strings
                List of advisory attributes that are returned in `advisories` array. Supported attributes are "advisoryid", "name", "title", "type", "severity", "status", "vendor", "description", "buildtime", "message", "rights", "collections", and "references".
            - availability: string, default "available"
                Limit returned advisories based on their relation to installed packages. Accepted values are

                - "available" to return only advisories containing newer versions of installed packages

                - "all" - to return all advisories

                - "installed" - to return only advisories containing equal or older versions of installed packages

                - "updates" - to return only advisories containing newer versions of installed packages for which an update is available
            - names: list of strings
                Consider only advisories with one of given names.
            - types: list of strings
                Consider only advisories of given types. Possible types are "security", "bugfix", "enhancement", and "newpackage".
            - contains_pkgs: list of strings
                Consider only advisories containing one of given packages.
            - severities: list of strings
                Consider only advisories of given severity. Possible values are "critical", "important", "moderate", "low", and "none".
            - reference_bzs: list of strings
                Consider only advisories referencing given Bugzilla ticket ID. Expected values are numeric IDs, e.g. 123456.
            - reference_cves: list of strings
                Consider only advisoried referencing given CVE ID. Expected values are strings IDs in CVE format, e.g. CVE-2201-0123.
            - with_bz: boolean, default False
                Consider only advisories referencing a Bugzilla ticket.
            - with_cve: boolean, default False
                Consider only advisories referencing a CVE ticket.

        Unknown options are ignored.
    -->
    <method name="list">
        <arg name="options" type="a{sv}" direction="in" />
        <arg name="advisories" type="aa{sv}" direction="out" />
    </method>
</interface>

</node>
