1<?php
2/*
3 * Copyright 2014 Google Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
6 * use this file except in compliance with the License. You may obtain a copy of
7 * the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 * License for the specific language governing permissions and limitations under
15 * the License.
16 */
17
18namespace Google\Service;
19
20use Google\Client;
21
22/**
23 * Service definition for Directory (directory_v1).
24 *
25 * <p>
26 * Admin SDK lets administrators of enterprise domains to view and manage
27 * resources like user, groups etc. It also provides audit and usage reports of
28 * domain.</p>
29 *
30 * <p>
31 * For more information about this service, see the API
32 * <a href="https://developers.google.com/admin-sdk/" target="_blank">Documentation</a>
33 * </p>
34 *
35 * @author Google, Inc.
36 */
37class Directory extends \Google\Service
38{
39  /** See, add, edit, and permanently delete the printers that your organization can use with Chrome. */
40  const ADMIN_CHROME_PRINTERS =
41      "https://www.googleapis.com/auth/admin.chrome.printers";
42  /** See the printers that your organization can use with Chrome. */
43  const ADMIN_CHROME_PRINTERS_READONLY =
44      "https://www.googleapis.com/auth/admin.chrome.printers.readonly";
45  /** View and manage customer related information. */
46  const ADMIN_DIRECTORY_CUSTOMER =
47      "https://www.googleapis.com/auth/admin.directory.customer";
48  /** View customer related information. */
49  const ADMIN_DIRECTORY_CUSTOMER_READONLY =
50      "https://www.googleapis.com/auth/admin.directory.customer.readonly";
51  /** View and manage your Chrome OS devices' metadata. */
52  const ADMIN_DIRECTORY_DEVICE_CHROMEOS =
53      "https://www.googleapis.com/auth/admin.directory.device.chromeos";
54  /** View your Chrome OS devices' metadata. */
55  const ADMIN_DIRECTORY_DEVICE_CHROMEOS_READONLY =
56      "https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly";
57  /** View and manage your mobile devices' metadata. */
58  const ADMIN_DIRECTORY_DEVICE_MOBILE =
59      "https://www.googleapis.com/auth/admin.directory.device.mobile";
60  /** Manage your mobile devices by performing administrative tasks. */
61  const ADMIN_DIRECTORY_DEVICE_MOBILE_ACTION =
62      "https://www.googleapis.com/auth/admin.directory.device.mobile.action";
63  /** View your mobile devices' metadata. */
64  const ADMIN_DIRECTORY_DEVICE_MOBILE_READONLY =
65      "https://www.googleapis.com/auth/admin.directory.device.mobile.readonly";
66  /** View and manage the provisioning of domains for your customers. */
67  const ADMIN_DIRECTORY_DOMAIN =
68      "https://www.googleapis.com/auth/admin.directory.domain";
69  /** View domains related to your customers. */
70  const ADMIN_DIRECTORY_DOMAIN_READONLY =
71      "https://www.googleapis.com/auth/admin.directory.domain.readonly";
72  /** View and manage the provisioning of groups on your domain. */
73  const ADMIN_DIRECTORY_GROUP =
74      "https://www.googleapis.com/auth/admin.directory.group";
75  /** View and manage group subscriptions on your domain. */
76  const ADMIN_DIRECTORY_GROUP_MEMBER =
77      "https://www.googleapis.com/auth/admin.directory.group.member";
78  /** View group subscriptions on your domain. */
79  const ADMIN_DIRECTORY_GROUP_MEMBER_READONLY =
80      "https://www.googleapis.com/auth/admin.directory.group.member.readonly";
81  /** View groups on your domain. */
82  const ADMIN_DIRECTORY_GROUP_READONLY =
83      "https://www.googleapis.com/auth/admin.directory.group.readonly";
84  /** View and manage organization units on your domain. */
85  const ADMIN_DIRECTORY_ORGUNIT =
86      "https://www.googleapis.com/auth/admin.directory.orgunit";
87  /** View organization units on your domain. */
88  const ADMIN_DIRECTORY_ORGUNIT_READONLY =
89      "https://www.googleapis.com/auth/admin.directory.orgunit.readonly";
90  /** View and manage the provisioning of calendar resources on your domain. */
91  const ADMIN_DIRECTORY_RESOURCE_CALENDAR =
92      "https://www.googleapis.com/auth/admin.directory.resource.calendar";
93  /** View calendar resources on your domain. */
94  const ADMIN_DIRECTORY_RESOURCE_CALENDAR_READONLY =
95      "https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly";
96  /** Manage delegated admin roles for your domain. */
97  const ADMIN_DIRECTORY_ROLEMANAGEMENT =
98      "https://www.googleapis.com/auth/admin.directory.rolemanagement";
99  /** View delegated admin roles for your domain. */
100  const ADMIN_DIRECTORY_ROLEMANAGEMENT_READONLY =
101      "https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly";
102  /** View and manage the provisioning of users on your domain. */
103  const ADMIN_DIRECTORY_USER =
104      "https://www.googleapis.com/auth/admin.directory.user";
105  /** View and manage user aliases on your domain. */
106  const ADMIN_DIRECTORY_USER_ALIAS =
107      "https://www.googleapis.com/auth/admin.directory.user.alias";
108  /** View user aliases on your domain. */
109  const ADMIN_DIRECTORY_USER_ALIAS_READONLY =
110      "https://www.googleapis.com/auth/admin.directory.user.alias.readonly";
111  /** See info about users on your domain. */
112  const ADMIN_DIRECTORY_USER_READONLY =
113      "https://www.googleapis.com/auth/admin.directory.user.readonly";
114  /** Manage data access permissions for users on your domain. */
115  const ADMIN_DIRECTORY_USER_SECURITY =
116      "https://www.googleapis.com/auth/admin.directory.user.security";
117  /** View and manage the provisioning of user schemas on your domain. */
118  const ADMIN_DIRECTORY_USERSCHEMA =
119      "https://www.googleapis.com/auth/admin.directory.userschema";
120  /** View user schemas on your domain. */
121  const ADMIN_DIRECTORY_USERSCHEMA_READONLY =
122      "https://www.googleapis.com/auth/admin.directory.userschema.readonly";
123  /** See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.. */
124  const CLOUD_PLATFORM =
125      "https://www.googleapis.com/auth/cloud-platform";
126
127  public $asps;
128  public $channels;
129  public $chromeosdevices;
130  public $customer_devices_chromeos;
131  public $customer_devices_chromeos_commands;
132  public $customers;
133  public $customers_chrome_printers;
134  public $domainAliases;
135  public $domains;
136  public $groups;
137  public $groups_aliases;
138  public $members;
139  public $mobiledevices;
140  public $orgunits;
141  public $privileges;
142  public $resources_buildings;
143  public $resources_calendars;
144  public $resources_features;
145  public $roleAssignments;
146  public $roles;
147  public $schemas;
148  public $tokens;
149  public $twoStepVerification;
150  public $users;
151  public $users_aliases;
152  public $users_photos;
153  public $verificationCodes;
154
155  /**
156   * Constructs the internal representation of the Directory service.
157   *
158   * @param Client|array $clientOrConfig The client used to deliver requests, or a
159   *                                     config array to pass to a new Client instance.
160   * @param string $rootUrl The root URL used for requests to the service.
161   */
162  public function __construct($clientOrConfig = [], $rootUrl = null)
163  {
164    parent::__construct($clientOrConfig);
165    $this->rootUrl = $rootUrl ?: 'https://admin.googleapis.com/';
166    $this->servicePath = '';
167    $this->batchPath = 'batch';
168    $this->version = 'directory_v1';
169    $this->serviceName = 'admin';
170
171    $this->asps = new Directory\Resource\Asps(
172        $this,
173        $this->serviceName,
174        'asps',
175        [
176          'methods' => [
177            'delete' => [
178              'path' => 'admin/directory/v1/users/{userKey}/asps/{codeId}',
179              'httpMethod' => 'DELETE',
180              'parameters' => [
181                'userKey' => [
182                  'location' => 'path',
183                  'type' => 'string',
184                  'required' => true,
185                ],
186                'codeId' => [
187                  'location' => 'path',
188                  'type' => 'integer',
189                  'required' => true,
190                ],
191              ],
192            ],'get' => [
193              'path' => 'admin/directory/v1/users/{userKey}/asps/{codeId}',
194              'httpMethod' => 'GET',
195              'parameters' => [
196                'userKey' => [
197                  'location' => 'path',
198                  'type' => 'string',
199                  'required' => true,
200                ],
201                'codeId' => [
202                  'location' => 'path',
203                  'type' => 'integer',
204                  'required' => true,
205                ],
206              ],
207            ],'list' => [
208              'path' => 'admin/directory/v1/users/{userKey}/asps',
209              'httpMethod' => 'GET',
210              'parameters' => [
211                'userKey' => [
212                  'location' => 'path',
213                  'type' => 'string',
214                  'required' => true,
215                ],
216              ],
217            ],
218          ]
219        ]
220    );
221    $this->channels = new Directory\Resource\Channels(
222        $this,
223        $this->serviceName,
224        'channels',
225        [
226          'methods' => [
227            'stop' => [
228              'path' => 'admin/directory_v1/channels/stop',
229              'httpMethod' => 'POST',
230              'parameters' => [],
231            ],
232          ]
233        ]
234    );
235    $this->chromeosdevices = new Directory\Resource\Chromeosdevices(
236        $this,
237        $this->serviceName,
238        'chromeosdevices',
239        [
240          'methods' => [
241            'action' => [
242              'path' => 'admin/directory/v1/customer/{customerId}/devices/chromeos/{resourceId}/action',
243              'httpMethod' => 'POST',
244              'parameters' => [
245                'customerId' => [
246                  'location' => 'path',
247                  'type' => 'string',
248                  'required' => true,
249                ],
250                'resourceId' => [
251                  'location' => 'path',
252                  'type' => 'string',
253                  'required' => true,
254                ],
255              ],
256            ],'get' => [
257              'path' => 'admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}',
258              'httpMethod' => 'GET',
259              'parameters' => [
260                'customerId' => [
261                  'location' => 'path',
262                  'type' => 'string',
263                  'required' => true,
264                ],
265                'deviceId' => [
266                  'location' => 'path',
267                  'type' => 'string',
268                  'required' => true,
269                ],
270                'projection' => [
271                  'location' => 'query',
272                  'type' => 'string',
273                ],
274              ],
275            ],'list' => [
276              'path' => 'admin/directory/v1/customer/{customerId}/devices/chromeos',
277              'httpMethod' => 'GET',
278              'parameters' => [
279                'customerId' => [
280                  'location' => 'path',
281                  'type' => 'string',
282                  'required' => true,
283                ],
284                'includeChildOrgunits' => [
285                  'location' => 'query',
286                  'type' => 'boolean',
287                ],
288                'maxResults' => [
289                  'location' => 'query',
290                  'type' => 'integer',
291                ],
292                'orderBy' => [
293                  'location' => 'query',
294                  'type' => 'string',
295                ],
296                'orgUnitPath' => [
297                  'location' => 'query',
298                  'type' => 'string',
299                ],
300                'pageToken' => [
301                  'location' => 'query',
302                  'type' => 'string',
303                ],
304                'projection' => [
305                  'location' => 'query',
306                  'type' => 'string',
307                ],
308                'query' => [
309                  'location' => 'query',
310                  'type' => 'string',
311                ],
312                'sortOrder' => [
313                  'location' => 'query',
314                  'type' => 'string',
315                ],
316              ],
317            ],'moveDevicesToOu' => [
318              'path' => 'admin/directory/v1/customer/{customerId}/devices/chromeos/moveDevicesToOu',
319              'httpMethod' => 'POST',
320              'parameters' => [
321                'customerId' => [
322                  'location' => 'path',
323                  'type' => 'string',
324                  'required' => true,
325                ],
326                'orgUnitPath' => [
327                  'location' => 'query',
328                  'type' => 'string',
329                  'required' => true,
330                ],
331              ],
332            ],'patch' => [
333              'path' => 'admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}',
334              'httpMethod' => 'PATCH',
335              'parameters' => [
336                'customerId' => [
337                  'location' => 'path',
338                  'type' => 'string',
339                  'required' => true,
340                ],
341                'deviceId' => [
342                  'location' => 'path',
343                  'type' => 'string',
344                  'required' => true,
345                ],
346                'projection' => [
347                  'location' => 'query',
348                  'type' => 'string',
349                ],
350              ],
351            ],'update' => [
352              'path' => 'admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}',
353              'httpMethod' => 'PUT',
354              'parameters' => [
355                'customerId' => [
356                  'location' => 'path',
357                  'type' => 'string',
358                  'required' => true,
359                ],
360                'deviceId' => [
361                  'location' => 'path',
362                  'type' => 'string',
363                  'required' => true,
364                ],
365                'projection' => [
366                  'location' => 'query',
367                  'type' => 'string',
368                ],
369              ],
370            ],
371          ]
372        ]
373    );
374    $this->customer_devices_chromeos = new Directory\Resource\CustomerDevicesChromeos(
375        $this,
376        $this->serviceName,
377        'chromeos',
378        [
379          'methods' => [
380            'issueCommand' => [
381              'path' => 'admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}:issueCommand',
382              'httpMethod' => 'POST',
383              'parameters' => [
384                'customerId' => [
385                  'location' => 'path',
386                  'type' => 'string',
387                  'required' => true,
388                ],
389                'deviceId' => [
390                  'location' => 'path',
391                  'type' => 'string',
392                  'required' => true,
393                ],
394              ],
395            ],
396          ]
397        ]
398    );
399    $this->customer_devices_chromeos_commands = new Directory\Resource\CustomerDevicesChromeosCommands(
400        $this,
401        $this->serviceName,
402        'commands',
403        [
404          'methods' => [
405            'get' => [
406              'path' => 'admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}/commands/{commandId}',
407              'httpMethod' => 'GET',
408              'parameters' => [
409                'customerId' => [
410                  'location' => 'path',
411                  'type' => 'string',
412                  'required' => true,
413                ],
414                'deviceId' => [
415                  'location' => 'path',
416                  'type' => 'string',
417                  'required' => true,
418                ],
419                'commandId' => [
420                  'location' => 'path',
421                  'type' => 'string',
422                  'required' => true,
423                ],
424              ],
425            ],
426          ]
427        ]
428    );
429    $this->customers = new Directory\Resource\Customers(
430        $this,
431        $this->serviceName,
432        'customers',
433        [
434          'methods' => [
435            'get' => [
436              'path' => 'admin/directory/v1/customers/{customerKey}',
437              'httpMethod' => 'GET',
438              'parameters' => [
439                'customerKey' => [
440                  'location' => 'path',
441                  'type' => 'string',
442                  'required' => true,
443                ],
444              ],
445            ],'patch' => [
446              'path' => 'admin/directory/v1/customers/{customerKey}',
447              'httpMethod' => 'PATCH',
448              'parameters' => [
449                'customerKey' => [
450                  'location' => 'path',
451                  'type' => 'string',
452                  'required' => true,
453                ],
454              ],
455            ],'update' => [
456              'path' => 'admin/directory/v1/customers/{customerKey}',
457              'httpMethod' => 'PUT',
458              'parameters' => [
459                'customerKey' => [
460                  'location' => 'path',
461                  'type' => 'string',
462                  'required' => true,
463                ],
464              ],
465            ],
466          ]
467        ]
468    );
469    $this->customers_chrome_printers = new Directory\Resource\CustomersChromePrinters(
470        $this,
471        $this->serviceName,
472        'printers',
473        [
474          'methods' => [
475            'batchCreatePrinters' => [
476              'path' => 'admin/directory/v1/{+parent}/chrome/printers:batchCreatePrinters',
477              'httpMethod' => 'POST',
478              'parameters' => [
479                'parent' => [
480                  'location' => 'path',
481                  'type' => 'string',
482                  'required' => true,
483                ],
484              ],
485            ],'batchDeletePrinters' => [
486              'path' => 'admin/directory/v1/{+parent}/chrome/printers:batchDeletePrinters',
487              'httpMethod' => 'POST',
488              'parameters' => [
489                'parent' => [
490                  'location' => 'path',
491                  'type' => 'string',
492                  'required' => true,
493                ],
494              ],
495            ],'create' => [
496              'path' => 'admin/directory/v1/{+parent}/chrome/printers',
497              'httpMethod' => 'POST',
498              'parameters' => [
499                'parent' => [
500                  'location' => 'path',
501                  'type' => 'string',
502                  'required' => true,
503                ],
504              ],
505            ],'delete' => [
506              'path' => 'admin/directory/v1/{+name}',
507              'httpMethod' => 'DELETE',
508              'parameters' => [
509                'name' => [
510                  'location' => 'path',
511                  'type' => 'string',
512                  'required' => true,
513                ],
514              ],
515            ],'get' => [
516              'path' => 'admin/directory/v1/{+name}',
517              'httpMethod' => 'GET',
518              'parameters' => [
519                'name' => [
520                  'location' => 'path',
521                  'type' => 'string',
522                  'required' => true,
523                ],
524              ],
525            ],'list' => [
526              'path' => 'admin/directory/v1/{+parent}/chrome/printers',
527              'httpMethod' => 'GET',
528              'parameters' => [
529                'parent' => [
530                  'location' => 'path',
531                  'type' => 'string',
532                  'required' => true,
533                ],
534                'filter' => [
535                  'location' => 'query',
536                  'type' => 'string',
537                ],
538                'orderBy' => [
539                  'location' => 'query',
540                  'type' => 'string',
541                ],
542                'orgUnitId' => [
543                  'location' => 'query',
544                  'type' => 'string',
545                ],
546                'pageSize' => [
547                  'location' => 'query',
548                  'type' => 'integer',
549                ],
550                'pageToken' => [
551                  'location' => 'query',
552                  'type' => 'string',
553                ],
554              ],
555            ],'listPrinterModels' => [
556              'path' => 'admin/directory/v1/{+parent}/chrome/printers:listPrinterModels',
557              'httpMethod' => 'GET',
558              'parameters' => [
559                'parent' => [
560                  'location' => 'path',
561                  'type' => 'string',
562                  'required' => true,
563                ],
564                'filter' => [
565                  'location' => 'query',
566                  'type' => 'string',
567                ],
568                'pageSize' => [
569                  'location' => 'query',
570                  'type' => 'integer',
571                ],
572                'pageToken' => [
573                  'location' => 'query',
574                  'type' => 'string',
575                ],
576              ],
577            ],'patch' => [
578              'path' => 'admin/directory/v1/{+name}',
579              'httpMethod' => 'PATCH',
580              'parameters' => [
581                'name' => [
582                  'location' => 'path',
583                  'type' => 'string',
584                  'required' => true,
585                ],
586                'clearMask' => [
587                  'location' => 'query',
588                  'type' => 'string',
589                ],
590                'updateMask' => [
591                  'location' => 'query',
592                  'type' => 'string',
593                ],
594              ],
595            ],
596          ]
597        ]
598    );
599    $this->domainAliases = new Directory\Resource\DomainAliases(
600        $this,
601        $this->serviceName,
602        'domainAliases',
603        [
604          'methods' => [
605            'delete' => [
606              'path' => 'admin/directory/v1/customer/{customer}/domainaliases/{domainAliasName}',
607              'httpMethod' => 'DELETE',
608              'parameters' => [
609                'customer' => [
610                  'location' => 'path',
611                  'type' => 'string',
612                  'required' => true,
613                ],
614                'domainAliasName' => [
615                  'location' => 'path',
616                  'type' => 'string',
617                  'required' => true,
618                ],
619              ],
620            ],'get' => [
621              'path' => 'admin/directory/v1/customer/{customer}/domainaliases/{domainAliasName}',
622              'httpMethod' => 'GET',
623              'parameters' => [
624                'customer' => [
625                  'location' => 'path',
626                  'type' => 'string',
627                  'required' => true,
628                ],
629                'domainAliasName' => [
630                  'location' => 'path',
631                  'type' => 'string',
632                  'required' => true,
633                ],
634              ],
635            ],'insert' => [
636              'path' => 'admin/directory/v1/customer/{customer}/domainaliases',
637              'httpMethod' => 'POST',
638              'parameters' => [
639                'customer' => [
640                  'location' => 'path',
641                  'type' => 'string',
642                  'required' => true,
643                ],
644              ],
645            ],'list' => [
646              'path' => 'admin/directory/v1/customer/{customer}/domainaliases',
647              'httpMethod' => 'GET',
648              'parameters' => [
649                'customer' => [
650                  'location' => 'path',
651                  'type' => 'string',
652                  'required' => true,
653                ],
654                'parentDomainName' => [
655                  'location' => 'query',
656                  'type' => 'string',
657                ],
658              ],
659            ],
660          ]
661        ]
662    );
663    $this->domains = new Directory\Resource\Domains(
664        $this,
665        $this->serviceName,
666        'domains',
667        [
668          'methods' => [
669            'delete' => [
670              'path' => 'admin/directory/v1/customer/{customer}/domains/{domainName}',
671              'httpMethod' => 'DELETE',
672              'parameters' => [
673                'customer' => [
674                  'location' => 'path',
675                  'type' => 'string',
676                  'required' => true,
677                ],
678                'domainName' => [
679                  'location' => 'path',
680                  'type' => 'string',
681                  'required' => true,
682                ],
683              ],
684            ],'get' => [
685              'path' => 'admin/directory/v1/customer/{customer}/domains/{domainName}',
686              'httpMethod' => 'GET',
687              'parameters' => [
688                'customer' => [
689                  'location' => 'path',
690                  'type' => 'string',
691                  'required' => true,
692                ],
693                'domainName' => [
694                  'location' => 'path',
695                  'type' => 'string',
696                  'required' => true,
697                ],
698              ],
699            ],'insert' => [
700              'path' => 'admin/directory/v1/customer/{customer}/domains',
701              'httpMethod' => 'POST',
702              'parameters' => [
703                'customer' => [
704                  'location' => 'path',
705                  'type' => 'string',
706                  'required' => true,
707                ],
708              ],
709            ],'list' => [
710              'path' => 'admin/directory/v1/customer/{customer}/domains',
711              'httpMethod' => 'GET',
712              'parameters' => [
713                'customer' => [
714                  'location' => 'path',
715                  'type' => 'string',
716                  'required' => true,
717                ],
718              ],
719            ],
720          ]
721        ]
722    );
723    $this->groups = new Directory\Resource\Groups(
724        $this,
725        $this->serviceName,
726        'groups',
727        [
728          'methods' => [
729            'delete' => [
730              'path' => 'admin/directory/v1/groups/{groupKey}',
731              'httpMethod' => 'DELETE',
732              'parameters' => [
733                'groupKey' => [
734                  'location' => 'path',
735                  'type' => 'string',
736                  'required' => true,
737                ],
738              ],
739            ],'get' => [
740              'path' => 'admin/directory/v1/groups/{groupKey}',
741              'httpMethod' => 'GET',
742              'parameters' => [
743                'groupKey' => [
744                  'location' => 'path',
745                  'type' => 'string',
746                  'required' => true,
747                ],
748              ],
749            ],'insert' => [
750              'path' => 'admin/directory/v1/groups',
751              'httpMethod' => 'POST',
752              'parameters' => [],
753            ],'list' => [
754              'path' => 'admin/directory/v1/groups',
755              'httpMethod' => 'GET',
756              'parameters' => [
757                'customer' => [
758                  'location' => 'query',
759                  'type' => 'string',
760                ],
761                'domain' => [
762                  'location' => 'query',
763                  'type' => 'string',
764                ],
765                'maxResults' => [
766                  'location' => 'query',
767                  'type' => 'integer',
768                ],
769                'orderBy' => [
770                  'location' => 'query',
771                  'type' => 'string',
772                ],
773                'pageToken' => [
774                  'location' => 'query',
775                  'type' => 'string',
776                ],
777                'query' => [
778                  'location' => 'query',
779                  'type' => 'string',
780                ],
781                'sortOrder' => [
782                  'location' => 'query',
783                  'type' => 'string',
784                ],
785                'userKey' => [
786                  'location' => 'query',
787                  'type' => 'string',
788                ],
789              ],
790            ],'patch' => [
791              'path' => 'admin/directory/v1/groups/{groupKey}',
792              'httpMethod' => 'PATCH',
793              'parameters' => [
794                'groupKey' => [
795                  'location' => 'path',
796                  'type' => 'string',
797                  'required' => true,
798                ],
799              ],
800            ],'update' => [
801              'path' => 'admin/directory/v1/groups/{groupKey}',
802              'httpMethod' => 'PUT',
803              'parameters' => [
804                'groupKey' => [
805                  'location' => 'path',
806                  'type' => 'string',
807                  'required' => true,
808                ],
809              ],
810            ],
811          ]
812        ]
813    );
814    $this->groups_aliases = new Directory\Resource\GroupsAliases(
815        $this,
816        $this->serviceName,
817        'aliases',
818        [
819          'methods' => [
820            'delete' => [
821              'path' => 'admin/directory/v1/groups/{groupKey}/aliases/{alias}',
822              'httpMethod' => 'DELETE',
823              'parameters' => [
824                'groupKey' => [
825                  'location' => 'path',
826                  'type' => 'string',
827                  'required' => true,
828                ],
829                'alias' => [
830                  'location' => 'path',
831                  'type' => 'string',
832                  'required' => true,
833                ],
834              ],
835            ],'insert' => [
836              'path' => 'admin/directory/v1/groups/{groupKey}/aliases',
837              'httpMethod' => 'POST',
838              'parameters' => [
839                'groupKey' => [
840                  'location' => 'path',
841                  'type' => 'string',
842                  'required' => true,
843                ],
844              ],
845            ],'list' => [
846              'path' => 'admin/directory/v1/groups/{groupKey}/aliases',
847              'httpMethod' => 'GET',
848              'parameters' => [
849                'groupKey' => [
850                  'location' => 'path',
851                  'type' => 'string',
852                  'required' => true,
853                ],
854              ],
855            ],
856          ]
857        ]
858    );
859    $this->members = new Directory\Resource\Members(
860        $this,
861        $this->serviceName,
862        'members',
863        [
864          'methods' => [
865            'delete' => [
866              'path' => 'admin/directory/v1/groups/{groupKey}/members/{memberKey}',
867              'httpMethod' => 'DELETE',
868              'parameters' => [
869                'groupKey' => [
870                  'location' => 'path',
871                  'type' => 'string',
872                  'required' => true,
873                ],
874                'memberKey' => [
875                  'location' => 'path',
876                  'type' => 'string',
877                  'required' => true,
878                ],
879              ],
880            ],'get' => [
881              'path' => 'admin/directory/v1/groups/{groupKey}/members/{memberKey}',
882              'httpMethod' => 'GET',
883              'parameters' => [
884                'groupKey' => [
885                  'location' => 'path',
886                  'type' => 'string',
887                  'required' => true,
888                ],
889                'memberKey' => [
890                  'location' => 'path',
891                  'type' => 'string',
892                  'required' => true,
893                ],
894              ],
895            ],'hasMember' => [
896              'path' => 'admin/directory/v1/groups/{groupKey}/hasMember/{memberKey}',
897              'httpMethod' => 'GET',
898              'parameters' => [
899                'groupKey' => [
900                  'location' => 'path',
901                  'type' => 'string',
902                  'required' => true,
903                ],
904                'memberKey' => [
905                  'location' => 'path',
906                  'type' => 'string',
907                  'required' => true,
908                ],
909              ],
910            ],'insert' => [
911              'path' => 'admin/directory/v1/groups/{groupKey}/members',
912              'httpMethod' => 'POST',
913              'parameters' => [
914                'groupKey' => [
915                  'location' => 'path',
916                  'type' => 'string',
917                  'required' => true,
918                ],
919              ],
920            ],'list' => [
921              'path' => 'admin/directory/v1/groups/{groupKey}/members',
922              'httpMethod' => 'GET',
923              'parameters' => [
924                'groupKey' => [
925                  'location' => 'path',
926                  'type' => 'string',
927                  'required' => true,
928                ],
929                'includeDerivedMembership' => [
930                  'location' => 'query',
931                  'type' => 'boolean',
932                ],
933                'maxResults' => [
934                  'location' => 'query',
935                  'type' => 'integer',
936                ],
937                'pageToken' => [
938                  'location' => 'query',
939                  'type' => 'string',
940                ],
941                'roles' => [
942                  'location' => 'query',
943                  'type' => 'string',
944                ],
945              ],
946            ],'patch' => [
947              'path' => 'admin/directory/v1/groups/{groupKey}/members/{memberKey}',
948              'httpMethod' => 'PATCH',
949              'parameters' => [
950                'groupKey' => [
951                  'location' => 'path',
952                  'type' => 'string',
953                  'required' => true,
954                ],
955                'memberKey' => [
956                  'location' => 'path',
957                  'type' => 'string',
958                  'required' => true,
959                ],
960              ],
961            ],'update' => [
962              'path' => 'admin/directory/v1/groups/{groupKey}/members/{memberKey}',
963              'httpMethod' => 'PUT',
964              'parameters' => [
965                'groupKey' => [
966                  'location' => 'path',
967                  'type' => 'string',
968                  'required' => true,
969                ],
970                'memberKey' => [
971                  'location' => 'path',
972                  'type' => 'string',
973                  'required' => true,
974                ],
975              ],
976            ],
977          ]
978        ]
979    );
980    $this->mobiledevices = new Directory\Resource\Mobiledevices(
981        $this,
982        $this->serviceName,
983        'mobiledevices',
984        [
985          'methods' => [
986            'action' => [
987              'path' => 'admin/directory/v1/customer/{customerId}/devices/mobile/{resourceId}/action',
988              'httpMethod' => 'POST',
989              'parameters' => [
990                'customerId' => [
991                  'location' => 'path',
992                  'type' => 'string',
993                  'required' => true,
994                ],
995                'resourceId' => [
996                  'location' => 'path',
997                  'type' => 'string',
998                  'required' => true,
999                ],
1000              ],
1001            ],'delete' => [
1002              'path' => 'admin/directory/v1/customer/{customerId}/devices/mobile/{resourceId}',
1003              'httpMethod' => 'DELETE',
1004              'parameters' => [
1005                'customerId' => [
1006                  'location' => 'path',
1007                  'type' => 'string',
1008                  'required' => true,
1009                ],
1010                'resourceId' => [
1011                  'location' => 'path',
1012                  'type' => 'string',
1013                  'required' => true,
1014                ],
1015              ],
1016            ],'get' => [
1017              'path' => 'admin/directory/v1/customer/{customerId}/devices/mobile/{resourceId}',
1018              'httpMethod' => 'GET',
1019              'parameters' => [
1020                'customerId' => [
1021                  'location' => 'path',
1022                  'type' => 'string',
1023                  'required' => true,
1024                ],
1025                'resourceId' => [
1026                  'location' => 'path',
1027                  'type' => 'string',
1028                  'required' => true,
1029                ],
1030                'projection' => [
1031                  'location' => 'query',
1032                  'type' => 'string',
1033                ],
1034              ],
1035            ],'list' => [
1036              'path' => 'admin/directory/v1/customer/{customerId}/devices/mobile',
1037              'httpMethod' => 'GET',
1038              'parameters' => [
1039                'customerId' => [
1040                  'location' => 'path',
1041                  'type' => 'string',
1042                  'required' => true,
1043                ],
1044                'maxResults' => [
1045                  'location' => 'query',
1046                  'type' => 'integer',
1047                ],
1048                'orderBy' => [
1049                  'location' => 'query',
1050                  'type' => 'string',
1051                ],
1052                'pageToken' => [
1053                  'location' => 'query',
1054                  'type' => 'string',
1055                ],
1056                'projection' => [
1057                  'location' => 'query',
1058                  'type' => 'string',
1059                ],
1060                'query' => [
1061                  'location' => 'query',
1062                  'type' => 'string',
1063                ],
1064                'sortOrder' => [
1065                  'location' => 'query',
1066                  'type' => 'string',
1067                ],
1068              ],
1069            ],
1070          ]
1071        ]
1072    );
1073    $this->orgunits = new Directory\Resource\Orgunits(
1074        $this,
1075        $this->serviceName,
1076        'orgunits',
1077        [
1078          'methods' => [
1079            'delete' => [
1080              'path' => 'admin/directory/v1/customer/{customerId}/orgunits/{+orgUnitPath}',
1081              'httpMethod' => 'DELETE',
1082              'parameters' => [
1083                'customerId' => [
1084                  'location' => 'path',
1085                  'type' => 'string',
1086                  'required' => true,
1087                ],
1088                'orgUnitPath' => [
1089                  'location' => 'path',
1090                  'type' => 'string',
1091                  'required' => true,
1092                ],
1093              ],
1094            ],'get' => [
1095              'path' => 'admin/directory/v1/customer/{customerId}/orgunits/{+orgUnitPath}',
1096              'httpMethod' => 'GET',
1097              'parameters' => [
1098                'customerId' => [
1099                  'location' => 'path',
1100                  'type' => 'string',
1101                  'required' => true,
1102                ],
1103                'orgUnitPath' => [
1104                  'location' => 'path',
1105                  'type' => 'string',
1106                  'required' => true,
1107                ],
1108              ],
1109            ],'insert' => [
1110              'path' => 'admin/directory/v1/customer/{customerId}/orgunits',
1111              'httpMethod' => 'POST',
1112              'parameters' => [
1113                'customerId' => [
1114                  'location' => 'path',
1115                  'type' => 'string',
1116                  'required' => true,
1117                ],
1118              ],
1119            ],'list' => [
1120              'path' => 'admin/directory/v1/customer/{customerId}/orgunits',
1121              'httpMethod' => 'GET',
1122              'parameters' => [
1123                'customerId' => [
1124                  'location' => 'path',
1125                  'type' => 'string',
1126                  'required' => true,
1127                ],
1128                'orgUnitPath' => [
1129                  'location' => 'query',
1130                  'type' => 'string',
1131                ],
1132                'type' => [
1133                  'location' => 'query',
1134                  'type' => 'string',
1135                ],
1136              ],
1137            ],'patch' => [
1138              'path' => 'admin/directory/v1/customer/{customerId}/orgunits/{+orgUnitPath}',
1139              'httpMethod' => 'PATCH',
1140              'parameters' => [
1141                'customerId' => [
1142                  'location' => 'path',
1143                  'type' => 'string',
1144                  'required' => true,
1145                ],
1146                'orgUnitPath' => [
1147                  'location' => 'path',
1148                  'type' => 'string',
1149                  'required' => true,
1150                ],
1151              ],
1152            ],'update' => [
1153              'path' => 'admin/directory/v1/customer/{customerId}/orgunits/{+orgUnitPath}',
1154              'httpMethod' => 'PUT',
1155              'parameters' => [
1156                'customerId' => [
1157                  'location' => 'path',
1158                  'type' => 'string',
1159                  'required' => true,
1160                ],
1161                'orgUnitPath' => [
1162                  'location' => 'path',
1163                  'type' => 'string',
1164                  'required' => true,
1165                ],
1166              ],
1167            ],
1168          ]
1169        ]
1170    );
1171    $this->privileges = new Directory\Resource\Privileges(
1172        $this,
1173        $this->serviceName,
1174        'privileges',
1175        [
1176          'methods' => [
1177            'list' => [
1178              'path' => 'admin/directory/v1/customer/{customer}/roles/ALL/privileges',
1179              'httpMethod' => 'GET',
1180              'parameters' => [
1181                'customer' => [
1182                  'location' => 'path',
1183                  'type' => 'string',
1184                  'required' => true,
1185                ],
1186              ],
1187            ],
1188          ]
1189        ]
1190    );
1191    $this->resources_buildings = new Directory\Resource\ResourcesBuildings(
1192        $this,
1193        $this->serviceName,
1194        'buildings',
1195        [
1196          'methods' => [
1197            'delete' => [
1198              'path' => 'admin/directory/v1/customer/{customer}/resources/buildings/{buildingId}',
1199              'httpMethod' => 'DELETE',
1200              'parameters' => [
1201                'customer' => [
1202                  'location' => 'path',
1203                  'type' => 'string',
1204                  'required' => true,
1205                ],
1206                'buildingId' => [
1207                  'location' => 'path',
1208                  'type' => 'string',
1209                  'required' => true,
1210                ],
1211              ],
1212            ],'get' => [
1213              'path' => 'admin/directory/v1/customer/{customer}/resources/buildings/{buildingId}',
1214              'httpMethod' => 'GET',
1215              'parameters' => [
1216                'customer' => [
1217                  'location' => 'path',
1218                  'type' => 'string',
1219                  'required' => true,
1220                ],
1221                'buildingId' => [
1222                  'location' => 'path',
1223                  'type' => 'string',
1224                  'required' => true,
1225                ],
1226              ],
1227            ],'insert' => [
1228              'path' => 'admin/directory/v1/customer/{customer}/resources/buildings',
1229              'httpMethod' => 'POST',
1230              'parameters' => [
1231                'customer' => [
1232                  'location' => 'path',
1233                  'type' => 'string',
1234                  'required' => true,
1235                ],
1236                'coordinatesSource' => [
1237                  'location' => 'query',
1238                  'type' => 'string',
1239                ],
1240              ],
1241            ],'list' => [
1242              'path' => 'admin/directory/v1/customer/{customer}/resources/buildings',
1243              'httpMethod' => 'GET',
1244              'parameters' => [
1245                'customer' => [
1246                  'location' => 'path',
1247                  'type' => 'string',
1248                  'required' => true,
1249                ],
1250                'maxResults' => [
1251                  'location' => 'query',
1252                  'type' => 'integer',
1253                ],
1254                'pageToken' => [
1255                  'location' => 'query',
1256                  'type' => 'string',
1257                ],
1258              ],
1259            ],'patch' => [
1260              'path' => 'admin/directory/v1/customer/{customer}/resources/buildings/{buildingId}',
1261              'httpMethod' => 'PATCH',
1262              'parameters' => [
1263                'customer' => [
1264                  'location' => 'path',
1265                  'type' => 'string',
1266                  'required' => true,
1267                ],
1268                'buildingId' => [
1269                  'location' => 'path',
1270                  'type' => 'string',
1271                  'required' => true,
1272                ],
1273                'coordinatesSource' => [
1274                  'location' => 'query',
1275                  'type' => 'string',
1276                ],
1277              ],
1278            ],'update' => [
1279              'path' => 'admin/directory/v1/customer/{customer}/resources/buildings/{buildingId}',
1280              'httpMethod' => 'PUT',
1281              'parameters' => [
1282                'customer' => [
1283                  'location' => 'path',
1284                  'type' => 'string',
1285                  'required' => true,
1286                ],
1287                'buildingId' => [
1288                  'location' => 'path',
1289                  'type' => 'string',
1290                  'required' => true,
1291                ],
1292                'coordinatesSource' => [
1293                  'location' => 'query',
1294                  'type' => 'string',
1295                ],
1296              ],
1297            ],
1298          ]
1299        ]
1300    );
1301    $this->resources_calendars = new Directory\Resource\ResourcesCalendars(
1302        $this,
1303        $this->serviceName,
1304        'calendars',
1305        [
1306          'methods' => [
1307            'delete' => [
1308              'path' => 'admin/directory/v1/customer/{customer}/resources/calendars/{calendarResourceId}',
1309              'httpMethod' => 'DELETE',
1310              'parameters' => [
1311                'customer' => [
1312                  'location' => 'path',
1313                  'type' => 'string',
1314                  'required' => true,
1315                ],
1316                'calendarResourceId' => [
1317                  'location' => 'path',
1318                  'type' => 'string',
1319                  'required' => true,
1320                ],
1321              ],
1322            ],'get' => [
1323              'path' => 'admin/directory/v1/customer/{customer}/resources/calendars/{calendarResourceId}',
1324              'httpMethod' => 'GET',
1325              'parameters' => [
1326                'customer' => [
1327                  'location' => 'path',
1328                  'type' => 'string',
1329                  'required' => true,
1330                ],
1331                'calendarResourceId' => [
1332                  'location' => 'path',
1333                  'type' => 'string',
1334                  'required' => true,
1335                ],
1336              ],
1337            ],'insert' => [
1338              'path' => 'admin/directory/v1/customer/{customer}/resources/calendars',
1339              'httpMethod' => 'POST',
1340              'parameters' => [
1341                'customer' => [
1342                  'location' => 'path',
1343                  'type' => 'string',
1344                  'required' => true,
1345                ],
1346              ],
1347            ],'list' => [
1348              'path' => 'admin/directory/v1/customer/{customer}/resources/calendars',
1349              'httpMethod' => 'GET',
1350              'parameters' => [
1351                'customer' => [
1352                  'location' => 'path',
1353                  'type' => 'string',
1354                  'required' => true,
1355                ],
1356                'maxResults' => [
1357                  'location' => 'query',
1358                  'type' => 'integer',
1359                ],
1360                'orderBy' => [
1361                  'location' => 'query',
1362                  'type' => 'string',
1363                ],
1364                'pageToken' => [
1365                  'location' => 'query',
1366                  'type' => 'string',
1367                ],
1368                'query' => [
1369                  'location' => 'query',
1370                  'type' => 'string',
1371                ],
1372              ],
1373            ],'patch' => [
1374              'path' => 'admin/directory/v1/customer/{customer}/resources/calendars/{calendarResourceId}',
1375              'httpMethod' => 'PATCH',
1376              'parameters' => [
1377                'customer' => [
1378                  'location' => 'path',
1379                  'type' => 'string',
1380                  'required' => true,
1381                ],
1382                'calendarResourceId' => [
1383                  'location' => 'path',
1384                  'type' => 'string',
1385                  'required' => true,
1386                ],
1387              ],
1388            ],'update' => [
1389              'path' => 'admin/directory/v1/customer/{customer}/resources/calendars/{calendarResourceId}',
1390              'httpMethod' => 'PUT',
1391              'parameters' => [
1392                'customer' => [
1393                  'location' => 'path',
1394                  'type' => 'string',
1395                  'required' => true,
1396                ],
1397                'calendarResourceId' => [
1398                  'location' => 'path',
1399                  'type' => 'string',
1400                  'required' => true,
1401                ],
1402              ],
1403            ],
1404          ]
1405        ]
1406    );
1407    $this->resources_features = new Directory\Resource\ResourcesFeatures(
1408        $this,
1409        $this->serviceName,
1410        'features',
1411        [
1412          'methods' => [
1413            'delete' => [
1414              'path' => 'admin/directory/v1/customer/{customer}/resources/features/{featureKey}',
1415              'httpMethod' => 'DELETE',
1416              'parameters' => [
1417                'customer' => [
1418                  'location' => 'path',
1419                  'type' => 'string',
1420                  'required' => true,
1421                ],
1422                'featureKey' => [
1423                  'location' => 'path',
1424                  'type' => 'string',
1425                  'required' => true,
1426                ],
1427              ],
1428            ],'get' => [
1429              'path' => 'admin/directory/v1/customer/{customer}/resources/features/{featureKey}',
1430              'httpMethod' => 'GET',
1431              'parameters' => [
1432                'customer' => [
1433                  'location' => 'path',
1434                  'type' => 'string',
1435                  'required' => true,
1436                ],
1437                'featureKey' => [
1438                  'location' => 'path',
1439                  'type' => 'string',
1440                  'required' => true,
1441                ],
1442              ],
1443            ],'insert' => [
1444              'path' => 'admin/directory/v1/customer/{customer}/resources/features',
1445              'httpMethod' => 'POST',
1446              'parameters' => [
1447                'customer' => [
1448                  'location' => 'path',
1449                  'type' => 'string',
1450                  'required' => true,
1451                ],
1452              ],
1453            ],'list' => [
1454              'path' => 'admin/directory/v1/customer/{customer}/resources/features',
1455              'httpMethod' => 'GET',
1456              'parameters' => [
1457                'customer' => [
1458                  'location' => 'path',
1459                  'type' => 'string',
1460                  'required' => true,
1461                ],
1462                'maxResults' => [
1463                  'location' => 'query',
1464                  'type' => 'integer',
1465                ],
1466                'pageToken' => [
1467                  'location' => 'query',
1468                  'type' => 'string',
1469                ],
1470              ],
1471            ],'patch' => [
1472              'path' => 'admin/directory/v1/customer/{customer}/resources/features/{featureKey}',
1473              'httpMethod' => 'PATCH',
1474              'parameters' => [
1475                'customer' => [
1476                  'location' => 'path',
1477                  'type' => 'string',
1478                  'required' => true,
1479                ],
1480                'featureKey' => [
1481                  'location' => 'path',
1482                  'type' => 'string',
1483                  'required' => true,
1484                ],
1485              ],
1486            ],'rename' => [
1487              'path' => 'admin/directory/v1/customer/{customer}/resources/features/{oldName}/rename',
1488              'httpMethod' => 'POST',
1489              'parameters' => [
1490                'customer' => [
1491                  'location' => 'path',
1492                  'type' => 'string',
1493                  'required' => true,
1494                ],
1495                'oldName' => [
1496                  'location' => 'path',
1497                  'type' => 'string',
1498                  'required' => true,
1499                ],
1500              ],
1501            ],'update' => [
1502              'path' => 'admin/directory/v1/customer/{customer}/resources/features/{featureKey}',
1503              'httpMethod' => 'PUT',
1504              'parameters' => [
1505                'customer' => [
1506                  'location' => 'path',
1507                  'type' => 'string',
1508                  'required' => true,
1509                ],
1510                'featureKey' => [
1511                  'location' => 'path',
1512                  'type' => 'string',
1513                  'required' => true,
1514                ],
1515              ],
1516            ],
1517          ]
1518        ]
1519    );
1520    $this->roleAssignments = new Directory\Resource\RoleAssignments(
1521        $this,
1522        $this->serviceName,
1523        'roleAssignments',
1524        [
1525          'methods' => [
1526            'delete' => [
1527              'path' => 'admin/directory/v1/customer/{customer}/roleassignments/{roleAssignmentId}',
1528              'httpMethod' => 'DELETE',
1529              'parameters' => [
1530                'customer' => [
1531                  'location' => 'path',
1532                  'type' => 'string',
1533                  'required' => true,
1534                ],
1535                'roleAssignmentId' => [
1536                  'location' => 'path',
1537                  'type' => 'string',
1538                  'required' => true,
1539                ],
1540              ],
1541            ],'get' => [
1542              'path' => 'admin/directory/v1/customer/{customer}/roleassignments/{roleAssignmentId}',
1543              'httpMethod' => 'GET',
1544              'parameters' => [
1545                'customer' => [
1546                  'location' => 'path',
1547                  'type' => 'string',
1548                  'required' => true,
1549                ],
1550                'roleAssignmentId' => [
1551                  'location' => 'path',
1552                  'type' => 'string',
1553                  'required' => true,
1554                ],
1555              ],
1556            ],'insert' => [
1557              'path' => 'admin/directory/v1/customer/{customer}/roleassignments',
1558              'httpMethod' => 'POST',
1559              'parameters' => [
1560                'customer' => [
1561                  'location' => 'path',
1562                  'type' => 'string',
1563                  'required' => true,
1564                ],
1565              ],
1566            ],'list' => [
1567              'path' => 'admin/directory/v1/customer/{customer}/roleassignments',
1568              'httpMethod' => 'GET',
1569              'parameters' => [
1570                'customer' => [
1571                  'location' => 'path',
1572                  'type' => 'string',
1573                  'required' => true,
1574                ],
1575                'maxResults' => [
1576                  'location' => 'query',
1577                  'type' => 'integer',
1578                ],
1579                'pageToken' => [
1580                  'location' => 'query',
1581                  'type' => 'string',
1582                ],
1583                'roleId' => [
1584                  'location' => 'query',
1585                  'type' => 'string',
1586                ],
1587                'userKey' => [
1588                  'location' => 'query',
1589                  'type' => 'string',
1590                ],
1591              ],
1592            ],
1593          ]
1594        ]
1595    );
1596    $this->roles = new Directory\Resource\Roles(
1597        $this,
1598        $this->serviceName,
1599        'roles',
1600        [
1601          'methods' => [
1602            'delete' => [
1603              'path' => 'admin/directory/v1/customer/{customer}/roles/{roleId}',
1604              'httpMethod' => 'DELETE',
1605              'parameters' => [
1606                'customer' => [
1607                  'location' => 'path',
1608                  'type' => 'string',
1609                  'required' => true,
1610                ],
1611                'roleId' => [
1612                  'location' => 'path',
1613                  'type' => 'string',
1614                  'required' => true,
1615                ],
1616              ],
1617            ],'get' => [
1618              'path' => 'admin/directory/v1/customer/{customer}/roles/{roleId}',
1619              'httpMethod' => 'GET',
1620              'parameters' => [
1621                'customer' => [
1622                  'location' => 'path',
1623                  'type' => 'string',
1624                  'required' => true,
1625                ],
1626                'roleId' => [
1627                  'location' => 'path',
1628                  'type' => 'string',
1629                  'required' => true,
1630                ],
1631              ],
1632            ],'insert' => [
1633              'path' => 'admin/directory/v1/customer/{customer}/roles',
1634              'httpMethod' => 'POST',
1635              'parameters' => [
1636                'customer' => [
1637                  'location' => 'path',
1638                  'type' => 'string',
1639                  'required' => true,
1640                ],
1641              ],
1642            ],'list' => [
1643              'path' => 'admin/directory/v1/customer/{customer}/roles',
1644              'httpMethod' => 'GET',
1645              'parameters' => [
1646                'customer' => [
1647                  'location' => 'path',
1648                  'type' => 'string',
1649                  'required' => true,
1650                ],
1651                'maxResults' => [
1652                  'location' => 'query',
1653                  'type' => 'integer',
1654                ],
1655                'pageToken' => [
1656                  'location' => 'query',
1657                  'type' => 'string',
1658                ],
1659              ],
1660            ],'patch' => [
1661              'path' => 'admin/directory/v1/customer/{customer}/roles/{roleId}',
1662              'httpMethod' => 'PATCH',
1663              'parameters' => [
1664                'customer' => [
1665                  'location' => 'path',
1666                  'type' => 'string',
1667                  'required' => true,
1668                ],
1669                'roleId' => [
1670                  'location' => 'path',
1671                  'type' => 'string',
1672                  'required' => true,
1673                ],
1674              ],
1675            ],'update' => [
1676              'path' => 'admin/directory/v1/customer/{customer}/roles/{roleId}',
1677              'httpMethod' => 'PUT',
1678              'parameters' => [
1679                'customer' => [
1680                  'location' => 'path',
1681                  'type' => 'string',
1682                  'required' => true,
1683                ],
1684                'roleId' => [
1685                  'location' => 'path',
1686                  'type' => 'string',
1687                  'required' => true,
1688                ],
1689              ],
1690            ],
1691          ]
1692        ]
1693    );
1694    $this->schemas = new Directory\Resource\Schemas(
1695        $this,
1696        $this->serviceName,
1697        'schemas',
1698        [
1699          'methods' => [
1700            'delete' => [
1701              'path' => 'admin/directory/v1/customer/{customerId}/schemas/{schemaKey}',
1702              'httpMethod' => 'DELETE',
1703              'parameters' => [
1704                'customerId' => [
1705                  'location' => 'path',
1706                  'type' => 'string',
1707                  'required' => true,
1708                ],
1709                'schemaKey' => [
1710                  'location' => 'path',
1711                  'type' => 'string',
1712                  'required' => true,
1713                ],
1714              ],
1715            ],'get' => [
1716              'path' => 'admin/directory/v1/customer/{customerId}/schemas/{schemaKey}',
1717              'httpMethod' => 'GET',
1718              'parameters' => [
1719                'customerId' => [
1720                  'location' => 'path',
1721                  'type' => 'string',
1722                  'required' => true,
1723                ],
1724                'schemaKey' => [
1725                  'location' => 'path',
1726                  'type' => 'string',
1727                  'required' => true,
1728                ],
1729              ],
1730            ],'insert' => [
1731              'path' => 'admin/directory/v1/customer/{customerId}/schemas',
1732              'httpMethod' => 'POST',
1733              'parameters' => [
1734                'customerId' => [
1735                  'location' => 'path',
1736                  'type' => 'string',
1737                  'required' => true,
1738                ],
1739              ],
1740            ],'list' => [
1741              'path' => 'admin/directory/v1/customer/{customerId}/schemas',
1742              'httpMethod' => 'GET',
1743              'parameters' => [
1744                'customerId' => [
1745                  'location' => 'path',
1746                  'type' => 'string',
1747                  'required' => true,
1748                ],
1749              ],
1750            ],'patch' => [
1751              'path' => 'admin/directory/v1/customer/{customerId}/schemas/{schemaKey}',
1752              'httpMethod' => 'PATCH',
1753              'parameters' => [
1754                'customerId' => [
1755                  'location' => 'path',
1756                  'type' => 'string',
1757                  'required' => true,
1758                ],
1759                'schemaKey' => [
1760                  'location' => 'path',
1761                  'type' => 'string',
1762                  'required' => true,
1763                ],
1764              ],
1765            ],'update' => [
1766              'path' => 'admin/directory/v1/customer/{customerId}/schemas/{schemaKey}',
1767              'httpMethod' => 'PUT',
1768              'parameters' => [
1769                'customerId' => [
1770                  'location' => 'path',
1771                  'type' => 'string',
1772                  'required' => true,
1773                ],
1774                'schemaKey' => [
1775                  'location' => 'path',
1776                  'type' => 'string',
1777                  'required' => true,
1778                ],
1779              ],
1780            ],
1781          ]
1782        ]
1783    );
1784    $this->tokens = new Directory\Resource\Tokens(
1785        $this,
1786        $this->serviceName,
1787        'tokens',
1788        [
1789          'methods' => [
1790            'delete' => [
1791              'path' => 'admin/directory/v1/users/{userKey}/tokens/{clientId}',
1792              'httpMethod' => 'DELETE',
1793              'parameters' => [
1794                'userKey' => [
1795                  'location' => 'path',
1796                  'type' => 'string',
1797                  'required' => true,
1798                ],
1799                'clientId' => [
1800                  'location' => 'path',
1801                  'type' => 'string',
1802                  'required' => true,
1803                ],
1804              ],
1805            ],'get' => [
1806              'path' => 'admin/directory/v1/users/{userKey}/tokens/{clientId}',
1807              'httpMethod' => 'GET',
1808              'parameters' => [
1809                'userKey' => [
1810                  'location' => 'path',
1811                  'type' => 'string',
1812                  'required' => true,
1813                ],
1814                'clientId' => [
1815                  'location' => 'path',
1816                  'type' => 'string',
1817                  'required' => true,
1818                ],
1819              ],
1820            ],'list' => [
1821              'path' => 'admin/directory/v1/users/{userKey}/tokens',
1822              'httpMethod' => 'GET',
1823              'parameters' => [
1824                'userKey' => [
1825                  'location' => 'path',
1826                  'type' => 'string',
1827                  'required' => true,
1828                ],
1829              ],
1830            ],
1831          ]
1832        ]
1833    );
1834    $this->twoStepVerification = new Directory\Resource\TwoStepVerification(
1835        $this,
1836        $this->serviceName,
1837        'twoStepVerification',
1838        [
1839          'methods' => [
1840            'turnOff' => [
1841              'path' => 'admin/directory/v1/users/{userKey}/twoStepVerification/turnOff',
1842              'httpMethod' => 'POST',
1843              'parameters' => [
1844                'userKey' => [
1845                  'location' => 'path',
1846                  'type' => 'string',
1847                  'required' => true,
1848                ],
1849              ],
1850            ],
1851          ]
1852        ]
1853    );
1854    $this->users = new Directory\Resource\Users(
1855        $this,
1856        $this->serviceName,
1857        'users',
1858        [
1859          'methods' => [
1860            'delete' => [
1861              'path' => 'admin/directory/v1/users/{userKey}',
1862              'httpMethod' => 'DELETE',
1863              'parameters' => [
1864                'userKey' => [
1865                  'location' => 'path',
1866                  'type' => 'string',
1867                  'required' => true,
1868                ],
1869              ],
1870            ],'get' => [
1871              'path' => 'admin/directory/v1/users/{userKey}',
1872              'httpMethod' => 'GET',
1873              'parameters' => [
1874                'userKey' => [
1875                  'location' => 'path',
1876                  'type' => 'string',
1877                  'required' => true,
1878                ],
1879                'customFieldMask' => [
1880                  'location' => 'query',
1881                  'type' => 'string',
1882                ],
1883                'projection' => [
1884                  'location' => 'query',
1885                  'type' => 'string',
1886                ],
1887                'viewType' => [
1888                  'location' => 'query',
1889                  'type' => 'string',
1890                ],
1891              ],
1892            ],'insert' => [
1893              'path' => 'admin/directory/v1/users',
1894              'httpMethod' => 'POST',
1895              'parameters' => [],
1896            ],'list' => [
1897              'path' => 'admin/directory/v1/users',
1898              'httpMethod' => 'GET',
1899              'parameters' => [
1900                'customFieldMask' => [
1901                  'location' => 'query',
1902                  'type' => 'string',
1903                ],
1904                'customer' => [
1905                  'location' => 'query',
1906                  'type' => 'string',
1907                ],
1908                'domain' => [
1909                  'location' => 'query',
1910                  'type' => 'string',
1911                ],
1912                'event' => [
1913                  'location' => 'query',
1914                  'type' => 'string',
1915                ],
1916                'maxResults' => [
1917                  'location' => 'query',
1918                  'type' => 'integer',
1919                ],
1920                'orderBy' => [
1921                  'location' => 'query',
1922                  'type' => 'string',
1923                ],
1924                'pageToken' => [
1925                  'location' => 'query',
1926                  'type' => 'string',
1927                ],
1928                'projection' => [
1929                  'location' => 'query',
1930                  'type' => 'string',
1931                ],
1932                'query' => [
1933                  'location' => 'query',
1934                  'type' => 'string',
1935                ],
1936                'showDeleted' => [
1937                  'location' => 'query',
1938                  'type' => 'string',
1939                ],
1940                'sortOrder' => [
1941                  'location' => 'query',
1942                  'type' => 'string',
1943                ],
1944                'viewType' => [
1945                  'location' => 'query',
1946                  'type' => 'string',
1947                ],
1948              ],
1949            ],'makeAdmin' => [
1950              'path' => 'admin/directory/v1/users/{userKey}/makeAdmin',
1951              'httpMethod' => 'POST',
1952              'parameters' => [
1953                'userKey' => [
1954                  'location' => 'path',
1955                  'type' => 'string',
1956                  'required' => true,
1957                ],
1958              ],
1959            ],'patch' => [
1960              'path' => 'admin/directory/v1/users/{userKey}',
1961              'httpMethod' => 'PATCH',
1962              'parameters' => [
1963                'userKey' => [
1964                  'location' => 'path',
1965                  'type' => 'string',
1966                  'required' => true,
1967                ],
1968              ],
1969            ],'signOut' => [
1970              'path' => 'admin/directory/v1/users/{userKey}/signOut',
1971              'httpMethod' => 'POST',
1972              'parameters' => [
1973                'userKey' => [
1974                  'location' => 'path',
1975                  'type' => 'string',
1976                  'required' => true,
1977                ],
1978              ],
1979            ],'undelete' => [
1980              'path' => 'admin/directory/v1/users/{userKey}/undelete',
1981              'httpMethod' => 'POST',
1982              'parameters' => [
1983                'userKey' => [
1984                  'location' => 'path',
1985                  'type' => 'string',
1986                  'required' => true,
1987                ],
1988              ],
1989            ],'update' => [
1990              'path' => 'admin/directory/v1/users/{userKey}',
1991              'httpMethod' => 'PUT',
1992              'parameters' => [
1993                'userKey' => [
1994                  'location' => 'path',
1995                  'type' => 'string',
1996                  'required' => true,
1997                ],
1998              ],
1999            ],'watch' => [
2000              'path' => 'admin/directory/v1/users/watch',
2001              'httpMethod' => 'POST',
2002              'parameters' => [
2003                'customFieldMask' => [
2004                  'location' => 'query',
2005                  'type' => 'string',
2006                ],
2007                'customer' => [
2008                  'location' => 'query',
2009                  'type' => 'string',
2010                ],
2011                'domain' => [
2012                  'location' => 'query',
2013                  'type' => 'string',
2014                ],
2015                'event' => [
2016                  'location' => 'query',
2017                  'type' => 'string',
2018                ],
2019                'maxResults' => [
2020                  'location' => 'query',
2021                  'type' => 'integer',
2022                ],
2023                'orderBy' => [
2024                  'location' => 'query',
2025                  'type' => 'string',
2026                ],
2027                'pageToken' => [
2028                  'location' => 'query',
2029                  'type' => 'string',
2030                ],
2031                'projection' => [
2032                  'location' => 'query',
2033                  'type' => 'string',
2034                ],
2035                'query' => [
2036                  'location' => 'query',
2037                  'type' => 'string',
2038                ],
2039                'showDeleted' => [
2040                  'location' => 'query',
2041                  'type' => 'string',
2042                ],
2043                'sortOrder' => [
2044                  'location' => 'query',
2045                  'type' => 'string',
2046                ],
2047                'viewType' => [
2048                  'location' => 'query',
2049                  'type' => 'string',
2050                ],
2051              ],
2052            ],
2053          ]
2054        ]
2055    );
2056    $this->users_aliases = new Directory\Resource\UsersAliases(
2057        $this,
2058        $this->serviceName,
2059        'aliases',
2060        [
2061          'methods' => [
2062            'delete' => [
2063              'path' => 'admin/directory/v1/users/{userKey}/aliases/{alias}',
2064              'httpMethod' => 'DELETE',
2065              'parameters' => [
2066                'userKey' => [
2067                  'location' => 'path',
2068                  'type' => 'string',
2069                  'required' => true,
2070                ],
2071                'alias' => [
2072                  'location' => 'path',
2073                  'type' => 'string',
2074                  'required' => true,
2075                ],
2076              ],
2077            ],'insert' => [
2078              'path' => 'admin/directory/v1/users/{userKey}/aliases',
2079              'httpMethod' => 'POST',
2080              'parameters' => [
2081                'userKey' => [
2082                  'location' => 'path',
2083                  'type' => 'string',
2084                  'required' => true,
2085                ],
2086              ],
2087            ],'list' => [
2088              'path' => 'admin/directory/v1/users/{userKey}/aliases',
2089              'httpMethod' => 'GET',
2090              'parameters' => [
2091                'userKey' => [
2092                  'location' => 'path',
2093                  'type' => 'string',
2094                  'required' => true,
2095                ],
2096                'event' => [
2097                  'location' => 'query',
2098                  'type' => 'string',
2099                ],
2100              ],
2101            ],'watch' => [
2102              'path' => 'admin/directory/v1/users/{userKey}/aliases/watch',
2103              'httpMethod' => 'POST',
2104              'parameters' => [
2105                'userKey' => [
2106                  'location' => 'path',
2107                  'type' => 'string',
2108                  'required' => true,
2109                ],
2110                'event' => [
2111                  'location' => 'query',
2112                  'type' => 'string',
2113                ],
2114              ],
2115            ],
2116          ]
2117        ]
2118    );
2119    $this->users_photos = new Directory\Resource\UsersPhotos(
2120        $this,
2121        $this->serviceName,
2122        'photos',
2123        [
2124          'methods' => [
2125            'delete' => [
2126              'path' => 'admin/directory/v1/users/{userKey}/photos/thumbnail',
2127              'httpMethod' => 'DELETE',
2128              'parameters' => [
2129                'userKey' => [
2130                  'location' => 'path',
2131                  'type' => 'string',
2132                  'required' => true,
2133                ],
2134              ],
2135            ],'get' => [
2136              'path' => 'admin/directory/v1/users/{userKey}/photos/thumbnail',
2137              'httpMethod' => 'GET',
2138              'parameters' => [
2139                'userKey' => [
2140                  'location' => 'path',
2141                  'type' => 'string',
2142                  'required' => true,
2143                ],
2144              ],
2145            ],'patch' => [
2146              'path' => 'admin/directory/v1/users/{userKey}/photos/thumbnail',
2147              'httpMethod' => 'PATCH',
2148              'parameters' => [
2149                'userKey' => [
2150                  'location' => 'path',
2151                  'type' => 'string',
2152                  'required' => true,
2153                ],
2154              ],
2155            ],'update' => [
2156              'path' => 'admin/directory/v1/users/{userKey}/photos/thumbnail',
2157              'httpMethod' => 'PUT',
2158              'parameters' => [
2159                'userKey' => [
2160                  'location' => 'path',
2161                  'type' => 'string',
2162                  'required' => true,
2163                ],
2164              ],
2165            ],
2166          ]
2167        ]
2168    );
2169    $this->verificationCodes = new Directory\Resource\VerificationCodes(
2170        $this,
2171        $this->serviceName,
2172        'verificationCodes',
2173        [
2174          'methods' => [
2175            'generate' => [
2176              'path' => 'admin/directory/v1/users/{userKey}/verificationCodes/generate',
2177              'httpMethod' => 'POST',
2178              'parameters' => [
2179                'userKey' => [
2180                  'location' => 'path',
2181                  'type' => 'string',
2182                  'required' => true,
2183                ],
2184              ],
2185            ],'invalidate' => [
2186              'path' => 'admin/directory/v1/users/{userKey}/verificationCodes/invalidate',
2187              'httpMethod' => 'POST',
2188              'parameters' => [
2189                'userKey' => [
2190                  'location' => 'path',
2191                  'type' => 'string',
2192                  'required' => true,
2193                ],
2194              ],
2195            ],'list' => [
2196              'path' => 'admin/directory/v1/users/{userKey}/verificationCodes',
2197              'httpMethod' => 'GET',
2198              'parameters' => [
2199                'userKey' => [
2200                  'location' => 'path',
2201                  'type' => 'string',
2202                  'required' => true,
2203                ],
2204              ],
2205            ],
2206          ]
2207        ]
2208    );
2209  }
2210}
2211
2212// Adding a class alias for backwards compatibility with the previous class name.
2213class_alias(Directory::class, 'Google_Service_Directory');
2214