google-apis-admin_directory_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4525 @@
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 AdminDirectoryV1
24
+
25
+ # JSON template for Alias object in Directory API.
26
+ class Alias
27
+ include Google::Apis::Core::Hashable
28
+
29
+ #
30
+ # Corresponds to the JSON property `alias`
31
+ # @return [String]
32
+ attr_accessor :alias
33
+
34
+ #
35
+ # Corresponds to the JSON property `etag`
36
+ # @return [String]
37
+ attr_accessor :etag
38
+
39
+ #
40
+ # Corresponds to the JSON property `id`
41
+ # @return [String]
42
+ attr_accessor :id
43
+
44
+ #
45
+ # Corresponds to the JSON property `kind`
46
+ # @return [String]
47
+ attr_accessor :kind
48
+
49
+ #
50
+ # Corresponds to the JSON property `primaryEmail`
51
+ # @return [String]
52
+ attr_accessor :primary_email
53
+
54
+ def initialize(**args)
55
+ update!(**args)
56
+ end
57
+
58
+ # Update properties of this object
59
+ def update!(**args)
60
+ @alias = args[:alias] if args.key?(:alias)
61
+ @etag = args[:etag] if args.key?(:etag)
62
+ @id = args[:id] if args.key?(:id)
63
+ @kind = args[:kind] if args.key?(:kind)
64
+ @primary_email = args[:primary_email] if args.key?(:primary_email)
65
+ end
66
+ end
67
+
68
+ # JSON response template to list aliases in Directory API.
69
+ class Aliases
70
+ include Google::Apis::Core::Hashable
71
+
72
+ #
73
+ # Corresponds to the JSON property `aliases`
74
+ # @return [Array<Object>]
75
+ attr_accessor :aliases
76
+
77
+ #
78
+ # Corresponds to the JSON property `etag`
79
+ # @return [String]
80
+ attr_accessor :etag
81
+
82
+ #
83
+ # Corresponds to the JSON property `kind`
84
+ # @return [String]
85
+ attr_accessor :kind
86
+
87
+ def initialize(**args)
88
+ update!(**args)
89
+ end
90
+
91
+ # Update properties of this object
92
+ def update!(**args)
93
+ @aliases = args[:aliases] if args.key?(:aliases)
94
+ @etag = args[:etag] if args.key?(:etag)
95
+ @kind = args[:kind] if args.key?(:kind)
96
+ end
97
+ end
98
+
99
+ # An application-specific password (ASP) is used with applications that do not
100
+ # accept a verification code when logging into the application on certain
101
+ # devices. The ASP access code is used instead of the login and password you
102
+ # commonly use when accessing an application through a browser. For more
103
+ # information about ASPs and how to create one, see the [help center](//http://
104
+ # support.google.com/a/bin/answer.py?amp;answer=1032419).
105
+ class Asp
106
+ include Google::Apis::Core::Hashable
107
+
108
+ # The unique ID of the ASP.
109
+ # Corresponds to the JSON property `codeId`
110
+ # @return [Fixnum]
111
+ attr_accessor :code_id
112
+
113
+ # The time when the ASP was created. Expressed in [Unix time](http://en.
114
+ # wikipedia.org/wiki/Epoch_time) format.
115
+ # Corresponds to the JSON property `creationTime`
116
+ # @return [Fixnum]
117
+ attr_accessor :creation_time
118
+
119
+ # ETag of the ASP.
120
+ # Corresponds to the JSON property `etag`
121
+ # @return [String]
122
+ attr_accessor :etag
123
+
124
+ # The type of the API resource. This is always `admin#directory#asp`.
125
+ # Corresponds to the JSON property `kind`
126
+ # @return [String]
127
+ attr_accessor :kind
128
+
129
+ # The time when the ASP was last used. Expressed in [Unix time](http://en.
130
+ # wikipedia.org/wiki/Epoch_time) format.
131
+ # Corresponds to the JSON property `lastTimeUsed`
132
+ # @return [Fixnum]
133
+ attr_accessor :last_time_used
134
+
135
+ # The name of the application that the user, represented by their `userId`,
136
+ # entered when the ASP was created.
137
+ # Corresponds to the JSON property `name`
138
+ # @return [String]
139
+ attr_accessor :name
140
+
141
+ # The unique ID of the user who issued the ASP.
142
+ # Corresponds to the JSON property `userKey`
143
+ # @return [String]
144
+ attr_accessor :user_key
145
+
146
+ def initialize(**args)
147
+ update!(**args)
148
+ end
149
+
150
+ # Update properties of this object
151
+ def update!(**args)
152
+ @code_id = args[:code_id] if args.key?(:code_id)
153
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
154
+ @etag = args[:etag] if args.key?(:etag)
155
+ @kind = args[:kind] if args.key?(:kind)
156
+ @last_time_used = args[:last_time_used] if args.key?(:last_time_used)
157
+ @name = args[:name] if args.key?(:name)
158
+ @user_key = args[:user_key] if args.key?(:user_key)
159
+ end
160
+ end
161
+
162
+ #
163
+ class Asps
164
+ include Google::Apis::Core::Hashable
165
+
166
+ # ETag of the resource.
167
+ # Corresponds to the JSON property `etag`
168
+ # @return [String]
169
+ attr_accessor :etag
170
+
171
+ # A list of ASP resources.
172
+ # Corresponds to the JSON property `items`
173
+ # @return [Array<Google::Apis::AdminDirectoryV1::Asp>]
174
+ attr_accessor :items
175
+
176
+ # The type of the API resource. This is always `admin#directory#aspList`.
177
+ # Corresponds to the JSON property `kind`
178
+ # @return [String]
179
+ attr_accessor :kind
180
+
181
+ def initialize(**args)
182
+ update!(**args)
183
+ end
184
+
185
+ # Update properties of this object
186
+ def update!(**args)
187
+ @etag = args[:etag] if args.key?(:etag)
188
+ @items = args[:items] if args.key?(:items)
189
+ @kind = args[:kind] if args.key?(:kind)
190
+ end
191
+ end
192
+
193
+ # Public API: Resources.buildings
194
+ class Building
195
+ include Google::Apis::Core::Hashable
196
+
197
+ # Public API: Resources.buildings
198
+ # Corresponds to the JSON property `address`
199
+ # @return [Google::Apis::AdminDirectoryV1::BuildingAddress]
200
+ attr_accessor :address
201
+
202
+ # Unique identifier for the building. The maximum length is 100 characters.
203
+ # Corresponds to the JSON property `buildingId`
204
+ # @return [String]
205
+ attr_accessor :building_id
206
+
207
+ # The building name as seen by users in Calendar. Must be unique for the
208
+ # customer. For example, "NYC-CHEL". The maximum length is 100 characters.
209
+ # Corresponds to the JSON property `buildingName`
210
+ # @return [String]
211
+ attr_accessor :building_name
212
+
213
+ # Public API: Resources.buildings
214
+ # Corresponds to the JSON property `coordinates`
215
+ # @return [Google::Apis::AdminDirectoryV1::BuildingCoordinates]
216
+ attr_accessor :coordinates
217
+
218
+ # A brief description of the building. For example, "Chelsea Market".
219
+ # Corresponds to the JSON property `description`
220
+ # @return [String]
221
+ attr_accessor :description
222
+
223
+ # ETag of the resource.
224
+ # Corresponds to the JSON property `etags`
225
+ # @return [String]
226
+ attr_accessor :etags
227
+
228
+ # The display names for all floors in this building. The floors are expected to
229
+ # be sorted in ascending order, from lowest floor to highest floor. For example,
230
+ # ["B2", "B1", "L", "1", "2", "2M", "3", "PH"] Must contain at least one entry.
231
+ # Corresponds to the JSON property `floorNames`
232
+ # @return [Array<String>]
233
+ attr_accessor :floor_names
234
+
235
+ # Kind of resource this is.
236
+ # Corresponds to the JSON property `kind`
237
+ # @return [String]
238
+ attr_accessor :kind
239
+
240
+ def initialize(**args)
241
+ update!(**args)
242
+ end
243
+
244
+ # Update properties of this object
245
+ def update!(**args)
246
+ @address = args[:address] if args.key?(:address)
247
+ @building_id = args[:building_id] if args.key?(:building_id)
248
+ @building_name = args[:building_name] if args.key?(:building_name)
249
+ @coordinates = args[:coordinates] if args.key?(:coordinates)
250
+ @description = args[:description] if args.key?(:description)
251
+ @etags = args[:etags] if args.key?(:etags)
252
+ @floor_names = args[:floor_names] if args.key?(:floor_names)
253
+ @kind = args[:kind] if args.key?(:kind)
254
+ end
255
+ end
256
+
257
+ # Public API: Resources.buildings
258
+ class BuildingAddress
259
+ include Google::Apis::Core::Hashable
260
+
261
+ # Unstructured address lines describing the lower levels of an address.
262
+ # Corresponds to the JSON property `addressLines`
263
+ # @return [Array<String>]
264
+ attr_accessor :address_lines
265
+
266
+ # Optional. Highest administrative subdivision which is used for postal
267
+ # addresses of a country or region.
268
+ # Corresponds to the JSON property `administrativeArea`
269
+ # @return [String]
270
+ attr_accessor :administrative_area
271
+
272
+ # Optional. BCP-47 language code of the contents of this address (if known).
273
+ # Corresponds to the JSON property `languageCode`
274
+ # @return [String]
275
+ attr_accessor :language_code
276
+
277
+ # Optional. Generally refers to the city/town portion of the address. Examples:
278
+ # US city, IT comune, UK post town. In regions of the world where localities are
279
+ # not well defined or do not fit into this structure well, leave locality empty
280
+ # and use addressLines.
281
+ # Corresponds to the JSON property `locality`
282
+ # @return [String]
283
+ attr_accessor :locality
284
+
285
+ # Optional. Postal code of the address.
286
+ # Corresponds to the JSON property `postalCode`
287
+ # @return [String]
288
+ attr_accessor :postal_code
289
+
290
+ # Required. CLDR region code of the country/region of the address.
291
+ # Corresponds to the JSON property `regionCode`
292
+ # @return [String]
293
+ attr_accessor :region_code
294
+
295
+ # Optional. Sublocality of the address.
296
+ # Corresponds to the JSON property `sublocality`
297
+ # @return [String]
298
+ attr_accessor :sublocality
299
+
300
+ def initialize(**args)
301
+ update!(**args)
302
+ end
303
+
304
+ # Update properties of this object
305
+ def update!(**args)
306
+ @address_lines = args[:address_lines] if args.key?(:address_lines)
307
+ @administrative_area = args[:administrative_area] if args.key?(:administrative_area)
308
+ @language_code = args[:language_code] if args.key?(:language_code)
309
+ @locality = args[:locality] if args.key?(:locality)
310
+ @postal_code = args[:postal_code] if args.key?(:postal_code)
311
+ @region_code = args[:region_code] if args.key?(:region_code)
312
+ @sublocality = args[:sublocality] if args.key?(:sublocality)
313
+ end
314
+ end
315
+
316
+ # Public API: Resources.buildings
317
+ class BuildingCoordinates
318
+ include Google::Apis::Core::Hashable
319
+
320
+ # Latitude in decimal degrees.
321
+ # Corresponds to the JSON property `latitude`
322
+ # @return [Float]
323
+ attr_accessor :latitude
324
+
325
+ # Longitude in decimal degrees.
326
+ # Corresponds to the JSON property `longitude`
327
+ # @return [Float]
328
+ attr_accessor :longitude
329
+
330
+ def initialize(**args)
331
+ update!(**args)
332
+ end
333
+
334
+ # Update properties of this object
335
+ def update!(**args)
336
+ @latitude = args[:latitude] if args.key?(:latitude)
337
+ @longitude = args[:longitude] if args.key?(:longitude)
338
+ end
339
+ end
340
+
341
+ # Public API: Resources.buildings
342
+ class Buildings
343
+ include Google::Apis::Core::Hashable
344
+
345
+ # The Buildings in this page of results.
346
+ # Corresponds to the JSON property `buildings`
347
+ # @return [Array<Google::Apis::AdminDirectoryV1::Building>]
348
+ attr_accessor :buildings
349
+
350
+ # ETag of the resource.
351
+ # Corresponds to the JSON property `etag`
352
+ # @return [String]
353
+ attr_accessor :etag
354
+
355
+ # Kind of resource this is.
356
+ # Corresponds to the JSON property `kind`
357
+ # @return [String]
358
+ attr_accessor :kind
359
+
360
+ # The continuation token, used to page through large result sets. Provide this
361
+ # value in a subsequent request to return the next page of results.
362
+ # Corresponds to the JSON property `nextPageToken`
363
+ # @return [String]
364
+ attr_accessor :next_page_token
365
+
366
+ def initialize(**args)
367
+ update!(**args)
368
+ end
369
+
370
+ # Update properties of this object
371
+ def update!(**args)
372
+ @buildings = args[:buildings] if args.key?(:buildings)
373
+ @etag = args[:etag] if args.key?(:etag)
374
+ @kind = args[:kind] if args.key?(:kind)
375
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
376
+ end
377
+ end
378
+
379
+ # Public API: Resources.calendars
380
+ class CalendarResource
381
+ include Google::Apis::Core::Hashable
382
+
383
+ # Unique ID for the building a resource is located in.
384
+ # Corresponds to the JSON property `buildingId`
385
+ # @return [String]
386
+ attr_accessor :building_id
387
+
388
+ # Capacity of a resource, number of seats in a room.
389
+ # Corresponds to the JSON property `capacity`
390
+ # @return [Fixnum]
391
+ attr_accessor :capacity
392
+
393
+ # ETag of the resource.
394
+ # Corresponds to the JSON property `etags`
395
+ # @return [String]
396
+ attr_accessor :etags
397
+
398
+ # Instances of features for the calendar resource.
399
+ # Corresponds to the JSON property `featureInstances`
400
+ # @return [Object]
401
+ attr_accessor :feature_instances
402
+
403
+ # Name of the floor a resource is located on.
404
+ # Corresponds to the JSON property `floorName`
405
+ # @return [String]
406
+ attr_accessor :floor_name
407
+
408
+ # Name of the section within a floor a resource is located in.
409
+ # Corresponds to the JSON property `floorSection`
410
+ # @return [String]
411
+ attr_accessor :floor_section
412
+
413
+ # The read-only auto-generated name of the calendar resource which includes
414
+ # metadata about the resource such as building name, floor, capacity, etc. For
415
+ # example, "NYC-2-Training Room 1A (16)".
416
+ # Corresponds to the JSON property `generatedResourceName`
417
+ # @return [String]
418
+ attr_accessor :generated_resource_name
419
+
420
+ # The type of the resource. For calendar resources, the value is `admin#
421
+ # directory#resources#calendars#CalendarResource`.
422
+ # Corresponds to the JSON property `kind`
423
+ # @return [String]
424
+ attr_accessor :kind
425
+
426
+ # The category of the calendar resource. Either CONFERENCE_ROOM or OTHER. Legacy
427
+ # data is set to CATEGORY_UNKNOWN.
428
+ # Corresponds to the JSON property `resourceCategory`
429
+ # @return [String]
430
+ attr_accessor :resource_category
431
+
432
+ # Description of the resource, visible only to admins.
433
+ # Corresponds to the JSON property `resourceDescription`
434
+ # @return [String]
435
+ attr_accessor :resource_description
436
+
437
+ # The read-only email for the calendar resource. Generated as part of creating a
438
+ # new calendar resource.
439
+ # Corresponds to the JSON property `resourceEmail`
440
+ # @return [String]
441
+ attr_accessor :resource_email
442
+
443
+ # The unique ID for the calendar resource.
444
+ # Corresponds to the JSON property `resourceId`
445
+ # @return [String]
446
+ attr_accessor :resource_id
447
+
448
+ # The name of the calendar resource. For example, "Training Room 1A".
449
+ # Corresponds to the JSON property `resourceName`
450
+ # @return [String]
451
+ attr_accessor :resource_name
452
+
453
+ # The type of the calendar resource, intended for non-room resources.
454
+ # Corresponds to the JSON property `resourceType`
455
+ # @return [String]
456
+ attr_accessor :resource_type
457
+
458
+ # Description of the resource, visible to users and admins.
459
+ # Corresponds to the JSON property `userVisibleDescription`
460
+ # @return [String]
461
+ attr_accessor :user_visible_description
462
+
463
+ def initialize(**args)
464
+ update!(**args)
465
+ end
466
+
467
+ # Update properties of this object
468
+ def update!(**args)
469
+ @building_id = args[:building_id] if args.key?(:building_id)
470
+ @capacity = args[:capacity] if args.key?(:capacity)
471
+ @etags = args[:etags] if args.key?(:etags)
472
+ @feature_instances = args[:feature_instances] if args.key?(:feature_instances)
473
+ @floor_name = args[:floor_name] if args.key?(:floor_name)
474
+ @floor_section = args[:floor_section] if args.key?(:floor_section)
475
+ @generated_resource_name = args[:generated_resource_name] if args.key?(:generated_resource_name)
476
+ @kind = args[:kind] if args.key?(:kind)
477
+ @resource_category = args[:resource_category] if args.key?(:resource_category)
478
+ @resource_description = args[:resource_description] if args.key?(:resource_description)
479
+ @resource_email = args[:resource_email] if args.key?(:resource_email)
480
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
481
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
482
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
483
+ @user_visible_description = args[:user_visible_description] if args.key?(:user_visible_description)
484
+ end
485
+ end
486
+
487
+ # Public API: Resources.calendars
488
+ class CalendarResources
489
+ include Google::Apis::Core::Hashable
490
+
491
+ # ETag of the resource.
492
+ # Corresponds to the JSON property `etag`
493
+ # @return [String]
494
+ attr_accessor :etag
495
+
496
+ # The CalendarResources in this page of results.
497
+ # Corresponds to the JSON property `items`
498
+ # @return [Array<Google::Apis::AdminDirectoryV1::CalendarResource>]
499
+ attr_accessor :items
500
+
501
+ # Identifies this as a collection of CalendarResources. This is always `admin#
502
+ # directory#resources#calendars#calendarResourcesList`.
503
+ # Corresponds to the JSON property `kind`
504
+ # @return [String]
505
+ attr_accessor :kind
506
+
507
+ # The continuation token, used to page through large result sets. Provide this
508
+ # value in a subsequent request to return the next page of results.
509
+ # Corresponds to the JSON property `nextPageToken`
510
+ # @return [String]
511
+ attr_accessor :next_page_token
512
+
513
+ def initialize(**args)
514
+ update!(**args)
515
+ end
516
+
517
+ # Update properties of this object
518
+ def update!(**args)
519
+ @etag = args[:etag] if args.key?(:etag)
520
+ @items = args[:items] if args.key?(:items)
521
+ @kind = args[:kind] if args.key?(:kind)
522
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
523
+ end
524
+ end
525
+
526
+ # An notification channel used to watch for resource changes.
527
+ class Channel
528
+ include Google::Apis::Core::Hashable
529
+
530
+ # The address where notifications are delivered for this channel.
531
+ # Corresponds to the JSON property `address`
532
+ # @return [String]
533
+ attr_accessor :address
534
+
535
+ # Date and time of notification channel expiration, expressed as a Unix
536
+ # timestamp, in milliseconds. Optional.
537
+ # Corresponds to the JSON property `expiration`
538
+ # @return [Fixnum]
539
+ attr_accessor :expiration
540
+
541
+ # A UUID or similar unique string that identifies this channel.
542
+ # Corresponds to the JSON property `id`
543
+ # @return [String]
544
+ attr_accessor :id
545
+
546
+ # Identifies this as a notification channel used to watch for changes to a
547
+ # resource, which is `api#channel`.
548
+ # Corresponds to the JSON property `kind`
549
+ # @return [String]
550
+ attr_accessor :kind
551
+
552
+ # Additional parameters controlling delivery channel behavior. Optional.
553
+ # Corresponds to the JSON property `params`
554
+ # @return [Hash<String,String>]
555
+ attr_accessor :params
556
+
557
+ # A Boolean value to indicate whether payload is wanted. Optional.
558
+ # Corresponds to the JSON property `payload`
559
+ # @return [Boolean]
560
+ attr_accessor :payload
561
+ alias_method :payload?, :payload
562
+
563
+ # An opaque ID that identifies the resource being watched on this channel.
564
+ # Stable across different API versions.
565
+ # Corresponds to the JSON property `resourceId`
566
+ # @return [String]
567
+ attr_accessor :resource_id
568
+
569
+ # A version-specific identifier for the watched resource.
570
+ # Corresponds to the JSON property `resourceUri`
571
+ # @return [String]
572
+ attr_accessor :resource_uri
573
+
574
+ # An arbitrary string delivered to the target address with each notification
575
+ # delivered over this channel. Optional.
576
+ # Corresponds to the JSON property `token`
577
+ # @return [String]
578
+ attr_accessor :token
579
+
580
+ # The type of delivery mechanism used for this channel.
581
+ # Corresponds to the JSON property `type`
582
+ # @return [String]
583
+ attr_accessor :type
584
+
585
+ def initialize(**args)
586
+ update!(**args)
587
+ end
588
+
589
+ # Update properties of this object
590
+ def update!(**args)
591
+ @address = args[:address] if args.key?(:address)
592
+ @expiration = args[:expiration] if args.key?(:expiration)
593
+ @id = args[:id] if args.key?(:id)
594
+ @kind = args[:kind] if args.key?(:kind)
595
+ @params = args[:params] if args.key?(:params)
596
+ @payload = args[:payload] if args.key?(:payload)
597
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
598
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
599
+ @token = args[:token] if args.key?(:token)
600
+ @type = args[:type] if args.key?(:type)
601
+ end
602
+ end
603
+
604
+ # Google Chrome devices run on the [Chrome OS](http://support.google.com/
605
+ # chromeos). For more information about common API tasks, see the [Developer's
606
+ # Guide](/admin-sdk/directory/v1/guides/manage-chrome-devices).
607
+ class ChromeOsDevice
608
+ include Google::Apis::Core::Hashable
609
+
610
+ # List of active time ranges (Read-only).
611
+ # Corresponds to the JSON property `activeTimeRanges`
612
+ # @return [Array<Google::Apis::AdminDirectoryV1::ChromeOsDevice::ActiveTimeRange>]
613
+ attr_accessor :active_time_ranges
614
+
615
+ # The asset identifier as noted by an administrator or specified during
616
+ # enrollment.
617
+ # Corresponds to the JSON property `annotatedAssetId`
618
+ # @return [String]
619
+ attr_accessor :annotated_asset_id
620
+
621
+ # The address or location of the device as noted by the administrator. Maximum
622
+ # length is `200` characters. Empty values are allowed.
623
+ # Corresponds to the JSON property `annotatedLocation`
624
+ # @return [String]
625
+ attr_accessor :annotated_location
626
+
627
+ # The user of the device as noted by the administrator. Maximum length is 100
628
+ # characters. Empty values are allowed.
629
+ # Corresponds to the JSON property `annotatedUser`
630
+ # @return [String]
631
+ attr_accessor :annotated_user
632
+
633
+ # (Read-only) The timestamp after which the device will stop receiving Chrome
634
+ # updates or support
635
+ # Corresponds to the JSON property `autoUpdateExpiration`
636
+ # @return [Fixnum]
637
+ attr_accessor :auto_update_expiration
638
+
639
+ # The boot mode for the device. The possible values are: * `Verified`: The
640
+ # device is running a valid version of the Chrome OS. * `Dev`: The devices's
641
+ # developer hardware switch is enabled. When booted, the device has a command
642
+ # line shell. For an example of a developer switch, see the [Chromebook
643
+ # developer information](http://www.chromium.org/chromium-os/developer-
644
+ # information-for-chrome-os-devices/samsung-series-5-chromebook#TOC-Developer-
645
+ # switch).
646
+ # Corresponds to the JSON property `bootMode`
647
+ # @return [String]
648
+ attr_accessor :boot_mode
649
+
650
+ # Reports of CPU utilization and temperature (Read-only)
651
+ # Corresponds to the JSON property `cpuStatusReports`
652
+ # @return [Array<Google::Apis::AdminDirectoryV1::ChromeOsDevice::CpuStatusReport>]
653
+ attr_accessor :cpu_status_reports
654
+
655
+ # List of device files to download (Read-only)
656
+ # Corresponds to the JSON property `deviceFiles`
657
+ # @return [Array<Google::Apis::AdminDirectoryV1::ChromeOsDevice::DeviceFile>]
658
+ attr_accessor :device_files
659
+
660
+ # The unique ID of the Chrome device.
661
+ # Corresponds to the JSON property `deviceId`
662
+ # @return [String]
663
+ attr_accessor :device_id
664
+
665
+ # Reports of disk space and other info about mounted/connected volumes.
666
+ # Corresponds to the JSON property `diskVolumeReports`
667
+ # @return [Array<Google::Apis::AdminDirectoryV1::ChromeOsDevice::DiskVolumeReport>]
668
+ attr_accessor :disk_volume_reports
669
+
670
+ # (Read-only) Built-in MAC address for the docking station that the device
671
+ # connected to. Factory sets Media access control address (MAC address) assigned
672
+ # for use by a dock. It is reserved specifically for MAC pass through device
673
+ # policy. The format is twelve (12) hexadecimal digits without any delimiter (
674
+ # uppercase letters). This is only relevant for some devices.
675
+ # Corresponds to the JSON property `dockMacAddress`
676
+ # @return [String]
677
+ attr_accessor :dock_mac_address
678
+
679
+ # ETag of the resource.
680
+ # Corresponds to the JSON property `etag`
681
+ # @return [String]
682
+ attr_accessor :etag
683
+
684
+ # The device's MAC address on the ethernet network interface.
685
+ # Corresponds to the JSON property `ethernetMacAddress`
686
+ # @return [String]
687
+ attr_accessor :ethernet_mac_address
688
+
689
+ # (Read-only) MAC address used by the Chromebook’s internal ethernet port, and
690
+ # for onboard network (ethernet) interface. The format is twelve (12)
691
+ # hexadecimal digits without any delimiter (uppercase letters). This is only
692
+ # relevant for some devices.
693
+ # Corresponds to the JSON property `ethernetMacAddress0`
694
+ # @return [String]
695
+ attr_accessor :ethernet_mac_address0
696
+
697
+ # The Chrome device's firmware version.
698
+ # Corresponds to the JSON property `firmwareVersion`
699
+ # @return [String]
700
+ attr_accessor :firmware_version
701
+
702
+ # The type of resource. For the Chromeosdevices resource, the value is `admin#
703
+ # directory#chromeosdevice`.
704
+ # Corresponds to the JSON property `kind`
705
+ # @return [String]
706
+ attr_accessor :kind
707
+
708
+ # Date and time the device was last enrolled (Read-only)
709
+ # Corresponds to the JSON property `lastEnrollmentTime`
710
+ # @return [DateTime]
711
+ attr_accessor :last_enrollment_time
712
+
713
+ # Contains last known network (Read-only)
714
+ # Corresponds to the JSON property `lastKnownNetwork`
715
+ # @return [Array<Google::Apis::AdminDirectoryV1::ChromeOsDevice::LastKnownNetwork>]
716
+ attr_accessor :last_known_network
717
+
718
+ # Date and time the device was last synchronized with the policy settings in the
719
+ # G Suite administrator control panel (Read-only)
720
+ # Corresponds to the JSON property `lastSync`
721
+ # @return [DateTime]
722
+ attr_accessor :last_sync
723
+
724
+ # The device's wireless MAC address. If the device does not have this
725
+ # information, it is not included in the response.
726
+ # Corresponds to the JSON property `macAddress`
727
+ # @return [String]
728
+ attr_accessor :mac_address
729
+
730
+ # (Read-only) The date the device was manufactured in yyyy-mm-dd format.
731
+ # Corresponds to the JSON property `manufactureDate`
732
+ # @return [String]
733
+ attr_accessor :manufacture_date
734
+
735
+ # The Mobile Equipment Identifier (MEID) or the International Mobile Equipment
736
+ # Identity (IMEI) for the 3G mobile card in a mobile device. A MEID/IMEI is
737
+ # typically used when adding a device to a wireless carrier's post-pay service
738
+ # plan. If the device does not have this information, this property is not
739
+ # included in the response. For more information on how to export a MEID/IMEI
740
+ # list, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-chrome-
741
+ # devices.html#export_meid).
742
+ # Corresponds to the JSON property `meid`
743
+ # @return [String]
744
+ attr_accessor :meid
745
+
746
+ # The device's model information. If the device does not have this information,
747
+ # this property is not included in the response.
748
+ # Corresponds to the JSON property `model`
749
+ # @return [String]
750
+ attr_accessor :model
751
+
752
+ # Notes about this device added by the administrator. This property can be [
753
+ # searched](http://support.google.com/chromeos/a/bin/answer.py?answer=1698333)
754
+ # with the [list](/admin-sdk/directory/v1/reference/chromeosdevices/list) method'
755
+ # s `query` parameter. Maximum length is 500 characters. Empty values are
756
+ # allowed.
757
+ # Corresponds to the JSON property `notes`
758
+ # @return [String]
759
+ attr_accessor :notes
760
+
761
+ # The device's order number. Only devices directly purchased from Google have an
762
+ # order number.
763
+ # Corresponds to the JSON property `orderNumber`
764
+ # @return [String]
765
+ attr_accessor :order_number
766
+
767
+ # The full parent path with the organizational unit's name associated with the
768
+ # device. Path names are case insensitive. If the parent organizational unit is
769
+ # the top-level organization, it is represented as a forward slash, `/`. This
770
+ # property can be [updated](/admin-sdk/directory/v1/guides/manage-chrome-devices#
771
+ # update_chrome_device) using the API. For more information about how to create
772
+ # an organizational structure for your device, see the [administration help
773
+ # center](http://support.google.com/a/bin/answer.py?answer=182433).
774
+ # Corresponds to the JSON property `orgUnitPath`
775
+ # @return [String]
776
+ attr_accessor :org_unit_path
777
+
778
+ # The Chrome device's operating system version.
779
+ # Corresponds to the JSON property `osVersion`
780
+ # @return [String]
781
+ attr_accessor :os_version
782
+
783
+ # The Chrome device's platform version.
784
+ # Corresponds to the JSON property `platformVersion`
785
+ # @return [String]
786
+ attr_accessor :platform_version
787
+
788
+ # List of recent device users, in descending order, by last login time.
789
+ # Corresponds to the JSON property `recentUsers`
790
+ # @return [Array<Google::Apis::AdminDirectoryV1::RecentUsers>]
791
+ attr_accessor :recent_users
792
+
793
+ # The Chrome device serial number entered when the device was enabled. This
794
+ # value is the same as the Admin console's *Serial Number* in the *Chrome OS
795
+ # Devices* tab.
796
+ # Corresponds to the JSON property `serialNumber`
797
+ # @return [String]
798
+ attr_accessor :serial_number
799
+
800
+ # The status of the device.
801
+ # Corresponds to the JSON property `status`
802
+ # @return [String]
803
+ attr_accessor :status
804
+
805
+ # Final date the device will be supported (Read-only)
806
+ # Corresponds to the JSON property `supportEndDate`
807
+ # @return [DateTime]
808
+ attr_accessor :support_end_date
809
+
810
+ # Reports of amounts of available RAM memory (Read-only)
811
+ # Corresponds to the JSON property `systemRamFreeReports`
812
+ # @return [Array<Google::Apis::AdminDirectoryV1::ChromeOsDevice::SystemRamFreeReport>]
813
+ attr_accessor :system_ram_free_reports
814
+
815
+ # Total RAM on the device [in bytes] (Read-only)
816
+ # Corresponds to the JSON property `systemRamTotal`
817
+ # @return [Fixnum]
818
+ attr_accessor :system_ram_total
819
+
820
+ # Trusted Platform Module (TPM) (Read-only)
821
+ # Corresponds to the JSON property `tpmVersionInfo`
822
+ # @return [Google::Apis::AdminDirectoryV1::ChromeOsDevice::TpmVersionInfo]
823
+ attr_accessor :tpm_version_info
824
+
825
+ # Determines if the device will auto renew its support after the support end
826
+ # date. This is a read-only property.
827
+ # Corresponds to the JSON property `willAutoRenew`
828
+ # @return [Boolean]
829
+ attr_accessor :will_auto_renew
830
+ alias_method :will_auto_renew?, :will_auto_renew
831
+
832
+ def initialize(**args)
833
+ update!(**args)
834
+ end
835
+
836
+ # Update properties of this object
837
+ def update!(**args)
838
+ @active_time_ranges = args[:active_time_ranges] if args.key?(:active_time_ranges)
839
+ @annotated_asset_id = args[:annotated_asset_id] if args.key?(:annotated_asset_id)
840
+ @annotated_location = args[:annotated_location] if args.key?(:annotated_location)
841
+ @annotated_user = args[:annotated_user] if args.key?(:annotated_user)
842
+ @auto_update_expiration = args[:auto_update_expiration] if args.key?(:auto_update_expiration)
843
+ @boot_mode = args[:boot_mode] if args.key?(:boot_mode)
844
+ @cpu_status_reports = args[:cpu_status_reports] if args.key?(:cpu_status_reports)
845
+ @device_files = args[:device_files] if args.key?(:device_files)
846
+ @device_id = args[:device_id] if args.key?(:device_id)
847
+ @disk_volume_reports = args[:disk_volume_reports] if args.key?(:disk_volume_reports)
848
+ @dock_mac_address = args[:dock_mac_address] if args.key?(:dock_mac_address)
849
+ @etag = args[:etag] if args.key?(:etag)
850
+ @ethernet_mac_address = args[:ethernet_mac_address] if args.key?(:ethernet_mac_address)
851
+ @ethernet_mac_address0 = args[:ethernet_mac_address0] if args.key?(:ethernet_mac_address0)
852
+ @firmware_version = args[:firmware_version] if args.key?(:firmware_version)
853
+ @kind = args[:kind] if args.key?(:kind)
854
+ @last_enrollment_time = args[:last_enrollment_time] if args.key?(:last_enrollment_time)
855
+ @last_known_network = args[:last_known_network] if args.key?(:last_known_network)
856
+ @last_sync = args[:last_sync] if args.key?(:last_sync)
857
+ @mac_address = args[:mac_address] if args.key?(:mac_address)
858
+ @manufacture_date = args[:manufacture_date] if args.key?(:manufacture_date)
859
+ @meid = args[:meid] if args.key?(:meid)
860
+ @model = args[:model] if args.key?(:model)
861
+ @notes = args[:notes] if args.key?(:notes)
862
+ @order_number = args[:order_number] if args.key?(:order_number)
863
+ @org_unit_path = args[:org_unit_path] if args.key?(:org_unit_path)
864
+ @os_version = args[:os_version] if args.key?(:os_version)
865
+ @platform_version = args[:platform_version] if args.key?(:platform_version)
866
+ @recent_users = args[:recent_users] if args.key?(:recent_users)
867
+ @serial_number = args[:serial_number] if args.key?(:serial_number)
868
+ @status = args[:status] if args.key?(:status)
869
+ @support_end_date = args[:support_end_date] if args.key?(:support_end_date)
870
+ @system_ram_free_reports = args[:system_ram_free_reports] if args.key?(:system_ram_free_reports)
871
+ @system_ram_total = args[:system_ram_total] if args.key?(:system_ram_total)
872
+ @tpm_version_info = args[:tpm_version_info] if args.key?(:tpm_version_info)
873
+ @will_auto_renew = args[:will_auto_renew] if args.key?(:will_auto_renew)
874
+ end
875
+
876
+ #
877
+ class ActiveTimeRange
878
+ include Google::Apis::Core::Hashable
879
+
880
+ # Duration of usage in milliseconds.
881
+ # Corresponds to the JSON property `activeTime`
882
+ # @return [Fixnum]
883
+ attr_accessor :active_time
884
+
885
+ # Date of usage
886
+ # Corresponds to the JSON property `date`
887
+ # @return [Date]
888
+ attr_accessor :date
889
+
890
+ def initialize(**args)
891
+ update!(**args)
892
+ end
893
+
894
+ # Update properties of this object
895
+ def update!(**args)
896
+ @active_time = args[:active_time] if args.key?(:active_time)
897
+ @date = args[:date] if args.key?(:date)
898
+ end
899
+ end
900
+
901
+ #
902
+ class CpuStatusReport
903
+ include Google::Apis::Core::Hashable
904
+
905
+ # List of CPU temperature samples.
906
+ # Corresponds to the JSON property `cpuTemperatureInfo`
907
+ # @return [Array<Google::Apis::AdminDirectoryV1::ChromeOsDevice::CpuStatusReport::CpuTemperatureInfo>]
908
+ attr_accessor :cpu_temperature_info
909
+
910
+ #
911
+ # Corresponds to the JSON property `cpuUtilizationPercentageInfo`
912
+ # @return [Array<Fixnum>]
913
+ attr_accessor :cpu_utilization_percentage_info
914
+
915
+ # Date and time the report was received.
916
+ # Corresponds to the JSON property `reportTime`
917
+ # @return [DateTime]
918
+ attr_accessor :report_time
919
+
920
+ def initialize(**args)
921
+ update!(**args)
922
+ end
923
+
924
+ # Update properties of this object
925
+ def update!(**args)
926
+ @cpu_temperature_info = args[:cpu_temperature_info] if args.key?(:cpu_temperature_info)
927
+ @cpu_utilization_percentage_info = args[:cpu_utilization_percentage_info] if args.key?(:cpu_utilization_percentage_info)
928
+ @report_time = args[:report_time] if args.key?(:report_time)
929
+ end
930
+
931
+ #
932
+ class CpuTemperatureInfo
933
+ include Google::Apis::Core::Hashable
934
+
935
+ # CPU label
936
+ # Corresponds to the JSON property `label`
937
+ # @return [String]
938
+ attr_accessor :label
939
+
940
+ # Temperature in Celsius degrees.
941
+ # Corresponds to the JSON property `temperature`
942
+ # @return [Fixnum]
943
+ attr_accessor :temperature
944
+
945
+ def initialize(**args)
946
+ update!(**args)
947
+ end
948
+
949
+ # Update properties of this object
950
+ def update!(**args)
951
+ @label = args[:label] if args.key?(:label)
952
+ @temperature = args[:temperature] if args.key?(:temperature)
953
+ end
954
+ end
955
+ end
956
+
957
+ #
958
+ class DeviceFile
959
+ include Google::Apis::Core::Hashable
960
+
961
+ # Date and time the file was created
962
+ # Corresponds to the JSON property `createTime`
963
+ # @return [DateTime]
964
+ attr_accessor :create_time
965
+
966
+ # File download URL
967
+ # Corresponds to the JSON property `downloadUrl`
968
+ # @return [String]
969
+ attr_accessor :download_url
970
+
971
+ # File name
972
+ # Corresponds to the JSON property `name`
973
+ # @return [String]
974
+ attr_accessor :name
975
+
976
+ # File type
977
+ # Corresponds to the JSON property `type`
978
+ # @return [String]
979
+ attr_accessor :type
980
+
981
+ def initialize(**args)
982
+ update!(**args)
983
+ end
984
+
985
+ # Update properties of this object
986
+ def update!(**args)
987
+ @create_time = args[:create_time] if args.key?(:create_time)
988
+ @download_url = args[:download_url] if args.key?(:download_url)
989
+ @name = args[:name] if args.key?(:name)
990
+ @type = args[:type] if args.key?(:type)
991
+ end
992
+ end
993
+
994
+ #
995
+ class DiskVolumeReport
996
+ include Google::Apis::Core::Hashable
997
+
998
+ # Disk volumes
999
+ # Corresponds to the JSON property `volumeInfo`
1000
+ # @return [Array<Google::Apis::AdminDirectoryV1::ChromeOsDevice::DiskVolumeReport::VolumeInfo>]
1001
+ attr_accessor :volume_info
1002
+
1003
+ def initialize(**args)
1004
+ update!(**args)
1005
+ end
1006
+
1007
+ # Update properties of this object
1008
+ def update!(**args)
1009
+ @volume_info = args[:volume_info] if args.key?(:volume_info)
1010
+ end
1011
+
1012
+ #
1013
+ class VolumeInfo
1014
+ include Google::Apis::Core::Hashable
1015
+
1016
+ # Free disk space [in bytes]
1017
+ # Corresponds to the JSON property `storageFree`
1018
+ # @return [Fixnum]
1019
+ attr_accessor :storage_free
1020
+
1021
+ # Total disk space [in bytes]
1022
+ # Corresponds to the JSON property `storageTotal`
1023
+ # @return [Fixnum]
1024
+ attr_accessor :storage_total
1025
+
1026
+ # Volume id
1027
+ # Corresponds to the JSON property `volumeId`
1028
+ # @return [String]
1029
+ attr_accessor :volume_id
1030
+
1031
+ def initialize(**args)
1032
+ update!(**args)
1033
+ end
1034
+
1035
+ # Update properties of this object
1036
+ def update!(**args)
1037
+ @storage_free = args[:storage_free] if args.key?(:storage_free)
1038
+ @storage_total = args[:storage_total] if args.key?(:storage_total)
1039
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
1040
+ end
1041
+ end
1042
+ end
1043
+
1044
+ # Information for an ip address.
1045
+ class LastKnownNetwork
1046
+ include Google::Apis::Core::Hashable
1047
+
1048
+ # The IP address.
1049
+ # Corresponds to the JSON property `ipAddress`
1050
+ # @return [String]
1051
+ attr_accessor :ip_address
1052
+
1053
+ # The WAN IP address.
1054
+ # Corresponds to the JSON property `wanIpAddress`
1055
+ # @return [String]
1056
+ attr_accessor :wan_ip_address
1057
+
1058
+ def initialize(**args)
1059
+ update!(**args)
1060
+ end
1061
+
1062
+ # Update properties of this object
1063
+ def update!(**args)
1064
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
1065
+ @wan_ip_address = args[:wan_ip_address] if args.key?(:wan_ip_address)
1066
+ end
1067
+ end
1068
+
1069
+ #
1070
+ class SystemRamFreeReport
1071
+ include Google::Apis::Core::Hashable
1072
+
1073
+ # Date and time the report was received.
1074
+ # Corresponds to the JSON property `reportTime`
1075
+ # @return [DateTime]
1076
+ attr_accessor :report_time
1077
+
1078
+ #
1079
+ # Corresponds to the JSON property `systemRamFreeInfo`
1080
+ # @return [Array<Fixnum>]
1081
+ attr_accessor :system_ram_free_info
1082
+
1083
+ def initialize(**args)
1084
+ update!(**args)
1085
+ end
1086
+
1087
+ # Update properties of this object
1088
+ def update!(**args)
1089
+ @report_time = args[:report_time] if args.key?(:report_time)
1090
+ @system_ram_free_info = args[:system_ram_free_info] if args.key?(:system_ram_free_info)
1091
+ end
1092
+ end
1093
+
1094
+ # Trusted Platform Module (TPM) (Read-only)
1095
+ class TpmVersionInfo
1096
+ include Google::Apis::Core::Hashable
1097
+
1098
+ # TPM family. We use the TPM 2.0 style encoding, e.g.: TPM 1.2: "1.2" ->
1099
+ # 312e3200 TPM 2.0: "2.0" -> 322e3000
1100
+ # Corresponds to the JSON property `family`
1101
+ # @return [String]
1102
+ attr_accessor :family
1103
+
1104
+ # TPM firmware version.
1105
+ # Corresponds to the JSON property `firmwareVersion`
1106
+ # @return [String]
1107
+ attr_accessor :firmware_version
1108
+
1109
+ # TPM manufacturer code.
1110
+ # Corresponds to the JSON property `manufacturer`
1111
+ # @return [String]
1112
+ attr_accessor :manufacturer
1113
+
1114
+ # TPM specification level. See Library Specification for TPM 2.0 and Main
1115
+ # Specification for TPM 1.2.
1116
+ # Corresponds to the JSON property `specLevel`
1117
+ # @return [String]
1118
+ attr_accessor :spec_level
1119
+
1120
+ # TPM model number.
1121
+ # Corresponds to the JSON property `tpmModel`
1122
+ # @return [String]
1123
+ attr_accessor :tpm_model
1124
+
1125
+ # Vendor-specific information such as Vendor ID.
1126
+ # Corresponds to the JSON property `vendorSpecific`
1127
+ # @return [String]
1128
+ attr_accessor :vendor_specific
1129
+
1130
+ def initialize(**args)
1131
+ update!(**args)
1132
+ end
1133
+
1134
+ # Update properties of this object
1135
+ def update!(**args)
1136
+ @family = args[:family] if args.key?(:family)
1137
+ @firmware_version = args[:firmware_version] if args.key?(:firmware_version)
1138
+ @manufacturer = args[:manufacturer] if args.key?(:manufacturer)
1139
+ @spec_level = args[:spec_level] if args.key?(:spec_level)
1140
+ @tpm_model = args[:tpm_model] if args.key?(:tpm_model)
1141
+ @vendor_specific = args[:vendor_specific] if args.key?(:vendor_specific)
1142
+ end
1143
+ end
1144
+ end
1145
+
1146
+ #
1147
+ class ChromeOsDeviceAction
1148
+ include Google::Apis::Core::Hashable
1149
+
1150
+ # Action to be taken on the Chrome OS device.
1151
+ # Corresponds to the JSON property `action`
1152
+ # @return [String]
1153
+ attr_accessor :action
1154
+
1155
+ # Only used when the action is `deprovision`. With the `deprovision` action,
1156
+ # this field is required. *Note*: The deprovision reason is audited because it
1157
+ # might have implications on licenses for perpetual subscription customers.
1158
+ # Corresponds to the JSON property `deprovisionReason`
1159
+ # @return [String]
1160
+ attr_accessor :deprovision_reason
1161
+
1162
+ def initialize(**args)
1163
+ update!(**args)
1164
+ end
1165
+
1166
+ # Update properties of this object
1167
+ def update!(**args)
1168
+ @action = args[:action] if args.key?(:action)
1169
+ @deprovision_reason = args[:deprovision_reason] if args.key?(:deprovision_reason)
1170
+ end
1171
+ end
1172
+
1173
+ #
1174
+ class ChromeOsDevices
1175
+ include Google::Apis::Core::Hashable
1176
+
1177
+ # List of Chrome OS Device objects.
1178
+ # Corresponds to the JSON property `chromeosdevices`
1179
+ # @return [Array<Google::Apis::AdminDirectoryV1::ChromeOsDevice>]
1180
+ attr_accessor :chromeosdevices
1181
+
1182
+ # ETag of the resource.
1183
+ # Corresponds to the JSON property `etag`
1184
+ # @return [String]
1185
+ attr_accessor :etag
1186
+
1187
+ # Kind of resource this is.
1188
+ # Corresponds to the JSON property `kind`
1189
+ # @return [String]
1190
+ attr_accessor :kind
1191
+
1192
+ # Token used to access the next page of this result. To access the next page,
1193
+ # use this token's value in the `pageToken` query string of this request.
1194
+ # Corresponds to the JSON property `nextPageToken`
1195
+ # @return [String]
1196
+ attr_accessor :next_page_token
1197
+
1198
+ def initialize(**args)
1199
+ update!(**args)
1200
+ end
1201
+
1202
+ # Update properties of this object
1203
+ def update!(**args)
1204
+ @chromeosdevices = args[:chromeosdevices] if args.key?(:chromeosdevices)
1205
+ @etag = args[:etag] if args.key?(:etag)
1206
+ @kind = args[:kind] if args.key?(:kind)
1207
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1208
+ end
1209
+ end
1210
+
1211
+ #
1212
+ class ChromeOsMoveDevicesToOu
1213
+ include Google::Apis::Core::Hashable
1214
+
1215
+ # Chrome OS devices to be moved to OU
1216
+ # Corresponds to the JSON property `deviceIds`
1217
+ # @return [Array<String>]
1218
+ attr_accessor :device_ids
1219
+
1220
+ def initialize(**args)
1221
+ update!(**args)
1222
+ end
1223
+
1224
+ # Update properties of this object
1225
+ def update!(**args)
1226
+ @device_ids = args[:device_ids] if args.key?(:device_ids)
1227
+ end
1228
+ end
1229
+
1230
+ #
1231
+ class Customer
1232
+ include Google::Apis::Core::Hashable
1233
+
1234
+ # The customer's secondary contact email address. This email address cannot be
1235
+ # on the same domain as the `customerDomain`
1236
+ # Corresponds to the JSON property `alternateEmail`
1237
+ # @return [String]
1238
+ attr_accessor :alternate_email
1239
+
1240
+ # The customer's creation time (Readonly)
1241
+ # Corresponds to the JSON property `customerCreationTime`
1242
+ # @return [DateTime]
1243
+ attr_accessor :customer_creation_time
1244
+
1245
+ # The customer's primary domain name string. Do not include the `www` prefix
1246
+ # when creating a new customer.
1247
+ # Corresponds to the JSON property `customerDomain`
1248
+ # @return [String]
1249
+ attr_accessor :customer_domain
1250
+
1251
+ # ETag of the resource.
1252
+ # Corresponds to the JSON property `etag`
1253
+ # @return [String]
1254
+ attr_accessor :etag
1255
+
1256
+ # The unique ID for the customer's Google Workspace account. (Readonly)
1257
+ # Corresponds to the JSON property `id`
1258
+ # @return [String]
1259
+ attr_accessor :id
1260
+
1261
+ # Identifies the resource as a customer. Value: `admin#directory#customer`
1262
+ # Corresponds to the JSON property `kind`
1263
+ # @return [String]
1264
+ attr_accessor :kind
1265
+
1266
+ # The customer's ISO 639-2 language code. See the [Language Codes](/admin-sdk/
1267
+ # directory/v1/languages) page for the list of supported codes. Valid language
1268
+ # codes outside the supported set will be accepted by the API but may lead to
1269
+ # unexpected behavior. The default value is `en`.
1270
+ # Corresponds to the JSON property `language`
1271
+ # @return [String]
1272
+ attr_accessor :language
1273
+
1274
+ # The customer's contact phone number in [E.164](http://en.wikipedia.org/wiki/E.
1275
+ # 164) format.
1276
+ # Corresponds to the JSON property `phoneNumber`
1277
+ # @return [String]
1278
+ attr_accessor :phone_number
1279
+
1280
+ # The customer's postal address information.
1281
+ # Corresponds to the JSON property `postalAddress`
1282
+ # @return [Google::Apis::AdminDirectoryV1::CustomerPostalAddress]
1283
+ attr_accessor :postal_address
1284
+
1285
+ def initialize(**args)
1286
+ update!(**args)
1287
+ end
1288
+
1289
+ # Update properties of this object
1290
+ def update!(**args)
1291
+ @alternate_email = args[:alternate_email] if args.key?(:alternate_email)
1292
+ @customer_creation_time = args[:customer_creation_time] if args.key?(:customer_creation_time)
1293
+ @customer_domain = args[:customer_domain] if args.key?(:customer_domain)
1294
+ @etag = args[:etag] if args.key?(:etag)
1295
+ @id = args[:id] if args.key?(:id)
1296
+ @kind = args[:kind] if args.key?(:kind)
1297
+ @language = args[:language] if args.key?(:language)
1298
+ @phone_number = args[:phone_number] if args.key?(:phone_number)
1299
+ @postal_address = args[:postal_address] if args.key?(:postal_address)
1300
+ end
1301
+ end
1302
+
1303
+ #
1304
+ class CustomerPostalAddress
1305
+ include Google::Apis::Core::Hashable
1306
+
1307
+ # A customer's physical address. The address can be composed of one to three
1308
+ # lines.
1309
+ # Corresponds to the JSON property `addressLine1`
1310
+ # @return [String]
1311
+ attr_accessor :address_line1
1312
+
1313
+ # Address line 2 of the address.
1314
+ # Corresponds to the JSON property `addressLine2`
1315
+ # @return [String]
1316
+ attr_accessor :address_line2
1317
+
1318
+ # Address line 3 of the address.
1319
+ # Corresponds to the JSON property `addressLine3`
1320
+ # @return [String]
1321
+ attr_accessor :address_line3
1322
+
1323
+ # The customer contact's name.
1324
+ # Corresponds to the JSON property `contactName`
1325
+ # @return [String]
1326
+ attr_accessor :contact_name
1327
+
1328
+ # This is a required property. For `countryCode` information see the [ISO 3166
1329
+ # country code elements](http://www.iso.org/iso/country_codes.htm).
1330
+ # Corresponds to the JSON property `countryCode`
1331
+ # @return [String]
1332
+ attr_accessor :country_code
1333
+
1334
+ # Name of the locality. An example of a locality value is the city of `San
1335
+ # Francisco`.
1336
+ # Corresponds to the JSON property `locality`
1337
+ # @return [String]
1338
+ attr_accessor :locality
1339
+
1340
+ # The company or company division name.
1341
+ # Corresponds to the JSON property `organizationName`
1342
+ # @return [String]
1343
+ attr_accessor :organization_name
1344
+
1345
+ # The postal code. A postalCode example is a postal zip code such as `10009`.
1346
+ # This is in accordance with - http: //portablecontacts.net/draft-spec.html#
1347
+ # address_element.
1348
+ # Corresponds to the JSON property `postalCode`
1349
+ # @return [String]
1350
+ attr_accessor :postal_code
1351
+
1352
+ # Name of the region. An example of a region value is `NY` for the state of New
1353
+ # York.
1354
+ # Corresponds to the JSON property `region`
1355
+ # @return [String]
1356
+ attr_accessor :region
1357
+
1358
+ def initialize(**args)
1359
+ update!(**args)
1360
+ end
1361
+
1362
+ # Update properties of this object
1363
+ def update!(**args)
1364
+ @address_line1 = args[:address_line1] if args.key?(:address_line1)
1365
+ @address_line2 = args[:address_line2] if args.key?(:address_line2)
1366
+ @address_line3 = args[:address_line3] if args.key?(:address_line3)
1367
+ @contact_name = args[:contact_name] if args.key?(:contact_name)
1368
+ @country_code = args[:country_code] if args.key?(:country_code)
1369
+ @locality = args[:locality] if args.key?(:locality)
1370
+ @organization_name = args[:organization_name] if args.key?(:organization_name)
1371
+ @postal_code = args[:postal_code] if args.key?(:postal_code)
1372
+ @region = args[:region] if args.key?(:region)
1373
+ end
1374
+ end
1375
+
1376
+ # Information regarding a command that was issued to a device.
1377
+ class DirectoryChromeosdevicesCommand
1378
+ include Google::Apis::Core::Hashable
1379
+
1380
+ # The time at which the command will expire. If the device doesn't execute the
1381
+ # command within this time the command will become expired.
1382
+ # Corresponds to the JSON property `commandExpireTime`
1383
+ # @return [String]
1384
+ attr_accessor :command_expire_time
1385
+
1386
+ # Unique ID of a device command.
1387
+ # Corresponds to the JSON property `commandId`
1388
+ # @return [Fixnum]
1389
+ attr_accessor :command_id
1390
+
1391
+ # The result of executing a command.
1392
+ # Corresponds to the JSON property `commandResult`
1393
+ # @return [Google::Apis::AdminDirectoryV1::DirectoryChromeosdevicesCommandResult]
1394
+ attr_accessor :command_result
1395
+
1396
+ # The timestamp when the command was issued by the admin.
1397
+ # Corresponds to the JSON property `issueTime`
1398
+ # @return [String]
1399
+ attr_accessor :issue_time
1400
+
1401
+ # The payload that the command specified, if any.
1402
+ # Corresponds to the JSON property `payload`
1403
+ # @return [String]
1404
+ attr_accessor :payload
1405
+
1406
+ # Indicates the command state.
1407
+ # Corresponds to the JSON property `state`
1408
+ # @return [String]
1409
+ attr_accessor :state
1410
+
1411
+ # The type of the command.
1412
+ # Corresponds to the JSON property `type`
1413
+ # @return [String]
1414
+ attr_accessor :type
1415
+
1416
+ def initialize(**args)
1417
+ update!(**args)
1418
+ end
1419
+
1420
+ # Update properties of this object
1421
+ def update!(**args)
1422
+ @command_expire_time = args[:command_expire_time] if args.key?(:command_expire_time)
1423
+ @command_id = args[:command_id] if args.key?(:command_id)
1424
+ @command_result = args[:command_result] if args.key?(:command_result)
1425
+ @issue_time = args[:issue_time] if args.key?(:issue_time)
1426
+ @payload = args[:payload] if args.key?(:payload)
1427
+ @state = args[:state] if args.key?(:state)
1428
+ @type = args[:type] if args.key?(:type)
1429
+ end
1430
+ end
1431
+
1432
+ # The result of executing a command.
1433
+ class DirectoryChromeosdevicesCommandResult
1434
+ include Google::Apis::Core::Hashable
1435
+
1436
+ # The error message with a short explanation as to why the command failed. Only
1437
+ # present if the command failed.
1438
+ # Corresponds to the JSON property `errorMessage`
1439
+ # @return [String]
1440
+ attr_accessor :error_message
1441
+
1442
+ # The time at which the command was executed or failed to execute.
1443
+ # Corresponds to the JSON property `executeTime`
1444
+ # @return [String]
1445
+ attr_accessor :execute_time
1446
+
1447
+ # The result of the command.
1448
+ # Corresponds to the JSON property `result`
1449
+ # @return [String]
1450
+ attr_accessor :result
1451
+
1452
+ def initialize(**args)
1453
+ update!(**args)
1454
+ end
1455
+
1456
+ # Update properties of this object
1457
+ def update!(**args)
1458
+ @error_message = args[:error_message] if args.key?(:error_message)
1459
+ @execute_time = args[:execute_time] if args.key?(:execute_time)
1460
+ @result = args[:result] if args.key?(:result)
1461
+ end
1462
+ end
1463
+
1464
+ # A request for issuing a command.
1465
+ class DirectoryChromeosdevicesIssueCommandRequest
1466
+ include Google::Apis::Core::Hashable
1467
+
1468
+ # The type of command.
1469
+ # Corresponds to the JSON property `commandType`
1470
+ # @return [String]
1471
+ attr_accessor :command_type
1472
+
1473
+ # The payload for the command, provide it only if command supports it. The
1474
+ # following commands support adding payload: - SET_VOLUME: Payload is a
1475
+ # stringified JSON object in the form: ` "volume": 50 `. The volume has to be an
1476
+ # integer in the range [0,100].
1477
+ # Corresponds to the JSON property `payload`
1478
+ # @return [String]
1479
+ attr_accessor :payload
1480
+
1481
+ def initialize(**args)
1482
+ update!(**args)
1483
+ end
1484
+
1485
+ # Update properties of this object
1486
+ def update!(**args)
1487
+ @command_type = args[:command_type] if args.key?(:command_type)
1488
+ @payload = args[:payload] if args.key?(:payload)
1489
+ end
1490
+ end
1491
+
1492
+ # A response for issuing a command.
1493
+ class DirectoryChromeosdevicesIssueCommandResponse
1494
+ include Google::Apis::Core::Hashable
1495
+
1496
+ # The unique ID of the issued command, used to retrieve the command status.
1497
+ # Corresponds to the JSON property `commandId`
1498
+ # @return [Fixnum]
1499
+ attr_accessor :command_id
1500
+
1501
+ def initialize(**args)
1502
+ update!(**args)
1503
+ end
1504
+
1505
+ # Update properties of this object
1506
+ def update!(**args)
1507
+ @command_id = args[:command_id] if args.key?(:command_id)
1508
+ end
1509
+ end
1510
+
1511
+ #
1512
+ class DomainAlias
1513
+ include Google::Apis::Core::Hashable
1514
+
1515
+ # The creation time of the domain alias. (Read-only).
1516
+ # Corresponds to the JSON property `creationTime`
1517
+ # @return [Fixnum]
1518
+ attr_accessor :creation_time
1519
+
1520
+ # The domain alias name.
1521
+ # Corresponds to the JSON property `domainAliasName`
1522
+ # @return [String]
1523
+ attr_accessor :domain_alias_name
1524
+
1525
+ # ETag of the resource.
1526
+ # Corresponds to the JSON property `etag`
1527
+ # @return [String]
1528
+ attr_accessor :etag
1529
+
1530
+ # Kind of resource this is.
1531
+ # Corresponds to the JSON property `kind`
1532
+ # @return [String]
1533
+ attr_accessor :kind
1534
+
1535
+ # The parent domain name that the domain alias is associated with. This can
1536
+ # either be a primary or secondary domain name within a customer.
1537
+ # Corresponds to the JSON property `parentDomainName`
1538
+ # @return [String]
1539
+ attr_accessor :parent_domain_name
1540
+
1541
+ # Indicates the verification state of a domain alias. (Read-only)
1542
+ # Corresponds to the JSON property `verified`
1543
+ # @return [Boolean]
1544
+ attr_accessor :verified
1545
+ alias_method :verified?, :verified
1546
+
1547
+ def initialize(**args)
1548
+ update!(**args)
1549
+ end
1550
+
1551
+ # Update properties of this object
1552
+ def update!(**args)
1553
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
1554
+ @domain_alias_name = args[:domain_alias_name] if args.key?(:domain_alias_name)
1555
+ @etag = args[:etag] if args.key?(:etag)
1556
+ @kind = args[:kind] if args.key?(:kind)
1557
+ @parent_domain_name = args[:parent_domain_name] if args.key?(:parent_domain_name)
1558
+ @verified = args[:verified] if args.key?(:verified)
1559
+ end
1560
+ end
1561
+
1562
+ #
1563
+ class DomainAliases
1564
+ include Google::Apis::Core::Hashable
1565
+
1566
+ # List of domain alias objects.
1567
+ # Corresponds to the JSON property `domainAliases`
1568
+ # @return [Array<Google::Apis::AdminDirectoryV1::DomainAlias>]
1569
+ attr_accessor :domain_aliases
1570
+
1571
+ # ETag of the resource.
1572
+ # Corresponds to the JSON property `etag`
1573
+ # @return [String]
1574
+ attr_accessor :etag
1575
+
1576
+ # Kind of resource this is.
1577
+ # Corresponds to the JSON property `kind`
1578
+ # @return [String]
1579
+ attr_accessor :kind
1580
+
1581
+ def initialize(**args)
1582
+ update!(**args)
1583
+ end
1584
+
1585
+ # Update properties of this object
1586
+ def update!(**args)
1587
+ @domain_aliases = args[:domain_aliases] if args.key?(:domain_aliases)
1588
+ @etag = args[:etag] if args.key?(:etag)
1589
+ @kind = args[:kind] if args.key?(:kind)
1590
+ end
1591
+ end
1592
+
1593
+ #
1594
+ class Domains
1595
+ include Google::Apis::Core::Hashable
1596
+
1597
+ # Creation time of the domain. Expressed in [Unix time](http://en.wikipedia.org/
1598
+ # wiki/Epoch_time) format. (Read-only).
1599
+ # Corresponds to the JSON property `creationTime`
1600
+ # @return [Fixnum]
1601
+ attr_accessor :creation_time
1602
+
1603
+ # List of domain alias objects. (Read-only)
1604
+ # Corresponds to the JSON property `domainAliases`
1605
+ # @return [Array<Google::Apis::AdminDirectoryV1::DomainAlias>]
1606
+ attr_accessor :domain_aliases
1607
+
1608
+ # The domain name of the customer.
1609
+ # Corresponds to the JSON property `domainName`
1610
+ # @return [String]
1611
+ attr_accessor :domain_name
1612
+
1613
+ # ETag of the resource.
1614
+ # Corresponds to the JSON property `etag`
1615
+ # @return [String]
1616
+ attr_accessor :etag
1617
+
1618
+ # Indicates if the domain is a primary domain (Read-only).
1619
+ # Corresponds to the JSON property `isPrimary`
1620
+ # @return [Boolean]
1621
+ attr_accessor :is_primary
1622
+ alias_method :is_primary?, :is_primary
1623
+
1624
+ # Kind of resource this is.
1625
+ # Corresponds to the JSON property `kind`
1626
+ # @return [String]
1627
+ attr_accessor :kind
1628
+
1629
+ # Indicates the verification state of a domain. (Read-only).
1630
+ # Corresponds to the JSON property `verified`
1631
+ # @return [Boolean]
1632
+ attr_accessor :verified
1633
+ alias_method :verified?, :verified
1634
+
1635
+ def initialize(**args)
1636
+ update!(**args)
1637
+ end
1638
+
1639
+ # Update properties of this object
1640
+ def update!(**args)
1641
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
1642
+ @domain_aliases = args[:domain_aliases] if args.key?(:domain_aliases)
1643
+ @domain_name = args[:domain_name] if args.key?(:domain_name)
1644
+ @etag = args[:etag] if args.key?(:etag)
1645
+ @is_primary = args[:is_primary] if args.key?(:is_primary)
1646
+ @kind = args[:kind] if args.key?(:kind)
1647
+ @verified = args[:verified] if args.key?(:verified)
1648
+ end
1649
+ end
1650
+
1651
+ #
1652
+ class Domains2
1653
+ include Google::Apis::Core::Hashable
1654
+
1655
+ # List of domain objects.
1656
+ # Corresponds to the JSON property `domains`
1657
+ # @return [Array<Google::Apis::AdminDirectoryV1::Domains>]
1658
+ attr_accessor :domains
1659
+
1660
+ # ETag of the resource.
1661
+ # Corresponds to the JSON property `etag`
1662
+ # @return [String]
1663
+ attr_accessor :etag
1664
+
1665
+ # Kind of resource this is.
1666
+ # Corresponds to the JSON property `kind`
1667
+ # @return [String]
1668
+ attr_accessor :kind
1669
+
1670
+ def initialize(**args)
1671
+ update!(**args)
1672
+ end
1673
+
1674
+ # Update properties of this object
1675
+ def update!(**args)
1676
+ @domains = args[:domains] if args.key?(:domains)
1677
+ @etag = args[:etag] if args.key?(:etag)
1678
+ @kind = args[:kind] if args.key?(:kind)
1679
+ end
1680
+ end
1681
+
1682
+ # JSON template for Feature object in Directory API.
1683
+ class Feature
1684
+ include Google::Apis::Core::Hashable
1685
+
1686
+ # ETag of the resource.
1687
+ # Corresponds to the JSON property `etags`
1688
+ # @return [String]
1689
+ attr_accessor :etags
1690
+
1691
+ # Kind of resource this is.
1692
+ # Corresponds to the JSON property `kind`
1693
+ # @return [String]
1694
+ attr_accessor :kind
1695
+
1696
+ # The name of the feature.
1697
+ # Corresponds to the JSON property `name`
1698
+ # @return [String]
1699
+ attr_accessor :name
1700
+
1701
+ def initialize(**args)
1702
+ update!(**args)
1703
+ end
1704
+
1705
+ # Update properties of this object
1706
+ def update!(**args)
1707
+ @etags = args[:etags] if args.key?(:etags)
1708
+ @kind = args[:kind] if args.key?(:kind)
1709
+ @name = args[:name] if args.key?(:name)
1710
+ end
1711
+ end
1712
+
1713
+ # JSON template for a feature instance.
1714
+ class FeatureInstance
1715
+ include Google::Apis::Core::Hashable
1716
+
1717
+ # JSON template for Feature object in Directory API.
1718
+ # Corresponds to the JSON property `feature`
1719
+ # @return [Google::Apis::AdminDirectoryV1::Feature]
1720
+ attr_accessor :feature
1721
+
1722
+ def initialize(**args)
1723
+ update!(**args)
1724
+ end
1725
+
1726
+ # Update properties of this object
1727
+ def update!(**args)
1728
+ @feature = args[:feature] if args.key?(:feature)
1729
+ end
1730
+ end
1731
+
1732
+ #
1733
+ class FeatureRename
1734
+ include Google::Apis::Core::Hashable
1735
+
1736
+ # New name of the feature.
1737
+ # Corresponds to the JSON property `newName`
1738
+ # @return [String]
1739
+ attr_accessor :new_name
1740
+
1741
+ def initialize(**args)
1742
+ update!(**args)
1743
+ end
1744
+
1745
+ # Update properties of this object
1746
+ def update!(**args)
1747
+ @new_name = args[:new_name] if args.key?(:new_name)
1748
+ end
1749
+ end
1750
+
1751
+ # Public API: Resources.features
1752
+ class Features
1753
+ include Google::Apis::Core::Hashable
1754
+
1755
+ # ETag of the resource.
1756
+ # Corresponds to the JSON property `etag`
1757
+ # @return [String]
1758
+ attr_accessor :etag
1759
+
1760
+ # The Features in this page of results.
1761
+ # Corresponds to the JSON property `features`
1762
+ # @return [Array<Google::Apis::AdminDirectoryV1::Feature>]
1763
+ attr_accessor :features
1764
+
1765
+ # Kind of resource this is.
1766
+ # Corresponds to the JSON property `kind`
1767
+ # @return [String]
1768
+ attr_accessor :kind
1769
+
1770
+ # The continuation token, used to page through large result sets. Provide this
1771
+ # value in a subsequent request to return the next page of results.
1772
+ # Corresponds to the JSON property `nextPageToken`
1773
+ # @return [String]
1774
+ attr_accessor :next_page_token
1775
+
1776
+ def initialize(**args)
1777
+ update!(**args)
1778
+ end
1779
+
1780
+ # Update properties of this object
1781
+ def update!(**args)
1782
+ @etag = args[:etag] if args.key?(:etag)
1783
+ @features = args[:features] if args.key?(:features)
1784
+ @kind = args[:kind] if args.key?(:kind)
1785
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1786
+ end
1787
+ end
1788
+
1789
+ # Google Groups provide your users the ability to send messages to groups of
1790
+ # people using the group's email address. For more information about common
1791
+ # tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/manage-
1792
+ # groups).
1793
+ class Group
1794
+ include Google::Apis::Core::Hashable
1795
+
1796
+ # Value is `true` if this group was created by an administrator rather than a
1797
+ # user.
1798
+ # Corresponds to the JSON property `adminCreated`
1799
+ # @return [Boolean]
1800
+ attr_accessor :admin_created
1801
+ alias_method :admin_created?, :admin_created
1802
+
1803
+ # List of a group's alias email addresses.
1804
+ # Corresponds to the JSON property `aliases`
1805
+ # @return [Array<String>]
1806
+ attr_accessor :aliases
1807
+
1808
+ # An extended description to help users determine the purpose of a group. For
1809
+ # example, you can include information about who should join the group, the
1810
+ # types of messages to send to the group, links to FAQs about the group, or
1811
+ # related groups. Maximum length is `4,096` characters.
1812
+ # Corresponds to the JSON property `description`
1813
+ # @return [String]
1814
+ attr_accessor :description
1815
+
1816
+ # The number of users that are direct members of the group. If a group is a
1817
+ # member (child) of this group (the parent), members of the child group are not
1818
+ # counted in the `directMembersCount` property of the parent group.
1819
+ # Corresponds to the JSON property `directMembersCount`
1820
+ # @return [Fixnum]
1821
+ attr_accessor :direct_members_count
1822
+
1823
+ # The group's email address. If your account has multiple domains, select the
1824
+ # appropriate domain for the email address. The `email` must be unique. This
1825
+ # property is required when creating a group. Group email addresses are subject
1826
+ # to the same character usage rules as usernames, see the [administration help
1827
+ # center](http://support.google.com/a/bin/answer.py?answer=33386) for the
1828
+ # details.
1829
+ # Corresponds to the JSON property `email`
1830
+ # @return [String]
1831
+ attr_accessor :email
1832
+
1833
+ # ETag of the resource.
1834
+ # Corresponds to the JSON property `etag`
1835
+ # @return [String]
1836
+ attr_accessor :etag
1837
+
1838
+ # The unique ID of a group. A group `id` can be used as a group request URI's `
1839
+ # groupKey`.
1840
+ # Corresponds to the JSON property `id`
1841
+ # @return [String]
1842
+ attr_accessor :id
1843
+
1844
+ # The type of the API resource. For Groups resources, the value is `admin#
1845
+ # directory#group`.
1846
+ # Corresponds to the JSON property `kind`
1847
+ # @return [String]
1848
+ attr_accessor :kind
1849
+
1850
+ # The group's display name.
1851
+ # Corresponds to the JSON property `name`
1852
+ # @return [String]
1853
+ attr_accessor :name
1854
+
1855
+ # List of the group's non-editable alias email addresses that are outside of the
1856
+ # account's primary domain or subdomains. These are functioning email addresses
1857
+ # used by the group. This is a read-only property returned in the API's response
1858
+ # for a group. If edited in a group's POST or PUT request, the edit is ignored
1859
+ # by the API service.
1860
+ # Corresponds to the JSON property `nonEditableAliases`
1861
+ # @return [Array<String>]
1862
+ attr_accessor :non_editable_aliases
1863
+
1864
+ def initialize(**args)
1865
+ update!(**args)
1866
+ end
1867
+
1868
+ # Update properties of this object
1869
+ def update!(**args)
1870
+ @admin_created = args[:admin_created] if args.key?(:admin_created)
1871
+ @aliases = args[:aliases] if args.key?(:aliases)
1872
+ @description = args[:description] if args.key?(:description)
1873
+ @direct_members_count = args[:direct_members_count] if args.key?(:direct_members_count)
1874
+ @email = args[:email] if args.key?(:email)
1875
+ @etag = args[:etag] if args.key?(:etag)
1876
+ @id = args[:id] if args.key?(:id)
1877
+ @kind = args[:kind] if args.key?(:kind)
1878
+ @name = args[:name] if args.key?(:name)
1879
+ @non_editable_aliases = args[:non_editable_aliases] if args.key?(:non_editable_aliases)
1880
+ end
1881
+ end
1882
+
1883
+ #
1884
+ class Groups
1885
+ include Google::Apis::Core::Hashable
1886
+
1887
+ # ETag of the resource.
1888
+ # Corresponds to the JSON property `etag`
1889
+ # @return [String]
1890
+ attr_accessor :etag
1891
+
1892
+ # List of group objects.
1893
+ # Corresponds to the JSON property `groups`
1894
+ # @return [Array<Google::Apis::AdminDirectoryV1::Group>]
1895
+ attr_accessor :groups
1896
+
1897
+ # Kind of resource this is.
1898
+ # Corresponds to the JSON property `kind`
1899
+ # @return [String]
1900
+ attr_accessor :kind
1901
+
1902
+ # Token used to access next page of this result.
1903
+ # Corresponds to the JSON property `nextPageToken`
1904
+ # @return [String]
1905
+ attr_accessor :next_page_token
1906
+
1907
+ def initialize(**args)
1908
+ update!(**args)
1909
+ end
1910
+
1911
+ # Update properties of this object
1912
+ def update!(**args)
1913
+ @etag = args[:etag] if args.key?(:etag)
1914
+ @groups = args[:groups] if args.key?(:groups)
1915
+ @kind = args[:kind] if args.key?(:kind)
1916
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1917
+ end
1918
+ end
1919
+
1920
+ # A Google Groups member can be a user or another group. This member can be
1921
+ # inside or outside of your account's domains. For more information about common
1922
+ # group member tasks, see the [Developer's Guide](/admin-sdk/directory/v1/guides/
1923
+ # manage-group-members).
1924
+ class Member
1925
+ include Google::Apis::Core::Hashable
1926
+
1927
+ # Defines mail delivery preferences of member. This is only supported by create/
1928
+ # update/get.
1929
+ # Corresponds to the JSON property `delivery_settings`
1930
+ # @return [String]
1931
+ attr_accessor :delivery_settings
1932
+
1933
+ # The member's email address. A member can be a user or another group. This
1934
+ # property is required when adding a member to a group. The `email` must be
1935
+ # unique and cannot be an alias of another group. If the email address is
1936
+ # changed, the API automatically reflects the email address changes.
1937
+ # Corresponds to the JSON property `email`
1938
+ # @return [String]
1939
+ attr_accessor :email
1940
+
1941
+ # ETag of the resource.
1942
+ # Corresponds to the JSON property `etag`
1943
+ # @return [String]
1944
+ attr_accessor :etag
1945
+
1946
+ # The unique ID of the group member. A member `id` can be used as a member
1947
+ # request URI's `memberKey`.
1948
+ # Corresponds to the JSON property `id`
1949
+ # @return [String]
1950
+ attr_accessor :id
1951
+
1952
+ # The type of the API resource. For Members resources, the value is `admin#
1953
+ # directory#member`.
1954
+ # Corresponds to the JSON property `kind`
1955
+ # @return [String]
1956
+ attr_accessor :kind
1957
+
1958
+ # The member's role in a group. The API returns an error for cycles in group
1959
+ # memberships. For example, if `group1` is a member of `group2`, `group2` cannot
1960
+ # be a member of `group1`. For more information about a member's role, see the [
1961
+ # administration help center](http://support.google.com/a/bin/answer.py?answer=
1962
+ # 167094).
1963
+ # Corresponds to the JSON property `role`
1964
+ # @return [String]
1965
+ attr_accessor :role
1966
+
1967
+ # Status of member (Immutable)
1968
+ # Corresponds to the JSON property `status`
1969
+ # @return [String]
1970
+ attr_accessor :status
1971
+
1972
+ # The type of group member.
1973
+ # Corresponds to the JSON property `type`
1974
+ # @return [String]
1975
+ attr_accessor :type
1976
+
1977
+ def initialize(**args)
1978
+ update!(**args)
1979
+ end
1980
+
1981
+ # Update properties of this object
1982
+ def update!(**args)
1983
+ @delivery_settings = args[:delivery_settings] if args.key?(:delivery_settings)
1984
+ @email = args[:email] if args.key?(:email)
1985
+ @etag = args[:etag] if args.key?(:etag)
1986
+ @id = args[:id] if args.key?(:id)
1987
+ @kind = args[:kind] if args.key?(:kind)
1988
+ @role = args[:role] if args.key?(:role)
1989
+ @status = args[:status] if args.key?(:status)
1990
+ @type = args[:type] if args.key?(:type)
1991
+ end
1992
+ end
1993
+
1994
+ #
1995
+ class Members
1996
+ include Google::Apis::Core::Hashable
1997
+
1998
+ # ETag of the resource.
1999
+ # Corresponds to the JSON property `etag`
2000
+ # @return [String]
2001
+ attr_accessor :etag
2002
+
2003
+ # Kind of resource this is.
2004
+ # Corresponds to the JSON property `kind`
2005
+ # @return [String]
2006
+ attr_accessor :kind
2007
+
2008
+ # List of member objects.
2009
+ # Corresponds to the JSON property `members`
2010
+ # @return [Array<Google::Apis::AdminDirectoryV1::Member>]
2011
+ attr_accessor :members
2012
+
2013
+ # Token used to access next page of this result.
2014
+ # Corresponds to the JSON property `nextPageToken`
2015
+ # @return [String]
2016
+ attr_accessor :next_page_token
2017
+
2018
+ def initialize(**args)
2019
+ update!(**args)
2020
+ end
2021
+
2022
+ # Update properties of this object
2023
+ def update!(**args)
2024
+ @etag = args[:etag] if args.key?(:etag)
2025
+ @kind = args[:kind] if args.key?(:kind)
2026
+ @members = args[:members] if args.key?(:members)
2027
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2028
+ end
2029
+ end
2030
+
2031
+ # JSON template for Has Member response in Directory API.
2032
+ class MembersHasMember
2033
+ include Google::Apis::Core::Hashable
2034
+
2035
+ # Output only. Identifies whether the given user is a member of the group.
2036
+ # Membership can be direct or nested.
2037
+ # Corresponds to the JSON property `isMember`
2038
+ # @return [Boolean]
2039
+ attr_accessor :is_member
2040
+ alias_method :is_member?, :is_member
2041
+
2042
+ def initialize(**args)
2043
+ update!(**args)
2044
+ end
2045
+
2046
+ # Update properties of this object
2047
+ def update!(**args)
2048
+ @is_member = args[:is_member] if args.key?(:is_member)
2049
+ end
2050
+ end
2051
+
2052
+ # Google Workspace Mobile Management includes Android, [Google Sync](http://
2053
+ # support.google.com/a/bin/answer.py?answer=135937), and iOS devices. For more
2054
+ # information about common group mobile device API tasks, see the [Developer's
2055
+ # Guide](/admin-sdk/directory/v1/guides/manage-mobile-devices.html).
2056
+ class MobileDevice
2057
+ include Google::Apis::Core::Hashable
2058
+
2059
+ # Adb (USB debugging) enabled or disabled on device (Read-only)
2060
+ # Corresponds to the JSON property `adbStatus`
2061
+ # @return [Boolean]
2062
+ attr_accessor :adb_status
2063
+ alias_method :adb_status?, :adb_status
2064
+
2065
+ # The list of applications installed on an Android mobile device. It is not
2066
+ # applicable to Google Sync and iOS devices. The list includes any Android
2067
+ # applications that access Google Workspace data. When updating an applications
2068
+ # list, it is important to note that updates replace the existing list. If the
2069
+ # Android device has two existing applications and the API updates the list with
2070
+ # five applications, the is now the updated list of five applications.
2071
+ # Corresponds to the JSON property `applications`
2072
+ # @return [Array<Google::Apis::AdminDirectoryV1::MobileDevice::Application>]
2073
+ attr_accessor :applications
2074
+
2075
+ # The device's baseband version.
2076
+ # Corresponds to the JSON property `basebandVersion`
2077
+ # @return [String]
2078
+ attr_accessor :baseband_version
2079
+
2080
+ # Mobile Device Bootloader version (Read-only)
2081
+ # Corresponds to the JSON property `bootloaderVersion`
2082
+ # @return [String]
2083
+ attr_accessor :bootloader_version
2084
+
2085
+ # Mobile Device Brand (Read-only)
2086
+ # Corresponds to the JSON property `brand`
2087
+ # @return [String]
2088
+ attr_accessor :brand
2089
+
2090
+ # The device's operating system build number.
2091
+ # Corresponds to the JSON property `buildNumber`
2092
+ # @return [String]
2093
+ attr_accessor :build_number
2094
+
2095
+ # The default locale used on the device.
2096
+ # Corresponds to the JSON property `defaultLanguage`
2097
+ # @return [String]
2098
+ attr_accessor :default_language
2099
+
2100
+ # Developer options enabled or disabled on device (Read-only)
2101
+ # Corresponds to the JSON property `developerOptionsStatus`
2102
+ # @return [Boolean]
2103
+ attr_accessor :developer_options_status
2104
+ alias_method :developer_options_status?, :developer_options_status
2105
+
2106
+ # The compromised device status.
2107
+ # Corresponds to the JSON property `deviceCompromisedStatus`
2108
+ # @return [String]
2109
+ attr_accessor :device_compromised_status
2110
+
2111
+ # The serial number for a Google Sync mobile device. For Android and iOS devices,
2112
+ # this is a software generated unique identifier.
2113
+ # Corresponds to the JSON property `deviceId`
2114
+ # @return [String]
2115
+ attr_accessor :device_id
2116
+
2117
+ # DevicePasswordStatus (Read-only)
2118
+ # Corresponds to the JSON property `devicePasswordStatus`
2119
+ # @return [String]
2120
+ attr_accessor :device_password_status
2121
+
2122
+ # List of owner's email addresses. If your application needs the current list of
2123
+ # user emails, use the [get](/admin-sdk/directory/v1/reference/mobiledevices/get.
2124
+ # html) method. For additional information, see the [retrieve a user](/admin-sdk/
2125
+ # directory/v1/guides/manage-users#get_user) method.
2126
+ # Corresponds to the JSON property `email`
2127
+ # @return [Array<String>]
2128
+ attr_accessor :email
2129
+
2130
+ # Mobile Device Encryption Status (Read-only)
2131
+ # Corresponds to the JSON property `encryptionStatus`
2132
+ # @return [String]
2133
+ attr_accessor :encryption_status
2134
+
2135
+ # ETag of the resource.
2136
+ # Corresponds to the JSON property `etag`
2137
+ # @return [String]
2138
+ attr_accessor :etag
2139
+
2140
+ # Date and time the device was first synchronized with the policy settings in
2141
+ # the G Suite administrator control panel (Read-only)
2142
+ # Corresponds to the JSON property `firstSync`
2143
+ # @return [DateTime]
2144
+ attr_accessor :first_sync
2145
+
2146
+ # Mobile Device Hardware (Read-only)
2147
+ # Corresponds to the JSON property `hardware`
2148
+ # @return [String]
2149
+ attr_accessor :hardware
2150
+
2151
+ # The IMEI/MEID unique identifier for Android hardware. It is not applicable to
2152
+ # Google Sync devices. When adding an Android mobile device, this is an optional
2153
+ # property. When updating one of these devices, this is a read-only property.
2154
+ # Corresponds to the JSON property `hardwareId`
2155
+ # @return [String]
2156
+ attr_accessor :hardware_id
2157
+
2158
+ # The device's IMEI number.
2159
+ # Corresponds to the JSON property `imei`
2160
+ # @return [String]
2161
+ attr_accessor :imei
2162
+
2163
+ # The device's kernel version.
2164
+ # Corresponds to the JSON property `kernelVersion`
2165
+ # @return [String]
2166
+ attr_accessor :kernel_version
2167
+
2168
+ # The type of the API resource. For Mobiledevices resources, the value is `admin#
2169
+ # directory#mobiledevice`.
2170
+ # Corresponds to the JSON property `kind`
2171
+ # @return [String]
2172
+ attr_accessor :kind
2173
+
2174
+ # Date and time the device was last synchronized with the policy settings in the
2175
+ # G Suite administrator control panel (Read-only)
2176
+ # Corresponds to the JSON property `lastSync`
2177
+ # @return [DateTime]
2178
+ attr_accessor :last_sync
2179
+
2180
+ # Boolean indicating if this account is on owner/primary profile or not.
2181
+ # Corresponds to the JSON property `managedAccountIsOnOwnerProfile`
2182
+ # @return [Boolean]
2183
+ attr_accessor :managed_account_is_on_owner_profile
2184
+ alias_method :managed_account_is_on_owner_profile?, :managed_account_is_on_owner_profile
2185
+
2186
+ # Mobile Device manufacturer (Read-only)
2187
+ # Corresponds to the JSON property `manufacturer`
2188
+ # @return [String]
2189
+ attr_accessor :manufacturer
2190
+
2191
+ # The device's MEID number.
2192
+ # Corresponds to the JSON property `meid`
2193
+ # @return [String]
2194
+ attr_accessor :meid
2195
+
2196
+ # The mobile device's model name, for example Nexus S. This property can be [
2197
+ # updated](/admin-sdk/directory/v1/reference/mobiledevices/update.html). For
2198
+ # more information, see the [Developer's Guide](/admin-sdk/directory/v1/guides/
2199
+ # manage-mobile=devices#update_mobile_device).
2200
+ # Corresponds to the JSON property `model`
2201
+ # @return [String]
2202
+ attr_accessor :model
2203
+
2204
+ # List of the owner's user names. If your application needs the current list of
2205
+ # device owner names, use the [get](/admin-sdk/directory/v1/reference/
2206
+ # mobiledevices/get.html) method. For more information about retrieving mobile
2207
+ # device user information, see the [Developer's Guide](/admin-sdk/directory/v1/
2208
+ # guides/manage-users#get_user).
2209
+ # Corresponds to the JSON property `name`
2210
+ # @return [Array<String>]
2211
+ attr_accessor :name
2212
+
2213
+ # Mobile Device mobile or network operator (if available) (Read-only)
2214
+ # Corresponds to the JSON property `networkOperator`
2215
+ # @return [String]
2216
+ attr_accessor :network_operator
2217
+
2218
+ # The mobile device's operating system, for example IOS 4.3 or Android 2.3.5.
2219
+ # This property can be [updated](/admin-sdk/directory/v1/reference/mobiledevices/
2220
+ # update.html). For more information, see the [Developer's Guide](/admin-sdk/
2221
+ # directory/v1/guides/manage-mobile-devices#update_mobile_device).
2222
+ # Corresponds to the JSON property `os`
2223
+ # @return [String]
2224
+ attr_accessor :os
2225
+
2226
+ # List of accounts added on device (Read-only)
2227
+ # Corresponds to the JSON property `otherAccountsInfo`
2228
+ # @return [Array<String>]
2229
+ attr_accessor :other_accounts_info
2230
+
2231
+ # DMAgentPermission (Read-only)
2232
+ # Corresponds to the JSON property `privilege`
2233
+ # @return [String]
2234
+ attr_accessor :privilege
2235
+
2236
+ # Mobile Device release version version (Read-only)
2237
+ # Corresponds to the JSON property `releaseVersion`
2238
+ # @return [String]
2239
+ attr_accessor :release_version
2240
+
2241
+ # The unique ID the API service uses to identify the mobile device.
2242
+ # Corresponds to the JSON property `resourceId`
2243
+ # @return [String]
2244
+ attr_accessor :resource_id
2245
+
2246
+ # Mobile Device Security patch level (Read-only)
2247
+ # Corresponds to the JSON property `securityPatchLevel`
2248
+ # @return [Fixnum]
2249
+ attr_accessor :security_patch_level
2250
+
2251
+ # The device's serial number.
2252
+ # Corresponds to the JSON property `serialNumber`
2253
+ # @return [String]
2254
+ attr_accessor :serial_number
2255
+
2256
+ # The device's status.
2257
+ # Corresponds to the JSON property `status`
2258
+ # @return [String]
2259
+ attr_accessor :status
2260
+
2261
+ # Work profile supported on device (Read-only)
2262
+ # Corresponds to the JSON property `supportsWorkProfile`
2263
+ # @return [Boolean]
2264
+ attr_accessor :supports_work_profile
2265
+ alias_method :supports_work_profile?, :supports_work_profile
2266
+
2267
+ # The type of mobile device.
2268
+ # Corresponds to the JSON property `type`
2269
+ # @return [String]
2270
+ attr_accessor :type
2271
+
2272
+ # Unknown sources enabled or disabled on device (Read-only)
2273
+ # Corresponds to the JSON property `unknownSourcesStatus`
2274
+ # @return [Boolean]
2275
+ attr_accessor :unknown_sources_status
2276
+ alias_method :unknown_sources_status?, :unknown_sources_status
2277
+
2278
+ # Gives information about the device such as `os` version. This property can be [
2279
+ # updated](/admin-sdk/directory/v1/reference/mobiledevices/update.html). For
2280
+ # more information, see the [Developer's Guide](/admin-sdk/directory/v1/guides/
2281
+ # manage-mobile-devices#update_mobile_device).
2282
+ # Corresponds to the JSON property `userAgent`
2283
+ # @return [String]
2284
+ attr_accessor :user_agent
2285
+
2286
+ # The device's MAC address on Wi-Fi networks.
2287
+ # Corresponds to the JSON property `wifiMacAddress`
2288
+ # @return [String]
2289
+ attr_accessor :wifi_mac_address
2290
+
2291
+ def initialize(**args)
2292
+ update!(**args)
2293
+ end
2294
+
2295
+ # Update properties of this object
2296
+ def update!(**args)
2297
+ @adb_status = args[:adb_status] if args.key?(:adb_status)
2298
+ @applications = args[:applications] if args.key?(:applications)
2299
+ @baseband_version = args[:baseband_version] if args.key?(:baseband_version)
2300
+ @bootloader_version = args[:bootloader_version] if args.key?(:bootloader_version)
2301
+ @brand = args[:brand] if args.key?(:brand)
2302
+ @build_number = args[:build_number] if args.key?(:build_number)
2303
+ @default_language = args[:default_language] if args.key?(:default_language)
2304
+ @developer_options_status = args[:developer_options_status] if args.key?(:developer_options_status)
2305
+ @device_compromised_status = args[:device_compromised_status] if args.key?(:device_compromised_status)
2306
+ @device_id = args[:device_id] if args.key?(:device_id)
2307
+ @device_password_status = args[:device_password_status] if args.key?(:device_password_status)
2308
+ @email = args[:email] if args.key?(:email)
2309
+ @encryption_status = args[:encryption_status] if args.key?(:encryption_status)
2310
+ @etag = args[:etag] if args.key?(:etag)
2311
+ @first_sync = args[:first_sync] if args.key?(:first_sync)
2312
+ @hardware = args[:hardware] if args.key?(:hardware)
2313
+ @hardware_id = args[:hardware_id] if args.key?(:hardware_id)
2314
+ @imei = args[:imei] if args.key?(:imei)
2315
+ @kernel_version = args[:kernel_version] if args.key?(:kernel_version)
2316
+ @kind = args[:kind] if args.key?(:kind)
2317
+ @last_sync = args[:last_sync] if args.key?(:last_sync)
2318
+ @managed_account_is_on_owner_profile = args[:managed_account_is_on_owner_profile] if args.key?(:managed_account_is_on_owner_profile)
2319
+ @manufacturer = args[:manufacturer] if args.key?(:manufacturer)
2320
+ @meid = args[:meid] if args.key?(:meid)
2321
+ @model = args[:model] if args.key?(:model)
2322
+ @name = args[:name] if args.key?(:name)
2323
+ @network_operator = args[:network_operator] if args.key?(:network_operator)
2324
+ @os = args[:os] if args.key?(:os)
2325
+ @other_accounts_info = args[:other_accounts_info] if args.key?(:other_accounts_info)
2326
+ @privilege = args[:privilege] if args.key?(:privilege)
2327
+ @release_version = args[:release_version] if args.key?(:release_version)
2328
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
2329
+ @security_patch_level = args[:security_patch_level] if args.key?(:security_patch_level)
2330
+ @serial_number = args[:serial_number] if args.key?(:serial_number)
2331
+ @status = args[:status] if args.key?(:status)
2332
+ @supports_work_profile = args[:supports_work_profile] if args.key?(:supports_work_profile)
2333
+ @type = args[:type] if args.key?(:type)
2334
+ @unknown_sources_status = args[:unknown_sources_status] if args.key?(:unknown_sources_status)
2335
+ @user_agent = args[:user_agent] if args.key?(:user_agent)
2336
+ @wifi_mac_address = args[:wifi_mac_address] if args.key?(:wifi_mac_address)
2337
+ end
2338
+
2339
+ #
2340
+ class Application
2341
+ include Google::Apis::Core::Hashable
2342
+
2343
+ # The application's display name. An example is `Browser`.
2344
+ # Corresponds to the JSON property `displayName`
2345
+ # @return [String]
2346
+ attr_accessor :display_name
2347
+
2348
+ # The application's package name. An example is `com.android.browser`.
2349
+ # Corresponds to the JSON property `packageName`
2350
+ # @return [String]
2351
+ attr_accessor :package_name
2352
+
2353
+ # The list of permissions of this application. These can be either a standard
2354
+ # Android permission or one defined by the application, and are found in an
2355
+ # application's [Android manifest](http://developer.android.com/guide/topics/
2356
+ # manifest/uses-permission-element.html). Examples of a Calendar application's
2357
+ # permissions are `READ_CALENDAR`, or `MANAGE_ACCOUNTS`.
2358
+ # Corresponds to the JSON property `permission`
2359
+ # @return [Array<String>]
2360
+ attr_accessor :permission
2361
+
2362
+ # The application's version code. An example is `13`.
2363
+ # Corresponds to the JSON property `versionCode`
2364
+ # @return [Fixnum]
2365
+ attr_accessor :version_code
2366
+
2367
+ # The application's version name. An example is `3.2-140714`.
2368
+ # Corresponds to the JSON property `versionName`
2369
+ # @return [String]
2370
+ attr_accessor :version_name
2371
+
2372
+ def initialize(**args)
2373
+ update!(**args)
2374
+ end
2375
+
2376
+ # Update properties of this object
2377
+ def update!(**args)
2378
+ @display_name = args[:display_name] if args.key?(:display_name)
2379
+ @package_name = args[:package_name] if args.key?(:package_name)
2380
+ @permission = args[:permission] if args.key?(:permission)
2381
+ @version_code = args[:version_code] if args.key?(:version_code)
2382
+ @version_name = args[:version_name] if args.key?(:version_name)
2383
+ end
2384
+ end
2385
+ end
2386
+
2387
+ #
2388
+ class MobileDeviceAction
2389
+ include Google::Apis::Core::Hashable
2390
+
2391
+ # The action to be performed on the device.
2392
+ # Corresponds to the JSON property `action`
2393
+ # @return [String]
2394
+ attr_accessor :action
2395
+
2396
+ def initialize(**args)
2397
+ update!(**args)
2398
+ end
2399
+
2400
+ # Update properties of this object
2401
+ def update!(**args)
2402
+ @action = args[:action] if args.key?(:action)
2403
+ end
2404
+ end
2405
+
2406
+ #
2407
+ class MobileDevices
2408
+ include Google::Apis::Core::Hashable
2409
+
2410
+ # ETag of the resource.
2411
+ # Corresponds to the JSON property `etag`
2412
+ # @return [String]
2413
+ attr_accessor :etag
2414
+
2415
+ # Kind of resource this is.
2416
+ # Corresponds to the JSON property `kind`
2417
+ # @return [String]
2418
+ attr_accessor :kind
2419
+
2420
+ # List of Mobile Device objects.
2421
+ # Corresponds to the JSON property `mobiledevices`
2422
+ # @return [Array<Google::Apis::AdminDirectoryV1::MobileDevice>]
2423
+ attr_accessor :mobiledevices
2424
+
2425
+ # Token used to access next page of this result.
2426
+ # Corresponds to the JSON property `nextPageToken`
2427
+ # @return [String]
2428
+ attr_accessor :next_page_token
2429
+
2430
+ def initialize(**args)
2431
+ update!(**args)
2432
+ end
2433
+
2434
+ # Update properties of this object
2435
+ def update!(**args)
2436
+ @etag = args[:etag] if args.key?(:etag)
2437
+ @kind = args[:kind] if args.key?(:kind)
2438
+ @mobiledevices = args[:mobiledevices] if args.key?(:mobiledevices)
2439
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2440
+ end
2441
+ end
2442
+
2443
+ # Managing your account's organizational units allows you to configure your
2444
+ # users' access to services and custom settings. For more information about
2445
+ # common organizational unit tasks, see the [Developer's Guide](/admin-sdk/
2446
+ # directory/v1/guides/manage-org-units.html).
2447
+ class OrgUnit
2448
+ include Google::Apis::Core::Hashable
2449
+
2450
+ # Determines if a sub-organizational unit can inherit the settings of the parent
2451
+ # organization. The default value is `false`, meaning a sub-organizational unit
2452
+ # inherits the settings of the nearest parent organizational unit. For more
2453
+ # information on inheritance and users in an organization structure, see the [
2454
+ # administration help center](http://support.google.com/a/bin/answer.py?answer=
2455
+ # 182442&topic=1227584&ctx=topic).
2456
+ # Corresponds to the JSON property `blockInheritance`
2457
+ # @return [Boolean]
2458
+ attr_accessor :block_inheritance
2459
+ alias_method :block_inheritance?, :block_inheritance
2460
+
2461
+ # Description of the organizational unit.
2462
+ # Corresponds to the JSON property `description`
2463
+ # @return [String]
2464
+ attr_accessor :description
2465
+
2466
+ # ETag of the resource.
2467
+ # Corresponds to the JSON property `etag`
2468
+ # @return [String]
2469
+ attr_accessor :etag
2470
+
2471
+ # The type of the API resource. For Orgunits resources, the value is `admin#
2472
+ # directory#orgUnit`.
2473
+ # Corresponds to the JSON property `kind`
2474
+ # @return [String]
2475
+ attr_accessor :kind
2476
+
2477
+ # The organizational unit's path name. For example, an organizational unit's
2478
+ # name within the /corp/support/sales_support parent path is sales_support.
2479
+ # Required.
2480
+ # Corresponds to the JSON property `name`
2481
+ # @return [String]
2482
+ attr_accessor :name
2483
+
2484
+ # The unique ID of the organizational unit.
2485
+ # Corresponds to the JSON property `orgUnitId`
2486
+ # @return [String]
2487
+ attr_accessor :org_unit_id
2488
+
2489
+ # The full path to the organizational unit. The `orgUnitPath` is a derived
2490
+ # property. When listed, it is derived from `parentOrgunitPath` and
2491
+ # organizational unit's `name`. For example, for an organizational unit named '
2492
+ # apps' under parent organization '/engineering', the orgUnitPath is '/
2493
+ # engineering/apps'. In order to edit an `orgUnitPath`, either update the name
2494
+ # of the organization or the `parentOrgunitPath`. A user's organizational unit
2495
+ # determines which Google Workspace services the user has access to. If the user
2496
+ # is moved to a new organization, the user's access changes. For more
2497
+ # information about organization structures, see the [administration help center]
2498
+ # (http://support.google.com/a/bin/answer.py?answer=182433&topic=1227584&ctx=
2499
+ # topic). For more information about moving a user to a different organization,
2500
+ # see [Update a user](/admin-sdk/directory/v1/guides/manage-users.html#
2501
+ # update_user).
2502
+ # Corresponds to the JSON property `orgUnitPath`
2503
+ # @return [String]
2504
+ attr_accessor :org_unit_path
2505
+
2506
+ # The unique ID of the parent organizational unit. Required, unless `
2507
+ # parentOrgUnitPath` is set.
2508
+ # Corresponds to the JSON property `parentOrgUnitId`
2509
+ # @return [String]
2510
+ attr_accessor :parent_org_unit_id
2511
+
2512
+ # The organizational unit's parent path. For example, /corp/sales is the parent
2513
+ # path for /corp/sales/sales_support organizational unit. Required, unless `
2514
+ # parentOrgUnitId` is set.
2515
+ # Corresponds to the JSON property `parentOrgUnitPath`
2516
+ # @return [String]
2517
+ attr_accessor :parent_org_unit_path
2518
+
2519
+ def initialize(**args)
2520
+ update!(**args)
2521
+ end
2522
+
2523
+ # Update properties of this object
2524
+ def update!(**args)
2525
+ @block_inheritance = args[:block_inheritance] if args.key?(:block_inheritance)
2526
+ @description = args[:description] if args.key?(:description)
2527
+ @etag = args[:etag] if args.key?(:etag)
2528
+ @kind = args[:kind] if args.key?(:kind)
2529
+ @name = args[:name] if args.key?(:name)
2530
+ @org_unit_id = args[:org_unit_id] if args.key?(:org_unit_id)
2531
+ @org_unit_path = args[:org_unit_path] if args.key?(:org_unit_path)
2532
+ @parent_org_unit_id = args[:parent_org_unit_id] if args.key?(:parent_org_unit_id)
2533
+ @parent_org_unit_path = args[:parent_org_unit_path] if args.key?(:parent_org_unit_path)
2534
+ end
2535
+ end
2536
+
2537
+ #
2538
+ class OrgUnits
2539
+ include Google::Apis::Core::Hashable
2540
+
2541
+ # ETag of the resource.
2542
+ # Corresponds to the JSON property `etag`
2543
+ # @return [String]
2544
+ attr_accessor :etag
2545
+
2546
+ # The type of the API resource. For Org Unit resources, the type is `admin#
2547
+ # directory#orgUnits`.
2548
+ # Corresponds to the JSON property `kind`
2549
+ # @return [String]
2550
+ attr_accessor :kind
2551
+
2552
+ # List of organizational unit objects.
2553
+ # Corresponds to the JSON property `organizationUnits`
2554
+ # @return [Array<Google::Apis::AdminDirectoryV1::OrgUnit>]
2555
+ attr_accessor :organization_units
2556
+
2557
+ def initialize(**args)
2558
+ update!(**args)
2559
+ end
2560
+
2561
+ # Update properties of this object
2562
+ def update!(**args)
2563
+ @etag = args[:etag] if args.key?(:etag)
2564
+ @kind = args[:kind] if args.key?(:kind)
2565
+ @organization_units = args[:organization_units] if args.key?(:organization_units)
2566
+ end
2567
+ end
2568
+
2569
+ #
2570
+ class Privilege
2571
+ include Google::Apis::Core::Hashable
2572
+
2573
+ # A list of child privileges. Privileges for a service form a tree. Each
2574
+ # privilege can have a list of child privileges; this list is empty for a leaf
2575
+ # privilege.
2576
+ # Corresponds to the JSON property `childPrivileges`
2577
+ # @return [Array<Google::Apis::AdminDirectoryV1::Privilege>]
2578
+ attr_accessor :child_privileges
2579
+
2580
+ # ETag of the resource.
2581
+ # Corresponds to the JSON property `etag`
2582
+ # @return [String]
2583
+ attr_accessor :etag
2584
+
2585
+ # If the privilege can be restricted to an organization unit.
2586
+ # Corresponds to the JSON property `isOuScopable`
2587
+ # @return [Boolean]
2588
+ attr_accessor :is_ou_scopable
2589
+ alias_method :is_ou_scopable?, :is_ou_scopable
2590
+
2591
+ # The type of the API resource. This is always `admin#directory#privilege`.
2592
+ # Corresponds to the JSON property `kind`
2593
+ # @return [String]
2594
+ attr_accessor :kind
2595
+
2596
+ # The name of the privilege.
2597
+ # Corresponds to the JSON property `privilegeName`
2598
+ # @return [String]
2599
+ attr_accessor :privilege_name
2600
+
2601
+ # The obfuscated ID of the service this privilege is for. This value is returned
2602
+ # with [`Privileges.list()`](/admin-sdk/directory/v1/reference/privileges/list).
2603
+ # Corresponds to the JSON property `serviceId`
2604
+ # @return [String]
2605
+ attr_accessor :service_id
2606
+
2607
+ # The name of the service this privilege is for.
2608
+ # Corresponds to the JSON property `serviceName`
2609
+ # @return [String]
2610
+ attr_accessor :service_name
2611
+
2612
+ def initialize(**args)
2613
+ update!(**args)
2614
+ end
2615
+
2616
+ # Update properties of this object
2617
+ def update!(**args)
2618
+ @child_privileges = args[:child_privileges] if args.key?(:child_privileges)
2619
+ @etag = args[:etag] if args.key?(:etag)
2620
+ @is_ou_scopable = args[:is_ou_scopable] if args.key?(:is_ou_scopable)
2621
+ @kind = args[:kind] if args.key?(:kind)
2622
+ @privilege_name = args[:privilege_name] if args.key?(:privilege_name)
2623
+ @service_id = args[:service_id] if args.key?(:service_id)
2624
+ @service_name = args[:service_name] if args.key?(:service_name)
2625
+ end
2626
+ end
2627
+
2628
+ #
2629
+ class Privileges
2630
+ include Google::Apis::Core::Hashable
2631
+
2632
+ # ETag of the resource.
2633
+ # Corresponds to the JSON property `etag`
2634
+ # @return [String]
2635
+ attr_accessor :etag
2636
+
2637
+ # A list of Privilege resources.
2638
+ # Corresponds to the JSON property `items`
2639
+ # @return [Array<Google::Apis::AdminDirectoryV1::Privilege>]
2640
+ attr_accessor :items
2641
+
2642
+ # The type of the API resource. This is always `admin#directory#privileges`.
2643
+ # Corresponds to the JSON property `kind`
2644
+ # @return [String]
2645
+ attr_accessor :kind
2646
+
2647
+ def initialize(**args)
2648
+ update!(**args)
2649
+ end
2650
+
2651
+ # Update properties of this object
2652
+ def update!(**args)
2653
+ @etag = args[:etag] if args.key?(:etag)
2654
+ @items = args[:items] if args.key?(:items)
2655
+ @kind = args[:kind] if args.key?(:kind)
2656
+ end
2657
+ end
2658
+
2659
+ # List of recent device users, in descending order, by last login time.
2660
+ class RecentUsers
2661
+ include Google::Apis::Core::Hashable
2662
+
2663
+ # The user's email address. This is only present if the user type is `
2664
+ # USER_TYPE_MANAGED`.
2665
+ # Corresponds to the JSON property `email`
2666
+ # @return [String]
2667
+ attr_accessor :email
2668
+
2669
+ # The type of the user.
2670
+ # Corresponds to the JSON property `type`
2671
+ # @return [String]
2672
+ attr_accessor :type
2673
+
2674
+ def initialize(**args)
2675
+ update!(**args)
2676
+ end
2677
+
2678
+ # Update properties of this object
2679
+ def update!(**args)
2680
+ @email = args[:email] if args.key?(:email)
2681
+ @type = args[:type] if args.key?(:type)
2682
+ end
2683
+ end
2684
+
2685
+ #
2686
+ class Role
2687
+ include Google::Apis::Core::Hashable
2688
+
2689
+ # ETag of the resource.
2690
+ # Corresponds to the JSON property `etag`
2691
+ # @return [String]
2692
+ attr_accessor :etag
2693
+
2694
+ # Returns `true` if the role is a super admin role.
2695
+ # Corresponds to the JSON property `isSuperAdminRole`
2696
+ # @return [Boolean]
2697
+ attr_accessor :is_super_admin_role
2698
+ alias_method :is_super_admin_role?, :is_super_admin_role
2699
+
2700
+ # Returns `true` if this is a pre-defined system role.
2701
+ # Corresponds to the JSON property `isSystemRole`
2702
+ # @return [Boolean]
2703
+ attr_accessor :is_system_role
2704
+ alias_method :is_system_role?, :is_system_role
2705
+
2706
+ # The type of the API resource. This is always `admin#directory#role`.
2707
+ # Corresponds to the JSON property `kind`
2708
+ # @return [String]
2709
+ attr_accessor :kind
2710
+
2711
+ # A short description of the role.
2712
+ # Corresponds to the JSON property `roleDescription`
2713
+ # @return [String]
2714
+ attr_accessor :role_description
2715
+
2716
+ # ID of the role.
2717
+ # Corresponds to the JSON property `roleId`
2718
+ # @return [Fixnum]
2719
+ attr_accessor :role_id
2720
+
2721
+ # Name of the role.
2722
+ # Corresponds to the JSON property `roleName`
2723
+ # @return [String]
2724
+ attr_accessor :role_name
2725
+
2726
+ # The set of privileges that are granted to this role.
2727
+ # Corresponds to the JSON property `rolePrivileges`
2728
+ # @return [Array<Google::Apis::AdminDirectoryV1::Role::RolePrivilege>]
2729
+ attr_accessor :role_privileges
2730
+
2731
+ def initialize(**args)
2732
+ update!(**args)
2733
+ end
2734
+
2735
+ # Update properties of this object
2736
+ def update!(**args)
2737
+ @etag = args[:etag] if args.key?(:etag)
2738
+ @is_super_admin_role = args[:is_super_admin_role] if args.key?(:is_super_admin_role)
2739
+ @is_system_role = args[:is_system_role] if args.key?(:is_system_role)
2740
+ @kind = args[:kind] if args.key?(:kind)
2741
+ @role_description = args[:role_description] if args.key?(:role_description)
2742
+ @role_id = args[:role_id] if args.key?(:role_id)
2743
+ @role_name = args[:role_name] if args.key?(:role_name)
2744
+ @role_privileges = args[:role_privileges] if args.key?(:role_privileges)
2745
+ end
2746
+
2747
+ #
2748
+ class RolePrivilege
2749
+ include Google::Apis::Core::Hashable
2750
+
2751
+ # The name of the privilege.
2752
+ # Corresponds to the JSON property `privilegeName`
2753
+ # @return [String]
2754
+ attr_accessor :privilege_name
2755
+
2756
+ # The obfuscated ID of the service this privilege is for. This value is returned
2757
+ # with [`Privileges.list()`](/admin-sdk/directory/v1/reference/privileges/list).
2758
+ # Corresponds to the JSON property `serviceId`
2759
+ # @return [String]
2760
+ attr_accessor :service_id
2761
+
2762
+ def initialize(**args)
2763
+ update!(**args)
2764
+ end
2765
+
2766
+ # Update properties of this object
2767
+ def update!(**args)
2768
+ @privilege_name = args[:privilege_name] if args.key?(:privilege_name)
2769
+ @service_id = args[:service_id] if args.key?(:service_id)
2770
+ end
2771
+ end
2772
+ end
2773
+
2774
+ #
2775
+ class RoleAssignment
2776
+ include Google::Apis::Core::Hashable
2777
+
2778
+ # The unique ID of the user this role is assigned to.
2779
+ # Corresponds to the JSON property `assignedTo`
2780
+ # @return [String]
2781
+ attr_accessor :assigned_to
2782
+
2783
+ # ETag of the resource.
2784
+ # Corresponds to the JSON property `etag`
2785
+ # @return [String]
2786
+ attr_accessor :etag
2787
+
2788
+ # The type of the API resource. This is always `admin#directory#roleAssignment`.
2789
+ # Corresponds to the JSON property `kind`
2790
+ # @return [String]
2791
+ attr_accessor :kind
2792
+
2793
+ # If the role is restricted to an organization unit, this contains the ID for
2794
+ # the organization unit the exercise of this role is restricted to.
2795
+ # Corresponds to the JSON property `orgUnitId`
2796
+ # @return [String]
2797
+ attr_accessor :org_unit_id
2798
+
2799
+ # ID of this roleAssignment.
2800
+ # Corresponds to the JSON property `roleAssignmentId`
2801
+ # @return [Fixnum]
2802
+ attr_accessor :role_assignment_id
2803
+
2804
+ # The ID of the role that is assigned.
2805
+ # Corresponds to the JSON property `roleId`
2806
+ # @return [Fixnum]
2807
+ attr_accessor :role_id
2808
+
2809
+ # The scope in which this role is assigned.
2810
+ # Corresponds to the JSON property `scopeType`
2811
+ # @return [String]
2812
+ attr_accessor :scope_type
2813
+
2814
+ def initialize(**args)
2815
+ update!(**args)
2816
+ end
2817
+
2818
+ # Update properties of this object
2819
+ def update!(**args)
2820
+ @assigned_to = args[:assigned_to] if args.key?(:assigned_to)
2821
+ @etag = args[:etag] if args.key?(:etag)
2822
+ @kind = args[:kind] if args.key?(:kind)
2823
+ @org_unit_id = args[:org_unit_id] if args.key?(:org_unit_id)
2824
+ @role_assignment_id = args[:role_assignment_id] if args.key?(:role_assignment_id)
2825
+ @role_id = args[:role_id] if args.key?(:role_id)
2826
+ @scope_type = args[:scope_type] if args.key?(:scope_type)
2827
+ end
2828
+ end
2829
+
2830
+ #
2831
+ class RoleAssignments
2832
+ include Google::Apis::Core::Hashable
2833
+
2834
+ # ETag of the resource.
2835
+ # Corresponds to the JSON property `etag`
2836
+ # @return [String]
2837
+ attr_accessor :etag
2838
+
2839
+ # A list of RoleAssignment resources.
2840
+ # Corresponds to the JSON property `items`
2841
+ # @return [Array<Google::Apis::AdminDirectoryV1::RoleAssignment>]
2842
+ attr_accessor :items
2843
+
2844
+ # The type of the API resource. This is always `admin#directory#roleAssignments`.
2845
+ # Corresponds to the JSON property `kind`
2846
+ # @return [String]
2847
+ attr_accessor :kind
2848
+
2849
+ #
2850
+ # Corresponds to the JSON property `nextPageToken`
2851
+ # @return [String]
2852
+ attr_accessor :next_page_token
2853
+
2854
+ def initialize(**args)
2855
+ update!(**args)
2856
+ end
2857
+
2858
+ # Update properties of this object
2859
+ def update!(**args)
2860
+ @etag = args[:etag] if args.key?(:etag)
2861
+ @items = args[:items] if args.key?(:items)
2862
+ @kind = args[:kind] if args.key?(:kind)
2863
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2864
+ end
2865
+ end
2866
+
2867
+ #
2868
+ class Roles
2869
+ include Google::Apis::Core::Hashable
2870
+
2871
+ # ETag of the resource.
2872
+ # Corresponds to the JSON property `etag`
2873
+ # @return [String]
2874
+ attr_accessor :etag
2875
+
2876
+ # A list of Role resources.
2877
+ # Corresponds to the JSON property `items`
2878
+ # @return [Array<Google::Apis::AdminDirectoryV1::Role>]
2879
+ attr_accessor :items
2880
+
2881
+ # The type of the API resource. This is always `admin#directory#roles`.
2882
+ # Corresponds to the JSON property `kind`
2883
+ # @return [String]
2884
+ attr_accessor :kind
2885
+
2886
+ #
2887
+ # Corresponds to the JSON property `nextPageToken`
2888
+ # @return [String]
2889
+ attr_accessor :next_page_token
2890
+
2891
+ def initialize(**args)
2892
+ update!(**args)
2893
+ end
2894
+
2895
+ # Update properties of this object
2896
+ def update!(**args)
2897
+ @etag = args[:etag] if args.key?(:etag)
2898
+ @items = args[:items] if args.key?(:items)
2899
+ @kind = args[:kind] if args.key?(:kind)
2900
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2901
+ end
2902
+ end
2903
+
2904
+ # The type of API resource. For Schema resources, this is always `admin#
2905
+ # directory#schema`.
2906
+ class Schema
2907
+ include Google::Apis::Core::Hashable
2908
+
2909
+ # Display name for the schema.
2910
+ # Corresponds to the JSON property `displayName`
2911
+ # @return [String]
2912
+ attr_accessor :display_name
2913
+
2914
+ # The ETag of the resource.
2915
+ # Corresponds to the JSON property `etag`
2916
+ # @return [String]
2917
+ attr_accessor :etag
2918
+
2919
+ # A list of fields in the schema.
2920
+ # Corresponds to the JSON property `fields`
2921
+ # @return [Array<Google::Apis::AdminDirectoryV1::SchemaFieldSpec>]
2922
+ attr_accessor :fields
2923
+
2924
+ # Kind of resource this is.
2925
+ # Corresponds to the JSON property `kind`
2926
+ # @return [String]
2927
+ attr_accessor :kind
2928
+
2929
+ # The unique identifier of the schema (Read-only)
2930
+ # Corresponds to the JSON property `schemaId`
2931
+ # @return [String]
2932
+ attr_accessor :schema_id
2933
+
2934
+ # The schema's name.
2935
+ # Corresponds to the JSON property `schemaName`
2936
+ # @return [String]
2937
+ attr_accessor :schema_name
2938
+
2939
+ def initialize(**args)
2940
+ update!(**args)
2941
+ end
2942
+
2943
+ # Update properties of this object
2944
+ def update!(**args)
2945
+ @display_name = args[:display_name] if args.key?(:display_name)
2946
+ @etag = args[:etag] if args.key?(:etag)
2947
+ @fields = args[:fields] if args.key?(:fields)
2948
+ @kind = args[:kind] if args.key?(:kind)
2949
+ @schema_id = args[:schema_id] if args.key?(:schema_id)
2950
+ @schema_name = args[:schema_name] if args.key?(:schema_name)
2951
+ end
2952
+ end
2953
+
2954
+ # You can use schemas to add custom fields to user profiles. You can use these
2955
+ # fields to store information such as the projects your users work on, their
2956
+ # physical locations, their hire dates, or whatever else fits your business
2957
+ # needs. For more information, see [Custom User Fields](/admin-sdk/directory/v1/
2958
+ # guides/manage-schemas).
2959
+ class SchemaFieldSpec
2960
+ include Google::Apis::Core::Hashable
2961
+
2962
+ # Display Name of the field.
2963
+ # Corresponds to the JSON property `displayName`
2964
+ # @return [String]
2965
+ attr_accessor :display_name
2966
+
2967
+ # The ETag of the field.
2968
+ # Corresponds to the JSON property `etag`
2969
+ # @return [String]
2970
+ attr_accessor :etag
2971
+
2972
+ # The unique identifier of the field (Read-only)
2973
+ # Corresponds to the JSON property `fieldId`
2974
+ # @return [String]
2975
+ attr_accessor :field_id
2976
+
2977
+ # The name of the field.
2978
+ # Corresponds to the JSON property `fieldName`
2979
+ # @return [String]
2980
+ attr_accessor :field_name
2981
+
2982
+ # The type of the field.
2983
+ # Corresponds to the JSON property `fieldType`
2984
+ # @return [String]
2985
+ attr_accessor :field_type
2986
+
2987
+ # Boolean specifying whether the field is indexed or not. Default: `true`.
2988
+ # Corresponds to the JSON property `indexed`
2989
+ # @return [Boolean]
2990
+ attr_accessor :indexed
2991
+ alias_method :indexed?, :indexed
2992
+
2993
+ # The kind of resource this is. For schema fields this is always `admin#
2994
+ # directory#schema#fieldspec`.
2995
+ # Corresponds to the JSON property `kind`
2996
+ # @return [String]
2997
+ attr_accessor :kind
2998
+
2999
+ # A boolean specifying whether this is a multi-valued field or not. Default: `
3000
+ # false`.
3001
+ # Corresponds to the JSON property `multiValued`
3002
+ # @return [Boolean]
3003
+ attr_accessor :multi_valued
3004
+ alias_method :multi_valued?, :multi_valued
3005
+
3006
+ # Indexing spec for a numeric field. By default, only exact match queries will
3007
+ # be supported for numeric fields. Setting the `numericIndexingSpec` allows
3008
+ # range queries to be supported.
3009
+ # Corresponds to the JSON property `numericIndexingSpec`
3010
+ # @return [Google::Apis::AdminDirectoryV1::SchemaFieldSpec::NumericIndexingSpec]
3011
+ attr_accessor :numeric_indexing_spec
3012
+
3013
+ # Specifies who can view values of this field. See [Retrieve users as a non-
3014
+ # administrator](/admin-sdk/directory/v1/guides/manage-users#
3015
+ # retrieve_users_non_admin) for more information. Note: It may take up to 24
3016
+ # hours for changes to this field to be reflected.
3017
+ # Corresponds to the JSON property `readAccessType`
3018
+ # @return [String]
3019
+ attr_accessor :read_access_type
3020
+
3021
+ def initialize(**args)
3022
+ update!(**args)
3023
+ end
3024
+
3025
+ # Update properties of this object
3026
+ def update!(**args)
3027
+ @display_name = args[:display_name] if args.key?(:display_name)
3028
+ @etag = args[:etag] if args.key?(:etag)
3029
+ @field_id = args[:field_id] if args.key?(:field_id)
3030
+ @field_name = args[:field_name] if args.key?(:field_name)
3031
+ @field_type = args[:field_type] if args.key?(:field_type)
3032
+ @indexed = args[:indexed] if args.key?(:indexed)
3033
+ @kind = args[:kind] if args.key?(:kind)
3034
+ @multi_valued = args[:multi_valued] if args.key?(:multi_valued)
3035
+ @numeric_indexing_spec = args[:numeric_indexing_spec] if args.key?(:numeric_indexing_spec)
3036
+ @read_access_type = args[:read_access_type] if args.key?(:read_access_type)
3037
+ end
3038
+
3039
+ # Indexing spec for a numeric field. By default, only exact match queries will
3040
+ # be supported for numeric fields. Setting the `numericIndexingSpec` allows
3041
+ # range queries to be supported.
3042
+ class NumericIndexingSpec
3043
+ include Google::Apis::Core::Hashable
3044
+
3045
+ # Maximum value of this field. This is meant to be indicative rather than
3046
+ # enforced. Values outside this range will still be indexed, but search may not
3047
+ # be as performant.
3048
+ # Corresponds to the JSON property `maxValue`
3049
+ # @return [Float]
3050
+ attr_accessor :max_value
3051
+
3052
+ # Minimum value of this field. This is meant to be indicative rather than
3053
+ # enforced. Values outside this range will still be indexed, but search may not
3054
+ # be as performant.
3055
+ # Corresponds to the JSON property `minValue`
3056
+ # @return [Float]
3057
+ attr_accessor :min_value
3058
+
3059
+ def initialize(**args)
3060
+ update!(**args)
3061
+ end
3062
+
3063
+ # Update properties of this object
3064
+ def update!(**args)
3065
+ @max_value = args[:max_value] if args.key?(:max_value)
3066
+ @min_value = args[:min_value] if args.key?(:min_value)
3067
+ end
3068
+ end
3069
+ end
3070
+
3071
+ # JSON response template for List Schema operation in Directory API.
3072
+ class Schemas
3073
+ include Google::Apis::Core::Hashable
3074
+
3075
+ # ETag of the resource.
3076
+ # Corresponds to the JSON property `etag`
3077
+ # @return [String]
3078
+ attr_accessor :etag
3079
+
3080
+ # Kind of resource this is.
3081
+ # Corresponds to the JSON property `kind`
3082
+ # @return [String]
3083
+ attr_accessor :kind
3084
+
3085
+ # List of UserSchema objects.
3086
+ # Corresponds to the JSON property `schemas`
3087
+ # @return [Array<Google::Apis::AdminDirectoryV1::Schema>]
3088
+ attr_accessor :schemas
3089
+
3090
+ def initialize(**args)
3091
+ update!(**args)
3092
+ end
3093
+
3094
+ # Update properties of this object
3095
+ def update!(**args)
3096
+ @etag = args[:etag] if args.key?(:etag)
3097
+ @kind = args[:kind] if args.key?(:kind)
3098
+ @schemas = args[:schemas] if args.key?(:schemas)
3099
+ end
3100
+ end
3101
+
3102
+ # JSON template for token resource in Directory API.
3103
+ class Token
3104
+ include Google::Apis::Core::Hashable
3105
+
3106
+ # Whether the application is registered with Google. The value is `true` if the
3107
+ # application has an anonymous Client ID.
3108
+ # Corresponds to the JSON property `anonymous`
3109
+ # @return [Boolean]
3110
+ attr_accessor :anonymous
3111
+ alias_method :anonymous?, :anonymous
3112
+
3113
+ # The Client ID of the application the token is issued to.
3114
+ # Corresponds to the JSON property `clientId`
3115
+ # @return [String]
3116
+ attr_accessor :client_id
3117
+
3118
+ # The displayable name of the application the token is issued to.
3119
+ # Corresponds to the JSON property `displayText`
3120
+ # @return [String]
3121
+ attr_accessor :display_text
3122
+
3123
+ # ETag of the resource.
3124
+ # Corresponds to the JSON property `etag`
3125
+ # @return [String]
3126
+ attr_accessor :etag
3127
+
3128
+ # The type of the API resource. This is always `admin#directory#token`.
3129
+ # Corresponds to the JSON property `kind`
3130
+ # @return [String]
3131
+ attr_accessor :kind
3132
+
3133
+ # Whether the token is issued to an installed application. The value is `true`
3134
+ # if the application is installed to a desktop or mobile device.
3135
+ # Corresponds to the JSON property `nativeApp`
3136
+ # @return [Boolean]
3137
+ attr_accessor :native_app
3138
+ alias_method :native_app?, :native_app
3139
+
3140
+ # A list of authorization scopes the application is granted.
3141
+ # Corresponds to the JSON property `scopes`
3142
+ # @return [Array<String>]
3143
+ attr_accessor :scopes
3144
+
3145
+ # The unique ID of the user that issued the token.
3146
+ # Corresponds to the JSON property `userKey`
3147
+ # @return [String]
3148
+ attr_accessor :user_key
3149
+
3150
+ def initialize(**args)
3151
+ update!(**args)
3152
+ end
3153
+
3154
+ # Update properties of this object
3155
+ def update!(**args)
3156
+ @anonymous = args[:anonymous] if args.key?(:anonymous)
3157
+ @client_id = args[:client_id] if args.key?(:client_id)
3158
+ @display_text = args[:display_text] if args.key?(:display_text)
3159
+ @etag = args[:etag] if args.key?(:etag)
3160
+ @kind = args[:kind] if args.key?(:kind)
3161
+ @native_app = args[:native_app] if args.key?(:native_app)
3162
+ @scopes = args[:scopes] if args.key?(:scopes)
3163
+ @user_key = args[:user_key] if args.key?(:user_key)
3164
+ end
3165
+ end
3166
+
3167
+ # JSON response template for List tokens operation in Directory API.
3168
+ class Tokens
3169
+ include Google::Apis::Core::Hashable
3170
+
3171
+ # ETag of the resource.
3172
+ # Corresponds to the JSON property `etag`
3173
+ # @return [String]
3174
+ attr_accessor :etag
3175
+
3176
+ # A list of Token resources.
3177
+ # Corresponds to the JSON property `items`
3178
+ # @return [Array<Google::Apis::AdminDirectoryV1::Token>]
3179
+ attr_accessor :items
3180
+
3181
+ # The type of the API resource. This is always `admin#directory#tokenList`.
3182
+ # Corresponds to the JSON property `kind`
3183
+ # @return [String]
3184
+ attr_accessor :kind
3185
+
3186
+ def initialize(**args)
3187
+ update!(**args)
3188
+ end
3189
+
3190
+ # Update properties of this object
3191
+ def update!(**args)
3192
+ @etag = args[:etag] if args.key?(:etag)
3193
+ @items = args[:items] if args.key?(:items)
3194
+ @kind = args[:kind] if args.key?(:kind)
3195
+ end
3196
+ end
3197
+
3198
+ # The Directory API allows you to create and manage your account's users, user
3199
+ # aliases, and user Gmail chat profile photos. For more information about common
3200
+ # tasks, see the [User Accounts Developer's Guide](/admin-sdk/directory/v1/
3201
+ # guides/manage-users.html) and the [User Aliases Developer's Guide](/admin-sdk/
3202
+ # directory/v1/guides/manage-user-aliases.html).
3203
+ class User
3204
+ include Google::Apis::Core::Hashable
3205
+
3206
+ # A list of the user's addresses. The maximum allowed data size for this field
3207
+ # is 10Kb.
3208
+ # Corresponds to the JSON property `addresses`
3209
+ # @return [Object]
3210
+ attr_accessor :addresses
3211
+
3212
+ # Output only. This property is `true` if the user has completed an initial
3213
+ # login and accepted the Terms of Service agreement.
3214
+ # Corresponds to the JSON property `agreedToTerms`
3215
+ # @return [Boolean]
3216
+ attr_accessor :agreed_to_terms
3217
+ alias_method :agreed_to_terms?, :agreed_to_terms
3218
+
3219
+ # Output only. List of the user's alias email addresses.
3220
+ # Corresponds to the JSON property `aliases`
3221
+ # @return [Array<String>]
3222
+ attr_accessor :aliases
3223
+
3224
+ # Indicates if user is archived.
3225
+ # Corresponds to the JSON property `archived`
3226
+ # @return [Boolean]
3227
+ attr_accessor :archived
3228
+ alias_method :archived?, :archived
3229
+
3230
+ # Indicates if the user is forced to change their password at next login. This
3231
+ # setting doesn't apply when [the user signs in via a third-party identity
3232
+ # provider](https://support.google.com/a/answer/60224).
3233
+ # Corresponds to the JSON property `changePasswordAtNextLogin`
3234
+ # @return [Boolean]
3235
+ attr_accessor :change_password_at_next_login
3236
+ alias_method :change_password_at_next_login?, :change_password_at_next_login
3237
+
3238
+ # User's G Suite account creation time. (Read-only)
3239
+ # Corresponds to the JSON property `creationTime`
3240
+ # @return [DateTime]
3241
+ attr_accessor :creation_time
3242
+
3243
+ # Custom fields of the user.
3244
+ # Corresponds to the JSON property `customSchemas`
3245
+ # @return [Hash<String,Hash<String,Object>>]
3246
+ attr_accessor :custom_schemas
3247
+
3248
+ # Output only. The customer ID to [retrieve all account users](/admin-sdk/
3249
+ # directory/v1/guides/manage-users.html#get_all_users). You can use the alias `
3250
+ # my_customer` to represent your account's `customerId`. As a reseller
3251
+ # administrator, you can use the resold customer account's `customerId`. To get
3252
+ # a `customerId`, use the account's primary domain in the `domain` parameter of
3253
+ # a [users.list](/admin-sdk/directory/v1/reference/users/list) request.
3254
+ # Corresponds to the JSON property `customerId`
3255
+ # @return [String]
3256
+ attr_accessor :customer_id
3257
+
3258
+ #
3259
+ # Corresponds to the JSON property `deletionTime`
3260
+ # @return [DateTime]
3261
+ attr_accessor :deletion_time
3262
+
3263
+ # A list of the user's email addresses. The maximum allowed data size for this
3264
+ # field is 10Kb.
3265
+ # Corresponds to the JSON property `emails`
3266
+ # @return [Object]
3267
+ attr_accessor :emails
3268
+
3269
+ # Output only. ETag of the resource.
3270
+ # Corresponds to the JSON property `etag`
3271
+ # @return [String]
3272
+ attr_accessor :etag
3273
+
3274
+ # A list of external IDs for the user, such as an employee or network ID. The
3275
+ # maximum allowed data size for this field is 2Kb.
3276
+ # Corresponds to the JSON property `externalIds`
3277
+ # @return [Object]
3278
+ attr_accessor :external_ids
3279
+
3280
+ # The user's gender. The maximum allowed data size for this field is 1Kb.
3281
+ # Corresponds to the JSON property `gender`
3282
+ # @return [Object]
3283
+ attr_accessor :gender
3284
+
3285
+ # Stores the hash format of the password property. We recommend sending the `
3286
+ # password` property value as a base 16 bit hexadecimal-encoded hash value. Set
3287
+ # the `hashFunction` values as either the [SHA-1](http://wikipedia.org/wiki/SHA-
3288
+ # 1), [MD5](http://wikipedia.org/wiki/MD5), or [crypt](https://en.wikipedia.org/
3289
+ # wiki/Crypt_(C)) hash format.
3290
+ # Corresponds to the JSON property `hashFunction`
3291
+ # @return [String]
3292
+ attr_accessor :hash_function
3293
+
3294
+ # The unique ID for the user. A user `id` can be used as a user request URI's `
3295
+ # userKey`.
3296
+ # Corresponds to the JSON property `id`
3297
+ # @return [String]
3298
+ attr_accessor :id
3299
+
3300
+ # The user's Instant Messenger (IM) accounts. A user account can have multiple
3301
+ # ims properties. But, only one of these ims properties can be the primary IM
3302
+ # contact. The maximum allowed data size for this field is 2Kb.
3303
+ # Corresponds to the JSON property `ims`
3304
+ # @return [Object]
3305
+ attr_accessor :ims
3306
+
3307
+ # Indicates if the user's profile is visible in the Google Workspace global
3308
+ # address list when the contact sharing feature is enabled for the domain. For
3309
+ # more information about excluding user profiles, see the [administration help
3310
+ # center](http://support.google.com/a/bin/answer.py?answer=1285988).
3311
+ # Corresponds to the JSON property `includeInGlobalAddressList`
3312
+ # @return [Boolean]
3313
+ attr_accessor :include_in_global_address_list
3314
+ alias_method :include_in_global_address_list?, :include_in_global_address_list
3315
+
3316
+ # If `true`, the user's IP address is [white listed](http://support.google.com/a/
3317
+ # bin/answer.py?answer=60752).
3318
+ # Corresponds to the JSON property `ipWhitelisted`
3319
+ # @return [Boolean]
3320
+ attr_accessor :ip_whitelisted
3321
+ alias_method :ip_whitelisted?, :ip_whitelisted
3322
+
3323
+ # Output only. Indicates a user with super admininistrator privileges. The `
3324
+ # isAdmin` property can only be edited in the [Make a user an administrator](/
3325
+ # admin-sdk/directory/v1/guides/manage-users.html#make_admin) operation ( [
3326
+ # makeAdmin](/admin-sdk/directory/v1/reference/users/makeAdmin.html) method). If
3327
+ # edited in the user [insert](/admin-sdk/directory/v1/reference/users/insert.
3328
+ # html) or [update](/admin-sdk/directory/v1/reference/users/update.html) methods,
3329
+ # the edit is ignored by the API service.
3330
+ # Corresponds to the JSON property `isAdmin`
3331
+ # @return [Boolean]
3332
+ attr_accessor :is_admin
3333
+ alias_method :is_admin?, :is_admin
3334
+
3335
+ # Output only. Indicates if the user is a delegated administrator. Delegated
3336
+ # administrators are supported by the API but cannot create or undelete users,
3337
+ # or make users administrators. These requests are ignored by the API service.
3338
+ # Roles and privileges for administrators are assigned using the [Admin console](
3339
+ # http://support.google.com/a/bin/answer.py?answer=33325).
3340
+ # Corresponds to the JSON property `isDelegatedAdmin`
3341
+ # @return [Boolean]
3342
+ attr_accessor :is_delegated_admin
3343
+ alias_method :is_delegated_admin?, :is_delegated_admin
3344
+
3345
+ # Output only. Is 2-step verification enforced (Read-only)
3346
+ # Corresponds to the JSON property `isEnforcedIn2Sv`
3347
+ # @return [Boolean]
3348
+ attr_accessor :is_enforced_in2_sv
3349
+ alias_method :is_enforced_in2_sv?, :is_enforced_in2_sv
3350
+
3351
+ # Output only. Is enrolled in 2-step verification (Read-only)
3352
+ # Corresponds to the JSON property `isEnrolledIn2Sv`
3353
+ # @return [Boolean]
3354
+ attr_accessor :is_enrolled_in2_sv
3355
+ alias_method :is_enrolled_in2_sv?, :is_enrolled_in2_sv
3356
+
3357
+ # Output only. Indicates if the user's Google mailbox is created. This property
3358
+ # is only applicable if the user has been assigned a Gmail license.
3359
+ # Corresponds to the JSON property `isMailboxSetup`
3360
+ # @return [Boolean]
3361
+ attr_accessor :is_mailbox_setup
3362
+ alias_method :is_mailbox_setup?, :is_mailbox_setup
3363
+
3364
+ # The user's keywords. The maximum allowed data size for this field is 1Kb.
3365
+ # Corresponds to the JSON property `keywords`
3366
+ # @return [Object]
3367
+ attr_accessor :keywords
3368
+
3369
+ # Output only. The type of the API resource. For Users resources, the value is `
3370
+ # admin#directory#user`.
3371
+ # Corresponds to the JSON property `kind`
3372
+ # @return [String]
3373
+ attr_accessor :kind
3374
+
3375
+ # The user's languages. The maximum allowed data size for this field is 1Kb.
3376
+ # Corresponds to the JSON property `languages`
3377
+ # @return [Object]
3378
+ attr_accessor :languages
3379
+
3380
+ # User's last login time. (Read-only)
3381
+ # Corresponds to the JSON property `lastLoginTime`
3382
+ # @return [DateTime]
3383
+ attr_accessor :last_login_time
3384
+
3385
+ # The user's locations. The maximum allowed data size for this field is 10Kb.
3386
+ # Corresponds to the JSON property `locations`
3387
+ # @return [Object]
3388
+ attr_accessor :locations
3389
+
3390
+ # Holds the given and family names of the user, and the read-only `fullName`
3391
+ # value. The maximum number of characters in the `givenName` and in the `
3392
+ # familyName` values is 60. In addition, name values support unicode/UTF-8
3393
+ # characters, and can contain spaces, letters (a-z), numbers (0-9), dashes (-),
3394
+ # forward slashes (/), and periods (.). For more information about character
3395
+ # usage rules, see the [administration help center](http://support.google.com/a/
3396
+ # bin/answer.py?answer=33386). Maximum allowed data size for this field is 1Kb.
3397
+ # Corresponds to the JSON property `name`
3398
+ # @return [Google::Apis::AdminDirectoryV1::UserName]
3399
+ attr_accessor :name
3400
+
3401
+ # Output only. List of the user's non-editable alias email addresses. These are
3402
+ # typically outside the account's primary domain or sub-domain.
3403
+ # Corresponds to the JSON property `nonEditableAliases`
3404
+ # @return [Array<String>]
3405
+ attr_accessor :non_editable_aliases
3406
+
3407
+ # Notes for the user.
3408
+ # Corresponds to the JSON property `notes`
3409
+ # @return [Object]
3410
+ attr_accessor :notes
3411
+
3412
+ # The full path of the parent organization associated with the user. If the
3413
+ # parent organization is the top-level, it is represented as a forward slash (`/`
3414
+ # ).
3415
+ # Corresponds to the JSON property `orgUnitPath`
3416
+ # @return [String]
3417
+ attr_accessor :org_unit_path
3418
+
3419
+ # A list of organizations the user belongs to. The maximum allowed data size for
3420
+ # this field is 10Kb.
3421
+ # Corresponds to the JSON property `organizations`
3422
+ # @return [Object]
3423
+ attr_accessor :organizations
3424
+
3425
+ # User's password
3426
+ # Corresponds to the JSON property `password`
3427
+ # @return [String]
3428
+ attr_accessor :password
3429
+
3430
+ # A list of the user's phone numbers. The maximum allowed data size for this
3431
+ # field is 1Kb.
3432
+ # Corresponds to the JSON property `phones`
3433
+ # @return [Object]
3434
+ attr_accessor :phones
3435
+
3436
+ # A list of [POSIX](http://www.opengroup.org/austin/papers/posix_faq.html)
3437
+ # account information for the user.
3438
+ # Corresponds to the JSON property `posixAccounts`
3439
+ # @return [Object]
3440
+ attr_accessor :posix_accounts
3441
+
3442
+ # The user's primary email address. This property is required in a request to
3443
+ # create a user account. The `primaryEmail` must be unique and cannot be an
3444
+ # alias of another user.
3445
+ # Corresponds to the JSON property `primaryEmail`
3446
+ # @return [String]
3447
+ attr_accessor :primary_email
3448
+
3449
+ # Recovery email of the user.
3450
+ # Corresponds to the JSON property `recoveryEmail`
3451
+ # @return [String]
3452
+ attr_accessor :recovery_email
3453
+
3454
+ # Recovery phone of the user. The phone number must be in the E.164 format,
3455
+ # starting with the plus sign (+). Example: *+16506661212*.
3456
+ # Corresponds to the JSON property `recoveryPhone`
3457
+ # @return [String]
3458
+ attr_accessor :recovery_phone
3459
+
3460
+ # A list of the user's relationships to other users. The maximum allowed data
3461
+ # size for this field is 2Kb.
3462
+ # Corresponds to the JSON property `relations`
3463
+ # @return [Object]
3464
+ attr_accessor :relations
3465
+
3466
+ # A list of SSH public keys.
3467
+ # Corresponds to the JSON property `sshPublicKeys`
3468
+ # @return [Object]
3469
+ attr_accessor :ssh_public_keys
3470
+
3471
+ # Indicates if user is suspended.
3472
+ # Corresponds to the JSON property `suspended`
3473
+ # @return [Boolean]
3474
+ attr_accessor :suspended
3475
+ alias_method :suspended?, :suspended
3476
+
3477
+ # Output only. Has the reason a user account is suspended either by the
3478
+ # administrator or by Google at the time of suspension. The property is returned
3479
+ # only if the `suspended` property is `true`.
3480
+ # Corresponds to the JSON property `suspensionReason`
3481
+ # @return [String]
3482
+ attr_accessor :suspension_reason
3483
+
3484
+ # Output only. ETag of the user's photo (Read-only)
3485
+ # Corresponds to the JSON property `thumbnailPhotoEtag`
3486
+ # @return [String]
3487
+ attr_accessor :thumbnail_photo_etag
3488
+
3489
+ # Output only. Photo Url of the user (Read-only)
3490
+ # Corresponds to the JSON property `thumbnailPhotoUrl`
3491
+ # @return [String]
3492
+ attr_accessor :thumbnail_photo_url
3493
+
3494
+ # The user's websites. The maximum allowed data size for this field is 2Kb.
3495
+ # Corresponds to the JSON property `websites`
3496
+ # @return [Object]
3497
+ attr_accessor :websites
3498
+
3499
+ def initialize(**args)
3500
+ update!(**args)
3501
+ end
3502
+
3503
+ # Update properties of this object
3504
+ def update!(**args)
3505
+ @addresses = args[:addresses] if args.key?(:addresses)
3506
+ @agreed_to_terms = args[:agreed_to_terms] if args.key?(:agreed_to_terms)
3507
+ @aliases = args[:aliases] if args.key?(:aliases)
3508
+ @archived = args[:archived] if args.key?(:archived)
3509
+ @change_password_at_next_login = args[:change_password_at_next_login] if args.key?(:change_password_at_next_login)
3510
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
3511
+ @custom_schemas = args[:custom_schemas] if args.key?(:custom_schemas)
3512
+ @customer_id = args[:customer_id] if args.key?(:customer_id)
3513
+ @deletion_time = args[:deletion_time] if args.key?(:deletion_time)
3514
+ @emails = args[:emails] if args.key?(:emails)
3515
+ @etag = args[:etag] if args.key?(:etag)
3516
+ @external_ids = args[:external_ids] if args.key?(:external_ids)
3517
+ @gender = args[:gender] if args.key?(:gender)
3518
+ @hash_function = args[:hash_function] if args.key?(:hash_function)
3519
+ @id = args[:id] if args.key?(:id)
3520
+ @ims = args[:ims] if args.key?(:ims)
3521
+ @include_in_global_address_list = args[:include_in_global_address_list] if args.key?(:include_in_global_address_list)
3522
+ @ip_whitelisted = args[:ip_whitelisted] if args.key?(:ip_whitelisted)
3523
+ @is_admin = args[:is_admin] if args.key?(:is_admin)
3524
+ @is_delegated_admin = args[:is_delegated_admin] if args.key?(:is_delegated_admin)
3525
+ @is_enforced_in2_sv = args[:is_enforced_in2_sv] if args.key?(:is_enforced_in2_sv)
3526
+ @is_enrolled_in2_sv = args[:is_enrolled_in2_sv] if args.key?(:is_enrolled_in2_sv)
3527
+ @is_mailbox_setup = args[:is_mailbox_setup] if args.key?(:is_mailbox_setup)
3528
+ @keywords = args[:keywords] if args.key?(:keywords)
3529
+ @kind = args[:kind] if args.key?(:kind)
3530
+ @languages = args[:languages] if args.key?(:languages)
3531
+ @last_login_time = args[:last_login_time] if args.key?(:last_login_time)
3532
+ @locations = args[:locations] if args.key?(:locations)
3533
+ @name = args[:name] if args.key?(:name)
3534
+ @non_editable_aliases = args[:non_editable_aliases] if args.key?(:non_editable_aliases)
3535
+ @notes = args[:notes] if args.key?(:notes)
3536
+ @org_unit_path = args[:org_unit_path] if args.key?(:org_unit_path)
3537
+ @organizations = args[:organizations] if args.key?(:organizations)
3538
+ @password = args[:password] if args.key?(:password)
3539
+ @phones = args[:phones] if args.key?(:phones)
3540
+ @posix_accounts = args[:posix_accounts] if args.key?(:posix_accounts)
3541
+ @primary_email = args[:primary_email] if args.key?(:primary_email)
3542
+ @recovery_email = args[:recovery_email] if args.key?(:recovery_email)
3543
+ @recovery_phone = args[:recovery_phone] if args.key?(:recovery_phone)
3544
+ @relations = args[:relations] if args.key?(:relations)
3545
+ @ssh_public_keys = args[:ssh_public_keys] if args.key?(:ssh_public_keys)
3546
+ @suspended = args[:suspended] if args.key?(:suspended)
3547
+ @suspension_reason = args[:suspension_reason] if args.key?(:suspension_reason)
3548
+ @thumbnail_photo_etag = args[:thumbnail_photo_etag] if args.key?(:thumbnail_photo_etag)
3549
+ @thumbnail_photo_url = args[:thumbnail_photo_url] if args.key?(:thumbnail_photo_url)
3550
+ @websites = args[:websites] if args.key?(:websites)
3551
+ end
3552
+ end
3553
+
3554
+ # JSON template for About (notes) of a user in Directory API.
3555
+ class UserAbout
3556
+ include Google::Apis::Core::Hashable
3557
+
3558
+ # About entry can have a type which indicates the content type. It can either be
3559
+ # plain or html. By default, notes contents are assumed to contain plain text.
3560
+ # Corresponds to the JSON property `contentType`
3561
+ # @return [String]
3562
+ attr_accessor :content_type
3563
+
3564
+ # Actual value of notes.
3565
+ # Corresponds to the JSON property `value`
3566
+ # @return [String]
3567
+ attr_accessor :value
3568
+
3569
+ def initialize(**args)
3570
+ update!(**args)
3571
+ end
3572
+
3573
+ # Update properties of this object
3574
+ def update!(**args)
3575
+ @content_type = args[:content_type] if args.key?(:content_type)
3576
+ @value = args[:value] if args.key?(:value)
3577
+ end
3578
+ end
3579
+
3580
+ # JSON template for address.
3581
+ class UserAddress
3582
+ include Google::Apis::Core::Hashable
3583
+
3584
+ # Country.
3585
+ # Corresponds to the JSON property `country`
3586
+ # @return [String]
3587
+ attr_accessor :country
3588
+
3589
+ # Country code.
3590
+ # Corresponds to the JSON property `countryCode`
3591
+ # @return [String]
3592
+ attr_accessor :country_code
3593
+
3594
+ # Custom type.
3595
+ # Corresponds to the JSON property `customType`
3596
+ # @return [String]
3597
+ attr_accessor :custom_type
3598
+
3599
+ # Extended Address.
3600
+ # Corresponds to the JSON property `extendedAddress`
3601
+ # @return [String]
3602
+ attr_accessor :extended_address
3603
+
3604
+ # Formatted address.
3605
+ # Corresponds to the JSON property `formatted`
3606
+ # @return [String]
3607
+ attr_accessor :formatted
3608
+
3609
+ # Locality.
3610
+ # Corresponds to the JSON property `locality`
3611
+ # @return [String]
3612
+ attr_accessor :locality
3613
+
3614
+ # Other parts of address.
3615
+ # Corresponds to the JSON property `poBox`
3616
+ # @return [String]
3617
+ attr_accessor :po_box
3618
+
3619
+ # Postal code.
3620
+ # Corresponds to the JSON property `postalCode`
3621
+ # @return [String]
3622
+ attr_accessor :postal_code
3623
+
3624
+ # If this is user's primary address. Only one entry could be marked as primary.
3625
+ # Corresponds to the JSON property `primary`
3626
+ # @return [Boolean]
3627
+ attr_accessor :primary
3628
+ alias_method :primary?, :primary
3629
+
3630
+ # Region.
3631
+ # Corresponds to the JSON property `region`
3632
+ # @return [String]
3633
+ attr_accessor :region
3634
+
3635
+ # User supplied address was structured. Structured addresses are NOT supported
3636
+ # at this time. You might be able to write structured addresses but any values
3637
+ # will eventually be clobbered.
3638
+ # Corresponds to the JSON property `sourceIsStructured`
3639
+ # @return [Boolean]
3640
+ attr_accessor :source_is_structured
3641
+ alias_method :source_is_structured?, :source_is_structured
3642
+
3643
+ # Street.
3644
+ # Corresponds to the JSON property `streetAddress`
3645
+ # @return [String]
3646
+ attr_accessor :street_address
3647
+
3648
+ # Each entry can have a type which indicates standard values of that entry. For
3649
+ # example address could be of home work etc. In addition to the standard type an
3650
+ # entry can have a custom type and can take any value. Such type should have the
3651
+ # CUSTOM value as type and also have a customType value.
3652
+ # Corresponds to the JSON property `type`
3653
+ # @return [String]
3654
+ attr_accessor :type
3655
+
3656
+ def initialize(**args)
3657
+ update!(**args)
3658
+ end
3659
+
3660
+ # Update properties of this object
3661
+ def update!(**args)
3662
+ @country = args[:country] if args.key?(:country)
3663
+ @country_code = args[:country_code] if args.key?(:country_code)
3664
+ @custom_type = args[:custom_type] if args.key?(:custom_type)
3665
+ @extended_address = args[:extended_address] if args.key?(:extended_address)
3666
+ @formatted = args[:formatted] if args.key?(:formatted)
3667
+ @locality = args[:locality] if args.key?(:locality)
3668
+ @po_box = args[:po_box] if args.key?(:po_box)
3669
+ @postal_code = args[:postal_code] if args.key?(:postal_code)
3670
+ @primary = args[:primary] if args.key?(:primary)
3671
+ @region = args[:region] if args.key?(:region)
3672
+ @source_is_structured = args[:source_is_structured] if args.key?(:source_is_structured)
3673
+ @street_address = args[:street_address] if args.key?(:street_address)
3674
+ @type = args[:type] if args.key?(:type)
3675
+ end
3676
+ end
3677
+
3678
+ # JSON template for an email.
3679
+ class UserEmail
3680
+ include Google::Apis::Core::Hashable
3681
+
3682
+ # Email id of the user.
3683
+ # Corresponds to the JSON property `address`
3684
+ # @return [String]
3685
+ attr_accessor :address
3686
+
3687
+ # Custom Type.
3688
+ # Corresponds to the JSON property `customType`
3689
+ # @return [String]
3690
+ attr_accessor :custom_type
3691
+
3692
+ # If this is user's primary email. Only one entry could be marked as primary.
3693
+ # Corresponds to the JSON property `primary`
3694
+ # @return [Boolean]
3695
+ attr_accessor :primary
3696
+ alias_method :primary?, :primary
3697
+
3698
+ # Each entry can have a type which indicates standard types of that entry. For
3699
+ # example email could be of home, work etc. In addition to the standard type, an
3700
+ # entry can have a custom type and can take any value Such types should have the
3701
+ # CUSTOM value as type and also have a customType value.
3702
+ # Corresponds to the JSON property `type`
3703
+ # @return [String]
3704
+ attr_accessor :type
3705
+
3706
+ def initialize(**args)
3707
+ update!(**args)
3708
+ end
3709
+
3710
+ # Update properties of this object
3711
+ def update!(**args)
3712
+ @address = args[:address] if args.key?(:address)
3713
+ @custom_type = args[:custom_type] if args.key?(:custom_type)
3714
+ @primary = args[:primary] if args.key?(:primary)
3715
+ @type = args[:type] if args.key?(:type)
3716
+ end
3717
+ end
3718
+
3719
+ # JSON template for an externalId entry.
3720
+ class UserExternalId
3721
+ include Google::Apis::Core::Hashable
3722
+
3723
+ # Custom type.
3724
+ # Corresponds to the JSON property `customType`
3725
+ # @return [String]
3726
+ attr_accessor :custom_type
3727
+
3728
+ # The type of the Id.
3729
+ # Corresponds to the JSON property `type`
3730
+ # @return [String]
3731
+ attr_accessor :type
3732
+
3733
+ # The value of the id.
3734
+ # Corresponds to the JSON property `value`
3735
+ # @return [String]
3736
+ attr_accessor :value
3737
+
3738
+ def initialize(**args)
3739
+ update!(**args)
3740
+ end
3741
+
3742
+ # Update properties of this object
3743
+ def update!(**args)
3744
+ @custom_type = args[:custom_type] if args.key?(:custom_type)
3745
+ @type = args[:type] if args.key?(:type)
3746
+ @value = args[:value] if args.key?(:value)
3747
+ end
3748
+ end
3749
+
3750
+ #
3751
+ class UserGender
3752
+ include Google::Apis::Core::Hashable
3753
+
3754
+ # AddressMeAs. A human-readable string containing the proper way to refer to the
3755
+ # profile owner by humans for example he/him/his or they/them/their.
3756
+ # Corresponds to the JSON property `addressMeAs`
3757
+ # @return [String]
3758
+ attr_accessor :address_me_as
3759
+
3760
+ # Custom gender.
3761
+ # Corresponds to the JSON property `customGender`
3762
+ # @return [String]
3763
+ attr_accessor :custom_gender
3764
+
3765
+ # Gender.
3766
+ # Corresponds to the JSON property `type`
3767
+ # @return [String]
3768
+ attr_accessor :type
3769
+
3770
+ def initialize(**args)
3771
+ update!(**args)
3772
+ end
3773
+
3774
+ # Update properties of this object
3775
+ def update!(**args)
3776
+ @address_me_as = args[:address_me_as] if args.key?(:address_me_as)
3777
+ @custom_gender = args[:custom_gender] if args.key?(:custom_gender)
3778
+ @type = args[:type] if args.key?(:type)
3779
+ end
3780
+ end
3781
+
3782
+ # JSON template for instant messenger of an user.
3783
+ class UserIm
3784
+ include Google::Apis::Core::Hashable
3785
+
3786
+ # Custom protocol.
3787
+ # Corresponds to the JSON property `customProtocol`
3788
+ # @return [String]
3789
+ attr_accessor :custom_protocol
3790
+
3791
+ # Custom type.
3792
+ # Corresponds to the JSON property `customType`
3793
+ # @return [String]
3794
+ attr_accessor :custom_type
3795
+
3796
+ # Instant messenger id.
3797
+ # Corresponds to the JSON property `im`
3798
+ # @return [String]
3799
+ attr_accessor :im
3800
+
3801
+ # If this is user's primary im. Only one entry could be marked as primary.
3802
+ # Corresponds to the JSON property `primary`
3803
+ # @return [Boolean]
3804
+ attr_accessor :primary
3805
+ alias_method :primary?, :primary
3806
+
3807
+ # Protocol used in the instant messenger. It should be one of the values from
3808
+ # ImProtocolTypes map. Similar to type it can take a CUSTOM value and specify
3809
+ # the custom name in customProtocol field.
3810
+ # Corresponds to the JSON property `protocol`
3811
+ # @return [String]
3812
+ attr_accessor :protocol
3813
+
3814
+ # Each entry can have a type which indicates standard types of that entry. For
3815
+ # example instant messengers could be of home work etc. In addition to the
3816
+ # standard type an entry can have a custom type and can take any value. Such
3817
+ # types should have the CUSTOM value as type and also have a customType value.
3818
+ # Corresponds to the JSON property `type`
3819
+ # @return [String]
3820
+ attr_accessor :type
3821
+
3822
+ def initialize(**args)
3823
+ update!(**args)
3824
+ end
3825
+
3826
+ # Update properties of this object
3827
+ def update!(**args)
3828
+ @custom_protocol = args[:custom_protocol] if args.key?(:custom_protocol)
3829
+ @custom_type = args[:custom_type] if args.key?(:custom_type)
3830
+ @im = args[:im] if args.key?(:im)
3831
+ @primary = args[:primary] if args.key?(:primary)
3832
+ @protocol = args[:protocol] if args.key?(:protocol)
3833
+ @type = args[:type] if args.key?(:type)
3834
+ end
3835
+ end
3836
+
3837
+ # JSON template for a keyword entry.
3838
+ class UserKeyword
3839
+ include Google::Apis::Core::Hashable
3840
+
3841
+ # Custom Type.
3842
+ # Corresponds to the JSON property `customType`
3843
+ # @return [String]
3844
+ attr_accessor :custom_type
3845
+
3846
+ # Each entry can have a type which indicates standard type of that entry. For
3847
+ # example keyword could be of type occupation or outlook. In addition to the
3848
+ # standard type an entry can have a custom type and can give it any name. Such
3849
+ # types should have the CUSTOM value as type and also have a customType value.
3850
+ # Corresponds to the JSON property `type`
3851
+ # @return [String]
3852
+ attr_accessor :type
3853
+
3854
+ # Keyword.
3855
+ # Corresponds to the JSON property `value`
3856
+ # @return [String]
3857
+ attr_accessor :value
3858
+
3859
+ def initialize(**args)
3860
+ update!(**args)
3861
+ end
3862
+
3863
+ # Update properties of this object
3864
+ def update!(**args)
3865
+ @custom_type = args[:custom_type] if args.key?(:custom_type)
3866
+ @type = args[:type] if args.key?(:type)
3867
+ @value = args[:value] if args.key?(:value)
3868
+ end
3869
+ end
3870
+
3871
+ # JSON template for a language entry.
3872
+ class UserLanguage
3873
+ include Google::Apis::Core::Hashable
3874
+
3875
+ # Other language. User can provide own language name if there is no
3876
+ # corresponding Google III language code. If this is set LanguageCode can't be
3877
+ # set
3878
+ # Corresponds to the JSON property `customLanguage`
3879
+ # @return [String]
3880
+ attr_accessor :custom_language
3881
+
3882
+ # Language Code. Should be used for storing Google III LanguageCode string
3883
+ # representation for language. Illegal values cause SchemaException.
3884
+ # Corresponds to the JSON property `languageCode`
3885
+ # @return [String]
3886
+ attr_accessor :language_code
3887
+
3888
+ def initialize(**args)
3889
+ update!(**args)
3890
+ end
3891
+
3892
+ # Update properties of this object
3893
+ def update!(**args)
3894
+ @custom_language = args[:custom_language] if args.key?(:custom_language)
3895
+ @language_code = args[:language_code] if args.key?(:language_code)
3896
+ end
3897
+ end
3898
+
3899
+ # JSON template for a location entry.
3900
+ class UserLocation
3901
+ include Google::Apis::Core::Hashable
3902
+
3903
+ # Textual location. This is most useful for display purposes to concisely
3904
+ # describe the location. For example 'Mountain View, CA', 'Near Seattle', 'US-
3905
+ # NYC-9TH 9A209A.''
3906
+ # Corresponds to the JSON property `area`
3907
+ # @return [String]
3908
+ attr_accessor :area
3909
+
3910
+ # Building Identifier.
3911
+ # Corresponds to the JSON property `buildingId`
3912
+ # @return [String]
3913
+ attr_accessor :building_id
3914
+
3915
+ # Custom Type.
3916
+ # Corresponds to the JSON property `customType`
3917
+ # @return [String]
3918
+ attr_accessor :custom_type
3919
+
3920
+ # Most specific textual code of individual desk location.
3921
+ # Corresponds to the JSON property `deskCode`
3922
+ # @return [String]
3923
+ attr_accessor :desk_code
3924
+
3925
+ # Floor name/number.
3926
+ # Corresponds to the JSON property `floorName`
3927
+ # @return [String]
3928
+ attr_accessor :floor_name
3929
+
3930
+ # Floor section. More specific location within the floor. For example if a floor
3931
+ # is divided into sections 'A', 'B' and 'C' this field would identify one of
3932
+ # those values.
3933
+ # Corresponds to the JSON property `floorSection`
3934
+ # @return [String]
3935
+ attr_accessor :floor_section
3936
+
3937
+ # Each entry can have a type which indicates standard types of that entry. For
3938
+ # example location could be of types default and desk. In addition to standard
3939
+ # type an entry can have a custom type and can give it any name. Such types
3940
+ # should have 'custom' as type and also have a customType value.
3941
+ # Corresponds to the JSON property `type`
3942
+ # @return [String]
3943
+ attr_accessor :type
3944
+
3945
+ def initialize(**args)
3946
+ update!(**args)
3947
+ end
3948
+
3949
+ # Update properties of this object
3950
+ def update!(**args)
3951
+ @area = args[:area] if args.key?(:area)
3952
+ @building_id = args[:building_id] if args.key?(:building_id)
3953
+ @custom_type = args[:custom_type] if args.key?(:custom_type)
3954
+ @desk_code = args[:desk_code] if args.key?(:desk_code)
3955
+ @floor_name = args[:floor_name] if args.key?(:floor_name)
3956
+ @floor_section = args[:floor_section] if args.key?(:floor_section)
3957
+ @type = args[:type] if args.key?(:type)
3958
+ end
3959
+ end
3960
+
3961
+ #
3962
+ class UserMakeAdmin
3963
+ include Google::Apis::Core::Hashable
3964
+
3965
+ # Indicates the administrator status of the user.
3966
+ # Corresponds to the JSON property `status`
3967
+ # @return [Boolean]
3968
+ attr_accessor :status
3969
+ alias_method :status?, :status
3970
+
3971
+ def initialize(**args)
3972
+ update!(**args)
3973
+ end
3974
+
3975
+ # Update properties of this object
3976
+ def update!(**args)
3977
+ @status = args[:status] if args.key?(:status)
3978
+ end
3979
+ end
3980
+
3981
+ #
3982
+ class UserName
3983
+ include Google::Apis::Core::Hashable
3984
+
3985
+ # The user's last name. Required when creating a user account.
3986
+ # Corresponds to the JSON property `familyName`
3987
+ # @return [String]
3988
+ attr_accessor :family_name
3989
+
3990
+ # The user's full name formed by concatenating the first and last name values.
3991
+ # Corresponds to the JSON property `fullName`
3992
+ # @return [String]
3993
+ attr_accessor :full_name
3994
+
3995
+ # The user's first name. Required when creating a user account.
3996
+ # Corresponds to the JSON property `givenName`
3997
+ # @return [String]
3998
+ attr_accessor :given_name
3999
+
4000
+ def initialize(**args)
4001
+ update!(**args)
4002
+ end
4003
+
4004
+ # Update properties of this object
4005
+ def update!(**args)
4006
+ @family_name = args[:family_name] if args.key?(:family_name)
4007
+ @full_name = args[:full_name] if args.key?(:full_name)
4008
+ @given_name = args[:given_name] if args.key?(:given_name)
4009
+ end
4010
+ end
4011
+
4012
+ # JSON template for an organization entry.
4013
+ class UserOrganization
4014
+ include Google::Apis::Core::Hashable
4015
+
4016
+ # The cost center of the users department.
4017
+ # Corresponds to the JSON property `costCenter`
4018
+ # @return [String]
4019
+ attr_accessor :cost_center
4020
+
4021
+ # Custom type.
4022
+ # Corresponds to the JSON property `customType`
4023
+ # @return [String]
4024
+ attr_accessor :custom_type
4025
+
4026
+ # Department within the organization.
4027
+ # Corresponds to the JSON property `department`
4028
+ # @return [String]
4029
+ attr_accessor :department
4030
+
4031
+ # Description of the organization.
4032
+ # Corresponds to the JSON property `description`
4033
+ # @return [String]
4034
+ attr_accessor :description
4035
+
4036
+ # The domain to which the organization belongs to.
4037
+ # Corresponds to the JSON property `domain`
4038
+ # @return [String]
4039
+ attr_accessor :domain
4040
+
4041
+ # The full-time equivalent millipercent within the organization (100000 = 100%).
4042
+ # Corresponds to the JSON property `fullTimeEquivalent`
4043
+ # @return [Fixnum]
4044
+ attr_accessor :full_time_equivalent
4045
+
4046
+ # Location of the organization. This need not be fully qualified address.
4047
+ # Corresponds to the JSON property `location`
4048
+ # @return [String]
4049
+ attr_accessor :location
4050
+
4051
+ # Name of the organization
4052
+ # Corresponds to the JSON property `name`
4053
+ # @return [String]
4054
+ attr_accessor :name
4055
+
4056
+ # If it user's primary organization.
4057
+ # Corresponds to the JSON property `primary`
4058
+ # @return [Boolean]
4059
+ attr_accessor :primary
4060
+ alias_method :primary?, :primary
4061
+
4062
+ # Symbol of the organization.
4063
+ # Corresponds to the JSON property `symbol`
4064
+ # @return [String]
4065
+ attr_accessor :symbol
4066
+
4067
+ # Title (designation) of the user in the organization.
4068
+ # Corresponds to the JSON property `title`
4069
+ # @return [String]
4070
+ attr_accessor :title
4071
+
4072
+ # Each entry can have a type which indicates standard types of that entry. For
4073
+ # example organization could be of school work etc. In addition to the standard
4074
+ # type an entry can have a custom type and can give it any name. Such types
4075
+ # should have the CUSTOM value as type and also have a CustomType value.
4076
+ # Corresponds to the JSON property `type`
4077
+ # @return [String]
4078
+ attr_accessor :type
4079
+
4080
+ def initialize(**args)
4081
+ update!(**args)
4082
+ end
4083
+
4084
+ # Update properties of this object
4085
+ def update!(**args)
4086
+ @cost_center = args[:cost_center] if args.key?(:cost_center)
4087
+ @custom_type = args[:custom_type] if args.key?(:custom_type)
4088
+ @department = args[:department] if args.key?(:department)
4089
+ @description = args[:description] if args.key?(:description)
4090
+ @domain = args[:domain] if args.key?(:domain)
4091
+ @full_time_equivalent = args[:full_time_equivalent] if args.key?(:full_time_equivalent)
4092
+ @location = args[:location] if args.key?(:location)
4093
+ @name = args[:name] if args.key?(:name)
4094
+ @primary = args[:primary] if args.key?(:primary)
4095
+ @symbol = args[:symbol] if args.key?(:symbol)
4096
+ @title = args[:title] if args.key?(:title)
4097
+ @type = args[:type] if args.key?(:type)
4098
+ end
4099
+ end
4100
+
4101
+ # JSON template for a phone entry.
4102
+ class UserPhone
4103
+ include Google::Apis::Core::Hashable
4104
+
4105
+ # Custom Type.
4106
+ # Corresponds to the JSON property `customType`
4107
+ # @return [String]
4108
+ attr_accessor :custom_type
4109
+
4110
+ # If this is user's primary phone or not.
4111
+ # Corresponds to the JSON property `primary`
4112
+ # @return [Boolean]
4113
+ attr_accessor :primary
4114
+ alias_method :primary?, :primary
4115
+
4116
+ # Each entry can have a type which indicates standard types of that entry. For
4117
+ # example phone could be of home_fax work mobile etc. In addition to the
4118
+ # standard type an entry can have a custom type and can give it any name. Such
4119
+ # types should have the CUSTOM value as type and also have a customType value.
4120
+ # Corresponds to the JSON property `type`
4121
+ # @return [String]
4122
+ attr_accessor :type
4123
+
4124
+ # Phone number.
4125
+ # Corresponds to the JSON property `value`
4126
+ # @return [String]
4127
+ attr_accessor :value
4128
+
4129
+ def initialize(**args)
4130
+ update!(**args)
4131
+ end
4132
+
4133
+ # Update properties of this object
4134
+ def update!(**args)
4135
+ @custom_type = args[:custom_type] if args.key?(:custom_type)
4136
+ @primary = args[:primary] if args.key?(:primary)
4137
+ @type = args[:type] if args.key?(:type)
4138
+ @value = args[:value] if args.key?(:value)
4139
+ end
4140
+ end
4141
+
4142
+ #
4143
+ class UserPhoto
4144
+ include Google::Apis::Core::Hashable
4145
+
4146
+ # ETag of the resource.
4147
+ # Corresponds to the JSON property `etag`
4148
+ # @return [String]
4149
+ attr_accessor :etag
4150
+
4151
+ # Height of the photo in pixels.
4152
+ # Corresponds to the JSON property `height`
4153
+ # @return [Fixnum]
4154
+ attr_accessor :height
4155
+
4156
+ # The ID the API uses to uniquely identify the user.
4157
+ # Corresponds to the JSON property `id`
4158
+ # @return [String]
4159
+ attr_accessor :id
4160
+
4161
+ # The type of the API resource. For Photo resources, this is `admin#directory#
4162
+ # user#photo`.
4163
+ # Corresponds to the JSON property `kind`
4164
+ # @return [String]
4165
+ attr_accessor :kind
4166
+
4167
+ # The MIME type of the photo. Allowed values are `JPEG`, `PNG`, `GIF`, `BMP`, `
4168
+ # TIFF`, and web-safe base64 encoding.
4169
+ # Corresponds to the JSON property `mimeType`
4170
+ # @return [String]
4171
+ attr_accessor :mime_type
4172
+
4173
+ # The user photo's upload data in [web-safe Base64](https://code.google.com/p/
4174
+ # stringencoders/wiki/WebSafeBase64) format in bytes. This means: * The slash (/)
4175
+ # character is replaced with the underscore (_) character. * The plus sign (+)
4176
+ # character is replaced with the hyphen (-) character. * The equals sign (=)
4177
+ # character is replaced with the asterisk (*). * For padding, the period (.)
4178
+ # character is used instead of the RFC-4648 baseURL definition which uses the
4179
+ # equals sign (=) for padding. This is done to simplify URL-parsing. * Whatever
4180
+ # the size of the photo being uploaded, the API downsizes it to 96x96 pixels.
4181
+ # Corresponds to the JSON property `photoData`
4182
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
4183
+ # @return [String]
4184
+ attr_accessor :photo_data
4185
+
4186
+ # The user's primary email address.
4187
+ # Corresponds to the JSON property `primaryEmail`
4188
+ # @return [String]
4189
+ attr_accessor :primary_email
4190
+
4191
+ # Width of the photo in pixels.
4192
+ # Corresponds to the JSON property `width`
4193
+ # @return [Fixnum]
4194
+ attr_accessor :width
4195
+
4196
+ def initialize(**args)
4197
+ update!(**args)
4198
+ end
4199
+
4200
+ # Update properties of this object
4201
+ def update!(**args)
4202
+ @etag = args[:etag] if args.key?(:etag)
4203
+ @height = args[:height] if args.key?(:height)
4204
+ @id = args[:id] if args.key?(:id)
4205
+ @kind = args[:kind] if args.key?(:kind)
4206
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
4207
+ @photo_data = args[:photo_data] if args.key?(:photo_data)
4208
+ @primary_email = args[:primary_email] if args.key?(:primary_email)
4209
+ @width = args[:width] if args.key?(:width)
4210
+ end
4211
+ end
4212
+
4213
+ # JSON template for a POSIX account entry.
4214
+ class UserPosixAccount
4215
+ include Google::Apis::Core::Hashable
4216
+
4217
+ # A POSIX account field identifier.
4218
+ # Corresponds to the JSON property `accountId`
4219
+ # @return [String]
4220
+ attr_accessor :account_id
4221
+
4222
+ # The GECOS (user information) for this account.
4223
+ # Corresponds to the JSON property `gecos`
4224
+ # @return [String]
4225
+ attr_accessor :gecos
4226
+
4227
+ # The default group ID.
4228
+ # Corresponds to the JSON property `gid`
4229
+ # @return [Fixnum]
4230
+ attr_accessor :gid
4231
+
4232
+ # The path to the home directory for this account.
4233
+ # Corresponds to the JSON property `homeDirectory`
4234
+ # @return [String]
4235
+ attr_accessor :home_directory
4236
+
4237
+ # The operating system type for this account.
4238
+ # Corresponds to the JSON property `operatingSystemType`
4239
+ # @return [String]
4240
+ attr_accessor :operating_system_type
4241
+
4242
+ # If this is user's primary account within the SystemId.
4243
+ # Corresponds to the JSON property `primary`
4244
+ # @return [Boolean]
4245
+ attr_accessor :primary
4246
+ alias_method :primary?, :primary
4247
+
4248
+ # The path to the login shell for this account.
4249
+ # Corresponds to the JSON property `shell`
4250
+ # @return [String]
4251
+ attr_accessor :shell
4252
+
4253
+ # System identifier for which account Username or Uid apply to.
4254
+ # Corresponds to the JSON property `systemId`
4255
+ # @return [String]
4256
+ attr_accessor :system_id
4257
+
4258
+ # The POSIX compliant user ID.
4259
+ # Corresponds to the JSON property `uid`
4260
+ # @return [Fixnum]
4261
+ attr_accessor :uid
4262
+
4263
+ # The username of the account.
4264
+ # Corresponds to the JSON property `username`
4265
+ # @return [String]
4266
+ attr_accessor :username
4267
+
4268
+ def initialize(**args)
4269
+ update!(**args)
4270
+ end
4271
+
4272
+ # Update properties of this object
4273
+ def update!(**args)
4274
+ @account_id = args[:account_id] if args.key?(:account_id)
4275
+ @gecos = args[:gecos] if args.key?(:gecos)
4276
+ @gid = args[:gid] if args.key?(:gid)
4277
+ @home_directory = args[:home_directory] if args.key?(:home_directory)
4278
+ @operating_system_type = args[:operating_system_type] if args.key?(:operating_system_type)
4279
+ @primary = args[:primary] if args.key?(:primary)
4280
+ @shell = args[:shell] if args.key?(:shell)
4281
+ @system_id = args[:system_id] if args.key?(:system_id)
4282
+ @uid = args[:uid] if args.key?(:uid)
4283
+ @username = args[:username] if args.key?(:username)
4284
+ end
4285
+ end
4286
+
4287
+ # JSON template for a relation entry.
4288
+ class UserRelation
4289
+ include Google::Apis::Core::Hashable
4290
+
4291
+ # Custom Type.
4292
+ # Corresponds to the JSON property `customType`
4293
+ # @return [String]
4294
+ attr_accessor :custom_type
4295
+
4296
+ # The relation of the user. Some of the possible values are mother father sister
4297
+ # brother manager assistant partner.
4298
+ # Corresponds to the JSON property `type`
4299
+ # @return [String]
4300
+ attr_accessor :type
4301
+
4302
+ # The name of the relation.
4303
+ # Corresponds to the JSON property `value`
4304
+ # @return [String]
4305
+ attr_accessor :value
4306
+
4307
+ def initialize(**args)
4308
+ update!(**args)
4309
+ end
4310
+
4311
+ # Update properties of this object
4312
+ def update!(**args)
4313
+ @custom_type = args[:custom_type] if args.key?(:custom_type)
4314
+ @type = args[:type] if args.key?(:type)
4315
+ @value = args[:value] if args.key?(:value)
4316
+ end
4317
+ end
4318
+
4319
+ # JSON template for a POSIX account entry.
4320
+ class UserSshPublicKey
4321
+ include Google::Apis::Core::Hashable
4322
+
4323
+ # An expiration time in microseconds since epoch.
4324
+ # Corresponds to the JSON property `expirationTimeUsec`
4325
+ # @return [Fixnum]
4326
+ attr_accessor :expiration_time_usec
4327
+
4328
+ # A SHA-256 fingerprint of the SSH public key. (Read-only)
4329
+ # Corresponds to the JSON property `fingerprint`
4330
+ # @return [String]
4331
+ attr_accessor :fingerprint
4332
+
4333
+ # An SSH public key.
4334
+ # Corresponds to the JSON property `key`
4335
+ # @return [String]
4336
+ attr_accessor :key
4337
+
4338
+ def initialize(**args)
4339
+ update!(**args)
4340
+ end
4341
+
4342
+ # Update properties of this object
4343
+ def update!(**args)
4344
+ @expiration_time_usec = args[:expiration_time_usec] if args.key?(:expiration_time_usec)
4345
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
4346
+ @key = args[:key] if args.key?(:key)
4347
+ end
4348
+ end
4349
+
4350
+ #
4351
+ class UserUndelete
4352
+ include Google::Apis::Core::Hashable
4353
+
4354
+ # OrgUnit of User
4355
+ # Corresponds to the JSON property `orgUnitPath`
4356
+ # @return [String]
4357
+ attr_accessor :org_unit_path
4358
+
4359
+ def initialize(**args)
4360
+ update!(**args)
4361
+ end
4362
+
4363
+ # Update properties of this object
4364
+ def update!(**args)
4365
+ @org_unit_path = args[:org_unit_path] if args.key?(:org_unit_path)
4366
+ end
4367
+ end
4368
+
4369
+ # JSON template for a website entry.
4370
+ class UserWebsite
4371
+ include Google::Apis::Core::Hashable
4372
+
4373
+ # Custom Type.
4374
+ # Corresponds to the JSON property `customType`
4375
+ # @return [String]
4376
+ attr_accessor :custom_type
4377
+
4378
+ # If this is user's primary website or not.
4379
+ # Corresponds to the JSON property `primary`
4380
+ # @return [Boolean]
4381
+ attr_accessor :primary
4382
+ alias_method :primary?, :primary
4383
+
4384
+ # Each entry can have a type which indicates standard types of that entry. For
4385
+ # example website could be of home work blog etc. In addition to the standard
4386
+ # type an entry can have a custom type and can give it any name. Such types
4387
+ # should have the CUSTOM value as type and also have a customType value.
4388
+ # Corresponds to the JSON property `type`
4389
+ # @return [String]
4390
+ attr_accessor :type
4391
+
4392
+ # Website.
4393
+ # Corresponds to the JSON property `value`
4394
+ # @return [String]
4395
+ attr_accessor :value
4396
+
4397
+ def initialize(**args)
4398
+ update!(**args)
4399
+ end
4400
+
4401
+ # Update properties of this object
4402
+ def update!(**args)
4403
+ @custom_type = args[:custom_type] if args.key?(:custom_type)
4404
+ @primary = args[:primary] if args.key?(:primary)
4405
+ @type = args[:type] if args.key?(:type)
4406
+ @value = args[:value] if args.key?(:value)
4407
+ end
4408
+ end
4409
+
4410
+ #
4411
+ class Users
4412
+ include Google::Apis::Core::Hashable
4413
+
4414
+ # ETag of the resource.
4415
+ # Corresponds to the JSON property `etag`
4416
+ # @return [String]
4417
+ attr_accessor :etag
4418
+
4419
+ # Kind of resource this is.
4420
+ # Corresponds to the JSON property `kind`
4421
+ # @return [String]
4422
+ attr_accessor :kind
4423
+
4424
+ # Token used to access next page of this result.
4425
+ # Corresponds to the JSON property `nextPageToken`
4426
+ # @return [String]
4427
+ attr_accessor :next_page_token
4428
+
4429
+ # Event that triggered this response (only used in case of Push Response)
4430
+ # Corresponds to the JSON property `trigger_event`
4431
+ # @return [String]
4432
+ attr_accessor :trigger_event
4433
+
4434
+ # List of user objects.
4435
+ # Corresponds to the JSON property `users`
4436
+ # @return [Array<Google::Apis::AdminDirectoryV1::User>]
4437
+ attr_accessor :users
4438
+
4439
+ def initialize(**args)
4440
+ update!(**args)
4441
+ end
4442
+
4443
+ # Update properties of this object
4444
+ def update!(**args)
4445
+ @etag = args[:etag] if args.key?(:etag)
4446
+ @kind = args[:kind] if args.key?(:kind)
4447
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
4448
+ @trigger_event = args[:trigger_event] if args.key?(:trigger_event)
4449
+ @users = args[:users] if args.key?(:users)
4450
+ end
4451
+ end
4452
+
4453
+ # The Directory API allows you to view, generate, and invalidate backup
4454
+ # verification codes for a user.
4455
+ class VerificationCode
4456
+ include Google::Apis::Core::Hashable
4457
+
4458
+ # ETag of the resource.
4459
+ # Corresponds to the JSON property `etag`
4460
+ # @return [String]
4461
+ attr_accessor :etag
4462
+
4463
+ # The type of the resource. This is always `admin#directory#verificationCode`.
4464
+ # Corresponds to the JSON property `kind`
4465
+ # @return [String]
4466
+ attr_accessor :kind
4467
+
4468
+ # The obfuscated unique ID of the user.
4469
+ # Corresponds to the JSON property `userId`
4470
+ # @return [String]
4471
+ attr_accessor :user_id
4472
+
4473
+ # A current verification code for the user. Invalidated or used verification
4474
+ # codes are not returned as part of the result.
4475
+ # Corresponds to the JSON property `verificationCode`
4476
+ # @return [String]
4477
+ attr_accessor :verification_code
4478
+
4479
+ def initialize(**args)
4480
+ update!(**args)
4481
+ end
4482
+
4483
+ # Update properties of this object
4484
+ def update!(**args)
4485
+ @etag = args[:etag] if args.key?(:etag)
4486
+ @kind = args[:kind] if args.key?(:kind)
4487
+ @user_id = args[:user_id] if args.key?(:user_id)
4488
+ @verification_code = args[:verification_code] if args.key?(:verification_code)
4489
+ end
4490
+ end
4491
+
4492
+ # JSON response template for List verification codes operation in Directory API.
4493
+ class VerificationCodes
4494
+ include Google::Apis::Core::Hashable
4495
+
4496
+ # ETag of the resource.
4497
+ # Corresponds to the JSON property `etag`
4498
+ # @return [String]
4499
+ attr_accessor :etag
4500
+
4501
+ # A list of verification code resources.
4502
+ # Corresponds to the JSON property `items`
4503
+ # @return [Array<Google::Apis::AdminDirectoryV1::VerificationCode>]
4504
+ attr_accessor :items
4505
+
4506
+ # The type of the resource. This is always `admin#directory#
4507
+ # verificationCodesList`.
4508
+ # Corresponds to the JSON property `kind`
4509
+ # @return [String]
4510
+ attr_accessor :kind
4511
+
4512
+ def initialize(**args)
4513
+ update!(**args)
4514
+ end
4515
+
4516
+ # Update properties of this object
4517
+ def update!(**args)
4518
+ @etag = args[:etag] if args.key?(:etag)
4519
+ @items = args[:items] if args.key?(:items)
4520
+ @kind = args[:kind] if args.key?(:kind)
4521
+ end
4522
+ end
4523
+ end
4524
+ end
4525
+ end