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 CloudTalentSolution (v4).
24 *
25 * <p>
26 * Cloud Talent Solution provides the capability to create, read, update, and
27 * delete job postings, as well as search jobs based on keywords and filters.</p>
28 *
29 * <p>
30 * For more information about this service, see the API
31 * <a href="https://cloud.google.com/talent-solution/job-search/docs/" target="_blank">Documentation</a>
32 * </p>
33 *
34 * @author Google, Inc.
35 */
36class CloudTalentSolution extends \Google\Service
37{
38  /** See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.. */
39  const CLOUD_PLATFORM =
40      "https://www.googleapis.com/auth/cloud-platform";
41  /** Manage job postings. */
42  const JOBS =
43      "https://www.googleapis.com/auth/jobs";
44
45  public $projects_operations;
46  public $projects_tenants;
47  public $projects_tenants_clientEvents;
48  public $projects_tenants_companies;
49  public $projects_tenants_jobs;
50
51  /**
52   * Constructs the internal representation of the CloudTalentSolution service.
53   *
54   * @param Client|array $clientOrConfig The client used to deliver requests, or a
55   *                                     config array to pass to a new Client instance.
56   * @param string $rootUrl The root URL used for requests to the service.
57   */
58  public function __construct($clientOrConfig = [], $rootUrl = null)
59  {
60    parent::__construct($clientOrConfig);
61    $this->rootUrl = $rootUrl ?: 'https://jobs.googleapis.com/';
62    $this->servicePath = '';
63    $this->batchPath = 'batch';
64    $this->version = 'v4';
65    $this->serviceName = 'jobs';
66
67    $this->projects_operations = new CloudTalentSolution\Resource\ProjectsOperations(
68        $this,
69        $this->serviceName,
70        'operations',
71        [
72          'methods' => [
73            'get' => [
74              'path' => 'v4/{+name}',
75              'httpMethod' => 'GET',
76              'parameters' => [
77                'name' => [
78                  'location' => 'path',
79                  'type' => 'string',
80                  'required' => true,
81                ],
82              ],
83            ],
84          ]
85        ]
86    );
87    $this->projects_tenants = new CloudTalentSolution\Resource\ProjectsTenants(
88        $this,
89        $this->serviceName,
90        'tenants',
91        [
92          'methods' => [
93            'completeQuery' => [
94              'path' => 'v4/{+tenant}:completeQuery',
95              'httpMethod' => 'GET',
96              'parameters' => [
97                'tenant' => [
98                  'location' => 'path',
99                  'type' => 'string',
100                  'required' => true,
101                ],
102                'company' => [
103                  'location' => 'query',
104                  'type' => 'string',
105                ],
106                'languageCodes' => [
107                  'location' => 'query',
108                  'type' => 'string',
109                  'repeated' => true,
110                ],
111                'pageSize' => [
112                  'location' => 'query',
113                  'type' => 'integer',
114                ],
115                'query' => [
116                  'location' => 'query',
117                  'type' => 'string',
118                ],
119                'scope' => [
120                  'location' => 'query',
121                  'type' => 'string',
122                ],
123                'type' => [
124                  'location' => 'query',
125                  'type' => 'string',
126                ],
127              ],
128            ],'create' => [
129              'path' => 'v4/{+parent}/tenants',
130              'httpMethod' => 'POST',
131              'parameters' => [
132                'parent' => [
133                  'location' => 'path',
134                  'type' => 'string',
135                  'required' => true,
136                ],
137              ],
138            ],'delete' => [
139              'path' => 'v4/{+name}',
140              'httpMethod' => 'DELETE',
141              'parameters' => [
142                'name' => [
143                  'location' => 'path',
144                  'type' => 'string',
145                  'required' => true,
146                ],
147              ],
148            ],'get' => [
149              'path' => 'v4/{+name}',
150              'httpMethod' => 'GET',
151              'parameters' => [
152                'name' => [
153                  'location' => 'path',
154                  'type' => 'string',
155                  'required' => true,
156                ],
157              ],
158            ],'list' => [
159              'path' => 'v4/{+parent}/tenants',
160              'httpMethod' => 'GET',
161              'parameters' => [
162                'parent' => [
163                  'location' => 'path',
164                  'type' => 'string',
165                  'required' => true,
166                ],
167                'pageSize' => [
168                  'location' => 'query',
169                  'type' => 'integer',
170                ],
171                'pageToken' => [
172                  'location' => 'query',
173                  'type' => 'string',
174                ],
175              ],
176            ],'patch' => [
177              'path' => 'v4/{+name}',
178              'httpMethod' => 'PATCH',
179              'parameters' => [
180                'name' => [
181                  'location' => 'path',
182                  'type' => 'string',
183                  'required' => true,
184                ],
185                'updateMask' => [
186                  'location' => 'query',
187                  'type' => 'string',
188                ],
189              ],
190            ],
191          ]
192        ]
193    );
194    $this->projects_tenants_clientEvents = new CloudTalentSolution\Resource\ProjectsTenantsClientEvents(
195        $this,
196        $this->serviceName,
197        'clientEvents',
198        [
199          'methods' => [
200            'create' => [
201              'path' => 'v4/{+parent}/clientEvents',
202              'httpMethod' => 'POST',
203              'parameters' => [
204                'parent' => [
205                  'location' => 'path',
206                  'type' => 'string',
207                  'required' => true,
208                ],
209              ],
210            ],
211          ]
212        ]
213    );
214    $this->projects_tenants_companies = new CloudTalentSolution\Resource\ProjectsTenantsCompanies(
215        $this,
216        $this->serviceName,
217        'companies',
218        [
219          'methods' => [
220            'create' => [
221              'path' => 'v4/{+parent}/companies',
222              'httpMethod' => 'POST',
223              'parameters' => [
224                'parent' => [
225                  'location' => 'path',
226                  'type' => 'string',
227                  'required' => true,
228                ],
229              ],
230            ],'delete' => [
231              'path' => 'v4/{+name}',
232              'httpMethod' => 'DELETE',
233              'parameters' => [
234                'name' => [
235                  'location' => 'path',
236                  'type' => 'string',
237                  'required' => true,
238                ],
239              ],
240            ],'get' => [
241              'path' => 'v4/{+name}',
242              'httpMethod' => 'GET',
243              'parameters' => [
244                'name' => [
245                  'location' => 'path',
246                  'type' => 'string',
247                  'required' => true,
248                ],
249              ],
250            ],'list' => [
251              'path' => 'v4/{+parent}/companies',
252              'httpMethod' => 'GET',
253              'parameters' => [
254                'parent' => [
255                  'location' => 'path',
256                  'type' => 'string',
257                  'required' => true,
258                ],
259                'pageSize' => [
260                  'location' => 'query',
261                  'type' => 'integer',
262                ],
263                'pageToken' => [
264                  'location' => 'query',
265                  'type' => 'string',
266                ],
267                'requireOpenJobs' => [
268                  'location' => 'query',
269                  'type' => 'boolean',
270                ],
271              ],
272            ],'patch' => [
273              'path' => 'v4/{+name}',
274              'httpMethod' => 'PATCH',
275              'parameters' => [
276                'name' => [
277                  'location' => 'path',
278                  'type' => 'string',
279                  'required' => true,
280                ],
281                'updateMask' => [
282                  'location' => 'query',
283                  'type' => 'string',
284                ],
285              ],
286            ],
287          ]
288        ]
289    );
290    $this->projects_tenants_jobs = new CloudTalentSolution\Resource\ProjectsTenantsJobs(
291        $this,
292        $this->serviceName,
293        'jobs',
294        [
295          'methods' => [
296            'batchCreate' => [
297              'path' => 'v4/{+parent}/jobs:batchCreate',
298              'httpMethod' => 'POST',
299              'parameters' => [
300                'parent' => [
301                  'location' => 'path',
302                  'type' => 'string',
303                  'required' => true,
304                ],
305              ],
306            ],'batchDelete' => [
307              'path' => 'v4/{+parent}/jobs:batchDelete',
308              'httpMethod' => 'POST',
309              'parameters' => [
310                'parent' => [
311                  'location' => 'path',
312                  'type' => 'string',
313                  'required' => true,
314                ],
315              ],
316            ],'batchUpdate' => [
317              'path' => 'v4/{+parent}/jobs:batchUpdate',
318              'httpMethod' => 'POST',
319              'parameters' => [
320                'parent' => [
321                  'location' => 'path',
322                  'type' => 'string',
323                  'required' => true,
324                ],
325              ],
326            ],'create' => [
327              'path' => 'v4/{+parent}/jobs',
328              'httpMethod' => 'POST',
329              'parameters' => [
330                'parent' => [
331                  'location' => 'path',
332                  'type' => 'string',
333                  'required' => true,
334                ],
335              ],
336            ],'delete' => [
337              'path' => 'v4/{+name}',
338              'httpMethod' => 'DELETE',
339              'parameters' => [
340                'name' => [
341                  'location' => 'path',
342                  'type' => 'string',
343                  'required' => true,
344                ],
345              ],
346            ],'get' => [
347              'path' => 'v4/{+name}',
348              'httpMethod' => 'GET',
349              'parameters' => [
350                'name' => [
351                  'location' => 'path',
352                  'type' => 'string',
353                  'required' => true,
354                ],
355              ],
356            ],'list' => [
357              'path' => 'v4/{+parent}/jobs',
358              'httpMethod' => 'GET',
359              'parameters' => [
360                'parent' => [
361                  'location' => 'path',
362                  'type' => 'string',
363                  'required' => true,
364                ],
365                'filter' => [
366                  'location' => 'query',
367                  'type' => 'string',
368                ],
369                'jobView' => [
370                  'location' => 'query',
371                  'type' => 'string',
372                ],
373                'pageSize' => [
374                  'location' => 'query',
375                  'type' => 'integer',
376                ],
377                'pageToken' => [
378                  'location' => 'query',
379                  'type' => 'string',
380                ],
381              ],
382            ],'patch' => [
383              'path' => 'v4/{+name}',
384              'httpMethod' => 'PATCH',
385              'parameters' => [
386                'name' => [
387                  'location' => 'path',
388                  'type' => 'string',
389                  'required' => true,
390                ],
391                'updateMask' => [
392                  'location' => 'query',
393                  'type' => 'string',
394                ],
395              ],
396            ],'search' => [
397              'path' => 'v4/{+parent}/jobs:search',
398              'httpMethod' => 'POST',
399              'parameters' => [
400                'parent' => [
401                  'location' => 'path',
402                  'type' => 'string',
403                  'required' => true,
404                ],
405              ],
406            ],'searchForAlert' => [
407              'path' => 'v4/{+parent}/jobs:searchForAlert',
408              'httpMethod' => 'POST',
409              'parameters' => [
410                'parent' => [
411                  'location' => 'path',
412                  'type' => 'string',
413                  'required' => true,
414                ],
415              ],
416            ],
417          ]
418        ]
419    );
420  }
421}
422
423// Adding a class alias for backwards compatibility with the previous class name.
424class_alias(CloudTalentSolution::class, 'Google_Service_CloudTalentSolution');
425