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 Dns (v2).
24 *
25 * <p>
26</p>
27 *
28 * <p>
29 * For more information about this service, see the API
30 * <a href="https://cloud.google.com/dns/docs" target="_blank">Documentation</a>
31 * </p>
32 *
33 * @author Google, Inc.
34 */
35class Dns 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  /** View your data across Google Cloud services and see the email address of your Google Account. */
41  const CLOUD_PLATFORM_READ_ONLY =
42      "https://www.googleapis.com/auth/cloud-platform.read-only";
43  /** View your DNS records hosted by Google Cloud DNS. */
44  const NDEV_CLOUDDNS_READONLY =
45      "https://www.googleapis.com/auth/ndev.clouddns.readonly";
46  /** View and manage your DNS records hosted by Google Cloud DNS. */
47  const NDEV_CLOUDDNS_READWRITE =
48      "https://www.googleapis.com/auth/ndev.clouddns.readwrite";
49
50  public $changes;
51  public $dnsKeys;
52  public $managedZoneOperations;
53  public $managedZones;
54  public $policies;
55  public $projects;
56  public $resourceRecordSets;
57  public $responsePolicies;
58  public $responsePolicyRules;
59
60  /**
61   * Constructs the internal representation of the Dns service.
62   *
63   * @param Client|array $clientOrConfig The client used to deliver requests, or a
64   *                                     config array to pass to a new Client instance.
65   * @param string $rootUrl The root URL used for requests to the service.
66   */
67  public function __construct($clientOrConfig = [], $rootUrl = null)
68  {
69    parent::__construct($clientOrConfig);
70    $this->rootUrl = $rootUrl ?: 'https://dns.googleapis.com/';
71    $this->servicePath = '';
72    $this->batchPath = 'batch';
73    $this->version = 'v2';
74    $this->serviceName = 'dns';
75
76    $this->changes = new Dns\Resource\Changes(
77        $this,
78        $this->serviceName,
79        'changes',
80        [
81          'methods' => [
82            'create' => [
83              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/changes',
84              'httpMethod' => 'POST',
85              'parameters' => [
86                'project' => [
87                  'location' => 'path',
88                  'type' => 'string',
89                  'required' => true,
90                ],
91                'location' => [
92                  'location' => 'path',
93                  'type' => 'string',
94                  'required' => true,
95                ],
96                'managedZone' => [
97                  'location' => 'path',
98                  'type' => 'string',
99                  'required' => true,
100                ],
101                'clientOperationId' => [
102                  'location' => 'query',
103                  'type' => 'string',
104                ],
105              ],
106            ],'get' => [
107              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/changes/{changeId}',
108              'httpMethod' => 'GET',
109              'parameters' => [
110                'project' => [
111                  'location' => 'path',
112                  'type' => 'string',
113                  'required' => true,
114                ],
115                'location' => [
116                  'location' => 'path',
117                  'type' => 'string',
118                  'required' => true,
119                ],
120                'managedZone' => [
121                  'location' => 'path',
122                  'type' => 'string',
123                  'required' => true,
124                ],
125                'changeId' => [
126                  'location' => 'path',
127                  'type' => 'string',
128                  'required' => true,
129                ],
130                'clientOperationId' => [
131                  'location' => 'query',
132                  'type' => 'string',
133                ],
134              ],
135            ],'list' => [
136              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/changes',
137              'httpMethod' => 'GET',
138              'parameters' => [
139                'project' => [
140                  'location' => 'path',
141                  'type' => 'string',
142                  'required' => true,
143                ],
144                'location' => [
145                  'location' => 'path',
146                  'type' => 'string',
147                  'required' => true,
148                ],
149                'managedZone' => [
150                  'location' => 'path',
151                  'type' => 'string',
152                  'required' => true,
153                ],
154                'maxResults' => [
155                  'location' => 'query',
156                  'type' => 'integer',
157                ],
158                'pageToken' => [
159                  'location' => 'query',
160                  'type' => 'string',
161                ],
162                'sortBy' => [
163                  'location' => 'query',
164                  'type' => 'string',
165                ],
166                'sortOrder' => [
167                  'location' => 'query',
168                  'type' => 'string',
169                ],
170              ],
171            ],
172          ]
173        ]
174    );
175    $this->dnsKeys = new Dns\Resource\DnsKeys(
176        $this,
177        $this->serviceName,
178        'dnsKeys',
179        [
180          'methods' => [
181            'get' => [
182              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/dnsKeys/{dnsKeyId}',
183              'httpMethod' => 'GET',
184              'parameters' => [
185                'project' => [
186                  'location' => 'path',
187                  'type' => 'string',
188                  'required' => true,
189                ],
190                'location' => [
191                  'location' => 'path',
192                  'type' => 'string',
193                  'required' => true,
194                ],
195                'managedZone' => [
196                  'location' => 'path',
197                  'type' => 'string',
198                  'required' => true,
199                ],
200                'dnsKeyId' => [
201                  'location' => 'path',
202                  'type' => 'string',
203                  'required' => true,
204                ],
205                'clientOperationId' => [
206                  'location' => 'query',
207                  'type' => 'string',
208                ],
209                'digestType' => [
210                  'location' => 'query',
211                  'type' => 'string',
212                ],
213              ],
214            ],'list' => [
215              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/dnsKeys',
216              'httpMethod' => 'GET',
217              'parameters' => [
218                'project' => [
219                  'location' => 'path',
220                  'type' => 'string',
221                  'required' => true,
222                ],
223                'location' => [
224                  'location' => 'path',
225                  'type' => 'string',
226                  'required' => true,
227                ],
228                'managedZone' => [
229                  'location' => 'path',
230                  'type' => 'string',
231                  'required' => true,
232                ],
233                'digestType' => [
234                  'location' => 'query',
235                  'type' => 'string',
236                ],
237                'maxResults' => [
238                  'location' => 'query',
239                  'type' => 'integer',
240                ],
241                'pageToken' => [
242                  'location' => 'query',
243                  'type' => 'string',
244                ],
245              ],
246            ],
247          ]
248        ]
249    );
250    $this->managedZoneOperations = new Dns\Resource\ManagedZoneOperations(
251        $this,
252        $this->serviceName,
253        'managedZoneOperations',
254        [
255          'methods' => [
256            'get' => [
257              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/operations/{operation}',
258              'httpMethod' => 'GET',
259              'parameters' => [
260                'project' => [
261                  'location' => 'path',
262                  'type' => 'string',
263                  'required' => true,
264                ],
265                'location' => [
266                  'location' => 'path',
267                  'type' => 'string',
268                  'required' => true,
269                ],
270                'managedZone' => [
271                  'location' => 'path',
272                  'type' => 'string',
273                  'required' => true,
274                ],
275                'operation' => [
276                  'location' => 'path',
277                  'type' => 'string',
278                  'required' => true,
279                ],
280                'clientOperationId' => [
281                  'location' => 'query',
282                  'type' => 'string',
283                ],
284              ],
285            ],'list' => [
286              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/operations',
287              'httpMethod' => 'GET',
288              'parameters' => [
289                'project' => [
290                  'location' => 'path',
291                  'type' => 'string',
292                  'required' => true,
293                ],
294                'location' => [
295                  'location' => 'path',
296                  'type' => 'string',
297                  'required' => true,
298                ],
299                'managedZone' => [
300                  'location' => 'path',
301                  'type' => 'string',
302                  'required' => true,
303                ],
304                'maxResults' => [
305                  'location' => 'query',
306                  'type' => 'integer',
307                ],
308                'pageToken' => [
309                  'location' => 'query',
310                  'type' => 'string',
311                ],
312                'sortBy' => [
313                  'location' => 'query',
314                  'type' => 'string',
315                ],
316              ],
317            ],
318          ]
319        ]
320    );
321    $this->managedZones = new Dns\Resource\ManagedZones(
322        $this,
323        $this->serviceName,
324        'managedZones',
325        [
326          'methods' => [
327            'create' => [
328              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones',
329              'httpMethod' => 'POST',
330              'parameters' => [
331                'project' => [
332                  'location' => 'path',
333                  'type' => 'string',
334                  'required' => true,
335                ],
336                'location' => [
337                  'location' => 'path',
338                  'type' => 'string',
339                  'required' => true,
340                ],
341                'clientOperationId' => [
342                  'location' => 'query',
343                  'type' => 'string',
344                ],
345              ],
346            ],'delete' => [
347              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}',
348              'httpMethod' => 'DELETE',
349              'parameters' => [
350                'project' => [
351                  'location' => 'path',
352                  'type' => 'string',
353                  'required' => true,
354                ],
355                'location' => [
356                  'location' => 'path',
357                  'type' => 'string',
358                  'required' => true,
359                ],
360                'managedZone' => [
361                  'location' => 'path',
362                  'type' => 'string',
363                  'required' => true,
364                ],
365                'clientOperationId' => [
366                  'location' => 'query',
367                  'type' => 'string',
368                ],
369              ],
370            ],'get' => [
371              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}',
372              'httpMethod' => 'GET',
373              'parameters' => [
374                'project' => [
375                  'location' => 'path',
376                  'type' => 'string',
377                  'required' => true,
378                ],
379                'location' => [
380                  'location' => 'path',
381                  'type' => 'string',
382                  'required' => true,
383                ],
384                'managedZone' => [
385                  'location' => 'path',
386                  'type' => 'string',
387                  'required' => true,
388                ],
389                'clientOperationId' => [
390                  'location' => 'query',
391                  'type' => 'string',
392                ],
393              ],
394            ],'list' => [
395              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones',
396              'httpMethod' => 'GET',
397              'parameters' => [
398                'project' => [
399                  'location' => 'path',
400                  'type' => 'string',
401                  'required' => true,
402                ],
403                'location' => [
404                  'location' => 'path',
405                  'type' => 'string',
406                  'required' => true,
407                ],
408                'dnsName' => [
409                  'location' => 'query',
410                  'type' => 'string',
411                ],
412                'maxResults' => [
413                  'location' => 'query',
414                  'type' => 'integer',
415                ],
416                'pageToken' => [
417                  'location' => 'query',
418                  'type' => 'string',
419                ],
420              ],
421            ],'patch' => [
422              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}',
423              'httpMethod' => 'PATCH',
424              'parameters' => [
425                'project' => [
426                  'location' => 'path',
427                  'type' => 'string',
428                  'required' => true,
429                ],
430                'location' => [
431                  'location' => 'path',
432                  'type' => 'string',
433                  'required' => true,
434                ],
435                'managedZone' => [
436                  'location' => 'path',
437                  'type' => 'string',
438                  'required' => true,
439                ],
440                'clientOperationId' => [
441                  'location' => 'query',
442                  'type' => 'string',
443                ],
444              ],
445            ],'update' => [
446              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}',
447              'httpMethod' => 'PUT',
448              'parameters' => [
449                'project' => [
450                  'location' => 'path',
451                  'type' => 'string',
452                  'required' => true,
453                ],
454                'location' => [
455                  'location' => 'path',
456                  'type' => 'string',
457                  'required' => true,
458                ],
459                'managedZone' => [
460                  'location' => 'path',
461                  'type' => 'string',
462                  'required' => true,
463                ],
464                'clientOperationId' => [
465                  'location' => 'query',
466                  'type' => 'string',
467                ],
468              ],
469            ],
470          ]
471        ]
472    );
473    $this->policies = new Dns\Resource\Policies(
474        $this,
475        $this->serviceName,
476        'policies',
477        [
478          'methods' => [
479            'create' => [
480              'path' => 'dns/v2/projects/{project}/locations/{location}/policies',
481              'httpMethod' => 'POST',
482              'parameters' => [
483                'project' => [
484                  'location' => 'path',
485                  'type' => 'string',
486                  'required' => true,
487                ],
488                'location' => [
489                  'location' => 'path',
490                  'type' => 'string',
491                  'required' => true,
492                ],
493                'clientOperationId' => [
494                  'location' => 'query',
495                  'type' => 'string',
496                ],
497              ],
498            ],'delete' => [
499              'path' => 'dns/v2/projects/{project}/locations/{location}/policies/{policy}',
500              'httpMethod' => 'DELETE',
501              'parameters' => [
502                'project' => [
503                  'location' => 'path',
504                  'type' => 'string',
505                  'required' => true,
506                ],
507                'location' => [
508                  'location' => 'path',
509                  'type' => 'string',
510                  'required' => true,
511                ],
512                'policy' => [
513                  'location' => 'path',
514                  'type' => 'string',
515                  'required' => true,
516                ],
517                'clientOperationId' => [
518                  'location' => 'query',
519                  'type' => 'string',
520                ],
521              ],
522            ],'get' => [
523              'path' => 'dns/v2/projects/{project}/locations/{location}/policies/{policy}',
524              'httpMethod' => 'GET',
525              'parameters' => [
526                'project' => [
527                  'location' => 'path',
528                  'type' => 'string',
529                  'required' => true,
530                ],
531                'location' => [
532                  'location' => 'path',
533                  'type' => 'string',
534                  'required' => true,
535                ],
536                'policy' => [
537                  'location' => 'path',
538                  'type' => 'string',
539                  'required' => true,
540                ],
541                'clientOperationId' => [
542                  'location' => 'query',
543                  'type' => 'string',
544                ],
545              ],
546            ],'list' => [
547              'path' => 'dns/v2/projects/{project}/locations/{location}/policies',
548              'httpMethod' => 'GET',
549              'parameters' => [
550                'project' => [
551                  'location' => 'path',
552                  'type' => 'string',
553                  'required' => true,
554                ],
555                'location' => [
556                  'location' => 'path',
557                  'type' => 'string',
558                  'required' => true,
559                ],
560                'maxResults' => [
561                  'location' => 'query',
562                  'type' => 'integer',
563                ],
564                'pageToken' => [
565                  'location' => 'query',
566                  'type' => 'string',
567                ],
568              ],
569            ],'patch' => [
570              'path' => 'dns/v2/projects/{project}/locations/{location}/policies/{policy}',
571              'httpMethod' => 'PATCH',
572              'parameters' => [
573                'project' => [
574                  'location' => 'path',
575                  'type' => 'string',
576                  'required' => true,
577                ],
578                'location' => [
579                  'location' => 'path',
580                  'type' => 'string',
581                  'required' => true,
582                ],
583                'policy' => [
584                  'location' => 'path',
585                  'type' => 'string',
586                  'required' => true,
587                ],
588                'clientOperationId' => [
589                  'location' => 'query',
590                  'type' => 'string',
591                ],
592              ],
593            ],'update' => [
594              'path' => 'dns/v2/projects/{project}/locations/{location}/policies/{policy}',
595              'httpMethod' => 'PUT',
596              'parameters' => [
597                'project' => [
598                  'location' => 'path',
599                  'type' => 'string',
600                  'required' => true,
601                ],
602                'location' => [
603                  'location' => 'path',
604                  'type' => 'string',
605                  'required' => true,
606                ],
607                'policy' => [
608                  'location' => 'path',
609                  'type' => 'string',
610                  'required' => true,
611                ],
612                'clientOperationId' => [
613                  'location' => 'query',
614                  'type' => 'string',
615                ],
616              ],
617            ],
618          ]
619        ]
620    );
621    $this->projects = new Dns\Resource\Projects(
622        $this,
623        $this->serviceName,
624        'projects',
625        [
626          'methods' => [
627            'get' => [
628              'path' => 'dns/v2/projects/{project}/locations/{location}',
629              'httpMethod' => 'GET',
630              'parameters' => [
631                'project' => [
632                  'location' => 'path',
633                  'type' => 'string',
634                  'required' => true,
635                ],
636                'location' => [
637                  'location' => 'path',
638                  'type' => 'string',
639                  'required' => true,
640                ],
641                'clientOperationId' => [
642                  'location' => 'query',
643                  'type' => 'string',
644                ],
645              ],
646            ],
647          ]
648        ]
649    );
650    $this->resourceRecordSets = new Dns\Resource\ResourceRecordSets(
651        $this,
652        $this->serviceName,
653        'resourceRecordSets',
654        [
655          'methods' => [
656            'create' => [
657              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets',
658              'httpMethod' => 'POST',
659              'parameters' => [
660                'project' => [
661                  'location' => 'path',
662                  'type' => 'string',
663                  'required' => true,
664                ],
665                'location' => [
666                  'location' => 'path',
667                  'type' => 'string',
668                  'required' => true,
669                ],
670                'managedZone' => [
671                  'location' => 'path',
672                  'type' => 'string',
673                  'required' => true,
674                ],
675                'clientOperationId' => [
676                  'location' => 'query',
677                  'type' => 'string',
678                ],
679              ],
680            ],'delete' => [
681              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets/{name}/{type}',
682              'httpMethod' => 'DELETE',
683              'parameters' => [
684                'project' => [
685                  'location' => 'path',
686                  'type' => 'string',
687                  'required' => true,
688                ],
689                'location' => [
690                  'location' => 'path',
691                  'type' => 'string',
692                  'required' => true,
693                ],
694                'managedZone' => [
695                  'location' => 'path',
696                  'type' => 'string',
697                  'required' => true,
698                ],
699                'name' => [
700                  'location' => 'path',
701                  'type' => 'string',
702                  'required' => true,
703                ],
704                'type' => [
705                  'location' => 'path',
706                  'type' => 'string',
707                  'required' => true,
708                ],
709                'clientOperationId' => [
710                  'location' => 'query',
711                  'type' => 'string',
712                ],
713              ],
714            ],'get' => [
715              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets/{name}/{type}',
716              'httpMethod' => 'GET',
717              'parameters' => [
718                'project' => [
719                  'location' => 'path',
720                  'type' => 'string',
721                  'required' => true,
722                ],
723                'location' => [
724                  'location' => 'path',
725                  'type' => 'string',
726                  'required' => true,
727                ],
728                'managedZone' => [
729                  'location' => 'path',
730                  'type' => 'string',
731                  'required' => true,
732                ],
733                'name' => [
734                  'location' => 'path',
735                  'type' => 'string',
736                  'required' => true,
737                ],
738                'type' => [
739                  'location' => 'path',
740                  'type' => 'string',
741                  'required' => true,
742                ],
743                'clientOperationId' => [
744                  'location' => 'query',
745                  'type' => 'string',
746                ],
747              ],
748            ],'list' => [
749              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets',
750              'httpMethod' => 'GET',
751              'parameters' => [
752                'project' => [
753                  'location' => 'path',
754                  'type' => 'string',
755                  'required' => true,
756                ],
757                'location' => [
758                  'location' => 'path',
759                  'type' => 'string',
760                  'required' => true,
761                ],
762                'managedZone' => [
763                  'location' => 'path',
764                  'type' => 'string',
765                  'required' => true,
766                ],
767                'maxResults' => [
768                  'location' => 'query',
769                  'type' => 'integer',
770                ],
771                'name' => [
772                  'location' => 'query',
773                  'type' => 'string',
774                ],
775                'pageToken' => [
776                  'location' => 'query',
777                  'type' => 'string',
778                ],
779                'type' => [
780                  'location' => 'query',
781                  'type' => 'string',
782                ],
783              ],
784            ],'patch' => [
785              'path' => 'dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}/rrsets/{name}/{type}',
786              'httpMethod' => 'PATCH',
787              'parameters' => [
788                'project' => [
789                  'location' => 'path',
790                  'type' => 'string',
791                  'required' => true,
792                ],
793                'location' => [
794                  'location' => 'path',
795                  'type' => 'string',
796                  'required' => true,
797                ],
798                'managedZone' => [
799                  'location' => 'path',
800                  'type' => 'string',
801                  'required' => true,
802                ],
803                'name' => [
804                  'location' => 'path',
805                  'type' => 'string',
806                  'required' => true,
807                ],
808                'type' => [
809                  'location' => 'path',
810                  'type' => 'string',
811                  'required' => true,
812                ],
813                'clientOperationId' => [
814                  'location' => 'query',
815                  'type' => 'string',
816                ],
817              ],
818            ],
819          ]
820        ]
821    );
822    $this->responsePolicies = new Dns\Resource\ResponsePolicies(
823        $this,
824        $this->serviceName,
825        'responsePolicies',
826        [
827          'methods' => [
828            'create' => [
829              'path' => 'dns/v2/projects/{project}/locations/{location}/responsePolicies',
830              'httpMethod' => 'POST',
831              'parameters' => [
832                'project' => [
833                  'location' => 'path',
834                  'type' => 'string',
835                  'required' => true,
836                ],
837                'location' => [
838                  'location' => 'path',
839                  'type' => 'string',
840                  'required' => true,
841                ],
842                'clientOperationId' => [
843                  'location' => 'query',
844                  'type' => 'string',
845                ],
846              ],
847            ],'delete' => [
848              'path' => 'dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}',
849              'httpMethod' => 'DELETE',
850              'parameters' => [
851                'project' => [
852                  'location' => 'path',
853                  'type' => 'string',
854                  'required' => true,
855                ],
856                'location' => [
857                  'location' => 'path',
858                  'type' => 'string',
859                  'required' => true,
860                ],
861                'responsePolicy' => [
862                  'location' => 'path',
863                  'type' => 'string',
864                  'required' => true,
865                ],
866                'clientOperationId' => [
867                  'location' => 'query',
868                  'type' => 'string',
869                ],
870              ],
871            ],'get' => [
872              'path' => 'dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}',
873              'httpMethod' => 'GET',
874              'parameters' => [
875                'project' => [
876                  'location' => 'path',
877                  'type' => 'string',
878                  'required' => true,
879                ],
880                'location' => [
881                  'location' => 'path',
882                  'type' => 'string',
883                  'required' => true,
884                ],
885                'responsePolicy' => [
886                  'location' => 'path',
887                  'type' => 'string',
888                  'required' => true,
889                ],
890                'clientOperationId' => [
891                  'location' => 'query',
892                  'type' => 'string',
893                ],
894              ],
895            ],'list' => [
896              'path' => 'dns/v2/projects/{project}/locations/{location}/responsePolicies',
897              'httpMethod' => 'GET',
898              'parameters' => [
899                'project' => [
900                  'location' => 'path',
901                  'type' => 'string',
902                  'required' => true,
903                ],
904                'location' => [
905                  'location' => 'path',
906                  'type' => 'string',
907                  'required' => true,
908                ],
909                'maxResults' => [
910                  'location' => 'query',
911                  'type' => 'integer',
912                ],
913                'pageToken' => [
914                  'location' => 'query',
915                  'type' => 'string',
916                ],
917              ],
918            ],'patch' => [
919              'path' => 'dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}',
920              'httpMethod' => 'PATCH',
921              'parameters' => [
922                'project' => [
923                  'location' => 'path',
924                  'type' => 'string',
925                  'required' => true,
926                ],
927                'location' => [
928                  'location' => 'path',
929                  'type' => 'string',
930                  'required' => true,
931                ],
932                'responsePolicy' => [
933                  'location' => 'path',
934                  'type' => 'string',
935                  'required' => true,
936                ],
937                'clientOperationId' => [
938                  'location' => 'query',
939                  'type' => 'string',
940                ],
941              ],
942            ],'update' => [
943              'path' => 'dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}',
944              'httpMethod' => 'PUT',
945              'parameters' => [
946                'project' => [
947                  'location' => 'path',
948                  'type' => 'string',
949                  'required' => true,
950                ],
951                'location' => [
952                  'location' => 'path',
953                  'type' => 'string',
954                  'required' => true,
955                ],
956                'responsePolicy' => [
957                  'location' => 'path',
958                  'type' => 'string',
959                  'required' => true,
960                ],
961                'clientOperationId' => [
962                  'location' => 'query',
963                  'type' => 'string',
964                ],
965              ],
966            ],
967          ]
968        ]
969    );
970    $this->responsePolicyRules = new Dns\Resource\ResponsePolicyRules(
971        $this,
972        $this->serviceName,
973        'responsePolicyRules',
974        [
975          'methods' => [
976            'create' => [
977              'path' => 'dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules',
978              'httpMethod' => 'POST',
979              'parameters' => [
980                'project' => [
981                  'location' => 'path',
982                  'type' => 'string',
983                  'required' => true,
984                ],
985                'location' => [
986                  'location' => 'path',
987                  'type' => 'string',
988                  'required' => true,
989                ],
990                'responsePolicy' => [
991                  'location' => 'path',
992                  'type' => 'string',
993                  'required' => true,
994                ],
995                'clientOperationId' => [
996                  'location' => 'query',
997                  'type' => 'string',
998                ],
999              ],
1000            ],'delete' => [
1001              'path' => 'dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}',
1002              'httpMethod' => 'DELETE',
1003              'parameters' => [
1004                'project' => [
1005                  'location' => 'path',
1006                  'type' => 'string',
1007                  'required' => true,
1008                ],
1009                'location' => [
1010                  'location' => 'path',
1011                  'type' => 'string',
1012                  'required' => true,
1013                ],
1014                'responsePolicy' => [
1015                  'location' => 'path',
1016                  'type' => 'string',
1017                  'required' => true,
1018                ],
1019                'responsePolicyRule' => [
1020                  'location' => 'path',
1021                  'type' => 'string',
1022                  'required' => true,
1023                ],
1024                'clientOperationId' => [
1025                  'location' => 'query',
1026                  'type' => 'string',
1027                ],
1028              ],
1029            ],'get' => [
1030              'path' => 'dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}',
1031              'httpMethod' => 'GET',
1032              'parameters' => [
1033                'project' => [
1034                  'location' => 'path',
1035                  'type' => 'string',
1036                  'required' => true,
1037                ],
1038                'location' => [
1039                  'location' => 'path',
1040                  'type' => 'string',
1041                  'required' => true,
1042                ],
1043                'responsePolicy' => [
1044                  'location' => 'path',
1045                  'type' => 'string',
1046                  'required' => true,
1047                ],
1048                'responsePolicyRule' => [
1049                  'location' => 'path',
1050                  'type' => 'string',
1051                  'required' => true,
1052                ],
1053                'clientOperationId' => [
1054                  'location' => 'query',
1055                  'type' => 'string',
1056                ],
1057              ],
1058            ],'list' => [
1059              'path' => 'dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules',
1060              'httpMethod' => 'GET',
1061              'parameters' => [
1062                'project' => [
1063                  'location' => 'path',
1064                  'type' => 'string',
1065                  'required' => true,
1066                ],
1067                'location' => [
1068                  'location' => 'path',
1069                  'type' => 'string',
1070                  'required' => true,
1071                ],
1072                'responsePolicy' => [
1073                  'location' => 'path',
1074                  'type' => 'string',
1075                  'required' => true,
1076                ],
1077                'maxResults' => [
1078                  'location' => 'query',
1079                  'type' => 'integer',
1080                ],
1081                'pageToken' => [
1082                  'location' => 'query',
1083                  'type' => 'string',
1084                ],
1085              ],
1086            ],'patch' => [
1087              'path' => 'dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}',
1088              'httpMethod' => 'PATCH',
1089              'parameters' => [
1090                'project' => [
1091                  'location' => 'path',
1092                  'type' => 'string',
1093                  'required' => true,
1094                ],
1095                'location' => [
1096                  'location' => 'path',
1097                  'type' => 'string',
1098                  'required' => true,
1099                ],
1100                'responsePolicy' => [
1101                  'location' => 'path',
1102                  'type' => 'string',
1103                  'required' => true,
1104                ],
1105                'responsePolicyRule' => [
1106                  'location' => 'path',
1107                  'type' => 'string',
1108                  'required' => true,
1109                ],
1110                'clientOperationId' => [
1111                  'location' => 'query',
1112                  'type' => 'string',
1113                ],
1114              ],
1115            ],'update' => [
1116              'path' => 'dns/v2/projects/{project}/locations/{location}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}',
1117              'httpMethod' => 'PUT',
1118              'parameters' => [
1119                'project' => [
1120                  'location' => 'path',
1121                  'type' => 'string',
1122                  'required' => true,
1123                ],
1124                'location' => [
1125                  'location' => 'path',
1126                  'type' => 'string',
1127                  'required' => true,
1128                ],
1129                'responsePolicy' => [
1130                  'location' => 'path',
1131                  'type' => 'string',
1132                  'required' => true,
1133                ],
1134                'responsePolicyRule' => [
1135                  'location' => 'path',
1136                  'type' => 'string',
1137                  'required' => true,
1138                ],
1139                'clientOperationId' => [
1140                  'location' => 'query',
1141                  'type' => 'string',
1142                ],
1143              ],
1144            ],
1145          ]
1146        ]
1147    );
1148  }
1149}
1150
1151// Adding a class alias for backwards compatibility with the previous class name.
1152class_alias(Dns::class, 'Google_Service_Dns');
1153