Copyright (C) 2010 Collabora Ltd.

This library 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.

This library 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 this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

This interface extends the core Account interface to specify details regarding the storage of this account.

Single-sign-on systems do not generally have directly user-editable properties for Accounts, and require the user to visit a specific UI to alter their account properties. User interfaces should know not to expose these account properties as user-editable, and instead redirect the user to the appropriate interface.

The name of the account storage implementation, which SHOULD start with a reversed domain name in the same way as D-Bus interface names. When this is the empty string the account is internally stored.

This property cannot change once an Account has been created.

Unique identification of the account within the storage backend. The contents of the variant are defined by the StorageProvider.

This property cannot change once an Account has been created.

Different storage systems will have their own way of uniquely identifying an account, typically an integer or a string. Given that all users of this property should have direct knowledge of the backend they should know what types to expect and how to handle it.

Map containing information specific to the storage backend. The keys and the types of their values are defined by the StorageProvider, and are not interpreted by the AccountManager implementation.

As the values in this map may change at any time (due to an external application manipulating the storage provider directly), this property should not be cached; it should instead be retrieved each time it is needed.

This can be used to provide additional hints to user interfaces aware of a specific storage provider, without requiring those user interfaces to use the StorageIdentifier to query the storage provider directly.

Bitfield which defines what restrictions this Storage method has.

This property cannot change once an Account has been created.

Flags indicating restrictions imposed on an Account by its storage method. The account's Parameters property can't be changed by calling UpdateParameters. The account can't be enabled/disabled by setting the Enabled property. The account's presence can't be changed by setting the RequestedPresence and AutomaticPresence properties. The account's Service property cannot be changed.