/** * Copyright 2015 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* jshint maxlen: false */ import createAPIRequest from '../../lib/apirequest'; /** * Google People API * * Provides access to information about profiles and contacts. * * @example * const google = require('googleapis'); * const people = google.people('v1'); * * @namespace people * @type {Function} * @version v1 * @variation v1 * @param {object=} options Options for People */ function People(options) { // eslint-disable-line const self = this; self._options = options || {}; self.contactGroups = { /** * people.contactGroups.batchGet * * @desc Get a list of contact groups owned by the authenticated user by specifying a list of contact group resource names. * * @alias people.contactGroups.batchGet * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {integer=} params.maxMembers Specifies the maximum number of members to return for each group. * @param {string=} params.resourceNames The resource names of the contact groups to get. * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ batchGet: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/contactGroups:batchGet').replace(/([^:]\/)\/+/g, '$1'), method: 'GET' }, options), params: params, requiredParams: [], pathParams: [], context: self }; return createAPIRequest(parameters, callback); }, /** * people.contactGroups.create * * @desc Create a new contact group owned by the authenticated user. * * @alias people.contactGroups.create * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {people(v1).CreateContactGroupRequest} params.resource Request body data * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ create: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/contactGroups').replace(/([^:]\/)\/+/g, '$1'), method: 'POST' }, options), params: params, requiredParams: [], pathParams: [], context: self }; return createAPIRequest(parameters, callback); }, /** * people.contactGroups.delete * * @desc Delete an existing contact group owned by the authenticated user by specifying a contact group resource name. * * @alias people.contactGroups.delete * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {boolean=} params.deleteContacts Set to true to also delete the contacts in the specified group. * @param {string} params.resourceName The resource name of the contact group to delete. * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ delete: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/{resourceName}').replace(/([^:]\/)\/+/g, '$1'), method: 'DELETE' }, options), params: params, requiredParams: ['resourceName'], pathParams: ['resourceName'], context: self }; return createAPIRequest(parameters, callback); }, /** * people.contactGroups.get * * @desc Get a specific contact group owned by the authenticated user by specifying a contact group resource name. * * @alias people.contactGroups.get * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {integer=} params.maxMembers Specifies the maximum number of members to return. * @param {string} params.resourceName The resource name of the contact group to get. * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ get: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/{resourceName}').replace(/([^:]\/)\/+/g, '$1'), method: 'GET' }, options), params: params, requiredParams: ['resourceName'], pathParams: ['resourceName'], context: self }; return createAPIRequest(parameters, callback); }, /** * people.contactGroups.list * * @desc List all contact groups owned by the authenticated user. Members of the contact groups are not populated. * * @alias people.contactGroups.list * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {integer=} params.pageSize The maximum number of resources to return. * @param {string=} params.pageToken The next_page_token value returned from a previous call to [ListContactGroups](/people/api/rest/v1/contactgroups/list). Requests the next page of resources. * @param {string=} params.syncToken A sync token, returned by a previous call to `contactgroups.list`. Only resources changed since the sync token was created will be returned. * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ list: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/contactGroups').replace(/([^:]\/)\/+/g, '$1'), method: 'GET' }, options), params: params, requiredParams: [], pathParams: [], context: self }; return createAPIRequest(parameters, callback); }, /** * people.contactGroups.update * * @desc Update the name of an existing contact group owned by the authenticated user. * * @alias people.contactGroups.update * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {string} params.resourceName The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/`contact_group_id. * @param {people(v1).UpdateContactGroupRequest} params.resource Request body data * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ update: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/{resourceName}').replace(/([^:]\/)\/+/g, '$1'), method: 'PUT' }, options), params: params, requiredParams: ['resourceName'], pathParams: ['resourceName'], context: self }; return createAPIRequest(parameters, callback); }, members: { /** * people.contactGroups.members.modify * * @desc Modify the members of a contact group owned by the authenticated user. * * @alias people.contactGroups.members.modify * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {string} params.resourceName The resource name of the contact group to modify. * @param {people(v1).ModifyContactGroupMembersRequest} params.resource Request body data * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ modify: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/{resourceName}/members:modify').replace(/([^:]\/)\/+/g, '$1'), method: 'POST' }, options), params: params, requiredParams: ['resourceName'], pathParams: ['resourceName'], context: self }; return createAPIRequest(parameters, callback); } } }; self.people = { /** * people.people.createContact * * @desc Create a new contact and return the person resource for that contact. * * @alias people.people.createContact * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {string=} params.parent The resource name of the owning person resource. * @param {people(v1).Person} params.resource Request body data * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ createContact: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/people:createContact').replace(/([^:]\/)\/+/g, '$1'), method: 'POST' }, options), params: params, requiredParams: [], pathParams: [], context: self }; return createAPIRequest(parameters, callback); }, /** * people.people.deleteContact * * @desc Delete a contact person. Any non-contact data will not be deleted. * * @alias people.people.deleteContact * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {string} params.resourceName The resource name of the contact to delete. * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ deleteContact: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/{resourceName}:deleteContact').replace(/([^:]\/)\/+/g, '$1'), method: 'DELETE' }, options), params: params, requiredParams: ['resourceName'], pathParams: ['resourceName'], context: self }; return createAPIRequest(parameters, callback); }, /** * people.people.get * * @desc Provides information about a person by specifying a resource name. Use `people/me` to indicate the authenticated user.
The request throws a 400 error if 'personFields' is not specified. * * @alias people.people.get * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {string=} params.personFields **Required.** A field mask to restrict which fields on the person are returned. Valid values are: * addresses * ageRanges * biographies * birthdays * braggingRights * coverPhotos * emailAddresses * events * genders * imClients * interests * locales * memberships * metadata * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * relationshipInterests * relationshipStatuses * residences * skills * taglines * urls * @param {string=} params.requestMask.includeField **Required.** Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.photos`. * @param {string} params.resourceName The resource name of the person to provide information about. - To get information about the authenticated user, specify `people/me`. - To get information about a google account, specify `people/`account_id. - To get information about a contact, specify the resource name that identifies the contact as returned by [`people.connections.list`](/people/api/rest/v1/people.connections/list). * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ get: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/{resourceName}').replace(/([^:]\/)\/+/g, '$1'), method: 'GET' }, options), params: params, requiredParams: ['resourceName'], pathParams: ['resourceName'], context: self }; return createAPIRequest(parameters, callback); }, /** * people.people.getBatchGet * * @desc Provides information about a list of specific people by specifying a list of requested resource names. Use `people/me` to indicate the authenticated user.
The request throws a 400 error if 'personFields' is not specified. * * @alias people.people.getBatchGet * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {string=} params.personFields **Required.** A field mask to restrict which fields on each person are returned. Valid values are: * addresses * ageRanges * biographies * birthdays * braggingRights * coverPhotos * emailAddresses * events * genders * imClients * interests * locales * memberships * metadata * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * relationshipInterests * relationshipStatuses * residences * skills * taglines * urls * @param {string=} params.requestMask.includeField **Required.** Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.photos`. * @param {string=} params.resourceNames The resource names of the people to provide information about. - To get information about the authenticated user, specify `people/me`. - To get information about a google account, specify `people/`account_id. - To get information about a contact, specify the resource name that identifies the contact as returned by [`people.connections.list`](/people/api/rest/v1/people.connections/list). You can include up to 50 resource names in one request. * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ getBatchGet: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/people:batchGet').replace(/([^:]\/)\/+/g, '$1'), method: 'GET' }, options), params: params, requiredParams: [], pathParams: [], context: self }; return createAPIRequest(parameters, callback); }, /** * people.people.updateContact * * @desc Update contact data for an existing contact person. Any non-contact data will not be modified. The request throws a 400 error if `updatePersonFields` is not specified.
The request throws a 400 error if `person.metadata.sources` is not specified for the contact to be updated.
The request throws a 412 error if `person.metadata.sources.etag` is different than the contact's etag, which indicates the contact has changed since its data was read. Clients should get the latest person and re-apply their updates to the latest person. * * @alias people.people.updateContact * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {string} params.resourceName The resource name for the person, assigned by the server. An ASCII string with a max length of 27 characters, in the form of `people/`person_id. * @param {string=} params.updatePersonFields **Required.** A field mask to restrict which fields on the person are updated. Valid values are: * addresses * biographies * birthdays * braggingRights * emailAddresses * events * genders * imClients * interests * locales * names * nicknames * occupations * organizations * phoneNumbers * relations * residences * skills * urls * @param {people(v1).Person} params.resource Request body data * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ updateContact: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/{resourceName}:updateContact').replace(/([^:]\/)\/+/g, '$1'), method: 'PATCH' }, options), params: params, requiredParams: ['resourceName'], pathParams: ['resourceName'], context: self }; return createAPIRequest(parameters, callback); }, connections: { /** * people.people.connections.list * * @desc Provides a list of the authenticated user's contacts merged with any connected profiles.
The request throws a 400 error if 'personFields' is not specified. * * @alias people.people.connections.list * @memberOf! people(v1) * * @param {object} params Parameters for request * @param {integer=} params.pageSize The number of connections to include in the response. Valid values are between 1 and 2000, inclusive. Defaults to 100. * @param {string=} params.pageToken The token of the page to be returned. * @param {string=} params.personFields **Required.** A field mask to restrict which fields on each person are returned. Valid values are: * addresses * ageRanges * biographies * birthdays * braggingRights * coverPhotos * emailAddresses * events * genders * imClients * interests * locales * memberships * metadata * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * relationshipInterests * relationshipStatuses * residences * skills * taglines * urls * @param {string=} params.requestMask.includeField **Required.** Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.photos`. * @param {boolean=} params.requestSyncToken Whether the response should include a sync token, which can be used to get all changes since the last request. * @param {string} params.resourceName The resource name to return connections for. Only `people/me` is valid. * @param {string=} params.sortOrder The order in which the connections should be sorted. Defaults to `LAST_MODIFIED_ASCENDING`. * @param {string=} params.syncToken A sync token, returned by a previous call to `people.connections.list`. Only resources changed since the sync token was created will be returned. * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ list: function (params, options, callback) { if (typeof options === 'function') { callback = options; options = {}; } options || (options = {}); const rootUrl = options.rootUrl || 'https://people.googleapis.com/'; const parameters = { options: Object.assign({ url: (rootUrl + '/v1/{resourceName}/connections').replace(/([^:]\/)\/+/g, '$1'), method: 'GET' }, options), params: params, requiredParams: ['resourceName'], pathParams: ['resourceName'], context: self }; return createAPIRequest(parameters, callback); } } }; } /** * @typedef Address * @memberOf! people(v1) * @type object * @property {string} city The city of the address. * @property {string} country The country of the address. * @property {string} countryCode The [ISO 3166-1 alpha-2](http://www.iso.org/iso/country_codes.htm) country code of the address. * @property {string} extendedAddress The extended address of the address; for example, the apartment number. * @property {string} formattedType The read-only type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. * @property {string} formattedValue The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values. * @property {people(v1).FieldMetadata} metadata Metadata about the address. * @property {string} poBox The P.O. box of the address. * @property {string} postalCode The postal code of the address. * @property {string} region The region of the address; for example, the state or province. * @property {string} streetAddress The street address. * @property {string} type The type of the address. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `other` */ /** * @typedef AgeRangeType * @memberOf! people(v1) * @type object * @property {string} ageRange The age range. * @property {people(v1).FieldMetadata} metadata Metadata about the age range. */ /** * @typedef BatchGetContactGroupsResponse * @memberOf! people(v1) * @type object * @property {people(v1).ContactGroupResponse[]} responses The list of responses for each requested contact group resource. */ /** * @typedef Biography * @memberOf! people(v1) * @type object * @property {string} contentType The content type of the biography. * @property {people(v1).FieldMetadata} metadata Metadata about the biography. * @property {string} value The short biography. */ /** * @typedef Birthday * @memberOf! people(v1) * @type object * @property {people(v1).Date} date The date of the birthday. * @property {people(v1).FieldMetadata} metadata Metadata about the birthday. * @property {string} text A free-form string representing the user's birthday. */ /** * @typedef BraggingRights * @memberOf! people(v1) * @type object * @property {people(v1).FieldMetadata} metadata Metadata about the bragging rights. * @property {string} value The bragging rights; for example, `climbed mount everest`. */ /** * @typedef ContactGroup * @memberOf! people(v1) * @type object * @property {string} etag The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the resource. Used for web cache validation. * @property {string} formattedName The read-only name translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale for system groups names. Group names set by the owner are the same as name. * @property {string} groupType The read-only contact group type. * @property {integer} memberCount The total number of contacts in the group irrespective of max members in specified in the request. * @property {string[]} memberResourceNames The list of contact person resource names that are members of the contact group. The field is not populated for LIST requests and can only be updated through the [ModifyContactGroupMembers](/people/api/rest/v1/contactgroups/members/modify). * @property {people(v1).ContactGroupMetadata} metadata Metadata about the contact group. * @property {string} name The contact group name set by the group owner or a system provided name for system groups. * @property {string} resourceName The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/`<var>contact_group_id</var>. */ /** * @typedef ContactGroupMembership * @memberOf! people(v1) * @type object * @property {string} contactGroupId The contact group ID for the contact group membership. The contact group ID can be custom or predefined. Possible values include, but are not limited to, the following: * `myContacts` * `starred` * A numerical ID for user-created groups. */ /** * @typedef ContactGroupMetadata * @memberOf! people(v1) * @type object * @property {boolean} deleted True if the contact group resource has been deleted. Populated only for [`ListContactGroups`](/people/api/rest/v1/contactgroups/list) requests that include a sync token. * @property {string} updateTime The time the group was last updated. */ /** * @typedef ContactGroupResponse * @memberOf! people(v1) * @type object * @property {people(v1).ContactGroup} contactGroup The contact group. * @property {string} requestedResourceName The original requested resource name. * @property {people(v1).Status} status The status of the response. */ /** * @typedef CoverPhoto * @memberOf! people(v1) * @type object * @property {boolean} default True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo. * @property {people(v1).FieldMetadata} metadata Metadata about the cover photo. * @property {string} url The URL of the cover photo. */ /** * @typedef CreateContactGroupRequest * @memberOf! people(v1) * @type object * @property {people(v1).ContactGroup} contactGroup The contact group to create. */ /** * @typedef Date * @memberOf! people(v1) * @type object * @property {integer} day Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant. * @property {integer} month Month of year. Must be from 1 to 12. * @property {integer} year Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year. */ /** * @typedef DomainMembership * @memberOf! people(v1) * @type object * @property {boolean} inViewerDomain True if the person is in the viewer's Google Apps domain. */ /** * @typedef EmailAddress * @memberOf! people(v1) * @type object * @property {string} displayName The display name of the email. * @property {string} formattedType The read-only type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. * @property {people(v1).FieldMetadata} metadata Metadata about the email address. * @property {string} type The type of the email address. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `other` * @property {string} value The email address. */ /** * @typedef Empty * @memberOf! people(v1) * @type object */ /** * @typedef Event * @memberOf! people(v1) * @type object * @property {people(v1).Date} date The date of the event. * @property {string} formattedType The read-only type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. * @property {people(v1).FieldMetadata} metadata Metadata about the event. * @property {string} type The type of the event. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `anniversary` * `other` */ /** * @typedef FieldMetadata * @memberOf! people(v1) * @type object * @property {boolean} primary True if the field is the primary field; false if the field is a secondary field. * @property {people(v1).Source} source The source of the field. * @property {boolean} verified True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person. */ /** * @typedef Gender * @memberOf! people(v1) * @type object * @property {string} formattedValue The read-only value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. * @property {people(v1).FieldMetadata} metadata Metadata about the gender. * @property {string} value The gender for the person. The gender can be custom or predefined. Possible values include, but are not limited to, the following: * `male` * `female` * `other` * `unknown` */ /** * @typedef GetPeopleResponse * @memberOf! people(v1) * @type object * @property {people(v1).PersonResponse[]} responses The response for each requested resource name. */ /** * @typedef ImClient * @memberOf! people(v1) * @type object * @property {string} formattedProtocol The read-only protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. * @property {string} formattedType The read-only type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. * @property {people(v1).FieldMetadata} metadata Metadata about the IM client. * @property {string} protocol The protocol of the IM client. The protocol can be custom or predefined. Possible values include, but are not limited to, the following: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting` * @property {string} type The type of the IM client. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `other` * @property {string} username The user name used in the IM client. */ /** * @typedef Interest * @memberOf! people(v1) * @type object * @property {people(v1).FieldMetadata} metadata Metadata about the interest. * @property {string} value The interest; for example, `stargazing`. */ /** * @typedef ListConnectionsResponse * @memberOf! people(v1) * @type object * @property {people(v1).Person[]} connections The list of people that the requestor is connected to. * @property {string} nextPageToken The token that can be used to retrieve the next page of results. * @property {string} nextSyncToken The token that can be used to retrieve changes since the last request. * @property {integer} totalItems The total number of items in the list without pagination. * @property {integer} totalPeople **DEPRECATED** (Please use totalItems) The total number of people in the list without pagination. */ /** * @typedef ListContactGroupsResponse * @memberOf! people(v1) * @type object * @property {people(v1).ContactGroup[]} contactGroups The list of contact groups. Members of the contact groups are not populated. * @property {string} nextPageToken The token that can be used to retrieve the next page of results. * @property {string} nextSyncToken The token that can be used to retrieve changes since the last request. * @property {integer} totalItems The total number of items in the list without pagination. */ /** * @typedef Locale * @memberOf! people(v1) * @type object * @property {people(v1).FieldMetadata} metadata Metadata about the locale. * @property {string} value The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale. */ /** * @typedef Membership * @memberOf! people(v1) * @type object * @property {people(v1).ContactGroupMembership} contactGroupMembership The contact group membership. * @property {people(v1).DomainMembership} domainMembership The domain membership. * @property {people(v1).FieldMetadata} metadata Metadata about the membership. */ /** * @typedef ModifyContactGroupMembersRequest * @memberOf! people(v1) * @type object * @property {string[]} resourceNamesToAdd The resource names of the contact people to add in the form of in the form `people/`<var>person_id</var>. * @property {string[]} resourceNamesToRemove The resource names of the contact people to remove in the form of in the form of `people/`<var>person_id</var>. */ /** * @typedef ModifyContactGroupMembersResponse * @memberOf! people(v1) * @type object * @property {string[]} notFoundResourceNames The contact people resource names that were not found. */ /** * @typedef Name * @memberOf! people(v1) * @type object * @property {string} displayName The read-only display name formatted according to the locale specified by the viewer's account or the `Accept-Language` HTTP header. * @property {string} displayNameLastFirst The read-only display name with the last name first formatted according to the locale specified by the viewer's account or the `Accept-Language` HTTP header. * @property {string} familyName The family name. * @property {string} givenName The given name. * @property {string} honorificPrefix The honorific prefixes, such as `Mrs.` or `Dr.` * @property {string} honorificSuffix The honorific suffixes, such as `Jr.` * @property {people(v1).FieldMetadata} metadata Metadata about the name. * @property {string} middleName The middle name(s). * @property {string} phoneticFamilyName The family name spelled as it sounds. * @property {string} phoneticFullName The full name spelled as it sounds. * @property {string} phoneticGivenName The given name spelled as it sounds. * @property {string} phoneticHonorificPrefix The honorific prefixes spelled as they sound. * @property {string} phoneticHonorificSuffix The honorific suffixes spelled as they sound. * @property {string} phoneticMiddleName The middle name(s) spelled as they sound. */ /** * @typedef Nickname * @memberOf! people(v1) * @type object * @property {people(v1).FieldMetadata} metadata Metadata about the nickname. * @property {string} type The type of the nickname. * @property {string} value The nickname. */ /** * @typedef Occupation * @memberOf! people(v1) * @type object * @property {people(v1).FieldMetadata} metadata Metadata about the occupation. * @property {string} value The occupation; for example, `carpenter`. */ /** * @typedef Organization * @memberOf! people(v1) * @type object * @property {boolean} current True if the organization is the person's current organization; false if the organization is a past organization. * @property {string} department The person's department at the organization. * @property {string} domain The domain name associated with the organization; for example, `google.com`. * @property {people(v1).Date} endDate The end date when the person left the organization. * @property {string} formattedType The read-only type of the organization translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. * @property {string} jobDescription The person's job description at the organization. * @property {string} location The location of the organization office the person works at. * @property {people(v1).FieldMetadata} metadata Metadata about the organization. * @property {string} name The name of the organization. * @property {string} phoneticName The phonetic name of the organization. * @property {people(v1).Date} startDate The start date when the person joined the organization. * @property {string} symbol The symbol associated with the organization; for example, a stock ticker symbol, abbreviation, or acronym. * @property {string} title The person's job title at the organization. * @property {string} type The type of the organization. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `work` * `school` */ /** * @typedef Person * @memberOf! people(v1) * @type object * @property {people(v1).Address[]} addresses The person's street addresses. * @property {string} ageRange **DEPRECATED** (Please use `person.ageRanges` instead)** The person's read-only age range. * @property {people(v1).AgeRangeType[]} ageRanges The person's read-only age ranges. * @property {people(v1).Biography[]} biographies The person's biographies. * @property {people(v1).Birthday[]} birthdays The person's birthdays. * @property {people(v1).BraggingRights[]} braggingRights The person's bragging rights. * @property {people(v1).CoverPhoto[]} coverPhotos The person's read-only cover photos. * @property {people(v1).EmailAddress[]} emailAddresses The person's email addresses. * @property {string} etag The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the resource. Used for web cache validation. * @property {people(v1).Event[]} events The person's events. * @property {people(v1).Gender[]} genders The person's genders. * @property {people(v1).ImClient[]} imClients The person's instant messaging clients. * @property {people(v1).Interest[]} interests The person's interests. * @property {people(v1).Locale[]} locales The person's locale preferences. * @property {people(v1).Membership[]} memberships The person's read-only group memberships. * @property {people(v1).PersonMetadata} metadata Read-only metadata about the person. * @property {people(v1).Name[]} names The person's names. * @property {people(v1).Nickname[]} nicknames The person's nicknames. * @property {people(v1).Occupation[]} occupations The person's occupations. * @property {people(v1).Organization[]} organizations The person's past or current organizations. * @property {people(v1).PhoneNumber[]} phoneNumbers The person's phone numbers. * @property {people(v1).Photo[]} photos The person's read-only photos. * @property {people(v1).Relation[]} relations The person's relations. * @property {people(v1).RelationshipInterest[]} relationshipInterests The person's read-only relationship interests. * @property {people(v1).RelationshipStatus[]} relationshipStatuses The person's read-only relationship statuses. * @property {people(v1).Residence[]} residences The person's residences. * @property {string} resourceName The resource name for the person, assigned by the server. An ASCII string with a max length of 27 characters, in the form of `people/`<var>person_id</var>. * @property {people(v1).Skill[]} skills The person's skills. * @property {people(v1).Tagline[]} taglines The person's read-only taglines. * @property {people(v1).Url[]} urls The person's associated URLs. * @property {people(v1).UserDefined[]} userDefined The person's user defined data. */ /** * @typedef PersonMetadata * @memberOf! people(v1) * @type object * @property {boolean} deleted True if the person resource has been deleted. Populated only for [`connections.list`](/people/api/rest/v1/people.connections/list) requests that include a sync token. * @property {string[]} linkedPeopleResourceNames Resource names of people linked to this resource. * @property {string} objectType **DEPRECATED** (Please use `person.metadata.sources.profileMetadata.objectType` instead) The type of the person object. * @property {string[]} previousResourceNames Any former resource names this person has had. Populated only for [`connections.list`](/people/api/rest/v1/people.connections/list) requests that include a sync token. The resource name may change when adding or removing fields that link a contact and profile such as a verified email, verified phone number, or profile URL. * @property {people(v1).Source[]} sources The sources of data for the person. */ /** * @typedef PersonResponse * @memberOf! people(v1) * @type object * @property {integer} httpStatusCode **DEPRECATED** (Please use status instead) [HTTP 1.1 status code] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html). * @property {people(v1).Person} person The person. * @property {string} requestedResourceName The original requested resource name. May be different than the resource name on the returned person. The resource name can change when adding or removing fields that link a contact and profile such as a verified email, verified phone number, or a profile URL. * @property {people(v1).Status} status The status of the response. */ /** * @typedef PhoneNumber * @memberOf! people(v1) * @type object * @property {string} canonicalForm The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number. * @property {string} formattedType The read-only type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. * @property {people(v1).FieldMetadata} metadata Metadata about the phone number. * @property {string} type The type of the phone number. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other` * @property {string} value The phone number. */ /** * @typedef Photo * @memberOf! people(v1) * @type object * @property {boolean} default True if the photo is a default photo; false if the photo is a user-provided photo. * @property {people(v1).FieldMetadata} metadata Metadata about the photo. * @property {string} url The URL of the photo. You can change the desired size by appending a query parameter `sz=`<var>size</var> at the end of the url. Example: `https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50` */ /** * @typedef ProfileMetadata * @memberOf! people(v1) * @type object * @property {string} objectType The profile object type. * @property {string[]} userTypes The user types. */ /** * @typedef Relation * @memberOf! people(v1) * @type object * @property {string} formattedType The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. * @property {people(v1).FieldMetadata} metadata Metadata about the relation. * @property {string} person The name of the other person this relation refers to. * @property {string} type The person's relation to the other person. The type can be custom or predefined. Possible values include, but are not limited to, the following values: * `spouse` * `child` * `mother` * `father` * `parent` * `brother` * `sister` * `friend` * `relative` * `domesticPartner` * `manager` * `assistant` * `referredBy` * `partner` */ /** * @typedef RelationshipInterest * @memberOf! people(v1) * @type object * @property {string} formattedValue The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header. * @property {people(v1).FieldMetadata} metadata Metadata about the relationship interest. * @property {string} value The kind of relationship the person is looking for. The value can be custom or predefined. Possible values include, but are not limited to, the following values: * `friend` * `date` * `relationship` * `networking` */ /** * @typedef RelationshipStatus * @memberOf! people(v1) * @type object * @property {string} formattedValue The read-only value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. * @property {people(v1).FieldMetadata} metadata Metadata about the relationship status. * @property {string} value The relationship status. The value can be custom or predefined. Possible values include, but are not limited to, the following: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion` */ /** * @typedef Residence * @memberOf! people(v1) * @type object * @property {boolean} current True if the residence is the person's current residence; false if the residence is a past residence. * @property {people(v1).FieldMetadata} metadata Metadata about the residence. * @property {string} value The address of the residence. */ /** * @typedef Skill * @memberOf! people(v1) * @type object * @property {people(v1).FieldMetadata} metadata Metadata about the skill. * @property {string} value The skill; for example, `underwater basket weaving`. */ /** * @typedef Source * @memberOf! people(v1) * @type object * @property {string} etag **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation. * @property {string} id The unique identifier within the source type generated by the server. * @property {people(v1).ProfileMetadata} profileMetadata **Only populated in `person.metadata.sources`.** Metadata about a source of type PROFILE. * @property {string} type The source type. * @property {string} updateTime **Only populated in `person.metadata.sources`.** Last update timestamp of this source. */ /** * @typedef Status * @memberOf! people(v1) * @type object * @property {integer} code The status code, which should be an enum value of google.rpc.Code. * @property {object[]} details A list of messages that carry the error details. There is a common set of message types for APIs to use. * @property {string} message A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */ /** * @typedef Tagline * @memberOf! people(v1) * @type object * @property {people(v1).FieldMetadata} metadata Metadata about the tagline. * @property {string} value The tagline. */ /** * @typedef UpdateContactGroupRequest * @memberOf! people(v1) * @type object * @property {people(v1).ContactGroup} contactGroup The contact group to update. */ /** * @typedef Url * @memberOf! people(v1) * @type object * @property {string} formattedType The read-only type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. * @property {people(v1).FieldMetadata} metadata Metadata about the URL. * @property {string} type The type of the URL. The type can be custom or predefined. Possible values include, but are not limited to, the following: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Google+ application. * `other` * @property {string} value The URL. */ /** * @typedef UserDefined * @memberOf! people(v1) * @type object * @property {string} key The end user specified key of the user defined data. * @property {people(v1).FieldMetadata} metadata Metadata about the user defined data. * @property {string} value The end user specified value of the user defined data. */ export = People;