google-apis-admin_directory_v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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