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 AdExchangeBuyer (v1.4).
24 *
25 * <p>
26 * Accesses your bidding-account information, submits creatives for validation,
27 * finds available direct deals, and retrieves performance reports.</p>
28 *
29 * <p>
30 * For more information about this service, see the API
31 * <a href="https://developers.google.com/ad-exchange/buyer-rest" target="_blank">Documentation</a>
32 * </p>
33 *
34 * @author Google, Inc.
35 */
36class AdExchangeBuyer extends \Google\Service
37{
38  /** Manage your Ad Exchange buyer account configuration. */
39  const ADEXCHANGE_BUYER =
40      "https://www.googleapis.com/auth/adexchange.buyer";
41
42  public $accounts;
43  public $billingInfo;
44  public $budget;
45  public $creatives;
46  public $marketplacedeals;
47  public $marketplacenotes;
48  public $marketplaceprivateauction;
49  public $performanceReport;
50  public $pretargetingConfig;
51  public $products;
52  public $proposals;
53  public $pubprofiles;
54
55  /**
56   * Constructs the internal representation of the AdExchangeBuyer service.
57   *
58   * @param Client|array $clientOrConfig The client used to deliver requests, or a
59   *                                     config array to pass to a new Client instance.
60   * @param string $rootUrl The root URL used for requests to the service.
61   */
62  public function __construct($clientOrConfig = [], $rootUrl = null)
63  {
64    parent::__construct($clientOrConfig);
65    $this->rootUrl = $rootUrl ?: 'https://www.googleapis.com/';
66    $this->servicePath = 'adexchangebuyer/v1.4/';
67    $this->batchPath = 'batch/adexchangebuyer/v1.4';
68    $this->version = 'v1.4';
69    $this->serviceName = 'adexchangebuyer';
70
71    $this->accounts = new AdExchangeBuyer\Resource\Accounts(
72        $this,
73        $this->serviceName,
74        'accounts',
75        [
76          'methods' => [
77            'get' => [
78              'path' => 'accounts/{id}',
79              'httpMethod' => 'GET',
80              'parameters' => [
81                'id' => [
82                  'location' => 'path',
83                  'type' => 'integer',
84                  'required' => true,
85                ],
86              ],
87            ],'list' => [
88              'path' => 'accounts',
89              'httpMethod' => 'GET',
90              'parameters' => [],
91            ],'patch' => [
92              'path' => 'accounts/{id}',
93              'httpMethod' => 'PATCH',
94              'parameters' => [
95                'id' => [
96                  'location' => 'path',
97                  'type' => 'integer',
98                  'required' => true,
99                ],
100                'confirmUnsafeAccountChange' => [
101                  'location' => 'query',
102                  'type' => 'boolean',
103                ],
104              ],
105            ],'update' => [
106              'path' => 'accounts/{id}',
107              'httpMethod' => 'PUT',
108              'parameters' => [
109                'id' => [
110                  'location' => 'path',
111                  'type' => 'integer',
112                  'required' => true,
113                ],
114                'confirmUnsafeAccountChange' => [
115                  'location' => 'query',
116                  'type' => 'boolean',
117                ],
118              ],
119            ],
120          ]
121        ]
122    );
123    $this->billingInfo = new AdExchangeBuyer\Resource\BillingInfo(
124        $this,
125        $this->serviceName,
126        'billingInfo',
127        [
128          'methods' => [
129            'get' => [
130              'path' => 'billinginfo/{accountId}',
131              'httpMethod' => 'GET',
132              'parameters' => [
133                'accountId' => [
134                  'location' => 'path',
135                  'type' => 'integer',
136                  'required' => true,
137                ],
138              ],
139            ],'list' => [
140              'path' => 'billinginfo',
141              'httpMethod' => 'GET',
142              'parameters' => [],
143            ],
144          ]
145        ]
146    );
147    $this->budget = new AdExchangeBuyer\Resource\Budget(
148        $this,
149        $this->serviceName,
150        'budget',
151        [
152          'methods' => [
153            'get' => [
154              'path' => 'billinginfo/{accountId}/{billingId}',
155              'httpMethod' => 'GET',
156              'parameters' => [
157                'accountId' => [
158                  'location' => 'path',
159                  'type' => 'string',
160                  'required' => true,
161                ],
162                'billingId' => [
163                  'location' => 'path',
164                  'type' => 'string',
165                  'required' => true,
166                ],
167              ],
168            ],'patch' => [
169              'path' => 'billinginfo/{accountId}/{billingId}',
170              'httpMethod' => 'PATCH',
171              'parameters' => [
172                'accountId' => [
173                  'location' => 'path',
174                  'type' => 'string',
175                  'required' => true,
176                ],
177                'billingId' => [
178                  'location' => 'path',
179                  'type' => 'string',
180                  'required' => true,
181                ],
182              ],
183            ],'update' => [
184              'path' => 'billinginfo/{accountId}/{billingId}',
185              'httpMethod' => 'PUT',
186              'parameters' => [
187                'accountId' => [
188                  'location' => 'path',
189                  'type' => 'string',
190                  'required' => true,
191                ],
192                'billingId' => [
193                  'location' => 'path',
194                  'type' => 'string',
195                  'required' => true,
196                ],
197              ],
198            ],
199          ]
200        ]
201    );
202    $this->creatives = new AdExchangeBuyer\Resource\Creatives(
203        $this,
204        $this->serviceName,
205        'creatives',
206        [
207          'methods' => [
208            'addDeal' => [
209              'path' => 'creatives/{accountId}/{buyerCreativeId}/addDeal/{dealId}',
210              'httpMethod' => 'POST',
211              'parameters' => [
212                'accountId' => [
213                  'location' => 'path',
214                  'type' => 'integer',
215                  'required' => true,
216                ],
217                'buyerCreativeId' => [
218                  'location' => 'path',
219                  'type' => 'string',
220                  'required' => true,
221                ],
222                'dealId' => [
223                  'location' => 'path',
224                  'type' => 'string',
225                  'required' => true,
226                ],
227              ],
228            ],'get' => [
229              'path' => 'creatives/{accountId}/{buyerCreativeId}',
230              'httpMethod' => 'GET',
231              'parameters' => [
232                'accountId' => [
233                  'location' => 'path',
234                  'type' => 'integer',
235                  'required' => true,
236                ],
237                'buyerCreativeId' => [
238                  'location' => 'path',
239                  'type' => 'string',
240                  'required' => true,
241                ],
242              ],
243            ],'insert' => [
244              'path' => 'creatives',
245              'httpMethod' => 'POST',
246              'parameters' => [],
247            ],'list' => [
248              'path' => 'creatives',
249              'httpMethod' => 'GET',
250              'parameters' => [
251                'accountId' => [
252                  'location' => 'query',
253                  'type' => 'integer',
254                  'repeated' => true,
255                ],
256                'buyerCreativeId' => [
257                  'location' => 'query',
258                  'type' => 'string',
259                  'repeated' => true,
260                ],
261                'dealsStatusFilter' => [
262                  'location' => 'query',
263                  'type' => 'string',
264                ],
265                'maxResults' => [
266                  'location' => 'query',
267                  'type' => 'integer',
268                ],
269                'openAuctionStatusFilter' => [
270                  'location' => 'query',
271                  'type' => 'string',
272                ],
273                'pageToken' => [
274                  'location' => 'query',
275                  'type' => 'string',
276                ],
277              ],
278            ],'listDeals' => [
279              'path' => 'creatives/{accountId}/{buyerCreativeId}/listDeals',
280              'httpMethod' => 'GET',
281              'parameters' => [
282                'accountId' => [
283                  'location' => 'path',
284                  'type' => 'integer',
285                  'required' => true,
286                ],
287                'buyerCreativeId' => [
288                  'location' => 'path',
289                  'type' => 'string',
290                  'required' => true,
291                ],
292              ],
293            ],'removeDeal' => [
294              'path' => 'creatives/{accountId}/{buyerCreativeId}/removeDeal/{dealId}',
295              'httpMethod' => 'POST',
296              'parameters' => [
297                'accountId' => [
298                  'location' => 'path',
299                  'type' => 'integer',
300                  'required' => true,
301                ],
302                'buyerCreativeId' => [
303                  'location' => 'path',
304                  'type' => 'string',
305                  'required' => true,
306                ],
307                'dealId' => [
308                  'location' => 'path',
309                  'type' => 'string',
310                  'required' => true,
311                ],
312              ],
313            ],
314          ]
315        ]
316    );
317    $this->marketplacedeals = new AdExchangeBuyer\Resource\Marketplacedeals(
318        $this,
319        $this->serviceName,
320        'marketplacedeals',
321        [
322          'methods' => [
323            'delete' => [
324              'path' => 'proposals/{proposalId}/deals/delete',
325              'httpMethod' => 'POST',
326              'parameters' => [
327                'proposalId' => [
328                  'location' => 'path',
329                  'type' => 'string',
330                  'required' => true,
331                ],
332              ],
333            ],'insert' => [
334              'path' => 'proposals/{proposalId}/deals/insert',
335              'httpMethod' => 'POST',
336              'parameters' => [
337                'proposalId' => [
338                  'location' => 'path',
339                  'type' => 'string',
340                  'required' => true,
341                ],
342              ],
343            ],'list' => [
344              'path' => 'proposals/{proposalId}/deals',
345              'httpMethod' => 'GET',
346              'parameters' => [
347                'proposalId' => [
348                  'location' => 'path',
349                  'type' => 'string',
350                  'required' => true,
351                ],
352                'pqlQuery' => [
353                  'location' => 'query',
354                  'type' => 'string',
355                ],
356              ],
357            ],'update' => [
358              'path' => 'proposals/{proposalId}/deals/update',
359              'httpMethod' => 'POST',
360              'parameters' => [
361                'proposalId' => [
362                  'location' => 'path',
363                  'type' => 'string',
364                  'required' => true,
365                ],
366              ],
367            ],
368          ]
369        ]
370    );
371    $this->marketplacenotes = new AdExchangeBuyer\Resource\Marketplacenotes(
372        $this,
373        $this->serviceName,
374        'marketplacenotes',
375        [
376          'methods' => [
377            'insert' => [
378              'path' => 'proposals/{proposalId}/notes/insert',
379              'httpMethod' => 'POST',
380              'parameters' => [
381                'proposalId' => [
382                  'location' => 'path',
383                  'type' => 'string',
384                  'required' => true,
385                ],
386              ],
387            ],'list' => [
388              'path' => 'proposals/{proposalId}/notes',
389              'httpMethod' => 'GET',
390              'parameters' => [
391                'proposalId' => [
392                  'location' => 'path',
393                  'type' => 'string',
394                  'required' => true,
395                ],
396                'pqlQuery' => [
397                  'location' => 'query',
398                  'type' => 'string',
399                ],
400              ],
401            ],
402          ]
403        ]
404    );
405    $this->marketplaceprivateauction = new AdExchangeBuyer\Resource\Marketplaceprivateauction(
406        $this,
407        $this->serviceName,
408        'marketplaceprivateauction',
409        [
410          'methods' => [
411            'updateproposal' => [
412              'path' => 'privateauction/{privateAuctionId}/updateproposal',
413              'httpMethod' => 'POST',
414              'parameters' => [
415                'privateAuctionId' => [
416                  'location' => 'path',
417                  'type' => 'string',
418                  'required' => true,
419                ],
420              ],
421            ],
422          ]
423        ]
424    );
425    $this->performanceReport = new AdExchangeBuyer\Resource\PerformanceReport(
426        $this,
427        $this->serviceName,
428        'performanceReport',
429        [
430          'methods' => [
431            'list' => [
432              'path' => 'performancereport',
433              'httpMethod' => 'GET',
434              'parameters' => [
435                'accountId' => [
436                  'location' => 'query',
437                  'type' => 'string',
438                  'required' => true,
439                ],
440                'endDateTime' => [
441                  'location' => 'query',
442                  'type' => 'string',
443                  'required' => true,
444                ],
445                'startDateTime' => [
446                  'location' => 'query',
447                  'type' => 'string',
448                  'required' => true,
449                ],
450                'maxResults' => [
451                  'location' => 'query',
452                  'type' => 'integer',
453                ],
454                'pageToken' => [
455                  'location' => 'query',
456                  'type' => 'string',
457                ],
458              ],
459            ],
460          ]
461        ]
462    );
463    $this->pretargetingConfig = new AdExchangeBuyer\Resource\PretargetingConfig(
464        $this,
465        $this->serviceName,
466        'pretargetingConfig',
467        [
468          'methods' => [
469            'delete' => [
470              'path' => 'pretargetingconfigs/{accountId}/{configId}',
471              'httpMethod' => 'DELETE',
472              'parameters' => [
473                'accountId' => [
474                  'location' => 'path',
475                  'type' => 'string',
476                  'required' => true,
477                ],
478                'configId' => [
479                  'location' => 'path',
480                  'type' => 'string',
481                  'required' => true,
482                ],
483              ],
484            ],'get' => [
485              'path' => 'pretargetingconfigs/{accountId}/{configId}',
486              'httpMethod' => 'GET',
487              'parameters' => [
488                'accountId' => [
489                  'location' => 'path',
490                  'type' => 'string',
491                  'required' => true,
492                ],
493                'configId' => [
494                  'location' => 'path',
495                  'type' => 'string',
496                  'required' => true,
497                ],
498              ],
499            ],'insert' => [
500              'path' => 'pretargetingconfigs/{accountId}',
501              'httpMethod' => 'POST',
502              'parameters' => [
503                'accountId' => [
504                  'location' => 'path',
505                  'type' => 'string',
506                  'required' => true,
507                ],
508              ],
509            ],'list' => [
510              'path' => 'pretargetingconfigs/{accountId}',
511              'httpMethod' => 'GET',
512              'parameters' => [
513                'accountId' => [
514                  'location' => 'path',
515                  'type' => 'string',
516                  'required' => true,
517                ],
518              ],
519            ],'patch' => [
520              'path' => 'pretargetingconfigs/{accountId}/{configId}',
521              'httpMethod' => 'PATCH',
522              'parameters' => [
523                'accountId' => [
524                  'location' => 'path',
525                  'type' => 'string',
526                  'required' => true,
527                ],
528                'configId' => [
529                  'location' => 'path',
530                  'type' => 'string',
531                  'required' => true,
532                ],
533              ],
534            ],'update' => [
535              'path' => 'pretargetingconfigs/{accountId}/{configId}',
536              'httpMethod' => 'PUT',
537              'parameters' => [
538                'accountId' => [
539                  'location' => 'path',
540                  'type' => 'string',
541                  'required' => true,
542                ],
543                'configId' => [
544                  'location' => 'path',
545                  'type' => 'string',
546                  'required' => true,
547                ],
548              ],
549            ],
550          ]
551        ]
552    );
553    $this->products = new AdExchangeBuyer\Resource\Products(
554        $this,
555        $this->serviceName,
556        'products',
557        [
558          'methods' => [
559            'get' => [
560              'path' => 'products/{productId}',
561              'httpMethod' => 'GET',
562              'parameters' => [
563                'productId' => [
564                  'location' => 'path',
565                  'type' => 'string',
566                  'required' => true,
567                ],
568              ],
569            ],'search' => [
570              'path' => 'products/search',
571              'httpMethod' => 'GET',
572              'parameters' => [
573                'pqlQuery' => [
574                  'location' => 'query',
575                  'type' => 'string',
576                ],
577              ],
578            ],
579          ]
580        ]
581    );
582    $this->proposals = new AdExchangeBuyer\Resource\Proposals(
583        $this,
584        $this->serviceName,
585        'proposals',
586        [
587          'methods' => [
588            'get' => [
589              'path' => 'proposals/{proposalId}',
590              'httpMethod' => 'GET',
591              'parameters' => [
592                'proposalId' => [
593                  'location' => 'path',
594                  'type' => 'string',
595                  'required' => true,
596                ],
597              ],
598            ],'insert' => [
599              'path' => 'proposals/insert',
600              'httpMethod' => 'POST',
601              'parameters' => [],
602            ],'patch' => [
603              'path' => 'proposals/{proposalId}/{revisionNumber}/{updateAction}',
604              'httpMethod' => 'PATCH',
605              'parameters' => [
606                'proposalId' => [
607                  'location' => 'path',
608                  'type' => 'string',
609                  'required' => true,
610                ],
611                'revisionNumber' => [
612                  'location' => 'path',
613                  'type' => 'string',
614                  'required' => true,
615                ],
616                'updateAction' => [
617                  'location' => 'path',
618                  'type' => 'string',
619                  'required' => true,
620                ],
621              ],
622            ],'search' => [
623              'path' => 'proposals/search',
624              'httpMethod' => 'GET',
625              'parameters' => [
626                'pqlQuery' => [
627                  'location' => 'query',
628                  'type' => 'string',
629                ],
630              ],
631            ],'setupcomplete' => [
632              'path' => 'proposals/{proposalId}/setupcomplete',
633              'httpMethod' => 'POST',
634              'parameters' => [
635                'proposalId' => [
636                  'location' => 'path',
637                  'type' => 'string',
638                  'required' => true,
639                ],
640              ],
641            ],'update' => [
642              'path' => 'proposals/{proposalId}/{revisionNumber}/{updateAction}',
643              'httpMethod' => 'PUT',
644              'parameters' => [
645                'proposalId' => [
646                  'location' => 'path',
647                  'type' => 'string',
648                  'required' => true,
649                ],
650                'revisionNumber' => [
651                  'location' => 'path',
652                  'type' => 'string',
653                  'required' => true,
654                ],
655                'updateAction' => [
656                  'location' => 'path',
657                  'type' => 'string',
658                  'required' => true,
659                ],
660              ],
661            ],
662          ]
663        ]
664    );
665    $this->pubprofiles = new AdExchangeBuyer\Resource\Pubprofiles(
666        $this,
667        $this->serviceName,
668        'pubprofiles',
669        [
670          'methods' => [
671            'list' => [
672              'path' => 'publisher/{accountId}/profiles',
673              'httpMethod' => 'GET',
674              'parameters' => [
675                'accountId' => [
676                  'location' => 'path',
677                  'type' => 'integer',
678                  'required' => true,
679                ],
680              ],
681            ],
682          ]
683        ]
684    );
685  }
686}
687
688// Adding a class alias for backwards compatibility with the previous class name.
689class_alias(AdExchangeBuyer::class, 'Google_Service_AdExchangeBuyer');
690