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\AndroidEnterprise\Resource;
19
20use Google\Service\AndroidEnterprise\AuthenticationToken;
21use Google\Service\AndroidEnterprise\ProductSet;
22use Google\Service\AndroidEnterprise\User;
23use Google\Service\AndroidEnterprise\UsersListResponse;
24
25/**
26 * The "users" collection of methods.
27 * Typical usage is:
28 *  <code>
29 *   $androidenterpriseService = new Google\Service\AndroidEnterprise(...);
30 *   $users = $androidenterpriseService->users;
31 *  </code>
32 */
33class Users extends \Google\Service\Resource
34{
35  /**
36   * Deleted an EMM-managed user. (users.delete)
37   *
38   * @param string $enterpriseId The ID of the enterprise.
39   * @param string $userId The ID of the user.
40   * @param array $optParams Optional parameters.
41   */
42  public function delete($enterpriseId, $userId, $optParams = [])
43  {
44    $params = ['enterpriseId' => $enterpriseId, 'userId' => $userId];
45    $params = array_merge($params, $optParams);
46    return $this->call('delete', [$params]);
47  }
48  /**
49   * Generates an authentication token which the device policy client can use to
50   * provision the given EMM-managed user account on a device. The generated token
51   * is single-use and expires after a few minutes. You can provision a maximum of
52   * 10 devices per user. This call only works with EMM-managed accounts.
53   * (users.generateAuthenticationToken)
54   *
55   * @param string $enterpriseId The ID of the enterprise.
56   * @param string $userId The ID of the user.
57   * @param array $optParams Optional parameters.
58   * @return AuthenticationToken
59   */
60  public function generateAuthenticationToken($enterpriseId, $userId, $optParams = [])
61  {
62    $params = ['enterpriseId' => $enterpriseId, 'userId' => $userId];
63    $params = array_merge($params, $optParams);
64    return $this->call('generateAuthenticationToken', [$params], AuthenticationToken::class);
65  }
66  /**
67   * Retrieves a user's details. (users.get)
68   *
69   * @param string $enterpriseId The ID of the enterprise.
70   * @param string $userId The ID of the user.
71   * @param array $optParams Optional parameters.
72   * @return User
73   */
74  public function get($enterpriseId, $userId, $optParams = [])
75  {
76    $params = ['enterpriseId' => $enterpriseId, 'userId' => $userId];
77    $params = array_merge($params, $optParams);
78    return $this->call('get', [$params], User::class);
79  }
80  /**
81   * Retrieves the set of products a user is entitled to access.
82   * (users.getAvailableProductSet)
83   *
84   * @param string $enterpriseId The ID of the enterprise.
85   * @param string $userId The ID of the user.
86   * @param array $optParams Optional parameters.
87   * @return ProductSet
88   */
89  public function getAvailableProductSet($enterpriseId, $userId, $optParams = [])
90  {
91    $params = ['enterpriseId' => $enterpriseId, 'userId' => $userId];
92    $params = array_merge($params, $optParams);
93    return $this->call('getAvailableProductSet', [$params], ProductSet::class);
94  }
95  /**
96   * Creates a new EMM-managed user. The Users resource passed in the body of the
97   * request should include an accountIdentifier and an accountType. If a
98   * corresponding user already exists with the same account identifier, the user
99   * will be updated with the resource. In this case only the displayName field
100   * can be changed. (users.insert)
101   *
102   * @param string $enterpriseId The ID of the enterprise.
103   * @param User $postBody
104   * @param array $optParams Optional parameters.
105   * @return User
106   */
107  public function insert($enterpriseId, User $postBody, $optParams = [])
108  {
109    $params = ['enterpriseId' => $enterpriseId, 'postBody' => $postBody];
110    $params = array_merge($params, $optParams);
111    return $this->call('insert', [$params], User::class);
112  }
113  /**
114   * Looks up a user by primary email address. This is only supported for Google-
115   * managed users. Lookup of the id is not needed for EMM-managed users because
116   * the id is already returned in the result of the Users.insert call.
117   * (users.listUsers)
118   *
119   * @param string $enterpriseId The ID of the enterprise.
120   * @param string $email Required. The exact primary email address of the user to
121   * look up.
122   * @param array $optParams Optional parameters.
123   * @return UsersListResponse
124   */
125  public function listUsers($enterpriseId, $email, $optParams = [])
126  {
127    $params = ['enterpriseId' => $enterpriseId, 'email' => $email];
128    $params = array_merge($params, $optParams);
129    return $this->call('list', [$params], UsersListResponse::class);
130  }
131  /**
132   * Revokes access to all devices currently provisioned to the user. The user
133   * will no longer be able to use the managed Play store on any of their managed
134   * devices. This call only works with EMM-managed accounts.
135   * (users.revokeDeviceAccess)
136   *
137   * @param string $enterpriseId The ID of the enterprise.
138   * @param string $userId The ID of the user.
139   * @param array $optParams Optional parameters.
140   */
141  public function revokeDeviceAccess($enterpriseId, $userId, $optParams = [])
142  {
143    $params = ['enterpriseId' => $enterpriseId, 'userId' => $userId];
144    $params = array_merge($params, $optParams);
145    return $this->call('revokeDeviceAccess', [$params]);
146  }
147  /**
148   * Modifies the set of products that a user is entitled to access (referred to
149   * as *whitelisted* products). Only products that are approved or products that
150   * were previously approved (products with revoked approval) can be whitelisted.
151   * (users.setAvailableProductSet)
152   *
153   * @param string $enterpriseId The ID of the enterprise.
154   * @param string $userId The ID of the user.
155   * @param ProductSet $postBody
156   * @param array $optParams Optional parameters.
157   * @return ProductSet
158   */
159  public function setAvailableProductSet($enterpriseId, $userId, ProductSet $postBody, $optParams = [])
160  {
161    $params = ['enterpriseId' => $enterpriseId, 'userId' => $userId, 'postBody' => $postBody];
162    $params = array_merge($params, $optParams);
163    return $this->call('setAvailableProductSet', [$params], ProductSet::class);
164  }
165  /**
166   * Updates the details of an EMM-managed user. Can be used with EMM-managed
167   * users only (not Google managed users). Pass the new details in the Users
168   * resource in the request body. Only the displayName field can be changed.
169   * Other fields must either be unset or have the currently active value.
170   * (users.update)
171   *
172   * @param string $enterpriseId The ID of the enterprise.
173   * @param string $userId The ID of the user.
174   * @param User $postBody
175   * @param array $optParams Optional parameters.
176   * @return User
177   */
178  public function update($enterpriseId, $userId, User $postBody, $optParams = [])
179  {
180    $params = ['enterpriseId' => $enterpriseId, 'userId' => $userId, 'postBody' => $postBody];
181    $params = array_merge($params, $optParams);
182    return $this->call('update', [$params], User::class);
183  }
184}
185
186// Adding a class alias for backwards compatibility with the previous class name.
187class_alias(Users::class, 'Google_Service_AndroidEnterprise_Resource_Users');
188