<node>
<!--
  com.canonical.indicators.webcredentials:
  @short_description: interface for handling login failures.

  The service implementing this interface keeps track of login failures.
  Failures are reported (usually by signon-ui) using the ReportFailure method,
  are listed in the Failures property and can be removed by calling
  RemoveFailures.

  The ClearErrorStatus method can be called to clear the error indicator from
  the system user menu.
-->
<interface name="com.canonical.indicators.webcredentials">
  <!--
    ReportFailure:
    @account-id: the libaccounts ID of the account which failed to login.
    @notification: dictionary of parameters for the OSD notification.

    Inform the service about a failing account. The @account-id is added to the
    list of the accounts in the Failures property, and a notification might be
    displayed to the user.

    The parameters currently recognized for the @notification argument are:
    - DisplayName: string, description of the account (usually it's the
      username)
  -->
  <method name="ReportFailure">
    <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
    <arg name="account_id" type="u" direction="in"/>
    <arg name="notification" type="a{sv}" direction="in"/>
  </method>

  <!--
    RemoveFailures:
    @account-ids: the libaccounts IDs of the accounts.

    Remove the given account IDs from the list of the failed accounts.
  -->
  <method name="RemoveFailures">
    <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QSet&lt;uint>"/>
    <arg name="account_ids" type="au" direction="in"/>
  </method>

  <!--
    ReauthenticateAccount:
    @account-id: the libaccounts ID of the account.
    @extra-parameters: dictionary of extra parameters (typically used to
    specify a XWindowID).
    @reauthenticated: %TRUE if the account could be reauthenticated and the
    failure status has been cleared, %FALSE otherwise.

    Tries to replay the failed authentications on the account. If all of them
    succeed, then the account failure is cleared.
  -->
  <method name="ReauthenticateAccount">
    <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
    <arg name="account_id" type="u" direction="in"/>
    <arg name="extra_parameters" type="a{sv}" direction="in"/>
    <arg name="reauthenticated" type="b" direction="out"/>
  </method>

  <!--
    ClearErrorStatus:

    Unsets the error indicator (if any) from the system user menu.
  -->
  <method name="ClearErrorStatus"/>

  <!--
    Failures: list of the libaccounts IDs of the failing accounts.
  -->
  <property name="Failures" type="au" access="read">
    <annotation name="org.qtproject.QtDBus.QtTypeName" value="QSet&lt;uint>"/>
  </property>

  <!--
    ErrorStatus: true if the indicator should display an error status.
  -->
  <property name="ErrorStatus" type="b" access="read"/>
</interface>
</node>
