## TpAccount TpAccount — proxy object for an account in the Telepathy account manager |

## Synopsis

    #include <telepathy-glib/telepathy-glib.h>

                        TpAccount;
    struct              TpAccountClass;
    TpAccount *         tp_account_new                      (TpDBusDaemon *bus_daemon,
                                                             const gchar *object_path,
                                                             GError **error);
    void                tp_account_init_known_interfaces    (void);
    gboolean            tp_account_parse_object_path        (const gchar *object_path,
                                                             gchar **cm,
                                                             gchar **protocol,
                                                             gchar **account_id,
                                                             GError **error);
    const gchar *       tp_account_get_path_suffix          (TpAccount *account);
    TpConnection *      tp_account_get_connection           (TpAccount *account);
    TpConnection *      tp_account_ensure_connection        (TpAccount *account,
                                                             const gchar *path);
    const gchar *       tp_account_get_display_name         (TpAccount *account);
    const gchar *       tp_account_get_connection_manager   (TpAccount *account);
    const gchar *       tp_account_get_cm_name              (TpAccount *account);
    const gchar *       tp_account_get_protocol             (TpAccount *account);
    const gchar *       tp_account_get_protocol_name        (TpAccount *account);
    const gchar *       tp_account_get_icon_name            (TpAccount *account);
    const gchar *       tp_account_get_service              (TpAccount *self);
    void                tp_account_set_enabled_async        (TpAccount *account,
                                                             gboolean enabled,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_enabled_finish       (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_reconnect_async          (TpAccount *account,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_reconnect_finish         (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    gboolean            tp_account_is_enabled               (TpAccount *account);
    gboolean            tp_account_is_valid                 (TpAccount *account);
    void                tp_account_update_parameters_async  (TpAccount *account,
                                                             GHashTable *parameters,
                                                             const gchar **unset_parameters,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_update_parameters_finish (TpAccount *account,
                                                             GAsyncResult *result,
                                                             gchar ***reconnect_required,
                                                             GError **error);
    void                tp_account_update_parameters_vardict_async
                                                            (TpAccount *account,
                                                             GVariant *parameters,
                                                             const gchar **unset_parameters,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_update_parameters_vardict_finish
                                                            (TpAccount *account,
                                                             GAsyncResult *result,
                                                             gchar ***reconnect_required,
                                                             GError **error);
    void                tp_account_remove_async             (TpAccount *account,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_remove_finish            (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_set_display_name_async   (TpAccount *account,
                                                             const gchar *display_name,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_display_name_finish  (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_set_icon_name_async      (TpAccount *account,
                                                             const gchar *icon_name,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_icon_name_finish     (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_set_service_async        (TpAccount *self,
                                                             const gchar *service,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_service_finish       (TpAccount *self,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_request_presence_async   (TpAccount *account,
                                                             TpConnectionPresenceType type,
                                                             const gchar *status,
                                                             const gchar *message,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_request_presence_finish  (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_set_automatic_presence_async
                                                            (TpAccount *account,
                                                             TpConnectionPresenceType type,
                                                             const gchar *status,
                                                             const gchar *message,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_automatic_presence_finish
                                                            (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    gboolean            tp_account_get_connect_automatically
                                                            (TpAccount *account);
    void                tp_account_set_connect_automatically_async
                                                            (TpAccount *account,
                                                             gboolean connect_automatically,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_connect_automatically_finish
                                                            (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    gboolean            tp_account_get_has_been_online      (TpAccount *account);
    TpConnectionStatus  tp_account_get_connection_status    (TpAccount *account,
                                                             TpConnectionStatusReason *reason);
    const gchar *       tp_account_get_detailed_error       (TpAccount *self,
                                                             const GHashTable **details);
    gchar *             tp_account_dup_detailed_error_vardict
                                                            (TpAccount *self,
                                                             GVariant **details);
    gboolean            tp_account_get_changing_presence    (TpAccount *self);
    TpConnectionPresenceType tp_account_get_current_presence
                                                            (TpAccount *account,
                                                             gchar **status,
                                                             gchar **status_message);
    TpConnectionPresenceType tp_account_get_requested_presence
                                                            (TpAccount *account,
                                                             gchar **status,
                                                             gchar **status_message);
    TpConnectionPresenceType tp_account_get_automatic_presence
                                                            (TpAccount *self,
                                                             gchar **status,
                                                             gchar **status_message);
    const GHashTable *  tp_account_get_parameters           (TpAccount *account);
    GVariant *          tp_account_dup_parameters_vardict   (TpAccount *account);
    const gchar *       tp_account_get_nickname             (TpAccount *account);
    void                tp_account_set_nickname_async       (TpAccount *account,
                                                             const gchar *nickname,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_nickname_finish      (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    const gchar *       tp_account_get_normalized_name      (TpAccount *self);
    const gchar * const * tp_account_get_supersedes         (TpAccount *self);
    void                tp_account_get_avatar_async         (TpAccount *account,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    const GArray *      tp_account_get_avatar_finish        (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_set_avatar_async         (TpAccount *self,
                                                             const guchar *avatar,
                                                             gsize len,
                                                             const gchar *mime_type,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_avatar_finish        (TpAccount *self,
                                                             GAsyncResult *result,
                                                             GError **error);
    GBinding *          tp_account_bind_connection_status_to_property
                                                            (TpAccount *self,
                                                             gpointer target,
                                                             const char *target_property,
                                                             gboolean invert);

    #define             TP_ACCOUNT_FEATURE_CORE
    #define             TP_ACCOUNT_FEATURE_CONNECTION
    gboolean            tp_account_is_prepared              (TpAccount *account,
                                                             GQuark feature);
    void                tp_account_prepare_async            (TpAccount *account,
                                                             const GQuark *features,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_prepare_finish           (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

    #define             TP_ACCOUNT_FEATURE_ADDRESSING
    const gchar * const * tp_account_get_uri_schemes        (TpAccount *self);
    gboolean            tp_account_associated_with_uri_scheme
                                                            (TpAccount *self,
                                                             const gchar *scheme);
    void                tp_account_set_uri_scheme_association_async
                                                            (TpAccount *self,
                                                             const gchar *scheme,
                                                             gboolean associate,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_uri_scheme_association_finish
                                                            (TpAccount *self,
                                                             GAsyncResult *result,
                                                             GError **error);

    #define             TP_ACCOUNT_FEATURE_STORAGE
    const gchar *       tp_account_get_storage_provider     (TpAccount *self);
    const GValue *      tp_account_get_storage_identifier   (TpAccount *self);
    GVariant *          tp_account_dup_storage_identifier_variant
                                                            (TpAccount *self);
    TpStorageRestrictionFlags tp_account_get_storage_restrictions
                                                            (TpAccount *self);
    void                tp_account_get_storage_specific_information_async
                                                            (TpAccount *self,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    GHashTable *        tp_account_get_storage_specific_information_finish
                                                            (TpAccount *self,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_dup_storage_specific_information_vardict_async
                                                            (TpAccount *self,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    GVariant *          tp_account_dup_storage_specific_information_vardict_finish
                                                            (TpAccount *self,
                                                             GAsyncResult *result,
                                                             GError **error);

    void                (*tp_cli_account_callback_for_reconnect)
                                                            (TpAccount *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxyPendingCall * tp_cli_account_call_reconnect      (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_account_callback_for_reconnect callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                (*tp_cli_account_callback_for_remove)
                                                            (TpAccount *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxyPendingCall * tp_cli_account_call_remove         (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_account_callback_for_remove callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                (*tp_cli_account_callback_for_update_parameters)
                                                            (TpAccount *proxy,
                                                             const gchar **out_Reconnect_Required,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxyPendingCall * tp_cli_account_call_update_parameters
                                                            (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             GHashTable *in_Set,
                                                             const gchar **in_Unset,
                                                             tp_cli_account_callback_for_update_parameters callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                (*tp_cli_account_signal_callback_account_property_changed)
                                                            (TpAccount *proxy,
                                                             GHashTable *arg_Properties,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxySignalConnection * tp_cli_account_connect_to_account_property_changed
                                                            (TpAccount *proxy,
                                                             tp_cli_account_signal_callback_account_property_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);
    void                (*tp_cli_account_signal_callback_removed)
                                                            (TpAccount *proxy,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxySignalConnection * tp_cli_account_connect_to_removed
                                                            (TpAccount *proxy,
                                                             tp_cli_account_signal_callback_removed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

    void                (*tp_cli_account_interface_avatar_signal_callback_avatar_changed)
                                                            (TpAccount *proxy,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxySignalConnection * tp_cli_account_interface_avatar_connect_to_avatar_changed
                                                            (TpAccount *proxy,
                                                             tp_cli_account_interface_avatar_signal_callback_avatar_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

    void                (*tp_cli_account_interface_addressing_callback_for_set_uri_scheme_association)
                                                            (TpAccount *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxyPendingCall * tp_cli_account_interface_addressing_call_set_uri_scheme_association
                                                            (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             const gchar *in_URI_Scheme,
                                                             gboolean in_Association,
                                                             tp_cli_account_interface_addressing_callback_for_set_uri_scheme_association callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

## Object Hierarchy

      GObject
       +----TpProxy
             +----TpAccount

## Properties

      "automatic-presence-type"  guint                 : Read
      "automatic-status"         gchar*                : Read
      "automatic-status-message" gchar*                : Read
      "changing-presence"        gboolean              : Read
      "cm-name"                  gchar*                : Read
      "connect-automatically"    gboolean              : Read
      "connection"               TpConnection*         : Read
      "connection-error"         gchar*                : Read
      "connection-error-details" GHashTable*           : Read
      "connection-manager"       gchar*                : Read
      "connection-status"        guint                 : Read
      "connection-status-reason" guint                 : Read
      "current-presence-type"    guint                 : Read
      "current-status"           gchar*                : Read
      "current-status-message"   gchar*                : Read
      "display-name"             gchar*                : Read
      "enabled"                  gboolean              : Read
      "has-been-online"          gboolean              : Read
      "icon-name"                gchar*                : Read
      "nickname"                 gchar*                : Read
      "normalized-name"          gchar*                : Read
      "protocol"                 gchar*                : Read
      "protocol-name"            gchar*                : Read
      "requested-presence-type"  guint                 : Read
      "requested-status"         gchar*                : Read
      "requested-status-message" gchar*                : Read
      "service"                  gchar*                : Read
      "storage-identifier"       GValue*               : Read
      "storage-identifier-variant" GVariant*             : Read
      "storage-provider"         gchar*                : Read
      "storage-restrictions"     guint                 : Read
      "supersedes"               GStrv                 : Read
      "uri-schemes"              GStrv                 : Read
      "valid"                    gboolean              : Read

## Signals

      "avatar-changed"                                 : Run Last
      "presence-changed"                               : Run Last
      "status-changed"                                 : Run Last

## Description

The Telepathy Account Manager stores the user's configured real-time communication accounts. The TpAccount object represents a stored account.

## Details

### TpAccount

    typedef struct _TpAccount TpAccount;

The Telepathy Account Manager stores the user's configured real-time communication accounts. This object represents a stored account.

If this account is deleted from the account manager, the "invalidated" signal will be emitted with the domain `TP_DBUS_ERRORS` and the error code `TP_DBUS_ERROR_OBJECT_REMOVED`.

One can connect to the "notify" signal to get change notifications for many of the properties on this object. Refer to each property's documentation for whether it can be used in this way.

TpAccount objects should normally be obtained from the TpAccountManager.

Since 0.16, TpAccount always has a non-`NULL` "factory", and its "factory" will be propagated to its TpConnection (if any). If a TpAccount is created without going via the TpAccountManager or specifying a "factory", the default is to use a new TpAutomaticClientFactory.

Since 0.7.32

### struct TpAccountClass

    struct TpAccountClass {
    };

The class of a TpAccount.

### tp_account_new ()

    TpAccount *         tp_account_new                      (TpDBusDaemon *bus_daemon,
                                                             const gchar *object_path,
                                                             GError **error);

### Warning

`tp_account_new` is deprecated and should not be used in newly-written code. Use `tp_simple_client_factory_ensure_account()` instead.

Convenience function to create a new account proxy. The returned TpAccount is not guaranteed to be ready at the point of return.

`bus_daemon` : | Proxy for the D-Bus daemon
`object_path` : | The non-NULL object path of this account
`error` : | Used to raise an error if `object_path` is not valid
Returns : | a new reference to an account proxy, or `NULL` if `object_path` is not valid

### tp_account_init_known_interfaces ()

    void                tp_account_init_known_interfaces    (void);

Ensure that the known interfaces for TpAccount have been set up. This is done automatically when necessary, but for correct overriding of library interfaces by local extensions, you should call this function before calling `tp_proxy_or_subclass_hook_on_interface_add()` with first argument `TP_TYPE_ACCOUNT`.

Since 0.7.32

### tp_account_parse_object_path ()

    gboolean            tp_account_parse_object_path        (const gchar *object_path,
                                                             gchar **cm,
                                                             gchar **protocol,
                                                             gchar **account_id,
                                                             GError **error);

### Warning

`tp_account_parse_object_path` is deprecated and should not be used in newly-written code. Use `tp_account_get_protocol()` and `tp_account_get_connection_manager()` instead.

Validates and parses a Telepathy Account's object path, extracting the connection manager's name, the protocol, and the account's unique identifier from the path. This includes replacing underscores with hyphens in the protocol name, as defined in the Account specification.

Any of the out parameters may be `NULL` if not needed. If `TRUE` is returned, the caller is responsible for freeing the strings stored in any non-`NULL` out parameters, using `g_free()`.

`object_path` : | a Telepathy Account's object path
`cm` : | location at which to store the account's connection manager's name. [out][transfer full]
`protocol` : | location at which to store the account's protocol. [out][transfer full]
`account_id` : | location at which to store the account's unique identifier. [out][transfer full]
`error` : | location at which to return an error
Returns : | `TRUE` if `object_path` was successfully parsed; `FALSE` and sets `error` otherwise.

Since 0.9.0

### tp_account_get_path_suffix ()

    const gchar *       tp_account_get_path_suffix          (TpAccount *account);

Returns the portion of `account`'s object path after the standard TP_ACCOUNT_OBJECT_PATH_BASE prefix, of the form "cm/protocol/acct". This string uniquely identifies the account.

This function is only intended to be used when printing debug messages or in tools for developer. For a string suitable for displaying to the user, see `tp_account_get_display_name()`. To retrieve the connection manager and protocol name parts of the object path, see `tp_account_get_connection_manager()` and `tp_account_get_protocol()`. For persistent identification of the account, use `tp_proxy_get_object_path()`.

`account` : | a TpAccount
Returns : | a suffix of `account`'s object path, for debugging purposes.

Since 0.13.9

### tp_account_get_connection ()

    TpConnection *      tp_account_get_connection           (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "connection" property. [transfer none]

Since 0.9.0

### tp_account_ensure_connection ()

    TpConnection *      tp_account_ensure_connection        (TpAccount *account,
                                                             const gchar *path);

### Warning

`tp_account_ensure_connection` is deprecated and should not be used in newly-written code. New code should use `tp_simple_client_factory_ensure_connection()` instead.

Set the connection of the account by specifying the connection object path. This function does not return a new ref and it is not guaranteed that the returned TpConnection object is ready.

The use-case for this function is in a HandleChannels callback and you already know the object path for the connection, so you can let `account` create its TpConnection and return it for use.

`account` : | a TpAccount
`path` : | the path to connection object for TpAccount
Returns : | the connection of the account, or `NULL` if either the object path `path` is invalid or it is the null-value "/". [transfer none]

Since 0.9.0

### tp_account_get_display_name ()

    const gchar *       tp_account_get_display_name         (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "display-name" property

Since 0.9.0

### tp_account_get_connection_manager ()

    const gchar *       tp_account_get_connection_manager   (TpAccount *account);

### Warning

`tp_account_get_connection_manager` is deprecated and should not be used in newly-written code. Use `tp_account_get_cm_name()` instead.

`account` : | a TpAccount
Returns : | the same as the "connection-manager" property

Since 0.9.0

### tp_account_get_cm_name ()

    const gchar *       tp_account_get_cm_name              (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "cm-name" property

Since 0.19.3

### tp_account_get_protocol ()

    const gchar *       tp_account_get_protocol             (TpAccount *account);

### Warning

`tp_account_get_protocol` is deprecated and should not be used in newly-written code. Use `tp_account_get_cm_name()` instead.

`account` : | a TpAccount
Returns : | the same as the "protocol" property

Since 0.9.0

### tp_account_get_protocol_name ()

    const gchar *       tp_account_get_protocol_name        (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "protocol-name" property

Since 0.19.3

### tp_account_get_icon_name ()

    const gchar *       tp_account_get_icon_name            (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "icon-name" property

Since 0.9.0

### tp_account_get_service ()

    const gchar *       tp_account_get_service              (TpAccount *self);

`self` : | an account
Returns : | the same as the "service" property

Since 0.11.9

### tp_account_set_enabled_async ()

    void                tp_account_set_enabled_async        (TpAccount *account,
                                                             gboolean enabled,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous set of the Enabled property of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_enabled_finish()` to get the result of the operation.

`account` : | a TpAccount
`enabled` : | the new enabled value of `account`
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_set_enabled_finish ()

    gboolean            tp_account_set_enabled_finish       (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async set of the Enabled property.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the set was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_reconnect_async ()

    void                tp_account_reconnect_async          (TpAccount *account,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous reconnect of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_reconnect_finish()` to get the result of the operation.

`account` : | a TpAccount
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_reconnect_finish ()

    gboolean            tp_account_reconnect_finish         (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async reconnect of `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to be filled
Returns : | `TRUE` if the reconnect call was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_is_enabled ()

    gboolean            tp_account_is_enabled               (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "enabled" property

Since 0.9.0

### tp_account_is_valid ()

    gboolean            tp_account_is_valid                 (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "valid" property

Since 0.9.0

### tp_account_update_parameters_async ()

    void                tp_account_update_parameters_async  (TpAccount *account,
                                                             GHashTable *parameters,
                                                             const gchar **unset_parameters,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous update of parameters of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_update_parameters_finish()` to get the result of the operation.

`account` : | a TpAccount
`parameters` : | new parameters to set on `account`. [element-type utf8 GObject.Value][transfer none]
`unset_parameters` : | list of parameters to unset on `account`
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_update_parameters_finish ()

    gboolean            tp_account_update_parameters_finish (TpAccount *account,
                                                             GAsyncResult *result,
                                                             gchar ***reconnect_required,
                                                             GError **error);

Finishes an async update of the parameters on `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`reconnect_required` : | a GStrv to fill with properties that need a reconnect to take effect. [out][array zero-terminated=1][transfer full]
`error` : | a GError to fill
Returns : | `TRUE` if the request succeeded, otherwise `FALSE`

Since 0.9.0

### tp_account_update_parameters_vardict_async ()

    void                tp_account_update_parameters_vardict_async
                                                            (TpAccount *account,
                                                             GVariant *parameters,
                                                             const gchar **unset_parameters,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous update of parameters of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_update_parameters_finish()` to get the result of the operation.

If `parameters` is a floating reference (see `g_variant_ref_sink()`), ownership of `parameters` is taken by this function. This means you can pass the result of `g_variant_new()` or `g_variant_new_parsed()` directly to this function without additional reference-count management.

`account` : | a TpAccount
`parameters` : | a variant of type `G_VARIANT_TYPE_VARDICT` containing new parameters to set on `account`. [transfer none]
`unset_parameters` : | list of parameters to unset on `account`. [array zero-terminated=1]
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.17.6

### tp_account_update_parameters_vardict_finish ()

    gboolean            tp_account_update_parameters_vardict_finish
                                                            (TpAccount *account,
                                                             GAsyncResult *result,
                                                             gchar ***reconnect_required,
                                                             GError **error);

Finishes an async update of the parameters on `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`reconnect_required` : | a GStrv to fill with properties that need a reconnect to take effect. [out][type GStrv][transfer full]
`error` : | a GError to fill
Returns : | `TRUE` if the request succeeded, otherwise `FALSE`

Since 0.17.6

### tp_account_remove_async ()

    void                tp_account_remove_async             (TpAccount *account,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous removal of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_remove_finish()` to get the result of the operation.

`account` : | a TpAccount
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_remove_finish ()

    gboolean            tp_account_remove_finish            (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async removal of `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the operation was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_set_display_name_async ()

    void                tp_account_set_display_name_async   (TpAccount *account,
                                                             const gchar *display_name,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous set of the DisplayName property of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_display_name_finish()` to get the result of the operation.

`account` : | a TpAccount
`display_name` : | a new display name, or `NULL` to unset the display name
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_set_display_name_finish ()

    gboolean            tp_account_set_display_name_finish  (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async set of the DisplayName property.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the call was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_set_icon_name_async ()

    void                tp_account_set_icon_name_async      (TpAccount *account,
                                                             const gchar *icon_name,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous set of the Icon property of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_icon_name_finish()` to get the result of the operation.

`account` : | a TpAccount
`icon_name` : | a new icon name, or `NULL` to unset the icon name
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_set_icon_name_finish ()

    gboolean            tp_account_set_icon_name_finish     (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async set of the Icon parameter.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the operation was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_set_service_async ()

    void                tp_account_set_service_async        (TpAccount *self,
                                                             const gchar *service,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous set of the Service property on `self`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_service_finish()` to get the result of the operation.

`self` : | a TpAccount
`service` : | a new service name, or `NULL` or the empty string to unset the service name (which will result in the "service" property becoming the same as "protocol")
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.11.9

### tp_account_set_service_finish ()

    gboolean            tp_account_set_service_finish       (TpAccount *self,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async set of the Service parameter.

`self` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the operation was successful, otherwise `FALSE`

Since 0.11.9

### tp_account_request_presence_async ()

    void                tp_account_request_presence_async   (TpAccount *account,
                                                             TpConnectionPresenceType type,
                                                             const gchar *status,
                                                             const gchar *message,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous change of presence on `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_request_presence_finish()` to get the result of the operation.

`account` : | a TpAccount
`type` : | the requested presence
`status` : | a status message to set, or `NULL`
`message` : | a message for the change, or `NULL`
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_request_presence_finish ()

    gboolean            tp_account_request_presence_finish  (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async presence change request on `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the operation was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_set_automatic_presence_async ()

    void                tp_account_set_automatic_presence_async
                                                            (TpAccount *account,
                                                             TpConnectionPresenceType type,
                                                             const gchar *status,
                                                             const gchar *message,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous change of `account`'s automatic presence. When the operation is finished, `callback` will be called. You can then call `tp_account_set_automatic_presence_finish()` to get the result of the operation.

`account` : | a TpAccount
`type` : | the requested presence
`status` : | a status message to set, or `NULL`
`message` : | a message for the change, or `NULL`
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.13.8

### tp_account_set_automatic_presence_finish ()

    gboolean            tp_account_set_automatic_presence_finish
                                                            (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an asynchronous request to change the automatic presence of `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the operation was successful, otherwise `FALSE`

Since 0.13.8

### tp_account_get_connect_automatically ()

    gboolean            tp_account_get_connect_automatically
                                                            (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "connect-automatically" property

Since 0.9.0

### tp_account_set_connect_automatically_async ()

    void                tp_account_set_connect_automatically_async
                                                            (TpAccount *account,
                                                             gboolean connect_automatically,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous set of the ConnectAutomatically property of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_display_name_finish()` to get the result of the operation.

`account` : | a TpAccount
`connect_automatically` : | new value for the parameter
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_set_connect_automatically_finish ()

    gboolean            tp_account_set_connect_automatically_finish
                                                            (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async set of the ConnectAutomatically property.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the call was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_get_has_been_online ()

    gboolean            tp_account_get_has_been_online      (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "has-been-online" property

Since 0.9.0

### tp_account_get_connection_status ()

    TpConnectionStatus  tp_account_get_connection_status    (TpAccount *account,
                                                             TpConnectionStatusReason *reason);

Gets the connection status and reason from `account`. The two values are the same as the "connection-status" and "connection-status-reason" properties.

`account` : | a TpAccount
`reason` : | a TpConnectionStatusReason to fill, or `NULL`. [out]
Returns : | the same as the "connection-status" property

Since 0.9.0

### tp_account_get_detailed_error ()

    const gchar *       tp_account_get_detailed_error       (TpAccount *self,
                                                             const GHashTable **details);

If the account's connection is not connected, return the D-Bus error name with which it last disconnected or failed to connect (in particular, this is `TP_ERROR_STR_CANCELLED` if it was disconnected by a user request). This is the same as "connection-error".

If `details` is not `NULL`, it will be used to return additional details about the error (the same as "connection-error-details").

Otherwise, return `NULL`, without altering `details`.

The returned string and `details` may become invalid when the main loop is re-entered or the account is destroyed.

`self` : | an account
`details` : | optionally used to return a map from string to GValue, which must not be modified, destroyed or unreffed by the caller. [out][allow-none][element-type utf8 GObject.Value][transfer none]
Returns : | a D-Bus error name, or `NULL`. [transfer none][allow-none]

Since 0.11.7

### tp_account_dup_detailed_error_vardict ()

    gchar *             tp_account_dup_detailed_error_vardict
                                                            (TpAccount *self,
                                                             GVariant **details);

If the account's connection is not connected, return the D-Bus error name with which it last disconnected or failed to connect (in particular, this is `TP_ERROR_STR_CANCELLED` if it was disconnected by a user request). This is the same as "connection-error".

If `details` is not `NULL`, it will be used to return additional details about the error (the same as "connection-error-details").

Otherwise, return `NULL`, without altering `details`.

The returned string and `details` may become invalid when the main loop is re-entered or the account is destroyed.

`self` : | an account
`details` : | optionally used to return a variant of type `G_VARIANT_TYPE_VARDICT`, which must be unreffed by the caller with `g_variant_unref()`. [out][allow-none][transfer full]
Returns : | a D-Bus error name, or `NULL`. [transfer full][allow-none]

Since 0.17.6

### tp_account_get_changing_presence ()

    gboolean            tp_account_get_changing_presence    (TpAccount *self);

`self` : | an account
Returns : | the same as the "changing-presence" property

Since 0.11.6

### tp_account_get_current_presence ()

    TpConnectionPresenceType tp_account_get_current_presence
                                                            (TpAccount *account,
                                                             gchar **status,
                                                             gchar **status_message);

Gets the current presence, status and status message of `account`. These values are the same as the "current-presence-type", "current-status" and "current-status-message" properties.

`account` : | a TpAccount
`status` : | return location for the current status. [out][transfer full]
`status_message` : | return location for the current status message. [out][transfer full]
Returns : | the same as the "current-presence-type" property

Since 0.9.0

### tp_account_get_requested_presence ()

    TpConnectionPresenceType tp_account_get_requested_presence
                                                            (TpAccount *account,
                                                             gchar **status,
                                                             gchar **status_message);

Gets the requested presence, status and status message of `account`. These values are the same as the "requested-presence-type", "requested-status" and "requested-status-message" properties.

`account` : | a TpAccount
`status` : | return location for the requested status. [out][transfer none]
`status_message` : | return location for the requested status message. [out][transfer full]
Returns : | the same as the "requested-presence-type" property

Since 0.9.0

### tp_account_get_automatic_presence ()

    TpConnectionPresenceType tp_account_get_automatic_presence
                                                            (TpAccount *self,
                                                             gchar **status,
                                                             gchar **status_message);

Gets the automatic presence, status and status message of `account`. These values are the same as the "automatic-presence-type", "automatic-status" and "automatic-status-message" properties, and are the values that will be used if the account should be put online automatically.

`self` : | an account
`status` : | return location for the presence status. [out][transfer none]
`status_message` : | return location for the user-defined message. [out][transfer full]
Returns : | the same as the "automatic-presence-type" property

Since 0.13.8

### tp_account_get_parameters ()

    const GHashTable *  tp_account_get_parameters           (TpAccount *account);

Returns the parameters of the account, in a hash table where each string is the parameter name (account, password, require-encryption etc.), and each value is a GValue. Using the tp_asv_get family of functions (`tp_asv_get_uint32()`, `tp_asv_get_string()` etc.) to access the parameters is recommended.

The allowed parameters depend on the connection manager, and can be found via `tp_connection_manager_get_protocol()` and `tp_connection_manager_protocol_get_param()`. Well-known parameters are listed in the Telepathy D-Bus Interface Specification.

`account` : | a TpAccount
Returns : | the hash table of parameters on `account`. [transfer none][element-type utf8 GObject.Value]

Since 0.9.0

### tp_account_dup_parameters_vardict ()

    GVariant *          tp_account_dup_parameters_vardict   (TpAccount *account);

Returns the parameters of the account, in a variant of type `G_VARIANT_TYPE_VARDICT` where the keys are parameter names (account, password, require-encryption etc.). Use `g_variant_lookup()` or `g_variant_lookup_value()` for convenient access to the values.

The allowed parameters depend on the connection manager, and can be found via `tp_connection_manager_get_protocol()` and `tp_connection_manager_protocol_get_param()`. Well-known parameters are listed in the Telepathy D-Bus Interface Specification.

`account` : | a TpAccount
Returns : | the dictionary of parameters on `account`, of type `G_VARIANT_TYPE_VARDICT`. [transfer full]

Since 0.17.6

### tp_account_get_nickname ()

    const gchar *       tp_account_get_nickname             (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "nickname" property

Since 0.9.0

### tp_account_set_nickname_async ()

    void                tp_account_set_nickname_async       (TpAccount *account,
                                                             const gchar *nickname,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous change of the Nickname parameter on `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_nickname_finish()` to get the result of the operation.

`account` : | a TpAccount
`nickname` : | a new nickname to set
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_set_nickname_finish ()

    gboolean            tp_account_set_nickname_finish      (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async nickname change request on `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the operation was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_get_normalized_name ()

    const gchar *       tp_account_get_normalized_name      (TpAccount *self);

`self` : | a TpAccount
Returns : | the same as the "normalized-name" property. [transfer none]

Since 0.13.8

### tp_account_get_supersedes ()

    const gchar * const * tp_account_get_supersedes         (TpAccount *self);

Return the same thing as the "supersedes" property, in a way that may be more convenient for C code.

The returned pointers are not guaranteed to remain valid after the main loop has been re-entered.

`self` : | a TpAccount
Returns : | the same as the "supersedes" property. [transfer none]

Since 0.17.5

### tp_account_get_avatar_async ()

    void                tp_account_get_avatar_async         (TpAccount *account,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous get of `account`'s avatar. When the operation is finished, `callback` will be called. You can then call `tp_account_get_avatar_finish()` to get the result of the operation.

`account` : | a TpAccount
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_get_avatar_finish ()

    const GArray *      tp_account_get_avatar_finish        (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async get operation of `account`'s avatar.

Beware that the returned value is only valid until `result` is freed. Copy it with `g_array_ref()` if you need to keep it for longer.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | a GArray of guchar containing the bytes of the account's avatar, or `NULL` on failure. [element-type guchar][transfer none]

Since 0.9.0

### tp_account_set_avatar_async ()

    void                tp_account_set_avatar_async         (TpAccount *self,
                                                             const guchar *avatar,
                                                             gsize len,
                                                             const gchar *mime_type,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous change of the Avatar parameter on `self`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_avatar_finish()` to get the result of the operation.

If `len` equals 0, the avatar is cleared.

`self` : | a TpAccount
`avatar` : | a new avatar to set; can be `NULL` only if `len` equals 0. [allow-none][array length=len]
`len` : | the length of the new avatar
`mime_type` : | the MIME type of the new avatar; can be `NULL` only if `len` equals 0. [allow-none]
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.11.1

### tp_account_set_avatar_finish ()

    gboolean            tp_account_set_avatar_finish        (TpAccount *self,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async avatar change request on `account`.

`self` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the operation was successful, otherwise `FALSE`

Since 0.11.1

### tp_account_bind_connection_status_to_property ()

    GBinding *          tp_account_bind_connection_status_to_property
                                                            (TpAccount *self,
                                                             gpointer target,
                                                             const char *target_property,
                                                             gboolean invert);

Binds the :connection-status of `self` to the boolean property of another object using a GBinding such that the `target_property` will be set to `TRUE` when `self` is connected (and `invert` is `FALSE`).

`target_property` will be synchronised immediately (`G_BINDING_SYNC_CREATE`). `invert` can be interpreted as analogous to `G_BINDING_INVERT_BOOLEAN`.

For instance, this function can be used to bind the GtkWidget:sensitive property to only make a widget sensitive when the account is connected.

See `g_object_bind_property()` for more information.

`self` : | a TpAccount
`target` : | the target GObject
`target_property` : | the property on `target` to bind (must be `G_TYPE_BOOLEAN`)
`invert` : | `TRUE` if you wish to invert the value of `target_property` (i.e. `FALSE` if connected)
Returns : | the GBinding instance representing the binding between the `self` and the `target`. The binding is released whenever the GBinding reference count reaches zero. [transfer none]

Since 0.13.16

### TP_ACCOUNT_FEATURE_CORE

    #define             TP_ACCOUNT_FEATURE_CORE

Expands to a call to a function that returns a quark for the "core" feature on a TpAccount.

When this feature is prepared, the basic properties of the Account have been retrieved and are available for use, and change-notification has been set up.

One can ask for a feature to be prepared using the `tp_proxy_prepare_async()` function, and waiting for it to callback.

Since 0.9.0

### TP_ACCOUNT_FEATURE_CONNECTION

    #define             TP_ACCOUNT_FEATURE_CONNECTION

Expands to a call to a function that returns a quark for the "connection" feature on a TpAccount.

When this feature is prepared, it is guaranteed that "connection" will always be either `NULL` or prepared. The account's "factory" will be used to create the TpConnection object and to determine its desired connection features. Change notification of the "connection" property will be delayed until all features (at least `TP_CONNECTION_FEATURE_CORE`) are prepared. See `tp_simple_client_factory_add_account_features()` to define which features needs to be prepared.

One can ask for a feature to be prepared using the `tp_proxy_prepare_async()` function, and waiting for it to callback.

Since 0.15.5

### tp_account_is_prepared ()

    gboolean            tp_account_is_prepared              (TpAccount *account,
                                                             GQuark feature);

### Warning

`tp_account_is_prepared` is deprecated and should not be used in newly-written code. since 0.23.0, use `tp_proxy_is_prepared()` instead.

`account` : | a TpAccount
`feature` : | a feature which is required
Returns : | the same thing as `tp_proxy_is_prepared()`

Since 0.9.0

### tp_account_prepare_async ()

    void                tp_account_prepare_async            (TpAccount *account,
                                                             const GQuark *features,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

### Warning

`tp_account_prepare_async` is deprecated and should not be used in newly-written code. since 0.15.6, use `tp_proxy_prepare_async()` instead.

Requests an asynchronous preparation of `account` with the features specified by `features`. When the operation is finished, `callback` will be called. You can then call `tp_account_prepare_finish()` to get the result of the operation.

If `features` is `NULL`, then `callback` will be called when the implied `TP_ACCOUNT_FEATURE_CORE` feature is ready.

If `NULL` is given to `callback`, then no callback will be called when the operation is finished. Instead, it will simply set `features` on `manager`. Note that if `callback` is `NULL`, then `user_data` must also be `NULL`.

Since 0.11.3, this is equivalent to calling the new function `tp_proxy_prepare_async()` with the same arguments.

`account` : | a TpAccount
`features` : | a 0-terminated list of features, or `NULL`
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_prepare_finish ()

    gboolean            tp_account_prepare_finish           (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

### Warning

`tp_account_prepare_finish` is deprecated and should not be used in newly-written code. since 0.15.6, use `tp_proxy_prepare_finish()` instead.

Finishes an async preparation of the account `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the preparation was successful, otherwise `FALSE`

Since 0.9.0

### TP_ACCOUNT_FEATURE_ADDRESSING

    #define             TP_ACCOUNT_FEATURE_ADDRESSING

Expands to a call to a function that returns a quark for the "addressing" feature on a TpAccount.

When this feature is prepared, the list of URI schemes from Account.Interface.Addressing has been retrieved and is available for use.

One can ask for a feature to be prepared using the `tp_proxy_prepare_async()` function, and waiting for it to callback.

Since 0.13.8

### tp_account_get_uri_schemes ()

    const gchar * const * tp_account_get_uri_schemes        (TpAccount *self);

Return the "uri-schemes" property

`self` : | a TpAccount
Returns : | the value of "uri_schemes" property. [transfer none]

Since 0.13.8

### tp_account_associated_with_uri_scheme ()

    gboolean            tp_account_associated_with_uri_scheme
                                                            (TpAccount *self,
                                                             const gchar *scheme);

`self` : | a TpAccount
`scheme` : | a URI scheme such as "tel", "sip" or "xmpp". [transfer none]
Returns : | `TRUE` if the result of `tp_account_get_uri_schemes()` would include `scheme`

Since 0.13.8

### tp_account_set_uri_scheme_association_async ()

    void                tp_account_set_uri_scheme_association_async
                                                            (TpAccount *self,
                                                             const gchar *scheme,
                                                             gboolean associate,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Add `scheme` to the list of additional URI schemes that would be returned by `tp_account_get_uri_schemes()`, or remove it from that list.

`scheme` should not be the primary URI scheme for the account's protocol (for instance, "xmpp" for XMPP, or "sip" or "sips" for SIP), since the account should be assumed to be useful for those schemes regardless of the contents of the list.

Calling this method does not require the `TP_ACCOUNT_FEATURE_ADDRESSING` feature to be enabled, but the change will not be reflected in the result of `tp_account_get_uri_schemes()` or `tp_account_associated_with_uri_scheme()` unless that feature has been enabled.

`self` : | a TpAccount
`scheme` : | a non-`NULL` URI scheme such as "tel"
`associate` : | `TRUE` to use this account for `scheme`, or `FALSE` to not use it
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.13.8

### tp_account_set_uri_scheme_association_finish ()

    gboolean            tp_account_set_uri_scheme_association_finish
                                                            (TpAccount *self,
                                                             GAsyncResult *result,
                                                             GError **error);

Interpret the result of `tp_account_set_uri_scheme_association_async()`.

`self` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the call was successful, otherwise `FALSE`

Since 0.13.8

### TP_ACCOUNT_FEATURE_STORAGE

    #define             TP_ACCOUNT_FEATURE_STORAGE

Expands to a call to a function that returns a quark for the "storage" feature on a TpAccount.

When this feature is prepared, the Account.Interface.Storage properties have been retrieved and are available for use.

One can ask for a feature to be prepared using the `tp_proxy_prepare_async()` function, and waiting for it to callback.

Since 0.13.2

### tp_account_get_storage_provider ()

    const gchar *       tp_account_get_storage_provider     (TpAccount *self);

`self` : | a TpAccount
Returns : | the same as the "storage-provider" property

Since 0.13.2

### tp_account_get_storage_identifier ()

    const GValue *      tp_account_get_storage_identifier   (TpAccount *self);

`self` : | a TpAccount
Returns : | the same as the "storage-identifier" property

Since 0.13.2

### tp_account_dup_storage_identifier_variant ()

    GVariant *          tp_account_dup_storage_identifier_variant
                                                            (TpAccount *self);

Return provider-specific information used to identify this account. Use `g_variant_get_type()` to check that the type is what you expect; for instance, if the "storage-provider" has string-based user identifiers, this variant should have type `G_VARIANT_TYPE_STRING`.

`self` : | a TpAccount
Returns : | the same as the "storage-identifier-variant" property. [transfer full]

Since 0.13.2

### tp_account_get_storage_restrictions ()

    TpStorageRestrictionFlags tp_account_get_storage_restrictions
                                                            (TpAccount *self);

`self` : | a TpAccount
Returns : | the same as the "storage-restrictions" property

Since 0.13.2

### tp_account_get_storage_specific_information_async ()

    void                tp_account_get_storage_specific_information_async
                                                            (TpAccount *self,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Makes an asynchronous request of `self`'s StorageSpecificInformation property (part of the Account.Interface.Storage interface).

When the operation is finished, `callback` will be called. You must then call `tp_account_get_storage_specific_information_finish()` to get the result of the request.

`self` : | a TpAccount
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.13.2

### tp_account_get_storage_specific_information_finish ()

    GHashTable *        tp_account_get_storage_specific_information_finish
                                                            (TpAccount *self,
                                                             GAsyncResult *result,
                                                             GError **error);

Retrieve the value of the request begun with `tp_account_get_storage_specific_information_async()`.

Beware that the returned value is only valid until `result` is freed. Copy it with `g_hash_table_ref()` if you need to keep it for longer.

`self` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | a GHashTable of strings to GValues representing the D-Bus type a{sv}. [element-type utf8 GObject.Value][transfer none]

Since 0.13.2

### tp_account_dup_storage_specific_information_vardict_async ()

    void                tp_account_dup_storage_specific_information_vardict_async
                                                            (TpAccount *self,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Makes an asynchronous request of `self`'s StorageSpecificInformation property (part of the Account.Interface.Storage interface).

When the operation is finished, `callback` will be called. You must then call `tp_account_dup_storage_specific_information_vardict_finish()` to get the result of the request.

`self` : | a TpAccount
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.17.6

### tp_account_dup_storage_specific_information_vardict_finish ()

    GVariant *          tp_account_dup_storage_specific_information_vardict_finish
                                                            (TpAccount *self,
                                                             GAsyncResult *result,
                                                             GError **error);

Retrieve the value of the request begun with `tp_account_dup_storage_specific_information_vardict_async()`.

`self` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | a map from strings to variants, of type `G_VARIANT_TYPE_VARDICT`. [transfer full]

Since 0.17.6

### tp_cli_account_callback_for_reconnect ()

    void                (*tp_cli_account_callback_for_reconnect)
                                                            (TpAccount *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a Reconnect method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_account_call_reconnect ()

    TpProxyPendingCall * tp_cli_account_call_reconnect      (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_account_callback_for_reconnect callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a Reconnect method call.

<tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>Re-connect this account. If the account is currently disconnected and the requested presence is offline, or if the account is not <tp:member-ref>Enabled</tp:member-ref> or not <tp:member-ref>Valid</tp:member-ref>, this does nothing.</p> <p>If the account is disconnected and the requested presence is not offline, this forces an attempt to connect with the requested presence immediately.</p> <p>If the account is connecting or connected, this is equivalent to remembering the current value of <tp:member-ref>RequestedPresence</tp:member-ref>, setting its value to (OFFLINE, &quot;offline&quot;, &quot;&quot;), waiting for the change to take effect, then setting its value to the value that was previously remembered.</p> <tp:rationale> <p>Clients desiring &quot;instant apply&quot; semantics for CM parameters MAY call this method to achieve that.</p> </tp:rationale> <p>In particular, if the account's <tp:member-ref>Connection</tp:member-ref> is in the Connecting state, calling this method causes the attempt to connect to be aborted and re-tried.</p> <tp:rationale> <p>This is necessary to ensure that the new parameters are picked up.</p> </tp:rationale>

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`callback` : | called when the method call succeeds or fails; may be `NULL` to make a "fire and forget" call with no reply tracking
`user_data` : | user-supplied data passed to the callback; must be `NULL` if `callback` is `NULL`
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled; must be `NULL` if `callback` is `NULL`
`weak_object` : | If not `NULL`, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be `NULL` if `callback` is `NULL`
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_account_callback_for_remove ()

    void                (*tp_cli_account_callback_for_remove)
                                                            (TpAccount *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a Remove method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_account_call_remove ()

    TpProxyPendingCall * tp_cli_account_call_remove         (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_account_callback_for_remove callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a Remove method call.

Delete the account.

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`callback` : | called when the method call succeeds or fails; may be `NULL` to make a "fire and forget" call with no reply tracking
`user_data` : | user-supplied data passed to the callback; must be `NULL` if `callback` is `NULL`
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled; must be `NULL` if `callback` is `NULL`
`weak_object` : | If not `NULL`, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be `NULL` if `callback` is `NULL`
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_account_callback_for_update_parameters ()

    void                (*tp_cli_account_callback_for_update_parameters)
                                                            (TpAccount *proxy,
                                                             const gchar **out_Reconnect_Required,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a UpdateParameters method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`out_Reconnect_Required` : | Used to return an 'out' argument if `error` is `NULL`: <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>If all of the updates could be applied to the active <tp:member-ref>Connection</tp:member-ref> (if any), the empty list, signifying that no reconnection is required for the new parameters to take effect. For example, if the only parameter updated is <tt>...Cellular.<tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface.Cellular">MessageValidityPeriod</tp:dbus-ref></tt>, the new value can be applied immediately to the connection.</p> <p>Otherwise, a list of the names of parameters with changes that will not take effect until the account is reconnected. User interfaces that require &quot;instant apply&quot; semantics MAY call <tp:member-ref>Reconnect</tp:member-ref> in response to receiving a non-empty list. For example, if the caller updates both <tt>...Anonymity.<tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface.Anonymity">AnonymityMandatory</tp:dbus-ref></tt> and <tt>require-encryption</tt>, the former can be applied to the current connection, but the latter needs a reconnect to take effect, so this method should return <code>[&quot;require-encryption&quot;]</code>.</p>
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_account_call_update_parameters ()

    TpProxyPendingCall * tp_cli_account_call_update_parameters
                                                            (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             GHashTable *in_Set,
                                                             const gchar **in_Unset,
                                                             tp_cli_account_callback_for_update_parameters callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a UpdateParameters method call.

<tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>Change the value of the <tp:member-ref>Parameters</tp:member-ref> property.</p> <p>If any of the <var>Set</var> parameters’ <tp:type>Conn_Mgr_Param_Flags</tp:type> include <code>DBus_Property</code>, the change will be applied immediately to the corresponding D-Bus Property on the active <tp:member-ref>Connection</tp:member-ref>, if there is one. If any of the <var>Unset</var> parameters’ <tp:type>Conn_Mgr_Param_Flags</tp:type> include both <code>DBus_Property</code> and <code>Has_Default</code>, the corresponding D-Bus Property on the connection will be set to the default value. Changes to other parameters will not take effect until the next time the account is disconnected and reconnected. (If parameters are explicitly set to their default value, or are unset when previously set to their default value, the account manager MAY decide that no reconnection is necessary to make the change take effect.)</p> <tp:rationale> <p>In general, reconnecting is a destructive operation that shouldn't happen as a side-effect. In particular, migration tools that twiddle the settings of all accounts shouldn't cause an automatic disconnect and reconnect.</p> </tp:rationale>

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`in_Set` : | Used to pass an 'in' argument: A mapping from parameter names to their values. These parameters should be stored for future use.
`in_Unset` : | Used to pass an 'in' argument: A list of the names of parameters to be removed from the set of stored values, allowing the default values to be used. If the given parameters were not, in fact, stored, or even if they do not exist at all, the account manager MUST accept this without error.
`callback` : | called when the method call succeeds or fails; may be `NULL` to make a "fire and forget" call with no reply tracking
`user_data` : | user-supplied data passed to the callback; must be `NULL` if `callback` is `NULL`
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled; must be `NULL` if `callback` is `NULL`
`weak_object` : | If not `NULL`, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be `NULL` if `callback` is `NULL`
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### tp_cli_account_signal_callback_account_property_changed ()

    void                (*tp_cli_account_signal_callback_account_property_changed)
                                                            (TpAccount *proxy,
                                                             GHashTable *arg_Properties,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Represents the signature of a callback for the signal AccountPropertyChanged.

`proxy` : | The proxy on which `tp_cli_account_connect_to_account_property_changed()` was called
`arg_Properties` : | A map from property names in this namespace (e.g. <tp:member-ref>Nickname</tp:member-ref>) to values. Properties whose values have not changed SHOULD be omitted, but this need not be done.
`user_data` : | User-supplied data
`weak_object` : | User-supplied weakly referenced object

### tp_cli_account_connect_to_account_property_changed ()

    TpProxySignalConnection * tp_cli_account_connect_to_account_property_changed
                                                            (TpAccount *proxy,
                                                             tp_cli_account_signal_callback_account_property_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

Connect a handler to the signal AccountPropertyChanged.

The values of one or more properties on this interface (that do not specify that this signal does not apply to them) may have changed. This does not cover properties of other interfaces, which must provide their own change notification if appropriate.

`proxy` : | A TpAccount or subclass
`callback` : | Callback to be called when the signal is received
`user_data` : | User-supplied data for the callback
`destroy` : | Destructor for the user-supplied data, which will be called when this signal is disconnected, or before this function returns `NULL`
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
`error` : | If not `NULL`, used to raise an error if `NULL` is returned
Returns : | a TpProxySignalConnection containing all of the above, which can be used to disconnect the signal; or `NULL` if the proxy does not have the desired interface or has become invalid.

### tp_cli_account_signal_callback_removed ()

    void                (*tp_cli_account_signal_callback_removed)
                                                            (TpAccount *proxy,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Represents the signature of a callback for the signal Removed.

`proxy` : | The proxy on which `tp_cli_account_connect_to_removed()` was called
`user_data` : | User-supplied data
`weak_object` : | User-supplied weakly referenced object

### tp_cli_account_connect_to_removed ()

    TpProxySignalConnection * tp_cli_account_connect_to_removed
                                                            (TpAccount *proxy,
                                                             tp_cli_account_signal_callback_removed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

Connect a handler to the signal Removed.

This account has been removed. <tp:rationale> This is redundant with <tp:dbus-ref namespace="org.freedesktop.Telepathy.AccountManager">AccountRemoved</tp:dbus-ref>, but it's still worth having, to avoid having to bind to AccountManager.AccountRemoved to tell you whether your Account is valid — ideally, an account-editing UI should only care about a single Account. </tp:rationale>

`proxy` : | A TpAccount or subclass
`callback` : | Callback to be called when the signal is received
`user_data` : | User-supplied data for the callback
`destroy` : | Destructor for the user-supplied data, which will be called when this signal is disconnected, or before this function returns `NULL`
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
`error` : | If not `NULL`, used to raise an error if `NULL` is returned
Returns : | a TpProxySignalConnection containing all of the above, which can be used to disconnect the signal; or `NULL` if the proxy does not have the desired interface or has become invalid.

### tp_cli_account_interface_avatar_signal_callback_avatar_changed ()

    void                (*tp_cli_account_interface_avatar_signal_callback_avatar_changed)
                                                            (TpAccount *proxy,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Represents the signature of a callback for the signal AvatarChanged.

`proxy` : | The proxy on which `tp_cli_account_interface_avatar_connect_to_avatar_changed()` was called
`user_data` : | User-supplied data
`weak_object` : | User-supplied weakly referenced object

### tp_cli_account_interface_avatar_connect_to_avatar_changed ()

    TpProxySignalConnection * tp_cli_account_interface_avatar_connect_to_avatar_changed
                                                            (TpAccount *proxy,
                                                             tp_cli_account_interface_avatar_signal_callback_avatar_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

Connect a handler to the signal AvatarChanged.

Emitted when the Avatar property changes. <tp:rationale>The avatar itself is deliberately not included in this signal, to reduce bus traffic in the (likely common) case where no running application cares about the user's own avatar.</tp:rationale>

`proxy` : | A TpAccount or subclass
`callback` : | Callback to be called when the signal is received
`user_data` : | User-supplied data for the callback
`destroy` : | Destructor for the user-supplied data, which will be called when this signal is disconnected, or before this function returns `NULL`
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
`error` : | If not `NULL`, used to raise an error if `NULL` is returned
Returns : | a TpProxySignalConnection containing all of the above, which can be used to disconnect the signal; or `NULL` if the proxy does not have the desired interface or has become invalid.

### tp_cli_account_interface_addressing_callback_for_set_uri_scheme_association ()

    void                (*tp_cli_account_interface_addressing_callback_for_set_uri_scheme_association)
                                                            (TpAccount *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a SetURISchemeAssociation method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### tp_cli_account_interface_addressing_call_set_uri_scheme_association ()

    TpProxyPendingCall * tp_cli_account_interface_addressing_call_set_uri_scheme_association
                                                            (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             const gchar *in_URI_Scheme,
                                                             gboolean in_Association,
                                                             tp_cli_account_interface_addressing_callback_for_set_uri_scheme_association callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a SetURISchemeAssociation method call.

<p>Associate (or disassociate) an account with a particular URI addressing scheme, (such as 'tel' for telephony)</p>

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`in_URI_Scheme` : | Used to pass an 'in' argument: <p>URI scheme to associate/disassociate the account with/from</p>
`in_Association` : | Used to pass an 'in' argument: <p>True to associate this account with a given addressing scheme</p> <p>False if the account should not be associated with said scheme</p>
`callback` : | called when the method call succeeds or fails; may be `NULL` to make a "fire and forget" call with no reply tracking
`user_data` : | user-supplied data passed to the callback; must be `NULL` if `callback` is `NULL`
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled; must be `NULL` if `callback` is `NULL`
`weak_object` : | If not `NULL`, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be `NULL` if `callback` is `NULL`
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

## Property Details

### The `"automatic-presence-type"` property

      "automatic-presence-type"  guint                 : Read

The account's automatic presence type (a TpConnectionPresenceType).

When the account is put online automatically, for instance to make a channel request or because network connectivity becomes available, the automatic presence type, status and message will be copied to their "requested" counterparts.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail. Change notifications for automatic-presence-type, automatic-status and automatic-status-message are always emitted together, so it is sufficient to connect to one of the notification signals.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `TP_CONNECTION_PRESENCE_TYPE_UNSET`.

Allowed values: <= 9

Default value: 0

Since 0.13.8

### The `"automatic-status"` property

      "automatic-status"         gchar*                : Read

The string status name to use in conjunction with the "automatic-presence-type".

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail. Change notifications for automatic-presence-type, automatic-status and automatic-status-message are always emitted together, so it is sufficient to connect to one of the notification signals.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.13.8

### The `"automatic-status-message"` property

      "automatic-status-message" gchar*                : Read

The user-defined message to use in conjunction with the "automatic-presence-type".

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail. Change notifications for automatic-presence-type, automatic-status and automatic-status-message are always emitted together, so it is sufficient to connect to one of the notification signals.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.13.8

### The `"changing-presence"` property

      "changing-presence"        gboolean              : Read

`TRUE` if an attempt is currently being made to change the account's presence ("current-presence-type", "current-status" and "current-status-message") to match its requested presence ("requested-presence-type", "requested-status" and "requested-status-message").

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `FALSE`.

Default value: FALSE

Since 0.11.6

### The `"cm-name"` property

      "cm-name"                  gchar*                : Read

The account's connection manager name.

Default value: NULL

Since 0.19.3

### The `"connect-automatically"` property

      "connect-automatically"    gboolean              : Read

Whether the account should connect automatically or not. To change this property, use `tp_account_set_connect_automatically_async()`.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `FALSE`.

Default value: FALSE

Since 0.9.0

### The `"connection"` property

      "connection"               TpConnection*         : Read

The connection of the account, or `NULL` if account is offline. Note that the returned TpConnection is not guaranteed to have any features pre-prepared (not even `TP_CONNECTION_FEATURE_CORE`) unless `TP_ACCOUNT_FEATURE_CONNECTION` has been prepared on the account

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail. If `TP_ACCOUNT_FEATURE_CONNECTION` has been prepared, this signal will be delayed until the connection is ready.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Since 0.9.0

### The `"connection-error"` property

      "connection-error"         gchar*                : Read

The D-Bus error name for the last disconnection or connection failure, (in particular, `TP_ERROR_STR_CANCELLED` if it was disconnected by user request), or `NULL` if the account is connected.

One can receive change notifications on this property by connecting to the "status-changed" signal, or by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.11.7

### The `"connection-error-details"` property

      "connection-error-details" GHashTable*           : Read

A map from string to GValue containing extensible error details related to "connection-error". Functions like `tp_asv_get_string()` can be used to read from this map.

The keys for this map are defined by the Telepathy D-Bus Interface Specification. They will typically include `debug-message`, which is a debugging message in the C locale, analogous to GError.message.

One can receive change notifications on this property by connecting to the "status-changed" signal, or by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is an empty map.

Since 0.11.7

### The `"connection-manager"` property

      "connection-manager"       gchar*                : Read

### Warning

`TpAccount:connection-manager` is deprecated and should not be used in newly-written code. Use "cm-name" instead.

The account's connection manager name.

Default value: NULL

Since 0.9.0

### The `"connection-status"` property

      "connection-status"        guint                 : Read

The account's connection status type (a `TpConnectionStatus`).

One can receive change notifications on this property by connecting to the "status-changed" signal, or by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `TP_CONNECTION_STATUS_DISCONNECTED`.

Allowed values: <= 3

Default value: 2

Since 0.9.0

### The `"connection-status-reason"` property

      "connection-status-reason" guint                 : Read

The account's connection status reason (a `TpConnectionStatusReason`).

One can receive change notifications on this property by connecting to the "status-changed" signal, or by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED`.

Allowed values: <= 17

Default value: 0

Since 0.9.0

### The `"current-presence-type"` property

      "current-presence-type"    guint                 : Read

The account connection's current presence type (a `TpConnectionPresenceType`).

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail. Change notifications for current-presence-type, current-status and current-status-message are always emitted together, so it is sufficient to connect to one of the notification signals.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `TP_CONNECTION_PRESENCE_TYPE_UNSET`.

Allowed values: <= 9

Default value: 0

Since 0.9.0

### The `"current-status"` property

      "current-status"           gchar*                : Read

The current Status string of the account.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail. Change notifications for current-presence-type, current-status and current-status-message are always emitted together, so it is sufficient to connect to one of the notification signals.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.9.0

### The `"current-status-message"` property

      "current-status-message"   gchar*                : Read

The current status message message of the account.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail. Change notifications for current-presence-type, current-status and current-status-message are always emitted together, so it is sufficient to connect to one of the notification signals.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.9.0

### The `"display-name"` property

      "display-name"             gchar*                : Read

The account's display name, from the DisplayName property.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.9.0

### The `"enabled"` property

      "enabled"                  gboolean              : Read

Whether this account is enabled or not.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is FALSE.

Default value: FALSE

Since 0.9.0

### The `"has-been-online"` property

      "has-been-online"          gboolean              : Read

Whether this account has been online or not.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `FALSE`.

Default value: FALSE

Since 0.9.0

### The `"icon-name"` property

      "icon-name"                gchar*                : Read

The account's icon name. To change this propery, use `tp_account_set_icon_name_async()`.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.9.0

### The `"nickname"` property

      "nickname"                 gchar*                : Read

The nickname that should be set for the user on this account.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.9.0

### The `"normalized-name"` property

      "normalized-name"          gchar*                : Read

The normalized form of the user's own unique identifier on this protocol. For example, on XMPP accounts this is the user's JID; on ICQ this is the user's UIN; and so on.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.13.8

### The `"protocol"` property

      "protocol"                 gchar*                : Read

### Warning

`TpAccount:protocol` is deprecated and should not be used in newly-written code. Use "protocol-name" instead.

The account's machine-readable protocol name, such as "jabber", "msn" or "local-xmpp". Recommended names for most protocols can be found in the Telepathy D-Bus Interface Specification.

Default value: NULL

Since 0.9.0

### The `"protocol-name"` property

      "protocol-name"            gchar*                : Read

The account's machine-readable protocol name, such as "jabber", "msn" or "local-xmpp". Recommended names for most protocols can be found in the Telepathy D-Bus Interface Specification.

Default value: NULL

Since 0.19.3

### The `"requested-presence-type"` property

      "requested-presence-type"  guint                 : Read

The account's requested presence type (a TpConnectionPresenceType).

Since 0.13.8, one can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail. Change notifications for requested-presence-type, requested-status and requested-status-message are always emitted together, so it is sufficient to connect to one of the notification signals.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Allowed values: <= 9

Default value: 0

Since 0.9.0

### The `"requested-status"` property

      "requested-status"         gchar*                : Read

The requested Status string of the account.

Since 0.13.8, one can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail. Change notifications for requested-presence-type, requested-status and requested-status-message are always emitted together, so it is sufficient to connect to one of the notification signals.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.9.0

### The `"requested-status-message"` property

      "requested-status-message" gchar*                : Read

The requested status message message of the account.

Since 0.13.8, one can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail. Change notifications for requested-presence-type, requested-status and requested-status-message are always emitted together, so it is sufficient to connect to one of the notification signals.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.9.0

### The `"service"` property

      "service"                  gchar*                : Read

A machine-readable name identifying a specific service to which this account connects, or a copy of "protocol" if there is no more specific service.

Well-known names for various services can be found in the Telepathy D-Bus Interface Specification.

For instance, accounts for the "jabber" protocol should have the service names "google-talk", "ovi-chat", "facebook" and "lj-talk" for accounts that connect to Google Talk, Ovi Chat, Facebook and Livejournal, respectively, and this property will be "jabber" for accounts that connect to a generic Jabber server.

To change this property, use `tp_account_set_service_async()`.

Default value: NULL

Since 0.11.9

### The `"storage-identifier"` property

      "storage-identifier"       GValue*               : Read

The storage identifier for this account.

A provider-specific variant type used to identify this account with the provider. This value will be `NULL` if "storage-provider" is an empty string.

This property cannot change once an Account has been created.

This is not guaranteed to have been retrieved until the `TP_ACCOUNT_FEATURE_STORAGE` feature has been prepared; until then, the value is `NULL`.

Since 0.13.2

### The `"storage-identifier-variant"` property

      "storage-identifier-variant" GVariant*             : Read

Provider-specific information used to identify this account. Use `g_variant_get_type()` to check that the type is what you expect. For instance, if you use a "storage-provider" with numeric identifiers for accounts, this variant might have type `G_VARIANT_TYPE_UINT32`; if the storage provider has string-based identifiers, it should have type `G_VARIANT_TYPE_STRING`.

This property cannot change once an Account has been created.

This is not guaranteed to have been retrieved until the `TP_ACCOUNT_FEATURE_STORAGE` feature has been prepared; until then, the value is `NULL`.

Allowed values: GVariant<*>

Default value: NULL

Since 0.13.2

### The `"storage-provider"` property

      "storage-provider"         gchar*                : Read

The storage provider for this account.

The name of the account storage implementation. When this is the empty string the account is internally stored.

This property cannot change once an Account has been created.

This is not guaranteed to have been retrieved until the `TP_ACCOUNT_FEATURE_STORAGE` feature has been prepared; until then, the value is `NULL`.

Default value: NULL

Since 0.13.2

### The `"storage-restrictions"` property

      "storage-restrictions"     guint                 : Read

The storage restrictions for this account.

A bitfield of TpStorageRestrictionFlags that give the limitations of this account imposed by the storage provider. This value will be 0 if "storage-provider" is an empty string.

This property cannot change once an Account has been created.

This is not guaranteed to have been retrieved until the `TP_ACCOUNT_FEATURE_STORAGE` feature has been prepared; until then, the value is 0.

Default value: 0

Since 0.13.2

### The `"supersedes"` property

      "supersedes"               GStrv                 : Read

The object paths of previously-active accounts superseded by this one. For instance, this can be used in a logger to read old logs for an account that has been migrated from one connection manager to another.

This is not guaranteed to have been retrieved until the `TP_ACCOUNT_FEATURE_CORE` feature has been prepared; until then, the value is NULL.

Since 0.17.5

### The `"uri-schemes"` property

      "uri-schemes"              GStrv                 : Read

If the `TP_ACCOUNT_FEATURE_ADDRESSING` feature has been prepared successfully, a list of additional URI schemes for which this account should be used if possible. Otherwise `NULL`.

For instance, a SIP or Skype account might have "tel" in this list if the user would like to use that account to call phone numbers.

This list should not contain the primary URI scheme(s) for the account's protocol (for instance, "xmpp" for XMPP, or "sip" or "sips" for SIP), since it should be assumed to be useful for those schemes in any case.

The notify::uri-schemes signal cannot be relied on if the Account Manager is Mission Control version 5.14.0 or older.

Since 0.21.0

### The `"valid"` property

      "valid"                    gboolean              : Read

Whether this account is valid.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is `FALSE`.

Default value: FALSE

Since 0.9.0

## Signal Details

### The `"avatar-changed"` signal

    void                user_function                      (TpAccount *self,
                                                            gpointer   user_data)      : Run Last

Emitted when the avatar changes. Call `tp_account_get_avatar_async()` to get the new avatar data.

`self` : | a TpAccount
`user_data` : | user data set when the signal handler was connected.

Since 0.23.0

### The `"presence-changed"` signal

    void                user_function                      (TpAccount *account,
                                                            guint      presence,
                                                            gchar     *status,
                                                            gchar     *status_message,
                                                            gpointer   user_data)           : Run Last

Emitted when the presence of the account changes.

`account` : | the TpAccount
`presence` : | the new presence
`status` : | the new presence status
`status_message` : | the new presence status message
`user_data` : | user data set when the signal handler was connected.

Since 0.9.0

### The `"status-changed"` signal

    void                user_function                      (TpAccount  *account,
                                                            guint       old_status,
                                                            guint       new_status,
                                                            guint       reason,
                                                            gchar      *dbus_error_name,
                                                            GHashTable *details,
                                                            gpointer    user_data)            : Run Last

Emitted when the connection status on the account changes.

The `dbus_error_name` and `details` parameters were present, but non-functional (always `NULL`), in older versions. They have been available with their current behaviour since version 0.11.7.

`account` : | the TpAccount
`old_status` : | old "connection-status"
`new_status` : | new "connection-status"
`reason` : | the "connection-status-reason"
`dbus_error_name` : | the "connection-error". [allow-none]
`details` : | the "connection-error-details". [element-type utf8 GObject.Value]
`user_data` : | user data set when the signal handler was connected.

Since 0.9.0

## See Also

TpAccountManager