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 CloudDomains (v1).
24 *
25 * <p>
26 * Enables management and configuration of domain names.</p>
27 *
28 * <p>
29 * For more information about this service, see the API
30 * <a href="https://cloud.google.com/domains/" target="_blank">Documentation</a>
31 * </p>
32 *
33 * @author Google, Inc.
34 */
35class CloudDomains extends \Google\Service
36{
37  /** See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.. */
38  const CLOUD_PLATFORM =
39      "https://www.googleapis.com/auth/cloud-platform";
40
41  public $projects_locations;
42  public $projects_locations_operations;
43  public $projects_locations_registrations;
44
45  /**
46   * Constructs the internal representation of the CloudDomains service.
47   *
48   * @param Client|array $clientOrConfig The client used to deliver requests, or a
49   *                                     config array to pass to a new Client instance.
50   * @param string $rootUrl The root URL used for requests to the service.
51   */
52  public function __construct($clientOrConfig = [], $rootUrl = null)
53  {
54    parent::__construct($clientOrConfig);
55    $this->rootUrl = $rootUrl ?: 'https://domains.googleapis.com/';
56    $this->servicePath = '';
57    $this->batchPath = 'batch';
58    $this->version = 'v1';
59    $this->serviceName = 'domains';
60
61    $this->projects_locations = new CloudDomains\Resource\ProjectsLocations(
62        $this,
63        $this->serviceName,
64        'locations',
65        [
66          'methods' => [
67            'get' => [
68              'path' => 'v1/{+name}',
69              'httpMethod' => 'GET',
70              'parameters' => [
71                'name' => [
72                  'location' => 'path',
73                  'type' => 'string',
74                  'required' => true,
75                ],
76              ],
77            ],'list' => [
78              'path' => 'v1/{+name}/locations',
79              'httpMethod' => 'GET',
80              'parameters' => [
81                'name' => [
82                  'location' => 'path',
83                  'type' => 'string',
84                  'required' => true,
85                ],
86                'filter' => [
87                  'location' => 'query',
88                  'type' => 'string',
89                ],
90                'pageSize' => [
91                  'location' => 'query',
92                  'type' => 'integer',
93                ],
94                'pageToken' => [
95                  'location' => 'query',
96                  'type' => 'string',
97                ],
98              ],
99            ],
100          ]
101        ]
102    );
103    $this->projects_locations_operations = new CloudDomains\Resource\ProjectsLocationsOperations(
104        $this,
105        $this->serviceName,
106        'operations',
107        [
108          'methods' => [
109            'get' => [
110              'path' => 'v1/{+name}',
111              'httpMethod' => 'GET',
112              'parameters' => [
113                'name' => [
114                  'location' => 'path',
115                  'type' => 'string',
116                  'required' => true,
117                ],
118              ],
119            ],'list' => [
120              'path' => 'v1/{+name}/operations',
121              'httpMethod' => 'GET',
122              'parameters' => [
123                'name' => [
124                  'location' => 'path',
125                  'type' => 'string',
126                  'required' => true,
127                ],
128                'filter' => [
129                  'location' => 'query',
130                  'type' => 'string',
131                ],
132                'pageSize' => [
133                  'location' => 'query',
134                  'type' => 'integer',
135                ],
136                'pageToken' => [
137                  'location' => 'query',
138                  'type' => 'string',
139                ],
140              ],
141            ],
142          ]
143        ]
144    );
145    $this->projects_locations_registrations = new CloudDomains\Resource\ProjectsLocationsRegistrations(
146        $this,
147        $this->serviceName,
148        'registrations',
149        [
150          'methods' => [
151            'configureContactSettings' => [
152              'path' => 'v1/{+registration}:configureContactSettings',
153              'httpMethod' => 'POST',
154              'parameters' => [
155                'registration' => [
156                  'location' => 'path',
157                  'type' => 'string',
158                  'required' => true,
159                ],
160              ],
161            ],'configureDnsSettings' => [
162              'path' => 'v1/{+registration}:configureDnsSettings',
163              'httpMethod' => 'POST',
164              'parameters' => [
165                'registration' => [
166                  'location' => 'path',
167                  'type' => 'string',
168                  'required' => true,
169                ],
170              ],
171            ],'configureManagementSettings' => [
172              'path' => 'v1/{+registration}:configureManagementSettings',
173              'httpMethod' => 'POST',
174              'parameters' => [
175                'registration' => [
176                  'location' => 'path',
177                  'type' => 'string',
178                  'required' => true,
179                ],
180              ],
181            ],'delete' => [
182              'path' => 'v1/{+name}',
183              'httpMethod' => 'DELETE',
184              'parameters' => [
185                'name' => [
186                  'location' => 'path',
187                  'type' => 'string',
188                  'required' => true,
189                ],
190              ],
191            ],'export' => [
192              'path' => 'v1/{+name}:export',
193              'httpMethod' => 'POST',
194              'parameters' => [
195                'name' => [
196                  'location' => 'path',
197                  'type' => 'string',
198                  'required' => true,
199                ],
200              ],
201            ],'get' => [
202              'path' => 'v1/{+name}',
203              'httpMethod' => 'GET',
204              'parameters' => [
205                'name' => [
206                  'location' => 'path',
207                  'type' => 'string',
208                  'required' => true,
209                ],
210              ],
211            ],'getIamPolicy' => [
212              'path' => 'v1/{+resource}:getIamPolicy',
213              'httpMethod' => 'GET',
214              'parameters' => [
215                'resource' => [
216                  'location' => 'path',
217                  'type' => 'string',
218                  'required' => true,
219                ],
220                'options.requestedPolicyVersion' => [
221                  'location' => 'query',
222                  'type' => 'integer',
223                ],
224              ],
225            ],'list' => [
226              'path' => 'v1/{+parent}/registrations',
227              'httpMethod' => 'GET',
228              'parameters' => [
229                'parent' => [
230                  'location' => 'path',
231                  'type' => 'string',
232                  'required' => true,
233                ],
234                'filter' => [
235                  'location' => 'query',
236                  'type' => 'string',
237                ],
238                'pageSize' => [
239                  'location' => 'query',
240                  'type' => 'integer',
241                ],
242                'pageToken' => [
243                  'location' => 'query',
244                  'type' => 'string',
245                ],
246              ],
247            ],'patch' => [
248              'path' => 'v1/{+name}',
249              'httpMethod' => 'PATCH',
250              'parameters' => [
251                'name' => [
252                  'location' => 'path',
253                  'type' => 'string',
254                  'required' => true,
255                ],
256                'updateMask' => [
257                  'location' => 'query',
258                  'type' => 'string',
259                ],
260              ],
261            ],'register' => [
262              'path' => 'v1/{+parent}/registrations:register',
263              'httpMethod' => 'POST',
264              'parameters' => [
265                'parent' => [
266                  'location' => 'path',
267                  'type' => 'string',
268                  'required' => true,
269                ],
270              ],
271            ],'resetAuthorizationCode' => [
272              'path' => 'v1/{+registration}:resetAuthorizationCode',
273              'httpMethod' => 'POST',
274              'parameters' => [
275                'registration' => [
276                  'location' => 'path',
277                  'type' => 'string',
278                  'required' => true,
279                ],
280              ],
281            ],'retrieveAuthorizationCode' => [
282              'path' => 'v1/{+registration}:retrieveAuthorizationCode',
283              'httpMethod' => 'GET',
284              'parameters' => [
285                'registration' => [
286                  'location' => 'path',
287                  'type' => 'string',
288                  'required' => true,
289                ],
290              ],
291            ],'retrieveRegisterParameters' => [
292              'path' => 'v1/{+location}/registrations:retrieveRegisterParameters',
293              'httpMethod' => 'GET',
294              'parameters' => [
295                'location' => [
296                  'location' => 'path',
297                  'type' => 'string',
298                  'required' => true,
299                ],
300                'domainName' => [
301                  'location' => 'query',
302                  'type' => 'string',
303                ],
304              ],
305            ],'retrieveTransferParameters' => [
306              'path' => 'v1/{+location}/registrations:retrieveTransferParameters',
307              'httpMethod' => 'GET',
308              'parameters' => [
309                'location' => [
310                  'location' => 'path',
311                  'type' => 'string',
312                  'required' => true,
313                ],
314                'domainName' => [
315                  'location' => 'query',
316                  'type' => 'string',
317                ],
318              ],
319            ],'searchDomains' => [
320              'path' => 'v1/{+location}/registrations:searchDomains',
321              'httpMethod' => 'GET',
322              'parameters' => [
323                'location' => [
324                  'location' => 'path',
325                  'type' => 'string',
326                  'required' => true,
327                ],
328                'query' => [
329                  'location' => 'query',
330                  'type' => 'string',
331                ],
332              ],
333            ],'setIamPolicy' => [
334              'path' => 'v1/{+resource}:setIamPolicy',
335              'httpMethod' => 'POST',
336              'parameters' => [
337                'resource' => [
338                  'location' => 'path',
339                  'type' => 'string',
340                  'required' => true,
341                ],
342              ],
343            ],'testIamPermissions' => [
344              'path' => 'v1/{+resource}:testIamPermissions',
345              'httpMethod' => 'POST',
346              'parameters' => [
347                'resource' => [
348                  'location' => 'path',
349                  'type' => 'string',
350                  'required' => true,
351                ],
352              ],
353            ],'transfer' => [
354              'path' => 'v1/{+parent}/registrations:transfer',
355              'httpMethod' => 'POST',
356              'parameters' => [
357                'parent' => [
358                  'location' => 'path',
359                  'type' => 'string',
360                  'required' => true,
361                ],
362              ],
363            ],
364          ]
365        ]
366    );
367  }
368}
369
370// Adding a class alias for backwards compatibility with the previous class name.
371class_alias(CloudDomains::class, 'Google_Service_CloudDomains');
372