blob: 21711c6f949a8bba2a7d61d66363e64da9ccee8a [file] [log] [blame]
{
"ownerName": "Google",
"resources": {
"people": {
"methods": {
"getBatchGet": {
"flatPath": "v1/people:batchGet",
"path": "v1/people:batchGet",
"id": "people.people.getBatchGet",
"description": "Provides information about a list of specific people by specifying a list\nof requested resource names. Use `people/me` to indicate the authenticated\nuser.\n\u003cbr\u003e\nThe request throws a 400 error if 'personFields' is not specified.",
"response": {
"$ref": "GetPeopleResponse"
},
"parameterOrder": [],
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/contacts",
"https://www.googleapis.com/auth/contacts.readonly",
"https://www.googleapis.com/auth/plus.login",
"https://www.googleapis.com/auth/user.addresses.read",
"https://www.googleapis.com/auth/user.birthday.read",
"https://www.googleapis.com/auth/user.emails.read",
"https://www.googleapis.com/auth/user.phonenumbers.read",
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile"
],
"parameters": {
"personFields": {
"location": "query",
"description": "**Required.** A field mask to restrict which fields on each person are\nreturned. Valid values are:\n\n* addresses\n* ageRanges\n* biographies\n* birthdays\n* braggingRights\n* coverPhotos\n* emailAddresses\n* events\n* genders\n* imClients\n* interests\n* locales\n* memberships\n* metadata\n* names\n* nicknames\n* occupations\n* organizations\n* phoneNumbers\n* photos\n* relations\n* relationshipInterests\n* relationshipStatuses\n* residences\n* skills\n* taglines\n* urls",
"format": "google-fieldmask",
"type": "string"
},
"requestMask.includeField": {
"description": "**Required.** Comma-separated list of person fields to be included in the\nresponse. Each path should start with `person.`: for example,\n`person.names` or `person.photos`.",
"format": "google-fieldmask",
"type": "string",
"location": "query"
},
"resourceNames": {
"description": "The resource names of the people to provide information about.\n\n- To get information about the authenticated user, specify `people/me`.\n- To get information about a google account, specify\n `people/`\u003cvar\u003eaccount_id\u003c/var\u003e.\n- To get information about a contact, specify the resource name that\n identifies the contact as returned by\n[`people.connections.list`](/people/api/rest/v1/people.connections/list).\n\nYou can include up to 50 resource names in one request.",
"type": "string",
"repeated": true,
"location": "query"
}
}
},
"get": {
"description": "Provides information about a person by specifying a resource name. Use\n`people/me` to indicate the authenticated user.\n\u003cbr\u003e\nThe request throws a 400 error if 'personFields' is not specified.",
"httpMethod": "GET",
"parameterOrder": [
"resourceName"
],
"response": {
"$ref": "Person"
},
"parameters": {
"resourceName": {
"location": "path",
"description": "The resource name of the person to provide information about.\n\n- To get information about the authenticated user, specify `people/me`.\n- To get information about a google account, specify\n `people/`\u003cvar\u003eaccount_id\u003c/var\u003e.\n- To get information about a contact, specify the resource name that\n identifies the contact as returned by\n[`people.connections.list`](/people/api/rest/v1/people.connections/list).",
"required": true,
"type": "string",
"pattern": "^people/[^/]+$"
},
"personFields": {
"location": "query",
"description": "**Required.** A field mask to restrict which fields on the person are\nreturned. Valid values are:\n\n* addresses\n* ageRanges\n* biographies\n* birthdays\n* braggingRights\n* coverPhotos\n* emailAddresses\n* events\n* genders\n* imClients\n* interests\n* locales\n* memberships\n* metadata\n* names\n* nicknames\n* occupations\n* organizations\n* phoneNumbers\n* photos\n* relations\n* relationshipInterests\n* relationshipStatuses\n* residences\n* skills\n* taglines\n* urls",
"format": "google-fieldmask",
"type": "string"
},
"requestMask.includeField": {
"location": "query",
"description": "**Required.** Comma-separated list of person fields to be included in the\nresponse. Each path should start with `person.`: for example,\n`person.names` or `person.photos`.",
"format": "google-fieldmask",
"type": "string"
}
},
"scopes": [
"https://www.googleapis.com/auth/contacts",
"https://www.googleapis.com/auth/contacts.readonly",
"https://www.googleapis.com/auth/plus.login",
"https://www.googleapis.com/auth/user.addresses.read",
"https://www.googleapis.com/auth/user.birthday.read",
"https://www.googleapis.com/auth/user.emails.read",
"https://www.googleapis.com/auth/user.phonenumbers.read",
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile"
],
"flatPath": "v1/people/{peopleId}",
"id": "people.people.get",
"path": "v1/{+resourceName}"
},
"updateContact": {
"request": {
"$ref": "Person"
},
"description": "Update contact data for an existing contact person. Any non-contact data\nwill not be modified.\n\nThe request throws a 400 error if `updatePersonFields` is not specified.\n\u003cbr\u003e\nThe request throws a 400 error if `person.metadata.sources` is not\nspecified for the contact to be updated.\n\u003cbr\u003e\nThe request throws a 412 error if `person.metadata.sources.etag` is\ndifferent than the contact's etag, which indicates the contact has changed\nsince its data was read. Clients should get the latest person and re-apply\ntheir updates to the latest person.",
"httpMethod": "PATCH",
"parameterOrder": [
"resourceName"
],
"response": {
"$ref": "Person"
},
"parameters": {
"updatePersonFields": {
"description": "**Required.** A field mask to restrict which fields on the person are\nupdated. Valid values are:\n\n* addresses\n* biographies\n* birthdays\n* braggingRights\n* emailAddresses\n* events\n* genders\n* imClients\n* interests\n* locales\n* names\n* nicknames\n* occupations\n* organizations\n* phoneNumbers\n* relations\n* residences\n* skills\n* urls",
"format": "google-fieldmask",
"type": "string",
"location": "query"
},
"resourceName": {
"location": "path",
"description": "The resource name for the person, assigned by the server. An ASCII string\nwith a max length of 27 characters, in the form of\n`people/`\u003cvar\u003eperson_id\u003c/var\u003e.",
"required": true,
"type": "string",
"pattern": "^people/[^/]+$"
}
},
"scopes": [
"https://www.googleapis.com/auth/contacts"
],
"flatPath": "v1/people/{peopleId}:updateContact",
"id": "people.people.updateContact",
"path": "v1/{+resourceName}:updateContact"
},
"createContact": {
"flatPath": "v1/people:createContact",
"path": "v1/people:createContact",
"id": "people.people.createContact",
"description": "Create a new contact and return the person resource for that contact.",
"request": {
"$ref": "Person"
},
"response": {
"$ref": "Person"
},
"parameterOrder": [],
"httpMethod": "POST",
"scopes": [
"https://www.googleapis.com/auth/contacts"
],
"parameters": {
"parent": {
"description": "The resource name of the owning person resource.",
"type": "string",
"location": "query"
}
}
},
"deleteContact": {
"flatPath": "v1/people/{peopleId}:deleteContact",
"path": "v1/{+resourceName}:deleteContact",
"id": "people.people.deleteContact",
"description": "Delete a contact person. Any non-contact data will not be deleted.",
"response": {
"$ref": "Empty"
},
"parameterOrder": [
"resourceName"
],
"httpMethod": "DELETE",
"scopes": [
"https://www.googleapis.com/auth/contacts"
],
"parameters": {
"resourceName": {
"description": "The resource name of the contact to delete.",
"required": true,
"type": "string",
"pattern": "^people/[^/]+$",
"location": "path"
}
}
}
},
"resources": {
"connections": {
"methods": {
"list": {
"response": {
"$ref": "ListConnectionsResponse"
},
"parameterOrder": [
"resourceName"
],
"httpMethod": "GET",
"parameters": {
"syncToken": {
"location": "query",
"description": "A sync token, returned by a previous call to `people.connections.list`.\nOnly resources changed since the sync token was created will be returned.",
"type": "string"
},
"personFields": {
"description": "**Required.** A field mask to restrict which fields on each person are\nreturned. Valid values are:\n\n* addresses\n* ageRanges\n* biographies\n* birthdays\n* braggingRights\n* coverPhotos\n* emailAddresses\n* events\n* genders\n* imClients\n* interests\n* locales\n* memberships\n* metadata\n* names\n* nicknames\n* occupations\n* organizations\n* phoneNumbers\n* photos\n* relations\n* relationshipInterests\n* relationshipStatuses\n* residences\n* skills\n* taglines\n* urls",
"format": "google-fieldmask",
"type": "string",
"location": "query"
},
"sortOrder": {
"location": "query",
"enum": [
"LAST_MODIFIED_ASCENDING",
"FIRST_NAME_ASCENDING",
"LAST_NAME_ASCENDING"
],
"description": "The order in which the connections should be sorted. Defaults to\n`LAST_MODIFIED_ASCENDING`.",
"type": "string"
},
"requestSyncToken": {
"description": "Whether the response should include a sync token, which can be used to get\nall changes since the last request.",
"type": "boolean",
"location": "query"
},
"resourceName": {
"description": "The resource name to return connections for. Only `people/me` is valid.",
"required": true,
"type": "string",
"pattern": "^people/[^/]+$",
"location": "path"
},
"pageToken": {
"description": "The token of the page to be returned.",
"type": "string",
"location": "query"
},
"requestMask.includeField": {
"location": "query",
"description": "**Required.** Comma-separated list of person fields to be included in the\nresponse. Each path should start with `person.`: for example,\n`person.names` or `person.photos`.",
"format": "google-fieldmask",
"type": "string"
},
"pageSize": {
"location": "query",
"description": "The number of connections to include in the response. Valid values are\nbetween 1 and 2000, inclusive. Defaults to 100.",
"format": "int32",
"type": "integer"
}
},
"scopes": [
"https://www.googleapis.com/auth/contacts",
"https://www.googleapis.com/auth/contacts.readonly"
],
"flatPath": "v1/people/{peopleId}/connections",
"path": "v1/{+resourceName}/connections",
"id": "people.people.connections.list",
"description": "Provides a list of the authenticated user's contacts merged with any\nconnected profiles.\n\u003cbr\u003e\nThe request throws a 400 error if 'personFields' is not specified."
}
}
}
}
},
"contactGroups": {
"methods": {
"get": {
"flatPath": "v1/contactGroups/{contactGroupsId}",
"path": "v1/{+resourceName}",
"id": "people.contactGroups.get",
"description": "Get a specific contact group owned by the authenticated user by specifying\na contact group resource name.",
"response": {
"$ref": "ContactGroup"
},
"parameterOrder": [
"resourceName"
],
"httpMethod": "GET",
"parameters": {
"maxMembers": {
"location": "query",
"description": "Specifies the maximum number of members to return.",
"format": "int32",
"type": "integer"
},
"resourceName": {
"location": "path",
"description": "The resource name of the contact group to get.",
"required": true,
"type": "string",
"pattern": "^contactGroups/[^/]+$"
}
},
"scopes": [
"https://www.googleapis.com/auth/contacts",
"https://www.googleapis.com/auth/contacts.readonly"
]
},
"update": {
"flatPath": "v1/contactGroups/{contactGroupsId}",
"path": "v1/{+resourceName}",
"id": "people.contactGroups.update",
"request": {
"$ref": "UpdateContactGroupRequest"
},
"description": "Update the name of an existing contact group owned by the authenticated\nuser.",
"response": {
"$ref": "ContactGroup"
},
"parameterOrder": [
"resourceName"
],
"httpMethod": "PUT",
"parameters": {
"resourceName": {
"location": "path",
"description": "The resource name for the contact group, assigned by the server. An ASCII\nstring, in the form of `contactGroups/`\u003cvar\u003econtact_group_id\u003c/var\u003e.",
"required": true,
"type": "string",
"pattern": "^contactGroups/[^/]+$"
}
},
"scopes": [
"https://www.googleapis.com/auth/contacts"
]
},
"batchGet": {
"description": "Get a list of contact groups owned by the authenticated user by specifying\na list of contact group resource names.",
"response": {
"$ref": "BatchGetContactGroupsResponse"
},
"parameterOrder": [],
"httpMethod": "GET",
"parameters": {
"maxMembers": {
"location": "query",
"description": "Specifies the maximum number of members to return for each group.",
"format": "int32",
"type": "integer"
},
"resourceNames": {
"description": "The resource names of the contact groups to get.",
"type": "string",
"repeated": true,
"location": "query"
}
},
"scopes": [
"https://www.googleapis.com/auth/contacts",
"https://www.googleapis.com/auth/contacts.readonly"
],
"flatPath": "v1/contactGroups:batchGet",
"path": "v1/contactGroups:batchGet",
"id": "people.contactGroups.batchGet"
},
"delete": {
"description": "Delete an existing contact group owned by the authenticated user by\nspecifying a contact group resource name.",
"httpMethod": "DELETE",
"parameterOrder": [
"resourceName"
],
"response": {
"$ref": "Empty"
},
"parameters": {
"resourceName": {
"location": "path",
"description": "The resource name of the contact group to delete.",
"required": true,
"type": "string",
"pattern": "^contactGroups/[^/]+$"
},
"deleteContacts": {
"description": "Set to true to also delete the contacts in the specified group.",
"type": "boolean",
"location": "query"
}
},
"scopes": [
"https://www.googleapis.com/auth/contacts"
],
"flatPath": "v1/contactGroups/{contactGroupsId}",
"id": "people.contactGroups.delete",
"path": "v1/{+resourceName}"
},
"list": {
"description": "List all contact groups owned by the authenticated user. Members of the\ncontact groups are not populated.",
"httpMethod": "GET",
"parameterOrder": [],
"response": {
"$ref": "ListContactGroupsResponse"
},
"parameters": {
"syncToken": {
"description": "A sync token, returned by a previous call to `contactgroups.list`.\nOnly resources changed since the sync token was created will be returned.",
"type": "string",
"location": "query"
},
"pageToken": {
"location": "query",
"description": "The next_page_token value returned from a previous call to\n[ListContactGroups](/people/api/rest/v1/contactgroups/list).\nRequests the next page of resources.",
"type": "string"
},
"pageSize": {
"location": "query",
"description": "The maximum number of resources to return.",
"format": "int32",
"type": "integer"
}
},
"scopes": [
"https://www.googleapis.com/auth/contacts",
"https://www.googleapis.com/auth/contacts.readonly"
],
"flatPath": "v1/contactGroups",
"id": "people.contactGroups.list",
"path": "v1/contactGroups"
},
"create": {
"flatPath": "v1/contactGroups",
"path": "v1/contactGroups",
"id": "people.contactGroups.create",
"request": {
"$ref": "CreateContactGroupRequest"
},
"description": "Create a new contact group owned by the authenticated user.",
"response": {
"$ref": "ContactGroup"
},
"parameterOrder": [],
"httpMethod": "POST",
"parameters": {},
"scopes": [
"https://www.googleapis.com/auth/contacts"
]
}
},
"resources": {
"members": {
"methods": {
"modify": {
"response": {
"$ref": "ModifyContactGroupMembersResponse"
},
"parameterOrder": [
"resourceName"
],
"httpMethod": "POST",
"parameters": {
"resourceName": {
"description": "The resource name of the contact group to modify.",
"required": true,
"type": "string",
"pattern": "^contactGroups/[^/]+$",
"location": "path"
}
},
"scopes": [
"https://www.googleapis.com/auth/contacts"
],
"flatPath": "v1/contactGroups/{contactGroupsId}/members:modify",
"path": "v1/{+resourceName}/members:modify",
"id": "people.contactGroups.members.modify",
"request": {
"$ref": "ModifyContactGroupMembersRequest"
},
"description": "Modify the members of a contact group owned by the authenticated user."
}
}
}
}
}
},
"parameters": {
"upload_protocol": {
"location": "query",
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"type": "string"
},
"prettyPrint": {
"description": "Returns response with indentations and line breaks.",
"type": "boolean",
"default": "true",
"location": "query"
},
"uploadType": {
"location": "query",
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"type": "string",
"location": "query"
},
"$.xgafv": {
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"enum": [
"1",
"2"
],
"description": "V1 error format.",
"type": "string"
},
"callback": {
"location": "query",
"description": "JSONP",
"type": "string"
},
"alt": {
"enum": [
"json",
"media",
"proto"
],
"type": "string",
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"description": "Data format for response.",
"default": "json"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"type": "string",
"location": "query"
},
"access_token": {
"description": "OAuth access token.",
"type": "string",
"location": "query"
},
"quotaUser": {
"location": "query",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"type": "string"
},
"pp": {
"location": "query",
"description": "Pretty-print response.",
"type": "boolean",
"default": "true"
},
"oauth_token": {
"location": "query",
"description": "OAuth 2.0 token for the current user.",
"type": "string"
},
"bearer_token": {
"description": "OAuth bearer token.",
"type": "string",
"location": "query"
}
},
"version": "v1",
"baseUrl": "https://people.googleapis.com/",
"servicePath": "",
"description": "Provides access to information about profiles and contacts.",
"kind": "discovery#restDescription",
"basePath": "",
"revision": "20171012",
"documentationLink": "https://developers.google.com/people/",
"id": "people:v1",
"discoveryVersion": "v1",
"version_module": true,
"schemas": {
"ImClient": {
"description": "A person's instant messaging client.",
"type": "object",
"properties": {
"formattedProtocol": {
"description": "The read-only protocol of the IM client formatted in the viewer's account\nlocale or the `Accept-Language` HTTP header locale.",
"type": "string"
},
"formattedType": {
"description": "The read-only type of the IM client translated and formatted in the\nviewer's account locale or the `Accept-Language` HTTP header locale.",
"type": "string"
},
"metadata": {
"description": "Metadata about the IM client.",
"$ref": "FieldMetadata"
},
"type": {
"description": "The type of the IM client. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `other`",
"type": "string"
},
"protocol": {
"description": "The protocol of the IM client. The protocol can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `aim`\n* `msn`\n* `yahoo`\n* `skype`\n* `qq`\n* `googleTalk`\n* `icq`\n* `jabber`\n* `netMeeting`",
"type": "string"
},
"username": {
"description": "The user name used in the IM client.",
"type": "string"
}
},
"id": "ImClient"
},
"DomainMembership": {
"description": "A Google Apps Domain membership.",
"type": "object",
"properties": {
"inViewerDomain": {
"description": "True if the person is in the viewer's Google Apps domain.",
"type": "boolean"
}
},
"id": "DomainMembership"
},
"Membership": {
"description": "A person's read-only membership in a group.",
"type": "object",
"properties": {
"contactGroupMembership": {
"$ref": "ContactGroupMembership",
"description": "The contact group membership."
},
"domainMembership": {
"$ref": "DomainMembership",
"description": "The domain membership."
},
"metadata": {
"description": "Metadata about the membership.",
"$ref": "FieldMetadata"
}
},
"id": "Membership"
},
"BatchGetContactGroupsResponse": {
"description": "The response to a batch get contact groups request.",
"type": "object",
"properties": {
"responses": {
"description": "The list of responses for each requested contact group resource.",
"type": "array",
"items": {
"$ref": "ContactGroupResponse"
}
}
},
"id": "BatchGetContactGroupsResponse"
},
"RelationshipStatus": {
"description": "A person's read-only relationship status.",
"type": "object",
"properties": {
"formattedValue": {
"description": "The read-only value of the relationship status translated and formatted in\nthe viewer's account locale or the `Accept-Language` HTTP header locale.",
"type": "string"
},
"metadata": {
"description": "Metadata about the relationship status.",
"$ref": "FieldMetadata"
},
"value": {
"description": "The relationship status. The value can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `single`\n* `inARelationship`\n* `engaged`\n* `married`\n* `itsComplicated`\n* `openRelationship`\n* `widowed`\n* `inDomesticPartnership`\n* `inCivilUnion`",
"type": "string"
}
},
"id": "RelationshipStatus"
},
"BraggingRights": {
"description": "A person's bragging rights.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the bragging rights.",
"$ref": "FieldMetadata"
},
"value": {
"description": "The bragging rights; for example, `climbed mount everest`.",
"type": "string"
}
},
"id": "BraggingRights"
},
"Organization": {
"description": "A person's past or current organization. Overlapping date ranges are\npermitted.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the organization.",
"$ref": "FieldMetadata"
},
"title": {
"description": "The person's job title at the organization.",
"type": "string"
},
"location": {
"description": "The location of the organization office the person works at.",
"type": "string"
},
"current": {
"description": "True if the organization is the person's current organization;\nfalse if the organization is a past organization.",
"type": "boolean"
},
"formattedType": {
"description": "The read-only type of the organization translated and formatted in the\nviewer's account locale or the `Accept-Language` HTTP header locale.",
"type": "string"
},
"startDate": {
"description": "The start date when the person joined the organization.",
"$ref": "Date"
},
"domain": {
"description": "The domain name associated with the organization; for example, `google.com`.",
"type": "string"
},
"department": {
"description": "The person's department at the organization.",
"type": "string"
},
"type": {
"description": "The type of the organization. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `work`\n* `school`",
"type": "string"
},
"phoneticName": {
"description": "The phonetic name of the organization.",
"type": "string"
},
"jobDescription": {
"description": "The person's job description at the organization.",
"type": "string"
},
"endDate": {
"$ref": "Date",
"description": "The end date when the person left the organization."
},
"symbol": {
"description": "The symbol associated with the organization; for example, a stock ticker\nsymbol, abbreviation, or acronym.",
"type": "string"
},
"name": {
"description": "The name of the organization.",
"type": "string"
}
},
"id": "Organization"
},
"AgeRangeType": {
"description": "A person's age range.",
"type": "object",
"properties": {
"ageRange": {
"description": "The age range.",
"type": "string",
"enumDescriptions": [
"Unspecified.",
"Younger than eighteen.",
"Between eighteen and twenty.",
"Twenty-one and older."
],
"enum": [
"AGE_RANGE_UNSPECIFIED",
"LESS_THAN_EIGHTEEN",
"EIGHTEEN_TO_TWENTY",
"TWENTY_ONE_OR_OLDER"
]
},
"metadata": {
"$ref": "FieldMetadata",
"description": "Metadata about the age range."
}
},
"id": "AgeRangeType"
},
"ListContactGroupsResponse": {
"description": "The response to a list contact groups request.",
"type": "object",
"properties": {
"contactGroups": {
"description": "The list of contact groups. Members of the contact groups are not\npopulated.",
"type": "array",
"items": {
"$ref": "ContactGroup"
}
},
"nextPageToken": {
"description": "The token that can be used to retrieve the next page of results.",
"type": "string"
},
"totalItems": {
"description": "The total number of items in the list without pagination.",
"format": "int32",
"type": "integer"
},
"nextSyncToken": {
"description": "The token that can be used to retrieve changes since the last request.",
"type": "string"
}
},
"id": "ListContactGroupsResponse"
},
"PersonResponse": {
"description": "The response for a single person",
"type": "object",
"properties": {
"person": {
"description": "The person.",
"$ref": "Person"
},
"status": {
"$ref": "Status",
"description": "The status of the response."
},
"httpStatusCode": {
"description": "**DEPRECATED** (Please use status instead)\n\n[HTTP 1.1 status code]\n(http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).",
"format": "int32",
"type": "integer"
},
"requestedResourceName": {
"description": "The original requested resource name. May be different than the resource\nname on the returned person.\n\nThe resource name can change when adding or removing fields that link a\ncontact and profile such as a verified email, verified phone number, or a\nprofile URL.",
"type": "string"
}
},
"id": "PersonResponse"
},
"Relation": {
"description": "A person's relation to another person.",
"type": "object",
"properties": {
"metadata": {
"$ref": "FieldMetadata",
"description": "Metadata about the relation."
},
"type": {
"description": "The person's relation to the other person. The type can be custom or predefined.\nPossible values include, but are not limited to, the following values:\n\n* `spouse`\n* `child`\n* `mother`\n* `father`\n* `parent`\n* `brother`\n* `sister`\n* `friend`\n* `relative`\n* `domesticPartner`\n* `manager`\n* `assistant`\n* `referredBy`\n* `partner`",
"type": "string"
},
"person": {
"description": "The name of the other person this relation refers to.",
"type": "string"
},
"formattedType": {
"description": "The type of the relation translated and formatted in the viewer's account\nlocale or the locale specified in the Accept-Language HTTP header.",
"type": "string"
}
},
"id": "Relation"
},
"Occupation": {
"description": "A person's occupation.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the occupation.",
"$ref": "FieldMetadata"
},
"value": {
"description": "The occupation; for example, `carpenter`.",
"type": "string"
}
},
"id": "Occupation"
},
"ContactGroup": {
"description": "A contact group.",
"type": "object",
"properties": {
"resourceName": {
"description": "The resource name for the contact group, assigned by the server. An ASCII\nstring, in the form of `contactGroups/`\u003cvar\u003econtact_group_id\u003c/var\u003e.",
"type": "string"
},
"etag": {
"description": "The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the\nresource. Used for web cache validation.",
"type": "string"
},
"formattedName": {
"description": "The read-only name translated and formatted in the viewer's account locale\nor the `Accept-Language` HTTP header locale for system groups names.\nGroup names set by the owner are the same as name.",
"type": "string"
},
"groupType": {
"enumDescriptions": [
"Unspecified.",
"User defined contact group.",
"System defined contact group."
],
"enum": [
"GROUP_TYPE_UNSPECIFIED",
"USER_CONTACT_GROUP",
"SYSTEM_CONTACT_GROUP"
],
"description": "The read-only contact group type.",
"type": "string"
},
"name": {
"description": "The contact group name set by the group owner or a system provided name\nfor system groups.",
"type": "string"
},
"memberResourceNames": {
"description": "The list of contact person resource names that are members of the contact\ngroup. The field is not populated for LIST requests and can only be updated\nthrough the\n[ModifyContactGroupMembers](/people/api/rest/v1/contactgroups/members/modify).",
"type": "array",
"items": {
"type": "string"
}
},
"metadata": {
"$ref": "ContactGroupMetadata",
"description": "Metadata about the contact group."
},
"memberCount": {
"description": "The total number of contacts in the group irrespective of max members in\nspecified in the request.",
"format": "int32",
"type": "integer"
}
},
"id": "ContactGroup"
},
"Person": {
"description": "Information about a person merged from various data sources such as the\nauthenticated user's contacts and profile data.\n\nMost fields can have multiple items. The items in a field have no guaranteed\norder, but each non-empty field is guaranteed to have exactly one field with\n`metadata.primary` set to true.",
"type": "object",
"properties": {
"birthdays": {
"description": "The person's birthdays.",
"type": "array",
"items": {
"$ref": "Birthday"
}
},
"userDefined": {
"description": "The person's user defined data.",
"type": "array",
"items": {
"$ref": "UserDefined"
}
},
"locales": {
"description": "The person's locale preferences.",
"type": "array",
"items": {
"$ref": "Locale"
}
},
"relationshipInterests": {
"description": "The person's read-only relationship interests.",
"type": "array",
"items": {
"$ref": "RelationshipInterest"
}
},
"urls": {
"description": "The person's associated URLs.",
"type": "array",
"items": {
"$ref": "Url"
}
},
"nicknames": {
"description": "The person's nicknames.",
"type": "array",
"items": {
"$ref": "Nickname"
}
},
"names": {
"description": "The person's names.",
"type": "array",
"items": {
"$ref": "Name"
}
},
"relations": {
"description": "The person's relations.",
"type": "array",
"items": {
"$ref": "Relation"
}
},
"occupations": {
"description": "The person's occupations.",
"type": "array",
"items": {
"$ref": "Occupation"
}
},
"emailAddresses": {
"description": "The person's email addresses.",
"type": "array",
"items": {
"$ref": "EmailAddress"
}
},
"organizations": {
"description": "The person's past or current organizations.",
"type": "array",
"items": {
"$ref": "Organization"
}
},
"etag": {
"description": "The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the\nresource. Used for web cache validation.",
"type": "string"
},
"braggingRights": {
"description": "The person's bragging rights.",
"type": "array",
"items": {
"$ref": "BraggingRights"
}
},
"metadata": {
"description": "Read-only metadata about the person.",
"$ref": "PersonMetadata"
},
"residences": {
"description": "The person's residences.",
"type": "array",
"items": {
"$ref": "Residence"
}
},
"genders": {
"description": "The person's genders.",
"type": "array",
"items": {
"$ref": "Gender"
}
},
"interests": {
"description": "The person's interests.",
"type": "array",
"items": {
"$ref": "Interest"
}
},
"resourceName": {
"description": "The resource name for the person, assigned by the server. An ASCII string\nwith a max length of 27 characters, in the form of\n`people/`\u003cvar\u003eperson_id\u003c/var\u003e.",
"type": "string"
},
"biographies": {
"description": "The person's biographies.",
"type": "array",
"items": {
"$ref": "Biography"
}
},
"skills": {
"description": "The person's skills.",
"type": "array",
"items": {
"$ref": "Skill"
}
},
"relationshipStatuses": {
"description": "The person's read-only relationship statuses.",
"type": "array",
"items": {
"$ref": "RelationshipStatus"
}
},
"photos": {
"description": "The person's read-only photos.",
"type": "array",
"items": {
"$ref": "Photo"
}
},
"ageRange": {
"enumDescriptions": [
"Unspecified.",
"Younger than eighteen.",
"Between eighteen and twenty.",
"Twenty-one and older."
],
"enum": [
"AGE_RANGE_UNSPECIFIED",
"LESS_THAN_EIGHTEEN",
"EIGHTEEN_TO_TWENTY",
"TWENTY_ONE_OR_OLDER"
],
"description": "**DEPRECATED** (Please use `person.ageRanges` instead)**\n\nThe person's read-only age range.",
"type": "string"
},
"taglines": {
"description": "The person's read-only taglines.",
"type": "array",
"items": {
"$ref": "Tagline"
}
},
"ageRanges": {
"description": "The person's read-only age ranges.",
"type": "array",
"items": {
"$ref": "AgeRangeType"
}
},
"addresses": {
"description": "The person's street addresses.",
"type": "array",
"items": {
"$ref": "Address"
}
},
"events": {
"description": "The person's events.",
"type": "array",
"items": {
"$ref": "Event"
}
},
"memberships": {
"description": "The person's read-only group memberships.",
"type": "array",
"items": {
"$ref": "Membership"
}
},
"phoneNumbers": {
"description": "The person's phone numbers.",
"type": "array",
"items": {
"$ref": "PhoneNumber"
}
},
"coverPhotos": {
"description": "The person's read-only cover photos.",
"type": "array",
"items": {
"$ref": "CoverPhoto"
}
},
"imClients": {
"description": "The person's instant messaging clients.",
"type": "array",
"items": {
"$ref": "ImClient"
}
}
},
"id": "Person"
},
"UpdateContactGroupRequest": {
"description": "A request to update an existing contact group. Only the name can be updated.",
"type": "object",
"properties": {
"contactGroup": {
"description": "The contact group to update.",
"$ref": "ContactGroup"
}
},
"id": "UpdateContactGroupRequest"
},
"ContactGroupMetadata": {
"description": "The read-only metadata about a contact group.",
"type": "object",
"properties": {
"deleted": {
"description": "True if the contact group resource has been deleted. Populated only for\n[`ListContactGroups`](/people/api/rest/v1/contactgroups/list) requests\nthat include a sync token.",
"type": "boolean"
},
"updateTime": {
"description": "The time the group was last updated.",
"format": "google-datetime",
"type": "string"
}
},
"id": "ContactGroupMetadata"
},
"Residence": {
"description": "A person's past or current residence.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the residence.",
"$ref": "FieldMetadata"
},
"current": {
"description": "True if the residence is the person's current residence;\nfalse if the residence is a past residence.",
"type": "boolean"
},
"value": {
"description": "The address of the residence.",
"type": "string"
}
},
"id": "Residence"
},
"Event": {
"description": "An event related to the person.",
"type": "object",
"properties": {
"formattedType": {
"description": "The read-only type of the event translated and formatted in the\nviewer's account locale or the `Accept-Language` HTTP header locale.",
"type": "string"
},
"metadata": {
"description": "Metadata about the event.",
"$ref": "FieldMetadata"
},
"type": {
"description": "The type of the event. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `anniversary`\n* `other`",
"type": "string"
},
"date": {
"description": "The date of the event.",
"$ref": "Date"
}
},
"id": "Event"
},
"ModifyContactGroupMembersResponse": {
"description": "The response to a modify contact group members request.",
"type": "object",
"properties": {
"notFoundResourceNames": {
"description": "The contact people resource names that were not found.",
"type": "array",
"items": {
"type": "string"
}
}
},
"id": "ModifyContactGroupMembersResponse"
},
"ProfileMetadata": {
"description": "The read-only metadata about a profile.",
"type": "object",
"properties": {
"objectType": {
"description": "The profile object type.",
"type": "string",
"enumDescriptions": [
"Unspecified.",
"Person.",
"[Google+ Page.](http://www.google.com/+/brands/)"
],
"enum": [
"OBJECT_TYPE_UNSPECIFIED",
"PERSON",
"PAGE"
]
},
"userTypes": {
"description": "The user types.",
"type": "array",
"items": {
"type": "string",
"enum": [
"USER_TYPE_UNKNOWN",
"GOOGLE_USER",
"GPLUS_USER",
"GOOGLE_APPS_USER"
]
},
"enumDescriptions": [
"The user type is not known.",
"The user is a Google user.",
"The user is a Google+ user.",
"The user is a Google Apps for Work user."
]
}
},
"id": "ProfileMetadata"
},
"Gender": {
"description": "A person's gender.",
"type": "object",
"properties": {
"metadata": {
"$ref": "FieldMetadata",
"description": "Metadata about the gender."
},
"value": {
"description": "The gender for the person. The gender can be custom or predefined.\nPossible values include, but are not limited to, the\nfollowing:\n\n* `male`\n* `female`\n* `other`\n* `unknown`",
"type": "string"
},
"formattedValue": {
"description": "The read-only value of the gender translated and formatted in the viewer's\naccount locale or the `Accept-Language` HTTP header locale.",
"type": "string"
}
},
"id": "Gender"
},
"CoverPhoto": {
"description": "A person's read-only cover photo. A large image shown on the person's\nprofile page that represents who they are or what they care about.",
"type": "object",
"properties": {
"metadata": {
"$ref": "FieldMetadata",
"description": "Metadata about the cover photo."
},
"default": {
"description": "True if the cover photo is the default cover photo;\nfalse if the cover photo is a user-provided cover photo.",
"type": "boolean"
},
"url": {
"description": "The URL of the cover photo.",
"type": "string"
}
},
"id": "CoverPhoto"
},
"Interest": {
"description": "One of the person's interests.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the interest.",
"$ref": "FieldMetadata"
},
"value": {
"description": "The interest; for example, `stargazing`.",
"type": "string"
}
},
"id": "Interest"
},
"Nickname": {
"description": "A person's nickname.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the nickname.",
"$ref": "FieldMetadata"
},
"type": {
"enumDescriptions": [
"Generic nickname.",
"Maiden name or birth family name. Used when the person's family name has\nchanged as a result of marriage.",
"Initials.",
"Google+ profile nickname.",
"A professional affiliation or other name; for example, `Dr. Smith.`"
],
"enum": [
"DEFAULT",
"MAIDEN_NAME",
"INITIALS",
"GPLUS",
"OTHER_NAME"
],
"description": "The type of the nickname.",
"type": "string"
},
"value": {
"description": "The nickname.",
"type": "string"
}
},
"id": "Nickname"
},
"EmailAddress": {
"description": "A person's email address.",
"type": "object",
"properties": {
"displayName": {
"description": "The display name of the email.",
"type": "string"
},
"metadata": {
"$ref": "FieldMetadata",
"description": "Metadata about the email address."
},
"type": {
"description": "The type of the email address. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `other`",
"type": "string"
},
"value": {
"description": "The email address.",
"type": "string"
},
"formattedType": {
"description": "The read-only type of the email address translated and formatted in the\nviewer's account locale or the `Accept-Language` HTTP header locale.",
"type": "string"
}
},
"id": "EmailAddress"
},
"Skill": {
"description": "A skill that the person has.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the skill.",
"$ref": "FieldMetadata"
},
"value": {
"description": "The skill; for example, `underwater basket weaving`.",
"type": "string"
}
},
"id": "Skill"
},
"Date": {
"description": "Represents a whole calendar date, for example a date of birth. The time\nof day and time zone are either specified elsewhere or are not\nsignificant. The date is relative to the\n[Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar).\nThe day may be 0 to represent a year and month where the day is not\nsignificant. The year may be 0 to represent a month and day independent\nof year; for example, anniversary date.",
"type": "object",
"properties": {
"year": {
"description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.",
"format": "int32",
"type": "integer"
},
"day": {
"description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.",
"format": "int32",
"type": "integer"
},
"month": {
"description": "Month of year. Must be from 1 to 12.",
"format": "int32",
"type": "integer"
}
},
"id": "Date"
},
"Tagline": {
"description": "A read-only brief one-line description of the person.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the tagline.",
"$ref": "FieldMetadata"
},
"value": {
"description": "The tagline.",
"type": "string"
}
},
"id": "Tagline"
},
"Name": {
"description": "A person's name. If the name is a mononym, the family name is empty.",
"type": "object",
"properties": {
"phoneticHonorificPrefix": {
"description": "The honorific prefixes spelled as they sound.",
"type": "string"
},
"phoneticGivenName": {
"description": "The given name spelled as it sounds.",
"type": "string"
},
"phoneticFamilyName": {
"description": "The family name spelled as it sounds.",
"type": "string"
},
"familyName": {
"description": "The family name.",
"type": "string"
},
"metadata": {
"description": "Metadata about the name.",
"$ref": "FieldMetadata"
},
"phoneticMiddleName": {
"description": "The middle name(s) spelled as they sound.",
"type": "string"
},
"phoneticFullName": {
"description": "The full name spelled as it sounds.",
"type": "string"
},
"displayNameLastFirst": {
"description": "The read-only display name with the last name first formatted according to\nthe locale specified by the viewer's account or the\n`Accept-Language` HTTP header.",
"type": "string"
},
"displayName": {
"description": "The read-only display name formatted according to the locale specified by\nthe viewer's account or the `Accept-Language` HTTP header.",
"type": "string"
},
"honorificSuffix": {
"description": "The honorific suffixes, such as `Jr.`",
"type": "string"
},
"honorificPrefix": {
"description": "The honorific prefixes, such as `Mrs.` or `Dr.`",
"type": "string"
},
"phoneticHonorificSuffix": {
"description": "The honorific suffixes spelled as they sound.",
"type": "string"
},
"givenName": {
"description": "The given name.",
"type": "string"
},
"middleName": {
"description": "The middle name(s).",
"type": "string"
}
},
"id": "Name"
},
"Locale": {
"description": "A person's locale preference.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the locale.",
"$ref": "FieldMetadata"
},
"value": {
"description": "The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47)\nlanguage tag representing the locale.",
"type": "string"
}
},
"id": "Locale"
},
"Empty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
"type": "object",
"properties": {},
"id": "Empty"
},
"UserDefined": {
"description": "Arbitrary user data that is populated by the end users.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the user defined data.",
"$ref": "FieldMetadata"
},
"value": {
"description": "The end user specified value of the user defined data.",
"type": "string"
},
"key": {
"description": "The end user specified key of the user defined data.",
"type": "string"
}
},
"id": "UserDefined"
},
"Biography": {
"description": "A person's short biography.",
"type": "object",
"properties": {
"metadata": {
"$ref": "FieldMetadata",
"description": "Metadata about the biography."
},
"value": {
"description": "The short biography.",
"type": "string"
},
"contentType": {
"enumDescriptions": [
"Unspecified.",
"Plain text.",
"HTML text."
],
"enum": [
"CONTENT_TYPE_UNSPECIFIED",
"TEXT_PLAIN",
"TEXT_HTML"
],
"description": "The content type of the biography.",
"type": "string"
}
},
"id": "Biography"
},
"FieldMetadata": {
"description": "Metadata about a field.",
"type": "object",
"properties": {
"source": {
"description": "The source of the field.",
"$ref": "Source"
},
"verified": {
"description": "True if the field is verified; false if the field is unverified. A\nverified field is typically a name, email address, phone number, or\nwebsite that has been confirmed to be owned by the person.",
"type": "boolean"
},
"primary": {
"description": "True if the field is the primary field; false if the field is a secondary\nfield.",
"type": "boolean"
}
},
"id": "FieldMetadata"
},
"RelationshipInterest": {
"description": "A person's read-only relationship interest .",
"type": "object",
"properties": {
"formattedValue": {
"description": "The value of the relationship interest translated and formatted in the\nviewer's account locale or the locale specified in the Accept-Language\nHTTP header.",
"type": "string"
},
"metadata": {
"$ref": "FieldMetadata",
"description": "Metadata about the relationship interest."
},
"value": {
"description": "The kind of relationship the person is looking for. The value can be custom\nor predefined. Possible values include, but are not limited to, the\nfollowing values:\n\n* `friend`\n* `date`\n* `relationship`\n* `networking`",
"type": "string"
}
},
"id": "RelationshipInterest"
},
"Source": {
"description": "The source of a field.",
"type": "object",
"properties": {
"type": {
"description": "The source type.",
"type": "string",
"enumDescriptions": [
"Unspecified.",
"[Google Account](https://accounts.google.com).",
"[Google profile](https://profiles.google.com). You can view the\nprofile at https://profiles.google.com/\u003cvar\u003eid\u003c/var\u003e where\n\u003cvar\u003eid\u003c/var\u003e is the source id.",
"[Google Apps domain profile](https://admin.google.com).",
"[Google contact](https://contacts.google.com). You can view the\ncontact at https://contact.google.com/\u003cvar\u003eid\u003c/var\u003e where \u003cvar\u003eid\u003c/var\u003e\nis the source id."
],
"enum": [
"SOURCE_TYPE_UNSPECIFIED",
"ACCOUNT",
"PROFILE",
"DOMAIN_PROFILE",
"CONTACT"
]
},
"etag": {
"description": "**Only populated in `person.metadata.sources`.**\n\nThe [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the\nsource. Used for web cache validation.",
"type": "string"
},
"id": {
"description": "The unique identifier within the source type generated by the server.",
"type": "string"
},
"profileMetadata": {
"description": "**Only populated in `person.metadata.sources`.**\n\nMetadata about a source of type PROFILE.",
"$ref": "ProfileMetadata"
},
"updateTime": {
"description": "**Only populated in `person.metadata.sources`.**\n\nLast update timestamp of this source.",
"format": "google-datetime",
"type": "string"
}
},
"id": "Source"
},
"GetPeopleResponse": {
"type": "object",
"properties": {
"responses": {
"description": "The response for each requested resource name.",
"type": "array",
"items": {
"$ref": "PersonResponse"
}
}
},
"id": "GetPeopleResponse"
},
"Photo": {
"description": "A person's read-only photo. A picture shown next to the person's name to\nhelp others recognize the person.",
"type": "object",
"properties": {
"metadata": {
"$ref": "FieldMetadata",
"description": "Metadata about the photo."
},
"default": {
"description": "True if the photo is a default photo;\nfalse if the photo is a user-provided photo.",
"type": "boolean"
},
"url": {
"description": "The URL of the photo. You can change the desired size by appending a query\nparameter `sz=`\u003cvar\u003esize\u003c/var\u003e at the end of the url. Example:\n`https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50`",
"type": "string"
}
},
"id": "Photo"
},
"PhoneNumber": {
"description": "A person's phone number.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the phone number.",
"$ref": "FieldMetadata"
},
"type": {
"description": "The type of the phone number. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `mobile`\n* `homeFax`\n* `workFax`\n* `otherFax`\n* `pager`\n* `workMobile`\n* `workPager`\n* `main`\n* `googleVoice`\n* `other`",
"type": "string"
},
"value": {
"description": "The phone number.",
"type": "string"
},
"formattedType": {
"description": "The read-only type of the phone number translated and formatted in the\nviewer's account locale or the `Accept-Language` HTTP header locale.",
"type": "string"
},
"canonicalForm": {
"description": "The read-only canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf)\nform of the phone number.",
"type": "string"
}
},
"id": "PhoneNumber"
},
"ListConnectionsResponse": {
"type": "object",
"properties": {
"totalPeople": {
"description": "**DEPRECATED** (Please use totalItems)\nThe total number of people in the list without pagination.",
"format": "int32",
"type": "integer"
},
"nextPageToken": {
"description": "The token that can be used to retrieve the next page of results.",
"type": "string"
},
"connections": {
"description": "The list of people that the requestor is connected to.",
"type": "array",
"items": {
"$ref": "Person"
}
},
"nextSyncToken": {
"description": "The token that can be used to retrieve changes since the last request.",
"type": "string"
},
"totalItems": {
"description": "The total number of items in the list without pagination.",
"format": "int32",
"type": "integer"
}
},
"id": "ListConnectionsResponse"
},
"Birthday": {
"description": "A person's birthday. At least one of the `date` and `text` fields are\nspecified. The `date` and `text` fields typically represent the same\ndate, but are not guaranteed to.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the birthday.",
"$ref": "FieldMetadata"
},
"text": {
"description": "A free-form string representing the user's birthday.",
"type": "string"
},
"date": {
"$ref": "Date",
"description": "The date of the birthday."
}
},
"id": "Birthday"
},
"CreateContactGroupRequest": {
"description": "A request to create a new contact group.",
"type": "object",
"properties": {
"contactGroup": {
"description": "The contact group to create.",
"$ref": "ContactGroup"
}
},
"id": "CreateContactGroupRequest"
},
"Address": {
"description": "A person's physical address. May be a P.O. box or street address. All fields\nare optional.",
"type": "object",
"properties": {
"streetAddress": {
"description": "The street address.",
"type": "string"
},
"metadata": {
"description": "Metadata about the address.",
"$ref": "FieldMetadata"
},
"countryCode": {
"description": "The [ISO 3166-1 alpha-2](http://www.iso.org/iso/country_codes.htm) country\ncode of the address.",
"type": "string"
},
"formattedType": {
"description": "The read-only type of the address translated and formatted in the viewer's\naccount locale or the `Accept-Language` HTTP header locale.",
"type": "string"
},
"city": {
"description": "The city of the address.",
"type": "string"
},
"formattedValue": {
"description": "The unstructured value of the address. If this is not set by the user it\nwill be automatically constructed from structured values.",
"type": "string"
},
"country": {
"description": "The country of the address.",
"type": "string"
},
"type": {
"description": "The type of the address. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `other`",
"type": "string"
},
"extendedAddress": {
"description": "The extended address of the address; for example, the apartment number.",
"type": "string"
},
"poBox": {
"description": "The P.O. box of the address.",
"type": "string"
},
"postalCode": {
"description": "The postal code of the address.",
"type": "string"
},
"region": {
"description": "The region of the address; for example, the state or province.",
"type": "string"
}
},
"id": "Address"
},
"Status": {
"description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.",
"type": "object",
"properties": {
"details": {
"description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.",
"type": "array",
"items": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"type": "object"
}
},
"code": {
"description": "The status code, which should be an enum value of google.rpc.Code.",
"format": "int32",
"type": "integer"
},
"message": {
"description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
"type": "string"
}
},
"id": "Status"
},
"ContactGroupMembership": {
"description": "A Google contact group membership.",
"type": "object",
"properties": {
"contactGroupId": {
"description": "The contact group ID for the contact group membership. The contact group\nID can be custom or predefined. Possible values include, but are not\nlimited to, the following:\n\n* `myContacts`\n* `starred`\n* A numerical ID for user-created groups.",
"type": "string"
}
},
"id": "ContactGroupMembership"
},
"PersonMetadata": {
"description": "The read-only metadata about a person.",
"type": "object",
"properties": {
"sources": {
"description": "The sources of data for the person.",
"type": "array",
"items": {
"$ref": "Source"
}
},
"previousResourceNames": {
"description": "Any former resource names this person has had. Populated only for\n[`connections.list`](/people/api/rest/v1/people.connections/list) requests\nthat include a sync token.\n\nThe resource name may change when adding or removing fields that link a\ncontact and profile such as a verified email, verified phone number, or\nprofile URL.",
"type": "array",
"items": {
"type": "string"
}
},
"deleted": {
"description": "True if the person resource has been deleted. Populated only for\n[`connections.list`](/people/api/rest/v1/people.connections/list) requests\nthat include a sync token.",
"type": "boolean"
},
"objectType": {
"enumDescriptions": [
"Unspecified.",
"Person.",
"[Google+ Page.](http://www.google.com/+/brands/)"
],
"enum": [
"OBJECT_TYPE_UNSPECIFIED",
"PERSON",
"PAGE"
],
"description": "**DEPRECATED** (Please use\n`person.metadata.sources.profileMetadata.objectType` instead)\n\nThe type of the person object.",
"type": "string"
},
"linkedPeopleResourceNames": {
"description": "Resource names of people linked to this resource.",
"type": "array",
"items": {
"type": "string"
}
}
},
"id": "PersonMetadata"
},
"ModifyContactGroupMembersRequest": {
"description": "A request to modify an existing contact group's members.",
"type": "object",
"properties": {
"resourceNamesToAdd": {
"description": "The resource names of the contact people to add in the form of in the form\n`people/`\u003cvar\u003eperson_id\u003c/var\u003e.",
"type": "array",
"items": {
"type": "string"
}
},
"resourceNamesToRemove": {
"description": "The resource names of the contact people to remove in the form of in the\nform of `people/`\u003cvar\u003eperson_id\u003c/var\u003e.",
"type": "array",
"items": {
"type": "string"
}
}
},
"id": "ModifyContactGroupMembersRequest"
},
"ContactGroupResponse": {
"description": "The response for a specific contact group.",
"type": "object",
"properties": {
"status": {
"description": "The status of the response.",
"$ref": "Status"
},
"requestedResourceName": {
"description": "The original requested resource name.",
"type": "string"
},
"contactGroup": {
"$ref": "ContactGroup",
"description": "The contact group."
}
},
"id": "ContactGroupResponse"
},
"Url": {
"description": "A person's associated URLs.",
"type": "object",
"properties": {
"metadata": {
"description": "Metadata about the URL.",
"$ref": "FieldMetadata"
},
"type": {
"description": "The type of the URL. The type can be custom or predefined.\nPossible values include, but are not limited to, the following:\n\n* `home`\n* `work`\n* `blog`\n* `profile`\n* `homePage`\n* `ftp`\n* `reservations`\n* `appInstallPage`: website for a Google+ application.\n* `other`",
"type": "string"
},
"value": {
"description": "The URL.",
"type": "string"
},
"formattedType": {
"description": "The read-only type of the URL translated and formatted in the viewer's\naccount locale or the `Accept-Language` HTTP header locale.",
"type": "string"
}
},
"id": "Url"
}
},
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"protocol": "rest",
"canonicalName": "People Service",
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/contacts.readonly": {
"description": "View your contacts"
},
"https://www.googleapis.com/auth/user.birthday.read": {
"description": "View your complete date of birth"
},
"https://www.googleapis.com/auth/plus.login": {
"description": "Know the list of people in your circles, your age range, and language"
},
"https://www.googleapis.com/auth/userinfo.profile": {
"description": "View your basic profile info"
},
"https://www.googleapis.com/auth/user.addresses.read": {
"description": "View your street addresses"
},
"https://www.googleapis.com/auth/contacts": {
"description": "Manage your contacts"
},
"https://www.googleapis.com/auth/user.emails.read": {
"description": "View your email addresses"
},
"https://www.googleapis.com/auth/user.phonenumbers.read": {
"description": "View your phone numbers"
},
"https://www.googleapis.com/auth/userinfo.email": {
"description": "View your email address"
}
}
}
},
"rootUrl": "https://people.googleapis.com/",
"ownerDomain": "google.com",
"name": "people",
"batchPath": "batch",
"title": "Google People API"
}