google-apis-people_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3f3e5377d7a978895b91e501263874661109d2b94a3bef0cc546b78c0ff5ef53
4
+ data.tar.gz: 1d204109fd5c0fe4c56e0668a0f0e9c76a1754ab7f0ceaa168424985371451fa
5
+ SHA512:
6
+ metadata.gz: a00727201a8d4b3c07a9ff72290e0ab680dff4d5778207d3cddd1e6508ba8c64a31bdb9272904e64b5ff696f50d023cf45044f51e0b160c2473433a22cdaf5e6
7
+ data.tar.gz: 6bf04a621f398fdba9a9dd55dd7ef5193cd889f38d733a3a84dcb16b194badefc8037bb7bdcd55c9bc6c733b1c202176e8bb76f82c3305d9d22e88a3c92767b5
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-people_v1
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/people_v1/*.rb
9
+ lib/google/apis/people_v1.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-people_v1
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated from discovery document revision 20210105
6
+ * Regenerated using generator version 0.1.1
7
+
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version V1 of the People API
2
+
3
+ This is a simple client library for version V1 of the People API. It provides:
4
+
5
+ * A client object that connects to the HTTP/JSON REST endpoint for the service.
6
+ * Ruby objects for data structures related to the service.
7
+ * Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
8
+ * Control of retry, pagination, and timeouts.
9
+
10
+ Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
11
+
12
+ ## Getting started
13
+
14
+ ### Before you begin
15
+
16
+ There are a few setup steps you need to complete before you can use this library:
17
+
18
+ 1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
19
+ 2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
20
+ 3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/people.googleapis.com) in the console.
21
+
22
+ ### Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'google-apis-people_v1', '~> 0.1'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```
33
+ $ bundle
34
+ ```
35
+
36
+ Or install it yourself as:
37
+
38
+ ```
39
+ $ gem install google-apis-people_v1
40
+ ```
41
+
42
+ ### Creating a client object
43
+
44
+ Once the gem is installed, you can load the client code and instantiate a client.
45
+
46
+ ```ruby
47
+ # Load the client
48
+ require "google/apis/people_v1"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::PeopleV1::PeopleServiceService.new
52
+
53
+ # Authenticate calls
54
+ client.authentication = # ... use the googleauth gem to create credentials
55
+ ```
56
+
57
+ See the class reference docs for information on the methods you can call from a client.
58
+
59
+ ## Documentation
60
+
61
+ More detailed descriptions of the Google simple REST clients are available in two documents.
62
+
63
+ * The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
64
+ * The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
65
+
66
+ (Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the People service in particular.)
67
+
68
+ For reference information on specific calls in the People API, see the {Google::Apis::PeopleV1::PeopleServiceService class reference docs}.
69
+
70
+ ## Which client should I use?
71
+
72
+ Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
73
+
74
+ This library, `google-apis-people_v1`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
75
+
76
+ Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
77
+
78
+ Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
79
+
80
+ **For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
81
+
82
+ The [product documentation](https://developers.google.com/people/) may provide guidance regarding the preferred client library to use.
83
+
84
+ ## Supported Ruby versions
85
+
86
+ This library is supported on Ruby 2.5+.
87
+
88
+ Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
89
+
90
+ ## License
91
+
92
+ This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
93
+
94
+ ## Support
95
+
96
+ Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
@@ -0,0 +1,15 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require "google/apis/people_v1"
@@ -0,0 +1,69 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'google/apis/people_v1/service.rb'
16
+ require 'google/apis/people_v1/classes.rb'
17
+ require 'google/apis/people_v1/representations.rb'
18
+ require 'google/apis/people_v1/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # People API
23
+ #
24
+ # Provides access to information about profiles and contacts.
25
+ #
26
+ # @see https://developers.google.com/people/
27
+ module PeopleV1
28
+ # Version of the People API this client connects to.
29
+ # This is NOT the gem version.
30
+ VERSION = 'V1'
31
+
32
+ # See, edit, download, and permanently delete your contacts
33
+ AUTH_CONTACTS = 'https://www.googleapis.com/auth/contacts'
34
+
35
+ # See and download contact info automatically saved in your "Other contacts"
36
+ AUTH_CONTACTS_OTHER_READONLY = 'https://www.googleapis.com/auth/contacts.other.readonly'
37
+
38
+ # See and download your contacts
39
+ AUTH_CONTACTS_READONLY = 'https://www.googleapis.com/auth/contacts.readonly'
40
+
41
+ # See and download your organization's GSuite directory
42
+ AUTH_DIRECTORY_READONLY = 'https://www.googleapis.com/auth/directory.readonly'
43
+
44
+ # View your street addresses
45
+ AUTH_USER_ADDRESSES_READ = 'https://www.googleapis.com/auth/user.addresses.read'
46
+
47
+ # View your complete date of birth
48
+ AUTH_USER_BIRTHDAY_READ = 'https://www.googleapis.com/auth/user.birthday.read'
49
+
50
+ # View your email addresses
51
+ AUTH_USER_EMAILS_READ = 'https://www.googleapis.com/auth/user.emails.read'
52
+
53
+ # See your gender
54
+ AUTH_USER_GENDER_READ = 'https://www.googleapis.com/auth/user.gender.read'
55
+
56
+ # See your education, work history and org info
57
+ AUTH_USER_ORGANIZATION_READ = 'https://www.googleapis.com/auth/user.organization.read'
58
+
59
+ # View your phone numbers
60
+ AUTH_USER_PHONENUMBERS_READ = 'https://www.googleapis.com/auth/user.phonenumbers.read'
61
+
62
+ # View your email address
63
+ AUTH_USERINFO_EMAIL = 'https://www.googleapis.com/auth/userinfo.email'
64
+
65
+ # See your personal info, including any personal info you've made publicly available
66
+ AUTH_USERINFO_PROFILE = 'https://www.googleapis.com/auth/userinfo.profile'
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,2630 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module PeopleV1
24
+
25
+ # A person's physical address. May be a P.O. box or street address. All fields
26
+ # are optional.
27
+ class Address
28
+ include Google::Apis::Core::Hashable
29
+
30
+ # The city of the address.
31
+ # Corresponds to the JSON property `city`
32
+ # @return [String]
33
+ attr_accessor :city
34
+
35
+ # The country of the address.
36
+ # Corresponds to the JSON property `country`
37
+ # @return [String]
38
+ attr_accessor :country
39
+
40
+ # The [ISO 3166-1 alpha-2](http://www.iso.org/iso/country_codes.htm) country
41
+ # code of the address.
42
+ # Corresponds to the JSON property `countryCode`
43
+ # @return [String]
44
+ attr_accessor :country_code
45
+
46
+ # The extended address of the address; for example, the apartment number.
47
+ # Corresponds to the JSON property `extendedAddress`
48
+ # @return [String]
49
+ attr_accessor :extended_address
50
+
51
+ # Output only. The type of the address translated and formatted in the viewer's
52
+ # account locale or the `Accept-Language` HTTP header locale.
53
+ # Corresponds to the JSON property `formattedType`
54
+ # @return [String]
55
+ attr_accessor :formatted_type
56
+
57
+ # The unstructured value of the address. If this is not set by the user it will
58
+ # be automatically constructed from structured values.
59
+ # Corresponds to the JSON property `formattedValue`
60
+ # @return [String]
61
+ attr_accessor :formatted_value
62
+
63
+ # Metadata about a field.
64
+ # Corresponds to the JSON property `metadata`
65
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
66
+ attr_accessor :metadata
67
+
68
+ # The P.O. box of the address.
69
+ # Corresponds to the JSON property `poBox`
70
+ # @return [String]
71
+ attr_accessor :po_box
72
+
73
+ # The postal code of the address.
74
+ # Corresponds to the JSON property `postalCode`
75
+ # @return [String]
76
+ attr_accessor :postal_code
77
+
78
+ # The region of the address; for example, the state or province.
79
+ # Corresponds to the JSON property `region`
80
+ # @return [String]
81
+ attr_accessor :region
82
+
83
+ # The street address.
84
+ # Corresponds to the JSON property `streetAddress`
85
+ # @return [String]
86
+ attr_accessor :street_address
87
+
88
+ # The type of the address. The type can be custom or one of these predefined
89
+ # values: * `home` * `work` * `other`
90
+ # Corresponds to the JSON property `type`
91
+ # @return [String]
92
+ attr_accessor :type
93
+
94
+ def initialize(**args)
95
+ update!(**args)
96
+ end
97
+
98
+ # Update properties of this object
99
+ def update!(**args)
100
+ @city = args[:city] if args.key?(:city)
101
+ @country = args[:country] if args.key?(:country)
102
+ @country_code = args[:country_code] if args.key?(:country_code)
103
+ @extended_address = args[:extended_address] if args.key?(:extended_address)
104
+ @formatted_type = args[:formatted_type] if args.key?(:formatted_type)
105
+ @formatted_value = args[:formatted_value] if args.key?(:formatted_value)
106
+ @metadata = args[:metadata] if args.key?(:metadata)
107
+ @po_box = args[:po_box] if args.key?(:po_box)
108
+ @postal_code = args[:postal_code] if args.key?(:postal_code)
109
+ @region = args[:region] if args.key?(:region)
110
+ @street_address = args[:street_address] if args.key?(:street_address)
111
+ @type = args[:type] if args.key?(:type)
112
+ end
113
+ end
114
+
115
+ # A person's age range.
116
+ class AgeRangeType
117
+ include Google::Apis::Core::Hashable
118
+
119
+ # The age range.
120
+ # Corresponds to the JSON property `ageRange`
121
+ # @return [String]
122
+ attr_accessor :age_range
123
+
124
+ # Metadata about a field.
125
+ # Corresponds to the JSON property `metadata`
126
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
127
+ attr_accessor :metadata
128
+
129
+ def initialize(**args)
130
+ update!(**args)
131
+ end
132
+
133
+ # Update properties of this object
134
+ def update!(**args)
135
+ @age_range = args[:age_range] if args.key?(:age_range)
136
+ @metadata = args[:metadata] if args.key?(:metadata)
137
+ end
138
+ end
139
+
140
+ # The response to a batch get contact groups request.
141
+ class BatchGetContactGroupsResponse
142
+ include Google::Apis::Core::Hashable
143
+
144
+ # The list of responses for each requested contact group resource.
145
+ # Corresponds to the JSON property `responses`
146
+ # @return [Array<Google::Apis::PeopleV1::ContactGroupResponse>]
147
+ attr_accessor :responses
148
+
149
+ def initialize(**args)
150
+ update!(**args)
151
+ end
152
+
153
+ # Update properties of this object
154
+ def update!(**args)
155
+ @responses = args[:responses] if args.key?(:responses)
156
+ end
157
+ end
158
+
159
+ # A person's short biography.
160
+ class Biography
161
+ include Google::Apis::Core::Hashable
162
+
163
+ # The content type of the biography.
164
+ # Corresponds to the JSON property `contentType`
165
+ # @return [String]
166
+ attr_accessor :content_type
167
+
168
+ # Metadata about a field.
169
+ # Corresponds to the JSON property `metadata`
170
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
171
+ attr_accessor :metadata
172
+
173
+ # The short biography.
174
+ # Corresponds to the JSON property `value`
175
+ # @return [String]
176
+ attr_accessor :value
177
+
178
+ def initialize(**args)
179
+ update!(**args)
180
+ end
181
+
182
+ # Update properties of this object
183
+ def update!(**args)
184
+ @content_type = args[:content_type] if args.key?(:content_type)
185
+ @metadata = args[:metadata] if args.key?(:metadata)
186
+ @value = args[:value] if args.key?(:value)
187
+ end
188
+ end
189
+
190
+ # A person's birthday. At least one of the `date` and `text` fields are
191
+ # specified. The `date` and `text` fields typically represent the same date, but
192
+ # are not guaranteed to.
193
+ class Birthday
194
+ include Google::Apis::Core::Hashable
195
+
196
+ # Represents a whole or partial calendar date, such as a birthday. The time of
197
+ # day and time zone are either specified elsewhere or are insignificant. The
198
+ # date is relative to the Gregorian Calendar. This can represent one of the
199
+ # following: * A full date, with non-zero year, month, and day values * A month
200
+ # and day value, with a zero year, such as an anniversary * A year on its own,
201
+ # with zero month and day values * A year and month value, with a zero day, such
202
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
203
+ # google.protobuf.Timestamp`.
204
+ # Corresponds to the JSON property `date`
205
+ # @return [Google::Apis::PeopleV1::Date]
206
+ attr_accessor :date
207
+
208
+ # Metadata about a field.
209
+ # Corresponds to the JSON property `metadata`
210
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
211
+ attr_accessor :metadata
212
+
213
+ # A free-form string representing the user's birthday.
214
+ # Corresponds to the JSON property `text`
215
+ # @return [String]
216
+ attr_accessor :text
217
+
218
+ def initialize(**args)
219
+ update!(**args)
220
+ end
221
+
222
+ # Update properties of this object
223
+ def update!(**args)
224
+ @date = args[:date] if args.key?(:date)
225
+ @metadata = args[:metadata] if args.key?(:metadata)
226
+ @text = args[:text] if args.key?(:text)
227
+ end
228
+ end
229
+
230
+ # **DEPRECATED**: No data will be returned A person's bragging rights.
231
+ class BraggingRights
232
+ include Google::Apis::Core::Hashable
233
+
234
+ # Metadata about a field.
235
+ # Corresponds to the JSON property `metadata`
236
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
237
+ attr_accessor :metadata
238
+
239
+ # The bragging rights; for example, `climbed mount everest`.
240
+ # Corresponds to the JSON property `value`
241
+ # @return [String]
242
+ attr_accessor :value
243
+
244
+ def initialize(**args)
245
+ update!(**args)
246
+ end
247
+
248
+ # Update properties of this object
249
+ def update!(**args)
250
+ @metadata = args[:metadata] if args.key?(:metadata)
251
+ @value = args[:value] if args.key?(:value)
252
+ end
253
+ end
254
+
255
+ # A person's calendar URL.
256
+ class CalendarUrl
257
+ include Google::Apis::Core::Hashable
258
+
259
+ # Output only. The type of the calendar URL translated and formatted in the
260
+ # viewer's account locale or the `Accept-Language` HTTP header locale.
261
+ # Corresponds to the JSON property `formattedType`
262
+ # @return [String]
263
+ attr_accessor :formatted_type
264
+
265
+ # Metadata about a field.
266
+ # Corresponds to the JSON property `metadata`
267
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
268
+ attr_accessor :metadata
269
+
270
+ # The type of the calendar URL. The type can be custom or one of these
271
+ # predefined values: * `home` * `freeBusy` * `work`
272
+ # Corresponds to the JSON property `type`
273
+ # @return [String]
274
+ attr_accessor :type
275
+
276
+ # The calendar URL.
277
+ # Corresponds to the JSON property `url`
278
+ # @return [String]
279
+ attr_accessor :url
280
+
281
+ def initialize(**args)
282
+ update!(**args)
283
+ end
284
+
285
+ # Update properties of this object
286
+ def update!(**args)
287
+ @formatted_type = args[:formatted_type] if args.key?(:formatted_type)
288
+ @metadata = args[:metadata] if args.key?(:metadata)
289
+ @type = args[:type] if args.key?(:type)
290
+ @url = args[:url] if args.key?(:url)
291
+ end
292
+ end
293
+
294
+ # Arbitrary client data that is populated by clients. Duplicate keys and values
295
+ # are allowed.
296
+ class ClientData
297
+ include Google::Apis::Core::Hashable
298
+
299
+ # The client specified key of the client data.
300
+ # Corresponds to the JSON property `key`
301
+ # @return [String]
302
+ attr_accessor :key
303
+
304
+ # Metadata about a field.
305
+ # Corresponds to the JSON property `metadata`
306
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
307
+ attr_accessor :metadata
308
+
309
+ # The client specified value of the client data.
310
+ # Corresponds to the JSON property `value`
311
+ # @return [String]
312
+ attr_accessor :value
313
+
314
+ def initialize(**args)
315
+ update!(**args)
316
+ end
317
+
318
+ # Update properties of this object
319
+ def update!(**args)
320
+ @key = args[:key] if args.key?(:key)
321
+ @metadata = args[:metadata] if args.key?(:metadata)
322
+ @value = args[:value] if args.key?(:value)
323
+ end
324
+ end
325
+
326
+ # A contact group.
327
+ class ContactGroup
328
+ include Google::Apis::Core::Hashable
329
+
330
+ # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the resource.
331
+ # Used for web cache validation.
332
+ # Corresponds to the JSON property `etag`
333
+ # @return [String]
334
+ attr_accessor :etag
335
+
336
+ # Output only. The name translated and formatted in the viewer's account locale
337
+ # or the `Accept-Language` HTTP header locale for system groups names. Group
338
+ # names set by the owner are the same as name.
339
+ # Corresponds to the JSON property `formattedName`
340
+ # @return [String]
341
+ attr_accessor :formatted_name
342
+
343
+ # Output only. The contact group type.
344
+ # Corresponds to the JSON property `groupType`
345
+ # @return [String]
346
+ attr_accessor :group_type
347
+
348
+ # Output only. The total number of contacts in the group irrespective of max
349
+ # members in specified in the request.
350
+ # Corresponds to the JSON property `memberCount`
351
+ # @return [Fixnum]
352
+ attr_accessor :member_count
353
+
354
+ # Output only. The list of contact person resource names that are members of the
355
+ # contact group. The field is not populated for LIST requests and can only be
356
+ # updated through the [ModifyContactGroupMembers](/people/api/rest/v1/
357
+ # contactgroups/members/modify).
358
+ # Corresponds to the JSON property `memberResourceNames`
359
+ # @return [Array<String>]
360
+ attr_accessor :member_resource_names
361
+
362
+ # The metadata about a contact group.
363
+ # Corresponds to the JSON property `metadata`
364
+ # @return [Google::Apis::PeopleV1::ContactGroupMetadata]
365
+ attr_accessor :metadata
366
+
367
+ # The contact group name set by the group owner or a system provided name for
368
+ # system groups.
369
+ # Corresponds to the JSON property `name`
370
+ # @return [String]
371
+ attr_accessor :name
372
+
373
+ # The resource name for the contact group, assigned by the server. An ASCII
374
+ # string, in the form of `contactGroups/`contact_group_id``.
375
+ # Corresponds to the JSON property `resourceName`
376
+ # @return [String]
377
+ attr_accessor :resource_name
378
+
379
+ def initialize(**args)
380
+ update!(**args)
381
+ end
382
+
383
+ # Update properties of this object
384
+ def update!(**args)
385
+ @etag = args[:etag] if args.key?(:etag)
386
+ @formatted_name = args[:formatted_name] if args.key?(:formatted_name)
387
+ @group_type = args[:group_type] if args.key?(:group_type)
388
+ @member_count = args[:member_count] if args.key?(:member_count)
389
+ @member_resource_names = args[:member_resource_names] if args.key?(:member_resource_names)
390
+ @metadata = args[:metadata] if args.key?(:metadata)
391
+ @name = args[:name] if args.key?(:name)
392
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
393
+ end
394
+ end
395
+
396
+ # A Google contact group membership.
397
+ class ContactGroupMembership
398
+ include Google::Apis::Core::Hashable
399
+
400
+ # Output only. The contact group ID for the contact group membership.
401
+ # Corresponds to the JSON property `contactGroupId`
402
+ # @return [String]
403
+ attr_accessor :contact_group_id
404
+
405
+ # The resource name for the contact group, assigned by the server. An ASCII
406
+ # string, in the form of `contactGroups/`contact_group_id``. Only
407
+ # contact_group_resource_name can be used for modifying memberships. Any contact
408
+ # group membership can be removed, but only user group or "myContacts" or "
409
+ # starred" system groups memberships can be added. A contact must always have at
410
+ # least one contact group membership.
411
+ # Corresponds to the JSON property `contactGroupResourceName`
412
+ # @return [String]
413
+ attr_accessor :contact_group_resource_name
414
+
415
+ def initialize(**args)
416
+ update!(**args)
417
+ end
418
+
419
+ # Update properties of this object
420
+ def update!(**args)
421
+ @contact_group_id = args[:contact_group_id] if args.key?(:contact_group_id)
422
+ @contact_group_resource_name = args[:contact_group_resource_name] if args.key?(:contact_group_resource_name)
423
+ end
424
+ end
425
+
426
+ # The metadata about a contact group.
427
+ class ContactGroupMetadata
428
+ include Google::Apis::Core::Hashable
429
+
430
+ # Output only. True if the contact group resource has been deleted. Populated
431
+ # only for [`ListContactGroups`](/people/api/rest/v1/contactgroups/list)
432
+ # requests that include a sync token.
433
+ # Corresponds to the JSON property `deleted`
434
+ # @return [Boolean]
435
+ attr_accessor :deleted
436
+ alias_method :deleted?, :deleted
437
+
438
+ # Output only. The time the group was last updated.
439
+ # Corresponds to the JSON property `updateTime`
440
+ # @return [String]
441
+ attr_accessor :update_time
442
+
443
+ def initialize(**args)
444
+ update!(**args)
445
+ end
446
+
447
+ # Update properties of this object
448
+ def update!(**args)
449
+ @deleted = args[:deleted] if args.key?(:deleted)
450
+ @update_time = args[:update_time] if args.key?(:update_time)
451
+ end
452
+ end
453
+
454
+ # The response for a specific contact group.
455
+ class ContactGroupResponse
456
+ include Google::Apis::Core::Hashable
457
+
458
+ # A contact group.
459
+ # Corresponds to the JSON property `contactGroup`
460
+ # @return [Google::Apis::PeopleV1::ContactGroup]
461
+ attr_accessor :contact_group
462
+
463
+ # The original requested resource name.
464
+ # Corresponds to the JSON property `requestedResourceName`
465
+ # @return [String]
466
+ attr_accessor :requested_resource_name
467
+
468
+ # The `Status` type defines a logical error model that is suitable for different
469
+ # programming environments, including REST APIs and RPC APIs. It is used by [
470
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
471
+ # data: error code, error message, and error details. You can find out more
472
+ # about this error model and how to work with it in the [API Design Guide](https:
473
+ # //cloud.google.com/apis/design/errors).
474
+ # Corresponds to the JSON property `status`
475
+ # @return [Google::Apis::PeopleV1::Status]
476
+ attr_accessor :status
477
+
478
+ def initialize(**args)
479
+ update!(**args)
480
+ end
481
+
482
+ # Update properties of this object
483
+ def update!(**args)
484
+ @contact_group = args[:contact_group] if args.key?(:contact_group)
485
+ @requested_resource_name = args[:requested_resource_name] if args.key?(:requested_resource_name)
486
+ @status = args[:status] if args.key?(:status)
487
+ end
488
+ end
489
+
490
+ # A request to copy an "Other contact" to my contacts group.
491
+ class CopyOtherContactToMyContactsGroupRequest
492
+ include Google::Apis::Core::Hashable
493
+
494
+ # Required. A field mask to restrict which fields are copied into the new
495
+ # contact. Valid values are: * emailAddresses * names * phoneNumbers
496
+ # Corresponds to the JSON property `copyMask`
497
+ # @return [String]
498
+ attr_accessor :copy_mask
499
+
500
+ # Optional. A field mask to restrict which fields on the person are returned.
501
+ # Multiple fields can be specified by separating them with commas. Defaults to
502
+ # the copy mask with metadata and membership fields if not set. Valid values are:
503
+ # * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData
504
+ # * coverPhotos * emailAddresses * events * externalIds * genders * imClients *
505
+ # interests * locales * locations * memberships * metadata * miscKeywords *
506
+ # names * nicknames * occupations * organizations * phoneNumbers * photos *
507
+ # relations * sipAddresses * skills * urls * userDefined
508
+ # Corresponds to the JSON property `readMask`
509
+ # @return [String]
510
+ attr_accessor :read_mask
511
+
512
+ # Optional. A mask of what source types to return. Defaults to
513
+ # READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set.
514
+ # Corresponds to the JSON property `sources`
515
+ # @return [Array<String>]
516
+ attr_accessor :sources
517
+
518
+ def initialize(**args)
519
+ update!(**args)
520
+ end
521
+
522
+ # Update properties of this object
523
+ def update!(**args)
524
+ @copy_mask = args[:copy_mask] if args.key?(:copy_mask)
525
+ @read_mask = args[:read_mask] if args.key?(:read_mask)
526
+ @sources = args[:sources] if args.key?(:sources)
527
+ end
528
+ end
529
+
530
+ # A person's cover photo. A large image shown on the person's profile page that
531
+ # represents who they are or what they care about.
532
+ class CoverPhoto
533
+ include Google::Apis::Core::Hashable
534
+
535
+ # True if the cover photo is the default cover photo; false if the cover photo
536
+ # is a user-provided cover photo.
537
+ # Corresponds to the JSON property `default`
538
+ # @return [Boolean]
539
+ attr_accessor :default
540
+ alias_method :default?, :default
541
+
542
+ # Metadata about a field.
543
+ # Corresponds to the JSON property `metadata`
544
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
545
+ attr_accessor :metadata
546
+
547
+ # The URL of the cover photo.
548
+ # Corresponds to the JSON property `url`
549
+ # @return [String]
550
+ attr_accessor :url
551
+
552
+ def initialize(**args)
553
+ update!(**args)
554
+ end
555
+
556
+ # Update properties of this object
557
+ def update!(**args)
558
+ @default = args[:default] if args.key?(:default)
559
+ @metadata = args[:metadata] if args.key?(:metadata)
560
+ @url = args[:url] if args.key?(:url)
561
+ end
562
+ end
563
+
564
+ # A request to create a new contact group.
565
+ class CreateContactGroupRequest
566
+ include Google::Apis::Core::Hashable
567
+
568
+ # A contact group.
569
+ # Corresponds to the JSON property `contactGroup`
570
+ # @return [Google::Apis::PeopleV1::ContactGroup]
571
+ attr_accessor :contact_group
572
+
573
+ def initialize(**args)
574
+ update!(**args)
575
+ end
576
+
577
+ # Update properties of this object
578
+ def update!(**args)
579
+ @contact_group = args[:contact_group] if args.key?(:contact_group)
580
+ end
581
+ end
582
+
583
+ # Represents a whole or partial calendar date, such as a birthday. The time of
584
+ # day and time zone are either specified elsewhere or are insignificant. The
585
+ # date is relative to the Gregorian Calendar. This can represent one of the
586
+ # following: * A full date, with non-zero year, month, and day values * A month
587
+ # and day value, with a zero year, such as an anniversary * A year on its own,
588
+ # with zero month and day values * A year and month value, with a zero day, such
589
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
590
+ # google.protobuf.Timestamp`.
591
+ class Date
592
+ include Google::Apis::Core::Hashable
593
+
594
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
595
+ # specify a year by itself or a year and month where the day isn't significant.
596
+ # Corresponds to the JSON property `day`
597
+ # @return [Fixnum]
598
+ attr_accessor :day
599
+
600
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
601
+ # and day.
602
+ # Corresponds to the JSON property `month`
603
+ # @return [Fixnum]
604
+ attr_accessor :month
605
+
606
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
607
+ # year.
608
+ # Corresponds to the JSON property `year`
609
+ # @return [Fixnum]
610
+ attr_accessor :year
611
+
612
+ def initialize(**args)
613
+ update!(**args)
614
+ end
615
+
616
+ # Update properties of this object
617
+ def update!(**args)
618
+ @day = args[:day] if args.key?(:day)
619
+ @month = args[:month] if args.key?(:month)
620
+ @year = args[:year] if args.key?(:year)
621
+ end
622
+ end
623
+
624
+ # The response for deleteing a contact's photo.
625
+ class DeleteContactPhotoResponse
626
+ include Google::Apis::Core::Hashable
627
+
628
+ # Information about a person merged from various data sources such as the
629
+ # authenticated user's contacts and profile data. Most fields can have multiple
630
+ # items. The items in a field have no guaranteed order, but each non-empty field
631
+ # is guaranteed to have exactly one field with `metadata.primary` set to true.
632
+ # Corresponds to the JSON property `person`
633
+ # @return [Google::Apis::PeopleV1::Person]
634
+ attr_accessor :person
635
+
636
+ def initialize(**args)
637
+ update!(**args)
638
+ end
639
+
640
+ # Update properties of this object
641
+ def update!(**args)
642
+ @person = args[:person] if args.key?(:person)
643
+ end
644
+ end
645
+
646
+ # A G Suite Domain membership.
647
+ class DomainMembership
648
+ include Google::Apis::Core::Hashable
649
+
650
+ # True if the person is in the viewer's G Suite domain.
651
+ # Corresponds to the JSON property `inViewerDomain`
652
+ # @return [Boolean]
653
+ attr_accessor :in_viewer_domain
654
+ alias_method :in_viewer_domain?, :in_viewer_domain
655
+
656
+ def initialize(**args)
657
+ update!(**args)
658
+ end
659
+
660
+ # Update properties of this object
661
+ def update!(**args)
662
+ @in_viewer_domain = args[:in_viewer_domain] if args.key?(:in_viewer_domain)
663
+ end
664
+ end
665
+
666
+ # A person's email address.
667
+ class EmailAddress
668
+ include Google::Apis::Core::Hashable
669
+
670
+ # The display name of the email.
671
+ # Corresponds to the JSON property `displayName`
672
+ # @return [String]
673
+ attr_accessor :display_name
674
+
675
+ # Output only. The type of the email address translated and formatted in the
676
+ # viewer's account locale or the `Accept-Language` HTTP header locale.
677
+ # Corresponds to the JSON property `formattedType`
678
+ # @return [String]
679
+ attr_accessor :formatted_type
680
+
681
+ # Metadata about a field.
682
+ # Corresponds to the JSON property `metadata`
683
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
684
+ attr_accessor :metadata
685
+
686
+ # The type of the email address. The type can be custom or one of these
687
+ # predefined values: * `home` * `work` * `other`
688
+ # Corresponds to the JSON property `type`
689
+ # @return [String]
690
+ attr_accessor :type
691
+
692
+ # The email address.
693
+ # Corresponds to the JSON property `value`
694
+ # @return [String]
695
+ attr_accessor :value
696
+
697
+ def initialize(**args)
698
+ update!(**args)
699
+ end
700
+
701
+ # Update properties of this object
702
+ def update!(**args)
703
+ @display_name = args[:display_name] if args.key?(:display_name)
704
+ @formatted_type = args[:formatted_type] if args.key?(:formatted_type)
705
+ @metadata = args[:metadata] if args.key?(:metadata)
706
+ @type = args[:type] if args.key?(:type)
707
+ @value = args[:value] if args.key?(:value)
708
+ end
709
+ end
710
+
711
+ # A generic empty message that you can re-use to avoid defining duplicated empty
712
+ # messages in your APIs. A typical example is to use it as the request or the
713
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
714
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
715
+ # `Empty` is empty JSON object ````.
716
+ class Empty
717
+ include Google::Apis::Core::Hashable
718
+
719
+ def initialize(**args)
720
+ update!(**args)
721
+ end
722
+
723
+ # Update properties of this object
724
+ def update!(**args)
725
+ end
726
+ end
727
+
728
+ # An event related to the person.
729
+ class Event
730
+ include Google::Apis::Core::Hashable
731
+
732
+ # Represents a whole or partial calendar date, such as a birthday. The time of
733
+ # day and time zone are either specified elsewhere or are insignificant. The
734
+ # date is relative to the Gregorian Calendar. This can represent one of the
735
+ # following: * A full date, with non-zero year, month, and day values * A month
736
+ # and day value, with a zero year, such as an anniversary * A year on its own,
737
+ # with zero month and day values * A year and month value, with a zero day, such
738
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
739
+ # google.protobuf.Timestamp`.
740
+ # Corresponds to the JSON property `date`
741
+ # @return [Google::Apis::PeopleV1::Date]
742
+ attr_accessor :date
743
+
744
+ # Output only. The type of the event translated and formatted in the viewer's
745
+ # account locale or the `Accept-Language` HTTP header locale.
746
+ # Corresponds to the JSON property `formattedType`
747
+ # @return [String]
748
+ attr_accessor :formatted_type
749
+
750
+ # Metadata about a field.
751
+ # Corresponds to the JSON property `metadata`
752
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
753
+ attr_accessor :metadata
754
+
755
+ # The type of the event. The type can be custom or one of these predefined
756
+ # values: * `anniversary` * `other`
757
+ # Corresponds to the JSON property `type`
758
+ # @return [String]
759
+ attr_accessor :type
760
+
761
+ def initialize(**args)
762
+ update!(**args)
763
+ end
764
+
765
+ # Update properties of this object
766
+ def update!(**args)
767
+ @date = args[:date] if args.key?(:date)
768
+ @formatted_type = args[:formatted_type] if args.key?(:formatted_type)
769
+ @metadata = args[:metadata] if args.key?(:metadata)
770
+ @type = args[:type] if args.key?(:type)
771
+ end
772
+ end
773
+
774
+ # An identifier from an external entity related to the person.
775
+ class ExternalId
776
+ include Google::Apis::Core::Hashable
777
+
778
+ # Output only. The type of the event translated and formatted in the viewer's
779
+ # account locale or the `Accept-Language` HTTP header locale.
780
+ # Corresponds to the JSON property `formattedType`
781
+ # @return [String]
782
+ attr_accessor :formatted_type
783
+
784
+ # Metadata about a field.
785
+ # Corresponds to the JSON property `metadata`
786
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
787
+ attr_accessor :metadata
788
+
789
+ # The type of the external ID. The type can be custom or one of these predefined
790
+ # values: * `account` * `customer` * `loginId` * `network` * `organization`
791
+ # Corresponds to the JSON property `type`
792
+ # @return [String]
793
+ attr_accessor :type
794
+
795
+ # The value of the external ID.
796
+ # Corresponds to the JSON property `value`
797
+ # @return [String]
798
+ attr_accessor :value
799
+
800
+ def initialize(**args)
801
+ update!(**args)
802
+ end
803
+
804
+ # Update properties of this object
805
+ def update!(**args)
806
+ @formatted_type = args[:formatted_type] if args.key?(:formatted_type)
807
+ @metadata = args[:metadata] if args.key?(:metadata)
808
+ @type = args[:type] if args.key?(:type)
809
+ @value = args[:value] if args.key?(:value)
810
+ end
811
+ end
812
+
813
+ # Metadata about a field.
814
+ class FieldMetadata
815
+ include Google::Apis::Core::Hashable
816
+
817
+ # True if the field is the primary field; false if the field is a secondary
818
+ # field.
819
+ # Corresponds to the JSON property `primary`
820
+ # @return [Boolean]
821
+ attr_accessor :primary
822
+ alias_method :primary?, :primary
823
+
824
+ # The source of a field.
825
+ # Corresponds to the JSON property `source`
826
+ # @return [Google::Apis::PeopleV1::Source]
827
+ attr_accessor :source
828
+
829
+ # Output only. True if the field is verified; false if the field is unverified.
830
+ # A verified field is typically a name, email address, phone number, or website
831
+ # that has been confirmed to be owned by the person.
832
+ # Corresponds to the JSON property `verified`
833
+ # @return [Boolean]
834
+ attr_accessor :verified
835
+ alias_method :verified?, :verified
836
+
837
+ def initialize(**args)
838
+ update!(**args)
839
+ end
840
+
841
+ # Update properties of this object
842
+ def update!(**args)
843
+ @primary = args[:primary] if args.key?(:primary)
844
+ @source = args[:source] if args.key?(:source)
845
+ @verified = args[:verified] if args.key?(:verified)
846
+ end
847
+ end
848
+
849
+ # The name that should be used to sort the person in a list.
850
+ class FileAs
851
+ include Google::Apis::Core::Hashable
852
+
853
+ # Metadata about a field.
854
+ # Corresponds to the JSON property `metadata`
855
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
856
+ attr_accessor :metadata
857
+
858
+ # The file-as value
859
+ # Corresponds to the JSON property `value`
860
+ # @return [String]
861
+ attr_accessor :value
862
+
863
+ def initialize(**args)
864
+ update!(**args)
865
+ end
866
+
867
+ # Update properties of this object
868
+ def update!(**args)
869
+ @metadata = args[:metadata] if args.key?(:metadata)
870
+ @value = args[:value] if args.key?(:value)
871
+ end
872
+ end
873
+
874
+ # A person's gender.
875
+ class Gender
876
+ include Google::Apis::Core::Hashable
877
+
878
+ # The type of pronouns that should be used to address the person. The value can
879
+ # be custom or one of these predefined values: * `male` * `female` * `other`
880
+ # Corresponds to the JSON property `addressMeAs`
881
+ # @return [String]
882
+ attr_accessor :address_me_as
883
+
884
+ # Output only. The value of the gender translated and formatted in the viewer's
885
+ # account locale or the `Accept-Language` HTTP header locale. Unspecified or
886
+ # custom value are not localized.
887
+ # Corresponds to the JSON property `formattedValue`
888
+ # @return [String]
889
+ attr_accessor :formatted_value
890
+
891
+ # Metadata about a field.
892
+ # Corresponds to the JSON property `metadata`
893
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
894
+ attr_accessor :metadata
895
+
896
+ # The gender for the person. The gender can be custom or one of these predefined
897
+ # values: * `male` * `female` * `unspecified`
898
+ # Corresponds to the JSON property `value`
899
+ # @return [String]
900
+ attr_accessor :value
901
+
902
+ def initialize(**args)
903
+ update!(**args)
904
+ end
905
+
906
+ # Update properties of this object
907
+ def update!(**args)
908
+ @address_me_as = args[:address_me_as] if args.key?(:address_me_as)
909
+ @formatted_value = args[:formatted_value] if args.key?(:formatted_value)
910
+ @metadata = args[:metadata] if args.key?(:metadata)
911
+ @value = args[:value] if args.key?(:value)
912
+ end
913
+ end
914
+
915
+ # The response to a get request for a list of people by resource name.
916
+ class GetPeopleResponse
917
+ include Google::Apis::Core::Hashable
918
+
919
+ # The response for each requested resource name.
920
+ # Corresponds to the JSON property `responses`
921
+ # @return [Array<Google::Apis::PeopleV1::PersonResponse>]
922
+ attr_accessor :responses
923
+
924
+ def initialize(**args)
925
+ update!(**args)
926
+ end
927
+
928
+ # Update properties of this object
929
+ def update!(**args)
930
+ @responses = args[:responses] if args.key?(:responses)
931
+ end
932
+ end
933
+
934
+ # A person's instant messaging client.
935
+ class ImClient
936
+ include Google::Apis::Core::Hashable
937
+
938
+ # Output only. The protocol of the IM client formatted in the viewer's account
939
+ # locale or the `Accept-Language` HTTP header locale.
940
+ # Corresponds to the JSON property `formattedProtocol`
941
+ # @return [String]
942
+ attr_accessor :formatted_protocol
943
+
944
+ # Output only. The type of the IM client translated and formatted in the viewer'
945
+ # s account locale or the `Accept-Language` HTTP header locale.
946
+ # Corresponds to the JSON property `formattedType`
947
+ # @return [String]
948
+ attr_accessor :formatted_type
949
+
950
+ # Metadata about a field.
951
+ # Corresponds to the JSON property `metadata`
952
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
953
+ attr_accessor :metadata
954
+
955
+ # The protocol of the IM client. The protocol can be custom or one of these
956
+ # predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` *
957
+ # `icq` * `jabber` * `netMeeting`
958
+ # Corresponds to the JSON property `protocol`
959
+ # @return [String]
960
+ attr_accessor :protocol
961
+
962
+ # The type of the IM client. The type can be custom or one of these predefined
963
+ # values: * `home` * `work` * `other`
964
+ # Corresponds to the JSON property `type`
965
+ # @return [String]
966
+ attr_accessor :type
967
+
968
+ # The user name used in the IM client.
969
+ # Corresponds to the JSON property `username`
970
+ # @return [String]
971
+ attr_accessor :username
972
+
973
+ def initialize(**args)
974
+ update!(**args)
975
+ end
976
+
977
+ # Update properties of this object
978
+ def update!(**args)
979
+ @formatted_protocol = args[:formatted_protocol] if args.key?(:formatted_protocol)
980
+ @formatted_type = args[:formatted_type] if args.key?(:formatted_type)
981
+ @metadata = args[:metadata] if args.key?(:metadata)
982
+ @protocol = args[:protocol] if args.key?(:protocol)
983
+ @type = args[:type] if args.key?(:type)
984
+ @username = args[:username] if args.key?(:username)
985
+ end
986
+ end
987
+
988
+ # One of the person's interests.
989
+ class Interest
990
+ include Google::Apis::Core::Hashable
991
+
992
+ # Metadata about a field.
993
+ # Corresponds to the JSON property `metadata`
994
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
995
+ attr_accessor :metadata
996
+
997
+ # The interest; for example, `stargazing`.
998
+ # Corresponds to the JSON property `value`
999
+ # @return [String]
1000
+ attr_accessor :value
1001
+
1002
+ def initialize(**args)
1003
+ update!(**args)
1004
+ end
1005
+
1006
+ # Update properties of this object
1007
+ def update!(**args)
1008
+ @metadata = args[:metadata] if args.key?(:metadata)
1009
+ @value = args[:value] if args.key?(:value)
1010
+ end
1011
+ end
1012
+
1013
+ # The response to a request for the authenticated user's connections.
1014
+ class ListConnectionsResponse
1015
+ include Google::Apis::Core::Hashable
1016
+
1017
+ # The list of people that the requestor is connected to.
1018
+ # Corresponds to the JSON property `connections`
1019
+ # @return [Array<Google::Apis::PeopleV1::Person>]
1020
+ attr_accessor :connections
1021
+
1022
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1023
+ # field is omitted, there are no subsequent pages.
1024
+ # Corresponds to the JSON property `nextPageToken`
1025
+ # @return [String]
1026
+ attr_accessor :next_page_token
1027
+
1028
+ # A token, which can be sent as `sync_token` to retrieve changes since the last
1029
+ # request. Request must set `request_sync_token` to return the sync token. When
1030
+ # the response is paginated, only the last page will contain `nextSyncToken`.
1031
+ # Corresponds to the JSON property `nextSyncToken`
1032
+ # @return [String]
1033
+ attr_accessor :next_sync_token
1034
+
1035
+ # The total number of items in the list without pagination.
1036
+ # Corresponds to the JSON property `totalItems`
1037
+ # @return [Fixnum]
1038
+ attr_accessor :total_items
1039
+
1040
+ # **DEPRECATED** (Please use totalItems) The total number of people in the list
1041
+ # without pagination.
1042
+ # Corresponds to the JSON property `totalPeople`
1043
+ # @return [Fixnum]
1044
+ attr_accessor :total_people
1045
+
1046
+ def initialize(**args)
1047
+ update!(**args)
1048
+ end
1049
+
1050
+ # Update properties of this object
1051
+ def update!(**args)
1052
+ @connections = args[:connections] if args.key?(:connections)
1053
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1054
+ @next_sync_token = args[:next_sync_token] if args.key?(:next_sync_token)
1055
+ @total_items = args[:total_items] if args.key?(:total_items)
1056
+ @total_people = args[:total_people] if args.key?(:total_people)
1057
+ end
1058
+ end
1059
+
1060
+ # The response to a list contact groups request.
1061
+ class ListContactGroupsResponse
1062
+ include Google::Apis::Core::Hashable
1063
+
1064
+ # The list of contact groups. Members of the contact groups are not populated.
1065
+ # Corresponds to the JSON property `contactGroups`
1066
+ # @return [Array<Google::Apis::PeopleV1::ContactGroup>]
1067
+ attr_accessor :contact_groups
1068
+
1069
+ # The token that can be used to retrieve the next page of results.
1070
+ # Corresponds to the JSON property `nextPageToken`
1071
+ # @return [String]
1072
+ attr_accessor :next_page_token
1073
+
1074
+ # The token that can be used to retrieve changes since the last request.
1075
+ # Corresponds to the JSON property `nextSyncToken`
1076
+ # @return [String]
1077
+ attr_accessor :next_sync_token
1078
+
1079
+ # The total number of items in the list without pagination.
1080
+ # Corresponds to the JSON property `totalItems`
1081
+ # @return [Fixnum]
1082
+ attr_accessor :total_items
1083
+
1084
+ def initialize(**args)
1085
+ update!(**args)
1086
+ end
1087
+
1088
+ # Update properties of this object
1089
+ def update!(**args)
1090
+ @contact_groups = args[:contact_groups] if args.key?(:contact_groups)
1091
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1092
+ @next_sync_token = args[:next_sync_token] if args.key?(:next_sync_token)
1093
+ @total_items = args[:total_items] if args.key?(:total_items)
1094
+ end
1095
+ end
1096
+
1097
+ # The response to a request for the authenticated user's domain directory.
1098
+ class ListDirectoryPeopleResponse
1099
+ include Google::Apis::Core::Hashable
1100
+
1101
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1102
+ # field is omitted, there are no subsequent pages.
1103
+ # Corresponds to the JSON property `nextPageToken`
1104
+ # @return [String]
1105
+ attr_accessor :next_page_token
1106
+
1107
+ # A token, which can be sent as `sync_token` to retrieve changes since the last
1108
+ # request. Request must set `request_sync_token` to return the sync token.
1109
+ # Corresponds to the JSON property `nextSyncToken`
1110
+ # @return [String]
1111
+ attr_accessor :next_sync_token
1112
+
1113
+ # The list of people in the domain directory.
1114
+ # Corresponds to the JSON property `people`
1115
+ # @return [Array<Google::Apis::PeopleV1::Person>]
1116
+ attr_accessor :people
1117
+
1118
+ def initialize(**args)
1119
+ update!(**args)
1120
+ end
1121
+
1122
+ # Update properties of this object
1123
+ def update!(**args)
1124
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1125
+ @next_sync_token = args[:next_sync_token] if args.key?(:next_sync_token)
1126
+ @people = args[:people] if args.key?(:people)
1127
+ end
1128
+ end
1129
+
1130
+ # The response to a request for the authenticated user's "Other contacts".
1131
+ class ListOtherContactsResponse
1132
+ include Google::Apis::Core::Hashable
1133
+
1134
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1135
+ # field is omitted, there are no subsequent pages.
1136
+ # Corresponds to the JSON property `nextPageToken`
1137
+ # @return [String]
1138
+ attr_accessor :next_page_token
1139
+
1140
+ # A token, which can be sent as `sync_token` to retrieve changes since the last
1141
+ # request. Request must set `request_sync_token` to return the sync token.
1142
+ # Corresponds to the JSON property `nextSyncToken`
1143
+ # @return [String]
1144
+ attr_accessor :next_sync_token
1145
+
1146
+ # The list of "Other contacts" returned as Person resources. "Other contacts"
1147
+ # support a limited subset of fields. See ListOtherContactsRequest.request_mask
1148
+ # for more detailed information.
1149
+ # Corresponds to the JSON property `otherContacts`
1150
+ # @return [Array<Google::Apis::PeopleV1::Person>]
1151
+ attr_accessor :other_contacts
1152
+
1153
+ def initialize(**args)
1154
+ update!(**args)
1155
+ end
1156
+
1157
+ # Update properties of this object
1158
+ def update!(**args)
1159
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1160
+ @next_sync_token = args[:next_sync_token] if args.key?(:next_sync_token)
1161
+ @other_contacts = args[:other_contacts] if args.key?(:other_contacts)
1162
+ end
1163
+ end
1164
+
1165
+ # A person's locale preference.
1166
+ class Locale
1167
+ include Google::Apis::Core::Hashable
1168
+
1169
+ # Metadata about a field.
1170
+ # Corresponds to the JSON property `metadata`
1171
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
1172
+ attr_accessor :metadata
1173
+
1174
+ # The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag
1175
+ # representing the locale.
1176
+ # Corresponds to the JSON property `value`
1177
+ # @return [String]
1178
+ attr_accessor :value
1179
+
1180
+ def initialize(**args)
1181
+ update!(**args)
1182
+ end
1183
+
1184
+ # Update properties of this object
1185
+ def update!(**args)
1186
+ @metadata = args[:metadata] if args.key?(:metadata)
1187
+ @value = args[:value] if args.key?(:value)
1188
+ end
1189
+ end
1190
+
1191
+ # A person's location.
1192
+ class Location
1193
+ include Google::Apis::Core::Hashable
1194
+
1195
+ # The building identifier.
1196
+ # Corresponds to the JSON property `buildingId`
1197
+ # @return [String]
1198
+ attr_accessor :building_id
1199
+
1200
+ # Whether the location is the current location.
1201
+ # Corresponds to the JSON property `current`
1202
+ # @return [Boolean]
1203
+ attr_accessor :current
1204
+ alias_method :current?, :current
1205
+
1206
+ # The individual desk location.
1207
+ # Corresponds to the JSON property `deskCode`
1208
+ # @return [String]
1209
+ attr_accessor :desk_code
1210
+
1211
+ # The floor name or number.
1212
+ # Corresponds to the JSON property `floor`
1213
+ # @return [String]
1214
+ attr_accessor :floor
1215
+
1216
+ # The floor section in `floor_name`.
1217
+ # Corresponds to the JSON property `floorSection`
1218
+ # @return [String]
1219
+ attr_accessor :floor_section
1220
+
1221
+ # Metadata about a field.
1222
+ # Corresponds to the JSON property `metadata`
1223
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
1224
+ attr_accessor :metadata
1225
+
1226
+ # The type of the location. The type can be custom or one of these predefined
1227
+ # values: * `desk` * `grewUp`
1228
+ # Corresponds to the JSON property `type`
1229
+ # @return [String]
1230
+ attr_accessor :type
1231
+
1232
+ # The free-form value of the location.
1233
+ # Corresponds to the JSON property `value`
1234
+ # @return [String]
1235
+ attr_accessor :value
1236
+
1237
+ def initialize(**args)
1238
+ update!(**args)
1239
+ end
1240
+
1241
+ # Update properties of this object
1242
+ def update!(**args)
1243
+ @building_id = args[:building_id] if args.key?(:building_id)
1244
+ @current = args[:current] if args.key?(:current)
1245
+ @desk_code = args[:desk_code] if args.key?(:desk_code)
1246
+ @floor = args[:floor] if args.key?(:floor)
1247
+ @floor_section = args[:floor_section] if args.key?(:floor_section)
1248
+ @metadata = args[:metadata] if args.key?(:metadata)
1249
+ @type = args[:type] if args.key?(:type)
1250
+ @value = args[:value] if args.key?(:value)
1251
+ end
1252
+ end
1253
+
1254
+ # A person's membership in a group. Only contact group memberships can be
1255
+ # modified.
1256
+ class Membership
1257
+ include Google::Apis::Core::Hashable
1258
+
1259
+ # A Google contact group membership.
1260
+ # Corresponds to the JSON property `contactGroupMembership`
1261
+ # @return [Google::Apis::PeopleV1::ContactGroupMembership]
1262
+ attr_accessor :contact_group_membership
1263
+
1264
+ # A G Suite Domain membership.
1265
+ # Corresponds to the JSON property `domainMembership`
1266
+ # @return [Google::Apis::PeopleV1::DomainMembership]
1267
+ attr_accessor :domain_membership
1268
+
1269
+ # Metadata about a field.
1270
+ # Corresponds to the JSON property `metadata`
1271
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
1272
+ attr_accessor :metadata
1273
+
1274
+ def initialize(**args)
1275
+ update!(**args)
1276
+ end
1277
+
1278
+ # Update properties of this object
1279
+ def update!(**args)
1280
+ @contact_group_membership = args[:contact_group_membership] if args.key?(:contact_group_membership)
1281
+ @domain_membership = args[:domain_membership] if args.key?(:domain_membership)
1282
+ @metadata = args[:metadata] if args.key?(:metadata)
1283
+ end
1284
+ end
1285
+
1286
+ # A person's miscellaneous keyword.
1287
+ class MiscKeyword
1288
+ include Google::Apis::Core::Hashable
1289
+
1290
+ # Output only. The type of the miscellaneous keyword translated and formatted in
1291
+ # the viewer's account locale or the `Accept-Language` HTTP header locale.
1292
+ # Corresponds to the JSON property `formattedType`
1293
+ # @return [String]
1294
+ attr_accessor :formatted_type
1295
+
1296
+ # Metadata about a field.
1297
+ # Corresponds to the JSON property `metadata`
1298
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
1299
+ attr_accessor :metadata
1300
+
1301
+ # The miscellaneous keyword type.
1302
+ # Corresponds to the JSON property `type`
1303
+ # @return [String]
1304
+ attr_accessor :type
1305
+
1306
+ # The value of the miscellaneous keyword.
1307
+ # Corresponds to the JSON property `value`
1308
+ # @return [String]
1309
+ attr_accessor :value
1310
+
1311
+ def initialize(**args)
1312
+ update!(**args)
1313
+ end
1314
+
1315
+ # Update properties of this object
1316
+ def update!(**args)
1317
+ @formatted_type = args[:formatted_type] if args.key?(:formatted_type)
1318
+ @metadata = args[:metadata] if args.key?(:metadata)
1319
+ @type = args[:type] if args.key?(:type)
1320
+ @value = args[:value] if args.key?(:value)
1321
+ end
1322
+ end
1323
+
1324
+ # A request to modify an existing contact group's members. Contacts can be
1325
+ # removed from any group but they can only be added to a user group or "
1326
+ # myContacts" or "starred" system groups.
1327
+ class ModifyContactGroupMembersRequest
1328
+ include Google::Apis::Core::Hashable
1329
+
1330
+ # Optional. The resource names of the contact people to add in the form of `
1331
+ # people/`person_id``. The total number of resource names in `
1332
+ # resource_names_to_add` and `resource_names_to_remove` must be less than or
1333
+ # equal to 1000.
1334
+ # Corresponds to the JSON property `resourceNamesToAdd`
1335
+ # @return [Array<String>]
1336
+ attr_accessor :resource_names_to_add
1337
+
1338
+ # Optional. The resource names of the contact people to remove in the form of `
1339
+ # people/`person_id``. The total number of resource names in `
1340
+ # resource_names_to_add` and `resource_names_to_remove` must be less than or
1341
+ # equal to 1000.
1342
+ # Corresponds to the JSON property `resourceNamesToRemove`
1343
+ # @return [Array<String>]
1344
+ attr_accessor :resource_names_to_remove
1345
+
1346
+ def initialize(**args)
1347
+ update!(**args)
1348
+ end
1349
+
1350
+ # Update properties of this object
1351
+ def update!(**args)
1352
+ @resource_names_to_add = args[:resource_names_to_add] if args.key?(:resource_names_to_add)
1353
+ @resource_names_to_remove = args[:resource_names_to_remove] if args.key?(:resource_names_to_remove)
1354
+ end
1355
+ end
1356
+
1357
+ # The response to a modify contact group members request.
1358
+ class ModifyContactGroupMembersResponse
1359
+ include Google::Apis::Core::Hashable
1360
+
1361
+ # The contact people resource names that cannot be removed from their last
1362
+ # contact group.
1363
+ # Corresponds to the JSON property `canNotRemoveLastContactGroupResourceNames`
1364
+ # @return [Array<String>]
1365
+ attr_accessor :can_not_remove_last_contact_group_resource_names
1366
+
1367
+ # The contact people resource names that were not found.
1368
+ # Corresponds to the JSON property `notFoundResourceNames`
1369
+ # @return [Array<String>]
1370
+ attr_accessor :not_found_resource_names
1371
+
1372
+ def initialize(**args)
1373
+ update!(**args)
1374
+ end
1375
+
1376
+ # Update properties of this object
1377
+ def update!(**args)
1378
+ @can_not_remove_last_contact_group_resource_names = args[:can_not_remove_last_contact_group_resource_names] if args.key?(:can_not_remove_last_contact_group_resource_names)
1379
+ @not_found_resource_names = args[:not_found_resource_names] if args.key?(:not_found_resource_names)
1380
+ end
1381
+ end
1382
+
1383
+ # A person's name. If the name is a mononym, the family name is empty.
1384
+ class Name
1385
+ include Google::Apis::Core::Hashable
1386
+
1387
+ # Output only. The display name formatted according to the locale specified by
1388
+ # the viewer's account or the `Accept-Language` HTTP header.
1389
+ # Corresponds to the JSON property `displayName`
1390
+ # @return [String]
1391
+ attr_accessor :display_name
1392
+
1393
+ # Output only. The display name with the last name first formatted according to
1394
+ # the locale specified by the viewer's account or the `Accept-Language` HTTP
1395
+ # header.
1396
+ # Corresponds to the JSON property `displayNameLastFirst`
1397
+ # @return [String]
1398
+ attr_accessor :display_name_last_first
1399
+
1400
+ # The family name.
1401
+ # Corresponds to the JSON property `familyName`
1402
+ # @return [String]
1403
+ attr_accessor :family_name
1404
+
1405
+ # The given name.
1406
+ # Corresponds to the JSON property `givenName`
1407
+ # @return [String]
1408
+ attr_accessor :given_name
1409
+
1410
+ # The honorific prefixes, such as `Mrs.` or `Dr.`
1411
+ # Corresponds to the JSON property `honorificPrefix`
1412
+ # @return [String]
1413
+ attr_accessor :honorific_prefix
1414
+
1415
+ # The honorific suffixes, such as `Jr.`
1416
+ # Corresponds to the JSON property `honorificSuffix`
1417
+ # @return [String]
1418
+ attr_accessor :honorific_suffix
1419
+
1420
+ # Metadata about a field.
1421
+ # Corresponds to the JSON property `metadata`
1422
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
1423
+ attr_accessor :metadata
1424
+
1425
+ # The middle name(s).
1426
+ # Corresponds to the JSON property `middleName`
1427
+ # @return [String]
1428
+ attr_accessor :middle_name
1429
+
1430
+ # The family name spelled as it sounds.
1431
+ # Corresponds to the JSON property `phoneticFamilyName`
1432
+ # @return [String]
1433
+ attr_accessor :phonetic_family_name
1434
+
1435
+ # The full name spelled as it sounds.
1436
+ # Corresponds to the JSON property `phoneticFullName`
1437
+ # @return [String]
1438
+ attr_accessor :phonetic_full_name
1439
+
1440
+ # The given name spelled as it sounds.
1441
+ # Corresponds to the JSON property `phoneticGivenName`
1442
+ # @return [String]
1443
+ attr_accessor :phonetic_given_name
1444
+
1445
+ # The honorific prefixes spelled as they sound.
1446
+ # Corresponds to the JSON property `phoneticHonorificPrefix`
1447
+ # @return [String]
1448
+ attr_accessor :phonetic_honorific_prefix
1449
+
1450
+ # The honorific suffixes spelled as they sound.
1451
+ # Corresponds to the JSON property `phoneticHonorificSuffix`
1452
+ # @return [String]
1453
+ attr_accessor :phonetic_honorific_suffix
1454
+
1455
+ # The middle name(s) spelled as they sound.
1456
+ # Corresponds to the JSON property `phoneticMiddleName`
1457
+ # @return [String]
1458
+ attr_accessor :phonetic_middle_name
1459
+
1460
+ # The free form name value.
1461
+ # Corresponds to the JSON property `unstructuredName`
1462
+ # @return [String]
1463
+ attr_accessor :unstructured_name
1464
+
1465
+ def initialize(**args)
1466
+ update!(**args)
1467
+ end
1468
+
1469
+ # Update properties of this object
1470
+ def update!(**args)
1471
+ @display_name = args[:display_name] if args.key?(:display_name)
1472
+ @display_name_last_first = args[:display_name_last_first] if args.key?(:display_name_last_first)
1473
+ @family_name = args[:family_name] if args.key?(:family_name)
1474
+ @given_name = args[:given_name] if args.key?(:given_name)
1475
+ @honorific_prefix = args[:honorific_prefix] if args.key?(:honorific_prefix)
1476
+ @honorific_suffix = args[:honorific_suffix] if args.key?(:honorific_suffix)
1477
+ @metadata = args[:metadata] if args.key?(:metadata)
1478
+ @middle_name = args[:middle_name] if args.key?(:middle_name)
1479
+ @phonetic_family_name = args[:phonetic_family_name] if args.key?(:phonetic_family_name)
1480
+ @phonetic_full_name = args[:phonetic_full_name] if args.key?(:phonetic_full_name)
1481
+ @phonetic_given_name = args[:phonetic_given_name] if args.key?(:phonetic_given_name)
1482
+ @phonetic_honorific_prefix = args[:phonetic_honorific_prefix] if args.key?(:phonetic_honorific_prefix)
1483
+ @phonetic_honorific_suffix = args[:phonetic_honorific_suffix] if args.key?(:phonetic_honorific_suffix)
1484
+ @phonetic_middle_name = args[:phonetic_middle_name] if args.key?(:phonetic_middle_name)
1485
+ @unstructured_name = args[:unstructured_name] if args.key?(:unstructured_name)
1486
+ end
1487
+ end
1488
+
1489
+ # A person's nickname.
1490
+ class Nickname
1491
+ include Google::Apis::Core::Hashable
1492
+
1493
+ # Metadata about a field.
1494
+ # Corresponds to the JSON property `metadata`
1495
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
1496
+ attr_accessor :metadata
1497
+
1498
+ # The type of the nickname.
1499
+ # Corresponds to the JSON property `type`
1500
+ # @return [String]
1501
+ attr_accessor :type
1502
+
1503
+ # The nickname.
1504
+ # Corresponds to the JSON property `value`
1505
+ # @return [String]
1506
+ attr_accessor :value
1507
+
1508
+ def initialize(**args)
1509
+ update!(**args)
1510
+ end
1511
+
1512
+ # Update properties of this object
1513
+ def update!(**args)
1514
+ @metadata = args[:metadata] if args.key?(:metadata)
1515
+ @type = args[:type] if args.key?(:type)
1516
+ @value = args[:value] if args.key?(:value)
1517
+ end
1518
+ end
1519
+
1520
+ # A person's occupation.
1521
+ class Occupation
1522
+ include Google::Apis::Core::Hashable
1523
+
1524
+ # Metadata about a field.
1525
+ # Corresponds to the JSON property `metadata`
1526
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
1527
+ attr_accessor :metadata
1528
+
1529
+ # The occupation; for example, `carpenter`.
1530
+ # Corresponds to the JSON property `value`
1531
+ # @return [String]
1532
+ attr_accessor :value
1533
+
1534
+ def initialize(**args)
1535
+ update!(**args)
1536
+ end
1537
+
1538
+ # Update properties of this object
1539
+ def update!(**args)
1540
+ @metadata = args[:metadata] if args.key?(:metadata)
1541
+ @value = args[:value] if args.key?(:value)
1542
+ end
1543
+ end
1544
+
1545
+ # A person's past or current organization. Overlapping date ranges are permitted.
1546
+ class Organization
1547
+ include Google::Apis::Core::Hashable
1548
+
1549
+ # True if the organization is the person's current organization; false if the
1550
+ # organization is a past organization.
1551
+ # Corresponds to the JSON property `current`
1552
+ # @return [Boolean]
1553
+ attr_accessor :current
1554
+ alias_method :current?, :current
1555
+
1556
+ # The person's department at the organization.
1557
+ # Corresponds to the JSON property `department`
1558
+ # @return [String]
1559
+ attr_accessor :department
1560
+
1561
+ # The domain name associated with the organization; for example, `google.com`.
1562
+ # Corresponds to the JSON property `domain`
1563
+ # @return [String]
1564
+ attr_accessor :domain
1565
+
1566
+ # Represents a whole or partial calendar date, such as a birthday. The time of
1567
+ # day and time zone are either specified elsewhere or are insignificant. The
1568
+ # date is relative to the Gregorian Calendar. This can represent one of the
1569
+ # following: * A full date, with non-zero year, month, and day values * A month
1570
+ # and day value, with a zero year, such as an anniversary * A year on its own,
1571
+ # with zero month and day values * A year and month value, with a zero day, such
1572
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
1573
+ # google.protobuf.Timestamp`.
1574
+ # Corresponds to the JSON property `endDate`
1575
+ # @return [Google::Apis::PeopleV1::Date]
1576
+ attr_accessor :end_date
1577
+
1578
+ # Output only. The type of the organization translated and formatted in the
1579
+ # viewer's account locale or the `Accept-Language` HTTP header locale.
1580
+ # Corresponds to the JSON property `formattedType`
1581
+ # @return [String]
1582
+ attr_accessor :formatted_type
1583
+
1584
+ # The person's job description at the organization.
1585
+ # Corresponds to the JSON property `jobDescription`
1586
+ # @return [String]
1587
+ attr_accessor :job_description
1588
+
1589
+ # The location of the organization office the person works at.
1590
+ # Corresponds to the JSON property `location`
1591
+ # @return [String]
1592
+ attr_accessor :location
1593
+
1594
+ # Metadata about a field.
1595
+ # Corresponds to the JSON property `metadata`
1596
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
1597
+ attr_accessor :metadata
1598
+
1599
+ # The name of the organization.
1600
+ # Corresponds to the JSON property `name`
1601
+ # @return [String]
1602
+ attr_accessor :name
1603
+
1604
+ # The phonetic name of the organization.
1605
+ # Corresponds to the JSON property `phoneticName`
1606
+ # @return [String]
1607
+ attr_accessor :phonetic_name
1608
+
1609
+ # Represents a whole or partial calendar date, such as a birthday. The time of
1610
+ # day and time zone are either specified elsewhere or are insignificant. The
1611
+ # date is relative to the Gregorian Calendar. This can represent one of the
1612
+ # following: * A full date, with non-zero year, month, and day values * A month
1613
+ # and day value, with a zero year, such as an anniversary * A year on its own,
1614
+ # with zero month and day values * A year and month value, with a zero day, such
1615
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
1616
+ # google.protobuf.Timestamp`.
1617
+ # Corresponds to the JSON property `startDate`
1618
+ # @return [Google::Apis::PeopleV1::Date]
1619
+ attr_accessor :start_date
1620
+
1621
+ # The symbol associated with the organization; for example, a stock ticker
1622
+ # symbol, abbreviation, or acronym.
1623
+ # Corresponds to the JSON property `symbol`
1624
+ # @return [String]
1625
+ attr_accessor :symbol
1626
+
1627
+ # The person's job title at the organization.
1628
+ # Corresponds to the JSON property `title`
1629
+ # @return [String]
1630
+ attr_accessor :title
1631
+
1632
+ # The type of the organization. The type can be custom or one of these
1633
+ # predefined values: * `work` * `school`
1634
+ # Corresponds to the JSON property `type`
1635
+ # @return [String]
1636
+ attr_accessor :type
1637
+
1638
+ def initialize(**args)
1639
+ update!(**args)
1640
+ end
1641
+
1642
+ # Update properties of this object
1643
+ def update!(**args)
1644
+ @current = args[:current] if args.key?(:current)
1645
+ @department = args[:department] if args.key?(:department)
1646
+ @domain = args[:domain] if args.key?(:domain)
1647
+ @end_date = args[:end_date] if args.key?(:end_date)
1648
+ @formatted_type = args[:formatted_type] if args.key?(:formatted_type)
1649
+ @job_description = args[:job_description] if args.key?(:job_description)
1650
+ @location = args[:location] if args.key?(:location)
1651
+ @metadata = args[:metadata] if args.key?(:metadata)
1652
+ @name = args[:name] if args.key?(:name)
1653
+ @phonetic_name = args[:phonetic_name] if args.key?(:phonetic_name)
1654
+ @start_date = args[:start_date] if args.key?(:start_date)
1655
+ @symbol = args[:symbol] if args.key?(:symbol)
1656
+ @title = args[:title] if args.key?(:title)
1657
+ @type = args[:type] if args.key?(:type)
1658
+ end
1659
+ end
1660
+
1661
+ # Information about a person merged from various data sources such as the
1662
+ # authenticated user's contacts and profile data. Most fields can have multiple
1663
+ # items. The items in a field have no guaranteed order, but each non-empty field
1664
+ # is guaranteed to have exactly one field with `metadata.primary` set to true.
1665
+ class Person
1666
+ include Google::Apis::Core::Hashable
1667
+
1668
+ # The person's street addresses.
1669
+ # Corresponds to the JSON property `addresses`
1670
+ # @return [Array<Google::Apis::PeopleV1::Address>]
1671
+ attr_accessor :addresses
1672
+
1673
+ # Output only. **DEPRECATED** (Please use `person.ageRanges` instead) The person'
1674
+ # s age range.
1675
+ # Corresponds to the JSON property `ageRange`
1676
+ # @return [String]
1677
+ attr_accessor :age_range
1678
+
1679
+ # Output only. The person's age ranges.
1680
+ # Corresponds to the JSON property `ageRanges`
1681
+ # @return [Array<Google::Apis::PeopleV1::AgeRangeType>]
1682
+ attr_accessor :age_ranges
1683
+
1684
+ # The person's biographies. This field is a singleton for contact sources.
1685
+ # Corresponds to the JSON property `biographies`
1686
+ # @return [Array<Google::Apis::PeopleV1::Biography>]
1687
+ attr_accessor :biographies
1688
+
1689
+ # The person's birthdays. This field is a singleton for contact sources.
1690
+ # Corresponds to the JSON property `birthdays`
1691
+ # @return [Array<Google::Apis::PeopleV1::Birthday>]
1692
+ attr_accessor :birthdays
1693
+
1694
+ # **DEPRECATED**: No data will be returned The person's bragging rights.
1695
+ # Corresponds to the JSON property `braggingRights`
1696
+ # @return [Array<Google::Apis::PeopleV1::BraggingRights>]
1697
+ attr_accessor :bragging_rights
1698
+
1699
+ # The person's calendar URLs.
1700
+ # Corresponds to the JSON property `calendarUrls`
1701
+ # @return [Array<Google::Apis::PeopleV1::CalendarUrl>]
1702
+ attr_accessor :calendar_urls
1703
+
1704
+ # The person's client data.
1705
+ # Corresponds to the JSON property `clientData`
1706
+ # @return [Array<Google::Apis::PeopleV1::ClientData>]
1707
+ attr_accessor :client_data
1708
+
1709
+ # Output only. The person's cover photos.
1710
+ # Corresponds to the JSON property `coverPhotos`
1711
+ # @return [Array<Google::Apis::PeopleV1::CoverPhoto>]
1712
+ attr_accessor :cover_photos
1713
+
1714
+ # The person's email addresses.
1715
+ # Corresponds to the JSON property `emailAddresses`
1716
+ # @return [Array<Google::Apis::PeopleV1::EmailAddress>]
1717
+ attr_accessor :email_addresses
1718
+
1719
+ # The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the resource.
1720
+ # Used for web cache validation.
1721
+ # Corresponds to the JSON property `etag`
1722
+ # @return [String]
1723
+ attr_accessor :etag
1724
+
1725
+ # The person's events.
1726
+ # Corresponds to the JSON property `events`
1727
+ # @return [Array<Google::Apis::PeopleV1::Event>]
1728
+ attr_accessor :events
1729
+
1730
+ # The person's external IDs.
1731
+ # Corresponds to the JSON property `externalIds`
1732
+ # @return [Array<Google::Apis::PeopleV1::ExternalId>]
1733
+ attr_accessor :external_ids
1734
+
1735
+ # The person's file-ases.
1736
+ # Corresponds to the JSON property `fileAses`
1737
+ # @return [Array<Google::Apis::PeopleV1::FileAs>]
1738
+ attr_accessor :file_ases
1739
+
1740
+ # The person's genders. This field is a singleton for contact sources.
1741
+ # Corresponds to the JSON property `genders`
1742
+ # @return [Array<Google::Apis::PeopleV1::Gender>]
1743
+ attr_accessor :genders
1744
+
1745
+ # The person's instant messaging clients.
1746
+ # Corresponds to the JSON property `imClients`
1747
+ # @return [Array<Google::Apis::PeopleV1::ImClient>]
1748
+ attr_accessor :im_clients
1749
+
1750
+ # The person's interests.
1751
+ # Corresponds to the JSON property `interests`
1752
+ # @return [Array<Google::Apis::PeopleV1::Interest>]
1753
+ attr_accessor :interests
1754
+
1755
+ # The person's locale preferences.
1756
+ # Corresponds to the JSON property `locales`
1757
+ # @return [Array<Google::Apis::PeopleV1::Locale>]
1758
+ attr_accessor :locales
1759
+
1760
+ # The person's locations.
1761
+ # Corresponds to the JSON property `locations`
1762
+ # @return [Array<Google::Apis::PeopleV1::Location>]
1763
+ attr_accessor :locations
1764
+
1765
+ # The person's group memberships.
1766
+ # Corresponds to the JSON property `memberships`
1767
+ # @return [Array<Google::Apis::PeopleV1::Membership>]
1768
+ attr_accessor :memberships
1769
+
1770
+ # The metadata about a person.
1771
+ # Corresponds to the JSON property `metadata`
1772
+ # @return [Google::Apis::PeopleV1::PersonMetadata]
1773
+ attr_accessor :metadata
1774
+
1775
+ # The person's miscellaneous keywords.
1776
+ # Corresponds to the JSON property `miscKeywords`
1777
+ # @return [Array<Google::Apis::PeopleV1::MiscKeyword>]
1778
+ attr_accessor :misc_keywords
1779
+
1780
+ # The person's names. This field is a singleton for contact sources.
1781
+ # Corresponds to the JSON property `names`
1782
+ # @return [Array<Google::Apis::PeopleV1::Name>]
1783
+ attr_accessor :names
1784
+
1785
+ # The person's nicknames.
1786
+ # Corresponds to the JSON property `nicknames`
1787
+ # @return [Array<Google::Apis::PeopleV1::Nickname>]
1788
+ attr_accessor :nicknames
1789
+
1790
+ # The person's occupations.
1791
+ # Corresponds to the JSON property `occupations`
1792
+ # @return [Array<Google::Apis::PeopleV1::Occupation>]
1793
+ attr_accessor :occupations
1794
+
1795
+ # The person's past or current organizations.
1796
+ # Corresponds to the JSON property `organizations`
1797
+ # @return [Array<Google::Apis::PeopleV1::Organization>]
1798
+ attr_accessor :organizations
1799
+
1800
+ # The person's phone numbers.
1801
+ # Corresponds to the JSON property `phoneNumbers`
1802
+ # @return [Array<Google::Apis::PeopleV1::PhoneNumber>]
1803
+ attr_accessor :phone_numbers
1804
+
1805
+ # Output only. The person's photos.
1806
+ # Corresponds to the JSON property `photos`
1807
+ # @return [Array<Google::Apis::PeopleV1::Photo>]
1808
+ attr_accessor :photos
1809
+
1810
+ # The person's relations.
1811
+ # Corresponds to the JSON property `relations`
1812
+ # @return [Array<Google::Apis::PeopleV1::Relation>]
1813
+ attr_accessor :relations
1814
+
1815
+ # Output only. **DEPRECATED**: No data will be returned The person's
1816
+ # relationship interests.
1817
+ # Corresponds to the JSON property `relationshipInterests`
1818
+ # @return [Array<Google::Apis::PeopleV1::RelationshipInterest>]
1819
+ attr_accessor :relationship_interests
1820
+
1821
+ # Output only. **DEPRECATED**: No data will be returned The person's
1822
+ # relationship statuses.
1823
+ # Corresponds to the JSON property `relationshipStatuses`
1824
+ # @return [Array<Google::Apis::PeopleV1::RelationshipStatus>]
1825
+ attr_accessor :relationship_statuses
1826
+
1827
+ # **DEPRECATED**: (Please use `person.locations` instead) The person's
1828
+ # residences.
1829
+ # Corresponds to the JSON property `residences`
1830
+ # @return [Array<Google::Apis::PeopleV1::Residence>]
1831
+ attr_accessor :residences
1832
+
1833
+ # The resource name for the person, assigned by the server. An ASCII string with
1834
+ # a max length of 27 characters, in the form of `people/`person_id``.
1835
+ # Corresponds to the JSON property `resourceName`
1836
+ # @return [String]
1837
+ attr_accessor :resource_name
1838
+
1839
+ # The person's SIP addresses.
1840
+ # Corresponds to the JSON property `sipAddresses`
1841
+ # @return [Array<Google::Apis::PeopleV1::SipAddress>]
1842
+ attr_accessor :sip_addresses
1843
+
1844
+ # The person's skills.
1845
+ # Corresponds to the JSON property `skills`
1846
+ # @return [Array<Google::Apis::PeopleV1::Skill>]
1847
+ attr_accessor :skills
1848
+
1849
+ # Output only. **DEPRECATED**: No data will be returned The person's taglines.
1850
+ # Corresponds to the JSON property `taglines`
1851
+ # @return [Array<Google::Apis::PeopleV1::Tagline>]
1852
+ attr_accessor :taglines
1853
+
1854
+ # The person's associated URLs.
1855
+ # Corresponds to the JSON property `urls`
1856
+ # @return [Array<Google::Apis::PeopleV1::Url>]
1857
+ attr_accessor :urls
1858
+
1859
+ # The person's user defined data.
1860
+ # Corresponds to the JSON property `userDefined`
1861
+ # @return [Array<Google::Apis::PeopleV1::UserDefined>]
1862
+ attr_accessor :user_defined
1863
+
1864
+ def initialize(**args)
1865
+ update!(**args)
1866
+ end
1867
+
1868
+ # Update properties of this object
1869
+ def update!(**args)
1870
+ @addresses = args[:addresses] if args.key?(:addresses)
1871
+ @age_range = args[:age_range] if args.key?(:age_range)
1872
+ @age_ranges = args[:age_ranges] if args.key?(:age_ranges)
1873
+ @biographies = args[:biographies] if args.key?(:biographies)
1874
+ @birthdays = args[:birthdays] if args.key?(:birthdays)
1875
+ @bragging_rights = args[:bragging_rights] if args.key?(:bragging_rights)
1876
+ @calendar_urls = args[:calendar_urls] if args.key?(:calendar_urls)
1877
+ @client_data = args[:client_data] if args.key?(:client_data)
1878
+ @cover_photos = args[:cover_photos] if args.key?(:cover_photos)
1879
+ @email_addresses = args[:email_addresses] if args.key?(:email_addresses)
1880
+ @etag = args[:etag] if args.key?(:etag)
1881
+ @events = args[:events] if args.key?(:events)
1882
+ @external_ids = args[:external_ids] if args.key?(:external_ids)
1883
+ @file_ases = args[:file_ases] if args.key?(:file_ases)
1884
+ @genders = args[:genders] if args.key?(:genders)
1885
+ @im_clients = args[:im_clients] if args.key?(:im_clients)
1886
+ @interests = args[:interests] if args.key?(:interests)
1887
+ @locales = args[:locales] if args.key?(:locales)
1888
+ @locations = args[:locations] if args.key?(:locations)
1889
+ @memberships = args[:memberships] if args.key?(:memberships)
1890
+ @metadata = args[:metadata] if args.key?(:metadata)
1891
+ @misc_keywords = args[:misc_keywords] if args.key?(:misc_keywords)
1892
+ @names = args[:names] if args.key?(:names)
1893
+ @nicknames = args[:nicknames] if args.key?(:nicknames)
1894
+ @occupations = args[:occupations] if args.key?(:occupations)
1895
+ @organizations = args[:organizations] if args.key?(:organizations)
1896
+ @phone_numbers = args[:phone_numbers] if args.key?(:phone_numbers)
1897
+ @photos = args[:photos] if args.key?(:photos)
1898
+ @relations = args[:relations] if args.key?(:relations)
1899
+ @relationship_interests = args[:relationship_interests] if args.key?(:relationship_interests)
1900
+ @relationship_statuses = args[:relationship_statuses] if args.key?(:relationship_statuses)
1901
+ @residences = args[:residences] if args.key?(:residences)
1902
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
1903
+ @sip_addresses = args[:sip_addresses] if args.key?(:sip_addresses)
1904
+ @skills = args[:skills] if args.key?(:skills)
1905
+ @taglines = args[:taglines] if args.key?(:taglines)
1906
+ @urls = args[:urls] if args.key?(:urls)
1907
+ @user_defined = args[:user_defined] if args.key?(:user_defined)
1908
+ end
1909
+ end
1910
+
1911
+ # The metadata about a person.
1912
+ class PersonMetadata
1913
+ include Google::Apis::Core::Hashable
1914
+
1915
+ # Output only. True if the person resource has been deleted. Populated only for [
1916
+ # `connections.list`](/people/api/rest/v1/people.connections/list) requests that
1917
+ # include a sync token.
1918
+ # Corresponds to the JSON property `deleted`
1919
+ # @return [Boolean]
1920
+ attr_accessor :deleted
1921
+ alias_method :deleted?, :deleted
1922
+
1923
+ # Output only. Resource names of people linked to this resource.
1924
+ # Corresponds to the JSON property `linkedPeopleResourceNames`
1925
+ # @return [Array<String>]
1926
+ attr_accessor :linked_people_resource_names
1927
+
1928
+ # Output only. **DEPRECATED** (Please use `person.metadata.sources.
1929
+ # profileMetadata.objectType` instead) The type of the person object.
1930
+ # Corresponds to the JSON property `objectType`
1931
+ # @return [String]
1932
+ attr_accessor :object_type
1933
+
1934
+ # Output only. Any former resource names this person has had. Populated only for
1935
+ # [`connections.list`](/people/api/rest/v1/people.connections/list) requests
1936
+ # that include a sync token. The resource name may change when adding or
1937
+ # removing fields that link a contact and profile such as a verified email,
1938
+ # verified phone number, or profile URL.
1939
+ # Corresponds to the JSON property `previousResourceNames`
1940
+ # @return [Array<String>]
1941
+ attr_accessor :previous_resource_names
1942
+
1943
+ # The sources of data for the person.
1944
+ # Corresponds to the JSON property `sources`
1945
+ # @return [Array<Google::Apis::PeopleV1::Source>]
1946
+ attr_accessor :sources
1947
+
1948
+ def initialize(**args)
1949
+ update!(**args)
1950
+ end
1951
+
1952
+ # Update properties of this object
1953
+ def update!(**args)
1954
+ @deleted = args[:deleted] if args.key?(:deleted)
1955
+ @linked_people_resource_names = args[:linked_people_resource_names] if args.key?(:linked_people_resource_names)
1956
+ @object_type = args[:object_type] if args.key?(:object_type)
1957
+ @previous_resource_names = args[:previous_resource_names] if args.key?(:previous_resource_names)
1958
+ @sources = args[:sources] if args.key?(:sources)
1959
+ end
1960
+ end
1961
+
1962
+ # The response for a single person
1963
+ class PersonResponse
1964
+ include Google::Apis::Core::Hashable
1965
+
1966
+ # **DEPRECATED** (Please use status instead) [HTTP 1.1 status code] (http://www.
1967
+ # w3.org/Protocols/rfc2616/rfc2616-sec10.html).
1968
+ # Corresponds to the JSON property `httpStatusCode`
1969
+ # @return [Fixnum]
1970
+ attr_accessor :http_status_code
1971
+
1972
+ # Information about a person merged from various data sources such as the
1973
+ # authenticated user's contacts and profile data. Most fields can have multiple
1974
+ # items. The items in a field have no guaranteed order, but each non-empty field
1975
+ # is guaranteed to have exactly one field with `metadata.primary` set to true.
1976
+ # Corresponds to the JSON property `person`
1977
+ # @return [Google::Apis::PeopleV1::Person]
1978
+ attr_accessor :person
1979
+
1980
+ # The original requested resource name. May be different than the resource name
1981
+ # on the returned person. The resource name can change when adding or removing
1982
+ # fields that link a contact and profile such as a verified email, verified
1983
+ # phone number, or a profile URL.
1984
+ # Corresponds to the JSON property `requestedResourceName`
1985
+ # @return [String]
1986
+ attr_accessor :requested_resource_name
1987
+
1988
+ # The `Status` type defines a logical error model that is suitable for different
1989
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1990
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1991
+ # data: error code, error message, and error details. You can find out more
1992
+ # about this error model and how to work with it in the [API Design Guide](https:
1993
+ # //cloud.google.com/apis/design/errors).
1994
+ # Corresponds to the JSON property `status`
1995
+ # @return [Google::Apis::PeopleV1::Status]
1996
+ attr_accessor :status
1997
+
1998
+ def initialize(**args)
1999
+ update!(**args)
2000
+ end
2001
+
2002
+ # Update properties of this object
2003
+ def update!(**args)
2004
+ @http_status_code = args[:http_status_code] if args.key?(:http_status_code)
2005
+ @person = args[:person] if args.key?(:person)
2006
+ @requested_resource_name = args[:requested_resource_name] if args.key?(:requested_resource_name)
2007
+ @status = args[:status] if args.key?(:status)
2008
+ end
2009
+ end
2010
+
2011
+ # A person's phone number.
2012
+ class PhoneNumber
2013
+ include Google::Apis::Core::Hashable
2014
+
2015
+ # Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/
2016
+ # cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number.
2017
+ # Corresponds to the JSON property `canonicalForm`
2018
+ # @return [String]
2019
+ attr_accessor :canonical_form
2020
+
2021
+ # Output only. The type of the phone number translated and formatted in the
2022
+ # viewer's account locale or the `Accept-Language` HTTP header locale.
2023
+ # Corresponds to the JSON property `formattedType`
2024
+ # @return [String]
2025
+ attr_accessor :formatted_type
2026
+
2027
+ # Metadata about a field.
2028
+ # Corresponds to the JSON property `metadata`
2029
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
2030
+ attr_accessor :metadata
2031
+
2032
+ # The type of the phone number. The type can be custom or one of these
2033
+ # predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `
2034
+ # otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `
2035
+ # other`
2036
+ # Corresponds to the JSON property `type`
2037
+ # @return [String]
2038
+ attr_accessor :type
2039
+
2040
+ # The phone number.
2041
+ # Corresponds to the JSON property `value`
2042
+ # @return [String]
2043
+ attr_accessor :value
2044
+
2045
+ def initialize(**args)
2046
+ update!(**args)
2047
+ end
2048
+
2049
+ # Update properties of this object
2050
+ def update!(**args)
2051
+ @canonical_form = args[:canonical_form] if args.key?(:canonical_form)
2052
+ @formatted_type = args[:formatted_type] if args.key?(:formatted_type)
2053
+ @metadata = args[:metadata] if args.key?(:metadata)
2054
+ @type = args[:type] if args.key?(:type)
2055
+ @value = args[:value] if args.key?(:value)
2056
+ end
2057
+ end
2058
+
2059
+ # A person's photo. A picture shown next to the person's name to help others
2060
+ # recognize the person.
2061
+ class Photo
2062
+ include Google::Apis::Core::Hashable
2063
+
2064
+ # True if the photo is a default photo; false if the photo is a user-provided
2065
+ # photo.
2066
+ # Corresponds to the JSON property `default`
2067
+ # @return [Boolean]
2068
+ attr_accessor :default
2069
+ alias_method :default?, :default
2070
+
2071
+ # Metadata about a field.
2072
+ # Corresponds to the JSON property `metadata`
2073
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
2074
+ attr_accessor :metadata
2075
+
2076
+ # The URL of the photo. You can change the desired size by appending a query
2077
+ # parameter `sz=`size`` at the end of the url, where `size` is the size in
2078
+ # pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/
2079
+ # AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50
2080
+ # Corresponds to the JSON property `url`
2081
+ # @return [String]
2082
+ attr_accessor :url
2083
+
2084
+ def initialize(**args)
2085
+ update!(**args)
2086
+ end
2087
+
2088
+ # Update properties of this object
2089
+ def update!(**args)
2090
+ @default = args[:default] if args.key?(:default)
2091
+ @metadata = args[:metadata] if args.key?(:metadata)
2092
+ @url = args[:url] if args.key?(:url)
2093
+ end
2094
+ end
2095
+
2096
+ # The metadata about a profile.
2097
+ class ProfileMetadata
2098
+ include Google::Apis::Core::Hashable
2099
+
2100
+ # Output only. The profile object type.
2101
+ # Corresponds to the JSON property `objectType`
2102
+ # @return [String]
2103
+ attr_accessor :object_type
2104
+
2105
+ # Output only. The user types.
2106
+ # Corresponds to the JSON property `userTypes`
2107
+ # @return [Array<String>]
2108
+ attr_accessor :user_types
2109
+
2110
+ def initialize(**args)
2111
+ update!(**args)
2112
+ end
2113
+
2114
+ # Update properties of this object
2115
+ def update!(**args)
2116
+ @object_type = args[:object_type] if args.key?(:object_type)
2117
+ @user_types = args[:user_types] if args.key?(:user_types)
2118
+ end
2119
+ end
2120
+
2121
+ # A person's relation to another person.
2122
+ class Relation
2123
+ include Google::Apis::Core::Hashable
2124
+
2125
+ # Output only. The type of the relation translated and formatted in the viewer's
2126
+ # account locale or the locale specified in the Accept-Language HTTP header.
2127
+ # Corresponds to the JSON property `formattedType`
2128
+ # @return [String]
2129
+ attr_accessor :formatted_type
2130
+
2131
+ # Metadata about a field.
2132
+ # Corresponds to the JSON property `metadata`
2133
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
2134
+ attr_accessor :metadata
2135
+
2136
+ # The name of the other person this relation refers to.
2137
+ # Corresponds to the JSON property `person`
2138
+ # @return [String]
2139
+ attr_accessor :person
2140
+
2141
+ # The person's relation to the other person. The type can be custom or one of
2142
+ # these predefined values: * `spouse` * `child` * `mother` * `father` * `parent`
2143
+ # * `brother` * `sister` * `friend` * `relative` * `domesticPartner` * `manager`
2144
+ # * `assistant` * `referredBy` * `partner`
2145
+ # Corresponds to the JSON property `type`
2146
+ # @return [String]
2147
+ attr_accessor :type
2148
+
2149
+ def initialize(**args)
2150
+ update!(**args)
2151
+ end
2152
+
2153
+ # Update properties of this object
2154
+ def update!(**args)
2155
+ @formatted_type = args[:formatted_type] if args.key?(:formatted_type)
2156
+ @metadata = args[:metadata] if args.key?(:metadata)
2157
+ @person = args[:person] if args.key?(:person)
2158
+ @type = args[:type] if args.key?(:type)
2159
+ end
2160
+ end
2161
+
2162
+ # **DEPRECATED**: No data will be returned A person's relationship interest .
2163
+ class RelationshipInterest
2164
+ include Google::Apis::Core::Hashable
2165
+
2166
+ # Output only. The value of the relationship interest translated and formatted
2167
+ # in the viewer's account locale or the locale specified in the Accept-Language
2168
+ # HTTP header.
2169
+ # Corresponds to the JSON property `formattedValue`
2170
+ # @return [String]
2171
+ attr_accessor :formatted_value
2172
+
2173
+ # Metadata about a field.
2174
+ # Corresponds to the JSON property `metadata`
2175
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
2176
+ attr_accessor :metadata
2177
+
2178
+ # The kind of relationship the person is looking for. The value can be custom or
2179
+ # one of these predefined values: * `friend` * `date` * `relationship` * `
2180
+ # networking`
2181
+ # Corresponds to the JSON property `value`
2182
+ # @return [String]
2183
+ attr_accessor :value
2184
+
2185
+ def initialize(**args)
2186
+ update!(**args)
2187
+ end
2188
+
2189
+ # Update properties of this object
2190
+ def update!(**args)
2191
+ @formatted_value = args[:formatted_value] if args.key?(:formatted_value)
2192
+ @metadata = args[:metadata] if args.key?(:metadata)
2193
+ @value = args[:value] if args.key?(:value)
2194
+ end
2195
+ end
2196
+
2197
+ # **DEPRECATED**: No data will be returned A person's relationship status.
2198
+ class RelationshipStatus
2199
+ include Google::Apis::Core::Hashable
2200
+
2201
+ # Output only. The value of the relationship status translated and formatted in
2202
+ # the viewer's account locale or the `Accept-Language` HTTP header locale.
2203
+ # Corresponds to the JSON property `formattedValue`
2204
+ # @return [String]
2205
+ attr_accessor :formatted_value
2206
+
2207
+ # Metadata about a field.
2208
+ # Corresponds to the JSON property `metadata`
2209
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
2210
+ attr_accessor :metadata
2211
+
2212
+ # The relationship status. The value can be custom or one of these predefined
2213
+ # values: * `single` * `inARelationship` * `engaged` * `married` * `
2214
+ # itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `
2215
+ # inCivilUnion`
2216
+ # Corresponds to the JSON property `value`
2217
+ # @return [String]
2218
+ attr_accessor :value
2219
+
2220
+ def initialize(**args)
2221
+ update!(**args)
2222
+ end
2223
+
2224
+ # Update properties of this object
2225
+ def update!(**args)
2226
+ @formatted_value = args[:formatted_value] if args.key?(:formatted_value)
2227
+ @metadata = args[:metadata] if args.key?(:metadata)
2228
+ @value = args[:value] if args.key?(:value)
2229
+ end
2230
+ end
2231
+
2232
+ # **DEPRECATED**: Please use `person.locations` instead. A person's past or
2233
+ # current residence.
2234
+ class Residence
2235
+ include Google::Apis::Core::Hashable
2236
+
2237
+ # True if the residence is the person's current residence; false if the
2238
+ # residence is a past residence.
2239
+ # Corresponds to the JSON property `current`
2240
+ # @return [Boolean]
2241
+ attr_accessor :current
2242
+ alias_method :current?, :current
2243
+
2244
+ # Metadata about a field.
2245
+ # Corresponds to the JSON property `metadata`
2246
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
2247
+ attr_accessor :metadata
2248
+
2249
+ # The address of the residence.
2250
+ # Corresponds to the JSON property `value`
2251
+ # @return [String]
2252
+ attr_accessor :value
2253
+
2254
+ def initialize(**args)
2255
+ update!(**args)
2256
+ end
2257
+
2258
+ # Update properties of this object
2259
+ def update!(**args)
2260
+ @current = args[:current] if args.key?(:current)
2261
+ @metadata = args[:metadata] if args.key?(:metadata)
2262
+ @value = args[:value] if args.key?(:value)
2263
+ end
2264
+ end
2265
+
2266
+ # The response to a request for people in the authenticated user's domain
2267
+ # directory that match the specified query.
2268
+ class SearchDirectoryPeopleResponse
2269
+ include Google::Apis::Core::Hashable
2270
+
2271
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
2272
+ # field is omitted, there are no subsequent pages.
2273
+ # Corresponds to the JSON property `nextPageToken`
2274
+ # @return [String]
2275
+ attr_accessor :next_page_token
2276
+
2277
+ # The list of people in the domain directory that match the query.
2278
+ # Corresponds to the JSON property `people`
2279
+ # @return [Array<Google::Apis::PeopleV1::Person>]
2280
+ attr_accessor :people
2281
+
2282
+ # The total number of items in the list without pagination.
2283
+ # Corresponds to the JSON property `totalSize`
2284
+ # @return [Fixnum]
2285
+ attr_accessor :total_size
2286
+
2287
+ def initialize(**args)
2288
+ update!(**args)
2289
+ end
2290
+
2291
+ # Update properties of this object
2292
+ def update!(**args)
2293
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2294
+ @people = args[:people] if args.key?(:people)
2295
+ @total_size = args[:total_size] if args.key?(:total_size)
2296
+ end
2297
+ end
2298
+
2299
+ # A person's SIP address. Session Initial Protocol addresses are used for VoIP
2300
+ # communications to make voice or video calls over the internet.
2301
+ class SipAddress
2302
+ include Google::Apis::Core::Hashable
2303
+
2304
+ # Output only. The type of the SIP address translated and formatted in the
2305
+ # viewer's account locale or the `Accept-Language` HTTP header locale.
2306
+ # Corresponds to the JSON property `formattedType`
2307
+ # @return [String]
2308
+ attr_accessor :formatted_type
2309
+
2310
+ # Metadata about a field.
2311
+ # Corresponds to the JSON property `metadata`
2312
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
2313
+ attr_accessor :metadata
2314
+
2315
+ # The type of the SIP address. The type can be custom or or one of these
2316
+ # predefined values: * `home` * `work` * `mobile` * `other`
2317
+ # Corresponds to the JSON property `type`
2318
+ # @return [String]
2319
+ attr_accessor :type
2320
+
2321
+ # The SIP address in the [RFC 3261 19.1](https://tools.ietf.org/html/rfc3261#
2322
+ # section-19.1) SIP URI format.
2323
+ # Corresponds to the JSON property `value`
2324
+ # @return [String]
2325
+ attr_accessor :value
2326
+
2327
+ def initialize(**args)
2328
+ update!(**args)
2329
+ end
2330
+
2331
+ # Update properties of this object
2332
+ def update!(**args)
2333
+ @formatted_type = args[:formatted_type] if args.key?(:formatted_type)
2334
+ @metadata = args[:metadata] if args.key?(:metadata)
2335
+ @type = args[:type] if args.key?(:type)
2336
+ @value = args[:value] if args.key?(:value)
2337
+ end
2338
+ end
2339
+
2340
+ # A skill that the person has.
2341
+ class Skill
2342
+ include Google::Apis::Core::Hashable
2343
+
2344
+ # Metadata about a field.
2345
+ # Corresponds to the JSON property `metadata`
2346
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
2347
+ attr_accessor :metadata
2348
+
2349
+ # The skill; for example, `underwater basket weaving`.
2350
+ # Corresponds to the JSON property `value`
2351
+ # @return [String]
2352
+ attr_accessor :value
2353
+
2354
+ def initialize(**args)
2355
+ update!(**args)
2356
+ end
2357
+
2358
+ # Update properties of this object
2359
+ def update!(**args)
2360
+ @metadata = args[:metadata] if args.key?(:metadata)
2361
+ @value = args[:value] if args.key?(:value)
2362
+ end
2363
+ end
2364
+
2365
+ # The source of a field.
2366
+ class Source
2367
+ include Google::Apis::Core::Hashable
2368
+
2369
+ # **Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://
2370
+ # en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation.
2371
+ # Corresponds to the JSON property `etag`
2372
+ # @return [String]
2373
+ attr_accessor :etag
2374
+
2375
+ # The unique identifier within the source type generated by the server.
2376
+ # Corresponds to the JSON property `id`
2377
+ # @return [String]
2378
+ attr_accessor :id
2379
+
2380
+ # The metadata about a profile.
2381
+ # Corresponds to the JSON property `profileMetadata`
2382
+ # @return [Google::Apis::PeopleV1::ProfileMetadata]
2383
+ attr_accessor :profile_metadata
2384
+
2385
+ # The source type.
2386
+ # Corresponds to the JSON property `type`
2387
+ # @return [String]
2388
+ attr_accessor :type
2389
+
2390
+ # Output only. **Only populated in `person.metadata.sources`.** Last update
2391
+ # timestamp of this source.
2392
+ # Corresponds to the JSON property `updateTime`
2393
+ # @return [String]
2394
+ attr_accessor :update_time
2395
+
2396
+ def initialize(**args)
2397
+ update!(**args)
2398
+ end
2399
+
2400
+ # Update properties of this object
2401
+ def update!(**args)
2402
+ @etag = args[:etag] if args.key?(:etag)
2403
+ @id = args[:id] if args.key?(:id)
2404
+ @profile_metadata = args[:profile_metadata] if args.key?(:profile_metadata)
2405
+ @type = args[:type] if args.key?(:type)
2406
+ @update_time = args[:update_time] if args.key?(:update_time)
2407
+ end
2408
+ end
2409
+
2410
+ # The `Status` type defines a logical error model that is suitable for different
2411
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2412
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2413
+ # data: error code, error message, and error details. You can find out more
2414
+ # about this error model and how to work with it in the [API Design Guide](https:
2415
+ # //cloud.google.com/apis/design/errors).
2416
+ class Status
2417
+ include Google::Apis::Core::Hashable
2418
+
2419
+ # The status code, which should be an enum value of google.rpc.Code.
2420
+ # Corresponds to the JSON property `code`
2421
+ # @return [Fixnum]
2422
+ attr_accessor :code
2423
+
2424
+ # A list of messages that carry the error details. There is a common set of
2425
+ # message types for APIs to use.
2426
+ # Corresponds to the JSON property `details`
2427
+ # @return [Array<Hash<String,Object>>]
2428
+ attr_accessor :details
2429
+
2430
+ # A developer-facing error message, which should be in English. Any user-facing
2431
+ # error message should be localized and sent in the google.rpc.Status.details
2432
+ # field, or localized by the client.
2433
+ # Corresponds to the JSON property `message`
2434
+ # @return [String]
2435
+ attr_accessor :message
2436
+
2437
+ def initialize(**args)
2438
+ update!(**args)
2439
+ end
2440
+
2441
+ # Update properties of this object
2442
+ def update!(**args)
2443
+ @code = args[:code] if args.key?(:code)
2444
+ @details = args[:details] if args.key?(:details)
2445
+ @message = args[:message] if args.key?(:message)
2446
+ end
2447
+ end
2448
+
2449
+ # **DEPRECATED**: No data will be returned A brief one-line description of the
2450
+ # person.
2451
+ class Tagline
2452
+ include Google::Apis::Core::Hashable
2453
+
2454
+ # Metadata about a field.
2455
+ # Corresponds to the JSON property `metadata`
2456
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
2457
+ attr_accessor :metadata
2458
+
2459
+ # The tagline.
2460
+ # Corresponds to the JSON property `value`
2461
+ # @return [String]
2462
+ attr_accessor :value
2463
+
2464
+ def initialize(**args)
2465
+ update!(**args)
2466
+ end
2467
+
2468
+ # Update properties of this object
2469
+ def update!(**args)
2470
+ @metadata = args[:metadata] if args.key?(:metadata)
2471
+ @value = args[:value] if args.key?(:value)
2472
+ end
2473
+ end
2474
+
2475
+ # A request to update an existing user contact group. All updated fields will be
2476
+ # replaced.
2477
+ class UpdateContactGroupRequest
2478
+ include Google::Apis::Core::Hashable
2479
+
2480
+ # A contact group.
2481
+ # Corresponds to the JSON property `contactGroup`
2482
+ # @return [Google::Apis::PeopleV1::ContactGroup]
2483
+ attr_accessor :contact_group
2484
+
2485
+ def initialize(**args)
2486
+ update!(**args)
2487
+ end
2488
+
2489
+ # Update properties of this object
2490
+ def update!(**args)
2491
+ @contact_group = args[:contact_group] if args.key?(:contact_group)
2492
+ end
2493
+ end
2494
+
2495
+ # A request to update an existing contact's photo. All requests must have a
2496
+ # valid photo format: JPEG or PNG.
2497
+ class UpdateContactPhotoRequest
2498
+ include Google::Apis::Core::Hashable
2499
+
2500
+ # Optional. A field mask to restrict which fields on the person are returned.
2501
+ # Multiple fields can be specified by separating them with commas. Defaults to
2502
+ # empty if not set, which will skip the post mutate get. Valid values are: *
2503
+ # addresses * ageRanges * biographies * birthdays * calendarUrls * clientData *
2504
+ # coverPhotos * emailAddresses * events * externalIds * genders * imClients *
2505
+ # interests * locales * locations * memberships * metadata * miscKeywords *
2506
+ # names * nicknames * occupations * organizations * phoneNumbers * photos *
2507
+ # relations * sipAddresses * skills * urls * userDefined
2508
+ # Corresponds to the JSON property `personFields`
2509
+ # @return [String]
2510
+ attr_accessor :person_fields
2511
+
2512
+ # Required. Raw photo bytes
2513
+ # Corresponds to the JSON property `photoBytes`
2514
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2515
+ # @return [String]
2516
+ attr_accessor :photo_bytes
2517
+
2518
+ # Optional. A mask of what source types to return. Defaults to
2519
+ # READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set.
2520
+ # Corresponds to the JSON property `sources`
2521
+ # @return [Array<String>]
2522
+ attr_accessor :sources
2523
+
2524
+ def initialize(**args)
2525
+ update!(**args)
2526
+ end
2527
+
2528
+ # Update properties of this object
2529
+ def update!(**args)
2530
+ @person_fields = args[:person_fields] if args.key?(:person_fields)
2531
+ @photo_bytes = args[:photo_bytes] if args.key?(:photo_bytes)
2532
+ @sources = args[:sources] if args.key?(:sources)
2533
+ end
2534
+ end
2535
+
2536
+ # The response for updating a contact's photo.
2537
+ class UpdateContactPhotoResponse
2538
+ include Google::Apis::Core::Hashable
2539
+
2540
+ # Information about a person merged from various data sources such as the
2541
+ # authenticated user's contacts and profile data. Most fields can have multiple
2542
+ # items. The items in a field have no guaranteed order, but each non-empty field
2543
+ # is guaranteed to have exactly one field with `metadata.primary` set to true.
2544
+ # Corresponds to the JSON property `person`
2545
+ # @return [Google::Apis::PeopleV1::Person]
2546
+ attr_accessor :person
2547
+
2548
+ def initialize(**args)
2549
+ update!(**args)
2550
+ end
2551
+
2552
+ # Update properties of this object
2553
+ def update!(**args)
2554
+ @person = args[:person] if args.key?(:person)
2555
+ end
2556
+ end
2557
+
2558
+ # A person's associated URLs.
2559
+ class Url
2560
+ include Google::Apis::Core::Hashable
2561
+
2562
+ # Output only. The type of the URL translated and formatted in the viewer's
2563
+ # account locale or the `Accept-Language` HTTP header locale.
2564
+ # Corresponds to the JSON property `formattedType`
2565
+ # @return [String]
2566
+ attr_accessor :formatted_type
2567
+
2568
+ # Metadata about a field.
2569
+ # Corresponds to the JSON property `metadata`
2570
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
2571
+ attr_accessor :metadata
2572
+
2573
+ # The type of the URL. The type can be custom or one of these predefined values:
2574
+ # * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` *
2575
+ # `appInstallPage`: website for a Currents application. * `other`
2576
+ # Corresponds to the JSON property `type`
2577
+ # @return [String]
2578
+ attr_accessor :type
2579
+
2580
+ # The URL.
2581
+ # Corresponds to the JSON property `value`
2582
+ # @return [String]
2583
+ attr_accessor :value
2584
+
2585
+ def initialize(**args)
2586
+ update!(**args)
2587
+ end
2588
+
2589
+ # Update properties of this object
2590
+ def update!(**args)
2591
+ @formatted_type = args[:formatted_type] if args.key?(:formatted_type)
2592
+ @metadata = args[:metadata] if args.key?(:metadata)
2593
+ @type = args[:type] if args.key?(:type)
2594
+ @value = args[:value] if args.key?(:value)
2595
+ end
2596
+ end
2597
+
2598
+ # Arbitrary user data that is populated by the end users.
2599
+ class UserDefined
2600
+ include Google::Apis::Core::Hashable
2601
+
2602
+ # The end user specified key of the user defined data.
2603
+ # Corresponds to the JSON property `key`
2604
+ # @return [String]
2605
+ attr_accessor :key
2606
+
2607
+ # Metadata about a field.
2608
+ # Corresponds to the JSON property `metadata`
2609
+ # @return [Google::Apis::PeopleV1::FieldMetadata]
2610
+ attr_accessor :metadata
2611
+
2612
+ # The end user specified value of the user defined data.
2613
+ # Corresponds to the JSON property `value`
2614
+ # @return [String]
2615
+ attr_accessor :value
2616
+
2617
+ def initialize(**args)
2618
+ update!(**args)
2619
+ end
2620
+
2621
+ # Update properties of this object
2622
+ def update!(**args)
2623
+ @key = args[:key] if args.key?(:key)
2624
+ @metadata = args[:metadata] if args.key?(:metadata)
2625
+ @value = args[:value] if args.key?(:value)
2626
+ end
2627
+ end
2628
+ end
2629
+ end
2630
+ end