[libgdata/libgdata-0-18: 4/6] contacts: Deprecate the entire Contacts API as Google is ending it




commit c35a89f6fadb669c464e569a594160f90b2f0c26
Author: Philip Withnall <pwithnall endlessos org>
Date:   Thu Jun 17 13:13:28 2021 +0100

    contacts: Deprecate the entire Contacts API as Google is ending it
    
    The Contacts API server will return error responses with increasing
    frequency until all responses are errors in December 2021.
    
    https://developers.google.com/contacts/v3/announcement
    
    They are replacing it with the People API (why can’t they provide
    backwards-compatibility?), but I don’t have the time to port the
    libgdata Contacts service to the new People API. More crucially, I don’t
    have time to maintain such a port in the future.
    
    https://developers.google.com/people
    
    Handily, the CardDAV API for accessing contact data is still explicitly
    supported by Google Contacts, so people should use that instead. At
    least it’s a standard protocol, with a variety of conformant
    implementations already released and maintained; and not just another
    here-today-gone-tomorrow Google REST API.
    
    https://developers.google.com/people/carddav
    
    Using CardDAV requires OAuth 2 authorization, just like the Contacts API
    did.
    
    So, bearing all the above in mind, the libgdata Contacts service is now
    deprecated in favour of using CardDAV.
    
    Signed-off-by: Philip Withnall <pwithnall endlessos org>
    
    Fixes: #42

 gdata/gdata-goa-authorizer.c                     |   2 +
 gdata/services/contacts/gdata-contacts-contact.c | 120 +++++++++++++++++++++++
 gdata/services/contacts/gdata-contacts-contact.h |  97 ++++++++++++++++++
 gdata/services/contacts/gdata-contacts-group.c   |  15 +++
 gdata/services/contacts/gdata-contacts-group.h   |   8 ++
 gdata/services/contacts/gdata-contacts-query.c   |  19 ++++
 gdata/services/contacts/gdata-contacts-query.h   |  11 +++
 gdata/services/contacts/gdata-contacts-service.c |  21 ++++
 gdata/services/contacts/gdata-contacts-service.h |  11 +++
 gdata/tests/contacts.c                           |   4 +
 gdata/tests/oauth1-authorizer.c                  |   5 +
 11 files changed, 313 insertions(+)
---
diff --git a/gdata/gdata-goa-authorizer.c b/gdata/gdata-goa-authorizer.c
index b6b33c71..b7ae12a0 100644
--- a/gdata/gdata-goa-authorizer.c
+++ b/gdata/gdata-goa-authorizer.c
@@ -181,9 +181,11 @@ gdata_goa_authorizer_set_goa_object (GDataGoaAuthorizer *self, GoaObject *goa_ob
                add_authorization_domains (self, GDATA_TYPE_CALENDAR_SERVICE);
        }
 
+       G_GNUC_BEGIN_IGNORE_DEPRECATIONS
        if (goa_object_peek_contacts (goa_object) != NULL) {
                add_authorization_domains (self, GDATA_TYPE_CONTACTS_SERVICE);
        }
+       G_GNUC_END_IGNORE_DEPRECATIONS
 
        if (goa_object_peek_documents (goa_object) != NULL || goa_object_peek_files (goa_object) != NULL) {
                add_authorization_domains (self, GDATA_TYPE_DOCUMENTS_SERVICE);
diff --git a/gdata/services/contacts/gdata-contacts-contact.c 
b/gdata/services/contacts/gdata-contacts-contact.c
index eb4148d0..5637c40e 100644
--- a/gdata/services/contacts/gdata-contacts-contact.c
+++ b/gdata/services/contacts/gdata-contacts-contact.c
@@ -144,6 +144,7 @@
  * </example>
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 
 #include <config.h>
@@ -158,6 +159,8 @@
 #include "gdata-private.h"
 #include "gdata-comparable.h"
 
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+
 /* The maximum number of extended properties the server allows us. See
  * http://code.google.com/apis/contacts/docs/2.0/reference.html#ProjectionsAndExtended.
  * When updating this, make sure to update the API documentation for 
gdata_contacts_contact_get_extended_property()
@@ -265,6 +268,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * Atom Publishing Protocol specification</ulink>.
         *
         * Since: 0.2.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_EDITED,
                                         g_param_spec_int64 ("edited",
@@ -278,6 +282,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * Whether the entry has been deleted.
         *
         * Since: 0.2.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_DELETED,
                                         g_param_spec_boolean ("deleted",
@@ -291,6 +296,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The ETag of the contact's photo, if the contact has a photo; %NULL otherwise.
         *
         * Since: 0.9.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_PHOTO_ETAG,
                                         g_param_spec_string ("photo-etag",
@@ -304,6 +310,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The contact's name in a structured representation.
         *
         * Since: 0.5.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_NAME,
                                         g_param_spec_object ("name",
@@ -317,6 +324,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The contact's chosen nickname.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_NICKNAME,
                                         g_param_spec_string ("nickname",
@@ -330,6 +338,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The name to file the contact under for sorting purposes.
         *
         * Since: 0.11.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_FILE_AS,
                                         g_param_spec_string ("file-as",
@@ -343,6 +352,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The contact's birthday.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_BIRTHDAY,
                                         g_param_spec_boxed ("birthday",
@@ -356,6 +366,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * Whether the contact's birthday includes their year of birth.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_BIRTHDAY_HAS_YEAR,
                                         g_param_spec_boolean ("birthday-has-year",
@@ -369,6 +380,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * Billing information for the contact, such as their billing name and address.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_BILLING_INFORMATION,
                                         g_param_spec_string ("billing-information",
@@ -382,6 +394,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The name or address of a directory server associated with the contact.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_DIRECTORY_SERVER,
                                         g_param_spec_string ("directory-server",
@@ -395,6 +408,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The gender of the contact. For example: %GDATA_CONTACTS_GENDER_MALE or 
%GDATA_CONTACTS_GENDER_FEMALE.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_GENDER,
                                         g_param_spec_string ("gender",
@@ -408,6 +422,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The initials of the contact.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_INITIALS,
                                         g_param_spec_string ("initials",
@@ -421,6 +436,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The maiden name of the contact.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_MAIDEN_NAME,
                                         g_param_spec_string ("maiden-name",
@@ -434,6 +450,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * A mileage associated with the contact, such as one for reimbursement purposes. It can be in any 
format.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_MILEAGE,
                                         g_param_spec_string ("mileage",
@@ -447,6 +464,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The contact's occupation.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_OCCUPATION,
                                         g_param_spec_string ("occupation",
@@ -460,6 +478,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The contact's importance. For example: %GDATA_CONTACTS_PRIORITY_NORMAL or 
%GDATA_CONTACTS_PRIORITY_HIGH.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_PRIORITY,
                                         g_param_spec_string ("priority",
@@ -473,6 +492,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The sensitivity of the contact's data. For example: %GDATA_CONTACTS_SENSITIVITY_NORMAL or 
%GDATA_CONTACTS_SENSITIVITY_PRIVATE.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_SENSITIVITY,
                                         g_param_spec_string ("sensitivity",
@@ -487,6 +507,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * whereas #GDataContactsContact:nickname should be used for nicknames.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_SHORT_NAME,
                                         g_param_spec_string ("short-name",
@@ -500,6 +521,7 @@ gdata_contacts_contact_class_init (GDataContactsContactClass *klass)
         * The subject of the contact. (i.e. The contact's relevance to the address book.)
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_SUBJECT,
                                         g_param_spec_string ("subject",
@@ -1255,6 +1277,7 @@ get_entry_uri (const gchar *id)
  * Return value: a new #GDataContactsContact; unref with g_object_unref()
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataContactsContact *
 gdata_contacts_contact_new (const gchar *id)
@@ -1271,6 +1294,7 @@ gdata_contacts_contact_new (const gchar *id)
  * Return value: the UNIX timestamp for the time the contact was last edited, or <code 
class="literal">-1</code>
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 gint64
 gdata_contacts_contact_get_edited (GDataContactsContact *self)
@@ -1288,6 +1312,7 @@ gdata_contacts_contact_get_edited (GDataContactsContact *self)
  * Return value: (transfer none): the contact's name, or %NULL
  *
  * Since: 0.5.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataGDName *
 gdata_contacts_contact_get_name (GDataContactsContact *self)
@@ -1306,6 +1331,7 @@ gdata_contacts_contact_get_name (GDataContactsContact *self)
  * @name must not be %NULL, though all its properties may be %NULL.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_name (GDataContactsContact *self, GDataGDName *name)
@@ -1331,6 +1357,7 @@ gdata_contacts_contact_set_name (GDataContactsContact *self, GDataGDName *name)
  * Return value: the contact's nickname, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_nickname (GDataContactsContact *self)
@@ -1349,6 +1376,7 @@ gdata_contacts_contact_get_nickname (GDataContactsContact *self)
  * If @nickname is %NULL, the contact's nickname will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_nickname (GDataContactsContact *self, const gchar *nickname)
@@ -1369,6 +1397,7 @@ gdata_contacts_contact_set_nickname (GDataContactsContact *self, const gchar *ni
  * Return value: the name the contact's filed under, or %NULL
  *
  * Since: 0.11.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_file_as (GDataContactsContact *self)
@@ -1387,6 +1416,7 @@ gdata_contacts_contact_get_file_as (GDataContactsContact *self)
  * If @file_as is %NULL, the contact will be filed under their full name.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_file_as (GDataContactsContact *self, const gchar *file_as)
@@ -1411,6 +1441,7 @@ gdata_contacts_contact_set_file_as (GDataContactsContact *self, const gchar *fil
  * Return value: whether the contact's birthday has the year set
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 gboolean
 gdata_contacts_contact_get_birthday (GDataContactsContact *self, GDate *birthday)
@@ -1434,6 +1465,7 @@ gdata_contacts_contact_get_birthday (GDataContactsContact *self, GDate *birthday
  * If @birthday is %NULL, the contact's birthday will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_birthday (GDataContactsContact *self, GDate *birthday, gboolean birthday_has_year)
@@ -1463,6 +1495,7 @@ gdata_contacts_contact_set_birthday (GDataContactsContact *self, GDate *birthday
  * Return value: the contact's billing information, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_billing_information (GDataContactsContact *self)
@@ -1481,6 +1514,7 @@ gdata_contacts_contact_get_billing_information (GDataContactsContact *self)
  * If @billing_information is %NULL, the contact's billing information will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_billing_information (GDataContactsContact *self, const gchar *billing_information)
@@ -1502,6 +1536,7 @@ gdata_contacts_contact_set_billing_information (GDataContactsContact *self, cons
  * Return value: the name or address of a directory server associated with the contact, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_directory_server (GDataContactsContact *self)
@@ -1520,6 +1555,7 @@ gdata_contacts_contact_get_directory_server (GDataContactsContact *self)
  * If @directory_server is %NULL, the contact's directory server will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_directory_server (GDataContactsContact *self, const gchar *directory_server)
@@ -1541,6 +1577,7 @@ gdata_contacts_contact_set_directory_server (GDataContactsContact *self, const g
  * Return value: the gender of the contact, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_gender (GDataContactsContact *self)
@@ -1559,6 +1596,7 @@ gdata_contacts_contact_get_gender (GDataContactsContact *self)
  * If @gender is %NULL, the contact's gender will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_gender (GDataContactsContact *self, const gchar *gender)
@@ -1580,6 +1618,7 @@ gdata_contacts_contact_set_gender (GDataContactsContact *self, const gchar *gend
  * Return value: the initials of the contact, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_initials (GDataContactsContact *self)
@@ -1598,6 +1637,7 @@ gdata_contacts_contact_get_initials (GDataContactsContact *self)
  * If @initials is %NULL, the contact's initials will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_initials (GDataContactsContact *self, const gchar *initials)
@@ -1618,6 +1658,7 @@ gdata_contacts_contact_set_initials (GDataContactsContact *self, const gchar *in
  * Return value: the maiden name of the contact, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_maiden_name (GDataContactsContact *self)
@@ -1636,6 +1677,7 @@ gdata_contacts_contact_get_maiden_name (GDataContactsContact *self)
  * If @maiden_name is %NULL, the contact's maiden name will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_maiden_name (GDataContactsContact *self, const gchar *maiden_name)
@@ -1656,6 +1698,7 @@ gdata_contacts_contact_set_maiden_name (GDataContactsContact *self, const gchar
  * Return value: a mileage associated with the contact, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_mileage (GDataContactsContact *self)
@@ -1674,6 +1717,7 @@ gdata_contacts_contact_get_mileage (GDataContactsContact *self)
  * If @mileage is %NULL, the contact's mileage will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_mileage (GDataContactsContact *self, const gchar *mileage)
@@ -1694,6 +1738,7 @@ gdata_contacts_contact_set_mileage (GDataContactsContact *self, const gchar *mil
  * Return value: the contact's occupation, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_occupation (GDataContactsContact *self)
@@ -1712,6 +1757,7 @@ gdata_contacts_contact_get_occupation (GDataContactsContact *self)
  * If @occupation is %NULL, the contact's occupation will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_occupation (GDataContactsContact *self, const gchar *occupation)
@@ -1732,6 +1778,7 @@ gdata_contacts_contact_set_occupation (GDataContactsContact *self, const gchar *
  * Return value: the contact's priority, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_priority (GDataContactsContact *self)
@@ -1750,6 +1797,7 @@ gdata_contacts_contact_get_priority (GDataContactsContact *self)
  * If @priority is %NULL, the contact's priority will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_priority (GDataContactsContact *self, const gchar *priority)
@@ -1771,6 +1819,7 @@ gdata_contacts_contact_set_priority (GDataContactsContact *self, const gchar *pr
  * Return value: the contact's sensitivity, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_sensitivity (GDataContactsContact *self)
@@ -1789,6 +1838,7 @@ gdata_contacts_contact_get_sensitivity (GDataContactsContact *self)
  * If @sensitivity is %NULL, the contact's sensitivity will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_sensitivity (GDataContactsContact *self, const gchar *sensitivity)
@@ -1810,6 +1860,7 @@ gdata_contacts_contact_set_sensitivity (GDataContactsContact *self, const gchar
  * Return value: the contact's short name, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_short_name (GDataContactsContact *self)
@@ -1828,6 +1879,7 @@ gdata_contacts_contact_get_short_name (GDataContactsContact *self)
  * If @short_name is %NULL, the contact's short name will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_short_name (GDataContactsContact *self, const gchar *short_name)
@@ -1848,6 +1900,7 @@ gdata_contacts_contact_set_short_name (GDataContactsContact *self, const gchar *
  * Return value: the contact's subject, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_subject (GDataContactsContact *self)
@@ -1866,6 +1919,7 @@ gdata_contacts_contact_get_subject (GDataContactsContact *self)
  * If @subject is %NULL, the contact's subject will be removed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_subject (GDataContactsContact *self, const gchar *subject)
@@ -1891,6 +1945,7 @@ gdata_contacts_contact_set_subject (GDataContactsContact *self, const gchar *sub
  * Duplicate e-mail addresses will not be added to the list.
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_email_address (GDataContactsContact *self, GDataGDEmailAddress *email_address)
@@ -1911,6 +1966,7 @@ gdata_contacts_contact_add_email_address (GDataContactsContact *self, GDataGDEma
  * Return value: (element-type GData.GDEmailAddress) (transfer none): a #GList of #GDataGDEmailAddress<!-- 
-->es, or %NULL
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_email_addresses (GDataContactsContact *self)
@@ -1928,6 +1984,7 @@ gdata_contacts_contact_get_email_addresses (GDataContactsContact *self)
  * Return value: (transfer none): a #GDataGDEmailAddress, or %NULL
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataGDEmailAddress *
 gdata_contacts_contact_get_primary_email_address (GDataContactsContact *self)
@@ -1951,6 +2008,7 @@ gdata_contacts_contact_get_primary_email_address (GDataContactsContact *self)
  * Removes all e-mail addresses from the contact.
  *
  * Since: 0.4.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_email_addresses (GDataContactsContact *self)
@@ -1977,6 +2035,7 @@ gdata_contacts_contact_remove_all_email_addresses (GDataContactsContact *self)
  * Duplicate IM addresses will not be added to the list.
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_im_address (GDataContactsContact *self, GDataGDIMAddress *im_address)
@@ -1997,6 +2056,7 @@ gdata_contacts_contact_add_im_address (GDataContactsContact *self, GDataGDIMAddr
  * Return value: (element-type GData.GDIMAddress) (transfer none): a #GList of #GDataGDIMAddress<!-- -->es, 
or %NULL
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_im_addresses (GDataContactsContact *self)
@@ -2014,6 +2074,7 @@ gdata_contacts_contact_get_im_addresses (GDataContactsContact *self)
  * Return value: (transfer none): a #GDataGDIMAddress, or %NULL
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataGDIMAddress *
 gdata_contacts_contact_get_primary_im_address (GDataContactsContact *self)
@@ -2037,6 +2098,7 @@ gdata_contacts_contact_get_primary_im_address (GDataContactsContact *self)
  * Removes all IM addresses from the contact.
  *
  * Since: 0.4.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_im_addresses (GDataContactsContact *self)
@@ -2063,6 +2125,7 @@ gdata_contacts_contact_remove_all_im_addresses (GDataContactsContact *self)
  * Duplicate phone numbers will not be added to the list.
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_phone_number (GDataContactsContact *self, GDataGDPhoneNumber *phone_number)
@@ -2083,6 +2146,7 @@ gdata_contacts_contact_add_phone_number (GDataContactsContact *self, GDataGDPhon
  * Return value: (element-type GData.GDPhoneNumber) (transfer none): a #GList of #GDataGDPhoneNumbers, or 
%NULL
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_phone_numbers (GDataContactsContact *self)
@@ -2100,6 +2164,7 @@ gdata_contacts_contact_get_phone_numbers (GDataContactsContact *self)
  * Return value: (transfer none): a #GDataGDPhoneNumber, or %NULL
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataGDPhoneNumber *
 gdata_contacts_contact_get_primary_phone_number (GDataContactsContact *self)
@@ -2123,6 +2188,7 @@ gdata_contacts_contact_get_primary_phone_number (GDataContactsContact *self)
  * Removes all phone numbers from the contact.
  *
  * Since: 0.4.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_phone_numbers (GDataContactsContact *self)
@@ -2149,6 +2215,7 @@ gdata_contacts_contact_remove_all_phone_numbers (GDataContactsContact *self)
  * Duplicate postal addresses will not be added to the list.
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_postal_address (GDataContactsContact *self, GDataGDPostalAddress *postal_address)
@@ -2169,6 +2236,7 @@ gdata_contacts_contact_add_postal_address (GDataContactsContact *self, GDataGDPo
  * Return value: (element-type GData.GDPostalAddress) (transfer none): a #GList of #GDataGDPostalAddress<!-- 
-->es, or %NULL
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_postal_addresses (GDataContactsContact *self)
@@ -2186,6 +2254,7 @@ gdata_contacts_contact_get_postal_addresses (GDataContactsContact *self)
  * Return value: (transfer none): a #GDataGDPostalAddress, or %NULL
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataGDPostalAddress *
 gdata_contacts_contact_get_primary_postal_address (GDataContactsContact *self)
@@ -2209,6 +2278,7 @@ gdata_contacts_contact_get_primary_postal_address (GDataContactsContact *self)
  * Removes all postal addresses from the contact.
  *
  * Since: 0.4.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_postal_addresses (GDataContactsContact *self)
@@ -2235,6 +2305,7 @@ gdata_contacts_contact_remove_all_postal_addresses (GDataContactsContact *self)
  * Duplicate organizations will not be added to the list.
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_organization (GDataContactsContact *self, GDataGDOrganization *organization)
@@ -2255,6 +2326,7 @@ gdata_contacts_contact_add_organization (GDataContactsContact *self, GDataGDOrga
  * Return value: (element-type GData.GDOrganization) (transfer none): a #GList of #GDataGDOrganizations, or 
%NULL
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_organizations (GDataContactsContact *self)
@@ -2272,6 +2344,7 @@ gdata_contacts_contact_get_organizations (GDataContactsContact *self)
  * Return value: (transfer none): a #GDataGDOrganization, or %NULL
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataGDOrganization *
 gdata_contacts_contact_get_primary_organization (GDataContactsContact *self)
@@ -2295,6 +2368,7 @@ gdata_contacts_contact_get_primary_organization (GDataContactsContact *self)
  * Removes all organizations from the contact.
  *
  * Since: 0.4.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_organizations (GDataContactsContact *self)
@@ -2317,6 +2391,7 @@ gdata_contacts_contact_remove_all_organizations (GDataContactsContact *self)
  * Duplicate jots will be added to the list, and multiple jots with the same relation type can be added to a 
single contact.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_jot (GDataContactsContact *self, GDataGContactJot *jot)
@@ -2336,6 +2411,7 @@ gdata_contacts_contact_add_jot (GDataContactsContact *self, GDataGContactJot *jo
  * Return value: (element-type GData.GContactJot) (transfer none): a #GList of #GDataGContactJots, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_jots (GDataContactsContact *self)
@@ -2351,6 +2427,7 @@ gdata_contacts_contact_get_jots (GDataContactsContact *self)
  * Removes all jots from the contact.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_jots (GDataContactsContact *self)
@@ -2374,6 +2451,7 @@ gdata_contacts_contact_remove_all_jots (GDataContactsContact *self)
  * Though it may not make sense for some relation types to be repeated, adding them is allowed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_relation (GDataContactsContact *self, GDataGContactRelation *relation)
@@ -2393,6 +2471,7 @@ gdata_contacts_contact_add_relation (GDataContactsContact *self, GDataGContactRe
  * Return value: (element-type GData.GContactRelation) (transfer none): a #GList of #GDataGContactRelations, 
or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_relations (GDataContactsContact *self)
@@ -2408,6 +2487,7 @@ gdata_contacts_contact_get_relations (GDataContactsContact *self)
  * Removes all relations from the contact.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_relations (GDataContactsContact *self)
@@ -2431,6 +2511,7 @@ gdata_contacts_contact_remove_all_relations (GDataContactsContact *self)
  * relation types or labels.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_website (GDataContactsContact *self, GDataGContactWebsite *website)
@@ -2451,6 +2532,7 @@ gdata_contacts_contact_add_website (GDataContactsContact *self, GDataGContactWeb
  * Return value: (element-type GData.GContactWebsite) (transfer none): a #GList of #GDataGContactWebsites, 
or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_websites (GDataContactsContact *self)
@@ -2468,6 +2550,7 @@ gdata_contacts_contact_get_websites (GDataContactsContact *self)
  * Return value: (transfer none): a #GDataGContactWebsite, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataGContactWebsite *
 gdata_contacts_contact_get_primary_website (GDataContactsContact *self)
@@ -2491,6 +2574,7 @@ gdata_contacts_contact_get_primary_website (GDataContactsContact *self)
  * Removes all websites from the contact.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_websites (GDataContactsContact *self)
@@ -2514,6 +2598,7 @@ gdata_contacts_contact_remove_all_websites (GDataContactsContact *self)
  * Though it may not make sense for some event types to be repeated, adding them is allowed.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_event (GDataContactsContact *self, GDataGContactEvent *event)
@@ -2533,6 +2618,7 @@ gdata_contacts_contact_add_event (GDataContactsContact *self, GDataGContactEvent
  * Return value: (element-type GData.GContactEvent) (transfer none): a #GList of #GDataGContactEvents, or 
%NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_events (GDataContactsContact *self)
@@ -2548,6 +2634,7 @@ gdata_contacts_contact_get_events (GDataContactsContact *self)
  * Removes all events from the contact.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_events (GDataContactsContact *self)
@@ -2571,6 +2658,7 @@ gdata_contacts_contact_remove_all_events (GDataContactsContact *self)
  * relation types or labels.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_calendar (GDataContactsContact *self, GDataGContactCalendar *calendar)
@@ -2591,6 +2679,7 @@ gdata_contacts_contact_add_calendar (GDataContactsContact *self, GDataGContactCa
  * Return value: (element-type GData.GContactCalendar) (transfer none): a #GList of #GDataGContactCalendars, 
or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_calendars (GDataContactsContact *self)
@@ -2608,6 +2697,7 @@ gdata_contacts_contact_get_calendars (GDataContactsContact *self)
  * Return value: (transfer none): a #GDataGContactCalendar, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataGContactCalendar *
 gdata_contacts_contact_get_primary_calendar (GDataContactsContact *self)
@@ -2631,6 +2721,7 @@ gdata_contacts_contact_get_primary_calendar (GDataContactsContact *self)
  * Removes all calendars from the contact.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_calendars (GDataContactsContact *self)
@@ -2653,6 +2744,7 @@ gdata_contacts_contact_remove_all_calendars (GDataContactsContact *self)
  * Duplicate IDs will not be added to the list.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_external_id (GDataContactsContact *self, GDataGContactExternalID *external_id)
@@ -2673,6 +2765,7 @@ gdata_contacts_contact_add_external_id (GDataContactsContact *self, GDataGContac
  * Return value: (element-type GData.GContactExternalID) (transfer none): a #GList of 
#GDataGContactExternalIDs, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_external_ids (GDataContactsContact *self)
@@ -2688,6 +2781,7 @@ gdata_contacts_contact_get_external_ids (GDataContactsContact *self)
  * Removes all external IDs from the contact.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_external_ids (GDataContactsContact *self)
@@ -2710,6 +2804,7 @@ gdata_contacts_contact_remove_all_external_ids (GDataContactsContact *self)
  * Duplicate hobbies will not be added to the list.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_hobby (GDataContactsContact *self, const gchar *hobby)
@@ -2730,6 +2825,7 @@ gdata_contacts_contact_add_hobby (GDataContactsContact *self, const gchar *hobby
  * Return value: (element-type utf8) (transfer none): a #GList of hobby strings, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_hobbies (GDataContactsContact *self)
@@ -2745,6 +2841,7 @@ gdata_contacts_contact_get_hobbies (GDataContactsContact *self)
  * Removes all hobbies from the contact.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_hobbies (GDataContactsContact *self)
@@ -2767,6 +2864,7 @@ gdata_contacts_contact_remove_all_hobbies (GDataContactsContact *self)
  * Duplicate languages will not be added to the list.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_language (GDataContactsContact *self, GDataGContactLanguage *language)
@@ -2787,6 +2885,7 @@ gdata_contacts_contact_add_language (GDataContactsContact *self, GDataGContactLa
  * Return value: (element-type GData.GContactLanguage) (transfer none): a #GList of #GDataGContactLanguages, 
or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_languages (GDataContactsContact *self)
@@ -2802,6 +2901,7 @@ gdata_contacts_contact_get_languages (GDataContactsContact *self)
  * Removes all languages from the contact.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_all_languages (GDataContactsContact *self)
@@ -2825,6 +2925,7 @@ gdata_contacts_contact_remove_all_languages (GDataContactsContact *self)
  * Return value: the property's value, or %NULL
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_extended_property (GDataContactsContact *self, const gchar *name)
@@ -2843,6 +2944,7 @@ gdata_contacts_contact_get_extended_property (GDataContactsContact *self, const
  * Return value: (transfer none): a #GHashTable of extended properties
  *
  * Since: 0.4.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GHashTable *
 gdata_contacts_contact_get_extended_properties (GDataContactsContact *self)
@@ -2870,6 +2972,7 @@ gdata_contacts_contact_get_extended_properties (GDataContactsContact *self)
  * Return value: %TRUE if the property was updated or deleted successfully, %FALSE otherwise
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 gboolean
 gdata_contacts_contact_set_extended_property (GDataContactsContact *self, const gchar *name, const gchar 
*value)
@@ -2909,6 +3012,7 @@ gdata_contacts_contact_set_extended_property (GDataContactsContact *self, const
  * Return value: the field's value, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_user_defined_field (GDataContactsContact *self, const gchar *name)
@@ -2927,6 +3031,7 @@ gdata_contacts_contact_get_user_defined_field (GDataContactsContact *self, const
  * Return value: (transfer none): a #GHashTable of user-defined fields
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GHashTable *
 gdata_contacts_contact_get_user_defined_fields (GDataContactsContact *self)
@@ -2949,6 +3054,7 @@ gdata_contacts_contact_get_user_defined_fields (GDataContactsContact *self)
  * To unset a field, set @value to %NULL.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_user_defined_field (GDataContactsContact *self, const gchar *name, const gchar 
*value)
@@ -2973,6 +3079,7 @@ gdata_contacts_contact_set_user_defined_field (GDataContactsContact *self, const
  * Adds the contact to the given group. @href should be a URI.
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_add_group (GDataContactsContact *self, const gchar *href)
@@ -2990,6 +3097,7 @@ gdata_contacts_contact_add_group (GDataContactsContact *self, const gchar *href)
  * Removes the contact from the given group. @href should be a URI.
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_remove_group (GDataContactsContact *self, const gchar *href)
@@ -3014,6 +3122,7 @@ gdata_contacts_contact_remove_group (GDataContactsContact *self, const gchar *hr
  * Return value: %TRUE if the contact has recently been removed from the group, %FALSE otherwise
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 gboolean
 gdata_contacts_contact_is_group_deleted (GDataContactsContact *self, const gchar *href)
@@ -3032,6 +3141,7 @@ gdata_contacts_contact_is_group_deleted (GDataContactsContact *self, const gchar
  * Return value: (element-type utf8) (transfer container): a #GList of constant group ID URIs, or %NULL; 
free with g_list_free()
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GList *
 gdata_contacts_contact_get_groups (GDataContactsContact *self)
@@ -3070,6 +3180,7 @@ gdata_contacts_contact_get_groups (GDataContactsContact *self)
  * Return value: %TRUE if the contact has been deleted, %FALSE otherwise
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 gboolean
 gdata_contacts_contact_is_deleted (GDataContactsContact *self)
@@ -3089,6 +3200,7 @@ gdata_contacts_contact_is_deleted (GDataContactsContact *self)
  * Return value: the contact's photo's ETag if it exists, %NULL otherwise
  *
  * Since: 0.9.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_contact_get_photo_etag (GDataContactsContact *self)
@@ -3118,6 +3230,7 @@ gdata_contacts_contact_get_photo_etag (GDataContactsContact *self)
  * Return value: (transfer full) (array length=length): the image data, or %NULL; free with g_free()
  *
  * Since: 0.8.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 guint8 *
 gdata_contacts_contact_get_photo (GDataContactsContact *self, GDataContactsService *service, gsize *length, 
gchar **content_type,
@@ -3238,6 +3351,7 @@ get_photo_thread (GTask *task, gpointer source_object, gpointer task_data, GCanc
  * If there is an error getting the photo, a %GDATA_SERVICE_ERROR_PROTOCOL_ERROR error will be returned by 
gdata_contacts_contact_get_photo_finish().
  *
  * Since: 0.8.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_get_photo_async (GDataContactsContact *self, GDataContactsService *service, 
GCancellable *cancellable,
@@ -3273,6 +3387,7 @@ gdata_contacts_contact_get_photo_async (GDataContactsContact *self, GDataContact
  * Return value: (transfer full) (array length=length): the image data, or %NULL; free with g_free()
  *
  * Since: 0.8.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 guint8 *
 gdata_contacts_contact_get_photo_finish (GDataContactsContact *self, GAsyncResult *async_result, gsize 
*length, gchar **content_type, GError **error)
@@ -3326,6 +3441,7 @@ gdata_contacts_contact_get_photo_finish (GDataContactsContact *self, GAsyncResul
  * Return value: %TRUE on success, %FALSE otherwise
  *
  * Since: 0.8.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 gboolean
 gdata_contacts_contact_set_photo (GDataContactsContact *self, GDataContactsService *service, const guint8 
*data, gsize length,
@@ -3430,6 +3546,7 @@ set_photo_thread (GTask *task, gpointer source_object, gpointer task_data, GCanc
  * If there is an error setting the photo, a %GDATA_SERVICE_ERROR_PROTOCOL_ERROR error will be returned by 
gdata_contacts_contact_set_photo_finish().
  *
  * Since: 0.8.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_contact_set_photo_async (GDataContactsContact *self, GDataContactsService *service, const 
guint8 *data, gsize length,
@@ -3469,6 +3586,7 @@ gdata_contacts_contact_set_photo_async (GDataContactsContact *self, GDataContact
  * Return value: %TRUE on success, %FALSE otherwise
  *
  * Since: 0.8.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 gboolean
 gdata_contacts_contact_set_photo_finish (GDataContactsContact *self, GAsyncResult *async_result, GError 
**error)
@@ -3481,3 +3599,5 @@ gdata_contacts_contact_set_photo_finish (GDataContactsContact *self, GAsyncResul
 
        return g_task_propagate_boolean (G_TASK (async_result), error);
 }
+
+G_GNUC_END_IGNORE_DEPRECATIONS
diff --git a/gdata/services/contacts/gdata-contacts-contact.h 
b/gdata/services/contacts/gdata-contacts-contact.h
index b84daa73..29095412 100644
--- a/gdata/services/contacts/gdata-contacts-contact.h
+++ b/gdata/services/contacts/gdata-contacts-contact.h
@@ -159,145 +159,242 @@ typedef struct {
        void (*_g_reserved1) (void);
 } GDataContactsContactClass;
 
+G_DEPRECATED
 GType gdata_contacts_contact_get_type (void) G_GNUC_CONST;
 
+G_DEPRECATED
 GDataContactsContact *gdata_contacts_contact_new (const gchar *id) G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;
 
+G_DEPRECATED
 gint64 gdata_contacts_contact_get_edited (GDataContactsContact *self);
+G_DEPRECATED
 gboolean gdata_contacts_contact_is_deleted (GDataContactsContact *self) G_GNUC_PURE;
 
+G_DEPRECATED
 GDataGDName *gdata_contacts_contact_get_name (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_name (GDataContactsContact *self, GDataGDName *name);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_nickname (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_nickname (GDataContactsContact *self, const gchar *nickname);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_file_as (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_file_as (GDataContactsContact *self, const gchar *file_as);
 
+G_DEPRECATED
 gboolean gdata_contacts_contact_get_birthday (GDataContactsContact *self, GDate *birthday) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_birthday (GDataContactsContact *self, GDate *birthday, gboolean 
birthday_has_year);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_billing_information (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_billing_information (GDataContactsContact *self, const gchar 
*billing_information);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_directory_server (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_directory_server (GDataContactsContact *self, const gchar *directory_server);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_gender (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_gender (GDataContactsContact *self, const gchar *gender);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_initials (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_initials (GDataContactsContact *self, const gchar *initials);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_maiden_name (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_maiden_name (GDataContactsContact *self, const gchar *maiden_name);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_mileage (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_mileage (GDataContactsContact *self, const gchar *mileage);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_occupation (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_occupation (GDataContactsContact *self, const gchar *occupation);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_priority (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_priority (GDataContactsContact *self, const gchar *priority);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_sensitivity (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_sensitivity (GDataContactsContact *self, const gchar *sensitivity);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_short_name (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_short_name (GDataContactsContact *self, const gchar *short_name);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_subject (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_subject (GDataContactsContact *self, const gchar *subject);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_email_address (GDataContactsContact *self, GDataGDEmailAddress 
*email_address);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_email_addresses (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 GDataGDEmailAddress *gdata_contacts_contact_get_primary_email_address (GDataContactsContact *self) 
G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_email_addresses (GDataContactsContact *self);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_im_address (GDataContactsContact *self, GDataGDIMAddress *im_address);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_im_addresses (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 GDataGDIMAddress *gdata_contacts_contact_get_primary_im_address (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_im_addresses (GDataContactsContact *self);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_phone_number (GDataContactsContact *self, GDataGDPhoneNumber *phone_number);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_phone_numbers (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 GDataGDPhoneNumber *gdata_contacts_contact_get_primary_phone_number (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_phone_numbers (GDataContactsContact *self);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_postal_address (GDataContactsContact *self, GDataGDPostalAddress 
*postal_address);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_postal_addresses (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 GDataGDPostalAddress *gdata_contacts_contact_get_primary_postal_address (GDataContactsContact *self) 
G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_postal_addresses (GDataContactsContact *self);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_organization (GDataContactsContact *self, GDataGDOrganization *organization);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_organizations (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 GDataGDOrganization *gdata_contacts_contact_get_primary_organization (GDataContactsContact *self) 
G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_organizations (GDataContactsContact *self);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_jot (GDataContactsContact *self, GDataGContactJot *jot);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_jots (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_jots (GDataContactsContact *self);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_relation (GDataContactsContact *self, GDataGContactRelation *relation);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_relations (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_relations (GDataContactsContact *self);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_website (GDataContactsContact *self, GDataGContactWebsite *website);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_websites (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 GDataGContactWebsite *gdata_contacts_contact_get_primary_website (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_websites (GDataContactsContact *self);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_event (GDataContactsContact *self, GDataGContactEvent *event);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_events (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_events (GDataContactsContact *self);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_calendar (GDataContactsContact *self, GDataGContactCalendar *calendar);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_calendars (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 GDataGContactCalendar *gdata_contacts_contact_get_primary_calendar (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_calendars (GDataContactsContact *self);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_external_id (GDataContactsContact *self, GDataGContactExternalID 
*external_id);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_external_ids (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_external_ids (GDataContactsContact *self);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_hobby (GDataContactsContact *self, const gchar *hobby);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_hobbies (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_hobbies (GDataContactsContact *self);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_language (GDataContactsContact *self, GDataGContactLanguage *language);
+G_DEPRECATED
 GList *gdata_contacts_contact_get_languages (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_remove_all_languages (GDataContactsContact *self);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_extended_property (GDataContactsContact *self, const gchar *name) 
G_GNUC_PURE;
+G_DEPRECATED
 GHashTable *gdata_contacts_contact_get_extended_properties (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 gboolean gdata_contacts_contact_set_extended_property (GDataContactsContact *self, const gchar *name, const 
gchar *value);
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_user_defined_field (GDataContactsContact *self, const gchar *name) 
G_GNUC_PURE;
+G_DEPRECATED
 GHashTable *gdata_contacts_contact_get_user_defined_fields (GDataContactsContact *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_contact_set_user_defined_field (GDataContactsContact *self, const gchar *name, const 
gchar *value);
 
+G_DEPRECATED
 void gdata_contacts_contact_add_group (GDataContactsContact *self, const gchar *href);
+G_DEPRECATED
 void gdata_contacts_contact_remove_group (GDataContactsContact *self, const gchar *href);
+G_DEPRECATED
 gboolean gdata_contacts_contact_is_group_deleted (GDataContactsContact *self, const gchar *href) G_GNUC_PURE;
+G_DEPRECATED
 GList *gdata_contacts_contact_get_groups (GDataContactsContact *self) G_GNUC_WARN_UNUSED_RESULT 
G_GNUC_MALLOC;
 
 #include <gdata/services/contacts/gdata-contacts-service.h>
 
+G_DEPRECATED
 const gchar *gdata_contacts_contact_get_photo_etag (GDataContactsContact *self) G_GNUC_PURE;
 
+G_DEPRECATED
 guint8 *gdata_contacts_contact_get_photo (GDataContactsContact *self, GDataContactsService *service, gsize 
*length, gchar **content_type,
                                           GCancellable *cancellable, GError **error) 
G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;
+G_DEPRECATED
 void gdata_contacts_contact_get_photo_async (GDataContactsContact *self, GDataContactsService *service, 
GCancellable *cancellable,
                                              GAsyncReadyCallback callback, gpointer user_data);
+G_DEPRECATED
 guint8 *gdata_contacts_contact_get_photo_finish (GDataContactsContact *self, GAsyncResult *async_result, 
gsize *length, gchar **content_type,
                                                  GError **error) G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;
 
+G_DEPRECATED
 gboolean gdata_contacts_contact_set_photo (GDataContactsContact *self, GDataContactsService *service, const 
guint8 *data, gsize length,
                                            const gchar *content_type, GCancellable *cancellable, GError 
**error);
+G_DEPRECATED
 void gdata_contacts_contact_set_photo_async (GDataContactsContact *self, GDataContactsService *service, 
const guint8 *data, gsize length,
                                              const gchar *content_type, GCancellable *cancellable, 
GAsyncReadyCallback callback, gpointer user_data);
+G_DEPRECATED
 gboolean gdata_contacts_contact_set_photo_finish (GDataContactsContact *self, GAsyncResult *async_result, 
GError **error);
 
 G_END_DECLS
diff --git a/gdata/services/contacts/gdata-contacts-group.c b/gdata/services/contacts/gdata-contacts-group.c
index 2059369a..f8954f37 100644
--- a/gdata/services/contacts/gdata-contacts-group.c
+++ b/gdata/services/contacts/gdata-contacts-group.c
@@ -90,6 +90,7 @@
  * </example>
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 
 #include <config.h>
@@ -103,6 +104,8 @@
 #include "gdata-types.h"
 #include "gdata-private.h"
 
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+
 /* The maximum number of extended properties the server allows us. See
  * http://code.google.com/apis/contacts/docs/3.0/reference.html#ProjectionsAndExtended.
  * When updating this, make sure to update the API documentation for 
gdata_contacts_group_get_extended_property() and
@@ -159,6 +162,7 @@ gdata_contacts_group_class_init (GDataContactsGroupClass *klass)
         * Atom Publishing Protocol specification</ulink>.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_EDITED,
                                         g_param_spec_int64 ("edited",
@@ -172,6 +176,7 @@ gdata_contacts_group_class_init (GDataContactsGroupClass *klass)
         * Whether the entry has been deleted.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_DELETED,
                                         g_param_spec_boolean ("deleted",
@@ -192,6 +197,7 @@ gdata_contacts_group_class_init (GDataContactsGroupClass *klass)
         * group ID.
         *
         * Since: 0.7.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_SYSTEM_GROUP_ID,
                                         g_param_spec_string ("system-group-id",
@@ -454,6 +460,7 @@ get_entry_uri (const gchar *id)
  * Return value: a new #GDataContactsGroup; unref with g_object_unref()
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataContactsGroup *
 gdata_contacts_group_new (const gchar *id)
@@ -470,6 +477,7 @@ gdata_contacts_group_new (const gchar *id)
  * Return value: the UNIX timestamp for the time the file was last edited, or <code class="literal">-1</code>
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 gint64
 gdata_contacts_group_get_edited (GDataContactsGroup *self)
@@ -487,6 +495,7 @@ gdata_contacts_group_get_edited (GDataContactsGroup *self)
  * Return value: the group's system group ID, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_group_get_system_group_id (GDataContactsGroup *self)
@@ -506,6 +515,7 @@ gdata_contacts_group_get_system_group_id (GDataContactsGroup *self)
  * Return value: the property's value, or %NULL
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_group_get_extended_property (GDataContactsGroup *self, const gchar *name)
@@ -524,6 +534,7 @@ gdata_contacts_group_get_extended_property (GDataContactsGroup *self, const gcha
  * Return value: (transfer none): a #GHashTable of extended properties
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GHashTable *
 gdata_contacts_group_get_extended_properties (GDataContactsGroup *self)
@@ -550,6 +561,7 @@ gdata_contacts_group_get_extended_properties (GDataContactsGroup *self)
  * Return value: %TRUE if the property was updated or deleted successfully, %FALSE otherwise
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 gboolean
 gdata_contacts_group_set_extended_property (GDataContactsGroup *self, const gchar *name, const gchar *value)
@@ -588,6 +600,7 @@ gdata_contacts_group_set_extended_property (GDataContactsGroup *self, const gcha
  * Return value: %TRUE if the group has been deleted, %FALSE otherwise
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 gboolean
 gdata_contacts_group_is_deleted (GDataContactsGroup *self)
@@ -595,3 +608,5 @@ gdata_contacts_group_is_deleted (GDataContactsGroup *self)
        g_return_val_if_fail (GDATA_IS_CONTACTS_GROUP (self), FALSE);
        return self->priv->deleted;
 }
+
+G_GNUC_END_IGNORE_DEPRECATIONS
diff --git a/gdata/services/contacts/gdata-contacts-group.h b/gdata/services/contacts/gdata-contacts-group.h
index b8deaed4..4332f42e 100644
--- a/gdata/services/contacts/gdata-contacts-group.h
+++ b/gdata/services/contacts/gdata-contacts-group.h
@@ -101,16 +101,24 @@ typedef struct {
        void (*_g_reserved1) (void);
 } GDataContactsGroupClass;
 
+G_DEPRECATED
 GType gdata_contacts_group_get_type (void) G_GNUC_CONST;
 
+G_DEPRECATED
 GDataContactsGroup *gdata_contacts_group_new (const gchar *id) G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;
 
+G_DEPRECATED
 gint64 gdata_contacts_group_get_edited (GDataContactsGroup *self);
+G_DEPRECATED
 gboolean gdata_contacts_group_is_deleted (GDataContactsGroup *self) G_GNUC_PURE;
+G_DEPRECATED
 const gchar *gdata_contacts_group_get_system_group_id (GDataContactsGroup *self) G_GNUC_PURE;
 
+G_DEPRECATED
 const gchar *gdata_contacts_group_get_extended_property (GDataContactsGroup *self, const gchar *name) 
G_GNUC_PURE;
+G_DEPRECATED
 GHashTable *gdata_contacts_group_get_extended_properties (GDataContactsGroup *self) G_GNUC_PURE;
+G_DEPRECATED
 gboolean gdata_contacts_group_set_extended_property (GDataContactsGroup *self, const gchar *name, const 
gchar *value);
 
 G_END_DECLS
diff --git a/gdata/services/contacts/gdata-contacts-query.c b/gdata/services/contacts/gdata-contacts-query.c
index d0256559..9c8fc7f9 100644
--- a/gdata/services/contacts/gdata-contacts-query.c
+++ b/gdata/services/contacts/gdata-contacts-query.c
@@ -75,6 +75,7 @@
  * </example>
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 
 #include <config.h>
@@ -86,6 +87,8 @@
 #include "gdata-query.h"
 #include "gdata-private.h"
 
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+
 static void gdata_contacts_query_finalize (GObject *object);
 static void gdata_contacts_query_get_property (GObject *object, guint property_id, GValue *value, GParamSpec 
*pspec);
 static void gdata_contacts_query_set_property (GObject *object, guint property_id, const GValue *value, 
GParamSpec *pspec);
@@ -125,6 +128,7 @@ gdata_contacts_query_class_init (GDataContactsQueryClass *klass)
         * Sorting criterion. The only supported value is <literal>lastmodified</literal>.
         *
         * Since: 0.2.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_ORDER_BY,
                                         g_param_spec_string ("order-by",
@@ -140,6 +144,7 @@ gdata_contacts_query_class_init (GDataContactsQueryClass *klass)
         * normally appear in query results.
         *
         * Since: 0.2.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_SHOW_DELETED,
                                         g_param_spec_boolean ("show-deleted",
@@ -153,6 +158,7 @@ gdata_contacts_query_class_init (GDataContactsQueryClass *klass)
         * Sorting order direction. Can be either <literal>ascending</literal> or 
<literal>descending</literal>.
         *
         * Since: 0.2.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_SORT_ORDER,
                                         g_param_spec_string ("sort-order",
@@ -167,6 +173,7 @@ gdata_contacts_query_class_init (GDataContactsQueryClass *klass)
         * should be a group ID URI.
         *
         * Since: 0.2.0
+        * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface 
instead.
         */
        g_object_class_install_property (gobject_class, PROP_GROUP,
                                         g_param_spec_string ("group",
@@ -295,6 +302,7 @@ get_query_uri (GDataQuery *self, const gchar *feed_uri, GString *query_uri, gboo
  * Return value: a new #GDataContactsQuery
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataContactsQuery *
 gdata_contacts_query_new (const gchar *q)
@@ -314,6 +322,7 @@ gdata_contacts_query_new (const gchar *q)
  * Return value: a new #GDataContactsQuery
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataContactsQuery *
 gdata_contacts_query_new_with_limits (const gchar *q, guint start_index, guint max_results)
@@ -334,6 +343,7 @@ gdata_contacts_query_new_with_limits (const gchar *q, guint start_index, guint m
  * Return value: the order by property, or %NULL if it is unset
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_query_get_order_by (GDataContactsQuery *self)
@@ -352,6 +362,7 @@ gdata_contacts_query_get_order_by (GDataContactsQuery *self)
  * Set @order_by to %NULL to unset the property in the query URI.
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_query_set_order_by (GDataContactsQuery *self, const gchar *order_by)
@@ -375,6 +386,7 @@ gdata_contacts_query_set_order_by (GDataContactsQuery *self, const gchar *order_
  * Return value: %TRUE if deleted contacts should be shown, %FALSE otherwise
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 gboolean
 gdata_contacts_query_show_deleted (GDataContactsQuery *self)
@@ -391,6 +403,7 @@ gdata_contacts_query_show_deleted (GDataContactsQuery *self)
  * Sets the #GDataContactsQuery:show-deleted property of the #GDataContactsQuery.
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_query_set_show_deleted (GDataContactsQuery *self, gboolean show_deleted)
@@ -412,6 +425,7 @@ gdata_contacts_query_set_show_deleted (GDataContactsQuery *self, gboolean show_d
  * Return value: the sort order property, or %NULL if it is unset
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_query_get_sort_order (GDataContactsQuery *self)
@@ -430,6 +444,7 @@ gdata_contacts_query_get_sort_order (GDataContactsQuery *self)
  * Set @sort_order to %NULL to unset the property in the query URI.
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_query_set_sort_order (GDataContactsQuery *self, const gchar *sort_order)
@@ -453,6 +468,7 @@ gdata_contacts_query_set_sort_order (GDataContactsQuery *self, const gchar *sort
  * Return value: the group property, or %NULL if it is unset
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 const gchar *
 gdata_contacts_query_get_group (GDataContactsQuery *self)
@@ -471,6 +487,7 @@ gdata_contacts_query_get_group (GDataContactsQuery *self)
  * Set @group to %NULL to unset the property in the query URI.
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_query_set_group (GDataContactsQuery *self, const gchar *group)
@@ -484,3 +501,5 @@ gdata_contacts_query_set_group (GDataContactsQuery *self, const gchar *group)
        /* Our current ETag will no longer be relevant */
        gdata_query_set_etag (GDATA_QUERY (self), NULL);
 }
+
+G_GNUC_END_IGNORE_DEPRECATIONS
diff --git a/gdata/services/contacts/gdata-contacts-query.h b/gdata/services/contacts/gdata-contacts-query.h
index f2156458..a961b7fc 100644
--- a/gdata/services/contacts/gdata-contacts-query.h
+++ b/gdata/services/contacts/gdata-contacts-query.h
@@ -65,19 +65,30 @@ typedef struct {
        void (*_g_reserved1) (void);
 } GDataContactsQueryClass;
 
+G_DEPRECATED
 GType gdata_contacts_query_get_type (void) G_GNUC_CONST;
 
+G_DEPRECATED
 GDataContactsQuery *gdata_contacts_query_new (const gchar *q) G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;
+G_DEPRECATED
 GDataContactsQuery *gdata_contacts_query_new_with_limits (const gchar *q, guint start_index,
                                                           guint max_results) G_GNUC_WARN_UNUSED_RESULT 
G_GNUC_MALLOC;
 
+G_DEPRECATED
 const gchar *gdata_contacts_query_get_order_by (GDataContactsQuery *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_query_set_order_by (GDataContactsQuery *self, const gchar *order_by);
+G_DEPRECATED
 gboolean gdata_contacts_query_show_deleted (GDataContactsQuery *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_query_set_show_deleted (GDataContactsQuery *self, gboolean show_deleted);
+G_DEPRECATED
 const gchar *gdata_contacts_query_get_sort_order (GDataContactsQuery *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_query_set_sort_order (GDataContactsQuery *self, const gchar *sort_order);
+G_DEPRECATED
 const gchar *gdata_contacts_query_get_group (GDataContactsQuery *self) G_GNUC_PURE;
+G_DEPRECATED
 void gdata_contacts_query_set_group (GDataContactsQuery *self, const gchar *group);
 
 G_END_DECLS
diff --git a/gdata/services/contacts/gdata-contacts-service.c 
b/gdata/services/contacts/gdata-contacts-service.c
index 62d7c328..2c6de1c4 100644
--- a/gdata/services/contacts/gdata-contacts-service.c
+++ b/gdata/services/contacts/gdata-contacts-service.c
@@ -26,6 +26,12 @@
  * #GDataContactsService is a subclass of #GDataService for communicating with the GData API of Google 
Contacts. It supports querying
  * for, inserting, editing and deleting contacts from a Google address book.
  *
+ * As of December 2021, the [Google Contacts API server will be
+ * disabled](https://developers.google.com/contacts/v3/announcement). This
+ * client-side API is deprecated. The
+ * [CardDAV interface](https://developers.google.com/people/carddav) should be
+ * used instead.
+ *
  * For more details of Google Contacts' GData API, see the <ulink type="http" 
url="http://code.google.com/apis/contacts/docs/2.0/reference.html";>
  * online documentation</ulink>.
  *
@@ -143,6 +149,7 @@
  * </example>
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 
 #include <config.h>
@@ -157,6 +164,8 @@
 #include "gdata-private.h"
 #include "gdata-query.h"
 
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+
 static GList *get_authorization_domains (void);
 
 _GDATA_DEFINE_AUTHORIZATION_DOMAIN (contacts, "cp", "https://www.google.com/m8/feeds/";)
@@ -192,6 +201,7 @@ get_authorization_domains (void)
  * Return value: a new #GDataContactsService, or %NULL; unref with g_object_unref()
  *
  * Since: 0.9.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataContactsService *
 gdata_contacts_service_new (GDataAuthorizer *authorizer)
@@ -215,6 +225,7 @@ gdata_contacts_service_new (GDataAuthorizer *authorizer)
  * Return value: (transfer none): the service's authorization domain
  *
  * Since: 0.9.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataAuthorizationDomain *
 gdata_contacts_service_get_primary_authorization_domain (void)
@@ -238,6 +249,7 @@ gdata_contacts_service_get_primary_authorization_domain (void)
  * Return value: (transfer full): a #GDataFeed of query results; unref with g_object_unref()
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataFeed *
 gdata_contacts_service_query_contacts (GDataContactsService *self, GDataQuery *query, GCancellable 
*cancellable,
@@ -286,6 +298,7 @@ gdata_contacts_service_query_contacts (GDataContactsService *self, GDataQuery *q
  * and gdata_service_query_async(), which is the base asynchronous query function.
  *
  * Since: 0.9.1
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_service_query_contacts_async (GDataContactsService *self, GDataQuery *query, GCancellable 
*cancellable,
@@ -334,6 +347,7 @@ gdata_contacts_service_query_contacts_async (GDataContactsService *self, GDataQu
  * Return value: (transfer full): an updated #GDataContactsContact, or %NULL; unref with g_object_unref()
  *
  * Since: 0.2.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataContactsContact *
 gdata_contacts_service_insert_contact (GDataContactsService *self, GDataContactsContact *contact, 
GCancellable *cancellable, GError **error)
@@ -372,6 +386,7 @@ gdata_contacts_service_insert_contact (GDataContactsService *self, GDataContacts
  * and gdata_service_insert_entry_async(), which is the base asynchronous insertion function.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_service_insert_contact_async (GDataContactsService *self, GDataContactsContact *contact, 
GCancellable *cancellable,
@@ -405,6 +420,7 @@ gdata_contacts_service_insert_contact_async (GDataContactsService *self, GDataCo
  * Return value: (transfer full): a #GDataFeed of query results; unref with g_object_unref()
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataFeed *
 gdata_contacts_service_query_groups (GDataContactsService *self, GDataQuery *query, GCancellable 
*cancellable,
@@ -453,6 +469,7 @@ gdata_contacts_service_query_groups (GDataContactsService *self, GDataQuery *que
  * which is the base asynchronous query function.
  *
  * Since: 0.9.1
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_service_query_groups_async (GDataContactsService *self, GDataQuery *query, GCancellable 
*cancellable,
@@ -499,6 +516,7 @@ gdata_contacts_service_query_groups_async (GDataContactsService *self, GDataQuer
  * Return value: (transfer full): the inserted #GDataContactsGroup; unref with g_object_unref()
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 GDataContactsGroup *
 gdata_contacts_service_insert_group (GDataContactsService *self, GDataContactsGroup *group, GCancellable 
*cancellable, GError **error)
@@ -550,6 +568,7 @@ gdata_contacts_service_insert_group (GDataContactsService *self, GDataContactsGr
  * gdata_service_insert_entry_async(), which is the base asynchronous insertion function.
  *
  * Since: 0.7.0
+ * Deprecated: 0.18.0: The Google Contacts service is deprecated. Use Google’s CardDAV interface instead.
  */
 void
 gdata_contacts_service_insert_group_async (GDataContactsService *self, GDataContactsGroup *group, 
GCancellable *cancellable,
@@ -566,3 +585,5 @@ gdata_contacts_service_insert_group_async (GDataContactsService *self, GDataCont
                                          callback, user_data);
        g_free (request_uri);
 }
+
+G_GNUC_END_IGNORE_DEPRECATIONS
diff --git a/gdata/services/contacts/gdata-contacts-service.h 
b/gdata/services/contacts/gdata-contacts-service.h
index 100e38df..33895d9f 100644
--- a/gdata/services/contacts/gdata-contacts-service.h
+++ b/gdata/services/contacts/gdata-contacts-service.h
@@ -69,15 +69,20 @@ typedef struct {
        void (*_g_reserved5) (void);
 } GDataContactsServiceClass;
 
+G_DEPRECATED
 GType gdata_contacts_service_get_type (void) G_GNUC_CONST;
 
+G_DEPRECATED
 GDataContactsService *gdata_contacts_service_new (GDataAuthorizer *authorizer) G_GNUC_WARN_UNUSED_RESULT 
G_GNUC_MALLOC;
 
+G_DEPRECATED
 GDataAuthorizationDomain *gdata_contacts_service_get_primary_authorization_domain (void) G_GNUC_CONST;
 
+G_DEPRECATED
 GDataFeed *gdata_contacts_service_query_contacts (GDataContactsService *self, GDataQuery *query, 
GCancellable *cancellable,
                                                   GDataQueryProgressCallback progress_callback, gpointer 
progress_user_data,
                                                   GError **error) G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;
+G_DEPRECATED
 void gdata_contacts_service_query_contacts_async (GDataContactsService *self, GDataQuery *query, 
GCancellable *cancellable,
                                                   GDataQueryProgressCallback progress_callback, gpointer 
progress_user_data,
                                                   GDestroyNotify destroy_progress_user_data,
@@ -85,23 +90,29 @@ void gdata_contacts_service_query_contacts_async (GDataContactsService *self, GD
 
 #include <gdata/services/contacts/gdata-contacts-contact.h>
 
+G_DEPRECATED
 GDataContactsContact *gdata_contacts_service_insert_contact (GDataContactsService *self, 
GDataContactsContact *contact,
                                                              GCancellable *cancellable, GError **error) 
G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;
+G_DEPRECATED
 void gdata_contacts_service_insert_contact_async (GDataContactsService *self, GDataContactsContact *contact, 
GCancellable *cancellable,
                                                   GAsyncReadyCallback callback, gpointer user_data);
 
 #include <gdata/services/contacts/gdata-contacts-group.h>
 
+G_DEPRECATED
 GDataFeed *gdata_contacts_service_query_groups (GDataContactsService *self, GDataQuery *query, GCancellable 
*cancellable,
                                                 GDataQueryProgressCallback progress_callback, gpointer 
progress_user_data,
                                                 GError **error) G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;
+G_DEPRECATED
 void gdata_contacts_service_query_groups_async (GDataContactsService *self, GDataQuery *query, GCancellable 
*cancellable,
                                                 GDataQueryProgressCallback progress_callback, gpointer 
progress_user_data,
                                                 GDestroyNotify destroy_progress_user_data,
                                                 GAsyncReadyCallback callback, gpointer user_data);
 
+G_DEPRECATED
 GDataContactsGroup *gdata_contacts_service_insert_group (GDataContactsService *self, GDataContactsGroup 
*group,
                                                          GCancellable *cancellable, GError **error) 
G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;
+G_DEPRECATED
 void gdata_contacts_service_insert_group_async (GDataContactsService *self, GDataContactsGroup *group, 
GCancellable *cancellable,
                                                 GAsyncReadyCallback callback, gpointer user_data);
 
diff --git a/gdata/tests/contacts.c b/gdata/tests/contacts.c
index f70cee25..b6f4de2d 100644
--- a/gdata/tests/contacts.c
+++ b/gdata/tests/contacts.c
@@ -25,6 +25,8 @@
 #include "common.h"
 #include "gdata-dummy-authorizer.h"
 
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+
 static UhmServer *mock_server = NULL;
 
 #undef CLIENT_ID  /* from common.h */
@@ -2699,3 +2701,5 @@ main (int argc, char *argv[])
 
        return retval;
 }
+
+G_GNUC_END_IGNORE_DEPRECATIONS
diff --git a/gdata/tests/oauth1-authorizer.c b/gdata/tests/oauth1-authorizer.c
index 63d50d9b..480de207 100644
--- a/gdata/tests/oauth1-authorizer.c
+++ b/gdata/tests/oauth1-authorizer.c
@@ -23,6 +23,9 @@
 
 #include "common.h"
 
+/* Uses the Contacts API for tests, but it’s deprecated */
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+
 static GThread *main_thread = NULL;
 static UhmServer *mock_server = NULL;
 
@@ -1137,3 +1140,5 @@ main (int argc, char *argv[])
 
        return g_test_run ();
 }
+
+G_GNUC_END_IGNORE_DEPRECATIONS


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]