1// Copyright 2021 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package displayvideo provides access to the Display & Video 360 API.
8//
9// For product documentation, see: https://developers.google.com/display-video/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/displayvideo/v1"
16//   ...
17//   ctx := context.Background()
18//   displayvideoService, err := displayvideo.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   displayvideoService, err := displayvideo.NewService(ctx, option.WithScopes(displayvideo.DoubleclickbidmanagerScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   displayvideoService, err := displayvideo.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   displayvideoService, err := displayvideo.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package displayvideo // import "google.golang.org/api/displayvideo/v1"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	internaloption "google.golang.org/api/option/internaloption"
60	htransport "google.golang.org/api/transport/http"
61)
62
63// Always reference these packages, just in case the auto-generated code
64// below doesn't.
65var _ = bytes.NewBuffer
66var _ = strconv.Itoa
67var _ = fmt.Sprintf
68var _ = json.NewDecoder
69var _ = io.Copy
70var _ = url.Parse
71var _ = gensupport.MarshalJSON
72var _ = googleapi.Version
73var _ = errors.New
74var _ = strings.Replace
75var _ = context.Canceled
76var _ = internaloption.WithDefaultEndpoint
77
78const apiId = "displayvideo:v1"
79const apiName = "displayvideo"
80const apiVersion = "v1"
81const basePath = "https://displayvideo.googleapis.com/"
82const mtlsBasePath = "https://displayvideo.mtls.googleapis.com/"
83
84// OAuth2 scopes used by this API.
85const (
86	// Create, see, edit, and permanently delete your Display & Video 360
87	// entities and reports
88	DisplayVideoScope = "https://www.googleapis.com/auth/display-video"
89
90	// Create, see, and edit Display & Video 360 Campaign entities and see
91	// billing invoices
92	DisplayVideoMediaplanningScope = "https://www.googleapis.com/auth/display-video-mediaplanning"
93
94	// Private Service:
95	// https://www.googleapis.com/auth/display-video-user-management
96	DisplayVideoUserManagementScope = "https://www.googleapis.com/auth/display-video-user-management"
97
98	// View and manage your reports in DoubleClick Bid Manager
99	DoubleclickbidmanagerScope = "https://www.googleapis.com/auth/doubleclickbidmanager"
100)
101
102// NewService creates a new Service.
103func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
104	scopesOption := option.WithScopes(
105		"https://www.googleapis.com/auth/display-video",
106		"https://www.googleapis.com/auth/display-video-mediaplanning",
107		"https://www.googleapis.com/auth/display-video-user-management",
108		"https://www.googleapis.com/auth/doubleclickbidmanager",
109	)
110	// NOTE: prepend, so we don't override user-specified scopes.
111	opts = append([]option.ClientOption{scopesOption}, opts...)
112	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
113	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
114	client, endpoint, err := htransport.NewClient(ctx, opts...)
115	if err != nil {
116		return nil, err
117	}
118	s, err := New(client)
119	if err != nil {
120		return nil, err
121	}
122	if endpoint != "" {
123		s.BasePath = endpoint
124	}
125	return s, nil
126}
127
128// New creates a new Service. It uses the provided http.Client for requests.
129//
130// Deprecated: please use NewService instead.
131// To provide a custom HTTP client, use option.WithHTTPClient.
132// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
133func New(client *http.Client) (*Service, error) {
134	if client == nil {
135		return nil, errors.New("client is nil")
136	}
137	s := &Service{client: client, BasePath: basePath}
138	s.Advertisers = NewAdvertisersService(s)
139	s.CombinedAudiences = NewCombinedAudiencesService(s)
140	s.CustomBiddingAlgorithms = NewCustomBiddingAlgorithmsService(s)
141	s.CustomLists = NewCustomListsService(s)
142	s.FirstAndThirdPartyAudiences = NewFirstAndThirdPartyAudiencesService(s)
143	s.FloodlightGroups = NewFloodlightGroupsService(s)
144	s.GoogleAudiences = NewGoogleAudiencesService(s)
145	s.InventorySourceGroups = NewInventorySourceGroupsService(s)
146	s.InventorySources = NewInventorySourcesService(s)
147	s.Media = NewMediaService(s)
148	s.Partners = NewPartnersService(s)
149	s.Sdfdownloadtasks = NewSdfdownloadtasksService(s)
150	s.TargetingTypes = NewTargetingTypesService(s)
151	s.Users = NewUsersService(s)
152	return s, nil
153}
154
155type Service struct {
156	client    *http.Client
157	BasePath  string // API endpoint base URL
158	UserAgent string // optional additional User-Agent fragment
159
160	Advertisers *AdvertisersService
161
162	CombinedAudiences *CombinedAudiencesService
163
164	CustomBiddingAlgorithms *CustomBiddingAlgorithmsService
165
166	CustomLists *CustomListsService
167
168	FirstAndThirdPartyAudiences *FirstAndThirdPartyAudiencesService
169
170	FloodlightGroups *FloodlightGroupsService
171
172	GoogleAudiences *GoogleAudiencesService
173
174	InventorySourceGroups *InventorySourceGroupsService
175
176	InventorySources *InventorySourcesService
177
178	Media *MediaService
179
180	Partners *PartnersService
181
182	Sdfdownloadtasks *SdfdownloadtasksService
183
184	TargetingTypes *TargetingTypesService
185
186	Users *UsersService
187}
188
189func (s *Service) userAgent() string {
190	if s.UserAgent == "" {
191		return googleapi.UserAgent
192	}
193	return googleapi.UserAgent + " " + s.UserAgent
194}
195
196func NewAdvertisersService(s *Service) *AdvertisersService {
197	rs := &AdvertisersService{s: s}
198	rs.Assets = NewAdvertisersAssetsService(s)
199	rs.Campaigns = NewAdvertisersCampaignsService(s)
200	rs.Channels = NewAdvertisersChannelsService(s)
201	rs.Creatives = NewAdvertisersCreativesService(s)
202	rs.InsertionOrders = NewAdvertisersInsertionOrdersService(s)
203	rs.Invoices = NewAdvertisersInvoicesService(s)
204	rs.LineItems = NewAdvertisersLineItemsService(s)
205	rs.LocationLists = NewAdvertisersLocationListsService(s)
206	rs.ManualTriggers = NewAdvertisersManualTriggersService(s)
207	rs.NegativeKeywordLists = NewAdvertisersNegativeKeywordListsService(s)
208	rs.TargetingTypes = NewAdvertisersTargetingTypesService(s)
209	return rs
210}
211
212type AdvertisersService struct {
213	s *Service
214
215	Assets *AdvertisersAssetsService
216
217	Campaigns *AdvertisersCampaignsService
218
219	Channels *AdvertisersChannelsService
220
221	Creatives *AdvertisersCreativesService
222
223	InsertionOrders *AdvertisersInsertionOrdersService
224
225	Invoices *AdvertisersInvoicesService
226
227	LineItems *AdvertisersLineItemsService
228
229	LocationLists *AdvertisersLocationListsService
230
231	ManualTriggers *AdvertisersManualTriggersService
232
233	NegativeKeywordLists *AdvertisersNegativeKeywordListsService
234
235	TargetingTypes *AdvertisersTargetingTypesService
236}
237
238func NewAdvertisersAssetsService(s *Service) *AdvertisersAssetsService {
239	rs := &AdvertisersAssetsService{s: s}
240	return rs
241}
242
243type AdvertisersAssetsService struct {
244	s *Service
245}
246
247func NewAdvertisersCampaignsService(s *Service) *AdvertisersCampaignsService {
248	rs := &AdvertisersCampaignsService{s: s}
249	rs.TargetingTypes = NewAdvertisersCampaignsTargetingTypesService(s)
250	return rs
251}
252
253type AdvertisersCampaignsService struct {
254	s *Service
255
256	TargetingTypes *AdvertisersCampaignsTargetingTypesService
257}
258
259func NewAdvertisersCampaignsTargetingTypesService(s *Service) *AdvertisersCampaignsTargetingTypesService {
260	rs := &AdvertisersCampaignsTargetingTypesService{s: s}
261	rs.AssignedTargetingOptions = NewAdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService(s)
262	return rs
263}
264
265type AdvertisersCampaignsTargetingTypesService struct {
266	s *Service
267
268	AssignedTargetingOptions *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService
269}
270
271func NewAdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService(s *Service) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService {
272	rs := &AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService{s: s}
273	return rs
274}
275
276type AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService struct {
277	s *Service
278}
279
280func NewAdvertisersChannelsService(s *Service) *AdvertisersChannelsService {
281	rs := &AdvertisersChannelsService{s: s}
282	rs.Sites = NewAdvertisersChannelsSitesService(s)
283	return rs
284}
285
286type AdvertisersChannelsService struct {
287	s *Service
288
289	Sites *AdvertisersChannelsSitesService
290}
291
292func NewAdvertisersChannelsSitesService(s *Service) *AdvertisersChannelsSitesService {
293	rs := &AdvertisersChannelsSitesService{s: s}
294	return rs
295}
296
297type AdvertisersChannelsSitesService struct {
298	s *Service
299}
300
301func NewAdvertisersCreativesService(s *Service) *AdvertisersCreativesService {
302	rs := &AdvertisersCreativesService{s: s}
303	return rs
304}
305
306type AdvertisersCreativesService struct {
307	s *Service
308}
309
310func NewAdvertisersInsertionOrdersService(s *Service) *AdvertisersInsertionOrdersService {
311	rs := &AdvertisersInsertionOrdersService{s: s}
312	rs.TargetingTypes = NewAdvertisersInsertionOrdersTargetingTypesService(s)
313	return rs
314}
315
316type AdvertisersInsertionOrdersService struct {
317	s *Service
318
319	TargetingTypes *AdvertisersInsertionOrdersTargetingTypesService
320}
321
322func NewAdvertisersInsertionOrdersTargetingTypesService(s *Service) *AdvertisersInsertionOrdersTargetingTypesService {
323	rs := &AdvertisersInsertionOrdersTargetingTypesService{s: s}
324	rs.AssignedTargetingOptions = NewAdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService(s)
325	return rs
326}
327
328type AdvertisersInsertionOrdersTargetingTypesService struct {
329	s *Service
330
331	AssignedTargetingOptions *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService
332}
333
334func NewAdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService(s *Service) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService {
335	rs := &AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService{s: s}
336	return rs
337}
338
339type AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService struct {
340	s *Service
341}
342
343func NewAdvertisersInvoicesService(s *Service) *AdvertisersInvoicesService {
344	rs := &AdvertisersInvoicesService{s: s}
345	return rs
346}
347
348type AdvertisersInvoicesService struct {
349	s *Service
350}
351
352func NewAdvertisersLineItemsService(s *Service) *AdvertisersLineItemsService {
353	rs := &AdvertisersLineItemsService{s: s}
354	rs.TargetingTypes = NewAdvertisersLineItemsTargetingTypesService(s)
355	return rs
356}
357
358type AdvertisersLineItemsService struct {
359	s *Service
360
361	TargetingTypes *AdvertisersLineItemsTargetingTypesService
362}
363
364func NewAdvertisersLineItemsTargetingTypesService(s *Service) *AdvertisersLineItemsTargetingTypesService {
365	rs := &AdvertisersLineItemsTargetingTypesService{s: s}
366	rs.AssignedTargetingOptions = NewAdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService(s)
367	return rs
368}
369
370type AdvertisersLineItemsTargetingTypesService struct {
371	s *Service
372
373	AssignedTargetingOptions *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService
374}
375
376func NewAdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService(s *Service) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService {
377	rs := &AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService{s: s}
378	return rs
379}
380
381type AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService struct {
382	s *Service
383}
384
385func NewAdvertisersLocationListsService(s *Service) *AdvertisersLocationListsService {
386	rs := &AdvertisersLocationListsService{s: s}
387	rs.AssignedLocations = NewAdvertisersLocationListsAssignedLocationsService(s)
388	return rs
389}
390
391type AdvertisersLocationListsService struct {
392	s *Service
393
394	AssignedLocations *AdvertisersLocationListsAssignedLocationsService
395}
396
397func NewAdvertisersLocationListsAssignedLocationsService(s *Service) *AdvertisersLocationListsAssignedLocationsService {
398	rs := &AdvertisersLocationListsAssignedLocationsService{s: s}
399	return rs
400}
401
402type AdvertisersLocationListsAssignedLocationsService struct {
403	s *Service
404}
405
406func NewAdvertisersManualTriggersService(s *Service) *AdvertisersManualTriggersService {
407	rs := &AdvertisersManualTriggersService{s: s}
408	return rs
409}
410
411type AdvertisersManualTriggersService struct {
412	s *Service
413}
414
415func NewAdvertisersNegativeKeywordListsService(s *Service) *AdvertisersNegativeKeywordListsService {
416	rs := &AdvertisersNegativeKeywordListsService{s: s}
417	rs.NegativeKeywords = NewAdvertisersNegativeKeywordListsNegativeKeywordsService(s)
418	return rs
419}
420
421type AdvertisersNegativeKeywordListsService struct {
422	s *Service
423
424	NegativeKeywords *AdvertisersNegativeKeywordListsNegativeKeywordsService
425}
426
427func NewAdvertisersNegativeKeywordListsNegativeKeywordsService(s *Service) *AdvertisersNegativeKeywordListsNegativeKeywordsService {
428	rs := &AdvertisersNegativeKeywordListsNegativeKeywordsService{s: s}
429	return rs
430}
431
432type AdvertisersNegativeKeywordListsNegativeKeywordsService struct {
433	s *Service
434}
435
436func NewAdvertisersTargetingTypesService(s *Service) *AdvertisersTargetingTypesService {
437	rs := &AdvertisersTargetingTypesService{s: s}
438	rs.AssignedTargetingOptions = NewAdvertisersTargetingTypesAssignedTargetingOptionsService(s)
439	return rs
440}
441
442type AdvertisersTargetingTypesService struct {
443	s *Service
444
445	AssignedTargetingOptions *AdvertisersTargetingTypesAssignedTargetingOptionsService
446}
447
448func NewAdvertisersTargetingTypesAssignedTargetingOptionsService(s *Service) *AdvertisersTargetingTypesAssignedTargetingOptionsService {
449	rs := &AdvertisersTargetingTypesAssignedTargetingOptionsService{s: s}
450	return rs
451}
452
453type AdvertisersTargetingTypesAssignedTargetingOptionsService struct {
454	s *Service
455}
456
457func NewCombinedAudiencesService(s *Service) *CombinedAudiencesService {
458	rs := &CombinedAudiencesService{s: s}
459	return rs
460}
461
462type CombinedAudiencesService struct {
463	s *Service
464}
465
466func NewCustomBiddingAlgorithmsService(s *Service) *CustomBiddingAlgorithmsService {
467	rs := &CustomBiddingAlgorithmsService{s: s}
468	return rs
469}
470
471type CustomBiddingAlgorithmsService struct {
472	s *Service
473}
474
475func NewCustomListsService(s *Service) *CustomListsService {
476	rs := &CustomListsService{s: s}
477	return rs
478}
479
480type CustomListsService struct {
481	s *Service
482}
483
484func NewFirstAndThirdPartyAudiencesService(s *Service) *FirstAndThirdPartyAudiencesService {
485	rs := &FirstAndThirdPartyAudiencesService{s: s}
486	return rs
487}
488
489type FirstAndThirdPartyAudiencesService struct {
490	s *Service
491}
492
493func NewFloodlightGroupsService(s *Service) *FloodlightGroupsService {
494	rs := &FloodlightGroupsService{s: s}
495	return rs
496}
497
498type FloodlightGroupsService struct {
499	s *Service
500}
501
502func NewGoogleAudiencesService(s *Service) *GoogleAudiencesService {
503	rs := &GoogleAudiencesService{s: s}
504	return rs
505}
506
507type GoogleAudiencesService struct {
508	s *Service
509}
510
511func NewInventorySourceGroupsService(s *Service) *InventorySourceGroupsService {
512	rs := &InventorySourceGroupsService{s: s}
513	rs.AssignedInventorySources = NewInventorySourceGroupsAssignedInventorySourcesService(s)
514	return rs
515}
516
517type InventorySourceGroupsService struct {
518	s *Service
519
520	AssignedInventorySources *InventorySourceGroupsAssignedInventorySourcesService
521}
522
523func NewInventorySourceGroupsAssignedInventorySourcesService(s *Service) *InventorySourceGroupsAssignedInventorySourcesService {
524	rs := &InventorySourceGroupsAssignedInventorySourcesService{s: s}
525	return rs
526}
527
528type InventorySourceGroupsAssignedInventorySourcesService struct {
529	s *Service
530}
531
532func NewInventorySourcesService(s *Service) *InventorySourcesService {
533	rs := &InventorySourcesService{s: s}
534	return rs
535}
536
537type InventorySourcesService struct {
538	s *Service
539}
540
541func NewMediaService(s *Service) *MediaService {
542	rs := &MediaService{s: s}
543	return rs
544}
545
546type MediaService struct {
547	s *Service
548}
549
550func NewPartnersService(s *Service) *PartnersService {
551	rs := &PartnersService{s: s}
552	rs.Channels = NewPartnersChannelsService(s)
553	rs.TargetingTypes = NewPartnersTargetingTypesService(s)
554	return rs
555}
556
557type PartnersService struct {
558	s *Service
559
560	Channels *PartnersChannelsService
561
562	TargetingTypes *PartnersTargetingTypesService
563}
564
565func NewPartnersChannelsService(s *Service) *PartnersChannelsService {
566	rs := &PartnersChannelsService{s: s}
567	rs.Sites = NewPartnersChannelsSitesService(s)
568	return rs
569}
570
571type PartnersChannelsService struct {
572	s *Service
573
574	Sites *PartnersChannelsSitesService
575}
576
577func NewPartnersChannelsSitesService(s *Service) *PartnersChannelsSitesService {
578	rs := &PartnersChannelsSitesService{s: s}
579	return rs
580}
581
582type PartnersChannelsSitesService struct {
583	s *Service
584}
585
586func NewPartnersTargetingTypesService(s *Service) *PartnersTargetingTypesService {
587	rs := &PartnersTargetingTypesService{s: s}
588	rs.AssignedTargetingOptions = NewPartnersTargetingTypesAssignedTargetingOptionsService(s)
589	return rs
590}
591
592type PartnersTargetingTypesService struct {
593	s *Service
594
595	AssignedTargetingOptions *PartnersTargetingTypesAssignedTargetingOptionsService
596}
597
598func NewPartnersTargetingTypesAssignedTargetingOptionsService(s *Service) *PartnersTargetingTypesAssignedTargetingOptionsService {
599	rs := &PartnersTargetingTypesAssignedTargetingOptionsService{s: s}
600	return rs
601}
602
603type PartnersTargetingTypesAssignedTargetingOptionsService struct {
604	s *Service
605}
606
607func NewSdfdownloadtasksService(s *Service) *SdfdownloadtasksService {
608	rs := &SdfdownloadtasksService{s: s}
609	rs.Operations = NewSdfdownloadtasksOperationsService(s)
610	return rs
611}
612
613type SdfdownloadtasksService struct {
614	s *Service
615
616	Operations *SdfdownloadtasksOperationsService
617}
618
619func NewSdfdownloadtasksOperationsService(s *Service) *SdfdownloadtasksOperationsService {
620	rs := &SdfdownloadtasksOperationsService{s: s}
621	return rs
622}
623
624type SdfdownloadtasksOperationsService struct {
625	s *Service
626}
627
628func NewTargetingTypesService(s *Service) *TargetingTypesService {
629	rs := &TargetingTypesService{s: s}
630	rs.TargetingOptions = NewTargetingTypesTargetingOptionsService(s)
631	return rs
632}
633
634type TargetingTypesService struct {
635	s *Service
636
637	TargetingOptions *TargetingTypesTargetingOptionsService
638}
639
640func NewTargetingTypesTargetingOptionsService(s *Service) *TargetingTypesTargetingOptionsService {
641	rs := &TargetingTypesTargetingOptionsService{s: s}
642	return rs
643}
644
645type TargetingTypesTargetingOptionsService struct {
646	s *Service
647}
648
649func NewUsersService(s *Service) *UsersService {
650	rs := &UsersService{s: s}
651	return rs
652}
653
654type UsersService struct {
655	s *Service
656}
657
658// ActivateManualTriggerRequest: Request message for
659// ManualTriggerService.ActivateManualTrigger.
660type ActivateManualTriggerRequest struct {
661}
662
663// ActiveViewVideoViewabilityMetricConfig: Configuration for custom
664// Active View video viewability metrics.
665type ActiveViewVideoViewabilityMetricConfig struct {
666	// DisplayName: Required. The display name of the custom metric.
667	DisplayName string `json:"displayName,omitempty"`
668
669	// MinimumDuration: The minimum visible video duration required (in
670	// seconds) in order for an impression to be recorded. You must specify
671	// minimum_duration, minimum_quartile or both. If both are specified, an
672	// impression meets the metric criteria if either requirement is met
673	// (whichever happens first).
674	//
675	// Possible values:
676	//   "VIDEO_DURATION_UNSPECIFIED" - Value is not specified or is unknown
677	// in this version.
678	//   "VIDEO_DURATION_SECONDS_NONE" - No duration value.
679	//   "VIDEO_DURATION_SECONDS_0" - 0 seconds.
680	//   "VIDEO_DURATION_SECONDS_1" - 1 second.
681	//   "VIDEO_DURATION_SECONDS_2" - 2 seconds.
682	//   "VIDEO_DURATION_SECONDS_3" - 3 seconds.
683	//   "VIDEO_DURATION_SECONDS_4" - 4 seconds.
684	//   "VIDEO_DURATION_SECONDS_5" - 5 seconds.
685	//   "VIDEO_DURATION_SECONDS_6" - 6 seconds.
686	//   "VIDEO_DURATION_SECONDS_7" - 7 seconds.
687	//   "VIDEO_DURATION_SECONDS_8" - 8 seconds.
688	//   "VIDEO_DURATION_SECONDS_9" - 9 seconds.
689	//   "VIDEO_DURATION_SECONDS_10" - 10 seconds.
690	//   "VIDEO_DURATION_SECONDS_11" - 11 seconds.
691	//   "VIDEO_DURATION_SECONDS_12" - 12 seconds.
692	//   "VIDEO_DURATION_SECONDS_13" - 13 seconds.
693	//   "VIDEO_DURATION_SECONDS_14" - 14 seconds.
694	//   "VIDEO_DURATION_SECONDS_15" - 15 seconds.
695	//   "VIDEO_DURATION_SECONDS_30" - 30 seconds.
696	//   "VIDEO_DURATION_SECONDS_45" - 45 seconds.
697	//   "VIDEO_DURATION_SECONDS_60" - 60 seconds.
698	MinimumDuration string `json:"minimumDuration,omitempty"`
699
700	// MinimumQuartile: The minimum visible video duration required, based
701	// on the video quartiles, in order for an impression to be recorded.
702	// You must specify minimum_duration, minimum_quartile or both. If both
703	// are specified, an impression meets the metric criteria if either
704	// requirement is met (whichever happens first).
705	//
706	// Possible values:
707	//   "VIDEO_DURATION_QUARTILE_UNSPECIFIED" - Value is not specified or
708	// is unknown in this version.
709	//   "VIDEO_DURATION_QUARTILE_NONE" - No quartile value.
710	//   "VIDEO_DURATION_QUARTILE_FIRST" - First quartile.
711	//   "VIDEO_DURATION_QUARTILE_SECOND" - Second quartile (midpoint).
712	//   "VIDEO_DURATION_QUARTILE_THIRD" - Third quartile.
713	//   "VIDEO_DURATION_QUARTILE_FOURTH" - Fourth quartile (completion).
714	MinimumQuartile string `json:"minimumQuartile,omitempty"`
715
716	// MinimumViewability: Required. The minimum percentage of the video
717	// ad's pixels visible on the screen in order for an impression to be
718	// recorded.
719	//
720	// Possible values:
721	//   "VIEWABILITY_PERCENT_UNSPECIFIED" - Value is not specified or is
722	// unknown in this version.
723	//   "VIEWABILITY_PERCENT_0" - 0% viewable.
724	//   "VIEWABILITY_PERCENT_25" - 25% viewable.
725	//   "VIEWABILITY_PERCENT_50" - 50% viewable.
726	//   "VIEWABILITY_PERCENT_75" - 75% viewable.
727	//   "VIEWABILITY_PERCENT_100" - 100% viewable.
728	MinimumViewability string `json:"minimumViewability,omitempty"`
729
730	// MinimumVolume: Required. The minimum percentage of the video ad's
731	// volume required in order for an impression to be recorded.
732	//
733	// Possible values:
734	//   "VIDEO_VOLUME_PERCENT_UNSPECIFIED" - Value is not specified or is
735	// unknown in this version.
736	//   "VIDEO_VOLUME_PERCENT_0" - 0% volume.
737	//   "VIDEO_VOLUME_PERCENT_10" - 10% volume.
738	MinimumVolume string `json:"minimumVolume,omitempty"`
739
740	// ForceSendFields is a list of field names (e.g. "DisplayName") to
741	// unconditionally include in API requests. By default, fields with
742	// empty or default values are omitted from API requests. However, any
743	// non-pointer, non-interface field appearing in ForceSendFields will be
744	// sent to the server regardless of whether the field is empty or not.
745	// This may be used to include empty fields in Patch requests.
746	ForceSendFields []string `json:"-"`
747
748	// NullFields is a list of field names (e.g. "DisplayName") to include
749	// in API requests with the JSON null value. By default, fields with
750	// empty values are omitted from API requests. However, any field with
751	// an empty value appearing in NullFields will be sent to the server as
752	// null. It is an error if a field in this list has a non-empty value.
753	// This may be used to include null fields in Patch requests.
754	NullFields []string `json:"-"`
755}
756
757func (s *ActiveViewVideoViewabilityMetricConfig) MarshalJSON() ([]byte, error) {
758	type NoMethod ActiveViewVideoViewabilityMetricConfig
759	raw := NoMethod(*s)
760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
761}
762
763// Adloox: Details of Adloox settings.
764type Adloox struct {
765	// ExcludedAdlooxCategories: Adloox's brand safety settings.
766	//
767	// Possible values:
768	//   "ADLOOX_UNSPECIFIED" - This enum is only a placeholder and it
769	// doesn't specify any Adloox option.
770	//   "ADULT_CONTENT_HARD" - Adult content (hard).
771	//   "ADULT_CONTENT_SOFT" - Adult content (soft).
772	//   "ILLEGAL_CONTENT" - Illegal content.
773	//   "BORDERLINE_CONTENT" - Borderline content.
774	//   "DISCRIMINATORY_CONTENT" - Discriminatory content.
775	//   "VIOLENT_CONTENT_WEAPONS" - Violent content & weapons.
776	//   "LOW_VIEWABILITY_DOMAINS" - Low viewability domains.
777	//   "FRAUD" - Fraud.
778	ExcludedAdlooxCategories []string `json:"excludedAdlooxCategories,omitempty"`
779
780	// ForceSendFields is a list of field names (e.g.
781	// "ExcludedAdlooxCategories") to unconditionally include in API
782	// requests. By default, fields with empty or default values are omitted
783	// from API requests. However, any non-pointer, non-interface field
784	// appearing in ForceSendFields will be sent to the server regardless of
785	// whether the field is empty or not. This may be used to include empty
786	// fields in Patch requests.
787	ForceSendFields []string `json:"-"`
788
789	// NullFields is a list of field names (e.g. "ExcludedAdlooxCategories")
790	// to include in API requests with the JSON null value. By default,
791	// fields with empty values are omitted from API requests. However, any
792	// field with an empty value appearing in NullFields will be sent to the
793	// server as null. It is an error if a field in this list has a
794	// non-empty value. This may be used to include null fields in Patch
795	// requests.
796	NullFields []string `json:"-"`
797}
798
799func (s *Adloox) MarshalJSON() ([]byte, error) {
800	type NoMethod Adloox
801	raw := NoMethod(*s)
802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
803}
804
805// Advertiser: A single advertiser in Display & Video 360 (DV360).
806type Advertiser struct {
807	// AdServerConfig: Required. Immutable. Ad server related settings of
808	// the advertiser.
809	AdServerConfig *AdvertiserAdServerConfig `json:"adServerConfig,omitempty"`
810
811	// AdvertiserId: Output only. The unique ID of the advertiser. Assigned
812	// by the system.
813	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
814
815	// CreativeConfig: Required. Creative related settings of the
816	// advertiser.
817	CreativeConfig *AdvertiserCreativeConfig `json:"creativeConfig,omitempty"`
818
819	// DataAccessConfig: Settings that control how advertiser data may be
820	// accessed.
821	DataAccessConfig *AdvertiserDataAccessConfig `json:"dataAccessConfig,omitempty"`
822
823	// DisplayName: Required. The display name of the advertiser. Must be
824	// UTF-8 encoded with a maximum size of 240 bytes.
825	DisplayName string `json:"displayName,omitempty"`
826
827	// EntityStatus: Required. Controls whether or not insertion orders and
828	// line items of the advertiser can spend their budgets and bid on
829	// inventory. * Accepted values are `ENTITY_STATUS_ACTIVE`,
830	// `ENTITY_STATUS_PAUSED` and `ENTITY_STATUS_SCHEDULED_FOR_DELETION`. *
831	// If set to `ENTITY_STATUS_SCHEDULED_FOR_DELETION`, the advertiser will
832	// be deleted 30 days from when it was first scheduled for deletion.
833	//
834	// Possible values:
835	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
836	// specified or is unknown in this version.
837	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
838	// budget.
839	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
840	// budget spending are disabled. An entity can be deleted after
841	// archived. Deleted entities cannot be retrieved.
842	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
843	// budget spending are disabled.
844	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
845	// the entity.
846	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
847	// for deletion.
848	EntityStatus string `json:"entityStatus,omitempty"`
849
850	// GeneralConfig: Required. General settings of the advertiser.
851	GeneralConfig *AdvertiserGeneralConfig `json:"generalConfig,omitempty"`
852
853	// IntegrationDetails: Integration details of the advertiser. Only
854	// integrationCode is currently applicable to advertiser. Other fields
855	// of IntegrationDetails are not supported and will be ignored if
856	// provided.
857	IntegrationDetails *IntegrationDetails `json:"integrationDetails,omitempty"`
858
859	// Name: Output only. The resource name of the advertiser.
860	Name string `json:"name,omitempty"`
861
862	// PartnerId: Required. Immutable. The unique ID of the partner that the
863	// advertiser belongs to.
864	PartnerId int64 `json:"partnerId,omitempty,string"`
865
866	// PrismaEnabled: Whether integration with Mediaocean (Prisma) is
867	// enabled. By enabling this, you agree to the following: On behalf of
868	// my company, I authorize Mediaocean (Prisma) to send budget segment
869	// plans to Google, and I authorize Google to send corresponding
870	// reporting and invoices from DV360 to Mediaocean for the purposes of
871	// budget planning, billing, and reconciliation for this advertiser.
872	PrismaEnabled bool `json:"prismaEnabled,omitempty"`
873
874	// ServingConfig: Targeting settings related to ad serving of the
875	// advertiser.
876	ServingConfig *AdvertiserTargetingConfig `json:"servingConfig,omitempty"`
877
878	// UpdateTime: Output only. The timestamp when the advertiser was last
879	// updated. Assigned by the system.
880	UpdateTime string `json:"updateTime,omitempty"`
881
882	// ServerResponse contains the HTTP response code and headers from the
883	// server.
884	googleapi.ServerResponse `json:"-"`
885
886	// ForceSendFields is a list of field names (e.g. "AdServerConfig") to
887	// unconditionally include in API requests. By default, fields with
888	// empty or default values are omitted from API requests. However, any
889	// non-pointer, non-interface field appearing in ForceSendFields will be
890	// sent to the server regardless of whether the field is empty or not.
891	// This may be used to include empty fields in Patch requests.
892	ForceSendFields []string `json:"-"`
893
894	// NullFields is a list of field names (e.g. "AdServerConfig") to
895	// include in API requests with the JSON null value. By default, fields
896	// with empty values are omitted from API requests. However, any field
897	// with an empty value appearing in NullFields will be sent to the
898	// server as null. It is an error if a field in this list has a
899	// non-empty value. This may be used to include null fields in Patch
900	// requests.
901	NullFields []string `json:"-"`
902}
903
904func (s *Advertiser) MarshalJSON() ([]byte, error) {
905	type NoMethod Advertiser
906	raw := NoMethod(*s)
907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
908}
909
910// AdvertiserAdServerConfig: Ad server related settings of an
911// advertiser.
912type AdvertiserAdServerConfig struct {
913	// CmHybridConfig: The configuration for advertisers that use both
914	// Campaign Manager 360 (CM360) and third-party ad servers.
915	CmHybridConfig *CmHybridConfig `json:"cmHybridConfig,omitempty"`
916
917	// ThirdPartyOnlyConfig: The configuration for advertisers that use
918	// third-party ad servers only.
919	ThirdPartyOnlyConfig *ThirdPartyOnlyConfig `json:"thirdPartyOnlyConfig,omitempty"`
920
921	// ForceSendFields is a list of field names (e.g. "CmHybridConfig") to
922	// unconditionally include in API requests. By default, fields with
923	// empty or default values are omitted from API requests. However, any
924	// non-pointer, non-interface field appearing in ForceSendFields will be
925	// sent to the server regardless of whether the field is empty or not.
926	// This may be used to include empty fields in Patch requests.
927	ForceSendFields []string `json:"-"`
928
929	// NullFields is a list of field names (e.g. "CmHybridConfig") to
930	// include in API requests with the JSON null value. By default, fields
931	// with empty values are omitted from API requests. However, any field
932	// with an empty value appearing in NullFields will be sent to the
933	// server as null. It is an error if a field in this list has a
934	// non-empty value. This may be used to include null fields in Patch
935	// requests.
936	NullFields []string `json:"-"`
937}
938
939func (s *AdvertiserAdServerConfig) MarshalJSON() ([]byte, error) {
940	type NoMethod AdvertiserAdServerConfig
941	raw := NoMethod(*s)
942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
943}
944
945// AdvertiserCreativeConfig: Creatives related settings of an
946// advertiser.
947type AdvertiserCreativeConfig struct {
948	// DynamicCreativeEnabled: Whether or not the advertiser is enabled for
949	// dynamic creatives.
950	DynamicCreativeEnabled bool `json:"dynamicCreativeEnabled,omitempty"`
951
952	// IasClientId: An ID for configuring campaign monitoring provided by
953	// Integral Ad Service (IAS). The DV360 system will append an IAS
954	// "Campaign Monitor" tag containing this ID to the creative tag.
955	IasClientId int64 `json:"iasClientId,omitempty,string"`
956
957	// ObaComplianceDisabled: Whether or not to use DV360's Online
958	// Behavioral Advertising (OBA) compliance. Warning: Changing OBA
959	// settings may cause the audit status of your creatives to be reset by
960	// some ad exchanges, making them ineligible to serve until they are
961	// re-approved.
962	ObaComplianceDisabled bool `json:"obaComplianceDisabled,omitempty"`
963
964	// VideoCreativeDataSharingAuthorized: By setting this field to `true`,
965	// you, on behalf of your company, authorize Google to use video
966	// creatives associated with this Display & Video 360 advertiser to
967	// provide reporting and features related to the advertiser's television
968	// campaigns. Applicable only when the advertiser has a CM360 hybrid ad
969	// server configuration.
970	VideoCreativeDataSharingAuthorized bool `json:"videoCreativeDataSharingAuthorized,omitempty"`
971
972	// ForceSendFields is a list of field names (e.g.
973	// "DynamicCreativeEnabled") to unconditionally include in API requests.
974	// By default, fields with empty or default values are omitted from API
975	// requests. However, any non-pointer, non-interface field appearing in
976	// ForceSendFields will be sent to the server regardless of whether the
977	// field is empty or not. This may be used to include empty fields in
978	// Patch requests.
979	ForceSendFields []string `json:"-"`
980
981	// NullFields is a list of field names (e.g. "DynamicCreativeEnabled")
982	// to include in API requests with the JSON null value. By default,
983	// fields with empty values are omitted from API requests. However, any
984	// field with an empty value appearing in NullFields will be sent to the
985	// server as null. It is an error if a field in this list has a
986	// non-empty value. This may be used to include null fields in Patch
987	// requests.
988	NullFields []string `json:"-"`
989}
990
991func (s *AdvertiserCreativeConfig) MarshalJSON() ([]byte, error) {
992	type NoMethod AdvertiserCreativeConfig
993	raw := NoMethod(*s)
994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
995}
996
997// AdvertiserDataAccessConfig: Settings that control how advertiser
998// related data may be accessed.
999type AdvertiserDataAccessConfig struct {
1000	// SdfConfig: Structured Data Files (SDF) settings for the advertiser.
1001	// If not specified, the SDF settings of the parent partner are used.
1002	SdfConfig *AdvertiserSdfConfig `json:"sdfConfig,omitempty"`
1003
1004	// ForceSendFields is a list of field names (e.g. "SdfConfig") to
1005	// unconditionally include in API requests. By default, fields with
1006	// empty or default values are omitted from API requests. However, any
1007	// non-pointer, non-interface field appearing in ForceSendFields will be
1008	// sent to the server regardless of whether the field is empty or not.
1009	// This may be used to include empty fields in Patch requests.
1010	ForceSendFields []string `json:"-"`
1011
1012	// NullFields is a list of field names (e.g. "SdfConfig") to include in
1013	// API requests with the JSON null value. By default, fields with empty
1014	// values are omitted from API requests. However, any field with an
1015	// empty value appearing in NullFields will be sent to the server as
1016	// null. It is an error if a field in this list has a non-empty value.
1017	// This may be used to include null fields in Patch requests.
1018	NullFields []string `json:"-"`
1019}
1020
1021func (s *AdvertiserDataAccessConfig) MarshalJSON() ([]byte, error) {
1022	type NoMethod AdvertiserDataAccessConfig
1023	raw := NoMethod(*s)
1024	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1025}
1026
1027// AdvertiserGeneralConfig: General settings of an advertiser.
1028type AdvertiserGeneralConfig struct {
1029	// CurrencyCode: Required. Immutable. Advertiser's currency in ISO 4217
1030	// format. Accepted codes and the currencies they represent are:
1031	// Currency Code : Currency Name * `ARS` : Argentine Peso * `AUD` :
1032	// Australian Dollar * `BRL` : Brazilian Real * `CAD` : Canadian Dollar
1033	// * `CHF` : Swiss Franc * `CLP` : Chilean Peso * `CNY` : Chinese Yuan *
1034	// `COP` : Colombian Peso * `CZK` : Czech Koruna * `DKK` : Danish Krone
1035	// * `EGP` : Egyption Pound * `EUR` : Euro * `GBP` : British Pound *
1036	// `HKD` : Hong Kong Dollar * `HUF` : Hungarian Forint * `IDR` :
1037	// Indonesian Rupiah * `ILS` : Israeli Shekel * `INR` : Indian Rupee *
1038	// `JPY` : Japanese Yen * `KRW` : South Korean Won * `MXN` : Mexican
1039	// Pesos * `MYR` : Malaysian Ringgit * `NGN` : Nigerian Naira * `NOK` :
1040	// Norwegian Krone * `NZD` : New Zealand Dollar * `PEN` : Peruvian Nuevo
1041	// Sol * `PLN` : Polish Zloty * `RON` : New Romanian Leu * `RUB` :
1042	// Russian Ruble * `SEK` : Swedish Krona * `TRY` : Turkish Lira * `TWD`
1043	// : New Taiwan Dollar * `USD` : US Dollar * `ZAR` : South African Rand
1044	CurrencyCode string `json:"currencyCode,omitempty"`
1045
1046	// DomainUrl: Required. The domain URL of the advertiser's primary
1047	// website. The system will send this information to publishers that
1048	// require website URL to associate a campaign with an advertiser.
1049	// Provide a URL with no path or query string, beginning with `http:` or
1050	// `https:`. For example, http://www.example.com
1051	DomainUrl string `json:"domainUrl,omitempty"`
1052
1053	// TimeZone: Output only. The standard TZ database name of the
1054	// advertiser's time zone. For example, `America/New_York`. See more at:
1055	// https://en.wikipedia.org/wiki/List_of_tz_database_time_zones For
1056	// CM360 hybrid advertisers, the time zone is the same as that of the
1057	// associated CM360 account; for third-party only advertisers, the time
1058	// zone is the same as that of the parent partner.
1059	TimeZone string `json:"timeZone,omitempty"`
1060
1061	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
1062	// unconditionally include in API requests. By default, fields with
1063	// empty or default values are omitted from API requests. However, any
1064	// non-pointer, non-interface field appearing in ForceSendFields will be
1065	// sent to the server regardless of whether the field is empty or not.
1066	// This may be used to include empty fields in Patch requests.
1067	ForceSendFields []string `json:"-"`
1068
1069	// NullFields is a list of field names (e.g. "CurrencyCode") to include
1070	// in API requests with the JSON null value. By default, fields with
1071	// empty values are omitted from API requests. However, any field with
1072	// an empty value appearing in NullFields will be sent to the server as
1073	// null. It is an error if a field in this list has a non-empty value.
1074	// This may be used to include null fields in Patch requests.
1075	NullFields []string `json:"-"`
1076}
1077
1078func (s *AdvertiserGeneralConfig) MarshalJSON() ([]byte, error) {
1079	type NoMethod AdvertiserGeneralConfig
1080	raw := NoMethod(*s)
1081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1082}
1083
1084// AdvertiserSdfConfig: Structured Data Files (SDF) settings of an
1085// advertiser.
1086type AdvertiserSdfConfig struct {
1087	// OverridePartnerSdfConfig: Whether or not this advertiser overrides
1088	// the SDF configuration of its parent partner. By default, an
1089	// advertiser inherits the SDF configuration from the parent partner. To
1090	// override the partner configuration, set this field to `true` and
1091	// provide the new configuration in sdfConfig.
1092	OverridePartnerSdfConfig bool `json:"overridePartnerSdfConfig,omitempty"`
1093
1094	// SdfConfig: The SDF configuration for the advertiser. * Required when
1095	// overridePartnerSdfConfig is `true`. * Output only when
1096	// overridePartnerSdfConfig is `false`.
1097	SdfConfig *SdfConfig `json:"sdfConfig,omitempty"`
1098
1099	// ForceSendFields is a list of field names (e.g.
1100	// "OverridePartnerSdfConfig") to unconditionally include in API
1101	// requests. By default, fields with empty or default values are omitted
1102	// from API requests. However, any non-pointer, non-interface field
1103	// appearing in ForceSendFields will be sent to the server regardless of
1104	// whether the field is empty or not. This may be used to include empty
1105	// fields in Patch requests.
1106	ForceSendFields []string `json:"-"`
1107
1108	// NullFields is a list of field names (e.g. "OverridePartnerSdfConfig")
1109	// to include in API requests with the JSON null value. By default,
1110	// fields with empty values are omitted from API requests. However, any
1111	// field with an empty value appearing in NullFields will be sent to the
1112	// server as null. It is an error if a field in this list has a
1113	// non-empty value. This may be used to include null fields in Patch
1114	// requests.
1115	NullFields []string `json:"-"`
1116}
1117
1118func (s *AdvertiserSdfConfig) MarshalJSON() ([]byte, error) {
1119	type NoMethod AdvertiserSdfConfig
1120	raw := NoMethod(*s)
1121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1122}
1123
1124// AdvertiserTargetingConfig: Targeting settings related to ad serving
1125// of an advertiser.
1126type AdvertiserTargetingConfig struct {
1127	// ExemptTvFromViewabilityTargeting: Whether or not connected TV devices
1128	// are exempt from viewability targeting for all video line items under
1129	// the advertiser.
1130	ExemptTvFromViewabilityTargeting bool `json:"exemptTvFromViewabilityTargeting,omitempty"`
1131
1132	// ForceSendFields is a list of field names (e.g.
1133	// "ExemptTvFromViewabilityTargeting") to unconditionally include in API
1134	// requests. By default, fields with empty or default values are omitted
1135	// from API requests. However, any non-pointer, non-interface field
1136	// appearing in ForceSendFields will be sent to the server regardless of
1137	// whether the field is empty or not. This may be used to include empty
1138	// fields in Patch requests.
1139	ForceSendFields []string `json:"-"`
1140
1141	// NullFields is a list of field names (e.g.
1142	// "ExemptTvFromViewabilityTargeting") to include in API requests with
1143	// the JSON null value. By default, fields with empty values are omitted
1144	// from API requests. However, any field with an empty value appearing
1145	// in NullFields will be sent to the server as null. It is an error if a
1146	// field in this list has a non-empty value. This may be used to include
1147	// null fields in Patch requests.
1148	NullFields []string `json:"-"`
1149}
1150
1151func (s *AdvertiserTargetingConfig) MarshalJSON() ([]byte, error) {
1152	type NoMethod AdvertiserTargetingConfig
1153	raw := NoMethod(*s)
1154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1155}
1156
1157// AgeRangeAssignedTargetingOptionDetails: Represents a targetable age
1158// range. This will be populated in the details field of an
1159// AssignedTargetingOption when targeting_type is
1160// `TARGETING_TYPE_AGE_RANGE`.
1161type AgeRangeAssignedTargetingOptionDetails struct {
1162	// AgeRange: Output only. The age range of an audience. We only support
1163	// targeting a continuous age range of an audience. Thus, the age range
1164	// represented in this field can be 1) targeted solely, or, 2) part of a
1165	// larger continuous age range. The reach of a continuous age range
1166	// targeting can be expanded by also targeting an audience of an unknown
1167	// age.
1168	//
1169	// Possible values:
1170	//   "AGE_RANGE_UNSPECIFIED" - Default value when age range is not
1171	// specified in this version. This enum is a placeholder for default
1172	// value and does not represent a real age range option.
1173	//   "AGE_RANGE_18_24" - The age range of the audience is 18 to 24.
1174	//   "AGE_RANGE_25_34" - The age range of the audience is 25 to 34.
1175	//   "AGE_RANGE_35_44" - The age range of the audience is 35 to 44.
1176	//   "AGE_RANGE_45_54" - The age range of the audience is 45 to 54.
1177	//   "AGE_RANGE_55_64" - The age range of the audience is 55 to 64.
1178	//   "AGE_RANGE_65_PLUS" - The age range of the audience is 65 and up.
1179	//   "AGE_RANGE_UNKNOWN" - The age range of the audience is unknown.
1180	AgeRange string `json:"ageRange,omitempty"`
1181
1182	// TargetingOptionId: Required. The targeting_option_id of a
1183	// TargetingOption of type `TARGETING_TYPE_AGE_RANGE`.
1184	TargetingOptionId string `json:"targetingOptionId,omitempty"`
1185
1186	// ForceSendFields is a list of field names (e.g. "AgeRange") to
1187	// unconditionally include in API requests. By default, fields with
1188	// empty or default values are omitted from API requests. However, any
1189	// non-pointer, non-interface field appearing in ForceSendFields will be
1190	// sent to the server regardless of whether the field is empty or not.
1191	// This may be used to include empty fields in Patch requests.
1192	ForceSendFields []string `json:"-"`
1193
1194	// NullFields is a list of field names (e.g. "AgeRange") to include in
1195	// API requests with the JSON null value. By default, fields with empty
1196	// values are omitted from API requests. However, any field with an
1197	// empty value appearing in NullFields will be sent to the server as
1198	// null. It is an error if a field in this list has a non-empty value.
1199	// This may be used to include null fields in Patch requests.
1200	NullFields []string `json:"-"`
1201}
1202
1203func (s *AgeRangeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
1204	type NoMethod AgeRangeAssignedTargetingOptionDetails
1205	raw := NoMethod(*s)
1206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1207}
1208
1209// AgeRangeTargetingOptionDetails: Represents a targetable age range.
1210// This will be populated in the age_range_details field when
1211// targeting_type is `TARGETING_TYPE_AGE_RANGE`.
1212type AgeRangeTargetingOptionDetails struct {
1213	// AgeRange: Output only. The age range of an audience.
1214	//
1215	// Possible values:
1216	//   "AGE_RANGE_UNSPECIFIED" - Default value when age range is not
1217	// specified in this version. This enum is a placeholder for default
1218	// value and does not represent a real age range option.
1219	//   "AGE_RANGE_18_24" - The age range of the audience is 18 to 24.
1220	//   "AGE_RANGE_25_34" - The age range of the audience is 25 to 34.
1221	//   "AGE_RANGE_35_44" - The age range of the audience is 35 to 44.
1222	//   "AGE_RANGE_45_54" - The age range of the audience is 45 to 54.
1223	//   "AGE_RANGE_55_64" - The age range of the audience is 55 to 64.
1224	//   "AGE_RANGE_65_PLUS" - The age range of the audience is 65 and up.
1225	//   "AGE_RANGE_UNKNOWN" - The age range of the audience is unknown.
1226	AgeRange string `json:"ageRange,omitempty"`
1227
1228	// ForceSendFields is a list of field names (e.g. "AgeRange") to
1229	// unconditionally include in API requests. By default, fields with
1230	// empty or default values are omitted from API requests. However, any
1231	// non-pointer, non-interface field appearing in ForceSendFields will be
1232	// sent to the server regardless of whether the field is empty or not.
1233	// This may be used to include empty fields in Patch requests.
1234	ForceSendFields []string `json:"-"`
1235
1236	// NullFields is a list of field names (e.g. "AgeRange") to include in
1237	// API requests with the JSON null value. By default, fields with empty
1238	// values are omitted from API requests. However, any field with an
1239	// empty value appearing in NullFields will be sent to the server as
1240	// null. It is an error if a field in this list has a non-empty value.
1241	// This may be used to include null fields in Patch requests.
1242	NullFields []string `json:"-"`
1243}
1244
1245func (s *AgeRangeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
1246	type NoMethod AgeRangeTargetingOptionDetails
1247	raw := NoMethod(*s)
1248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1249}
1250
1251// AppAssignedTargetingOptionDetails: Details for assigned app targeting
1252// option. This will be populated in the details field of an
1253// AssignedTargetingOption when targeting_type is `TARGETING_TYPE_APP`.
1254type AppAssignedTargetingOptionDetails struct {
1255	// AppId: Required. The ID of the app. Android's Play store app uses
1256	// bundle ID, for example `com.google.android.gm`. Apple's App store app
1257	// ID uses 9 digit string, for example `422689480`.
1258	AppId string `json:"appId,omitempty"`
1259
1260	// AppPlatform: Indicates the platform of the targeted app. If this
1261	// field is not specified, the app platform will be assumed to be mobile
1262	// (i.e., Android or iOS), and we will derive the appropriate mobile
1263	// platform from the app ID.
1264	//
1265	// Possible values:
1266	//   "APP_PLATFORM_UNSPECIFIED" - Default value when app platform is not
1267	// specified in this version. This enum is a placeholder for default
1268	// value and does not represent a real platform option.
1269	//   "APP_PLATFORM_IOS" - The app platform is iOS.
1270	//   "APP_PLATFORM_ANDROID" - The app platform is Android.
1271	//   "APP_PLATFORM_ROKU" - The app platform is Roku.
1272	//   "APP_PLATFORM_AMAZON_FIRETV" - The app platform is Amazon FireTV.
1273	//   "APP_PLATFORM_PLAYSTATION" - The app platform is Playstation.
1274	//   "APP_PLATFORM_APPLE_TV" - The app platform is Apple TV.
1275	//   "APP_PLATFORM_XBOX" - The app platform is Xbox.
1276	//   "APP_PLATFORM_SAMSUNG_TV" - The app platform is Samsung TV.
1277	//   "APP_PLATFORM_ANDROID_TV" - The app platform is Android TV.
1278	//   "APP_PLATFORM_GENERIC_CTV" - The app platform is a CTV platform
1279	// that is not explicitly listed elsewhere.
1280	AppPlatform string `json:"appPlatform,omitempty"`
1281
1282	// DisplayName: Output only. The display name of the app.
1283	DisplayName string `json:"displayName,omitempty"`
1284
1285	// Negative: Indicates if this option is being negatively targeted.
1286	Negative bool `json:"negative,omitempty"`
1287
1288	// ForceSendFields is a list of field names (e.g. "AppId") to
1289	// unconditionally include in API requests. By default, fields with
1290	// empty or default values are omitted from API requests. However, any
1291	// non-pointer, non-interface field appearing in ForceSendFields will be
1292	// sent to the server regardless of whether the field is empty or not.
1293	// This may be used to include empty fields in Patch requests.
1294	ForceSendFields []string `json:"-"`
1295
1296	// NullFields is a list of field names (e.g. "AppId") to include in API
1297	// requests with the JSON null value. By default, fields with empty
1298	// values are omitted from API requests. However, any field with an
1299	// empty value appearing in NullFields will be sent to the server as
1300	// null. It is an error if a field in this list has a non-empty value.
1301	// This may be used to include null fields in Patch requests.
1302	NullFields []string `json:"-"`
1303}
1304
1305func (s *AppAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
1306	type NoMethod AppAssignedTargetingOptionDetails
1307	raw := NoMethod(*s)
1308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1309}
1310
1311// AppCategoryAssignedTargetingOptionDetails: Details for assigned app
1312// category targeting option. This will be populated in the
1313// app_category_details field of an AssignedTargetingOption when
1314// targeting_type is `TARGETING_TYPE_APP_CATEGORY`.
1315type AppCategoryAssignedTargetingOptionDetails struct {
1316	// DisplayName: Output only. The display name of the app category.
1317	DisplayName string `json:"displayName,omitempty"`
1318
1319	// Negative: Indicates if this option is being negatively targeted.
1320	Negative bool `json:"negative,omitempty"`
1321
1322	// TargetingOptionId: Required. The targeting_option_id field when
1323	// targeting_type is `TARGETING_TYPE_APP_CATEGORY`.
1324	TargetingOptionId string `json:"targetingOptionId,omitempty"`
1325
1326	// ForceSendFields is a list of field names (e.g. "DisplayName") to
1327	// unconditionally include in API requests. By default, fields with
1328	// empty or default values are omitted from API requests. However, any
1329	// non-pointer, non-interface field appearing in ForceSendFields will be
1330	// sent to the server regardless of whether the field is empty or not.
1331	// This may be used to include empty fields in Patch requests.
1332	ForceSendFields []string `json:"-"`
1333
1334	// NullFields is a list of field names (e.g. "DisplayName") to include
1335	// in API requests with the JSON null value. By default, fields with
1336	// empty values are omitted from API requests. However, any field with
1337	// an empty value appearing in NullFields will be sent to the server as
1338	// null. It is an error if a field in this list has a non-empty value.
1339	// This may be used to include null fields in Patch requests.
1340	NullFields []string `json:"-"`
1341}
1342
1343func (s *AppCategoryAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
1344	type NoMethod AppCategoryAssignedTargetingOptionDetails
1345	raw := NoMethod(*s)
1346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1347}
1348
1349// AppCategoryTargetingOptionDetails: Represents a targetable collection
1350// of apps. A collection lets you target dynamic groups of related apps
1351// that are maintained by the platform, for example `All Apps/Google
1352// Play/Games`. This will be populated in the app_category_details field
1353// when targeting_type is `TARGETING_TYPE_APP_CATEGORY`.
1354type AppCategoryTargetingOptionDetails struct {
1355	// DisplayName: Output only. The name of the app collection.
1356	DisplayName string `json:"displayName,omitempty"`
1357
1358	// ForceSendFields is a list of field names (e.g. "DisplayName") to
1359	// unconditionally include in API requests. By default, fields with
1360	// empty or default values are omitted from API requests. However, any
1361	// non-pointer, non-interface field appearing in ForceSendFields will be
1362	// sent to the server regardless of whether the field is empty or not.
1363	// This may be used to include empty fields in Patch requests.
1364	ForceSendFields []string `json:"-"`
1365
1366	// NullFields is a list of field names (e.g. "DisplayName") to include
1367	// in API requests with the JSON null value. By default, fields with
1368	// empty values are omitted from API requests. However, any field with
1369	// an empty value appearing in NullFields will be sent to the server as
1370	// null. It is an error if a field in this list has a non-empty value.
1371	// This may be used to include null fields in Patch requests.
1372	NullFields []string `json:"-"`
1373}
1374
1375func (s *AppCategoryTargetingOptionDetails) MarshalJSON() ([]byte, error) {
1376	type NoMethod AppCategoryTargetingOptionDetails
1377	raw := NoMethod(*s)
1378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1379}
1380
1381// Asset: A single asset.
1382type Asset struct {
1383	// Content: The asset content. For uploaded assets, the content is the
1384	// serving path.
1385	Content string `json:"content,omitempty"`
1386
1387	// MediaId: Media ID of the uploaded asset. This is a unique identifier
1388	// for the asset. This ID can be passed to other API calls, e.g.
1389	// CreateCreative to associate the asset with a creative.
1390	MediaId int64 `json:"mediaId,omitempty,string"`
1391
1392	// ForceSendFields is a list of field names (e.g. "Content") to
1393	// unconditionally include in API requests. By default, fields with
1394	// empty or default values are omitted from API requests. However, any
1395	// non-pointer, non-interface field appearing in ForceSendFields will be
1396	// sent to the server regardless of whether the field is empty or not.
1397	// This may be used to include empty fields in Patch requests.
1398	ForceSendFields []string `json:"-"`
1399
1400	// NullFields is a list of field names (e.g. "Content") to include in
1401	// API requests with the JSON null value. By default, fields with empty
1402	// values are omitted from API requests. However, any field with an
1403	// empty value appearing in NullFields will be sent to the server as
1404	// null. It is an error if a field in this list has a non-empty value.
1405	// This may be used to include null fields in Patch requests.
1406	NullFields []string `json:"-"`
1407}
1408
1409func (s *Asset) MarshalJSON() ([]byte, error) {
1410	type NoMethod Asset
1411	raw := NoMethod(*s)
1412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1413}
1414
1415// AssetAssociation: Asset association for the creative.
1416type AssetAssociation struct {
1417	// Asset: The associated asset.
1418	Asset *Asset `json:"asset,omitempty"`
1419
1420	// Role: The role of this asset for the creative.
1421	//
1422	// Possible values:
1423	//   "ASSET_ROLE_UNSPECIFIED" - Asset role is not specified or is
1424	// unknown in this version.
1425	//   "ASSET_ROLE_MAIN" - The asset is the main asset of the creative.
1426	//   "ASSET_ROLE_BACKUP" - The asset is a backup asset of the creative.
1427	//   "ASSET_ROLE_POLITE_LOAD" - The asset is a polite load asset of the
1428	// creative.
1429	//   "ASSET_ROLE_HEADLINE" - Headline of a native creative. The content
1430	// must be UTF-8 encoded with a length of no more than 25 characters.
1431	// This role is only supported in following creative_type: *
1432	// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1433	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1434	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1435	// `CREATIVE_TYPE_NATIVE_VIDEO`
1436	//   "ASSET_ROLE_LONG_HEADLINE" - Long headline of a native creative.
1437	// The content must be UTF-8 encoded with a length of no more than 50
1438	// characters. This role is only supported in following creative_type: *
1439	// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1440	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1441	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1442	// `CREATIVE_TYPE_NATIVE_VIDEO`
1443	//   "ASSET_ROLE_BODY" - Body text of a native creative. The content
1444	// must be UTF-8 encoded with a length of no more than 90 characters.
1445	// This role is only supported in following creative_type: *
1446	// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1447	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1448	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1449	// `CREATIVE_TYPE_NATIVE_VIDEO`
1450	//   "ASSET_ROLE_LONG_BODY" - Long body text of a native creative. The
1451	// content must be UTF-8 encoded with a length of no more than 150
1452	// characters. This role is only supported in following creative_type: *
1453	// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1454	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1455	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1456	// `CREATIVE_TYPE_NATIVE_VIDEO`
1457	//   "ASSET_ROLE_CAPTION_URL" - A short, friendly version of the landing
1458	// page URL to show in the creative. This URL gives people an idea of
1459	// where they'll arrive after they click on the creative. The content
1460	// must be UTF-8 encoded with a length of no more than 30 characters.
1461	// For example, if the landing page URL is
1462	// 'http://www.example.com/page', the caption URL can be 'example.com'.
1463	// The protocol (http://) is optional, but the URL can't contain spaces
1464	// or special characters. This role is only supported in following
1465	// creative_type: * `CREATIVE_TYPE_NATIVE` *
1466	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1467	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1468	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1469	// `CREATIVE_TYPE_NATIVE_VIDEO`
1470	//   "ASSET_ROLE_CALL_TO_ACTION" - The text to use on the call-to-action
1471	// button of a native creative. The content must be UTF-8 encoded with a
1472	// length of no more than 15 characters. This role is only supported in
1473	// following creative_type: * `CREATIVE_TYPE_NATIVE` *
1474	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1475	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1476	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1477	// `CREATIVE_TYPE_NATIVE_VIDEO`
1478	//   "ASSET_ROLE_ADVERTISER_NAME" - The text that identifies the
1479	// advertiser or brand name. The content must be UTF-8 encoded with a
1480	// length of no more than 25 characters. This role is only supported in
1481	// following creative_type: * `CREATIVE_TYPE_NATIVE` *
1482	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1483	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1484	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1485	// `CREATIVE_TYPE_NATIVE_VIDEO`
1486	//   "ASSET_ROLE_PRICE" - The purchase price of your app in the Google
1487	// play store or iOS app store (for example, $5.99). Note that this
1488	// value is not automatically synced with the actual value listed in the
1489	// store. It will always be the one provided when save the creative. The
1490	// content must be UTF-8 encoded with a length of no more than 15
1491	// characters. This role is only supported in following creative_type: *
1492	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1493	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
1494	//   "ASSET_ROLE_ANDROID_APP_ID" - The ID of an Android app in the
1495	// Google play store. You can find this ID in the App’s Google Play
1496	// Store URL after ‘id’. For example, in
1497	// https://play.google.com/store/apps/details?id=com.company.appname the
1498	// identifier is com.company.appname. This role is only supported in
1499	// following creative_type: * `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1500	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
1501	//   "ASSET_ROLE_IOS_APP_ID" - The ID of an iOS app in the Apple app
1502	// store. This ID number can be found in the Apple App Store URL as the
1503	// string of numbers directly after "id". For example, in
1504	// https://apps.apple.com/us/app/gmail-email-by-google/id422689480 the
1505	// ID is 422689480. This role is only supported in following
1506	// creative_type: * `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1507	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
1508	//   "ASSET_ROLE_RATING" - The rating of an app in the Google play store
1509	// or iOS app store. Note that this value is not automatically synced
1510	// with the actual rating in the store. It will always be the one
1511	// provided when save the creative. This role is only supported in
1512	// following creative_type: * `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1513	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
1514	//   "ASSET_ROLE_ICON" - The icon of a creative. This role is only
1515	// supported and required in following creative_type: *
1516	// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1517	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1518	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
1519	//   "ASSET_ROLE_COVER_IMAGE" - The cover image of a native video
1520	// creative. This role is only supported and required in following
1521	// creative_type: * `CREATIVE_TYPE_VIDEO`
1522	Role string `json:"role,omitempty"`
1523
1524	// ForceSendFields is a list of field names (e.g. "Asset") to
1525	// unconditionally include in API requests. By default, fields with
1526	// empty or default values are omitted from API requests. However, any
1527	// non-pointer, non-interface field appearing in ForceSendFields will be
1528	// sent to the server regardless of whether the field is empty or not.
1529	// This may be used to include empty fields in Patch requests.
1530	ForceSendFields []string `json:"-"`
1531
1532	// NullFields is a list of field names (e.g. "Asset") to include in API
1533	// requests with the JSON null value. By default, fields with empty
1534	// values are omitted from API requests. However, any field with an
1535	// empty value appearing in NullFields will be sent to the server as
1536	// null. It is an error if a field in this list has a non-empty value.
1537	// This may be used to include null fields in Patch requests.
1538	NullFields []string `json:"-"`
1539}
1540
1541func (s *AssetAssociation) MarshalJSON() ([]byte, error) {
1542	type NoMethod AssetAssociation
1543	raw := NoMethod(*s)
1544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1545}
1546
1547// AssignedInventorySource: An assignment between a targetable inventory
1548// source and an inventory source group.
1549type AssignedInventorySource struct {
1550	// AssignedInventorySourceId: Output only. The unique ID of the assigned
1551	// inventory source. The ID is only unique within a given inventory
1552	// source group. It may be reused in other contexts.
1553	AssignedInventorySourceId int64 `json:"assignedInventorySourceId,omitempty,string"`
1554
1555	// InventorySourceId: Required. The ID of the inventory source entity
1556	// being targeted.
1557	InventorySourceId string `json:"inventorySourceId,omitempty"`
1558
1559	// Name: Output only. The resource name of the assigned inventory
1560	// source.
1561	Name string `json:"name,omitempty"`
1562
1563	// ServerResponse contains the HTTP response code and headers from the
1564	// server.
1565	googleapi.ServerResponse `json:"-"`
1566
1567	// ForceSendFields is a list of field names (e.g.
1568	// "AssignedInventorySourceId") to unconditionally include in API
1569	// requests. By default, fields with empty or default values are omitted
1570	// from API requests. However, any non-pointer, non-interface field
1571	// appearing in ForceSendFields will be sent to the server regardless of
1572	// whether the field is empty or not. This may be used to include empty
1573	// fields in Patch requests.
1574	ForceSendFields []string `json:"-"`
1575
1576	// NullFields is a list of field names (e.g.
1577	// "AssignedInventorySourceId") to include in API requests with the JSON
1578	// null value. By default, fields with empty values are omitted from API
1579	// requests. However, any field with an empty value appearing in
1580	// NullFields will be sent to the server as null. It is an error if a
1581	// field in this list has a non-empty value. This may be used to include
1582	// null fields in Patch requests.
1583	NullFields []string `json:"-"`
1584}
1585
1586func (s *AssignedInventorySource) MarshalJSON() ([]byte, error) {
1587	type NoMethod AssignedInventorySource
1588	raw := NoMethod(*s)
1589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1590}
1591
1592// AssignedLocation: An assignment between a location list and a
1593// relevant targeting option. Currently, geo region targeting options
1594// are the only supported option for assignment.
1595type AssignedLocation struct {
1596	// AssignedLocationId: Output only. The unique ID of the assigned
1597	// location. The ID is only unique within a location list. It may be
1598	// reused in other contexts.
1599	AssignedLocationId int64 `json:"assignedLocationId,omitempty,string"`
1600
1601	// Name: Output only. The resource name of the assigned location.
1602	Name string `json:"name,omitempty"`
1603
1604	// TargetingOptionId: Required. The ID of the targeting option assigned
1605	// to the location list. Must be of type TARGETING_TYPE_GEO_REGION.
1606	TargetingOptionId string `json:"targetingOptionId,omitempty"`
1607
1608	// ServerResponse contains the HTTP response code and headers from the
1609	// server.
1610	googleapi.ServerResponse `json:"-"`
1611
1612	// ForceSendFields is a list of field names (e.g. "AssignedLocationId")
1613	// to unconditionally include in API requests. By default, fields with
1614	// empty or default values are omitted from API requests. However, any
1615	// non-pointer, non-interface field appearing in ForceSendFields will be
1616	// sent to the server regardless of whether the field is empty or not.
1617	// This may be used to include empty fields in Patch requests.
1618	ForceSendFields []string `json:"-"`
1619
1620	// NullFields is a list of field names (e.g. "AssignedLocationId") to
1621	// include in API requests with the JSON null value. By default, fields
1622	// with empty values are omitted from API requests. However, any field
1623	// with an empty value appearing in NullFields will be sent to the
1624	// server as null. It is an error if a field in this list has a
1625	// non-empty value. This may be used to include null fields in Patch
1626	// requests.
1627	NullFields []string `json:"-"`
1628}
1629
1630func (s *AssignedLocation) MarshalJSON() ([]byte, error) {
1631	type NoMethod AssignedLocation
1632	raw := NoMethod(*s)
1633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1634}
1635
1636// AssignedTargetingOption: A single assigned targeting option, which
1637// defines the state of a targeting option for an entity with targeting
1638// settings.
1639type AssignedTargetingOption struct {
1640	// AgeRangeDetails: Age range details. This field will be populated when
1641	// the targeting_type is `TARGETING_TYPE_AGE_RANGE`.
1642	AgeRangeDetails *AgeRangeAssignedTargetingOptionDetails `json:"ageRangeDetails,omitempty"`
1643
1644	// AppCategoryDetails: App category details. This field will be
1645	// populated when the targeting_type is `TARGETING_TYPE_APP_CATEGORY`.
1646	AppCategoryDetails *AppCategoryAssignedTargetingOptionDetails `json:"appCategoryDetails,omitempty"`
1647
1648	// AppDetails: App details. This field will be populated when the
1649	// targeting_type is `TARGETING_TYPE_APP`.
1650	AppDetails *AppAssignedTargetingOptionDetails `json:"appDetails,omitempty"`
1651
1652	// AssignedTargetingOptionId: Output only. The unique ID of the assigned
1653	// targeting option. The ID is only unique within a given resource and
1654	// targeting type. It may be reused in other contexts.
1655	AssignedTargetingOptionId string `json:"assignedTargetingOptionId,omitempty"`
1656
1657	// AudienceGroupDetails: Audience targeting details. This field will be
1658	// populated when the targeting_type is `TARGETING_TYPE_AUDIENCE_GROUP`.
1659	// You can only target one audience group option per resource.
1660	AudienceGroupDetails *AudienceGroupAssignedTargetingOptionDetails `json:"audienceGroupDetails,omitempty"`
1661
1662	// AuthorizedSellerStatusDetails: Authorized seller status details. This
1663	// field will be populated when the targeting_type is
1664	// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. You can only target one
1665	// authorized seller status option per resource. If a resource doesn't
1666	// have an authorized seller status option, all authorized sellers
1667	// indicated as DIRECT or RESELLER in the ads.txt file are targeted by
1668	// default.
1669	AuthorizedSellerStatusDetails *AuthorizedSellerStatusAssignedTargetingOptionDetails `json:"authorizedSellerStatusDetails,omitempty"`
1670
1671	// BrowserDetails: Browser details. This field will be populated when
1672	// the targeting_type is `TARGETING_TYPE_BROWSER`.
1673	BrowserDetails *BrowserAssignedTargetingOptionDetails `json:"browserDetails,omitempty"`
1674
1675	// BusinessChainDetails: Business chain details. This field will be
1676	// populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`.
1677	BusinessChainDetails *BusinessChainAssignedTargetingOptionDetails `json:"businessChainDetails,omitempty"`
1678
1679	// CarrierAndIspDetails: Carrier and ISP details. This field will be
1680	// populated when the targeting_type is
1681	// `TARGETING_TYPE_CARRIER_AND_ISP`.
1682	CarrierAndIspDetails *CarrierAndIspAssignedTargetingOptionDetails `json:"carrierAndIspDetails,omitempty"`
1683
1684	// CategoryDetails: Category details. This field will be populated when
1685	// the targeting_type is `TARGETING_TYPE_CATEGORY`. Targeting a category
1686	// will also target its subcategories. If a category is excluded from
1687	// targeting and a subcategory is included, the exclusion will take
1688	// precedence.
1689	CategoryDetails *CategoryAssignedTargetingOptionDetails `json:"categoryDetails,omitempty"`
1690
1691	// ChannelDetails: Channel details. This field will be populated when
1692	// the targeting_type is `TARGETING_TYPE_CHANNEL`.
1693	ChannelDetails *ChannelAssignedTargetingOptionDetails `json:"channelDetails,omitempty"`
1694
1695	// ContentInstreamPositionDetails: Content instream position details.
1696	// This field will be populated when the targeting_type is
1697	// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
1698	ContentInstreamPositionDetails *ContentInstreamPositionAssignedTargetingOptionDetails `json:"contentInstreamPositionDetails,omitempty"`
1699
1700	// ContentOutstreamPositionDetails: Content outstream position details.
1701	// This field will be populated when the targeting_type is
1702	// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
1703	ContentOutstreamPositionDetails *ContentOutstreamPositionAssignedTargetingOptionDetails `json:"contentOutstreamPositionDetails,omitempty"`
1704
1705	// DayAndTimeDetails: Day and time details. This field will be populated
1706	// when the targeting_type is `TARGETING_TYPE_DAY_AND_TIME`.
1707	DayAndTimeDetails *DayAndTimeAssignedTargetingOptionDetails `json:"dayAndTimeDetails,omitempty"`
1708
1709	// DeviceMakeModelDetails: Device make and model details. This field
1710	// will be populated when the targeting_type is
1711	// `TARGETING_TYPE_DEVICE_MAKE_MODEL`.
1712	DeviceMakeModelDetails *DeviceMakeModelAssignedTargetingOptionDetails `json:"deviceMakeModelDetails,omitempty"`
1713
1714	// DeviceTypeDetails: Device Type details. This field will be populated
1715	// when the targeting_type is `TARGETING_TYPE_DEVICE_TYPE`.
1716	DeviceTypeDetails *DeviceTypeAssignedTargetingOptionDetails `json:"deviceTypeDetails,omitempty"`
1717
1718	// DigitalContentLabelExclusionDetails: Digital content label details.
1719	// This field will be populated when the targeting_type is
1720	// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`. Digital content
1721	// labels are targeting exclusions. Advertiser level digital content
1722	// label exclusions, if set, are always applied in serving (even though
1723	// they aren't visible in resource settings). Resource settings can
1724	// exclude content labels in addition to advertiser exclusions, but
1725	// can't override them. A line item won't serve if all the digital
1726	// content labels are excluded.
1727	DigitalContentLabelExclusionDetails *DigitalContentLabelAssignedTargetingOptionDetails `json:"digitalContentLabelExclusionDetails,omitempty"`
1728
1729	// EnvironmentDetails: Environment details. This field will be populated
1730	// when the targeting_type is `TARGETING_TYPE_ENVIRONMENT`.
1731	EnvironmentDetails *EnvironmentAssignedTargetingOptionDetails `json:"environmentDetails,omitempty"`
1732
1733	// ExchangeDetails: Exchange details. This field will be populated when
1734	// the targeting_type is `TARGETING_TYPE_EXCHANGE`.
1735	ExchangeDetails *ExchangeAssignedTargetingOptionDetails `json:"exchangeDetails,omitempty"`
1736
1737	// GenderDetails: Gender details. This field will be populated when the
1738	// targeting_type is `TARGETING_TYPE_GENDER`.
1739	GenderDetails *GenderAssignedTargetingOptionDetails `json:"genderDetails,omitempty"`
1740
1741	// GeoRegionDetails: Geographic region details. This field will be
1742	// populated when the targeting_type is `TARGETING_TYPE_GEO_REGION`.
1743	GeoRegionDetails *GeoRegionAssignedTargetingOptionDetails `json:"geoRegionDetails,omitempty"`
1744
1745	// HouseholdIncomeDetails: Household income details. This field will be
1746	// populated when the targeting_type is
1747	// `TARGETING_TYPE_HOUSEHOLD_INCOME`.
1748	HouseholdIncomeDetails *HouseholdIncomeAssignedTargetingOptionDetails `json:"householdIncomeDetails,omitempty"`
1749
1750	// Inheritance: Output only. The inheritance status of the assigned
1751	// targeting option.
1752	//
1753	// Possible values:
1754	//   "INHERITANCE_UNSPECIFIED" - The inheritance is unspecified or
1755	// unknown.
1756	//   "NOT_INHERITED" - The assigned targeting option is not inherited
1757	// from higher level entity.
1758	//   "INHERITED_FROM_PARTNER" - The assigned targeting option is
1759	// inherited from partner targeting settings.
1760	//   "INHERITED_FROM_ADVERTISER" - The assigned targeting option is
1761	// inherited from advertiser targeting settings.
1762	Inheritance string `json:"inheritance,omitempty"`
1763
1764	// InventorySourceDetails: Inventory source details. This field will be
1765	// populated when the targeting_type is
1766	// `TARGETING_TYPE_INVENTORY_SOURCE`.
1767	InventorySourceDetails *InventorySourceAssignedTargetingOptionDetails `json:"inventorySourceDetails,omitempty"`
1768
1769	// InventorySourceGroupDetails: Inventory source group details. This
1770	// field will be populated when the targeting_type is
1771	// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`.
1772	InventorySourceGroupDetails *InventorySourceGroupAssignedTargetingOptionDetails `json:"inventorySourceGroupDetails,omitempty"`
1773
1774	// KeywordDetails: Keyword details. This field will be populated when
1775	// the targeting_type is `TARGETING_TYPE_KEYWORD`. A maximum of 5000
1776	// direct negative keywords can be assigned to a resource. No limit on
1777	// number of positive keywords that can be assigned.
1778	KeywordDetails *KeywordAssignedTargetingOptionDetails `json:"keywordDetails,omitempty"`
1779
1780	// LanguageDetails: Language details. This field will be populated when
1781	// the targeting_type is `TARGETING_TYPE_LANGUAGE`.
1782	LanguageDetails *LanguageAssignedTargetingOptionDetails `json:"languageDetails,omitempty"`
1783
1784	// Name: Output only. The resource name for this assigned targeting
1785	// option.
1786	Name string `json:"name,omitempty"`
1787
1788	// NativeContentPositionDetails: Native content position details. This
1789	// field will be populated when the targeting_type is
1790	// `TARGETING_TYPE_NATIVE_CONTENT_POSITION`.
1791	NativeContentPositionDetails *NativeContentPositionAssignedTargetingOptionDetails `json:"nativeContentPositionDetails,omitempty"`
1792
1793	// NegativeKeywordListDetails: Keyword details. This field will be
1794	// populated when the targeting_type is
1795	// `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative
1796	// keyword lists can be assigned to a resource.
1797	NegativeKeywordListDetails *NegativeKeywordListAssignedTargetingOptionDetails `json:"negativeKeywordListDetails,omitempty"`
1798
1799	// OmidDetails: Open Measurement enabled inventory details. This field
1800	// will be populated when the targeting_type is `TARGETING_TYPE_OMID`.
1801	OmidDetails *OmidAssignedTargetingOptionDetails `json:"omidDetails,omitempty"`
1802
1803	// OnScreenPositionDetails: On screen position details. This field will
1804	// be populated when the targeting_type is
1805	// `TARGETING_TYPE_ON_SCREEN_POSITION`.
1806	OnScreenPositionDetails *OnScreenPositionAssignedTargetingOptionDetails `json:"onScreenPositionDetails,omitempty"`
1807
1808	// OperatingSystemDetails: Operating system details. This field will be
1809	// populated when the targeting_type is
1810	// `TARGETING_TYPE_OPERATING_SYSTEM`.
1811	OperatingSystemDetails *OperatingSystemAssignedTargetingOptionDetails `json:"operatingSystemDetails,omitempty"`
1812
1813	// ParentalStatusDetails: Parental status details. This field will be
1814	// populated when the targeting_type is
1815	// `TARGETING_TYPE_PARENTAL_STATUS`.
1816	ParentalStatusDetails *ParentalStatusAssignedTargetingOptionDetails `json:"parentalStatusDetails,omitempty"`
1817
1818	// PoiDetails: POI details. This field will be populated when the
1819	// targeting_type is `TARGETING_TYPE_POI`.
1820	PoiDetails *PoiAssignedTargetingOptionDetails `json:"poiDetails,omitempty"`
1821
1822	// ProximityLocationListDetails: Proximity location list details. This
1823	// field will be populated when the targeting_type is
1824	// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`.
1825	ProximityLocationListDetails *ProximityLocationListAssignedTargetingOptionDetails `json:"proximityLocationListDetails,omitempty"`
1826
1827	// RegionalLocationListDetails: Regional location list details. This
1828	// field will be populated when the targeting_type is
1829	// `TARGETING_TYPE_REGIONAL_LOCATION_LIST`.
1830	RegionalLocationListDetails *RegionalLocationListAssignedTargetingOptionDetails `json:"regionalLocationListDetails,omitempty"`
1831
1832	// SensitiveCategoryExclusionDetails: Sensitive category details. This
1833	// field will be populated when the targeting_type is
1834	// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. Sensitive categories
1835	// are targeting exclusions. Advertiser level sensitive category
1836	// exclusions, if set, are always applied in serving (even though they
1837	// aren't visible in resource settings). Resource settings can exclude
1838	// sensitive categories in addition to advertiser exclusions, but can't
1839	// override them.
1840	SensitiveCategoryExclusionDetails *SensitiveCategoryAssignedTargetingOptionDetails `json:"sensitiveCategoryExclusionDetails,omitempty"`
1841
1842	// SubExchangeDetails: Sub-exchange details. This field will be
1843	// populated when the targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`.
1844	SubExchangeDetails *SubExchangeAssignedTargetingOptionDetails `json:"subExchangeDetails,omitempty"`
1845
1846	// TargetingType: Output only. Identifies the type of this assigned
1847	// targeting option.
1848	//
1849	// Possible values:
1850	//   "TARGETING_TYPE_UNSPECIFIED" - Default value when type is not
1851	// specified or is unknown in this version.
1852	//   "TARGETING_TYPE_CHANNEL" - Target a channel (a custom group of
1853	// related websites or apps).
1854	//   "TARGETING_TYPE_APP_CATEGORY" - Target an app category (for
1855	// example, education or puzzle games).
1856	//   "TARGETING_TYPE_APP" - Target a specific app (for example, Angry
1857	// Birds).
1858	//   "TARGETING_TYPE_URL" - Target a specific url (for example,
1859	// quora.com).
1860	//   "TARGETING_TYPE_DAY_AND_TIME" - Target ads during a chosen time
1861	// period on a specific day.
1862	//   "TARGETING_TYPE_AGE_RANGE" - Target ads to a specific age range
1863	// (for example, 18-24).
1864	//   "TARGETING_TYPE_REGIONAL_LOCATION_LIST" - Target ads to the
1865	// specified regions on a regional location list.
1866	//   "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" - Target ads to the
1867	// specified points of interest on a proximity location list.
1868	//   "TARGETING_TYPE_GENDER" - Target ads to a specific gender (for
1869	// example, female or male).
1870	//   "TARGETING_TYPE_VIDEO_PLAYER_SIZE" - Target a specific video player
1871	// size for video ads.
1872	//   "TARGETING_TYPE_USER_REWARDED_CONTENT" - Target user rewarded
1873	// content for video ads.
1874	//   "TARGETING_TYPE_PARENTAL_STATUS" - Target ads to a specific
1875	// parental status (for example, parent or not a parent).
1876	//   "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" - Target video or audio
1877	// ads in a specific content instream position (for example, pre-roll,
1878	// mid-roll, or post-roll).
1879	//   "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" - Target ads in a
1880	// specific content outstream position.
1881	//   "TARGETING_TYPE_DEVICE_TYPE" - Target ads to a specific device type
1882	// (for example, tablet or connected TV).
1883	//   "TARGETING_TYPE_AUDIENCE_GROUP" - Target ads to an audience or
1884	// groups of audiences. Singleton field, at most one can exist on a
1885	// single Lineitem at a time.
1886	//   "TARGETING_TYPE_BROWSER" - Target ads to specific web browsers (for
1887	// example, Chrome).
1888	//   "TARGETING_TYPE_HOUSEHOLD_INCOME" - Target ads to a specific
1889	// household income range (for example, top 10%).
1890	//   "TARGETING_TYPE_ON_SCREEN_POSITION" - Target ads in a specific on
1891	// screen position.
1892	//   "TARGETING_TYPE_THIRD_PARTY_VERIFIER" - Filter web sites through
1893	// third party verification (for example, IAS or DoubleVerify).
1894	//   "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" - Filter web sites
1895	// by specific digital content label ratings (for example, DL-MA:
1896	// suitable only for mature audiences).
1897	//   "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" - Filter website
1898	// content by sensitive categories (for example, adult).
1899	//   "TARGETING_TYPE_ENVIRONMENT" - Target ads to a specific environment
1900	// (for example, web or app).
1901	//   "TARGETING_TYPE_CARRIER_AND_ISP" - Target ads to a specific network
1902	// carrier or internet service provider (ISP) (for example, Comcast or
1903	// Orange).
1904	//   "TARGETING_TYPE_OPERATING_SYSTEM" - Target ads to a specific
1905	// operating system (for example, macOS).
1906	//   "TARGETING_TYPE_DEVICE_MAKE_MODEL" - Target ads to a specific
1907	// device make or model (for example, Roku or Samsung).
1908	//   "TARGETING_TYPE_KEYWORD" - Target ads to a specific keyword (for
1909	// example, dog or retriever).
1910	//   "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" - Target ads to a specific
1911	// negative keyword list.
1912	//   "TARGETING_TYPE_VIEWABILITY" - Target ads to a specific viewability
1913	// (for example, 80% viewable).
1914	//   "TARGETING_TYPE_CATEGORY" - Target ads to a specific content
1915	// category (for example, arts & entertainment).
1916	//   "TARGETING_TYPE_INVENTORY_SOURCE" - Purchase impressions from
1917	// specific deals and auction packages.
1918	//   "TARGETING_TYPE_LANGUAGE" - Target ads to a specific language (for
1919	// example, English or Japanese).
1920	//   "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" - Target ads to ads.txt
1921	// authorized sellers.
1922	//   "TARGETING_TYPE_GEO_REGION" - Target ads to a specific regional
1923	// location (for example, a city or state).
1924	//   "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" - Purchase impressions from
1925	// a group of deals and auction packages.
1926	//   "TARGETING_TYPE_EXCHANGE" - Purchase impressions from specific
1927	// exchanges.
1928	//   "TARGETING_TYPE_SUB_EXCHANGE" - Purchase impressions from specific
1929	// sub-exchanges.
1930	//   "TARGETING_TYPE_POI" - Target ads around a specific point of
1931	// interest, such as a notable building, a street address, or
1932	// latitude/longitude coordinates.
1933	//   "TARGETING_TYPE_BUSINESS_CHAIN" - Target ads around locations of a
1934	// business chain within a specific geo region.
1935	//   "TARGETING_TYPE_NATIVE_CONTENT_POSITION" - Target ads to a specific
1936	// native content position.
1937	//   "TARGETING_TYPE_OMID" - Target ads in an Open Measurement enabled
1938	// inventory.
1939	TargetingType string `json:"targetingType,omitempty"`
1940
1941	// ThirdPartyVerifierDetails: Third party verification details. This
1942	// field will be populated when the targeting_type is
1943	// `TARGETING_TYPE_THIRD_PARTY_VERIFIER`.
1944	ThirdPartyVerifierDetails *ThirdPartyVerifierAssignedTargetingOptionDetails `json:"thirdPartyVerifierDetails,omitempty"`
1945
1946	// UrlDetails: URL details. This field will be populated when the
1947	// targeting_type is `TARGETING_TYPE_URL`.
1948	UrlDetails *UrlAssignedTargetingOptionDetails `json:"urlDetails,omitempty"`
1949
1950	// UserRewardedContentDetails: User rewarded content details. This field
1951	// will be populated when the targeting_type is
1952	// `TARGETING_TYPE_USER_REWARDED_CONTENT`.
1953	UserRewardedContentDetails *UserRewardedContentAssignedTargetingOptionDetails `json:"userRewardedContentDetails,omitempty"`
1954
1955	// VideoPlayerSizeDetails: Video player size details. This field will be
1956	// populated when the targeting_type is
1957	// `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.
1958	VideoPlayerSizeDetails *VideoPlayerSizeAssignedTargetingOptionDetails `json:"videoPlayerSizeDetails,omitempty"`
1959
1960	// ViewabilityDetails: Viewability details. This field will be populated
1961	// when the targeting_type is `TARGETING_TYPE_VIEWABILITY`. You can only
1962	// target one viewability option per resource.
1963	ViewabilityDetails *ViewabilityAssignedTargetingOptionDetails `json:"viewabilityDetails,omitempty"`
1964
1965	// ServerResponse contains the HTTP response code and headers from the
1966	// server.
1967	googleapi.ServerResponse `json:"-"`
1968
1969	// ForceSendFields is a list of field names (e.g. "AgeRangeDetails") to
1970	// unconditionally include in API requests. By default, fields with
1971	// empty or default values are omitted from API requests. However, any
1972	// non-pointer, non-interface field appearing in ForceSendFields will be
1973	// sent to the server regardless of whether the field is empty or not.
1974	// This may be used to include empty fields in Patch requests.
1975	ForceSendFields []string `json:"-"`
1976
1977	// NullFields is a list of field names (e.g. "AgeRangeDetails") to
1978	// include in API requests with the JSON null value. By default, fields
1979	// with empty values are omitted from API requests. However, any field
1980	// with an empty value appearing in NullFields will be sent to the
1981	// server as null. It is an error if a field in this list has a
1982	// non-empty value. This may be used to include null fields in Patch
1983	// requests.
1984	NullFields []string `json:"-"`
1985}
1986
1987func (s *AssignedTargetingOption) MarshalJSON() ([]byte, error) {
1988	type NoMethod AssignedTargetingOption
1989	raw := NoMethod(*s)
1990	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1991}
1992
1993// AssignedUserRole: A single assigned user role, which defines a user's
1994// authorized interaction with a specified partner or advertiser.
1995type AssignedUserRole struct {
1996	// AdvertiserId: The ID of the advertiser that the assigend user role
1997	// applies to.
1998	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
1999
2000	// AssignedUserRoleId: Output only. The ID of the assigned user role.
2001	AssignedUserRoleId string `json:"assignedUserRoleId,omitempty"`
2002
2003	// PartnerId: The ID of the partner that the assigned user role applies
2004	// to.
2005	PartnerId int64 `json:"partnerId,omitempty,string"`
2006
2007	// UserRole: Required. The user role to assign to a user for the entity.
2008	//
2009	// Possible values:
2010	//   "USER_ROLE_UNSPECIFIED" - Default value when the user role is not
2011	// specified or is unknown in this version.
2012	//   "ADMIN" - The user can manage campaigns, creatives, insertion
2013	// orders, line items, and reports for the entity. They can view and
2014	// edit billing information, create or modify users, and enable or
2015	// disable exchanges. This role can only be assigned for a partner
2016	// entity.
2017	//   "ADMIN_PARTNER_CLIENT" - The user can manage campaigns, creatives,
2018	// insertion orders, line items, and reports for the entity. They can
2019	// create and modify other `ADMIN_PARTNER_CLIENT` users and view billing
2020	// information. They cannot view revenue models, markups, or any other
2021	// reseller-sensitive fields. This role can only be assigned for a
2022	// partner entity.
2023	//   "STANDARD" - The user can manage campaigns, creatives, insertion
2024	// orders, line items, and reports for the entity. They cannot create
2025	// and modify users or view billing information.
2026	//   "STANDARD_PLANNER" - The user can view all campaigns, creatives,
2027	// insertion orders, line items, and reports for the entity, including
2028	// all cost data. They can create and modify planning-related features,
2029	// including plans and inventory.
2030	//   "STANDARD_PLANNER_LIMITED" - The user can view all campaigns,
2031	// creatives, insertion orders, line items, and reports for the entity.
2032	// They can create or modify planning-related features, including plans
2033	// and inventory. They have no access to cost data and cannot start,
2034	// accept, or negotiate deals.
2035	//   "STANDARD_PARTNER_CLIENT" - The user can manage campaigns,
2036	// creatives, insertion orders, line items, and reports for the entity.
2037	// They cannot create or modify other users or view billing information.
2038	// They cannot view revenue models, markups, or any other
2039	// reseller-sensitive fields. This role can only be assigned for an
2040	// advertiser entity.
2041	//   "READ_ONLY" - The user can only build reports and view data for the
2042	// entity.
2043	//   "REPORTING_ONLY" - The user can only create and manage reports.
2044	//   "LIMITED_REPORTING_ONLY" - The user can only create and manage the
2045	// following client-safe reports: General, Audience Performance,
2046	// Cross-Partner, Keyword, Order ID, Category, and Third-Party Data
2047	// Provider.
2048	//   "CREATIVE" - The user can view media plan information they need to
2049	// collaborate, but can't view cost-related data or Marketplace.
2050	//   "CREATIVE_ADMIN" - The user can view media plan information they
2051	// need to collaborate, but can't view cost-related data or Marketplace.
2052	// In addition, they can add other creative admins or creative users to
2053	// the entity.
2054	UserRole string `json:"userRole,omitempty"`
2055
2056	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
2057	// unconditionally include in API requests. By default, fields with
2058	// empty or default values are omitted from API requests. However, any
2059	// non-pointer, non-interface field appearing in ForceSendFields will be
2060	// sent to the server regardless of whether the field is empty or not.
2061	// This may be used to include empty fields in Patch requests.
2062	ForceSendFields []string `json:"-"`
2063
2064	// NullFields is a list of field names (e.g. "AdvertiserId") to include
2065	// in API requests with the JSON null value. By default, fields with
2066	// empty values are omitted from API requests. However, any field with
2067	// an empty value appearing in NullFields will be sent to the server as
2068	// null. It is an error if a field in this list has a non-empty value.
2069	// This may be used to include null fields in Patch requests.
2070	NullFields []string `json:"-"`
2071}
2072
2073func (s *AssignedUserRole) MarshalJSON() ([]byte, error) {
2074	type NoMethod AssignedUserRole
2075	raw := NoMethod(*s)
2076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2077}
2078
2079// AudienceGroupAssignedTargetingOptionDetails: Assigned audience group
2080// targeting option details. This will be populated in the details field
2081// of an AssignedTargetingOption when targeting_type is
2082// `TARGETING_TYPE_AUDIENCE_GROUP`. The relation between each group is
2083// UNION, except for excluded_first_and_third_party_audience_group and
2084// excluded_google_audience_group, of which COMPLEMENT is UNION'ed with
2085// other groups.
2086type AudienceGroupAssignedTargetingOptionDetails struct {
2087	// ExcludedFirstAndThirdPartyAudienceGroup: The first and third party
2088	// audience ids and recencies of the excluded first and third party
2089	// audience group. Used for negative targeting. Its COMPLEMENT is used
2090	// to UNION other audience groups.
2091	ExcludedFirstAndThirdPartyAudienceGroup *FirstAndThirdPartyAudienceGroup `json:"excludedFirstAndThirdPartyAudienceGroup,omitempty"`
2092
2093	// ExcludedGoogleAudienceGroup: The Google audience ids of the excluded
2094	// Google audience group. Used for negative targeting. It's COMPLEMENT
2095	// is used to UNION other audience groups. Only contains Affinity,
2096	// In-market and Installed-apps type Google audiences. All items are
2097	// logically ‘OR’ of each other.
2098	ExcludedGoogleAudienceGroup *GoogleAudienceGroup `json:"excludedGoogleAudienceGroup,omitempty"`
2099
2100	// IncludedCombinedAudienceGroup: The combined audience ids of the
2101	// included combined audience group. Contains combined audience ids
2102	// only.
2103	IncludedCombinedAudienceGroup *CombinedAudienceGroup `json:"includedCombinedAudienceGroup,omitempty"`
2104
2105	// IncludedCustomListGroup: The custom list ids of the included custom
2106	// list group. Contains custom list ids only.
2107	IncludedCustomListGroup *CustomListGroup `json:"includedCustomListGroup,omitempty"`
2108
2109	// IncludedFirstAndThirdPartyAudienceGroups: The first and third party
2110	// audience ids and recencies of included first and third party audience
2111	// groups. Each first and third party audience group contains first and
2112	// third party audience ids only. The relation between each first and
2113	// third party audience group is INTERSECTION, and the result is
2114	// UNION'ed with other audience groups. Repeated groups with same
2115	// settings will be ignored.
2116	IncludedFirstAndThirdPartyAudienceGroups []*FirstAndThirdPartyAudienceGroup `json:"includedFirstAndThirdPartyAudienceGroups,omitempty"`
2117
2118	// IncludedGoogleAudienceGroup: The Google audience ids of the included
2119	// Google audience group. Contains Google audience ids only.
2120	IncludedGoogleAudienceGroup *GoogleAudienceGroup `json:"includedGoogleAudienceGroup,omitempty"`
2121
2122	// ForceSendFields is a list of field names (e.g.
2123	// "ExcludedFirstAndThirdPartyAudienceGroup") to unconditionally include
2124	// in API requests. By default, fields with empty or default values are
2125	// omitted from API requests. However, any non-pointer, non-interface
2126	// field appearing in ForceSendFields will be sent to the server
2127	// regardless of whether the field is empty or not. This may be used to
2128	// include empty fields in Patch requests.
2129	ForceSendFields []string `json:"-"`
2130
2131	// NullFields is a list of field names (e.g.
2132	// "ExcludedFirstAndThirdPartyAudienceGroup") to include in API requests
2133	// with the JSON null value. By default, fields with empty values are
2134	// omitted from API requests. However, any field with an empty value
2135	// appearing in NullFields will be sent to the server as null. It is an
2136	// error if a field in this list has a non-empty value. This may be used
2137	// to include null fields in Patch requests.
2138	NullFields []string `json:"-"`
2139}
2140
2141func (s *AudienceGroupAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
2142	type NoMethod AudienceGroupAssignedTargetingOptionDetails
2143	raw := NoMethod(*s)
2144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2145}
2146
2147// AudioVideoOffset: The length an audio or a video has been played.
2148type AudioVideoOffset struct {
2149	// Percentage: The offset in percentage of the audio or video duration.
2150	Percentage int64 `json:"percentage,omitempty,string"`
2151
2152	// Seconds: The offset in seconds from the start of the audio or video.
2153	Seconds int64 `json:"seconds,omitempty,string"`
2154
2155	// ForceSendFields is a list of field names (e.g. "Percentage") to
2156	// unconditionally include in API requests. By default, fields with
2157	// empty or default values are omitted from API requests. However, any
2158	// non-pointer, non-interface field appearing in ForceSendFields will be
2159	// sent to the server regardless of whether the field is empty or not.
2160	// This may be used to include empty fields in Patch requests.
2161	ForceSendFields []string `json:"-"`
2162
2163	// NullFields is a list of field names (e.g. "Percentage") to include in
2164	// API requests with the JSON null value. By default, fields with empty
2165	// values are omitted from API requests. However, any field with an
2166	// empty value appearing in NullFields will be sent to the server as
2167	// null. It is an error if a field in this list has a non-empty value.
2168	// This may be used to include null fields in Patch requests.
2169	NullFields []string `json:"-"`
2170}
2171
2172func (s *AudioVideoOffset) MarshalJSON() ([]byte, error) {
2173	type NoMethod AudioVideoOffset
2174	raw := NoMethod(*s)
2175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2176}
2177
2178// AuditAdvertiserResponse: Response message for
2179// AdvertiserService.AuditAdvertiser.
2180type AuditAdvertiserResponse struct {
2181	// AdGroupCriteriaCount: The number of individual targeting options from
2182	// the following targeting types that are assigned to a line item under
2183	// this advertiser. These individual targeting options count towards the
2184	// limit of 4500000 ad group targeting options per advertiser.
2185	// Qualifying Targeting types: * Channels, URLs, apps, and collections *
2186	// Demographic * Google Audiences, including Affinity, Custom Affinity,
2187	// and In-market audiences * Inventory source * Keyword * Mobile app
2188	// category * User lists * Video targeting * Viewability
2189	AdGroupCriteriaCount int64 `json:"adGroupCriteriaCount,omitempty,string"`
2190
2191	// CampaignCriteriaCount: The number of individual targeting options
2192	// from the following targeting types that are assigned to a line item
2193	// under this advertiser. These individual targeting options count
2194	// towards the limit of 900000 campaign targeting options per
2195	// advertiser. Qualifying Targeting types: * Position * Browser *
2196	// Connection speed * Day and time * Device and operating system *
2197	// Digital content label * Sensitive categories * Environment *
2198	// Geography, including business chains and proximity * ISP * Language *
2199	// Third-party verification
2200	CampaignCriteriaCount int64 `json:"campaignCriteriaCount,omitempty,string"`
2201
2202	// ChannelsCount: The number of channels created under this advertiser.
2203	// These channels count towards the limit of 1000 channels per
2204	// advertiser.
2205	ChannelsCount int64 `json:"channelsCount,omitempty,string"`
2206
2207	// NegativeKeywordListsCount: The number of negative keyword lists
2208	// created under this advertiser. These negative keyword lists count
2209	// towards the limit of 20 negative keyword lists per advertiser.
2210	NegativeKeywordListsCount int64 `json:"negativeKeywordListsCount,omitempty,string"`
2211
2212	// NegativelyTargetedChannelsCount: The number of negatively targeted
2213	// channels created under this advertiser. These negatively targeted
2214	// channels count towards the limit of 5 negatively targeted channels
2215	// per advertiser.
2216	NegativelyTargetedChannelsCount int64 `json:"negativelyTargetedChannelsCount,omitempty,string"`
2217
2218	// UsedCampaignsCount: The number of ACTIVE and PAUSED campaigns under
2219	// this advertiser. These campaigns count towards the limit of 9999
2220	// campaigns per advertiser.
2221	UsedCampaignsCount int64 `json:"usedCampaignsCount,omitempty,string"`
2222
2223	// UsedInsertionOrdersCount: The number of ACTIVE, PAUSED and DRAFT
2224	// insertion orders under this advertiser. These insertion orders count
2225	// towards the limit of 9999 insertion orders per advertiser.
2226	UsedInsertionOrdersCount int64 `json:"usedInsertionOrdersCount,omitempty,string"`
2227
2228	// UsedLineItemsCount: The number of ACTIVE, PAUSED, and DRAFT line
2229	// items under this advertiser. These line items count towards the limit
2230	// of 9999 line items per advertiser.
2231	UsedLineItemsCount int64 `json:"usedLineItemsCount,omitempty,string"`
2232
2233	// ServerResponse contains the HTTP response code and headers from the
2234	// server.
2235	googleapi.ServerResponse `json:"-"`
2236
2237	// ForceSendFields is a list of field names (e.g.
2238	// "AdGroupCriteriaCount") to unconditionally include in API requests.
2239	// By default, fields with empty or default values are omitted from API
2240	// requests. However, any non-pointer, non-interface field appearing in
2241	// ForceSendFields will be sent to the server regardless of whether the
2242	// field is empty or not. This may be used to include empty fields in
2243	// Patch requests.
2244	ForceSendFields []string `json:"-"`
2245
2246	// NullFields is a list of field names (e.g. "AdGroupCriteriaCount") to
2247	// include in API requests with the JSON null value. By default, fields
2248	// with empty values are omitted from API requests. However, any field
2249	// with an empty value appearing in NullFields will be sent to the
2250	// server as null. It is an error if a field in this list has a
2251	// non-empty value. This may be used to include null fields in Patch
2252	// requests.
2253	NullFields []string `json:"-"`
2254}
2255
2256func (s *AuditAdvertiserResponse) MarshalJSON() ([]byte, error) {
2257	type NoMethod AuditAdvertiserResponse
2258	raw := NoMethod(*s)
2259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2260}
2261
2262// AuthorizedSellerStatusAssignedTargetingOptionDetails: Represents an
2263// assigned authorized seller status. This will be populated in the
2264// details field of an AssignedTargetingOption when targeting_type is
2265// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
2266type AuthorizedSellerStatusAssignedTargetingOptionDetails struct {
2267	// AuthorizedSellerStatus: Output only. The authorized seller status to
2268	// target.
2269	//
2270	// Possible values:
2271	//   "AUTHORIZED_SELLER_STATUS_UNSPECIFIED" - Default value when
2272	// authorized seller status is not specified in this version. This enum
2273	// is a placeholder for default value and does not represent a real
2274	// authorized seller status option.
2275	//   "AUTHORIZED_SELLER_STATUS_AUTHORIZED_DIRECT_SELLERS_ONLY" - Only
2276	// authorized sellers that directly own the inventory being monetized,
2277	// as indicated by a DIRECT declaration in the ads.txt file.
2278	//
2279	// "AUTHORIZED_SELLER_STATUS_AUTHORIZED_AND_NON_PARTICIPATING_PUBLISHERS"
2280	//  - All authorized sellers, including publishers that have not posted
2281	// an ads.txt file. Display & Video 360 automatically disallows
2282	// unauthorized sellers.
2283	AuthorizedSellerStatus string `json:"authorizedSellerStatus,omitempty"`
2284
2285	// TargetingOptionId: Required. The targeting_option_id of a
2286	// TargetingOption of type `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
2287	TargetingOptionId string `json:"targetingOptionId,omitempty"`
2288
2289	// ForceSendFields is a list of field names (e.g.
2290	// "AuthorizedSellerStatus") to unconditionally include in API requests.
2291	// By default, fields with empty or default values are omitted from API
2292	// requests. However, any non-pointer, non-interface field appearing in
2293	// ForceSendFields will be sent to the server regardless of whether the
2294	// field is empty or not. This may be used to include empty fields in
2295	// Patch requests.
2296	ForceSendFields []string `json:"-"`
2297
2298	// NullFields is a list of field names (e.g. "AuthorizedSellerStatus")
2299	// to include in API requests with the JSON null value. By default,
2300	// fields with empty values are omitted from API requests. However, any
2301	// field with an empty value appearing in NullFields will be sent to the
2302	// server as null. It is an error if a field in this list has a
2303	// non-empty value. This may be used to include null fields in Patch
2304	// requests.
2305	NullFields []string `json:"-"`
2306}
2307
2308func (s *AuthorizedSellerStatusAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
2309	type NoMethod AuthorizedSellerStatusAssignedTargetingOptionDetails
2310	raw := NoMethod(*s)
2311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2312}
2313
2314// AuthorizedSellerStatusTargetingOptionDetails: Represents a targetable
2315// authorized seller status. This will be populated in the
2316// authorized_seller_status_details field when targeting_type is
2317// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
2318type AuthorizedSellerStatusTargetingOptionDetails struct {
2319	// AuthorizedSellerStatus: Output only. The authorized seller status.
2320	//
2321	// Possible values:
2322	//   "AUTHORIZED_SELLER_STATUS_UNSPECIFIED" - Default value when
2323	// authorized seller status is not specified in this version. This enum
2324	// is a placeholder for default value and does not represent a real
2325	// authorized seller status option.
2326	//   "AUTHORIZED_SELLER_STATUS_AUTHORIZED_DIRECT_SELLERS_ONLY" - Only
2327	// authorized sellers that directly own the inventory being monetized,
2328	// as indicated by a DIRECT declaration in the ads.txt file.
2329	//
2330	// "AUTHORIZED_SELLER_STATUS_AUTHORIZED_AND_NON_PARTICIPATING_PUBLISHERS"
2331	//  - All authorized sellers, including publishers that have not posted
2332	// an ads.txt file. Display & Video 360 automatically disallows
2333	// unauthorized sellers.
2334	AuthorizedSellerStatus string `json:"authorizedSellerStatus,omitempty"`
2335
2336	// ForceSendFields is a list of field names (e.g.
2337	// "AuthorizedSellerStatus") to unconditionally include in API requests.
2338	// By default, fields with empty or default values are omitted from API
2339	// requests. However, any non-pointer, non-interface field appearing in
2340	// ForceSendFields will be sent to the server regardless of whether the
2341	// field is empty or not. This may be used to include empty fields in
2342	// Patch requests.
2343	ForceSendFields []string `json:"-"`
2344
2345	// NullFields is a list of field names (e.g. "AuthorizedSellerStatus")
2346	// to include in API requests with the JSON null value. By default,
2347	// fields with empty values are omitted from API requests. However, any
2348	// field with an empty value appearing in NullFields will be sent to the
2349	// server as null. It is an error if a field in this list has a
2350	// non-empty value. This may be used to include null fields in Patch
2351	// requests.
2352	NullFields []string `json:"-"`
2353}
2354
2355func (s *AuthorizedSellerStatusTargetingOptionDetails) MarshalJSON() ([]byte, error) {
2356	type NoMethod AuthorizedSellerStatusTargetingOptionDetails
2357	raw := NoMethod(*s)
2358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2359}
2360
2361// BiddingStrategy: Settings that control the bid strategy. Bid strategy
2362// determines the bid price.
2363type BiddingStrategy struct {
2364	// FixedBid: A strategy that uses a fixed bid price.
2365	FixedBid *FixedBidStrategy `json:"fixedBid,omitempty"`
2366
2367	// MaximizeSpendAutoBid: A strategy that automatically adjusts the bid
2368	// to optimize to your performance goal while spending the full budget.
2369	// At insertion order level, the markup_type of line items cannot be set
2370	// to `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`. In addition, when
2371	// performance_goal_type is one of: *
2372	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA` *
2373	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC` *
2374	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED` , the
2375	// line_item_type of the insertion order line items must be either: *
2376	// `LINE_ITEM_TYPE_DISPLAY_DEFAULT` * `LINE_ITEM_TYPE_VIDEO_DEFAULT` ,
2377	// and when performance_goal_type is either: *
2378	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA` *
2379	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN` the line_item_type
2380	// of the insertion order line items must be
2381	// `LINE_ITEM_TYPE_VIDEO_DEFAULT`.
2382	MaximizeSpendAutoBid *MaximizeSpendBidStrategy `json:"maximizeSpendAutoBid,omitempty"`
2383
2384	// PerformanceGoalAutoBid: A strategy that automatically adjusts the bid
2385	// to meet or beat a specified performance goal. It is to be used only
2386	// for a line item entity.
2387	PerformanceGoalAutoBid *PerformanceGoalBidStrategy `json:"performanceGoalAutoBid,omitempty"`
2388
2389	// ForceSendFields is a list of field names (e.g. "FixedBid") to
2390	// unconditionally include in API requests. By default, fields with
2391	// empty or default values are omitted from API requests. However, any
2392	// non-pointer, non-interface field appearing in ForceSendFields will be
2393	// sent to the server regardless of whether the field is empty or not.
2394	// This may be used to include empty fields in Patch requests.
2395	ForceSendFields []string `json:"-"`
2396
2397	// NullFields is a list of field names (e.g. "FixedBid") to include in
2398	// API requests with the JSON null value. By default, fields with empty
2399	// values are omitted from API requests. However, any field with an
2400	// empty value appearing in NullFields will be sent to the server as
2401	// null. It is an error if a field in this list has a non-empty value.
2402	// This may be used to include null fields in Patch requests.
2403	NullFields []string `json:"-"`
2404}
2405
2406func (s *BiddingStrategy) MarshalJSON() ([]byte, error) {
2407	type NoMethod BiddingStrategy
2408	raw := NoMethod(*s)
2409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2410}
2411
2412// BrowserAssignedTargetingOptionDetails: Details for assigned browser
2413// targeting option. This will be populated in the details field of an
2414// AssignedTargetingOption when targeting_type is
2415// `TARGETING_TYPE_BROWSER`.
2416type BrowserAssignedTargetingOptionDetails struct {
2417	// DisplayName: Output only. The display name of the browser.
2418	DisplayName string `json:"displayName,omitempty"`
2419
2420	// Negative: Indicates if this option is being negatively targeted. All
2421	// assigned browser targeting options on the same resource must have the
2422	// same value for this field.
2423	Negative bool `json:"negative,omitempty"`
2424
2425	// TargetingOptionId: Required. The targeting_option_id of a
2426	// TargetingOption of type `TARGETING_TYPE_BROWSER`.
2427	TargetingOptionId string `json:"targetingOptionId,omitempty"`
2428
2429	// ForceSendFields is a list of field names (e.g. "DisplayName") to
2430	// unconditionally include in API requests. By default, fields with
2431	// empty or default values are omitted from API requests. However, any
2432	// non-pointer, non-interface field appearing in ForceSendFields will be
2433	// sent to the server regardless of whether the field is empty or not.
2434	// This may be used to include empty fields in Patch requests.
2435	ForceSendFields []string `json:"-"`
2436
2437	// NullFields is a list of field names (e.g. "DisplayName") to include
2438	// in API requests with the JSON null value. By default, fields with
2439	// empty values are omitted from API requests. However, any field with
2440	// an empty value appearing in NullFields will be sent to the server as
2441	// null. It is an error if a field in this list has a non-empty value.
2442	// This may be used to include null fields in Patch requests.
2443	NullFields []string `json:"-"`
2444}
2445
2446func (s *BrowserAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
2447	type NoMethod BrowserAssignedTargetingOptionDetails
2448	raw := NoMethod(*s)
2449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2450}
2451
2452// BrowserTargetingOptionDetails: Represents a targetable browser. This
2453// will be populated in the browser_details field when targeting_type is
2454// `TARGETING_TYPE_BROWSER`.
2455type BrowserTargetingOptionDetails struct {
2456	// DisplayName: Output only. The display name of the browser.
2457	DisplayName string `json:"displayName,omitempty"`
2458
2459	// ForceSendFields is a list of field names (e.g. "DisplayName") to
2460	// unconditionally include in API requests. By default, fields with
2461	// empty or default values are omitted from API requests. However, any
2462	// non-pointer, non-interface field appearing in ForceSendFields will be
2463	// sent to the server regardless of whether the field is empty or not.
2464	// This may be used to include empty fields in Patch requests.
2465	ForceSendFields []string `json:"-"`
2466
2467	// NullFields is a list of field names (e.g. "DisplayName") to include
2468	// in API requests with the JSON null value. By default, fields with
2469	// empty values are omitted from API requests. However, any field with
2470	// an empty value appearing in NullFields will be sent to the server as
2471	// null. It is an error if a field in this list has a non-empty value.
2472	// This may be used to include null fields in Patch requests.
2473	NullFields []string `json:"-"`
2474}
2475
2476func (s *BrowserTargetingOptionDetails) MarshalJSON() ([]byte, error) {
2477	type NoMethod BrowserTargetingOptionDetails
2478	raw := NoMethod(*s)
2479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2480}
2481
2482// BudgetSummary: Summarized information of an individual campaign
2483// budget.
2484type BudgetSummary struct {
2485	// ExternalBudgetId: Corresponds to the external_budget_id of a campaign
2486	// budget. If the value is not set in the campaign budget, this field
2487	// will be empty.
2488	ExternalBudgetId string `json:"externalBudgetId,omitempty"`
2489
2490	// PreTaxAmountMicros: The sum of charges made under this budget before
2491	// taxes, in micros of the invoice's currency. For example, if
2492	// currency_code is `USD`, then 1000000 represents one US dollar.
2493	PreTaxAmountMicros int64 `json:"preTaxAmountMicros,omitempty,string"`
2494
2495	// PrismaCpeCode: Relevant client, product, and estimate codes from the
2496	// Mediaocean Prisma tool. Only applicable for campaign budgets with an
2497	// external_budget_source of EXTERNAL_BUDGET_SOURCE_MEDIA_OCEAN.
2498	PrismaCpeCode *PrismaCpeCode `json:"prismaCpeCode,omitempty"`
2499
2500	// TaxAmountMicros: The amount of tax applied to charges under this
2501	// budget, in micros of the invoice's currency. For example, if
2502	// currency_code is `USD`, then 1000000 represents one US dollar.
2503	TaxAmountMicros int64 `json:"taxAmountMicros,omitempty,string"`
2504
2505	// TotalAmountMicros: The total sum of charges made under this budget,
2506	// including tax, in micros of the invoice's currency. For example, if
2507	// currency_code is `USD`, then 1000000 represents one US dollar.
2508	TotalAmountMicros int64 `json:"totalAmountMicros,omitempty,string"`
2509
2510	// ForceSendFields is a list of field names (e.g. "ExternalBudgetId") to
2511	// unconditionally include in API requests. By default, fields with
2512	// empty or default values are omitted from API requests. However, any
2513	// non-pointer, non-interface field appearing in ForceSendFields will be
2514	// sent to the server regardless of whether the field is empty or not.
2515	// This may be used to include empty fields in Patch requests.
2516	ForceSendFields []string `json:"-"`
2517
2518	// NullFields is a list of field names (e.g. "ExternalBudgetId") to
2519	// include in API requests with the JSON null value. By default, fields
2520	// with empty values are omitted from API requests. However, any field
2521	// with an empty value appearing in NullFields will be sent to the
2522	// server as null. It is an error if a field in this list has a
2523	// non-empty value. This may be used to include null fields in Patch
2524	// requests.
2525	NullFields []string `json:"-"`
2526}
2527
2528func (s *BudgetSummary) MarshalJSON() ([]byte, error) {
2529	type NoMethod BudgetSummary
2530	raw := NoMethod(*s)
2531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2532}
2533
2534// BulkEditAdvertiserAssignedTargetingOptionsRequest: Request message
2535// for BulkEditAdvertiserAssignedTargetingOptions.
2536type BulkEditAdvertiserAssignedTargetingOptionsRequest struct {
2537	// CreateRequests: The assigned targeting options to create in batch,
2538	// specified as a list of `CreateAssignedTargetingOptionsRequest`.
2539	// Supported targeting types: * `TARGETING_TYPE_CHANNEL` *
2540	// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
2541	// `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`
2542	CreateRequests []*CreateAssignedTargetingOptionsRequest `json:"createRequests,omitempty"`
2543
2544	// DeleteRequests: The assigned targeting options to delete in batch,
2545	// specified as a list of `DeleteAssignedTargetingOptionsRequest`.
2546	// Supported targeting types: * `TARGETING_TYPE_CHANNEL` *
2547	// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
2548	// `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`
2549	DeleteRequests []*DeleteAssignedTargetingOptionsRequest `json:"deleteRequests,omitempty"`
2550
2551	// ForceSendFields is a list of field names (e.g. "CreateRequests") to
2552	// unconditionally include in API requests. By default, fields with
2553	// empty or default values are omitted from API requests. However, any
2554	// non-pointer, non-interface field appearing in ForceSendFields will be
2555	// sent to the server regardless of whether the field is empty or not.
2556	// This may be used to include empty fields in Patch requests.
2557	ForceSendFields []string `json:"-"`
2558
2559	// NullFields is a list of field names (e.g. "CreateRequests") to
2560	// include in API requests with the JSON null value. By default, fields
2561	// with empty values are omitted from API requests. However, any field
2562	// with an empty value appearing in NullFields will be sent to the
2563	// server as null. It is an error if a field in this list has a
2564	// non-empty value. This may be used to include null fields in Patch
2565	// requests.
2566	NullFields []string `json:"-"`
2567}
2568
2569func (s *BulkEditAdvertiserAssignedTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
2570	type NoMethod BulkEditAdvertiserAssignedTargetingOptionsRequest
2571	raw := NoMethod(*s)
2572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2573}
2574
2575type BulkEditAdvertiserAssignedTargetingOptionsResponse struct {
2576	// CreatedAssignedTargetingOptions: The list of assigned targeting
2577	// options that have been successfully created. This list will be absent
2578	// if empty.
2579	CreatedAssignedTargetingOptions []*AssignedTargetingOption `json:"createdAssignedTargetingOptions,omitempty"`
2580
2581	// ServerResponse contains the HTTP response code and headers from the
2582	// server.
2583	googleapi.ServerResponse `json:"-"`
2584
2585	// ForceSendFields is a list of field names (e.g.
2586	// "CreatedAssignedTargetingOptions") to unconditionally include in API
2587	// requests. By default, fields with empty or default values are omitted
2588	// from API requests. However, any non-pointer, non-interface field
2589	// appearing in ForceSendFields will be sent to the server regardless of
2590	// whether the field is empty or not. This may be used to include empty
2591	// fields in Patch requests.
2592	ForceSendFields []string `json:"-"`
2593
2594	// NullFields is a list of field names (e.g.
2595	// "CreatedAssignedTargetingOptions") to include in API requests with
2596	// the JSON null value. By default, fields with empty values are omitted
2597	// from API requests. However, any field with an empty value appearing
2598	// in NullFields will be sent to the server as null. It is an error if a
2599	// field in this list has a non-empty value. This may be used to include
2600	// null fields in Patch requests.
2601	NullFields []string `json:"-"`
2602}
2603
2604func (s *BulkEditAdvertiserAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
2605	type NoMethod BulkEditAdvertiserAssignedTargetingOptionsResponse
2606	raw := NoMethod(*s)
2607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2608}
2609
2610// BulkEditAssignedInventorySourcesRequest: Request message for
2611// AssignedInventorySourceService.BulkEdit.
2612type BulkEditAssignedInventorySourcesRequest struct {
2613	// AdvertiserId: The ID of the advertiser that owns the parent inventory
2614	// source group. The parent partner does not have access to these
2615	// assigned inventory sources.
2616	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
2617
2618	// CreatedAssignedInventorySources: The assigned inventory sources to
2619	// create in bulk, specified as a list of AssignedInventorySources.
2620	CreatedAssignedInventorySources []*AssignedInventorySource `json:"createdAssignedInventorySources,omitempty"`
2621
2622	// DeletedAssignedInventorySources: The IDs of the assigned inventory
2623	// sources to delete in bulk, specified as a list of
2624	// assigned_inventory_source_ids.
2625	DeletedAssignedInventorySources googleapi.Int64s `json:"deletedAssignedInventorySources,omitempty"`
2626
2627	// PartnerId: The ID of the partner that owns the inventory source
2628	// group. Only this partner has write access to these assigned inventory
2629	// sources.
2630	PartnerId int64 `json:"partnerId,omitempty,string"`
2631
2632	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
2633	// unconditionally include in API requests. By default, fields with
2634	// empty or default values are omitted from API requests. However, any
2635	// non-pointer, non-interface field appearing in ForceSendFields will be
2636	// sent to the server regardless of whether the field is empty or not.
2637	// This may be used to include empty fields in Patch requests.
2638	ForceSendFields []string `json:"-"`
2639
2640	// NullFields is a list of field names (e.g. "AdvertiserId") to include
2641	// in API requests with the JSON null value. By default, fields with
2642	// empty values are omitted from API requests. However, any field with
2643	// an empty value appearing in NullFields will be sent to the server as
2644	// null. It is an error if a field in this list has a non-empty value.
2645	// This may be used to include null fields in Patch requests.
2646	NullFields []string `json:"-"`
2647}
2648
2649func (s *BulkEditAssignedInventorySourcesRequest) MarshalJSON() ([]byte, error) {
2650	type NoMethod BulkEditAssignedInventorySourcesRequest
2651	raw := NoMethod(*s)
2652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2653}
2654
2655// BulkEditAssignedInventorySourcesResponse: Response message for
2656// AssignedInventorySourceService.BulkEdit.
2657type BulkEditAssignedInventorySourcesResponse struct {
2658	// AssignedInventorySources: The list of assigned inventory sources that
2659	// have been successfully created. This list will be absent if empty.
2660	AssignedInventorySources []*AssignedInventorySource `json:"assignedInventorySources,omitempty"`
2661
2662	// ServerResponse contains the HTTP response code and headers from the
2663	// server.
2664	googleapi.ServerResponse `json:"-"`
2665
2666	// ForceSendFields is a list of field names (e.g.
2667	// "AssignedInventorySources") to unconditionally include in API
2668	// requests. By default, fields with empty or default values are omitted
2669	// from API requests. However, any non-pointer, non-interface field
2670	// appearing in ForceSendFields will be sent to the server regardless of
2671	// whether the field is empty or not. This may be used to include empty
2672	// fields in Patch requests.
2673	ForceSendFields []string `json:"-"`
2674
2675	// NullFields is a list of field names (e.g. "AssignedInventorySources")
2676	// to include in API requests with the JSON null value. By default,
2677	// fields with empty values are omitted from API requests. However, any
2678	// field with an empty value appearing in NullFields will be sent to the
2679	// server as null. It is an error if a field in this list has a
2680	// non-empty value. This may be used to include null fields in Patch
2681	// requests.
2682	NullFields []string `json:"-"`
2683}
2684
2685func (s *BulkEditAssignedInventorySourcesResponse) MarshalJSON() ([]byte, error) {
2686	type NoMethod BulkEditAssignedInventorySourcesResponse
2687	raw := NoMethod(*s)
2688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2689}
2690
2691// BulkEditAssignedLocationsRequest: Request message for
2692// AssignedLocationService.BulkEditAssignedLocations.
2693type BulkEditAssignedLocationsRequest struct {
2694	// CreatedAssignedLocations: The assigned locations to create in bulk,
2695	// specified as a list of AssignedLocations.
2696	CreatedAssignedLocations []*AssignedLocation `json:"createdAssignedLocations,omitempty"`
2697
2698	// DeletedAssignedLocations: The IDs of the assigned locations to delete
2699	// in bulk, specified as a list of assigned_location_ids.
2700	DeletedAssignedLocations googleapi.Int64s `json:"deletedAssignedLocations,omitempty"`
2701
2702	// ForceSendFields is a list of field names (e.g.
2703	// "CreatedAssignedLocations") to unconditionally include in API
2704	// requests. By default, fields with empty or default values are omitted
2705	// from API requests. However, any non-pointer, non-interface field
2706	// appearing in ForceSendFields will be sent to the server regardless of
2707	// whether the field is empty or not. This may be used to include empty
2708	// fields in Patch requests.
2709	ForceSendFields []string `json:"-"`
2710
2711	// NullFields is a list of field names (e.g. "CreatedAssignedLocations")
2712	// to include in API requests with the JSON null value. By default,
2713	// fields with empty values are omitted from API requests. However, any
2714	// field with an empty value appearing in NullFields will be sent to the
2715	// server as null. It is an error if a field in this list has a
2716	// non-empty value. This may be used to include null fields in Patch
2717	// requests.
2718	NullFields []string `json:"-"`
2719}
2720
2721func (s *BulkEditAssignedLocationsRequest) MarshalJSON() ([]byte, error) {
2722	type NoMethod BulkEditAssignedLocationsRequest
2723	raw := NoMethod(*s)
2724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2725}
2726
2727// BulkEditAssignedLocationsResponse: Response message for
2728// AssignedLocationService.BulkEditAssignedLocations.
2729type BulkEditAssignedLocationsResponse struct {
2730	// AssignedLocations: The list of assigned locations that have been
2731	// successfully created. This list will be absent if empty.
2732	AssignedLocations []*AssignedLocation `json:"assignedLocations,omitempty"`
2733
2734	// ServerResponse contains the HTTP response code and headers from the
2735	// server.
2736	googleapi.ServerResponse `json:"-"`
2737
2738	// ForceSendFields is a list of field names (e.g. "AssignedLocations")
2739	// to unconditionally include in API requests. By default, fields with
2740	// empty or default values are omitted from API requests. However, any
2741	// non-pointer, non-interface field appearing in ForceSendFields will be
2742	// sent to the server regardless of whether the field is empty or not.
2743	// This may be used to include empty fields in Patch requests.
2744	ForceSendFields []string `json:"-"`
2745
2746	// NullFields is a list of field names (e.g. "AssignedLocations") to
2747	// include in API requests with the JSON null value. By default, fields
2748	// with empty values are omitted from API requests. However, any field
2749	// with an empty value appearing in NullFields will be sent to the
2750	// server as null. It is an error if a field in this list has a
2751	// non-empty value. This may be used to include null fields in Patch
2752	// requests.
2753	NullFields []string `json:"-"`
2754}
2755
2756func (s *BulkEditAssignedLocationsResponse) MarshalJSON() ([]byte, error) {
2757	type NoMethod BulkEditAssignedLocationsResponse
2758	raw := NoMethod(*s)
2759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2760}
2761
2762// BulkEditAssignedUserRolesRequest: Request message for
2763// BulkEditAssignedUserRoles.
2764type BulkEditAssignedUserRolesRequest struct {
2765	// CreatedAssignedUserRoles: The assigned user roles to create in batch,
2766	// specified as a list of AssignedUserRoles.
2767	CreatedAssignedUserRoles []*AssignedUserRole `json:"createdAssignedUserRoles,omitempty"`
2768
2769	// DeletedAssignedUserRoles: The assigned user roles to delete in batch,
2770	// specified as a list of assigned_user_role_ids. The format of
2771	// assigned_user_role_id is `entityType-entityid`, for example
2772	// `partner-123`.
2773	DeletedAssignedUserRoles []string `json:"deletedAssignedUserRoles,omitempty"`
2774
2775	// ForceSendFields is a list of field names (e.g.
2776	// "CreatedAssignedUserRoles") to unconditionally include in API
2777	// requests. By default, fields with empty or default values are omitted
2778	// from API requests. However, any non-pointer, non-interface field
2779	// appearing in ForceSendFields will be sent to the server regardless of
2780	// whether the field is empty or not. This may be used to include empty
2781	// fields in Patch requests.
2782	ForceSendFields []string `json:"-"`
2783
2784	// NullFields is a list of field names (e.g. "CreatedAssignedUserRoles")
2785	// to include in API requests with the JSON null value. By default,
2786	// fields with empty values are omitted from API requests. However, any
2787	// field with an empty value appearing in NullFields will be sent to the
2788	// server as null. It is an error if a field in this list has a
2789	// non-empty value. This may be used to include null fields in Patch
2790	// requests.
2791	NullFields []string `json:"-"`
2792}
2793
2794func (s *BulkEditAssignedUserRolesRequest) MarshalJSON() ([]byte, error) {
2795	type NoMethod BulkEditAssignedUserRolesRequest
2796	raw := NoMethod(*s)
2797	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2798}
2799
2800type BulkEditAssignedUserRolesResponse struct {
2801	// CreatedAssignedUserRoles: The list of assigned user roles that have
2802	// been successfully created. This list will be absent if empty.
2803	CreatedAssignedUserRoles []*AssignedUserRole `json:"createdAssignedUserRoles,omitempty"`
2804
2805	// ServerResponse contains the HTTP response code and headers from the
2806	// server.
2807	googleapi.ServerResponse `json:"-"`
2808
2809	// ForceSendFields is a list of field names (e.g.
2810	// "CreatedAssignedUserRoles") to unconditionally include in API
2811	// requests. By default, fields with empty or default values are omitted
2812	// from API requests. However, any non-pointer, non-interface field
2813	// appearing in ForceSendFields will be sent to the server regardless of
2814	// whether the field is empty or not. This may be used to include empty
2815	// fields in Patch requests.
2816	ForceSendFields []string `json:"-"`
2817
2818	// NullFields is a list of field names (e.g. "CreatedAssignedUserRoles")
2819	// to include in API requests with the JSON null value. By default,
2820	// fields with empty values are omitted from API requests. However, any
2821	// field with an empty value appearing in NullFields will be sent to the
2822	// server as null. It is an error if a field in this list has a
2823	// non-empty value. This may be used to include null fields in Patch
2824	// requests.
2825	NullFields []string `json:"-"`
2826}
2827
2828func (s *BulkEditAssignedUserRolesResponse) MarshalJSON() ([]byte, error) {
2829	type NoMethod BulkEditAssignedUserRolesResponse
2830	raw := NoMethod(*s)
2831	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2832}
2833
2834// BulkEditLineItemAssignedTargetingOptionsRequest: Request message for
2835// BulkEditLineItemAssignedTargetingOptions.
2836type BulkEditLineItemAssignedTargetingOptionsRequest struct {
2837	// CreateRequests: The assigned targeting options to create in batch,
2838	// specified as a list of `CreateAssignedTargetingOptionsRequest`.
2839	CreateRequests []*CreateAssignedTargetingOptionsRequest `json:"createRequests,omitempty"`
2840
2841	// DeleteRequests: The assigned targeting options to delete in batch,
2842	// specified as a list of `DeleteAssignedTargetingOptionsRequest`.
2843	DeleteRequests []*DeleteAssignedTargetingOptionsRequest `json:"deleteRequests,omitempty"`
2844
2845	// ForceSendFields is a list of field names (e.g. "CreateRequests") to
2846	// unconditionally include in API requests. By default, fields with
2847	// empty or default values are omitted from API requests. However, any
2848	// non-pointer, non-interface field appearing in ForceSendFields will be
2849	// sent to the server regardless of whether the field is empty or not.
2850	// This may be used to include empty fields in Patch requests.
2851	ForceSendFields []string `json:"-"`
2852
2853	// NullFields is a list of field names (e.g. "CreateRequests") to
2854	// include in API requests with the JSON null value. By default, fields
2855	// with empty values are omitted from API requests. However, any field
2856	// with an empty value appearing in NullFields will be sent to the
2857	// server as null. It is an error if a field in this list has a
2858	// non-empty value. This may be used to include null fields in Patch
2859	// requests.
2860	NullFields []string `json:"-"`
2861}
2862
2863func (s *BulkEditLineItemAssignedTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
2864	type NoMethod BulkEditLineItemAssignedTargetingOptionsRequest
2865	raw := NoMethod(*s)
2866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2867}
2868
2869type BulkEditLineItemAssignedTargetingOptionsResponse struct {
2870	// CreatedAssignedTargetingOptions: The list of assigned targeting
2871	// options that have been successfully created. This list will be absent
2872	// if empty.
2873	CreatedAssignedTargetingOptions []*AssignedTargetingOption `json:"createdAssignedTargetingOptions,omitempty"`
2874
2875	// ServerResponse contains the HTTP response code and headers from the
2876	// server.
2877	googleapi.ServerResponse `json:"-"`
2878
2879	// ForceSendFields is a list of field names (e.g.
2880	// "CreatedAssignedTargetingOptions") to unconditionally include in API
2881	// requests. By default, fields with empty or default values are omitted
2882	// from API requests. However, any non-pointer, non-interface field
2883	// appearing in ForceSendFields will be sent to the server regardless of
2884	// whether the field is empty or not. This may be used to include empty
2885	// fields in Patch requests.
2886	ForceSendFields []string `json:"-"`
2887
2888	// NullFields is a list of field names (e.g.
2889	// "CreatedAssignedTargetingOptions") to include in API requests with
2890	// the JSON null value. By default, fields with empty values are omitted
2891	// from API requests. However, any field with an empty value appearing
2892	// in NullFields will be sent to the server as null. It is an error if a
2893	// field in this list has a non-empty value. This may be used to include
2894	// null fields in Patch requests.
2895	NullFields []string `json:"-"`
2896}
2897
2898func (s *BulkEditLineItemAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
2899	type NoMethod BulkEditLineItemAssignedTargetingOptionsResponse
2900	raw := NoMethod(*s)
2901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2902}
2903
2904// BulkEditNegativeKeywordsRequest: Request message for
2905// NegativeKeywordService.BulkEditNegativeKeywords.
2906type BulkEditNegativeKeywordsRequest struct {
2907	// CreatedNegativeKeywords: The negative keywords to create in batch,
2908	// specified as a list of NegativeKeywords.
2909	CreatedNegativeKeywords []*NegativeKeyword `json:"createdNegativeKeywords,omitempty"`
2910
2911	// DeletedNegativeKeywords: The negative keywords to delete in batch,
2912	// specified as a list of keyword_values.
2913	DeletedNegativeKeywords []string `json:"deletedNegativeKeywords,omitempty"`
2914
2915	// ForceSendFields is a list of field names (e.g.
2916	// "CreatedNegativeKeywords") to unconditionally include in API
2917	// requests. By default, fields with empty or default values are omitted
2918	// from API requests. However, any non-pointer, non-interface field
2919	// appearing in ForceSendFields will be sent to the server regardless of
2920	// whether the field is empty or not. This may be used to include empty
2921	// fields in Patch requests.
2922	ForceSendFields []string `json:"-"`
2923
2924	// NullFields is a list of field names (e.g. "CreatedNegativeKeywords")
2925	// to include in API requests with the JSON null value. By default,
2926	// fields with empty values are omitted from API requests. However, any
2927	// field with an empty value appearing in NullFields will be sent to the
2928	// server as null. It is an error if a field in this list has a
2929	// non-empty value. This may be used to include null fields in Patch
2930	// requests.
2931	NullFields []string `json:"-"`
2932}
2933
2934func (s *BulkEditNegativeKeywordsRequest) MarshalJSON() ([]byte, error) {
2935	type NoMethod BulkEditNegativeKeywordsRequest
2936	raw := NoMethod(*s)
2937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2938}
2939
2940// BulkEditNegativeKeywordsResponse: Response message for
2941// NegativeKeywordService.BulkEditNegativeKeywords.
2942type BulkEditNegativeKeywordsResponse struct {
2943	// NegativeKeywords: The list of negative keywords that have been
2944	// successfully created. This list will be absent if empty.
2945	NegativeKeywords []*NegativeKeyword `json:"negativeKeywords,omitempty"`
2946
2947	// ServerResponse contains the HTTP response code and headers from the
2948	// server.
2949	googleapi.ServerResponse `json:"-"`
2950
2951	// ForceSendFields is a list of field names (e.g. "NegativeKeywords") to
2952	// unconditionally include in API requests. By default, fields with
2953	// empty or default values are omitted from API requests. However, any
2954	// non-pointer, non-interface field appearing in ForceSendFields will be
2955	// sent to the server regardless of whether the field is empty or not.
2956	// This may be used to include empty fields in Patch requests.
2957	ForceSendFields []string `json:"-"`
2958
2959	// NullFields is a list of field names (e.g. "NegativeKeywords") to
2960	// include in API requests with the JSON null value. By default, fields
2961	// with empty values are omitted from API requests. However, any field
2962	// with an empty value appearing in NullFields will be sent to the
2963	// server as null. It is an error if a field in this list has a
2964	// non-empty value. This may be used to include null fields in Patch
2965	// requests.
2966	NullFields []string `json:"-"`
2967}
2968
2969func (s *BulkEditNegativeKeywordsResponse) MarshalJSON() ([]byte, error) {
2970	type NoMethod BulkEditNegativeKeywordsResponse
2971	raw := NoMethod(*s)
2972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2973}
2974
2975// BulkEditPartnerAssignedTargetingOptionsRequest: Request message for
2976// BulkEditPartnerAssignedTargetingOptions.
2977type BulkEditPartnerAssignedTargetingOptionsRequest struct {
2978	// CreateRequests: The assigned targeting options to create in batch,
2979	// specified as a list of `CreateAssignedTargetingOptionsRequest`.
2980	// Supported targeting types: * `TARGETING_TYPE_CHANNEL`
2981	CreateRequests []*CreateAssignedTargetingOptionsRequest `json:"createRequests,omitempty"`
2982
2983	// DeleteRequests: The assigned targeting options to delete in batch,
2984	// specified as a list of `DeleteAssignedTargetingOptionsRequest`.
2985	// Supported targeting types: * `TARGETING_TYPE_CHANNEL`
2986	DeleteRequests []*DeleteAssignedTargetingOptionsRequest `json:"deleteRequests,omitempty"`
2987
2988	// ForceSendFields is a list of field names (e.g. "CreateRequests") to
2989	// unconditionally include in API requests. By default, fields with
2990	// empty or default values are omitted from API requests. However, any
2991	// non-pointer, non-interface field appearing in ForceSendFields will be
2992	// sent to the server regardless of whether the field is empty or not.
2993	// This may be used to include empty fields in Patch requests.
2994	ForceSendFields []string `json:"-"`
2995
2996	// NullFields is a list of field names (e.g. "CreateRequests") to
2997	// include in API requests with the JSON null value. By default, fields
2998	// with empty values are omitted from API requests. However, any field
2999	// with an empty value appearing in NullFields will be sent to the
3000	// server as null. It is an error if a field in this list has a
3001	// non-empty value. This may be used to include null fields in Patch
3002	// requests.
3003	NullFields []string `json:"-"`
3004}
3005
3006func (s *BulkEditPartnerAssignedTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
3007	type NoMethod BulkEditPartnerAssignedTargetingOptionsRequest
3008	raw := NoMethod(*s)
3009	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3010}
3011
3012type BulkEditPartnerAssignedTargetingOptionsResponse struct {
3013	// CreatedAssignedTargetingOptions: The list of assigned targeting
3014	// options that have been successfully created. This list will be absent
3015	// if empty.
3016	CreatedAssignedTargetingOptions []*AssignedTargetingOption `json:"createdAssignedTargetingOptions,omitempty"`
3017
3018	// ServerResponse contains the HTTP response code and headers from the
3019	// server.
3020	googleapi.ServerResponse `json:"-"`
3021
3022	// ForceSendFields is a list of field names (e.g.
3023	// "CreatedAssignedTargetingOptions") to unconditionally include in API
3024	// requests. By default, fields with empty or default values are omitted
3025	// from API requests. However, any non-pointer, non-interface field
3026	// appearing in ForceSendFields will be sent to the server regardless of
3027	// whether the field is empty or not. This may be used to include empty
3028	// fields in Patch requests.
3029	ForceSendFields []string `json:"-"`
3030
3031	// NullFields is a list of field names (e.g.
3032	// "CreatedAssignedTargetingOptions") to include in API requests with
3033	// the JSON null value. By default, fields with empty values are omitted
3034	// from API requests. However, any field with an empty value appearing
3035	// in NullFields will be sent to the server as null. It is an error if a
3036	// field in this list has a non-empty value. This may be used to include
3037	// null fields in Patch requests.
3038	NullFields []string `json:"-"`
3039}
3040
3041func (s *BulkEditPartnerAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
3042	type NoMethod BulkEditPartnerAssignedTargetingOptionsResponse
3043	raw := NoMethod(*s)
3044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3045}
3046
3047// BulkEditSitesRequest: Request message for SiteService.BulkEditSites.
3048type BulkEditSitesRequest struct {
3049	// AdvertiserId: The ID of the advertiser that owns the parent channel.
3050	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
3051
3052	// CreatedSites: The sites to create in batch, specified as a list of
3053	// Sites.
3054	CreatedSites []*Site `json:"createdSites,omitempty"`
3055
3056	// DeletedSites: The sites to delete in batch, specified as a list of
3057	// site url_or_app_ids.
3058	DeletedSites []string `json:"deletedSites,omitempty"`
3059
3060	// PartnerId: The ID of the partner that owns the parent channel.
3061	PartnerId int64 `json:"partnerId,omitempty,string"`
3062
3063	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
3064	// unconditionally include in API requests. By default, fields with
3065	// empty or default values are omitted from API requests. However, any
3066	// non-pointer, non-interface field appearing in ForceSendFields will be
3067	// sent to the server regardless of whether the field is empty or not.
3068	// This may be used to include empty fields in Patch requests.
3069	ForceSendFields []string `json:"-"`
3070
3071	// NullFields is a list of field names (e.g. "AdvertiserId") to include
3072	// in API requests with the JSON null value. By default, fields with
3073	// empty values are omitted from API requests. However, any field with
3074	// an empty value appearing in NullFields will be sent to the server as
3075	// null. It is an error if a field in this list has a non-empty value.
3076	// This may be used to include null fields in Patch requests.
3077	NullFields []string `json:"-"`
3078}
3079
3080func (s *BulkEditSitesRequest) MarshalJSON() ([]byte, error) {
3081	type NoMethod BulkEditSitesRequest
3082	raw := NoMethod(*s)
3083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3084}
3085
3086// BulkEditSitesResponse: Response message for
3087// SiteService.BulkEditSites.
3088type BulkEditSitesResponse struct {
3089	// Sites: The list of sites that have been successfully created. This
3090	// list will be absent if empty.
3091	Sites []*Site `json:"sites,omitempty"`
3092
3093	// ServerResponse contains the HTTP response code and headers from the
3094	// server.
3095	googleapi.ServerResponse `json:"-"`
3096
3097	// ForceSendFields is a list of field names (e.g. "Sites") to
3098	// unconditionally include in API requests. By default, fields with
3099	// empty or default values are omitted from API requests. However, any
3100	// non-pointer, non-interface field appearing in ForceSendFields will be
3101	// sent to the server regardless of whether the field is empty or not.
3102	// This may be used to include empty fields in Patch requests.
3103	ForceSendFields []string `json:"-"`
3104
3105	// NullFields is a list of field names (e.g. "Sites") to include in API
3106	// requests with the JSON null value. By default, fields with empty
3107	// values are omitted from API requests. However, any field with an
3108	// empty value appearing in NullFields will be sent to the server as
3109	// null. It is an error if a field in this list has a non-empty value.
3110	// This may be used to include null fields in Patch requests.
3111	NullFields []string `json:"-"`
3112}
3113
3114func (s *BulkEditSitesResponse) MarshalJSON() ([]byte, error) {
3115	type NoMethod BulkEditSitesResponse
3116	raw := NoMethod(*s)
3117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3118}
3119
3120type BulkListAdvertiserAssignedTargetingOptionsResponse struct {
3121	// AssignedTargetingOptions: The list of assigned targeting options.
3122	// This list will be absent if empty.
3123	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
3124
3125	// NextPageToken: A token identifying the next page of results. This
3126	// value should be specified as the pageToken in a subsequent
3127	// BulkListAdvertiserAssignedTargetingOptionsRequest to fetch the next
3128	// page of results. This token will be absent if there are no more
3129	// assigned_targeting_options to return.
3130	NextPageToken string `json:"nextPageToken,omitempty"`
3131
3132	// ServerResponse contains the HTTP response code and headers from the
3133	// server.
3134	googleapi.ServerResponse `json:"-"`
3135
3136	// ForceSendFields is a list of field names (e.g.
3137	// "AssignedTargetingOptions") to unconditionally include in API
3138	// requests. By default, fields with empty or default values are omitted
3139	// from API requests. However, any non-pointer, non-interface field
3140	// appearing in ForceSendFields will be sent to the server regardless of
3141	// whether the field is empty or not. This may be used to include empty
3142	// fields in Patch requests.
3143	ForceSendFields []string `json:"-"`
3144
3145	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
3146	// to include in API requests with the JSON null value. By default,
3147	// fields with empty values are omitted from API requests. However, any
3148	// field with an empty value appearing in NullFields will be sent to the
3149	// server as null. It is an error if a field in this list has a
3150	// non-empty value. This may be used to include null fields in Patch
3151	// requests.
3152	NullFields []string `json:"-"`
3153}
3154
3155func (s *BulkListAdvertiserAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
3156	type NoMethod BulkListAdvertiserAssignedTargetingOptionsResponse
3157	raw := NoMethod(*s)
3158	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3159}
3160
3161// BulkListCampaignAssignedTargetingOptionsResponse: Response message
3162// for BulkListCampaignAssignedTargetingOptions.
3163type BulkListCampaignAssignedTargetingOptionsResponse struct {
3164	// AssignedTargetingOptions: The list of assigned targeting options.
3165	// This list will be absent if empty.
3166	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
3167
3168	// NextPageToken: A token identifying the next page of results. This
3169	// value should be specified as the pageToken in a subsequent
3170	// BulkListCampaignAssignedTargetingOptionsRequest to fetch the next
3171	// page of results. This token will be absent if there are no more
3172	// assigned_targeting_options to return.
3173	NextPageToken string `json:"nextPageToken,omitempty"`
3174
3175	// ServerResponse contains the HTTP response code and headers from the
3176	// server.
3177	googleapi.ServerResponse `json:"-"`
3178
3179	// ForceSendFields is a list of field names (e.g.
3180	// "AssignedTargetingOptions") to unconditionally include in API
3181	// requests. By default, fields with empty or default values are omitted
3182	// from API requests. However, any non-pointer, non-interface field
3183	// appearing in ForceSendFields will be sent to the server regardless of
3184	// whether the field is empty or not. This may be used to include empty
3185	// fields in Patch requests.
3186	ForceSendFields []string `json:"-"`
3187
3188	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
3189	// to include in API requests with the JSON null value. By default,
3190	// fields with empty values are omitted from API requests. However, any
3191	// field with an empty value appearing in NullFields will be sent to the
3192	// server as null. It is an error if a field in this list has a
3193	// non-empty value. This may be used to include null fields in Patch
3194	// requests.
3195	NullFields []string `json:"-"`
3196}
3197
3198func (s *BulkListCampaignAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
3199	type NoMethod BulkListCampaignAssignedTargetingOptionsResponse
3200	raw := NoMethod(*s)
3201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3202}
3203
3204// BulkListInsertionOrderAssignedTargetingOptionsResponse: Response
3205// message for BulkListInsertionOrderAssignedTargetingOptions.
3206type BulkListInsertionOrderAssignedTargetingOptionsResponse struct {
3207	// AssignedTargetingOptions: The list of assigned targeting options.
3208	// This list will be absent if empty.
3209	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
3210
3211	// NextPageToken: A token identifying the next page of results. This
3212	// value should be specified as the pageToken in a subsequent
3213	// BulkListInsertionOrderAssignedTargetingOptionsRequest to fetch the
3214	// next page of results. This token will be absent if there are no more
3215	// assigned_targeting_options to return.
3216	NextPageToken string `json:"nextPageToken,omitempty"`
3217
3218	// ServerResponse contains the HTTP response code and headers from the
3219	// server.
3220	googleapi.ServerResponse `json:"-"`
3221
3222	// ForceSendFields is a list of field names (e.g.
3223	// "AssignedTargetingOptions") to unconditionally include in API
3224	// requests. By default, fields with empty or default values are omitted
3225	// from API requests. However, any non-pointer, non-interface field
3226	// appearing in ForceSendFields will be sent to the server regardless of
3227	// whether the field is empty or not. This may be used to include empty
3228	// fields in Patch requests.
3229	ForceSendFields []string `json:"-"`
3230
3231	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
3232	// to include in API requests with the JSON null value. By default,
3233	// fields with empty values are omitted from API requests. However, any
3234	// field with an empty value appearing in NullFields will be sent to the
3235	// server as null. It is an error if a field in this list has a
3236	// non-empty value. This may be used to include null fields in Patch
3237	// requests.
3238	NullFields []string `json:"-"`
3239}
3240
3241func (s *BulkListInsertionOrderAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
3242	type NoMethod BulkListInsertionOrderAssignedTargetingOptionsResponse
3243	raw := NoMethod(*s)
3244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3245}
3246
3247type BulkListLineItemAssignedTargetingOptionsResponse struct {
3248	// AssignedTargetingOptions: The list of assigned targeting options.
3249	// This list will be absent if empty.
3250	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
3251
3252	// NextPageToken: A token identifying the next page of results. This
3253	// value should be specified as the pageToken in a subsequent
3254	// BulkListLineItemAssignedTargetingOptionsRequest to fetch the next
3255	// page of results. This token will be absent if there are no more
3256	// assigned_targeting_options to return.
3257	NextPageToken string `json:"nextPageToken,omitempty"`
3258
3259	// ServerResponse contains the HTTP response code and headers from the
3260	// server.
3261	googleapi.ServerResponse `json:"-"`
3262
3263	// ForceSendFields is a list of field names (e.g.
3264	// "AssignedTargetingOptions") to unconditionally include in API
3265	// requests. By default, fields with empty or default values are omitted
3266	// from API requests. However, any non-pointer, non-interface field
3267	// appearing in ForceSendFields will be sent to the server regardless of
3268	// whether the field is empty or not. This may be used to include empty
3269	// fields in Patch requests.
3270	ForceSendFields []string `json:"-"`
3271
3272	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
3273	// to include in API requests with the JSON null value. By default,
3274	// fields with empty values are omitted from API requests. However, any
3275	// field with an empty value appearing in NullFields will be sent to the
3276	// server as null. It is an error if a field in this list has a
3277	// non-empty value. This may be used to include null fields in Patch
3278	// requests.
3279	NullFields []string `json:"-"`
3280}
3281
3282func (s *BulkListLineItemAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
3283	type NoMethod BulkListLineItemAssignedTargetingOptionsResponse
3284	raw := NoMethod(*s)
3285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3286}
3287
3288// BusinessChainAssignedTargetingOptionDetails: Details for assigned
3289// Business chain targeting option. This will be populated in the
3290// details field of an AssignedTargetingOption when targeting_type is
3291// `TARGETING_TYPE_BUSINESS_CHAIN`.
3292type BusinessChainAssignedTargetingOptionDetails struct {
3293	// DisplayName: Output only. The display name of a business chain, e.g.
3294	// "KFC", "Chase Bank".
3295	DisplayName string `json:"displayName,omitempty"`
3296
3297	// ProximityRadiusAmount: Required. The radius of the area around the
3298	// business chain that will be targeted. The units of the radius are
3299	// specified by proximity_radius_unit. Must be 1 to 800 if unit is
3300	// `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is
3301	// `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1.
3302	// Inputs will be rounded to the nearest acceptable value if it is too
3303	// granular, e.g. 15.57 will become 15.6.
3304	ProximityRadiusAmount float64 `json:"proximityRadiusAmount,omitempty"`
3305
3306	// ProximityRadiusUnit: Required. The unit of distance by which the
3307	// targeting radius is measured.
3308	//
3309	// Possible values:
3310	//   "DISTANCE_UNIT_UNSPECIFIED" - Type value is not specified or is
3311	// unknown in this version.
3312	//   "DISTANCE_UNIT_MILES" - Miles.
3313	//   "DISTANCE_UNIT_KILOMETERS" - Kilometers.
3314	ProximityRadiusUnit string `json:"proximityRadiusUnit,omitempty"`
3315
3316	// TargetingOptionId: Required. The targeting_option_id of a
3317	// TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`.
3318	TargetingOptionId string `json:"targetingOptionId,omitempty"`
3319
3320	// ForceSendFields is a list of field names (e.g. "DisplayName") to
3321	// unconditionally include in API requests. By default, fields with
3322	// empty or default values are omitted from API requests. However, any
3323	// non-pointer, non-interface field appearing in ForceSendFields will be
3324	// sent to the server regardless of whether the field is empty or not.
3325	// This may be used to include empty fields in Patch requests.
3326	ForceSendFields []string `json:"-"`
3327
3328	// NullFields is a list of field names (e.g. "DisplayName") to include
3329	// in API requests with the JSON null value. By default, fields with
3330	// empty values are omitted from API requests. However, any field with
3331	// an empty value appearing in NullFields will be sent to the server as
3332	// null. It is an error if a field in this list has a non-empty value.
3333	// This may be used to include null fields in Patch requests.
3334	NullFields []string `json:"-"`
3335}
3336
3337func (s *BusinessChainAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3338	type NoMethod BusinessChainAssignedTargetingOptionDetails
3339	raw := NoMethod(*s)
3340	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3341}
3342
3343func (s *BusinessChainAssignedTargetingOptionDetails) UnmarshalJSON(data []byte) error {
3344	type NoMethod BusinessChainAssignedTargetingOptionDetails
3345	var s1 struct {
3346		ProximityRadiusAmount gensupport.JSONFloat64 `json:"proximityRadiusAmount"`
3347		*NoMethod
3348	}
3349	s1.NoMethod = (*NoMethod)(s)
3350	if err := json.Unmarshal(data, &s1); err != nil {
3351		return err
3352	}
3353	s.ProximityRadiusAmount = float64(s1.ProximityRadiusAmount)
3354	return nil
3355}
3356
3357// BusinessChainSearchTerms: Search terms for Business Chain targeting
3358// options. At least one of the field should be populated.
3359type BusinessChainSearchTerms struct {
3360	// BusinessChain: The search query for the desired business chain. The
3361	// query must be the full name of the business, e.g. "KFC",
3362	// "mercedes-benz".
3363	BusinessChain string `json:"businessChain,omitempty"`
3364
3365	// Region: The search query for the desired geo region, e.g. "Seattle",
3366	// "United State".
3367	Region string `json:"region,omitempty"`
3368
3369	// ForceSendFields is a list of field names (e.g. "BusinessChain") to
3370	// unconditionally include in API requests. By default, fields with
3371	// empty or default values are omitted from API requests. However, any
3372	// non-pointer, non-interface field appearing in ForceSendFields will be
3373	// sent to the server regardless of whether the field is empty or not.
3374	// This may be used to include empty fields in Patch requests.
3375	ForceSendFields []string `json:"-"`
3376
3377	// NullFields is a list of field names (e.g. "BusinessChain") to include
3378	// in API requests with the JSON null value. By default, fields with
3379	// empty values are omitted from API requests. However, any field with
3380	// an empty value appearing in NullFields will be sent to the server as
3381	// null. It is an error if a field in this list has a non-empty value.
3382	// This may be used to include null fields in Patch requests.
3383	NullFields []string `json:"-"`
3384}
3385
3386func (s *BusinessChainSearchTerms) MarshalJSON() ([]byte, error) {
3387	type NoMethod BusinessChainSearchTerms
3388	raw := NoMethod(*s)
3389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3390}
3391
3392// BusinessChainTargetingOptionDetails: Represents a targetable business
3393// chain within a geo region. This will be populated in the
3394// business_chain_details field when targeting_type is
3395// `TARGETING_TYPE_BUSINESS_CHAIN`.
3396type BusinessChainTargetingOptionDetails struct {
3397	// BusinessChain: Output only. The display name of the business chain,
3398	// e.g. "KFC", "Chase Bank".
3399	BusinessChain string `json:"businessChain,omitempty"`
3400
3401	// GeoRegion: Output only. The display name of the geographic region,
3402	// e.g. "Ontario, Canada".
3403	GeoRegion string `json:"geoRegion,omitempty"`
3404
3405	// GeoRegionType: Output only. The type of the geographic region.
3406	//
3407	// Possible values:
3408	//   "GEO_REGION_TYPE_UNKNOWN" - The geographic region type is unknown.
3409	//   "GEO_REGION_TYPE_OTHER" - The geographic region type is other.
3410	//   "GEO_REGION_TYPE_COUNTRY" - The geographic region is a country.
3411	//   "GEO_REGION_TYPE_REGION" - The geographic region type is region.
3412	//   "GEO_REGION_TYPE_TERRITORY" - The geographic region is a territory.
3413	//   "GEO_REGION_TYPE_PROVINCE" - The geographic region is a province.
3414	//   "GEO_REGION_TYPE_STATE" - The geographic region is a state.
3415	//   "GEO_REGION_TYPE_PREFECTURE" - The geographic region is a
3416	// prefecture.
3417	//   "GEO_REGION_TYPE_GOVERNORATE" - The geographic region is a
3418	// governorate.
3419	//   "GEO_REGION_TYPE_CANTON" - The geographic region is a canton.
3420	//   "GEO_REGION_TYPE_UNION_TERRITORY" - The geographic region is a
3421	// union territory.
3422	//   "GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY" - The geographic region is
3423	// an autonomous community.
3424	//   "GEO_REGION_TYPE_DMA_REGION" - The geographic region is a
3425	// designated market area (DMA) region.
3426	//   "GEO_REGION_TYPE_METRO" - The geographic region type is metro.
3427	//   "GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT" - The geographic region is
3428	// a congressional district.
3429	//   "GEO_REGION_TYPE_COUNTY" - The geographic region is a county.
3430	//   "GEO_REGION_TYPE_MUNICIPALITY" - The geographic region is a
3431	// municipality.
3432	//   "GEO_REGION_TYPE_CITY" - The geographic region is a city.
3433	//   "GEO_REGION_TYPE_POSTAL_CODE" - The geographic region targeting
3434	// type is postal code.
3435	//   "GEO_REGION_TYPE_DEPARTMENT" - The geographic region targeting type
3436	// is department.
3437	//   "GEO_REGION_TYPE_AIRPORT" - The geographic region is an airport.
3438	//   "GEO_REGION_TYPE_TV_REGION" - The geographic region is a TV region.
3439	//   "GEO_REGION_TYPE_OKRUG" - The geographic region is an okrug.
3440	//   "GEO_REGION_TYPE_BOROUGH" - The geographic region is a borough.
3441	//   "GEO_REGION_TYPE_CITY_REGION" - The geographic region is a city
3442	// region.
3443	//   "GEO_REGION_TYPE_ARRONDISSEMENT" - The geographic region is an
3444	// arrondissement.
3445	//   "GEO_REGION_TYPE_NEIGHBORHOOD" - The geographic region is a
3446	// neighborhood.
3447	//   "GEO_REGION_TYPE_UNIVERSITY" - The geographic region is a
3448	// university.
3449	//   "GEO_REGION_TYPE_DISTRICT" - The geographic region is a district.
3450	GeoRegionType string `json:"geoRegionType,omitempty"`
3451
3452	// ForceSendFields is a list of field names (e.g. "BusinessChain") to
3453	// unconditionally include in API requests. By default, fields with
3454	// empty or default values are omitted from API requests. However, any
3455	// non-pointer, non-interface field appearing in ForceSendFields will be
3456	// sent to the server regardless of whether the field is empty or not.
3457	// This may be used to include empty fields in Patch requests.
3458	ForceSendFields []string `json:"-"`
3459
3460	// NullFields is a list of field names (e.g. "BusinessChain") to include
3461	// in API requests with the JSON null value. By default, fields with
3462	// empty values are omitted from API requests. However, any field with
3463	// an empty value appearing in NullFields will be sent to the server as
3464	// null. It is an error if a field in this list has a non-empty value.
3465	// This may be used to include null fields in Patch requests.
3466	NullFields []string `json:"-"`
3467}
3468
3469func (s *BusinessChainTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3470	type NoMethod BusinessChainTargetingOptionDetails
3471	raw := NoMethod(*s)
3472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3473}
3474
3475// Campaign: A single campaign.
3476type Campaign struct {
3477	// AdvertiserId: Output only. The unique ID of the advertiser the
3478	// campaign belongs to.
3479	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
3480
3481	// CampaignBudgets: The list of budgets available to this campaign. If
3482	// this field is not set, the campaign uses an unlimited budget.
3483	CampaignBudgets []*CampaignBudget `json:"campaignBudgets,omitempty"`
3484
3485	// CampaignFlight: Required. The planned spend and duration of the
3486	// campaign.
3487	CampaignFlight *CampaignFlight `json:"campaignFlight,omitempty"`
3488
3489	// CampaignGoal: Required. The goal of the campaign.
3490	CampaignGoal *CampaignGoal `json:"campaignGoal,omitempty"`
3491
3492	// CampaignId: Output only. The unique ID of the campaign. Assigned by
3493	// the system.
3494	CampaignId int64 `json:"campaignId,omitempty,string"`
3495
3496	// DisplayName: Required. The display name of the campaign. Must be
3497	// UTF-8 encoded with a maximum size of 240 bytes.
3498	DisplayName string `json:"displayName,omitempty"`
3499
3500	// EntityStatus: Required. Controls whether or not the insertion orders
3501	// under this campaign can spend their budgets and bid on inventory. *
3502	// Accepted values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`,
3503	// and `ENTITY_STATUS_PAUSED`. * For CreateCampaign method,
3504	// `ENTITY_STATUS_ARCHIVED` is not allowed.
3505	//
3506	// Possible values:
3507	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
3508	// specified or is unknown in this version.
3509	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
3510	// budget.
3511	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
3512	// budget spending are disabled. An entity can be deleted after
3513	// archived. Deleted entities cannot be retrieved.
3514	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
3515	// budget spending are disabled.
3516	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
3517	// the entity.
3518	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
3519	// for deletion.
3520	EntityStatus string `json:"entityStatus,omitempty"`
3521
3522	// FrequencyCap: Required. The frequency cap setting of the campaign.
3523	FrequencyCap *FrequencyCap `json:"frequencyCap,omitempty"`
3524
3525	// Name: Output only. The resource name of the campaign.
3526	Name string `json:"name,omitempty"`
3527
3528	// UpdateTime: Output only. The timestamp when the campaign was last
3529	// updated. Assigned by the system.
3530	UpdateTime string `json:"updateTime,omitempty"`
3531
3532	// ServerResponse contains the HTTP response code and headers from the
3533	// server.
3534	googleapi.ServerResponse `json:"-"`
3535
3536	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
3537	// unconditionally include in API requests. By default, fields with
3538	// empty or default values are omitted from API requests. However, any
3539	// non-pointer, non-interface field appearing in ForceSendFields will be
3540	// sent to the server regardless of whether the field is empty or not.
3541	// This may be used to include empty fields in Patch requests.
3542	ForceSendFields []string `json:"-"`
3543
3544	// NullFields is a list of field names (e.g. "AdvertiserId") to include
3545	// in API requests with the JSON null value. By default, fields with
3546	// empty values are omitted from API requests. However, any field with
3547	// an empty value appearing in NullFields will be sent to the server as
3548	// null. It is an error if a field in this list has a non-empty value.
3549	// This may be used to include null fields in Patch requests.
3550	NullFields []string `json:"-"`
3551}
3552
3553func (s *Campaign) MarshalJSON() ([]byte, error) {
3554	type NoMethod Campaign
3555	raw := NoMethod(*s)
3556	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3557}
3558
3559// CampaignBudget: Settings that control how the campaign budget is
3560// allocated.
3561type CampaignBudget struct {
3562	// BudgetAmountMicros: Required. The total amount the linked insertion
3563	// order segments can budget. The amount is in micros. Must be greater
3564	// than 0. For example, 500000000 represents 500 standard units of the
3565	// currency.
3566	BudgetAmountMicros int64 `json:"budgetAmountMicros,omitempty,string"`
3567
3568	// BudgetId: The unique ID of the campaign budget. Assigned by the
3569	// system. Do not set for new budgets. Must be included when updating or
3570	// adding budgets to campaign_budgets. Otherwise, a new ID will be
3571	// generated and assigned.
3572	BudgetId int64 `json:"budgetId,omitempty,string"`
3573
3574	// BudgetUnit: Required. Immutable. Specifies whether the budget is
3575	// measured in currency or impressions.
3576	//
3577	// Possible values:
3578	//   "BUDGET_UNIT_UNSPECIFIED" - Type value is not specified or is
3579	// unknown in this version.
3580	//   "BUDGET_UNIT_CURRENCY" - Budgeting in currency amounts.
3581	//   "BUDGET_UNIT_IMPRESSIONS" - Budgeting in impression amounts.
3582	BudgetUnit string `json:"budgetUnit,omitempty"`
3583
3584	// DateRange: Required. The date range for the campaign budget. Linked
3585	// budget segments may have a different date range. They are resolved
3586	// relative to the parent advertiser's time zone. Both `start_date` and
3587	// `end_date` must be before the year 2037.
3588	DateRange *DateRange `json:"dateRange,omitempty"`
3589
3590	// DisplayName: Required. The display name of the budget. Must be UTF-8
3591	// encoded with a maximum size of 240 bytes.
3592	DisplayName string `json:"displayName,omitempty"`
3593
3594	// ExternalBudgetId: Immutable. The ID identifying this budget to the
3595	// external source. If this field is set and the invoice detail level of
3596	// the corresponding billing profile is set to "Budget level PO", all
3597	// impressions served against this budget will include this ID on the
3598	// invoice. Must be unique under the campaign.
3599	ExternalBudgetId string `json:"externalBudgetId,omitempty"`
3600
3601	// ExternalBudgetSource: Required. The external source of the budget.
3602	//
3603	// Possible values:
3604	//   "EXTERNAL_BUDGET_SOURCE_UNSPECIFIED" - External budget source value
3605	// is not specified or unknown in this version.
3606	//   "EXTERNAL_BUDGET_SOURCE_NONE" - Budget has no external source.
3607	//   "EXTERNAL_BUDGET_SOURCE_MEDIA_OCEAN" - Budget source is Mediaocean.
3608	ExternalBudgetSource string `json:"externalBudgetSource,omitempty"`
3609
3610	// InvoiceGroupingId: Immutable. The ID used to group budgets to be
3611	// included the same invoice. If this field is set and the invoice level
3612	// of the corresponding billing profile is set to "Budget invoice
3613	// grouping ID", all external_budget_id sharing the same
3614	// invoice_grouping_id will be grouped in the same invoice.
3615	InvoiceGroupingId string `json:"invoiceGroupingId,omitempty"`
3616
3617	// PrismaConfig: Additional metadata for use by the Mediaocean Prisma
3618	// tool. Required for Mediaocean budgets. Only applicable to
3619	// prisma_enabled advertisers.
3620	PrismaConfig *PrismaConfig `json:"prismaConfig,omitempty"`
3621
3622	// ForceSendFields is a list of field names (e.g. "BudgetAmountMicros")
3623	// to unconditionally include in API requests. By default, fields with
3624	// empty or default values are omitted from API requests. However, any
3625	// non-pointer, non-interface field appearing in ForceSendFields will be
3626	// sent to the server regardless of whether the field is empty or not.
3627	// This may be used to include empty fields in Patch requests.
3628	ForceSendFields []string `json:"-"`
3629
3630	// NullFields is a list of field names (e.g. "BudgetAmountMicros") to
3631	// include in API requests with the JSON null value. By default, fields
3632	// with empty values are omitted from API requests. However, any field
3633	// with an empty value appearing in NullFields will be sent to the
3634	// server as null. It is an error if a field in this list has a
3635	// non-empty value. This may be used to include null fields in Patch
3636	// requests.
3637	NullFields []string `json:"-"`
3638}
3639
3640func (s *CampaignBudget) MarshalJSON() ([]byte, error) {
3641	type NoMethod CampaignBudget
3642	raw := NoMethod(*s)
3643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3644}
3645
3646// CampaignFlight: Settings that track the planned spend and duration of
3647// a campaign.
3648type CampaignFlight struct {
3649	// PlannedDates: Required. The dates that the campaign is expected to
3650	// run. They are resolved relative to the parent advertiser's time zone.
3651	// * The dates specified here will not affect serving. They are used to
3652	// generate alerts and warnings. For example, if the flight date of any
3653	// child insertion order is outside the range of these dates, the user
3654	// interface will show a warning. * `start_date` is required and must be
3655	// the current date or later. * `end_date` is optional. If specified, it
3656	// must be the `start_date` or later. * Any specified date must be
3657	// before the year 2037.
3658	PlannedDates *DateRange `json:"plannedDates,omitempty"`
3659
3660	// PlannedSpendAmountMicros: The amount the campaign is expected to
3661	// spend for its given planned_dates. This will not limit serving, but
3662	// will be used for tracking spend in the DV360 UI. The amount is in
3663	// micros. Must be greater than or equal to 0. For example, 500000000
3664	// represents 500 standard units of the currency.
3665	PlannedSpendAmountMicros int64 `json:"plannedSpendAmountMicros,omitempty,string"`
3666
3667	// ForceSendFields is a list of field names (e.g. "PlannedDates") to
3668	// unconditionally include in API requests. By default, fields with
3669	// empty or default values are omitted from API requests. However, any
3670	// non-pointer, non-interface field appearing in ForceSendFields will be
3671	// sent to the server regardless of whether the field is empty or not.
3672	// This may be used to include empty fields in Patch requests.
3673	ForceSendFields []string `json:"-"`
3674
3675	// NullFields is a list of field names (e.g. "PlannedDates") to include
3676	// in API requests with the JSON null value. By default, fields with
3677	// empty values are omitted from API requests. However, any field with
3678	// an empty value appearing in NullFields will be sent to the server as
3679	// null. It is an error if a field in this list has a non-empty value.
3680	// This may be used to include null fields in Patch requests.
3681	NullFields []string `json:"-"`
3682}
3683
3684func (s *CampaignFlight) MarshalJSON() ([]byte, error) {
3685	type NoMethod CampaignFlight
3686	raw := NoMethod(*s)
3687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3688}
3689
3690// CampaignGoal: Settings that control the goal of a campaign.
3691type CampaignGoal struct {
3692	// CampaignGoalType: Required. The type of the campaign goal.
3693	//
3694	// Possible values:
3695	//   "CAMPAIGN_GOAL_TYPE_UNSPECIFIED" - Goal value is not specified or
3696	// unknown in this version.
3697	//   "CAMPAIGN_GOAL_TYPE_APP_INSTALL" - Drive app installs or
3698	// engagements.
3699	//   "CAMPAIGN_GOAL_TYPE_BRAND_AWARENESS" - Raise awareness of a brand
3700	// or product.
3701	//   "CAMPAIGN_GOAL_TYPE_OFFLINE_ACTION" - Drive offline or in-store
3702	// sales.
3703	//   "CAMPAIGN_GOAL_TYPE_ONLINE_ACTION" - Drive online action or visits.
3704	CampaignGoalType string `json:"campaignGoalType,omitempty"`
3705
3706	// PerformanceGoal: Required. The performance goal of the campaign.
3707	// Acceptable values for performance_goal_type are: *
3708	// `PERFORMANCE_GOAL_TYPE_CPM` * `PERFORMANCE_GOAL_TYPE_CPC` *
3709	// `PERFORMANCE_GOAL_TYPE_CPA` * `PERFORMANCE_GOAL_TYPE_CPIAVC` *
3710	// `PERFORMANCE_GOAL_TYPE_CTR` * `PERFORMANCE_GOAL_TYPE_VIEWABILITY` *
3711	// `PERFORMANCE_GOAL_TYPE_OTHER`
3712	PerformanceGoal *PerformanceGoal `json:"performanceGoal,omitempty"`
3713
3714	// ForceSendFields is a list of field names (e.g. "CampaignGoalType") to
3715	// unconditionally include in API requests. By default, fields with
3716	// empty or default values are omitted from API requests. However, any
3717	// non-pointer, non-interface field appearing in ForceSendFields will be
3718	// sent to the server regardless of whether the field is empty or not.
3719	// This may be used to include empty fields in Patch requests.
3720	ForceSendFields []string `json:"-"`
3721
3722	// NullFields is a list of field names (e.g. "CampaignGoalType") to
3723	// include in API requests with the JSON null value. By default, fields
3724	// with empty values are omitted from API requests. However, any field
3725	// with an empty value appearing in NullFields will be sent to the
3726	// server as null. It is an error if a field in this list has a
3727	// non-empty value. This may be used to include null fields in Patch
3728	// requests.
3729	NullFields []string `json:"-"`
3730}
3731
3732func (s *CampaignGoal) MarshalJSON() ([]byte, error) {
3733	type NoMethod CampaignGoal
3734	raw := NoMethod(*s)
3735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3736}
3737
3738// CarrierAndIspAssignedTargetingOptionDetails: Details for assigned
3739// carrier and ISP targeting option. This will be populated in the
3740// details field of an AssignedTargetingOption when targeting_type is
3741// `TARGETING_TYPE_CARRIER_AND_ISP`.
3742type CarrierAndIspAssignedTargetingOptionDetails struct {
3743	// DisplayName: Output only. The display name of the carrier or ISP.
3744	DisplayName string `json:"displayName,omitempty"`
3745
3746	// Negative: Indicates if this option is being negatively targeted. All
3747	// assigned carrier and ISP targeting options on the same resource must
3748	// have the same value for this field.
3749	Negative bool `json:"negative,omitempty"`
3750
3751	// TargetingOptionId: Required. The targeting_option_id of a
3752	// TargetingOption of type `TARGETING_TYPE_CARRIER_AND_ISP`.
3753	TargetingOptionId string `json:"targetingOptionId,omitempty"`
3754
3755	// ForceSendFields is a list of field names (e.g. "DisplayName") to
3756	// unconditionally include in API requests. By default, fields with
3757	// empty or default values are omitted from API requests. However, any
3758	// non-pointer, non-interface field appearing in ForceSendFields will be
3759	// sent to the server regardless of whether the field is empty or not.
3760	// This may be used to include empty fields in Patch requests.
3761	ForceSendFields []string `json:"-"`
3762
3763	// NullFields is a list of field names (e.g. "DisplayName") to include
3764	// in API requests with the JSON null value. By default, fields with
3765	// empty values are omitted from API requests. However, any field with
3766	// an empty value appearing in NullFields will be sent to the server as
3767	// null. It is an error if a field in this list has a non-empty value.
3768	// This may be used to include null fields in Patch requests.
3769	NullFields []string `json:"-"`
3770}
3771
3772func (s *CarrierAndIspAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3773	type NoMethod CarrierAndIspAssignedTargetingOptionDetails
3774	raw := NoMethod(*s)
3775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3776}
3777
3778// CarrierAndIspTargetingOptionDetails: Represents a targetable carrier
3779// or ISP. This will be populated in the carrier_and_isp_details field
3780// of a TargetingOption when targeting_type is
3781// `TARGETING_TYPE_CARRIER_AND_ISP`.
3782type CarrierAndIspTargetingOptionDetails struct {
3783	// DisplayName: Output only. The display name of the carrier or ISP.
3784	DisplayName string `json:"displayName,omitempty"`
3785
3786	// Type: Output only. The type indicating if it's carrier or ISP.
3787	//
3788	// Possible values:
3789	//   "CARRIER_AND_ISP_TYPE_UNSPECIFIED" - Default value when type is not
3790	// specified or is unknown in this version.
3791	//   "CARRIER_AND_ISP_TYPE_ISP" - Indicates this targeting resource
3792	// refers to an ISP.
3793	//   "CARRIER_AND_ISP_TYPE_CARRIER" - Indicates this targeting resource
3794	// refers to a mobile carrier.
3795	Type string `json:"type,omitempty"`
3796
3797	// ForceSendFields is a list of field names (e.g. "DisplayName") to
3798	// unconditionally include in API requests. By default, fields with
3799	// empty or default values are omitted from API requests. However, any
3800	// non-pointer, non-interface field appearing in ForceSendFields will be
3801	// sent to the server regardless of whether the field is empty or not.
3802	// This may be used to include empty fields in Patch requests.
3803	ForceSendFields []string `json:"-"`
3804
3805	// NullFields is a list of field names (e.g. "DisplayName") to include
3806	// in API requests with the JSON null value. By default, fields with
3807	// empty values are omitted from API requests. However, any field with
3808	// an empty value appearing in NullFields will be sent to the server as
3809	// null. It is an error if a field in this list has a non-empty value.
3810	// This may be used to include null fields in Patch requests.
3811	NullFields []string `json:"-"`
3812}
3813
3814func (s *CarrierAndIspTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3815	type NoMethod CarrierAndIspTargetingOptionDetails
3816	raw := NoMethod(*s)
3817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3818}
3819
3820// CategoryAssignedTargetingOptionDetails: Assigned category targeting
3821// option details. This will be populated in the category_details field
3822// when targeting_type is `TARGETING_TYPE_CATEGORY`.
3823type CategoryAssignedTargetingOptionDetails struct {
3824	// DisplayName: Output only. The display name of the category.
3825	DisplayName string `json:"displayName,omitempty"`
3826
3827	// Negative: Indicates if this option is being negatively targeted.
3828	Negative bool `json:"negative,omitempty"`
3829
3830	// TargetingOptionId: Required. The targeting_option_id field when
3831	// targeting_type is `TARGETING_TYPE_CATEGORY`.
3832	TargetingOptionId string `json:"targetingOptionId,omitempty"`
3833
3834	// ForceSendFields is a list of field names (e.g. "DisplayName") to
3835	// unconditionally include in API requests. By default, fields with
3836	// empty or default values are omitted from API requests. However, any
3837	// non-pointer, non-interface field appearing in ForceSendFields will be
3838	// sent to the server regardless of whether the field is empty or not.
3839	// This may be used to include empty fields in Patch requests.
3840	ForceSendFields []string `json:"-"`
3841
3842	// NullFields is a list of field names (e.g. "DisplayName") to include
3843	// in API requests with the JSON null value. By default, fields with
3844	// empty values are omitted from API requests. However, any field with
3845	// an empty value appearing in NullFields will be sent to the server as
3846	// null. It is an error if a field in this list has a non-empty value.
3847	// This may be used to include null fields in Patch requests.
3848	NullFields []string `json:"-"`
3849}
3850
3851func (s *CategoryAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3852	type NoMethod CategoryAssignedTargetingOptionDetails
3853	raw := NoMethod(*s)
3854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3855}
3856
3857// CategoryTargetingOptionDetails: Represents a targetable category.
3858// This will be populated in the category_details field of a
3859// TargetingOption when targeting_type is `TARGETING_TYPE_CATEGORY`.
3860type CategoryTargetingOptionDetails struct {
3861	// DisplayName: Output only. The display name of the category.
3862	DisplayName string `json:"displayName,omitempty"`
3863
3864	// ForceSendFields is a list of field names (e.g. "DisplayName") to
3865	// unconditionally include in API requests. By default, fields with
3866	// empty or default values are omitted from API requests. However, any
3867	// non-pointer, non-interface field appearing in ForceSendFields will be
3868	// sent to the server regardless of whether the field is empty or not.
3869	// This may be used to include empty fields in Patch requests.
3870	ForceSendFields []string `json:"-"`
3871
3872	// NullFields is a list of field names (e.g. "DisplayName") to include
3873	// in API requests with the JSON null value. By default, fields with
3874	// empty values are omitted from API requests. However, any field with
3875	// an empty value appearing in NullFields will be sent to the server as
3876	// null. It is an error if a field in this list has a non-empty value.
3877	// This may be used to include null fields in Patch requests.
3878	NullFields []string `json:"-"`
3879}
3880
3881func (s *CategoryTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3882	type NoMethod CategoryTargetingOptionDetails
3883	raw := NoMethod(*s)
3884	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3885}
3886
3887// Channel: A single channel. Channels are custom groups of related
3888// websites and apps.
3889type Channel struct {
3890	// AdvertiserId: The ID of the advertiser that owns the channel.
3891	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
3892
3893	// ChannelId: Output only. The unique ID of the channel. Assigned by the
3894	// system.
3895	ChannelId int64 `json:"channelId,omitempty,string"`
3896
3897	// DisplayName: Required. The display name of the channel. Must be UTF-8
3898	// encoded with a maximum length of 240 bytes.
3899	DisplayName string `json:"displayName,omitempty"`
3900
3901	// Name: Output only. The resource name of the channel.
3902	Name string `json:"name,omitempty"`
3903
3904	// NegativelyTargetedLineItemCount: Output only. Number of line items
3905	// that are directly targeting this channel negatively.
3906	NegativelyTargetedLineItemCount int64 `json:"negativelyTargetedLineItemCount,omitempty,string"`
3907
3908	// PartnerId: The ID of the partner that owns the channel.
3909	PartnerId int64 `json:"partnerId,omitempty,string"`
3910
3911	// PositivelyTargetedLineItemCount: Output only. Number of line items
3912	// that are directly targeting this channel positively.
3913	PositivelyTargetedLineItemCount int64 `json:"positivelyTargetedLineItemCount,omitempty,string"`
3914
3915	// ServerResponse contains the HTTP response code and headers from the
3916	// server.
3917	googleapi.ServerResponse `json:"-"`
3918
3919	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
3920	// unconditionally include in API requests. By default, fields with
3921	// empty or default values are omitted from API requests. However, any
3922	// non-pointer, non-interface field appearing in ForceSendFields will be
3923	// sent to the server regardless of whether the field is empty or not.
3924	// This may be used to include empty fields in Patch requests.
3925	ForceSendFields []string `json:"-"`
3926
3927	// NullFields is a list of field names (e.g. "AdvertiserId") to include
3928	// in API requests with the JSON null value. By default, fields with
3929	// empty values are omitted from API requests. However, any field with
3930	// an empty value appearing in NullFields will be sent to the server as
3931	// null. It is an error if a field in this list has a non-empty value.
3932	// This may be used to include null fields in Patch requests.
3933	NullFields []string `json:"-"`
3934}
3935
3936func (s *Channel) MarshalJSON() ([]byte, error) {
3937	type NoMethod Channel
3938	raw := NoMethod(*s)
3939	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3940}
3941
3942// ChannelAssignedTargetingOptionDetails: Details for assigned channel
3943// targeting option. This will be populated in the details field of an
3944// AssignedTargetingOption when targeting_type is
3945// `TARGETING_TYPE_CHANNEL`.
3946type ChannelAssignedTargetingOptionDetails struct {
3947	// ChannelId: Required. ID of the channel. Should refer to the channel
3948	// ID field on a Partner-owned channel
3949	// (partners.channels#Channel.FIELDS.channel_id) or advertiser-owned
3950	// channel (advertisers.channels#Channel.FIELDS.channel_id) resource.
3951	ChannelId int64 `json:"channelId,omitempty,string"`
3952
3953	// Negative: Indicates if this option is being negatively targeted. For
3954	// advertiser level assigned targeting option, this field must be true.
3955	Negative bool `json:"negative,omitempty"`
3956
3957	// ForceSendFields is a list of field names (e.g. "ChannelId") to
3958	// unconditionally include in API requests. By default, fields with
3959	// empty or default values are omitted from API requests. However, any
3960	// non-pointer, non-interface field appearing in ForceSendFields will be
3961	// sent to the server regardless of whether the field is empty or not.
3962	// This may be used to include empty fields in Patch requests.
3963	ForceSendFields []string `json:"-"`
3964
3965	// NullFields is a list of field names (e.g. "ChannelId") to include in
3966	// API requests with the JSON null value. By default, fields with empty
3967	// values are omitted from API requests. However, any field with an
3968	// empty value appearing in NullFields will be sent to the server as
3969	// null. It is an error if a field in this list has a non-empty value.
3970	// This may be used to include null fields in Patch requests.
3971	NullFields []string `json:"-"`
3972}
3973
3974func (s *ChannelAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3975	type NoMethod ChannelAssignedTargetingOptionDetails
3976	raw := NoMethod(*s)
3977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3978}
3979
3980// CmHybridConfig: Settings for advertisers that use both Campaign
3981// Manager 360 (CM360) and third-party ad servers.
3982type CmHybridConfig struct {
3983	// CmAccountId: Required. Immutable. Account ID of the CM360 Floodlight
3984	// configuration linked with the DV360 advertiser.
3985	CmAccountId int64 `json:"cmAccountId,omitempty,string"`
3986
3987	// CmFloodlightConfigId: Required. Immutable. ID of the CM360 Floodlight
3988	// configuration linked with the DV360 advertiser.
3989	CmFloodlightConfigId int64 `json:"cmFloodlightConfigId,omitempty,string"`
3990
3991	// CmFloodlightLinkingAuthorized: Required. Immutable. By setting this
3992	// field to `true`, you, on behalf of your company, authorize the
3993	// sharing of information from the given Floodlight configuration to
3994	// this Display & Video 360 advertiser.
3995	CmFloodlightLinkingAuthorized bool `json:"cmFloodlightLinkingAuthorized,omitempty"`
3996
3997	// CmSyncableSiteIds: A list of CM360 sites whose placements will be
3998	// synced to DV360 as creatives. If absent or empty in CreateAdvertiser
3999	// method, the system will automatically create a CM360 site. Removing
4000	// sites from this list may cause DV360 creatives synced from CM360 to
4001	// be deleted. At least one site must be specified.
4002	CmSyncableSiteIds googleapi.Int64s `json:"cmSyncableSiteIds,omitempty"`
4003
4004	// Dv360ToCmCostReportingEnabled: Whether or not to report DV360 cost to
4005	// CM360.
4006	Dv360ToCmCostReportingEnabled bool `json:"dv360ToCmCostReportingEnabled,omitempty"`
4007
4008	// Dv360ToCmDataSharingEnabled: Whether or not to include DV360 data in
4009	// CM360 data transfer reports.
4010	Dv360ToCmDataSharingEnabled bool `json:"dv360ToCmDataSharingEnabled,omitempty"`
4011
4012	// ForceSendFields is a list of field names (e.g. "CmAccountId") to
4013	// unconditionally include in API requests. By default, fields with
4014	// empty or default values are omitted from API requests. However, any
4015	// non-pointer, non-interface field appearing in ForceSendFields will be
4016	// sent to the server regardless of whether the field is empty or not.
4017	// This may be used to include empty fields in Patch requests.
4018	ForceSendFields []string `json:"-"`
4019
4020	// NullFields is a list of field names (e.g. "CmAccountId") to include
4021	// in API requests with the JSON null value. By default, fields with
4022	// empty values are omitted from API requests. However, any field with
4023	// an empty value appearing in NullFields will be sent to the server as
4024	// null. It is an error if a field in this list has a non-empty value.
4025	// This may be used to include null fields in Patch requests.
4026	NullFields []string `json:"-"`
4027}
4028
4029func (s *CmHybridConfig) MarshalJSON() ([]byte, error) {
4030	type NoMethod CmHybridConfig
4031	raw := NoMethod(*s)
4032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4033}
4034
4035// CmTrackingAd: A Campaign Manager 360 tracking ad.
4036type CmTrackingAd struct {
4037	// CmAdId: The ad ID of the campaign manager 360 tracking Ad.
4038	CmAdId int64 `json:"cmAdId,omitempty,string"`
4039
4040	// CmCreativeId: The creative ID of the campaign manager 360 tracking
4041	// Ad.
4042	CmCreativeId int64 `json:"cmCreativeId,omitempty,string"`
4043
4044	// CmPlacementId: The placement ID of the campaign manager 360 tracking
4045	// Ad.
4046	CmPlacementId int64 `json:"cmPlacementId,omitempty,string"`
4047
4048	// ForceSendFields is a list of field names (e.g. "CmAdId") to
4049	// unconditionally include in API requests. By default, fields with
4050	// empty or default values are omitted from API requests. However, any
4051	// non-pointer, non-interface field appearing in ForceSendFields will be
4052	// sent to the server regardless of whether the field is empty or not.
4053	// This may be used to include empty fields in Patch requests.
4054	ForceSendFields []string `json:"-"`
4055
4056	// NullFields is a list of field names (e.g. "CmAdId") to include in API
4057	// requests with the JSON null value. By default, fields with empty
4058	// values are omitted from API requests. However, any field with an
4059	// empty value appearing in NullFields will be sent to the server as
4060	// null. It is an error if a field in this list has a non-empty value.
4061	// This may be used to include null fields in Patch requests.
4062	NullFields []string `json:"-"`
4063}
4064
4065func (s *CmTrackingAd) MarshalJSON() ([]byte, error) {
4066	type NoMethod CmTrackingAd
4067	raw := NoMethod(*s)
4068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4069}
4070
4071// CombinedAudience: Describes a combined audience resource.
4072type CombinedAudience struct {
4073	// CombinedAudienceId: Output only. The unique ID of the combined
4074	// audience. Assigned by the system.
4075	CombinedAudienceId int64 `json:"combinedAudienceId,omitempty,string"`
4076
4077	// DisplayName: Output only. The display name of the combined audience.
4078	// .
4079	DisplayName string `json:"displayName,omitempty"`
4080
4081	// Name: Output only. The resource name of the combined audience.
4082	Name string `json:"name,omitempty"`
4083
4084	// ServerResponse contains the HTTP response code and headers from the
4085	// server.
4086	googleapi.ServerResponse `json:"-"`
4087
4088	// ForceSendFields is a list of field names (e.g. "CombinedAudienceId")
4089	// to unconditionally include in API requests. By default, fields with
4090	// empty or default values are omitted from API requests. However, any
4091	// non-pointer, non-interface field appearing in ForceSendFields will be
4092	// sent to the server regardless of whether the field is empty or not.
4093	// This may be used to include empty fields in Patch requests.
4094	ForceSendFields []string `json:"-"`
4095
4096	// NullFields is a list of field names (e.g. "CombinedAudienceId") to
4097	// include in API requests with the JSON null value. By default, fields
4098	// with empty values are omitted from API requests. However, any field
4099	// with an empty value appearing in NullFields will be sent to the
4100	// server as null. It is an error if a field in this list has a
4101	// non-empty value. This may be used to include null fields in Patch
4102	// requests.
4103	NullFields []string `json:"-"`
4104}
4105
4106func (s *CombinedAudience) MarshalJSON() ([]byte, error) {
4107	type NoMethod CombinedAudience
4108	raw := NoMethod(*s)
4109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4110}
4111
4112// CombinedAudienceGroup: Details of combined audience group. All
4113// combined audience targeting settings are logically ‘OR’ of each
4114// other.
4115type CombinedAudienceGroup struct {
4116	// Settings: Required. All combined audience targeting settings in
4117	// combined audience group. Repeated settings with same id will be
4118	// ignored. The number of combined audience settings should be no more
4119	// than five, error will be thrown otherwise.
4120	Settings []*CombinedAudienceTargetingSetting `json:"settings,omitempty"`
4121
4122	// ForceSendFields is a list of field names (e.g. "Settings") to
4123	// unconditionally include in API requests. By default, fields with
4124	// empty or default values are omitted from API requests. However, any
4125	// non-pointer, non-interface field appearing in ForceSendFields will be
4126	// sent to the server regardless of whether the field is empty or not.
4127	// This may be used to include empty fields in Patch requests.
4128	ForceSendFields []string `json:"-"`
4129
4130	// NullFields is a list of field names (e.g. "Settings") to include in
4131	// API requests with the JSON null value. By default, fields with empty
4132	// values are omitted from API requests. However, any field with an
4133	// empty value appearing in NullFields will be sent to the server as
4134	// null. It is an error if a field in this list has a non-empty value.
4135	// This may be used to include null fields in Patch requests.
4136	NullFields []string `json:"-"`
4137}
4138
4139func (s *CombinedAudienceGroup) MarshalJSON() ([]byte, error) {
4140	type NoMethod CombinedAudienceGroup
4141	raw := NoMethod(*s)
4142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4143}
4144
4145// CombinedAudienceTargetingSetting: Details of combined audience
4146// targeting setting.
4147type CombinedAudienceTargetingSetting struct {
4148	// CombinedAudienceId: Required. Combined audience id of combined
4149	// audience targeting setting. This id is combined_audience_id.
4150	CombinedAudienceId int64 `json:"combinedAudienceId,omitempty,string"`
4151
4152	// ForceSendFields is a list of field names (e.g. "CombinedAudienceId")
4153	// to unconditionally include in API requests. By default, fields with
4154	// empty or default values are omitted from API requests. However, any
4155	// non-pointer, non-interface field appearing in ForceSendFields will be
4156	// sent to the server regardless of whether the field is empty or not.
4157	// This may be used to include empty fields in Patch requests.
4158	ForceSendFields []string `json:"-"`
4159
4160	// NullFields is a list of field names (e.g. "CombinedAudienceId") to
4161	// include in API requests with the JSON null value. By default, fields
4162	// with empty values are omitted from API requests. However, any field
4163	// with an empty value appearing in NullFields will be sent to the
4164	// server as null. It is an error if a field in this list has a
4165	// non-empty value. This may be used to include null fields in Patch
4166	// requests.
4167	NullFields []string `json:"-"`
4168}
4169
4170func (s *CombinedAudienceTargetingSetting) MarshalJSON() ([]byte, error) {
4171	type NoMethod CombinedAudienceTargetingSetting
4172	raw := NoMethod(*s)
4173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4174}
4175
4176// ContentInstreamPositionAssignedTargetingOptionDetails: Assigned
4177// content instream position targeting option details. This will be
4178// populated in the content_instream_position_details field when
4179// targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
4180type ContentInstreamPositionAssignedTargetingOptionDetails struct {
4181	// AdType: Output only. The ad type to target. Only applicable to
4182	// insertion order targeting and new line items supporting the specified
4183	// ad type will inherit this targeting option by default. Possible
4184	// values are: * `AD_TYPE_VIDEO`, the setting will be inherited by new
4185	// line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. *
4186	// `AD_TYPE_AUDIO`, the setting will be inherited by new line item when
4187	// line_item_type is `LINE_ITEM_TYPE_AUDIO_DEFAULT`.
4188	//
4189	// Possible values:
4190	//   "AD_TYPE_UNSPECIFIED" - Ad type is not specified or is unknown in
4191	// this version.
4192	//   "AD_TYPE_DISPLAY" - Display creatives, e.g. image and HTML5.
4193	//   "AD_TYPE_VIDEO" - Video creatives, e.g. video ads that play during
4194	// streaming content in video players.
4195	//   "AD_TYPE_AUDIO" - Audio creatives, e.g. audio ads that play during
4196	// audio content.
4197	AdType string `json:"adType,omitempty"`
4198
4199	// ContentInstreamPosition: Output only. The content instream position
4200	// for video or audio ads.
4201	//
4202	// Possible values:
4203	//   "CONTENT_INSTREAM_POSITION_UNSPECIFIED" - Content instream position
4204	// is not specified in this version. This enum is a place holder for a
4205	// default value and does not represent a real in stream ad position.
4206	//   "CONTENT_INSTREAM_POSITION_PRE_ROLL" - Ads that play before
4207	// streaming content.
4208	//   "CONTENT_INSTREAM_POSITION_MID_ROLL" - Ads that play between the
4209	// beginning and end of streaming content.
4210	//   "CONTENT_INSTREAM_POSITION_POST_ROLL" - Ads that play at the end of
4211	// streaming content.
4212	//   "CONTENT_INSTREAM_POSITION_UNKNOWN" - Ads instream position is
4213	// unknown.
4214	ContentInstreamPosition string `json:"contentInstreamPosition,omitempty"`
4215
4216	// TargetingOptionId: Required. The targeting_option_id field when
4217	// targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
4218	TargetingOptionId string `json:"targetingOptionId,omitempty"`
4219
4220	// ForceSendFields is a list of field names (e.g. "AdType") to
4221	// unconditionally include in API requests. By default, fields with
4222	// empty or default values are omitted from API requests. However, any
4223	// non-pointer, non-interface field appearing in ForceSendFields will be
4224	// sent to the server regardless of whether the field is empty or not.
4225	// This may be used to include empty fields in Patch requests.
4226	ForceSendFields []string `json:"-"`
4227
4228	// NullFields is a list of field names (e.g. "AdType") to include in API
4229	// requests with the JSON null value. By default, fields with empty
4230	// values are omitted from API requests. However, any field with an
4231	// empty value appearing in NullFields will be sent to the server as
4232	// null. It is an error if a field in this list has a non-empty value.
4233	// This may be used to include null fields in Patch requests.
4234	NullFields []string `json:"-"`
4235}
4236
4237func (s *ContentInstreamPositionAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
4238	type NoMethod ContentInstreamPositionAssignedTargetingOptionDetails
4239	raw := NoMethod(*s)
4240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4241}
4242
4243// ContentInstreamPositionTargetingOptionDetails: Represents a
4244// targetable content instream position, which could be used by video
4245// and audio ads. This will be populated in the
4246// content_instream_position_details field when targeting_type is
4247// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
4248type ContentInstreamPositionTargetingOptionDetails struct {
4249	// ContentInstreamPosition: Output only. The content instream position.
4250	//
4251	// Possible values:
4252	//   "CONTENT_INSTREAM_POSITION_UNSPECIFIED" - Content instream position
4253	// is not specified in this version. This enum is a place holder for a
4254	// default value and does not represent a real in stream ad position.
4255	//   "CONTENT_INSTREAM_POSITION_PRE_ROLL" - Ads that play before
4256	// streaming content.
4257	//   "CONTENT_INSTREAM_POSITION_MID_ROLL" - Ads that play between the
4258	// beginning and end of streaming content.
4259	//   "CONTENT_INSTREAM_POSITION_POST_ROLL" - Ads that play at the end of
4260	// streaming content.
4261	//   "CONTENT_INSTREAM_POSITION_UNKNOWN" - Ads instream position is
4262	// unknown.
4263	ContentInstreamPosition string `json:"contentInstreamPosition,omitempty"`
4264
4265	// ForceSendFields is a list of field names (e.g.
4266	// "ContentInstreamPosition") to unconditionally include in API
4267	// requests. By default, fields with empty or default values are omitted
4268	// from API requests. However, any non-pointer, non-interface field
4269	// appearing in ForceSendFields will be sent to the server regardless of
4270	// whether the field is empty or not. This may be used to include empty
4271	// fields in Patch requests.
4272	ForceSendFields []string `json:"-"`
4273
4274	// NullFields is a list of field names (e.g. "ContentInstreamPosition")
4275	// to include in API requests with the JSON null value. By default,
4276	// fields with empty values are omitted from API requests. However, any
4277	// field with an empty value appearing in NullFields will be sent to the
4278	// server as null. It is an error if a field in this list has a
4279	// non-empty value. This may be used to include null fields in Patch
4280	// requests.
4281	NullFields []string `json:"-"`
4282}
4283
4284func (s *ContentInstreamPositionTargetingOptionDetails) MarshalJSON() ([]byte, error) {
4285	type NoMethod ContentInstreamPositionTargetingOptionDetails
4286	raw := NoMethod(*s)
4287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4288}
4289
4290// ContentOutstreamPositionAssignedTargetingOptionDetails: Assigned
4291// content outstream position targeting option details. This will be
4292// populated in the content_outstream_position_details field when
4293// targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
4294type ContentOutstreamPositionAssignedTargetingOptionDetails struct {
4295	// AdType: Output only. The ad type to target. Only applicable to
4296	// insertion order targeting and new line items supporting the specified
4297	// ad type will inherit this targeting option by default. Possible
4298	// values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new
4299	// line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. *
4300	// `AD_TYPE_VIDEO`, the setting will be inherited by new line item when
4301	// line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`.
4302	//
4303	// Possible values:
4304	//   "AD_TYPE_UNSPECIFIED" - Ad type is not specified or is unknown in
4305	// this version.
4306	//   "AD_TYPE_DISPLAY" - Display creatives, e.g. image and HTML5.
4307	//   "AD_TYPE_VIDEO" - Video creatives, e.g. video ads that play during
4308	// streaming content in video players.
4309	//   "AD_TYPE_AUDIO" - Audio creatives, e.g. audio ads that play during
4310	// audio content.
4311	AdType string `json:"adType,omitempty"`
4312
4313	// ContentOutstreamPosition: Output only. The content outstream
4314	// position.
4315	//
4316	// Possible values:
4317	//   "CONTENT_OUTSTREAM_POSITION_UNSPECIFIED" - Content outstream
4318	// position is not specified in this version. This enum is a place
4319	// holder for a default value and does not represent a real content
4320	// outstream position.
4321	//   "CONTENT_OUTSTREAM_POSITION_UNKNOWN" - The ad position is unknown
4322	// in the content outstream.
4323	//   "CONTENT_OUTSTREAM_POSITION_IN_ARTICLE" - Ads that appear between
4324	// the paragraphs of your pages.
4325	//   "CONTENT_OUTSTREAM_POSITION_IN_BANNER" - Ads that display on the
4326	// top and the sides of a page.
4327	//   "CONTENT_OUTSTREAM_POSITION_IN_FEED" - Ads that appear in a
4328	// scrollable stream of content. A feed is typically editorial (e.g. a
4329	// list of articles or news) or listings (e.g. a list of products or
4330	// services).
4331	//   "CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" - Ads shown before or
4332	// between content loads.
4333	ContentOutstreamPosition string `json:"contentOutstreamPosition,omitempty"`
4334
4335	// TargetingOptionId: Required. The targeting_option_id field when
4336	// targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
4337	TargetingOptionId string `json:"targetingOptionId,omitempty"`
4338
4339	// ForceSendFields is a list of field names (e.g. "AdType") to
4340	// unconditionally include in API requests. By default, fields with
4341	// empty or default values are omitted from API requests. However, any
4342	// non-pointer, non-interface field appearing in ForceSendFields will be
4343	// sent to the server regardless of whether the field is empty or not.
4344	// This may be used to include empty fields in Patch requests.
4345	ForceSendFields []string `json:"-"`
4346
4347	// NullFields is a list of field names (e.g. "AdType") to include in API
4348	// requests with the JSON null value. By default, fields with empty
4349	// values are omitted from API requests. However, any field with an
4350	// empty value appearing in NullFields will be sent to the server as
4351	// null. It is an error if a field in this list has a non-empty value.
4352	// This may be used to include null fields in Patch requests.
4353	NullFields []string `json:"-"`
4354}
4355
4356func (s *ContentOutstreamPositionAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
4357	type NoMethod ContentOutstreamPositionAssignedTargetingOptionDetails
4358	raw := NoMethod(*s)
4359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4360}
4361
4362// ContentOutstreamPositionTargetingOptionDetails: Represents a
4363// targetable content outstream position, which could be used by display
4364// and video ads. This will be populated in the
4365// content_outstream_position_details field when targeting_type is
4366// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
4367type ContentOutstreamPositionTargetingOptionDetails struct {
4368	// ContentOutstreamPosition: Output only. The content outstream
4369	// position.
4370	//
4371	// Possible values:
4372	//   "CONTENT_OUTSTREAM_POSITION_UNSPECIFIED" - Content outstream
4373	// position is not specified in this version. This enum is a place
4374	// holder for a default value and does not represent a real content
4375	// outstream position.
4376	//   "CONTENT_OUTSTREAM_POSITION_UNKNOWN" - The ad position is unknown
4377	// in the content outstream.
4378	//   "CONTENT_OUTSTREAM_POSITION_IN_ARTICLE" - Ads that appear between
4379	// the paragraphs of your pages.
4380	//   "CONTENT_OUTSTREAM_POSITION_IN_BANNER" - Ads that display on the
4381	// top and the sides of a page.
4382	//   "CONTENT_OUTSTREAM_POSITION_IN_FEED" - Ads that appear in a
4383	// scrollable stream of content. A feed is typically editorial (e.g. a
4384	// list of articles or news) or listings (e.g. a list of products or
4385	// services).
4386	//   "CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" - Ads shown before or
4387	// between content loads.
4388	ContentOutstreamPosition string `json:"contentOutstreamPosition,omitempty"`
4389
4390	// ForceSendFields is a list of field names (e.g.
4391	// "ContentOutstreamPosition") to unconditionally include in API
4392	// requests. By default, fields with empty or default values are omitted
4393	// from API requests. However, any non-pointer, non-interface field
4394	// appearing in ForceSendFields will be sent to the server regardless of
4395	// whether the field is empty or not. This may be used to include empty
4396	// fields in Patch requests.
4397	ForceSendFields []string `json:"-"`
4398
4399	// NullFields is a list of field names (e.g. "ContentOutstreamPosition")
4400	// to include in API requests with the JSON null value. By default,
4401	// fields with empty values are omitted from API requests. However, any
4402	// field with an empty value appearing in NullFields will be sent to the
4403	// server as null. It is an error if a field in this list has a
4404	// non-empty value. This may be used to include null fields in Patch
4405	// requests.
4406	NullFields []string `json:"-"`
4407}
4408
4409func (s *ContentOutstreamPositionTargetingOptionDetails) MarshalJSON() ([]byte, error) {
4410	type NoMethod ContentOutstreamPositionTargetingOptionDetails
4411	raw := NoMethod(*s)
4412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4413}
4414
4415// ConversionCountingConfig: Settings that control how conversions are
4416// counted. All post-click conversions will be counted. A percentage
4417// value can be set for post-view conversions counting.
4418type ConversionCountingConfig struct {
4419	// FloodlightActivityConfigs: The Floodlight activity configs used to
4420	// track conversions. The number of conversions counted is the sum of
4421	// all of the conversions counted by all of the Floodlight activity IDs
4422	// specified in this field.
4423	FloodlightActivityConfigs []*TrackingFloodlightActivityConfig `json:"floodlightActivityConfigs,omitempty"`
4424
4425	// PostViewCountPercentageMillis: The percentage of post-view
4426	// conversions to count, in millis (1/1000 of a percent). Must be
4427	// between 0 and 100000 inclusive. For example, to track 50% of the
4428	// post-click conversions, set a value of 50000.
4429	PostViewCountPercentageMillis int64 `json:"postViewCountPercentageMillis,omitempty,string"`
4430
4431	// ForceSendFields is a list of field names (e.g.
4432	// "FloodlightActivityConfigs") to unconditionally include in API
4433	// requests. By default, fields with empty or default values are omitted
4434	// from API requests. However, any non-pointer, non-interface field
4435	// appearing in ForceSendFields will be sent to the server regardless of
4436	// whether the field is empty or not. This may be used to include empty
4437	// fields in Patch requests.
4438	ForceSendFields []string `json:"-"`
4439
4440	// NullFields is a list of field names (e.g.
4441	// "FloodlightActivityConfigs") to include in API requests with the JSON
4442	// null value. By default, fields with empty values are omitted from API
4443	// requests. However, any field with an empty value appearing in
4444	// NullFields will be sent to the server as null. It is an error if a
4445	// field in this list has a non-empty value. This may be used to include
4446	// null fields in Patch requests.
4447	NullFields []string `json:"-"`
4448}
4449
4450func (s *ConversionCountingConfig) MarshalJSON() ([]byte, error) {
4451	type NoMethod ConversionCountingConfig
4452	raw := NoMethod(*s)
4453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4454}
4455
4456// CounterEvent: Counter event of the creative.
4457type CounterEvent struct {
4458	// Name: Required. The name of the counter event.
4459	Name string `json:"name,omitempty"`
4460
4461	// ReportingName: Required. The name used to identify this counter event
4462	// in reports.
4463	ReportingName string `json:"reportingName,omitempty"`
4464
4465	// ForceSendFields is a list of field names (e.g. "Name") to
4466	// unconditionally include in API requests. By default, fields with
4467	// empty or default values are omitted from API requests. However, any
4468	// non-pointer, non-interface field appearing in ForceSendFields will be
4469	// sent to the server regardless of whether the field is empty or not.
4470	// This may be used to include empty fields in Patch requests.
4471	ForceSendFields []string `json:"-"`
4472
4473	// NullFields is a list of field names (e.g. "Name") to include in API
4474	// requests with the JSON null value. By default, fields with empty
4475	// values are omitted from API requests. However, any field with an
4476	// empty value appearing in NullFields will be sent to the server as
4477	// null. It is an error if a field in this list has a non-empty value.
4478	// This may be used to include null fields in Patch requests.
4479	NullFields []string `json:"-"`
4480}
4481
4482func (s *CounterEvent) MarshalJSON() ([]byte, error) {
4483	type NoMethod CounterEvent
4484	raw := NoMethod(*s)
4485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4486}
4487
4488// CreateAssetRequest: A request message for CreateAsset.
4489type CreateAssetRequest struct {
4490	// Filename: Required. The filename of the asset, including the file
4491	// extension. The filename must be UTF-8 encoded with a maximum size of
4492	// 240 bytes.
4493	Filename string `json:"filename,omitempty"`
4494
4495	// ForceSendFields is a list of field names (e.g. "Filename") to
4496	// unconditionally include in API requests. By default, fields with
4497	// empty or default values are omitted from API requests. However, any
4498	// non-pointer, non-interface field appearing in ForceSendFields will be
4499	// sent to the server regardless of whether the field is empty or not.
4500	// This may be used to include empty fields in Patch requests.
4501	ForceSendFields []string `json:"-"`
4502
4503	// NullFields is a list of field names (e.g. "Filename") to include in
4504	// API requests with the JSON null value. By default, fields with empty
4505	// values are omitted from API requests. However, any field with an
4506	// empty value appearing in NullFields will be sent to the server as
4507	// null. It is an error if a field in this list has a non-empty value.
4508	// This may be used to include null fields in Patch requests.
4509	NullFields []string `json:"-"`
4510}
4511
4512func (s *CreateAssetRequest) MarshalJSON() ([]byte, error) {
4513	type NoMethod CreateAssetRequest
4514	raw := NoMethod(*s)
4515	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4516}
4517
4518// CreateAssetResponse: A response message for CreateAsset.
4519type CreateAssetResponse struct {
4520	// Asset: The uploaded asset, if successful.
4521	Asset *Asset `json:"asset,omitempty"`
4522
4523	// ServerResponse contains the HTTP response code and headers from the
4524	// server.
4525	googleapi.ServerResponse `json:"-"`
4526
4527	// ForceSendFields is a list of field names (e.g. "Asset") to
4528	// unconditionally include in API requests. By default, fields with
4529	// empty or default values are omitted from API requests. However, any
4530	// non-pointer, non-interface field appearing in ForceSendFields will be
4531	// sent to the server regardless of whether the field is empty or not.
4532	// This may be used to include empty fields in Patch requests.
4533	ForceSendFields []string `json:"-"`
4534
4535	// NullFields is a list of field names (e.g. "Asset") to include in API
4536	// requests with the JSON null value. By default, fields with empty
4537	// values are omitted from API requests. However, any field with an
4538	// empty value appearing in NullFields will be sent to the server as
4539	// null. It is an error if a field in this list has a non-empty value.
4540	// This may be used to include null fields in Patch requests.
4541	NullFields []string `json:"-"`
4542}
4543
4544func (s *CreateAssetResponse) MarshalJSON() ([]byte, error) {
4545	type NoMethod CreateAssetResponse
4546	raw := NoMethod(*s)
4547	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4548}
4549
4550// CreateAssignedTargetingOptionsRequest: A request listing which
4551// assigned targeting options of a given targeting type should be
4552// created and added.
4553type CreateAssignedTargetingOptionsRequest struct {
4554	// AssignedTargetingOptions: Required. The assigned targeting options to
4555	// create and add.
4556	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
4557
4558	// TargetingType: Required. Identifies the type of this assigned
4559	// targeting option.
4560	//
4561	// Possible values:
4562	//   "TARGETING_TYPE_UNSPECIFIED" - Default value when type is not
4563	// specified or is unknown in this version.
4564	//   "TARGETING_TYPE_CHANNEL" - Target a channel (a custom group of
4565	// related websites or apps).
4566	//   "TARGETING_TYPE_APP_CATEGORY" - Target an app category (for
4567	// example, education or puzzle games).
4568	//   "TARGETING_TYPE_APP" - Target a specific app (for example, Angry
4569	// Birds).
4570	//   "TARGETING_TYPE_URL" - Target a specific url (for example,
4571	// quora.com).
4572	//   "TARGETING_TYPE_DAY_AND_TIME" - Target ads during a chosen time
4573	// period on a specific day.
4574	//   "TARGETING_TYPE_AGE_RANGE" - Target ads to a specific age range
4575	// (for example, 18-24).
4576	//   "TARGETING_TYPE_REGIONAL_LOCATION_LIST" - Target ads to the
4577	// specified regions on a regional location list.
4578	//   "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" - Target ads to the
4579	// specified points of interest on a proximity location list.
4580	//   "TARGETING_TYPE_GENDER" - Target ads to a specific gender (for
4581	// example, female or male).
4582	//   "TARGETING_TYPE_VIDEO_PLAYER_SIZE" - Target a specific video player
4583	// size for video ads.
4584	//   "TARGETING_TYPE_USER_REWARDED_CONTENT" - Target user rewarded
4585	// content for video ads.
4586	//   "TARGETING_TYPE_PARENTAL_STATUS" - Target ads to a specific
4587	// parental status (for example, parent or not a parent).
4588	//   "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" - Target video or audio
4589	// ads in a specific content instream position (for example, pre-roll,
4590	// mid-roll, or post-roll).
4591	//   "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" - Target ads in a
4592	// specific content outstream position.
4593	//   "TARGETING_TYPE_DEVICE_TYPE" - Target ads to a specific device type
4594	// (for example, tablet or connected TV).
4595	//   "TARGETING_TYPE_AUDIENCE_GROUP" - Target ads to an audience or
4596	// groups of audiences. Singleton field, at most one can exist on a
4597	// single Lineitem at a time.
4598	//   "TARGETING_TYPE_BROWSER" - Target ads to specific web browsers (for
4599	// example, Chrome).
4600	//   "TARGETING_TYPE_HOUSEHOLD_INCOME" - Target ads to a specific
4601	// household income range (for example, top 10%).
4602	//   "TARGETING_TYPE_ON_SCREEN_POSITION" - Target ads in a specific on
4603	// screen position.
4604	//   "TARGETING_TYPE_THIRD_PARTY_VERIFIER" - Filter web sites through
4605	// third party verification (for example, IAS or DoubleVerify).
4606	//   "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" - Filter web sites
4607	// by specific digital content label ratings (for example, DL-MA:
4608	// suitable only for mature audiences).
4609	//   "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" - Filter website
4610	// content by sensitive categories (for example, adult).
4611	//   "TARGETING_TYPE_ENVIRONMENT" - Target ads to a specific environment
4612	// (for example, web or app).
4613	//   "TARGETING_TYPE_CARRIER_AND_ISP" - Target ads to a specific network
4614	// carrier or internet service provider (ISP) (for example, Comcast or
4615	// Orange).
4616	//   "TARGETING_TYPE_OPERATING_SYSTEM" - Target ads to a specific
4617	// operating system (for example, macOS).
4618	//   "TARGETING_TYPE_DEVICE_MAKE_MODEL" - Target ads to a specific
4619	// device make or model (for example, Roku or Samsung).
4620	//   "TARGETING_TYPE_KEYWORD" - Target ads to a specific keyword (for
4621	// example, dog or retriever).
4622	//   "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" - Target ads to a specific
4623	// negative keyword list.
4624	//   "TARGETING_TYPE_VIEWABILITY" - Target ads to a specific viewability
4625	// (for example, 80% viewable).
4626	//   "TARGETING_TYPE_CATEGORY" - Target ads to a specific content
4627	// category (for example, arts & entertainment).
4628	//   "TARGETING_TYPE_INVENTORY_SOURCE" - Purchase impressions from
4629	// specific deals and auction packages.
4630	//   "TARGETING_TYPE_LANGUAGE" - Target ads to a specific language (for
4631	// example, English or Japanese).
4632	//   "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" - Target ads to ads.txt
4633	// authorized sellers.
4634	//   "TARGETING_TYPE_GEO_REGION" - Target ads to a specific regional
4635	// location (for example, a city or state).
4636	//   "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" - Purchase impressions from
4637	// a group of deals and auction packages.
4638	//   "TARGETING_TYPE_EXCHANGE" - Purchase impressions from specific
4639	// exchanges.
4640	//   "TARGETING_TYPE_SUB_EXCHANGE" - Purchase impressions from specific
4641	// sub-exchanges.
4642	//   "TARGETING_TYPE_POI" - Target ads around a specific point of
4643	// interest, such as a notable building, a street address, or
4644	// latitude/longitude coordinates.
4645	//   "TARGETING_TYPE_BUSINESS_CHAIN" - Target ads around locations of a
4646	// business chain within a specific geo region.
4647	//   "TARGETING_TYPE_NATIVE_CONTENT_POSITION" - Target ads to a specific
4648	// native content position.
4649	//   "TARGETING_TYPE_OMID" - Target ads in an Open Measurement enabled
4650	// inventory.
4651	TargetingType string `json:"targetingType,omitempty"`
4652
4653	// ForceSendFields is a list of field names (e.g.
4654	// "AssignedTargetingOptions") to unconditionally include in API
4655	// requests. By default, fields with empty or default values are omitted
4656	// from API requests. However, any non-pointer, non-interface field
4657	// appearing in ForceSendFields will be sent to the server regardless of
4658	// whether the field is empty or not. This may be used to include empty
4659	// fields in Patch requests.
4660	ForceSendFields []string `json:"-"`
4661
4662	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
4663	// to include in API requests with the JSON null value. By default,
4664	// fields with empty values are omitted from API requests. However, any
4665	// field with an empty value appearing in NullFields will be sent to the
4666	// server as null. It is an error if a field in this list has a
4667	// non-empty value. This may be used to include null fields in Patch
4668	// requests.
4669	NullFields []string `json:"-"`
4670}
4671
4672func (s *CreateAssignedTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
4673	type NoMethod CreateAssignedTargetingOptionsRequest
4674	raw := NoMethod(*s)
4675	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4676}
4677
4678// CreateSdfDownloadTaskRequest: Request message for
4679// [SdfDownloadTaskService.CreateSdfDownloadTask].
4680type CreateSdfDownloadTaskRequest struct {
4681	// AdvertiserId: The ID of the advertiser to download SDF for.
4682	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
4683
4684	// IdFilter: Filters on entities by their entity IDs.
4685	IdFilter *IdFilter `json:"idFilter,omitempty"`
4686
4687	// InventorySourceFilter: Filters on Inventory Sources by their IDs.
4688	InventorySourceFilter *InventorySourceFilter `json:"inventorySourceFilter,omitempty"`
4689
4690	// ParentEntityFilter: Filters on selected file types. The entities in
4691	// each file are filtered by a chosen set of filter entities. The filter
4692	// entities must be the same type as, or a parent type of, the selected
4693	// file types.
4694	ParentEntityFilter *ParentEntityFilter `json:"parentEntityFilter,omitempty"`
4695
4696	// PartnerId: The ID of the partner to download SDF for.
4697	PartnerId int64 `json:"partnerId,omitempty,string"`
4698
4699	// Version: Required. The SDF version of the downloaded file. If set to
4700	// `SDF_VERSION_UNSPECIFIED`, this will default to the version specified
4701	// by the advertiser or partner identified by `root_id`. An advertiser
4702	// inherits its SDF version from its partner unless configured
4703	// otherwise.
4704	//
4705	// Possible values:
4706	//   "SDF_VERSION_UNSPECIFIED" - SDF version value is not specified or
4707	// is unknown in this version.
4708	//   "SDF_VERSION_3_1" - SDF version 3.1
4709	//   "SDF_VERSION_4" - SDF version 4
4710	//   "SDF_VERSION_4_1" - SDF version 4.1
4711	//   "SDF_VERSION_4_2" - SDF version 4.2
4712	//   "SDF_VERSION_5" - SDF version 5.
4713	//   "SDF_VERSION_5_1" - SDF version 5.1
4714	//   "SDF_VERSION_5_2" - SDF version 5.2
4715	//   "SDF_VERSION_5_3" - SDF version 5.3
4716	Version string `json:"version,omitempty"`
4717
4718	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
4719	// unconditionally include in API requests. By default, fields with
4720	// empty or default values are omitted from API requests. However, any
4721	// non-pointer, non-interface field appearing in ForceSendFields will be
4722	// sent to the server regardless of whether the field is empty or not.
4723	// This may be used to include empty fields in Patch requests.
4724	ForceSendFields []string `json:"-"`
4725
4726	// NullFields is a list of field names (e.g. "AdvertiserId") to include
4727	// in API requests with the JSON null value. By default, fields with
4728	// empty values are omitted from API requests. However, any field with
4729	// an empty value appearing in NullFields will be sent to the server as
4730	// null. It is an error if a field in this list has a non-empty value.
4731	// This may be used to include null fields in Patch requests.
4732	NullFields []string `json:"-"`
4733}
4734
4735func (s *CreateSdfDownloadTaskRequest) MarshalJSON() ([]byte, error) {
4736	type NoMethod CreateSdfDownloadTaskRequest
4737	raw := NoMethod(*s)
4738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4739}
4740
4741// Creative: A single Creative.
4742type Creative struct {
4743	// AdditionalDimensions: Additional dimensions. Applicable when
4744	// creative_type is one of: * `CREATIVE_TYPE_STANDARD` *
4745	// `CREATIVE_TYPE_EXPANDABLE` * `CREATIVE_TYPE_NATIVE` *
4746	// `CREATIVE_TYPE_TEMPLATED_APP_INSTALL` *
4747	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_LIGHTBOX` *
4748	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
4749	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
4750	// `CREATIVE_TYPE_PUBLISHER_HOSTED` If this field is specified,
4751	// width_pixels and height_pixels are both required and must be greater
4752	// than or equal to 0.
4753	AdditionalDimensions []*Dimensions `json:"additionalDimensions,omitempty"`
4754
4755	// AdvertiserId: Output only. The unique ID of the advertiser the
4756	// creative belongs to.
4757	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
4758
4759	// AppendedTag: Third-party HTML tracking tag to be appended to the
4760	// creative tag.
4761	AppendedTag string `json:"appendedTag,omitempty"`
4762
4763	// Assets: Required. Assets associated to this creative. Assets can be
4764	// associated to the creative in one of following roles: *
4765	// `ASSET_ROLE_UNSPECIFIED` * `ASSET_ROLE_MAIN` * `ASSET_ROLE_BACKUP` *
4766	// `ASSET_ROLE_POLITE_LOAD`
4767	Assets []*AssetAssociation `json:"assets,omitempty"`
4768
4769	// CmPlacementId: Output only. The unique ID of the Campaign Manager 360
4770	// placement associated with the creative. This field is only applicable
4771	// for creatives that are synced from Campaign Manager.
4772	CmPlacementId int64 `json:"cmPlacementId,omitempty,string"`
4773
4774	// CmTrackingAd: The Campaign Manager 360 tracking ad associated with
4775	// the creative. Optional for the following creative_type when created
4776	// by an advertiser that uses both Campaign Manager 360 and third-party
4777	// ad serving: * `CREATIVE_TYPE_NATIVE` *
4778	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
4779	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
4780	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` Output only for other
4781	// cases.
4782	CmTrackingAd *CmTrackingAd `json:"cmTrackingAd,omitempty"`
4783
4784	// CompanionCreativeIds: The IDs of companion creatives for a video
4785	// creative. You can assign existing display creatives (with image or
4786	// HTML5 assets) to serve surrounding the publisher's video player.
4787	// Companions display around the video player while the video is playing
4788	// and remain after the video has completed. Creatives contain
4789	// additional dimensions can not be companion creatives. This field is
4790	// only supported for following creative_type: * `CREATIVE_TYPE_AUDIO` *
4791	// `CREATIVE_TYPE_VIDEO`
4792	CompanionCreativeIds googleapi.Int64s `json:"companionCreativeIds,omitempty"`
4793
4794	// CounterEvents: Counter events for a rich media creative. Counters
4795	// track the number of times that a user interacts with any part of a
4796	// rich media creative in a specified way (mouse-overs, mouse-outs,
4797	// clicks, taps, data loading, keyboard entries, etc.). Any event that
4798	// can be captured in the creative can be recorded as a counter. Leave
4799	// it empty or unset for creatives containing image assets only.
4800	CounterEvents []*CounterEvent `json:"counterEvents,omitempty"`
4801
4802	// CreateTime: Output only. The timestamp when the creative was created.
4803	// Assigned by the system.
4804	CreateTime string `json:"createTime,omitempty"`
4805
4806	// CreativeAttributes: Output only. A list of attributes of the creative
4807	// that is generated by the system.
4808	//
4809	// Possible values:
4810	//   "CREATIVE_ATTRIBUTE_UNSPECIFIED" - The creative attribute is not
4811	// specified or is unknown in this version.
4812	//   "CREATIVE_ATTRIBUTE_VAST" - The creative is a VAST creative.
4813	//   "CREATIVE_ATTRIBUTE_VPAID_LINEAR" - The creative is a linear VPAID
4814	// creative.
4815	//   "CREATIVE_ATTRIBUTE_VPAID_NON_LINEAR" - The creative is a
4816	// non-linear VPAID creative.
4817	CreativeAttributes []string `json:"creativeAttributes,omitempty"`
4818
4819	// CreativeId: Output only. The unique ID of the creative. Assigned by
4820	// the system.
4821	CreativeId int64 `json:"creativeId,omitempty,string"`
4822
4823	// CreativeType: Required. Immutable. The type of the creative.
4824	//
4825	// Possible values:
4826	//   "CREATIVE_TYPE_UNSPECIFIED" - Type value is not specified or is
4827	// unknown in this version.
4828	//   "CREATIVE_TYPE_STANDARD" - Standard display creative. Create and
4829	// update methods are supported for this creative type if the
4830	// hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` *
4831	// `HOSTING_SOURCE_THIRD_PARTY`
4832	//   "CREATIVE_TYPE_EXPANDABLE" - Expandable creative. Create and update
4833	// methods are supported for this creative type if the hosting_source is
4834	// `HOSTING_SOURCE_THIRD_PARTY`
4835	//   "CREATIVE_TYPE_VIDEO" - Video creative. Create and update methods
4836	// are supported for this creative type if the hosting_source is one of
4837	// the following: * `HOSTING_SOURCE_HOSTED` *
4838	// `HOSTING_SOURCE_THIRD_PARTY`
4839	//   "CREATIVE_TYPE_NATIVE" - Native creative rendered by publishers
4840	// with assets from advertiser. Create and update methods are supported
4841	// for this creative type if the hosting_source is
4842	// `HOSTING_SOURCE_HOSTED`
4843	//   "CREATIVE_TYPE_TEMPLATED_APP_INSTALL" - Templated app install
4844	// mobile creative (banner). Create and update methods are **not**
4845	// supported for this creative type.
4846	//   "CREATIVE_TYPE_NATIVE_SITE_SQUARE" - Square native creative. Create
4847	// and update methods are supported for this creative type if the
4848	// hosting_source is `HOSTING_SOURCE_HOSTED`
4849	//   "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL" - Interstitial
4850	// creative including both display and video. Create and update methods
4851	// are **not** supported for this creative type.
4852	//   "CREATIVE_TYPE_LIGHTBOX" - Responsive and expandable Lightbox
4853	// creative. Create and update methods are **not** supported for this
4854	// creative type.
4855	//   "CREATIVE_TYPE_NATIVE_APP_INSTALL" - Native app install creative.
4856	// Create and update methods are supported for this creative type if the
4857	// hosting_source is `HOSTING_SOURCE_HOSTED`
4858	//   "CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE" - Square native app
4859	// install creative. Create and update methods are supported for this
4860	// creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`
4861	//   "CREATIVE_TYPE_AUDIO" - Audio creative. Create and update methods
4862	// are supported for this creative type if the hosting_source is
4863	// `HOSTING_SOURCE_HOSTED`
4864	//   "CREATIVE_TYPE_PUBLISHER_HOSTED" - Publisher hosted creative.
4865	// Create and update methods are **not** supported for this creative
4866	// type.
4867	//   "CREATIVE_TYPE_NATIVE_VIDEO" - Native video creative. Create and
4868	// update methods are supported for this creative type if the
4869	// hosting_source is `HOSTING_SOURCE_HOSTED`
4870	//   "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO" - Templated app install
4871	// mobile video creative. Create and update methods are **not**
4872	// supported for this creative type.
4873	CreativeType string `json:"creativeType,omitempty"`
4874
4875	// Dimensions: Required. Primary dimensions of the creative. Applicable
4876	// to all creative types. The value of width_pixels and height_pixels
4877	// defaults to `0` when creative_type is one of: * `CREATIVE_TYPE_VIDEO`
4878	// * `CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL` *
4879	// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE_VIDEO` *
4880	// `CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO`
4881	Dimensions *Dimensions `json:"dimensions,omitempty"`
4882
4883	// DisplayName: Required. The display name of the creative. Must be
4884	// UTF-8 encoded with a maximum size of 240 bytes.
4885	DisplayName string `json:"displayName,omitempty"`
4886
4887	// Dynamic: Output only. Indicates whether the creative is dynamic.
4888	Dynamic bool `json:"dynamic,omitempty"`
4889
4890	// EntityStatus: Required. Controls whether or not the creative can
4891	// serve. Accepted values are: * `ENTITY_STATUS_ACTIVE` *
4892	// `ENTITY_STATUS_ARCHIVED` * `ENTITY_STATUS_PAUSED`
4893	//
4894	// Possible values:
4895	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
4896	// specified or is unknown in this version.
4897	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
4898	// budget.
4899	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
4900	// budget spending are disabled. An entity can be deleted after
4901	// archived. Deleted entities cannot be retrieved.
4902	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
4903	// budget spending are disabled.
4904	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
4905	// the entity.
4906	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
4907	// for deletion.
4908	EntityStatus string `json:"entityStatus,omitempty"`
4909
4910	// ExitEvents: Required. Exit events for this creative. An exit (also
4911	// known as a click tag) is any area in your creative that someone can
4912	// click or tap to open an advertiser's landing page. Every creative
4913	// must include at least one exit. You can add an exit to your creative
4914	// in any of the following ways: * Use Google Web Designer's tap area. *
4915	// Define a JavaScript variable called "clickTag". * Use the Enabler
4916	// (Enabler.exit()) to track exits in rich media formats.
4917	ExitEvents []*ExitEvent `json:"exitEvents,omitempty"`
4918
4919	// ExpandOnHover: Optional. Indicates the creative will automatically
4920	// expand on hover. Optional and only valid for third-party expandable
4921	// creatives. Third-party expandable creatives are creatives with
4922	// following hosting source: * `HOSTING_SOURCE_THIRD_PARTY` combined
4923	// with following creative_type: * `CREATIVE_TYPE_EXPANDABLE`
4924	ExpandOnHover bool `json:"expandOnHover,omitempty"`
4925
4926	// ExpandingDirection: Optional. Specifies the expanding direction of
4927	// the creative. Required and only valid for third-party expandable
4928	// creatives. Third-party expandable creatives are creatives with
4929	// following hosting source: * `HOSTING_SOURCE_THIRD_PARTY` combined
4930	// with following creative_type: * `CREATIVE_TYPE_EXPANDABLE`
4931	//
4932	// Possible values:
4933	//   "EXPANDING_DIRECTION_UNSPECIFIED" - The expanding direction is not
4934	// specified.
4935	//   "EXPANDING_DIRECTION_NONE" - Does not expand in any direction.
4936	//   "EXPANDING_DIRECTION_UP" - Expands up.
4937	//   "EXPANDING_DIRECTION_DOWN" - Expands down.
4938	//   "EXPANDING_DIRECTION_LEFT" - Expands left.
4939	//   "EXPANDING_DIRECTION_RIGHT" - Expands right.
4940	//   "EXPANDING_DIRECTION_UP_AND_LEFT" - Expands up and to the left
4941	// side.
4942	//   "EXPANDING_DIRECTION_UP_AND_RIGHT" - Expands up and to the right
4943	// side.
4944	//   "EXPANDING_DIRECTION_DOWN_AND_LEFT" - Expands down and to the left
4945	// side.
4946	//   "EXPANDING_DIRECTION_DOWN_AND_RIGHT" - Expands down and to the
4947	// right side.
4948	//   "EXPANDING_DIRECTION_UP_OR_DOWN" - Expands either up or down.
4949	//   "EXPANDING_DIRECTION_LEFT_OR_RIGHT" - Expands to either the left or
4950	// the right side.
4951	//   "EXPANDING_DIRECTION_ANY_DIAGONAL" - Can expand in any diagonal
4952	// direction.
4953	ExpandingDirection string `json:"expandingDirection,omitempty"`
4954
4955	// HostingSource: Required. Indicates where the creative is hosted.
4956	//
4957	// Possible values:
4958	//   "HOSTING_SOURCE_UNSPECIFIED" - Hosting source is not specified or
4959	// is unknown in this version.
4960	//   "HOSTING_SOURCE_CM" - A creative synced from Campaign Manager 360.
4961	// Create and update methods are **not** supported for this hosting
4962	// type.
4963	//   "HOSTING_SOURCE_THIRD_PARTY" - A creative hosted by a third-party
4964	// ad server (3PAS). Create and update methods are supported for this
4965	// hosting type if the creative_type is one of the following: *
4966	// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_EXPANDABLE` *
4967	// `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`
4968	//   "HOSTING_SOURCE_HOSTED" - A creative created in DV360 and hosted by
4969	// Campaign Manager 360. Create and update methods are supported for
4970	// this hosting type if the creative_type is one of the following: *
4971	// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE` *
4972	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
4973	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
4974	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` *
4975	// `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`
4976	//   "HOSTING_SOURCE_RICH_MEDIA" - A rich media creative created in
4977	// Studio and hosted by Campaign Manager 360. Create and update methods
4978	// are **not** supported for this hosting type.
4979	HostingSource string `json:"hostingSource,omitempty"`
4980
4981	// Html5Video: Output only. Indicates the third-party VAST tag creative
4982	// requires HTML5 Video support. Output only and only valid for
4983	// third-party VAST tag creatives. Third-party VAST tag creatives are
4984	// creatives with following hosting_source: *
4985	// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: *
4986	// `CREATIVE_TYPE_VIDEO`
4987	Html5Video bool `json:"html5Video,omitempty"`
4988
4989	// IasCampaignMonitoring: Indicates whether Integral Ad Science (IAS)
4990	// campaign monitoring is enabled. To enable this for the creative, make
4991	// sure the Advertiser.creative_config.ias_client_id has been set to
4992	// your IAS client ID.
4993	IasCampaignMonitoring bool `json:"iasCampaignMonitoring,omitempty"`
4994
4995	// IntegrationCode: ID information used to link this creative to an
4996	// external system. Must be UTF-8 encoded with a length of no more than
4997	// 10,000 characters.
4998	IntegrationCode string `json:"integrationCode,omitempty"`
4999
5000	// JsTrackerUrl: JavaScript measurement URL from supported third-party
5001	// verification providers (ComScore, DoubleVerify, IAS, Moat). HTML
5002	// script tags are not supported. This field is only supported in
5003	// following creative_type: * `CREATIVE_TYPE_NATIVE` *
5004	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
5005	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
5006	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
5007	// `CREATIVE_TYPE_NATIVE_VIDEO`
5008	JsTrackerUrl string `json:"jsTrackerUrl,omitempty"`
5009
5010	// LineItemIds: Output only. The IDs of the line items this creative is
5011	// associated with. To associate a creative to a line item, use
5012	// LineItem.creative_ids instead.
5013	LineItemIds googleapi.Int64s `json:"lineItemIds,omitempty"`
5014
5015	// MediaDuration: Output only. Media duration of the creative.
5016	// Applicable when creative_type is one of: * `CREATIVE_TYPE_VIDEO` *
5017	// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE_VIDEO` *
5018	// `CREATIVE_TYPE_PUBLISHER_HOSTED`
5019	MediaDuration string `json:"mediaDuration,omitempty"`
5020
5021	// Mp3Audio: Output only. Indicates the third-party audio creative
5022	// supports MP3. Output only and only valid for third-party audio
5023	// creatives. Third-party audio creatives are creatives with following
5024	// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with
5025	// following creative_type: * `CREATIVE_TYPE_AUDIO`
5026	Mp3Audio bool `json:"mp3Audio,omitempty"`
5027
5028	// Name: Output only. The resource name of the creative.
5029	Name string `json:"name,omitempty"`
5030
5031	// Notes: User notes for this creative. Must be UTF-8 encoded with a
5032	// length of no more than 20,000 characters.
5033	Notes string `json:"notes,omitempty"`
5034
5035	// ObaIcon: Specifies the OBA icon for a video creative. This field is
5036	// only supported in following creative_type: * `CREATIVE_TYPE_VIDEO`
5037	ObaIcon *ObaIcon `json:"obaIcon,omitempty"`
5038
5039	// OggAudio: Output only. Indicates the third-party audio creative
5040	// supports OGG. Output only and only valid for third-party audio
5041	// creatives. Third-party audio creatives are creatives with following
5042	// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with
5043	// following creative_type: * `CREATIVE_TYPE_AUDIO`
5044	OggAudio bool `json:"oggAudio,omitempty"`
5045
5046	// ProgressOffset: Amount of time to play the video before counting a
5047	// view. This field is required when skippable is true. This field is
5048	// only supported for the following creative_type: *
5049	// `CREATIVE_TYPE_VIDEO`
5050	ProgressOffset *AudioVideoOffset `json:"progressOffset,omitempty"`
5051
5052	// RequireHtml5: Optional. Indicates that the creative relies on HTML5
5053	// to render properly. Optional and only valid for third-party tag
5054	// creatives. Third-party tag creatives are creatives with following
5055	// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with
5056	// following creative_type: * `CREATIVE_TYPE_STANDARD` *
5057	// `CREATIVE_TYPE_EXPANDABLE`
5058	RequireHtml5 bool `json:"requireHtml5,omitempty"`
5059
5060	// RequireMraid: Optional. Indicates that the creative requires MRAID
5061	// (Mobile Rich Media Ad Interface Definitions system). Set this if the
5062	// creative relies on mobile gestures for interactivity, such as swiping
5063	// or tapping. Optional and only valid for third-party tag creatives.
5064	// Third-party tag creatives are creatives with following
5065	// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with
5066	// following creative_type: * `CREATIVE_TYPE_STANDARD` *
5067	// `CREATIVE_TYPE_EXPANDABLE`
5068	RequireMraid bool `json:"requireMraid,omitempty"`
5069
5070	// RequirePingForAttribution: Optional. Indicates that the creative will
5071	// wait for a return ping for attribution. Only valid when using a
5072	// Campaign Manager 360 tracking ad with a third-party ad server
5073	// parameter and the ${DC_DBM_TOKEN} macro. Optional and only valid for
5074	// third-party tag creatives or third-party VAST tag creatives.
5075	// Third-party tag creatives are creatives with following
5076	// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with
5077	// following creative_type: * `CREATIVE_TYPE_STANDARD` *
5078	// `CREATIVE_TYPE_EXPANDABLE` Third-party VAST tag creatives are
5079	// creatives with following hosting_source: *
5080	// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: *
5081	// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO`
5082	RequirePingForAttribution bool `json:"requirePingForAttribution,omitempty"`
5083
5084	// ReviewStatus: Output only. The current status of the creative review
5085	// process.
5086	ReviewStatus *ReviewStatusInfo `json:"reviewStatus,omitempty"`
5087
5088	// SkipOffset: Amount of time to play the video before the skip button
5089	// appears. This field is required when skippable is true. This field is
5090	// only supported for the following creative_type: *
5091	// `CREATIVE_TYPE_VIDEO`
5092	SkipOffset *AudioVideoOffset `json:"skipOffset,omitempty"`
5093
5094	// Skippable: Whether the user can choose to skip a video creative. This
5095	// field is only supported for the following creative_type: *
5096	// `CREATIVE_TYPE_VIDEO`
5097	Skippable bool `json:"skippable,omitempty"`
5098
5099	// ThirdPartyTag: Optional. The original third-party tag used for the
5100	// creative. Required and only valid for third-party tag creatives.
5101	// Third-party tag creatives are creatives with following
5102	// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with
5103	// following creative_type: * `CREATIVE_TYPE_STANDARD` *
5104	// `CREATIVE_TYPE_EXPANDABLE`
5105	ThirdPartyTag string `json:"thirdPartyTag,omitempty"`
5106
5107	// ThirdPartyUrls: Tracking URLs from third parties to track
5108	// interactions with a video creative. This field is only supported for
5109	// the following creative_type: * `CREATIVE_TYPE_AUDIO` *
5110	// `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_NATIVE_VIDEO`
5111	ThirdPartyUrls []*ThirdPartyUrl `json:"thirdPartyUrls,omitempty"`
5112
5113	// TimerEvents: Timer custom events for a rich media creative. Timers
5114	// track the time during which a user views and interacts with a
5115	// specified part of a rich media creative. A creative can have multiple
5116	// timer events, each timed independently. Leave it empty or unset for
5117	// creatives containing image assets only.
5118	TimerEvents []*TimerEvent `json:"timerEvents,omitempty"`
5119
5120	// TrackerUrls: Tracking URLs for analytics providers or third-party ad
5121	// technology vendors. The URLs must start with https (except on
5122	// inventory that doesn't require SSL compliance). If using macros in
5123	// your URL, use only macros supported by Display & Video 360. Standard
5124	// URLs only, no IMG or SCRIPT tags. This field is only supported in
5125	// following creative_type: * `CREATIVE_TYPE_NATIVE` *
5126	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
5127	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
5128	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
5129	// `CREATIVE_TYPE_NATIVE_VIDEO`
5130	TrackerUrls []string `json:"trackerUrls,omitempty"`
5131
5132	// Transcodes: Output only. Audio/Video transcodes. Display & Video 360
5133	// transcodes the main asset into a number of alternative versions that
5134	// use different file formats or have different properties (resolution,
5135	// audio bit rate, and video bit rate), each designed for specific video
5136	// players or bandwidths. These transcodes give a publisher's system
5137	// more options to choose from for each impression on your video and
5138	// ensures that the appropriate file serves based on the viewer’s
5139	// connection and screen size. This field is only supported in following
5140	// creative_type: * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_NATIVE_VIDEO`
5141	// * `CREATIVE_TYPE_AUDIO`
5142	Transcodes []*Transcode `json:"transcodes,omitempty"`
5143
5144	// UniversalAdId: Optional. An optional creative identifier provided by
5145	// a registry that is unique across all platforms. Universal Ad ID is
5146	// part of the VAST 4.0 standard. It can be modified after the creative
5147	// is created. This field is only supported for the following
5148	// creative_type: * `CREATIVE_TYPE_VIDEO`
5149	UniversalAdId *UniversalAdId `json:"universalAdId,omitempty"`
5150
5151	// UpdateTime: Output only. The timestamp when the creative was last
5152	// updated. Assigned by the system.
5153	UpdateTime string `json:"updateTime,omitempty"`
5154
5155	// VastTagUrl: Optional. The URL of the VAST tag for a third-party VAST
5156	// tag creative. Required and only valid for third-party VAST tag
5157	// creatives. Third-party VAST tag creatives are creatives with
5158	// following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined
5159	// with following creative_type: * `CREATIVE_TYPE_AUDIO` *
5160	// `CREATIVE_TYPE_VIDEO`
5161	VastTagUrl string `json:"vastTagUrl,omitempty"`
5162
5163	// Vpaid: Output only. Indicates the third-party VAST tag creative
5164	// requires VPAID (Digital Video Player-Ad Interface). Output only and
5165	// only valid for third-party VAST tag creatives. Third-party VAST tag
5166	// creatives are creatives with following hosting_source: *
5167	// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: *
5168	// `CREATIVE_TYPE_VIDEO`
5169	Vpaid bool `json:"vpaid,omitempty"`
5170
5171	// ServerResponse contains the HTTP response code and headers from the
5172	// server.
5173	googleapi.ServerResponse `json:"-"`
5174
5175	// ForceSendFields is a list of field names (e.g.
5176	// "AdditionalDimensions") to unconditionally include in API requests.
5177	// By default, fields with empty or default values are omitted from API
5178	// requests. However, any non-pointer, non-interface field appearing in
5179	// ForceSendFields will be sent to the server regardless of whether the
5180	// field is empty or not. This may be used to include empty fields in
5181	// Patch requests.
5182	ForceSendFields []string `json:"-"`
5183
5184	// NullFields is a list of field names (e.g. "AdditionalDimensions") to
5185	// include in API requests with the JSON null value. By default, fields
5186	// with empty values are omitted from API requests. However, any field
5187	// with an empty value appearing in NullFields will be sent to the
5188	// server as null. It is an error if a field in this list has a
5189	// non-empty value. This may be used to include null fields in Patch
5190	// requests.
5191	NullFields []string `json:"-"`
5192}
5193
5194func (s *Creative) MarshalJSON() ([]byte, error) {
5195	type NoMethod Creative
5196	raw := NoMethod(*s)
5197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5198}
5199
5200// CreativeConfig: Creative requirements configuration for the inventory
5201// source.
5202type CreativeConfig struct {
5203	// CreativeType: The type of creative that can be assigned to the
5204	// inventory source.
5205	//
5206	// Possible values:
5207	//   "CREATIVE_TYPE_UNSPECIFIED" - Type value is not specified or is
5208	// unknown in this version.
5209	//   "CREATIVE_TYPE_STANDARD" - Standard display creative. Create and
5210	// update methods are supported for this creative type if the
5211	// hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` *
5212	// `HOSTING_SOURCE_THIRD_PARTY`
5213	//   "CREATIVE_TYPE_EXPANDABLE" - Expandable creative. Create and update
5214	// methods are supported for this creative type if the hosting_source is
5215	// `HOSTING_SOURCE_THIRD_PARTY`
5216	//   "CREATIVE_TYPE_VIDEO" - Video creative. Create and update methods
5217	// are supported for this creative type if the hosting_source is one of
5218	// the following: * `HOSTING_SOURCE_HOSTED` *
5219	// `HOSTING_SOURCE_THIRD_PARTY`
5220	//   "CREATIVE_TYPE_NATIVE" - Native creative rendered by publishers
5221	// with assets from advertiser. Create and update methods are supported
5222	// for this creative type if the hosting_source is
5223	// `HOSTING_SOURCE_HOSTED`
5224	//   "CREATIVE_TYPE_TEMPLATED_APP_INSTALL" - Templated app install
5225	// mobile creative (banner). Create and update methods are **not**
5226	// supported for this creative type.
5227	//   "CREATIVE_TYPE_NATIVE_SITE_SQUARE" - Square native creative. Create
5228	// and update methods are supported for this creative type if the
5229	// hosting_source is `HOSTING_SOURCE_HOSTED`
5230	//   "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL" - Interstitial
5231	// creative including both display and video. Create and update methods
5232	// are **not** supported for this creative type.
5233	//   "CREATIVE_TYPE_LIGHTBOX" - Responsive and expandable Lightbox
5234	// creative. Create and update methods are **not** supported for this
5235	// creative type.
5236	//   "CREATIVE_TYPE_NATIVE_APP_INSTALL" - Native app install creative.
5237	// Create and update methods are supported for this creative type if the
5238	// hosting_source is `HOSTING_SOURCE_HOSTED`
5239	//   "CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE" - Square native app
5240	// install creative. Create and update methods are supported for this
5241	// creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`
5242	//   "CREATIVE_TYPE_AUDIO" - Audio creative. Create and update methods
5243	// are supported for this creative type if the hosting_source is
5244	// `HOSTING_SOURCE_HOSTED`
5245	//   "CREATIVE_TYPE_PUBLISHER_HOSTED" - Publisher hosted creative.
5246	// Create and update methods are **not** supported for this creative
5247	// type.
5248	//   "CREATIVE_TYPE_NATIVE_VIDEO" - Native video creative. Create and
5249	// update methods are supported for this creative type if the
5250	// hosting_source is `HOSTING_SOURCE_HOSTED`
5251	//   "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO" - Templated app install
5252	// mobile video creative. Create and update methods are **not**
5253	// supported for this creative type.
5254	CreativeType string `json:"creativeType,omitempty"`
5255
5256	// DisplayCreativeConfig: The configuration for display creatives.
5257	// Applicable when creative_type is `CREATIVE_TYPE_STANDARD`.
5258	DisplayCreativeConfig *InventorySourceDisplayCreativeConfig `json:"displayCreativeConfig,omitempty"`
5259
5260	// VideoCreativeConfig: The configuration for video creatives.
5261	// Applicable when creative_type is `CREATIVE_TYPE_VIDEO`.
5262	VideoCreativeConfig *InventorySourceVideoCreativeConfig `json:"videoCreativeConfig,omitempty"`
5263
5264	// ForceSendFields is a list of field names (e.g. "CreativeType") to
5265	// unconditionally include in API requests. By default, fields with
5266	// empty or default values are omitted from API requests. However, any
5267	// non-pointer, non-interface field appearing in ForceSendFields will be
5268	// sent to the server regardless of whether the field is empty or not.
5269	// This may be used to include empty fields in Patch requests.
5270	ForceSendFields []string `json:"-"`
5271
5272	// NullFields is a list of field names (e.g. "CreativeType") to include
5273	// in API requests with the JSON null value. By default, fields with
5274	// empty values are omitted from API requests. However, any field with
5275	// an empty value appearing in NullFields will be sent to the server as
5276	// null. It is an error if a field in this list has a non-empty value.
5277	// This may be used to include null fields in Patch requests.
5278	NullFields []string `json:"-"`
5279}
5280
5281func (s *CreativeConfig) MarshalJSON() ([]byte, error) {
5282	type NoMethod CreativeConfig
5283	raw := NoMethod(*s)
5284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5285}
5286
5287// CustomBiddingAlgorithm: A single custom bidding algorithm.
5288type CustomBiddingAlgorithm struct {
5289	// AdvertiserId: Immutable. The unique ID of the advertiser that owns
5290	// the custom bidding algorithm.
5291	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
5292
5293	// CustomBiddingAlgorithmId: Output only. The unique ID of the custom
5294	// bidding algorithm. Assigned by the system.
5295	CustomBiddingAlgorithmId int64 `json:"customBiddingAlgorithmId,omitempty,string"`
5296
5297	// CustomBiddingAlgorithmState: Output only. The status of custom
5298	// bidding algorithm.
5299	//
5300	// Possible values:
5301	//   "STATE_UNSPECIFIED" - State is not specified or is unknown in this
5302	// version.
5303	//   "ENABLED" - Algorithm is enabled, either recently used, currently
5304	// used or scheduled to be used. The algorithm is actively scoring
5305	// impressions.
5306	//   "DORMANT" - Algorithm has not been used recently. Although the
5307	// algorithm still acts as `ENABLED`, it will eventually be suspended if
5308	// not used.
5309	//   "SUSPENDED" - Algorithm is susepended from scoring impressions and
5310	// doesn't have a serving model trained. If the algorithm is assigned to
5311	// a line item or otherwise updated, it will switch back to the
5312	// `ENABLED` state and require time to prepare the serving model again.
5313	CustomBiddingAlgorithmState string `json:"customBiddingAlgorithmState,omitempty"`
5314
5315	// CustomBiddingAlgorithmType: Required. Immutable. The type of custom
5316	// bidding algorithm.
5317	//
5318	// Possible values:
5319	//   "CUSTOM_BIDDING_ALGORITHM_TYPE_UNSPECIFIED" - Algorithm type is not
5320	// specified or is unknown in this version.
5321	//   "SCRIPT_BASED" - Algorithm generated through customer-uploaded
5322	// custom bidding script files.
5323	//   "ADS_DATA_HUB_BASED" - Algorithm created through Ads Data Hub
5324	// product.
5325	//   "GOAL_BUILDER_BASED" - Algorithm created through goal builder in
5326	// DV3 UI.
5327	CustomBiddingAlgorithmType string `json:"customBiddingAlgorithmType,omitempty"`
5328
5329	// DisplayName: Required. The display name of the custom bidding
5330	// algorithm. Must be UTF-8 encoded with a maximum size of 240 bytes.
5331	DisplayName string `json:"displayName,omitempty"`
5332
5333	// EntityStatus: Controls whether or not the custom bidding algorithm
5334	// can be used as a bidding strategy. Accepted values are: *
5335	// `ENTITY_STATUS_ACTIVE` * `ENTITY_STATUS_ARCHIVED`
5336	//
5337	// Possible values:
5338	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
5339	// specified or is unknown in this version.
5340	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
5341	// budget.
5342	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
5343	// budget spending are disabled. An entity can be deleted after
5344	// archived. Deleted entities cannot be retrieved.
5345	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
5346	// budget spending are disabled.
5347	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
5348	// the entity.
5349	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
5350	// for deletion.
5351	EntityStatus string `json:"entityStatus,omitempty"`
5352
5353	// Name: Output only. The resource name of the custom bidding algorithm.
5354	Name string `json:"name,omitempty"`
5355
5356	// PartnerId: Immutable. The unique ID of the partner that owns the
5357	// custom bidding algorithm.
5358	PartnerId int64 `json:"partnerId,omitempty,string"`
5359
5360	// SharedAdvertiserIds: The IDs of the advertisers who have access to
5361	// this algorithm. This field will not be set if the algorithm owner is
5362	// a partner and is being retrieved using an advertiser accessor.
5363	SharedAdvertiserIds googleapi.Int64s `json:"sharedAdvertiserIds,omitempty"`
5364
5365	// ServerResponse contains the HTTP response code and headers from the
5366	// server.
5367	googleapi.ServerResponse `json:"-"`
5368
5369	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
5370	// unconditionally include in API requests. By default, fields with
5371	// empty or default values are omitted from API requests. However, any
5372	// non-pointer, non-interface field appearing in ForceSendFields will be
5373	// sent to the server regardless of whether the field is empty or not.
5374	// This may be used to include empty fields in Patch requests.
5375	ForceSendFields []string `json:"-"`
5376
5377	// NullFields is a list of field names (e.g. "AdvertiserId") to include
5378	// in API requests with the JSON null value. By default, fields with
5379	// empty values are omitted from API requests. However, any field with
5380	// an empty value appearing in NullFields will be sent to the server as
5381	// null. It is an error if a field in this list has a non-empty value.
5382	// This may be used to include null fields in Patch requests.
5383	NullFields []string `json:"-"`
5384}
5385
5386func (s *CustomBiddingAlgorithm) MarshalJSON() ([]byte, error) {
5387	type NoMethod CustomBiddingAlgorithm
5388	raw := NoMethod(*s)
5389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5390}
5391
5392// CustomList: Describes a custom list entity, such as a custom affinity
5393// or custom intent audience list.
5394type CustomList struct {
5395	// CustomListId: Output only. The unique ID of the custom list. Assigned
5396	// by the system.
5397	CustomListId int64 `json:"customListId,omitempty,string"`
5398
5399	// DisplayName: Output only. The display name of the custom list. .
5400	DisplayName string `json:"displayName,omitempty"`
5401
5402	// Name: Output only. The resource name of the custom list.
5403	Name string `json:"name,omitempty"`
5404
5405	// ServerResponse contains the HTTP response code and headers from the
5406	// server.
5407	googleapi.ServerResponse `json:"-"`
5408
5409	// ForceSendFields is a list of field names (e.g. "CustomListId") to
5410	// unconditionally include in API requests. By default, fields with
5411	// empty or default values are omitted from API requests. However, any
5412	// non-pointer, non-interface field appearing in ForceSendFields will be
5413	// sent to the server regardless of whether the field is empty or not.
5414	// This may be used to include empty fields in Patch requests.
5415	ForceSendFields []string `json:"-"`
5416
5417	// NullFields is a list of field names (e.g. "CustomListId") to include
5418	// in API requests with the JSON null value. By default, fields with
5419	// empty values are omitted from API requests. However, any field with
5420	// an empty value appearing in NullFields will be sent to the server as
5421	// null. It is an error if a field in this list has a non-empty value.
5422	// This may be used to include null fields in Patch requests.
5423	NullFields []string `json:"-"`
5424}
5425
5426func (s *CustomList) MarshalJSON() ([]byte, error) {
5427	type NoMethod CustomList
5428	raw := NoMethod(*s)
5429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5430}
5431
5432// CustomListGroup: Details of custom list group. All custom list
5433// targeting settings are logically ‘OR’ of each other.
5434type CustomListGroup struct {
5435	// Settings: Required. All custom list targeting settings in custom list
5436	// group. Repeated settings with same id will be ignored.
5437	Settings []*CustomListTargetingSetting `json:"settings,omitempty"`
5438
5439	// ForceSendFields is a list of field names (e.g. "Settings") to
5440	// unconditionally include in API requests. By default, fields with
5441	// empty or default values are omitted from API requests. However, any
5442	// non-pointer, non-interface field appearing in ForceSendFields will be
5443	// sent to the server regardless of whether the field is empty or not.
5444	// This may be used to include empty fields in Patch requests.
5445	ForceSendFields []string `json:"-"`
5446
5447	// NullFields is a list of field names (e.g. "Settings") to include in
5448	// API requests with the JSON null value. By default, fields with empty
5449	// values are omitted from API requests. However, any field with an
5450	// empty value appearing in NullFields will be sent to the server as
5451	// null. It is an error if a field in this list has a non-empty value.
5452	// This may be used to include null fields in Patch requests.
5453	NullFields []string `json:"-"`
5454}
5455
5456func (s *CustomListGroup) MarshalJSON() ([]byte, error) {
5457	type NoMethod CustomListGroup
5458	raw := NoMethod(*s)
5459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5460}
5461
5462// CustomListTargetingSetting: Details of custom list targeting setting.
5463type CustomListTargetingSetting struct {
5464	// CustomListId: Required. Custom id of custom list targeting setting.
5465	// This id is custom_list_id.
5466	CustomListId int64 `json:"customListId,omitempty,string"`
5467
5468	// ForceSendFields is a list of field names (e.g. "CustomListId") to
5469	// unconditionally include in API requests. By default, fields with
5470	// empty or default values are omitted from API requests. However, any
5471	// non-pointer, non-interface field appearing in ForceSendFields will be
5472	// sent to the server regardless of whether the field is empty or not.
5473	// This may be used to include empty fields in Patch requests.
5474	ForceSendFields []string `json:"-"`
5475
5476	// NullFields is a list of field names (e.g. "CustomListId") to include
5477	// in API requests with the JSON null value. By default, fields with
5478	// empty values are omitted from API requests. However, any field with
5479	// an empty value appearing in NullFields will be sent to the server as
5480	// null. It is an error if a field in this list has a non-empty value.
5481	// This may be used to include null fields in Patch requests.
5482	NullFields []string `json:"-"`
5483}
5484
5485func (s *CustomListTargetingSetting) MarshalJSON() ([]byte, error) {
5486	type NoMethod CustomListTargetingSetting
5487	raw := NoMethod(*s)
5488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5489}
5490
5491// Date: Represents a whole or partial calendar date, such as a
5492// birthday. The time of day and time zone are either specified
5493// elsewhere or are insignificant. The date is relative to the Gregorian
5494// Calendar. This can represent one of the following: * A full date,
5495// with non-zero year, month, and day values * A month and day value,
5496// with a zero year, such as an anniversary * A year on its own, with
5497// zero month and day values * A year and month value, with a zero day,
5498// such as a credit card expiration date Related types are
5499// google.type.TimeOfDay and `google.protobuf.Timestamp`.
5500type Date struct {
5501	// Day: Day of a month. Must be from 1 to 31 and valid for the year and
5502	// month, or 0 to specify a year by itself or a year and month where the
5503	// day isn't significant.
5504	Day int64 `json:"day,omitempty"`
5505
5506	// Month: Month of a year. Must be from 1 to 12, or 0 to specify a year
5507	// without a month and day.
5508	Month int64 `json:"month,omitempty"`
5509
5510	// Year: Year of the date. Must be from 1 to 9999, or 0 to specify a
5511	// date without a year.
5512	Year int64 `json:"year,omitempty"`
5513
5514	// ForceSendFields is a list of field names (e.g. "Day") to
5515	// unconditionally include in API requests. By default, fields with
5516	// empty or default values are omitted from API requests. However, any
5517	// non-pointer, non-interface field appearing in ForceSendFields will be
5518	// sent to the server regardless of whether the field is empty or not.
5519	// This may be used to include empty fields in Patch requests.
5520	ForceSendFields []string `json:"-"`
5521
5522	// NullFields is a list of field names (e.g. "Day") to include in API
5523	// requests with the JSON null value. By default, fields with empty
5524	// values are omitted from API requests. However, any field with an
5525	// empty value appearing in NullFields will be sent to the server as
5526	// null. It is an error if a field in this list has a non-empty value.
5527	// This may be used to include null fields in Patch requests.
5528	NullFields []string `json:"-"`
5529}
5530
5531func (s *Date) MarshalJSON() ([]byte, error) {
5532	type NoMethod Date
5533	raw := NoMethod(*s)
5534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5535}
5536
5537// DateRange: A date range.
5538type DateRange struct {
5539	// EndDate: The upper bound of the date range, inclusive. Must specify a
5540	// positive value for `year`, `month`, and `day`.
5541	EndDate *Date `json:"endDate,omitempty"`
5542
5543	// StartDate: The lower bound of the date range, inclusive. Must specify
5544	// a positive value for `year`, `month`, and `day`.
5545	StartDate *Date `json:"startDate,omitempty"`
5546
5547	// ForceSendFields is a list of field names (e.g. "EndDate") to
5548	// unconditionally include in API requests. By default, fields with
5549	// empty or default values are omitted from API requests. However, any
5550	// non-pointer, non-interface field appearing in ForceSendFields will be
5551	// sent to the server regardless of whether the field is empty or not.
5552	// This may be used to include empty fields in Patch requests.
5553	ForceSendFields []string `json:"-"`
5554
5555	// NullFields is a list of field names (e.g. "EndDate") to include in
5556	// API requests with the JSON null value. By default, fields with empty
5557	// values are omitted from API requests. However, any field with an
5558	// empty value appearing in NullFields will be sent to the server as
5559	// null. It is an error if a field in this list has a non-empty value.
5560	// This may be used to include null fields in Patch requests.
5561	NullFields []string `json:"-"`
5562}
5563
5564func (s *DateRange) MarshalJSON() ([]byte, error) {
5565	type NoMethod DateRange
5566	raw := NoMethod(*s)
5567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5568}
5569
5570// DayAndTimeAssignedTargetingOptionDetails: Representation of a segment
5571// of time defined on a specific day of the week and with a start and
5572// end time. The time represented by `start_hour` must be before the
5573// time represented by `end_hour`.
5574type DayAndTimeAssignedTargetingOptionDetails struct {
5575	// DayOfWeek: Required. The day of the week for this day and time
5576	// targeting setting.
5577	//
5578	// Possible values:
5579	//   "DAY_OF_WEEK_UNSPECIFIED" - The day of the week is unspecified.
5580	//   "MONDAY" - Monday
5581	//   "TUESDAY" - Tuesday
5582	//   "WEDNESDAY" - Wednesday
5583	//   "THURSDAY" - Thursday
5584	//   "FRIDAY" - Friday
5585	//   "SATURDAY" - Saturday
5586	//   "SUNDAY" - Sunday
5587	DayOfWeek string `json:"dayOfWeek,omitempty"`
5588
5589	// EndHour: Required. The end hour for day and time targeting. Must be
5590	// between 1 (1 hour after start of day) and 24 (end of day).
5591	EndHour int64 `json:"endHour,omitempty"`
5592
5593	// StartHour: Required. The start hour for day and time targeting. Must
5594	// be between 0 (start of day) and 23 (1 hour before end of day).
5595	StartHour int64 `json:"startHour,omitempty"`
5596
5597	// TimeZoneResolution: Required. The mechanism used to determine which
5598	// timezone to use for this day and time targeting setting.
5599	//
5600	// Possible values:
5601	//   "TIME_ZONE_RESOLUTION_UNSPECIFIED" - Time zone resolution is either
5602	// unspecific or unknown.
5603	//   "TIME_ZONE_RESOLUTION_END_USER" - Times are resolved in the time
5604	// zone of the user that saw the ad.
5605	//   "TIME_ZONE_RESOLUTION_ADVERTISER" - Times are resolved in the time
5606	// zone of the advertiser that served the ad.
5607	TimeZoneResolution string `json:"timeZoneResolution,omitempty"`
5608
5609	// ForceSendFields is a list of field names (e.g. "DayOfWeek") to
5610	// unconditionally include in API requests. By default, fields with
5611	// empty or default values are omitted from API requests. However, any
5612	// non-pointer, non-interface field appearing in ForceSendFields will be
5613	// sent to the server regardless of whether the field is empty or not.
5614	// This may be used to include empty fields in Patch requests.
5615	ForceSendFields []string `json:"-"`
5616
5617	// NullFields is a list of field names (e.g. "DayOfWeek") to include in
5618	// API requests with the JSON null value. By default, fields with empty
5619	// values are omitted from API requests. However, any field with an
5620	// empty value appearing in NullFields will be sent to the server as
5621	// null. It is an error if a field in this list has a non-empty value.
5622	// This may be used to include null fields in Patch requests.
5623	NullFields []string `json:"-"`
5624}
5625
5626func (s *DayAndTimeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5627	type NoMethod DayAndTimeAssignedTargetingOptionDetails
5628	raw := NoMethod(*s)
5629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5630}
5631
5632// DeactivateManualTriggerRequest: Request message for
5633// ManualTriggerService.DeactivateManualTrigger.
5634type DeactivateManualTriggerRequest struct {
5635}
5636
5637// DeleteAssignedTargetingOptionsRequest: A request listing which
5638// assigned targeting options of a given targeting type should be
5639// deleted.
5640type DeleteAssignedTargetingOptionsRequest struct {
5641	// AssignedTargetingOptionIds: Required. The assigned targeting option
5642	// IDs to delete.
5643	AssignedTargetingOptionIds []string `json:"assignedTargetingOptionIds,omitempty"`
5644
5645	// TargetingType: Required. Identifies the type of this assigned
5646	// targeting option.
5647	//
5648	// Possible values:
5649	//   "TARGETING_TYPE_UNSPECIFIED" - Default value when type is not
5650	// specified or is unknown in this version.
5651	//   "TARGETING_TYPE_CHANNEL" - Target a channel (a custom group of
5652	// related websites or apps).
5653	//   "TARGETING_TYPE_APP_CATEGORY" - Target an app category (for
5654	// example, education or puzzle games).
5655	//   "TARGETING_TYPE_APP" - Target a specific app (for example, Angry
5656	// Birds).
5657	//   "TARGETING_TYPE_URL" - Target a specific url (for example,
5658	// quora.com).
5659	//   "TARGETING_TYPE_DAY_AND_TIME" - Target ads during a chosen time
5660	// period on a specific day.
5661	//   "TARGETING_TYPE_AGE_RANGE" - Target ads to a specific age range
5662	// (for example, 18-24).
5663	//   "TARGETING_TYPE_REGIONAL_LOCATION_LIST" - Target ads to the
5664	// specified regions on a regional location list.
5665	//   "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" - Target ads to the
5666	// specified points of interest on a proximity location list.
5667	//   "TARGETING_TYPE_GENDER" - Target ads to a specific gender (for
5668	// example, female or male).
5669	//   "TARGETING_TYPE_VIDEO_PLAYER_SIZE" - Target a specific video player
5670	// size for video ads.
5671	//   "TARGETING_TYPE_USER_REWARDED_CONTENT" - Target user rewarded
5672	// content for video ads.
5673	//   "TARGETING_TYPE_PARENTAL_STATUS" - Target ads to a specific
5674	// parental status (for example, parent or not a parent).
5675	//   "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" - Target video or audio
5676	// ads in a specific content instream position (for example, pre-roll,
5677	// mid-roll, or post-roll).
5678	//   "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" - Target ads in a
5679	// specific content outstream position.
5680	//   "TARGETING_TYPE_DEVICE_TYPE" - Target ads to a specific device type
5681	// (for example, tablet or connected TV).
5682	//   "TARGETING_TYPE_AUDIENCE_GROUP" - Target ads to an audience or
5683	// groups of audiences. Singleton field, at most one can exist on a
5684	// single Lineitem at a time.
5685	//   "TARGETING_TYPE_BROWSER" - Target ads to specific web browsers (for
5686	// example, Chrome).
5687	//   "TARGETING_TYPE_HOUSEHOLD_INCOME" - Target ads to a specific
5688	// household income range (for example, top 10%).
5689	//   "TARGETING_TYPE_ON_SCREEN_POSITION" - Target ads in a specific on
5690	// screen position.
5691	//   "TARGETING_TYPE_THIRD_PARTY_VERIFIER" - Filter web sites through
5692	// third party verification (for example, IAS or DoubleVerify).
5693	//   "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" - Filter web sites
5694	// by specific digital content label ratings (for example, DL-MA:
5695	// suitable only for mature audiences).
5696	//   "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" - Filter website
5697	// content by sensitive categories (for example, adult).
5698	//   "TARGETING_TYPE_ENVIRONMENT" - Target ads to a specific environment
5699	// (for example, web or app).
5700	//   "TARGETING_TYPE_CARRIER_AND_ISP" - Target ads to a specific network
5701	// carrier or internet service provider (ISP) (for example, Comcast or
5702	// Orange).
5703	//   "TARGETING_TYPE_OPERATING_SYSTEM" - Target ads to a specific
5704	// operating system (for example, macOS).
5705	//   "TARGETING_TYPE_DEVICE_MAKE_MODEL" - Target ads to a specific
5706	// device make or model (for example, Roku or Samsung).
5707	//   "TARGETING_TYPE_KEYWORD" - Target ads to a specific keyword (for
5708	// example, dog or retriever).
5709	//   "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" - Target ads to a specific
5710	// negative keyword list.
5711	//   "TARGETING_TYPE_VIEWABILITY" - Target ads to a specific viewability
5712	// (for example, 80% viewable).
5713	//   "TARGETING_TYPE_CATEGORY" - Target ads to a specific content
5714	// category (for example, arts & entertainment).
5715	//   "TARGETING_TYPE_INVENTORY_SOURCE" - Purchase impressions from
5716	// specific deals and auction packages.
5717	//   "TARGETING_TYPE_LANGUAGE" - Target ads to a specific language (for
5718	// example, English or Japanese).
5719	//   "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" - Target ads to ads.txt
5720	// authorized sellers.
5721	//   "TARGETING_TYPE_GEO_REGION" - Target ads to a specific regional
5722	// location (for example, a city or state).
5723	//   "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" - Purchase impressions from
5724	// a group of deals and auction packages.
5725	//   "TARGETING_TYPE_EXCHANGE" - Purchase impressions from specific
5726	// exchanges.
5727	//   "TARGETING_TYPE_SUB_EXCHANGE" - Purchase impressions from specific
5728	// sub-exchanges.
5729	//   "TARGETING_TYPE_POI" - Target ads around a specific point of
5730	// interest, such as a notable building, a street address, or
5731	// latitude/longitude coordinates.
5732	//   "TARGETING_TYPE_BUSINESS_CHAIN" - Target ads around locations of a
5733	// business chain within a specific geo region.
5734	//   "TARGETING_TYPE_NATIVE_CONTENT_POSITION" - Target ads to a specific
5735	// native content position.
5736	//   "TARGETING_TYPE_OMID" - Target ads in an Open Measurement enabled
5737	// inventory.
5738	TargetingType string `json:"targetingType,omitempty"`
5739
5740	// ForceSendFields is a list of field names (e.g.
5741	// "AssignedTargetingOptionIds") to unconditionally include in API
5742	// requests. By default, fields with empty or default values are omitted
5743	// from API requests. However, any non-pointer, non-interface field
5744	// appearing in ForceSendFields will be sent to the server regardless of
5745	// whether the field is empty or not. This may be used to include empty
5746	// fields in Patch requests.
5747	ForceSendFields []string `json:"-"`
5748
5749	// NullFields is a list of field names (e.g.
5750	// "AssignedTargetingOptionIds") to include in API requests with the
5751	// JSON null value. By default, fields with empty values are omitted
5752	// from API requests. However, any field with an empty value appearing
5753	// in NullFields will be sent to the server as null. It is an error if a
5754	// field in this list has a non-empty value. This may be used to include
5755	// null fields in Patch requests.
5756	NullFields []string `json:"-"`
5757}
5758
5759func (s *DeleteAssignedTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
5760	type NoMethod DeleteAssignedTargetingOptionsRequest
5761	raw := NoMethod(*s)
5762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5763}
5764
5765// DeviceMakeModelAssignedTargetingOptionDetails: Assigned device make
5766// and model targeting option details. This will be populated in the
5767// device_make_model_details field when targeting_type is
5768// `TARGETING_TYPE_DEVICE_MAKE_MODEL`.
5769type DeviceMakeModelAssignedTargetingOptionDetails struct {
5770	// DisplayName: Output only. The display name of the device make and
5771	// model.
5772	DisplayName string `json:"displayName,omitempty"`
5773
5774	// Negative: Indicates if this option is being negatively targeted.
5775	Negative bool `json:"negative,omitempty"`
5776
5777	// TargetingOptionId: Required. The targeting_option_id field when
5778	// targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.
5779	TargetingOptionId string `json:"targetingOptionId,omitempty"`
5780
5781	// ForceSendFields is a list of field names (e.g. "DisplayName") to
5782	// unconditionally include in API requests. By default, fields with
5783	// empty or default values are omitted from API requests. However, any
5784	// non-pointer, non-interface field appearing in ForceSendFields will be
5785	// sent to the server regardless of whether the field is empty or not.
5786	// This may be used to include empty fields in Patch requests.
5787	ForceSendFields []string `json:"-"`
5788
5789	// NullFields is a list of field names (e.g. "DisplayName") to include
5790	// in API requests with the JSON null value. By default, fields with
5791	// empty values are omitted from API requests. However, any field with
5792	// an empty value appearing in NullFields will be sent to the server as
5793	// null. It is an error if a field in this list has a non-empty value.
5794	// This may be used to include null fields in Patch requests.
5795	NullFields []string `json:"-"`
5796}
5797
5798func (s *DeviceMakeModelAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5799	type NoMethod DeviceMakeModelAssignedTargetingOptionDetails
5800	raw := NoMethod(*s)
5801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5802}
5803
5804// DeviceMakeModelTargetingOptionDetails: Represents a targetable device
5805// make and model. This will be populated in the
5806// device_make_model_details field of a TargetingOption when
5807// targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.
5808type DeviceMakeModelTargetingOptionDetails struct {
5809	// DisplayName: Output only. The display name of the device make and
5810	// model.
5811	DisplayName string `json:"displayName,omitempty"`
5812
5813	// ForceSendFields is a list of field names (e.g. "DisplayName") to
5814	// unconditionally include in API requests. By default, fields with
5815	// empty or default values are omitted from API requests. However, any
5816	// non-pointer, non-interface field appearing in ForceSendFields will be
5817	// sent to the server regardless of whether the field is empty or not.
5818	// This may be used to include empty fields in Patch requests.
5819	ForceSendFields []string `json:"-"`
5820
5821	// NullFields is a list of field names (e.g. "DisplayName") to include
5822	// in API requests with the JSON null value. By default, fields with
5823	// empty values are omitted from API requests. However, any field with
5824	// an empty value appearing in NullFields will be sent to the server as
5825	// null. It is an error if a field in this list has a non-empty value.
5826	// This may be used to include null fields in Patch requests.
5827	NullFields []string `json:"-"`
5828}
5829
5830func (s *DeviceMakeModelTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5831	type NoMethod DeviceMakeModelTargetingOptionDetails
5832	raw := NoMethod(*s)
5833	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5834}
5835
5836// DeviceTypeAssignedTargetingOptionDetails: Targeting details for
5837// device type. This will be populated in the details field of an
5838// AssignedTargetingOption when targeting_type is
5839// `TARGETING_TYPE_DEVICE_TYPE`.
5840type DeviceTypeAssignedTargetingOptionDetails struct {
5841	// DeviceType: Output only. The display name of the device type.
5842	//
5843	// Possible values:
5844	//   "DEVICE_TYPE_UNSPECIFIED" - Default value when device type is not
5845	// specified in this version. This enum is a placeholder for default
5846	// value and does not represent a real device type option.
5847	//   "DEVICE_TYPE_COMPUTER" - The device type is computer.
5848	//   "DEVICE_TYPE_CONNECTED_TV" - The device type is connected TV.
5849	//   "DEVICE_TYPE_SMART_PHONE" - The device type is smart phone..
5850	//   "DEVICE_TYPE_TABLET" - The device type is tablet.
5851	DeviceType string `json:"deviceType,omitempty"`
5852
5853	// TargetingOptionId: Required. ID of the device type.
5854	TargetingOptionId string `json:"targetingOptionId,omitempty"`
5855
5856	// ForceSendFields is a list of field names (e.g. "DeviceType") to
5857	// unconditionally include in API requests. By default, fields with
5858	// empty or default values are omitted from API requests. However, any
5859	// non-pointer, non-interface field appearing in ForceSendFields will be
5860	// sent to the server regardless of whether the field is empty or not.
5861	// This may be used to include empty fields in Patch requests.
5862	ForceSendFields []string `json:"-"`
5863
5864	// NullFields is a list of field names (e.g. "DeviceType") to include in
5865	// API requests with the JSON null value. By default, fields with empty
5866	// values are omitted from API requests. However, any field with an
5867	// empty value appearing in NullFields will be sent to the server as
5868	// null. It is an error if a field in this list has a non-empty value.
5869	// This may be used to include null fields in Patch requests.
5870	NullFields []string `json:"-"`
5871}
5872
5873func (s *DeviceTypeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5874	type NoMethod DeviceTypeAssignedTargetingOptionDetails
5875	raw := NoMethod(*s)
5876	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5877}
5878
5879// DeviceTypeTargetingOptionDetails: Represents a targetable device
5880// type. This will be populated in the device_type_details field of a
5881// TargetingOption when targeting_type is `TARGETING_TYPE_DEVICE_TYPE`.
5882type DeviceTypeTargetingOptionDetails struct {
5883	// DeviceType: Output only. The device type that is used to be targeted.
5884	//
5885	// Possible values:
5886	//   "DEVICE_TYPE_UNSPECIFIED" - Default value when device type is not
5887	// specified in this version. This enum is a placeholder for default
5888	// value and does not represent a real device type option.
5889	//   "DEVICE_TYPE_COMPUTER" - The device type is computer.
5890	//   "DEVICE_TYPE_CONNECTED_TV" - The device type is connected TV.
5891	//   "DEVICE_TYPE_SMART_PHONE" - The device type is smart phone..
5892	//   "DEVICE_TYPE_TABLET" - The device type is tablet.
5893	DeviceType string `json:"deviceType,omitempty"`
5894
5895	// ForceSendFields is a list of field names (e.g. "DeviceType") to
5896	// unconditionally include in API requests. By default, fields with
5897	// empty or default values are omitted from API requests. However, any
5898	// non-pointer, non-interface field appearing in ForceSendFields will be
5899	// sent to the server regardless of whether the field is empty or not.
5900	// This may be used to include empty fields in Patch requests.
5901	ForceSendFields []string `json:"-"`
5902
5903	// NullFields is a list of field names (e.g. "DeviceType") to include in
5904	// API requests with the JSON null value. By default, fields with empty
5905	// values are omitted from API requests. However, any field with an
5906	// empty value appearing in NullFields will be sent to the server as
5907	// null. It is an error if a field in this list has a non-empty value.
5908	// This may be used to include null fields in Patch requests.
5909	NullFields []string `json:"-"`
5910}
5911
5912func (s *DeviceTypeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5913	type NoMethod DeviceTypeTargetingOptionDetails
5914	raw := NoMethod(*s)
5915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5916}
5917
5918// DigitalContentLabelAssignedTargetingOptionDetails: Targeting details
5919// for digital content label. This will be populated in the details
5920// field of an AssignedTargetingOption when targeting_type is
5921// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.
5922type DigitalContentLabelAssignedTargetingOptionDetails struct {
5923	// ContentRatingTier: Output only. The display name of the digital
5924	// content label rating tier.
5925	//
5926	// Possible values:
5927	//   "CONTENT_RATING_TIER_UNSPECIFIED" - Content label is not specified
5928	// in this version. This enum is a place holder for a default value and
5929	// does not represent a real content rating.
5930	//   "CONTENT_RATING_TIER_UNRATED" - Content that has not been labeled.
5931	//   "CONTENT_RATING_TIER_GENERAL" - Content suitable for general
5932	// audiences.
5933	//   "CONTENT_RATING_TIER_PARENTAL_GUIDANCE" - Content suitable for most
5934	// audiences with parental guidance.
5935	//   "CONTENT_RATING_TIER_TEENS" - Content suitable for teen and older
5936	// audiences.
5937	//   "CONTENT_RATING_TIER_MATURE" - Content suitable only for mature
5938	// audiences.
5939	ContentRatingTier string `json:"contentRatingTier,omitempty"`
5940
5941	// ExcludedTargetingOptionId: Required. ID of the digital content label
5942	// to be EXCLUDED.
5943	ExcludedTargetingOptionId string `json:"excludedTargetingOptionId,omitempty"`
5944
5945	// ForceSendFields is a list of field names (e.g. "ContentRatingTier")
5946	// to unconditionally include in API requests. By default, fields with
5947	// empty or default values are omitted from API requests. However, any
5948	// non-pointer, non-interface field appearing in ForceSendFields will be
5949	// sent to the server regardless of whether the field is empty or not.
5950	// This may be used to include empty fields in Patch requests.
5951	ForceSendFields []string `json:"-"`
5952
5953	// NullFields is a list of field names (e.g. "ContentRatingTier") to
5954	// include in API requests with the JSON null value. By default, fields
5955	// with empty values are omitted from API requests. However, any field
5956	// with an empty value appearing in NullFields will be sent to the
5957	// server as null. It is an error if a field in this list has a
5958	// non-empty value. This may be used to include null fields in Patch
5959	// requests.
5960	NullFields []string `json:"-"`
5961}
5962
5963func (s *DigitalContentLabelAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5964	type NoMethod DigitalContentLabelAssignedTargetingOptionDetails
5965	raw := NoMethod(*s)
5966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5967}
5968
5969// DigitalContentLabelTargetingOptionDetails: Represents a targetable
5970// digital content label rating tier. This will be populated in the
5971// digital_content_label_details field of the TargetingOption when
5972// targeting_type is `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.
5973type DigitalContentLabelTargetingOptionDetails struct {
5974	// ContentRatingTier: Output only. An enum for the content label brand
5975	// safety tiers.
5976	//
5977	// Possible values:
5978	//   "CONTENT_RATING_TIER_UNSPECIFIED" - Content label is not specified
5979	// in this version. This enum is a place holder for a default value and
5980	// does not represent a real content rating.
5981	//   "CONTENT_RATING_TIER_UNRATED" - Content that has not been labeled.
5982	//   "CONTENT_RATING_TIER_GENERAL" - Content suitable for general
5983	// audiences.
5984	//   "CONTENT_RATING_TIER_PARENTAL_GUIDANCE" - Content suitable for most
5985	// audiences with parental guidance.
5986	//   "CONTENT_RATING_TIER_TEENS" - Content suitable for teen and older
5987	// audiences.
5988	//   "CONTENT_RATING_TIER_MATURE" - Content suitable only for mature
5989	// audiences.
5990	ContentRatingTier string `json:"contentRatingTier,omitempty"`
5991
5992	// ForceSendFields is a list of field names (e.g. "ContentRatingTier")
5993	// to unconditionally include in API requests. By default, fields with
5994	// empty or default values are omitted from API requests. However, any
5995	// non-pointer, non-interface field appearing in ForceSendFields will be
5996	// sent to the server regardless of whether the field is empty or not.
5997	// This may be used to include empty fields in Patch requests.
5998	ForceSendFields []string `json:"-"`
5999
6000	// NullFields is a list of field names (e.g. "ContentRatingTier") to
6001	// include in API requests with the JSON null value. By default, fields
6002	// with empty values are omitted from API requests. However, any field
6003	// with an empty value appearing in NullFields will be sent to the
6004	// server as null. It is an error if a field in this list has a
6005	// non-empty value. This may be used to include null fields in Patch
6006	// requests.
6007	NullFields []string `json:"-"`
6008}
6009
6010func (s *DigitalContentLabelTargetingOptionDetails) MarshalJSON() ([]byte, error) {
6011	type NoMethod DigitalContentLabelTargetingOptionDetails
6012	raw := NoMethod(*s)
6013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6014}
6015
6016// Dimensions: Dimensions.
6017type Dimensions struct {
6018	// HeightPixels: The height in pixels.
6019	HeightPixels int64 `json:"heightPixels,omitempty"`
6020
6021	// WidthPixels: The width in pixels.
6022	WidthPixels int64 `json:"widthPixels,omitempty"`
6023
6024	// ForceSendFields is a list of field names (e.g. "HeightPixels") to
6025	// unconditionally include in API requests. By default, fields with
6026	// empty or default values are omitted from API requests. However, any
6027	// non-pointer, non-interface field appearing in ForceSendFields will be
6028	// sent to the server regardless of whether the field is empty or not.
6029	// This may be used to include empty fields in Patch requests.
6030	ForceSendFields []string `json:"-"`
6031
6032	// NullFields is a list of field names (e.g. "HeightPixels") to include
6033	// in API requests with the JSON null value. By default, fields with
6034	// empty values are omitted from API requests. However, any field with
6035	// an empty value appearing in NullFields will be sent to the server as
6036	// null. It is an error if a field in this list has a non-empty value.
6037	// This may be used to include null fields in Patch requests.
6038	NullFields []string `json:"-"`
6039}
6040
6041func (s *Dimensions) MarshalJSON() ([]byte, error) {
6042	type NoMethod Dimensions
6043	raw := NoMethod(*s)
6044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6045}
6046
6047// DoubleVerify: Details of DoubleVerify settings.
6048type DoubleVerify struct {
6049	// AppStarRating: Avoid bidding on apps with the star ratings.
6050	AppStarRating *DoubleVerifyAppStarRating `json:"appStarRating,omitempty"`
6051
6052	// AvoidedAgeRatings: Avoid bidding on apps with the age rating.
6053	//
6054	// Possible values:
6055	//   "AGE_RATING_UNSPECIFIED" - This enum is only a placeholder and it
6056	// doesn't specify any age rating options.
6057	//   "APP_AGE_RATE_UNKNOWN" - Apps with unknown age rating.
6058	//   "APP_AGE_RATE_4_PLUS" - Apps rated for Everyone (4+).
6059	//   "APP_AGE_RATE_9_PLUS" - Apps rated for Everyone (9+).
6060	//   "APP_AGE_RATE_12_PLUS" - Apps rated for Teens (12+).
6061	//   "APP_AGE_RATE_17_PLUS" - Apps rated for Mature (17+).
6062	//   "APP_AGE_RATE_18_PLUS" - Apps rated for Adults Only (18+).
6063	AvoidedAgeRatings []string `json:"avoidedAgeRatings,omitempty"`
6064
6065	// BrandSafetyCategories: DV Brand Safety Controls.
6066	BrandSafetyCategories *DoubleVerifyBrandSafetyCategories `json:"brandSafetyCategories,omitempty"`
6067
6068	// CustomSegmentId: The custom segment ID provided by DoubleVerify. The
6069	// ID must start with "51" and consist of eight digits. Custom segment
6070	// ID cannot be specified along with any of the following fields: *
6071	// brand_safety_categories * avoided_age_ratings * app_star_rating *
6072	// fraud_invalid_traffic
6073	CustomSegmentId int64 `json:"customSegmentId,omitempty,string"`
6074
6075	// DisplayViewability: Display viewability settings (applicable to
6076	// display line items only).
6077	DisplayViewability *DoubleVerifyDisplayViewability `json:"displayViewability,omitempty"`
6078
6079	// FraudInvalidTraffic: Avoid Sites and Apps with historical Fraud & IVT
6080	// Rates.
6081	FraudInvalidTraffic *DoubleVerifyFraudInvalidTraffic `json:"fraudInvalidTraffic,omitempty"`
6082
6083	// VideoViewability: Video viewability settings (applicable to video
6084	// line items only).
6085	VideoViewability *DoubleVerifyVideoViewability `json:"videoViewability,omitempty"`
6086
6087	// ForceSendFields is a list of field names (e.g. "AppStarRating") to
6088	// unconditionally include in API requests. By default, fields with
6089	// empty or default values are omitted from API requests. However, any
6090	// non-pointer, non-interface field appearing in ForceSendFields will be
6091	// sent to the server regardless of whether the field is empty or not.
6092	// This may be used to include empty fields in Patch requests.
6093	ForceSendFields []string `json:"-"`
6094
6095	// NullFields is a list of field names (e.g. "AppStarRating") to include
6096	// in API requests with the JSON null value. By default, fields with
6097	// empty values are omitted from API requests. However, any field with
6098	// an empty value appearing in NullFields will be sent to the server as
6099	// null. It is an error if a field in this list has a non-empty value.
6100	// This may be used to include null fields in Patch requests.
6101	NullFields []string `json:"-"`
6102}
6103
6104func (s *DoubleVerify) MarshalJSON() ([]byte, error) {
6105	type NoMethod DoubleVerify
6106	raw := NoMethod(*s)
6107	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6108}
6109
6110// DoubleVerifyAppStarRating: Details of DoubleVerify star ratings
6111// settings.
6112type DoubleVerifyAppStarRating struct {
6113	// AvoidInsufficientStarRating: Avoid bidding on apps with insufficient
6114	// star ratings.
6115	AvoidInsufficientStarRating bool `json:"avoidInsufficientStarRating,omitempty"`
6116
6117	// AvoidedStarRating: Avoid bidding on apps with the star ratings.
6118	//
6119	// Possible values:
6120	//   "APP_STAR_RATE_UNSPECIFIED" - This enum is only a placeholder and
6121	// it doesn't specify any app star rating options.
6122	//   "APP_STAR_RATE_1_POINT_5_LESS" - Official Apps with rating < 1.5
6123	// Stars.
6124	//   "APP_STAR_RATE_2_LESS" - Official Apps with rating < 2 Stars.
6125	//   "APP_STAR_RATE_2_POINT_5_LESS" - Official Apps with rating < 2.5
6126	// Stars.
6127	//   "APP_STAR_RATE_3_LESS" - Official Apps with rating < 3 Stars.
6128	//   "APP_STAR_RATE_3_POINT_5_LESS" - Official Apps with rating < 3.5
6129	// Stars.
6130	//   "APP_STAR_RATE_4_LESS" - Official Apps with rating < 4 Stars.
6131	//   "APP_STAR_RATE_4_POINT_5_LESS" - Official Apps with rating < 4.5
6132	// Stars.
6133	AvoidedStarRating string `json:"avoidedStarRating,omitempty"`
6134
6135	// ForceSendFields is a list of field names (e.g.
6136	// "AvoidInsufficientStarRating") to unconditionally include in API
6137	// requests. By default, fields with empty or default values are omitted
6138	// from API requests. However, any non-pointer, non-interface field
6139	// appearing in ForceSendFields will be sent to the server regardless of
6140	// whether the field is empty or not. This may be used to include empty
6141	// fields in Patch requests.
6142	ForceSendFields []string `json:"-"`
6143
6144	// NullFields is a list of field names (e.g.
6145	// "AvoidInsufficientStarRating") to include in API requests with the
6146	// JSON null value. By default, fields with empty values are omitted
6147	// from API requests. However, any field with an empty value appearing
6148	// in NullFields will be sent to the server as null. It is an error if a
6149	// field in this list has a non-empty value. This may be used to include
6150	// null fields in Patch requests.
6151	NullFields []string `json:"-"`
6152}
6153
6154func (s *DoubleVerifyAppStarRating) MarshalJSON() ([]byte, error) {
6155	type NoMethod DoubleVerifyAppStarRating
6156	raw := NoMethod(*s)
6157	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6158}
6159
6160// DoubleVerifyBrandSafetyCategories: Settings for brand safety
6161// controls.
6162type DoubleVerifyBrandSafetyCategories struct {
6163	// AvoidUnknownBrandSafetyCategory: Unknown or unrateable.
6164	AvoidUnknownBrandSafetyCategory bool `json:"avoidUnknownBrandSafetyCategory,omitempty"`
6165
6166	// AvoidedHighSeverityCategories: Brand safety high severity avoidance
6167	// categories.
6168	//
6169	// Possible values:
6170	//   "HIGHER_SEVERITY_UNSPECIFIED" - This enum is only a placeholder and
6171	// it doesn't specify any high severity categories.
6172	//   "ADULT_CONTENT_PORNOGRAPHY" - Adult Content: Pornography, Mature
6173	// Topics & Nudity.
6174	//   "COPYRIGHT_INFRINGEMENT" - Copyright Infringement.
6175	//   "SUBSTANCE_ABUSE" - Drugs/Alcohol/Controlled Substances: Substance
6176	// Abuse.
6177	//   "GRAPHIC_VIOLENCE_WEAPONS" - Extreme Graphic/Explicit
6178	// Violence/Weapons.
6179	//   "HATE_PROFANITY" - Hate/Profanity.
6180	//   "CRIMINAL_SKILLS" - Illegal Activities: Criminal Skills.
6181	//   "NUISANCE_INCENTIVIZED_MALWARE_CLUTTER" -
6182	// Incentivized/Malware/Clutter.
6183	AvoidedHighSeverityCategories []string `json:"avoidedHighSeverityCategories,omitempty"`
6184
6185	// AvoidedMediumSeverityCategories: Brand safety medium severity
6186	// avoidance categories.
6187	//
6188	// Possible values:
6189	//   "MEDIUM_SEVERITY_UNSPECIFIED" - This enum is only a placeholder and
6190	// it doesn't specify any medium severity categories.
6191	//   "AD_SERVERS" - Ad Servers.
6192	//   "ADULT_CONTENT_SWIMSUIT" - Adult Content: Swimsuit.
6193	//   "ALTERNATIVE_LIFESTYLES" - Controversial Subjects: Alternative
6194	// Lifestyles.
6195	//   "CELEBRITY_GOSSIP" - Controversial Subjects: Celebrity Gossip.
6196	//   "GAMBLING" - Controversial Subjects: Gambling.
6197	//   "OCCULT" - Controversial Subjects: Occult.
6198	//   "SEX_EDUCATION" - Controversial Subjects: Sex Education.
6199	//   "DISASTER_AVIATION" - Disaster: Aviation.
6200	//   "DISASTER_MAN_MADE" - Disaster: Man-made.
6201	//   "DISASTER_NATURAL" - Disaster: Natural.
6202	//   "DISASTER_TERRORIST_EVENTS" - Disaster: Terrorist Events.
6203	//   "DISASTER_VEHICLE" - Disaster: Vehicle.
6204	//   "ALCOHOL" - Drugs/Alcohol/Controlled Substances: Alcohol.
6205	//   "SMOKING" - Drugs/Alcohol/Controlled Substances: Smoking.
6206	//   "NEGATIVE_NEWS_FINANCIAL" - Negative News: Financial.
6207	//   "NON_ENGLISH" - Non-Std Content: Non-English.
6208	//   "PARKING_PAGE" - Non-Std Content: Parking Page.
6209	//   "UNMODERATED_UGC" - Unmoderated UGC: Forums, Images & Video.
6210	//   "INFLAMMATORY_POLITICS_AND_NEWS" - Controversial Subjects:
6211	// Inflammatory Politics and News.
6212	//   "NEGATIVE_NEWS_PHARMACEUTICAL" - Negative News: Pharmaceutical.
6213	AvoidedMediumSeverityCategories []string `json:"avoidedMediumSeverityCategories,omitempty"`
6214
6215	// ForceSendFields is a list of field names (e.g.
6216	// "AvoidUnknownBrandSafetyCategory") to unconditionally include in API
6217	// requests. By default, fields with empty or default values are omitted
6218	// from API requests. However, any non-pointer, non-interface field
6219	// appearing in ForceSendFields will be sent to the server regardless of
6220	// whether the field is empty or not. This may be used to include empty
6221	// fields in Patch requests.
6222	ForceSendFields []string `json:"-"`
6223
6224	// NullFields is a list of field names (e.g.
6225	// "AvoidUnknownBrandSafetyCategory") to include in API requests with
6226	// the JSON null value. By default, fields with empty values are omitted
6227	// from API requests. However, any field with an empty value appearing
6228	// in NullFields will be sent to the server as null. It is an error if a
6229	// field in this list has a non-empty value. This may be used to include
6230	// null fields in Patch requests.
6231	NullFields []string `json:"-"`
6232}
6233
6234func (s *DoubleVerifyBrandSafetyCategories) MarshalJSON() ([]byte, error) {
6235	type NoMethod DoubleVerifyBrandSafetyCategories
6236	raw := NoMethod(*s)
6237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6238}
6239
6240// DoubleVerifyDisplayViewability: Details of DoubleVerify display
6241// viewability settings.
6242type DoubleVerifyDisplayViewability struct {
6243	// Iab: Target web and app inventory to maximize IAB viewable rate.
6244	//
6245	// Possible values:
6246	//   "IAB_VIEWED_RATE_UNSPECIFIED" - This enum is only a placeholder and
6247	// it doesn't specify any IAB viewed rate options.
6248	//   "IAB_VIEWED_RATE_80_PERCENT_HIGHER" - Target web and app inventory
6249	// to maximize IAB viewable rate 80% or higher.
6250	//   "IAB_VIEWED_RATE_75_PERCENT_HIGHER" - Target web and app inventory
6251	// to maximize IAB viewable rate 75% or higher.
6252	//   "IAB_VIEWED_RATE_70_PERCENT_HIGHER" - Target web and app inventory
6253	// to maximize IAB viewable rate 70% or higher.
6254	//   "IAB_VIEWED_RATE_65_PERCENT_HIGHER" - Target web and app inventory
6255	// to maximize IAB viewable rate 65% or higher.
6256	//   "IAB_VIEWED_RATE_60_PERCENT_HIGHER" - Target web and app inventory
6257	// to maximize IAB viewable rate 60% or higher.
6258	//   "IAB_VIEWED_RATE_55_PERCENT_HIGHER" - Target web and app inventory
6259	// to maximize IAB viewable rate 55% or higher.
6260	//   "IAB_VIEWED_RATE_50_PERCENT_HIGHER" - Target web and app inventory
6261	// to maximize IAB viewable rate 50% or higher.
6262	//   "IAB_VIEWED_RATE_40_PERCENT_HIGHER" - Target web and app inventory
6263	// to maximize IAB viewable rate 40% or higher.
6264	//   "IAB_VIEWED_RATE_30_PERCENT_HIGHER" - Target web and app inventory
6265	// to maximize IAB viewable rate 30% or higher.
6266	Iab string `json:"iab,omitempty"`
6267
6268	// ViewableDuring: Target web and app inventory to maximize 100%
6269	// viewable duration.
6270	//
6271	// Possible values:
6272	//   "AVERAGE_VIEW_DURATION_UNSPECIFIED" - This enum is only a
6273	// placeholder and it doesn't specify any average view duration options.
6274	//   "AVERAGE_VIEW_DURATION_5_SEC" - Target web and app inventory to
6275	// maximize 100% viewable duration 5 seconds or more.
6276	//   "AVERAGE_VIEW_DURATION_10_SEC" - Target web and app inventory to
6277	// maximize 100% viewable duration 10 seconds or more.
6278	//   "AVERAGE_VIEW_DURATION_15_SEC" - Target web and app inventory to
6279	// maximize 100% viewable duration 15 seconds or more.
6280	ViewableDuring string `json:"viewableDuring,omitempty"`
6281
6282	// ForceSendFields is a list of field names (e.g. "Iab") to
6283	// unconditionally include in API requests. By default, fields with
6284	// empty or default values are omitted from API requests. However, any
6285	// non-pointer, non-interface field appearing in ForceSendFields will be
6286	// sent to the server regardless of whether the field is empty or not.
6287	// This may be used to include empty fields in Patch requests.
6288	ForceSendFields []string `json:"-"`
6289
6290	// NullFields is a list of field names (e.g. "Iab") to include in API
6291	// requests with the JSON null value. By default, fields with empty
6292	// values are omitted from API requests. However, any field with an
6293	// empty value appearing in NullFields will be sent to the server as
6294	// null. It is an error if a field in this list has a non-empty value.
6295	// This may be used to include null fields in Patch requests.
6296	NullFields []string `json:"-"`
6297}
6298
6299func (s *DoubleVerifyDisplayViewability) MarshalJSON() ([]byte, error) {
6300	type NoMethod DoubleVerifyDisplayViewability
6301	raw := NoMethod(*s)
6302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6303}
6304
6305// DoubleVerifyFraudInvalidTraffic: DoubleVerify Fraud & Invalid Traffic
6306// settings.
6307type DoubleVerifyFraudInvalidTraffic struct {
6308	// AvoidInsufficientOption: Insufficient Historical Fraud & IVT Stats.
6309	AvoidInsufficientOption bool `json:"avoidInsufficientOption,omitempty"`
6310
6311	// AvoidedFraudOption: Avoid Sites and Apps with historical Fraud & IVT.
6312	//
6313	// Possible values:
6314	//   "FRAUD_UNSPECIFIED" - This enum is only a placeholder and it
6315	// doesn't specify any fraud and invalid traffic options.
6316	//   "AD_IMPRESSION_FRAUD_100" - 100% Fraud & IVT.
6317	//   "AD_IMPRESSION_FRAUD_50" - 50% or Higher Fraud & IVT.
6318	//   "AD_IMPRESSION_FRAUD_25" - 25% or Higher Fraud & IVT.
6319	//   "AD_IMPRESSION_FRAUD_10" - 10% or Higher Fraud & IVT.
6320	//   "AD_IMPRESSION_FRAUD_8" - 8% or Higher Fraud & IVT.
6321	//   "AD_IMPRESSION_FRAUD_6" - 6% or Higher Fraud & IVT.
6322	//   "AD_IMPRESSION_FRAUD_4" - 4% or Higher Fraud & IVT.
6323	//   "AD_IMPRESSION_FRAUD_2" - 2% or Higher Fraud & IVT.
6324	AvoidedFraudOption string `json:"avoidedFraudOption,omitempty"`
6325
6326	// ForceSendFields is a list of field names (e.g.
6327	// "AvoidInsufficientOption") to unconditionally include in API
6328	// requests. By default, fields with empty or default values are omitted
6329	// from API requests. However, any non-pointer, non-interface field
6330	// appearing in ForceSendFields will be sent to the server regardless of
6331	// whether the field is empty or not. This may be used to include empty
6332	// fields in Patch requests.
6333	ForceSendFields []string `json:"-"`
6334
6335	// NullFields is a list of field names (e.g. "AvoidInsufficientOption")
6336	// to include in API requests with the JSON null value. By default,
6337	// fields with empty values are omitted from API requests. However, any
6338	// field with an empty value appearing in NullFields will be sent to the
6339	// server as null. It is an error if a field in this list has a
6340	// non-empty value. This may be used to include null fields in Patch
6341	// requests.
6342	NullFields []string `json:"-"`
6343}
6344
6345func (s *DoubleVerifyFraudInvalidTraffic) MarshalJSON() ([]byte, error) {
6346	type NoMethod DoubleVerifyFraudInvalidTraffic
6347	raw := NoMethod(*s)
6348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6349}
6350
6351// DoubleVerifyVideoViewability: Details of DoubleVerify video
6352// viewability settings.
6353type DoubleVerifyVideoViewability struct {
6354	// PlayerImpressionRate: Target inventory to maximize impressions with
6355	// 400x300 or greater player size.
6356	//
6357	// Possible values:
6358	//   "PLAYER_SIZE_400X300_UNSPECIFIED" - This enum is only a placeholder
6359	// and it doesn't specify any impressions options.
6360	//   "PLAYER_SIZE_400X300_95" - Sites with 95%+ of impressions.
6361	//   "PLAYER_SIZE_400X300_70" - Sites with 70%+ of impressions.
6362	//   "PLAYER_SIZE_400X300_25" - Sites with 25%+ of impressions.
6363	//   "PLAYER_SIZE_400X300_5" - Sites with 5%+ of impressions.
6364	PlayerImpressionRate string `json:"playerImpressionRate,omitempty"`
6365
6366	// VideoIab: Target web inventory to maximize IAB viewable rate.
6367	//
6368	// Possible values:
6369	//   "VIDEO_IAB_UNSPECIFIED" - This enum is only a placeholder and it
6370	// doesn't specify any video IAB viewable rate options.
6371	//   "IAB_VIEWABILITY_80_PERCENT_HIGHER" - Target web and app inventory
6372	// to maximize IAB viewable rate 80% or higher.
6373	//   "IAB_VIEWABILITY_75_PERCENT_HIGHER" - Target web and app inventory
6374	// to maximize IAB viewable rate 75% or higher.
6375	//   "IAB_VIEWABILITY_70_PERCENT_HIGHER" - Target web and app inventory
6376	// to maximize IAB viewable rate 70% or higher.
6377	//   "IAB_VIEWABILITY_65_PERCENT_HIHGER" - Target web and app inventory
6378	// to maximize IAB viewable rate 65% or higher.
6379	//   "IAB_VIEWABILITY_60_PERCENT_HIGHER" - Target web and app inventory
6380	// to maximize IAB viewable rate 60% or higher.
6381	//   "IAB_VIEWABILITY_55_PERCENT_HIHGER" - Target web and app inventory
6382	// to maximize IAB viewable rate 55% or higher.
6383	//   "IAB_VIEWABILITY_50_PERCENT_HIGHER" - Target web and app inventory
6384	// to maximize IAB viewable rate 50% or higher.
6385	//   "IAB_VIEWABILITY_40_PERCENT_HIHGER" - Target web and app inventory
6386	// to maximize IAB viewable rate 40% or higher.
6387	//   "IAB_VIEWABILITY_30_PERCENT_HIHGER" - Target web and app inventory
6388	// to maximize IAB viewable rate 30% or higher.
6389	VideoIab string `json:"videoIab,omitempty"`
6390
6391	// VideoViewableRate: Target web inventory to maximize fully viewable
6392	// rate.
6393	//
6394	// Possible values:
6395	//   "VIDEO_VIEWABLE_RATE_UNSPECIFIED" - This enum is only a placeholder
6396	// and it doesn't specify any video viewable rate options.
6397	//   "VIEWED_PERFORMANCE_40_PERCENT_HIGHER" - Target web inventory to
6398	// maximize fully viewable rate 40% or higher.
6399	//   "VIEWED_PERFORMANCE_35_PERCENT_HIGHER" - Target web inventory to
6400	// maximize fully viewable rate 35% or higher.
6401	//   "VIEWED_PERFORMANCE_30_PERCENT_HIGHER" - Target web inventory to
6402	// maximize fully viewable rate 30% or higher.
6403	//   "VIEWED_PERFORMANCE_25_PERCENT_HIGHER" - Target web inventory to
6404	// maximize fully viewable rate 25% or higher.
6405	//   "VIEWED_PERFORMANCE_20_PERCENT_HIGHER" - Target web inventory to
6406	// maximize fully viewable rate 20% or higher.
6407	//   "VIEWED_PERFORMANCE_10_PERCENT_HIGHER" - Target web inventory to
6408	// maximize fully viewable rate 10% or higher.
6409	VideoViewableRate string `json:"videoViewableRate,omitempty"`
6410
6411	// ForceSendFields is a list of field names (e.g.
6412	// "PlayerImpressionRate") to unconditionally include in API requests.
6413	// By default, fields with empty or default values are omitted from API
6414	// requests. However, any non-pointer, non-interface field appearing in
6415	// ForceSendFields will be sent to the server regardless of whether the
6416	// field is empty or not. This may be used to include empty fields in
6417	// Patch requests.
6418	ForceSendFields []string `json:"-"`
6419
6420	// NullFields is a list of field names (e.g. "PlayerImpressionRate") to
6421	// include in API requests with the JSON null value. By default, fields
6422	// with empty values are omitted from API requests. However, any field
6423	// with an empty value appearing in NullFields will be sent to the
6424	// server as null. It is an error if a field in this list has a
6425	// non-empty value. This may be used to include null fields in Patch
6426	// requests.
6427	NullFields []string `json:"-"`
6428}
6429
6430func (s *DoubleVerifyVideoViewability) MarshalJSON() ([]byte, error) {
6431	type NoMethod DoubleVerifyVideoViewability
6432	raw := NoMethod(*s)
6433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6434}
6435
6436// Empty: A generic empty message that you can re-use to avoid defining
6437// duplicated empty messages in your APIs. A typical example is to use
6438// it as the request or the response type of an API method. For
6439// instance: service Foo { rpc Bar(google.protobuf.Empty) returns
6440// (google.protobuf.Empty); } The JSON representation for `Empty` is
6441// empty JSON object `{}`.
6442type Empty struct {
6443	// ServerResponse contains the HTTP response code and headers from the
6444	// server.
6445	googleapi.ServerResponse `json:"-"`
6446}
6447
6448// EnvironmentAssignedTargetingOptionDetails: Assigned environment
6449// targeting option details. This will be populated in the details field
6450// of an AssignedTargetingOption when targeting_type is
6451// `TARGETING_TYPE_ENVIRONMENT`.
6452type EnvironmentAssignedTargetingOptionDetails struct {
6453	// Environment: Output only. The serving environment.
6454	//
6455	// Possible values:
6456	//   "ENVIRONMENT_UNSPECIFIED" - Default value when environment is not
6457	// specified in this version. This enum is a placeholder for default
6458	// value and does not represent a real environment option.
6459	//   "ENVIRONMENT_WEB_OPTIMIZED" - Target inventory displayed in
6460	// browsers. This includes inventory that was designed for the device it
6461	// was viewed on, such as mobile websites viewed on a mobile device.
6462	// ENVIRONMENT_WEB_NOT_OPTIMIZED, if targeted, should be deleted prior
6463	// to the deletion of this targeting option.
6464	//   "ENVIRONMENT_WEB_NOT_OPTIMIZED" - Target inventory displayed in
6465	// browsers. This includes inventory that was not designed for the
6466	// device but viewed on it, such as websites optimized for desktop but
6467	// viewed on a mobile device. ENVIRONMENT_WEB_OPTIMIZED should be
6468	// targeted prior to the addition of this targeting option.
6469	//   "ENVIRONMENT_APP" - Target inventory displayed in apps.
6470	Environment string `json:"environment,omitempty"`
6471
6472	// TargetingOptionId: Required. The targeting_option_id of a
6473	// TargetingOption of type `TARGETING_TYPE_ENVIRONMENT` (e.g., "508010"
6474	// for targeting the `ENVIRONMENT_WEB_OPTIMIZED` option).
6475	TargetingOptionId string `json:"targetingOptionId,omitempty"`
6476
6477	// ForceSendFields is a list of field names (e.g. "Environment") to
6478	// unconditionally include in API requests. By default, fields with
6479	// empty or default values are omitted from API requests. However, any
6480	// non-pointer, non-interface field appearing in ForceSendFields will be
6481	// sent to the server regardless of whether the field is empty or not.
6482	// This may be used to include empty fields in Patch requests.
6483	ForceSendFields []string `json:"-"`
6484
6485	// NullFields is a list of field names (e.g. "Environment") to include
6486	// in API requests with the JSON null value. By default, fields with
6487	// empty values are omitted from API requests. However, any field with
6488	// an empty value appearing in NullFields will be sent to the server as
6489	// null. It is an error if a field in this list has a non-empty value.
6490	// This may be used to include null fields in Patch requests.
6491	NullFields []string `json:"-"`
6492}
6493
6494func (s *EnvironmentAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
6495	type NoMethod EnvironmentAssignedTargetingOptionDetails
6496	raw := NoMethod(*s)
6497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6498}
6499
6500// EnvironmentTargetingOptionDetails: Represents a targetable
6501// environment. This will be populated in the environment_details field
6502// of a TargetingOption when targeting_type is
6503// `TARGETING_TYPE_ENVIRONMENT`.
6504type EnvironmentTargetingOptionDetails struct {
6505	// Environment: Output only. The serving environment.
6506	//
6507	// Possible values:
6508	//   "ENVIRONMENT_UNSPECIFIED" - Default value when environment is not
6509	// specified in this version. This enum is a placeholder for default
6510	// value and does not represent a real environment option.
6511	//   "ENVIRONMENT_WEB_OPTIMIZED" - Target inventory displayed in
6512	// browsers. This includes inventory that was designed for the device it
6513	// was viewed on, such as mobile websites viewed on a mobile device.
6514	// ENVIRONMENT_WEB_NOT_OPTIMIZED, if targeted, should be deleted prior
6515	// to the deletion of this targeting option.
6516	//   "ENVIRONMENT_WEB_NOT_OPTIMIZED" - Target inventory displayed in
6517	// browsers. This includes inventory that was not designed for the
6518	// device but viewed on it, such as websites optimized for desktop but
6519	// viewed on a mobile device. ENVIRONMENT_WEB_OPTIMIZED should be
6520	// targeted prior to the addition of this targeting option.
6521	//   "ENVIRONMENT_APP" - Target inventory displayed in apps.
6522	Environment string `json:"environment,omitempty"`
6523
6524	// ForceSendFields is a list of field names (e.g. "Environment") to
6525	// unconditionally include in API requests. By default, fields with
6526	// empty or default values are omitted from API requests. However, any
6527	// non-pointer, non-interface field appearing in ForceSendFields will be
6528	// sent to the server regardless of whether the field is empty or not.
6529	// This may be used to include empty fields in Patch requests.
6530	ForceSendFields []string `json:"-"`
6531
6532	// NullFields is a list of field names (e.g. "Environment") to include
6533	// in API requests with the JSON null value. By default, fields with
6534	// empty values are omitted from API requests. However, any field with
6535	// an empty value appearing in NullFields will be sent to the server as
6536	// null. It is an error if a field in this list has a non-empty value.
6537	// This may be used to include null fields in Patch requests.
6538	NullFields []string `json:"-"`
6539}
6540
6541func (s *EnvironmentTargetingOptionDetails) MarshalJSON() ([]byte, error) {
6542	type NoMethod EnvironmentTargetingOptionDetails
6543	raw := NoMethod(*s)
6544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6545}
6546
6547// ExchangeAssignedTargetingOptionDetails: Details for assigned exchange
6548// targeting option. This will be populated in the details field of an
6549// AssignedTargetingOption when targeting_type is
6550// `TARGETING_TYPE_EXCHANGE`.
6551type ExchangeAssignedTargetingOptionDetails struct {
6552	// TargetingOptionId: Required. The targeting_option_id of a
6553	// TargetingOption of type `TARGETING_TYPE_EXCHANGE`.
6554	TargetingOptionId string `json:"targetingOptionId,omitempty"`
6555
6556	// ForceSendFields is a list of field names (e.g. "TargetingOptionId")
6557	// to unconditionally include in API requests. By default, fields with
6558	// empty or default values are omitted from API requests. However, any
6559	// non-pointer, non-interface field appearing in ForceSendFields will be
6560	// sent to the server regardless of whether the field is empty or not.
6561	// This may be used to include empty fields in Patch requests.
6562	ForceSendFields []string `json:"-"`
6563
6564	// NullFields is a list of field names (e.g. "TargetingOptionId") to
6565	// include in API requests with the JSON null value. By default, fields
6566	// with empty values are omitted from API requests. However, any field
6567	// with an empty value appearing in NullFields will be sent to the
6568	// server as null. It is an error if a field in this list has a
6569	// non-empty value. This may be used to include null fields in Patch
6570	// requests.
6571	NullFields []string `json:"-"`
6572}
6573
6574func (s *ExchangeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
6575	type NoMethod ExchangeAssignedTargetingOptionDetails
6576	raw := NoMethod(*s)
6577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6578}
6579
6580// ExchangeConfig: Settings that control which exchanges are enabled for
6581// a partner.
6582type ExchangeConfig struct {
6583	// EnabledExchanges: All enabled exchanges in the partner. Duplicate
6584	// enabled exchanges will be ignored.
6585	EnabledExchanges []*ExchangeConfigEnabledExchange `json:"enabledExchanges,omitempty"`
6586
6587	// ForceSendFields is a list of field names (e.g. "EnabledExchanges") to
6588	// unconditionally include in API requests. By default, fields with
6589	// empty or default values are omitted from API requests. However, any
6590	// non-pointer, non-interface field appearing in ForceSendFields will be
6591	// sent to the server regardless of whether the field is empty or not.
6592	// This may be used to include empty fields in Patch requests.
6593	ForceSendFields []string `json:"-"`
6594
6595	// NullFields is a list of field names (e.g. "EnabledExchanges") to
6596	// include in API requests with the JSON null value. By default, fields
6597	// with empty values are omitted from API requests. However, any field
6598	// with an empty value appearing in NullFields will be sent to the
6599	// server as null. It is an error if a field in this list has a
6600	// non-empty value. This may be used to include null fields in Patch
6601	// requests.
6602	NullFields []string `json:"-"`
6603}
6604
6605func (s *ExchangeConfig) MarshalJSON() ([]byte, error) {
6606	type NoMethod ExchangeConfig
6607	raw := NoMethod(*s)
6608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6609}
6610
6611// ExchangeConfigEnabledExchange: An enabled exchange in the partner.
6612type ExchangeConfigEnabledExchange struct {
6613	// Exchange: The enabled exchange.
6614	//
6615	// Possible values:
6616	//   "EXCHANGE_UNSPECIFIED" - Exchange is not specified or is unknown in
6617	// this version.
6618	//   "EXCHANGE_GOOGLE_AD_MANAGER" - Google Ad Manager.
6619	//   "EXCHANGE_APPNEXUS" - AppNexus.
6620	//   "EXCHANGE_BRIGHTROLL" - BrightRoll Exchange for Video from Yahoo!.
6621	//   "EXCHANGE_ADFORM" - Adform.
6622	//   "EXCHANGE_ADMETA" - Admeta.
6623	//   "EXCHANGE_ADMIXER" - Admixer.
6624	//   "EXCHANGE_ADSMOGO" - AdsMogo.
6625	//   "EXCHANGE_ADSWIZZ" - AdsWizz.
6626	//   "EXCHANGE_BIDSWITCH" - BidSwitch.
6627	//   "EXCHANGE_BRIGHTROLL_DISPLAY" - BrightRoll Exchange for Display
6628	// from Yahoo!.
6629	//   "EXCHANGE_CADREON" - Cadreon.
6630	//   "EXCHANGE_DAILYMOTION" - Dailymotion.
6631	//   "EXCHANGE_FIVE" - Five.
6632	//   "EXCHANGE_FLUCT" - Fluct.
6633	//   "EXCHANGE_FREEWHEEL" - FreeWheel SSP.
6634	//   "EXCHANGE_GENIEE" - Geniee.
6635	//   "EXCHANGE_GUMGUM" - GumGum.
6636	//   "EXCHANGE_IMOBILE" - i-mobile.
6637	//   "EXCHANGE_IBILLBOARD" - iBILLBOARD.
6638	//   "EXCHANGE_IMPROVE_DIGITAL" - Improve Digital.
6639	//   "EXCHANGE_INDEX" - Index Exchange.
6640	//   "EXCHANGE_KARGO" - Kargo.
6641	//   "EXCHANGE_MICROAD" - MicroAd.
6642	//   "EXCHANGE_MOPUB" - MoPub.
6643	//   "EXCHANGE_NEND" - Nend.
6644	//   "EXCHANGE_ONE_BY_AOL_DISPLAY" - ONE by AOL: Display Market Place.
6645	//   "EXCHANGE_ONE_BY_AOL_MOBILE" - ONE by AOL: Mobile.
6646	//   "EXCHANGE_ONE_BY_AOL_VIDEO" - ONE by AOL: Video.
6647	//   "EXCHANGE_OOYALA" - Ooyala.
6648	//   "EXCHANGE_OPENX" - OpenX.
6649	//   "EXCHANGE_PERMODO" - Permodo.
6650	//   "EXCHANGE_PLATFORMONE" - Platform One.
6651	//   "EXCHANGE_PLATFORMID" - PlatformId.
6652	//   "EXCHANGE_PUBMATIC" - PubMatic.
6653	//   "EXCHANGE_PULSEPOINT" - PulsePoint.
6654	//   "EXCHANGE_REVENUEMAX" - RevenueMax.
6655	//   "EXCHANGE_RUBICON" - Rubicon.
6656	//   "EXCHANGE_SMARTCLIP" - SmartClip.
6657	//   "EXCHANGE_SMARTRTB" - SmartRTB+.
6658	//   "EXCHANGE_SMARTSTREAMTV" - SmartstreamTv.
6659	//   "EXCHANGE_SOVRN" - Sovrn.
6660	//   "EXCHANGE_SPOTXCHANGE" - SpotXchange.
6661	//   "EXCHANGE_STROER" - Ströer SSP.
6662	//   "EXCHANGE_TEADSTV" - TeadsTv.
6663	//   "EXCHANGE_TELARIA" - Telaria.
6664	//   "EXCHANGE_TVN" - TVN.
6665	//   "EXCHANGE_UNITED" - United.
6666	//   "EXCHANGE_YIELDLAB" - Yieldlab.
6667	//   "EXCHANGE_YIELDMO" - Yieldmo.
6668	//   "EXCHANGE_UNRULYX" - UnrulyX.
6669	//   "EXCHANGE_OPEN8" - Open8.
6670	//   "EXCHANGE_TRITON" - Triton.
6671	//   "EXCHANGE_TRIPLELIFT" - TripleLift.
6672	//   "EXCHANGE_TABOOLA" - Taboola.
6673	//   "EXCHANGE_INMOBI" - InMobi.
6674	//   "EXCHANGE_SMAATO" - Smaato.
6675	//   "EXCHANGE_AJA" - Aja.
6676	//   "EXCHANGE_SUPERSHIP" - Supership.
6677	//   "EXCHANGE_NEXSTAR_DIGITAL" - Nexstar Digital.
6678	//   "EXCHANGE_WAZE" - Waze.
6679	//   "EXCHANGE_SOUNDCAST" - SoundCast.
6680	//   "EXCHANGE_SHARETHROUGH" - Sharethrough.
6681	//   "EXCHANGE_RED_FOR_PUBLISHERS" - Red For Publishers.
6682	//   "EXCHANGE_MEDIANET" - Media.net.
6683	//   "EXCHANGE_TAPJOY" - Tapjoy.
6684	Exchange string `json:"exchange,omitempty"`
6685
6686	// GoogleAdManagerAgencyId: Output only. Agency ID of Google Ad Manager.
6687	// The field is only relevant when Google Ad Manager is the enabled
6688	// exchange.
6689	GoogleAdManagerAgencyId string `json:"googleAdManagerAgencyId,omitempty"`
6690
6691	// GoogleAdManagerBuyerNetworkId: Output only. Network ID of Google Ad
6692	// Manager. The field is only relevant when Google Ad Manager is the
6693	// enabled exchange.
6694	GoogleAdManagerBuyerNetworkId string `json:"googleAdManagerBuyerNetworkId,omitempty"`
6695
6696	// SeatId: Output only. Seat ID of the enabled exchange.
6697	SeatId string `json:"seatId,omitempty"`
6698
6699	// ForceSendFields is a list of field names (e.g. "Exchange") to
6700	// unconditionally include in API requests. By default, fields with
6701	// empty or default values are omitted from API requests. However, any
6702	// non-pointer, non-interface field appearing in ForceSendFields will be
6703	// sent to the server regardless of whether the field is empty or not.
6704	// This may be used to include empty fields in Patch requests.
6705	ForceSendFields []string `json:"-"`
6706
6707	// NullFields is a list of field names (e.g. "Exchange") to include in
6708	// API requests with the JSON null value. By default, fields with empty
6709	// values are omitted from API requests. However, any field with an
6710	// empty value appearing in NullFields will be sent to the server as
6711	// null. It is an error if a field in this list has a non-empty value.
6712	// This may be used to include null fields in Patch requests.
6713	NullFields []string `json:"-"`
6714}
6715
6716func (s *ExchangeConfigEnabledExchange) MarshalJSON() ([]byte, error) {
6717	type NoMethod ExchangeConfigEnabledExchange
6718	raw := NoMethod(*s)
6719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6720}
6721
6722// ExchangeReviewStatus: Exchange review status for the creative.
6723type ExchangeReviewStatus struct {
6724	// Exchange: The exchange reviewing the creative.
6725	//
6726	// Possible values:
6727	//   "EXCHANGE_UNSPECIFIED" - Exchange is not specified or is unknown in
6728	// this version.
6729	//   "EXCHANGE_GOOGLE_AD_MANAGER" - Google Ad Manager.
6730	//   "EXCHANGE_APPNEXUS" - AppNexus.
6731	//   "EXCHANGE_BRIGHTROLL" - BrightRoll Exchange for Video from Yahoo!.
6732	//   "EXCHANGE_ADFORM" - Adform.
6733	//   "EXCHANGE_ADMETA" - Admeta.
6734	//   "EXCHANGE_ADMIXER" - Admixer.
6735	//   "EXCHANGE_ADSMOGO" - AdsMogo.
6736	//   "EXCHANGE_ADSWIZZ" - AdsWizz.
6737	//   "EXCHANGE_BIDSWITCH" - BidSwitch.
6738	//   "EXCHANGE_BRIGHTROLL_DISPLAY" - BrightRoll Exchange for Display
6739	// from Yahoo!.
6740	//   "EXCHANGE_CADREON" - Cadreon.
6741	//   "EXCHANGE_DAILYMOTION" - Dailymotion.
6742	//   "EXCHANGE_FIVE" - Five.
6743	//   "EXCHANGE_FLUCT" - Fluct.
6744	//   "EXCHANGE_FREEWHEEL" - FreeWheel SSP.
6745	//   "EXCHANGE_GENIEE" - Geniee.
6746	//   "EXCHANGE_GUMGUM" - GumGum.
6747	//   "EXCHANGE_IMOBILE" - i-mobile.
6748	//   "EXCHANGE_IBILLBOARD" - iBILLBOARD.
6749	//   "EXCHANGE_IMPROVE_DIGITAL" - Improve Digital.
6750	//   "EXCHANGE_INDEX" - Index Exchange.
6751	//   "EXCHANGE_KARGO" - Kargo.
6752	//   "EXCHANGE_MICROAD" - MicroAd.
6753	//   "EXCHANGE_MOPUB" - MoPub.
6754	//   "EXCHANGE_NEND" - Nend.
6755	//   "EXCHANGE_ONE_BY_AOL_DISPLAY" - ONE by AOL: Display Market Place.
6756	//   "EXCHANGE_ONE_BY_AOL_MOBILE" - ONE by AOL: Mobile.
6757	//   "EXCHANGE_ONE_BY_AOL_VIDEO" - ONE by AOL: Video.
6758	//   "EXCHANGE_OOYALA" - Ooyala.
6759	//   "EXCHANGE_OPENX" - OpenX.
6760	//   "EXCHANGE_PERMODO" - Permodo.
6761	//   "EXCHANGE_PLATFORMONE" - Platform One.
6762	//   "EXCHANGE_PLATFORMID" - PlatformId.
6763	//   "EXCHANGE_PUBMATIC" - PubMatic.
6764	//   "EXCHANGE_PULSEPOINT" - PulsePoint.
6765	//   "EXCHANGE_REVENUEMAX" - RevenueMax.
6766	//   "EXCHANGE_RUBICON" - Rubicon.
6767	//   "EXCHANGE_SMARTCLIP" - SmartClip.
6768	//   "EXCHANGE_SMARTRTB" - SmartRTB+.
6769	//   "EXCHANGE_SMARTSTREAMTV" - SmartstreamTv.
6770	//   "EXCHANGE_SOVRN" - Sovrn.
6771	//   "EXCHANGE_SPOTXCHANGE" - SpotXchange.
6772	//   "EXCHANGE_STROER" - Ströer SSP.
6773	//   "EXCHANGE_TEADSTV" - TeadsTv.
6774	//   "EXCHANGE_TELARIA" - Telaria.
6775	//   "EXCHANGE_TVN" - TVN.
6776	//   "EXCHANGE_UNITED" - United.
6777	//   "EXCHANGE_YIELDLAB" - Yieldlab.
6778	//   "EXCHANGE_YIELDMO" - Yieldmo.
6779	//   "EXCHANGE_UNRULYX" - UnrulyX.
6780	//   "EXCHANGE_OPEN8" - Open8.
6781	//   "EXCHANGE_TRITON" - Triton.
6782	//   "EXCHANGE_TRIPLELIFT" - TripleLift.
6783	//   "EXCHANGE_TABOOLA" - Taboola.
6784	//   "EXCHANGE_INMOBI" - InMobi.
6785	//   "EXCHANGE_SMAATO" - Smaato.
6786	//   "EXCHANGE_AJA" - Aja.
6787	//   "EXCHANGE_SUPERSHIP" - Supership.
6788	//   "EXCHANGE_NEXSTAR_DIGITAL" - Nexstar Digital.
6789	//   "EXCHANGE_WAZE" - Waze.
6790	//   "EXCHANGE_SOUNDCAST" - SoundCast.
6791	//   "EXCHANGE_SHARETHROUGH" - Sharethrough.
6792	//   "EXCHANGE_RED_FOR_PUBLISHERS" - Red For Publishers.
6793	//   "EXCHANGE_MEDIANET" - Media.net.
6794	//   "EXCHANGE_TAPJOY" - Tapjoy.
6795	Exchange string `json:"exchange,omitempty"`
6796
6797	// Status: Status of the exchange review.
6798	//
6799	// Possible values:
6800	//   "REVIEW_STATUS_UNSPECIFIED" - Type value is not specified or is
6801	// unknown in this version.
6802	//   "REVIEW_STATUS_APPROVED" - The creative is approved.
6803	//   "REVIEW_STATUS_REJECTED" - The creative is rejected.
6804	//   "REVIEW_STATUS_PENDING" - The creative is pending review.
6805	Status string `json:"status,omitempty"`
6806
6807	// ForceSendFields is a list of field names (e.g. "Exchange") to
6808	// unconditionally include in API requests. By default, fields with
6809	// empty or default values are omitted from API requests. However, any
6810	// non-pointer, non-interface field appearing in ForceSendFields will be
6811	// sent to the server regardless of whether the field is empty or not.
6812	// This may be used to include empty fields in Patch requests.
6813	ForceSendFields []string `json:"-"`
6814
6815	// NullFields is a list of field names (e.g. "Exchange") to include in
6816	// API requests with the JSON null value. By default, fields with empty
6817	// values are omitted from API requests. However, any field with an
6818	// empty value appearing in NullFields will be sent to the server as
6819	// null. It is an error if a field in this list has a non-empty value.
6820	// This may be used to include null fields in Patch requests.
6821	NullFields []string `json:"-"`
6822}
6823
6824func (s *ExchangeReviewStatus) MarshalJSON() ([]byte, error) {
6825	type NoMethod ExchangeReviewStatus
6826	raw := NoMethod(*s)
6827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6828}
6829
6830// ExchangeTargetingOptionDetails: Represents a targetable exchange.
6831// This will be populated in the exchange_details field of a
6832// TargetingOption when targeting_type is `TARGETING_TYPE_EXCHANGE`.
6833type ExchangeTargetingOptionDetails struct {
6834	// Exchange: Output only. The type of exchange.
6835	//
6836	// Possible values:
6837	//   "EXCHANGE_UNSPECIFIED" - Exchange is not specified or is unknown in
6838	// this version.
6839	//   "EXCHANGE_GOOGLE_AD_MANAGER" - Google Ad Manager.
6840	//   "EXCHANGE_APPNEXUS" - AppNexus.
6841	//   "EXCHANGE_BRIGHTROLL" - BrightRoll Exchange for Video from Yahoo!.
6842	//   "EXCHANGE_ADFORM" - Adform.
6843	//   "EXCHANGE_ADMETA" - Admeta.
6844	//   "EXCHANGE_ADMIXER" - Admixer.
6845	//   "EXCHANGE_ADSMOGO" - AdsMogo.
6846	//   "EXCHANGE_ADSWIZZ" - AdsWizz.
6847	//   "EXCHANGE_BIDSWITCH" - BidSwitch.
6848	//   "EXCHANGE_BRIGHTROLL_DISPLAY" - BrightRoll Exchange for Display
6849	// from Yahoo!.
6850	//   "EXCHANGE_CADREON" - Cadreon.
6851	//   "EXCHANGE_DAILYMOTION" - Dailymotion.
6852	//   "EXCHANGE_FIVE" - Five.
6853	//   "EXCHANGE_FLUCT" - Fluct.
6854	//   "EXCHANGE_FREEWHEEL" - FreeWheel SSP.
6855	//   "EXCHANGE_GENIEE" - Geniee.
6856	//   "EXCHANGE_GUMGUM" - GumGum.
6857	//   "EXCHANGE_IMOBILE" - i-mobile.
6858	//   "EXCHANGE_IBILLBOARD" - iBILLBOARD.
6859	//   "EXCHANGE_IMPROVE_DIGITAL" - Improve Digital.
6860	//   "EXCHANGE_INDEX" - Index Exchange.
6861	//   "EXCHANGE_KARGO" - Kargo.
6862	//   "EXCHANGE_MICROAD" - MicroAd.
6863	//   "EXCHANGE_MOPUB" - MoPub.
6864	//   "EXCHANGE_NEND" - Nend.
6865	//   "EXCHANGE_ONE_BY_AOL_DISPLAY" - ONE by AOL: Display Market Place.
6866	//   "EXCHANGE_ONE_BY_AOL_MOBILE" - ONE by AOL: Mobile.
6867	//   "EXCHANGE_ONE_BY_AOL_VIDEO" - ONE by AOL: Video.
6868	//   "EXCHANGE_OOYALA" - Ooyala.
6869	//   "EXCHANGE_OPENX" - OpenX.
6870	//   "EXCHANGE_PERMODO" - Permodo.
6871	//   "EXCHANGE_PLATFORMONE" - Platform One.
6872	//   "EXCHANGE_PLATFORMID" - PlatformId.
6873	//   "EXCHANGE_PUBMATIC" - PubMatic.
6874	//   "EXCHANGE_PULSEPOINT" - PulsePoint.
6875	//   "EXCHANGE_REVENUEMAX" - RevenueMax.
6876	//   "EXCHANGE_RUBICON" - Rubicon.
6877	//   "EXCHANGE_SMARTCLIP" - SmartClip.
6878	//   "EXCHANGE_SMARTRTB" - SmartRTB+.
6879	//   "EXCHANGE_SMARTSTREAMTV" - SmartstreamTv.
6880	//   "EXCHANGE_SOVRN" - Sovrn.
6881	//   "EXCHANGE_SPOTXCHANGE" - SpotXchange.
6882	//   "EXCHANGE_STROER" - Ströer SSP.
6883	//   "EXCHANGE_TEADSTV" - TeadsTv.
6884	//   "EXCHANGE_TELARIA" - Telaria.
6885	//   "EXCHANGE_TVN" - TVN.
6886	//   "EXCHANGE_UNITED" - United.
6887	//   "EXCHANGE_YIELDLAB" - Yieldlab.
6888	//   "EXCHANGE_YIELDMO" - Yieldmo.
6889	//   "EXCHANGE_UNRULYX" - UnrulyX.
6890	//   "EXCHANGE_OPEN8" - Open8.
6891	//   "EXCHANGE_TRITON" - Triton.
6892	//   "EXCHANGE_TRIPLELIFT" - TripleLift.
6893	//   "EXCHANGE_TABOOLA" - Taboola.
6894	//   "EXCHANGE_INMOBI" - InMobi.
6895	//   "EXCHANGE_SMAATO" - Smaato.
6896	//   "EXCHANGE_AJA" - Aja.
6897	//   "EXCHANGE_SUPERSHIP" - Supership.
6898	//   "EXCHANGE_NEXSTAR_DIGITAL" - Nexstar Digital.
6899	//   "EXCHANGE_WAZE" - Waze.
6900	//   "EXCHANGE_SOUNDCAST" - SoundCast.
6901	//   "EXCHANGE_SHARETHROUGH" - Sharethrough.
6902	//   "EXCHANGE_RED_FOR_PUBLISHERS" - Red For Publishers.
6903	//   "EXCHANGE_MEDIANET" - Media.net.
6904	//   "EXCHANGE_TAPJOY" - Tapjoy.
6905	Exchange string `json:"exchange,omitempty"`
6906
6907	// ForceSendFields is a list of field names (e.g. "Exchange") to
6908	// unconditionally include in API requests. By default, fields with
6909	// empty or default values are omitted from API requests. However, any
6910	// non-pointer, non-interface field appearing in ForceSendFields will be
6911	// sent to the server regardless of whether the field is empty or not.
6912	// This may be used to include empty fields in Patch requests.
6913	ForceSendFields []string `json:"-"`
6914
6915	// NullFields is a list of field names (e.g. "Exchange") to include in
6916	// API requests with the JSON null value. By default, fields with empty
6917	// values are omitted from API requests. However, any field with an
6918	// empty value appearing in NullFields will be sent to the server as
6919	// null. It is an error if a field in this list has a non-empty value.
6920	// This may be used to include null fields in Patch requests.
6921	NullFields []string `json:"-"`
6922}
6923
6924func (s *ExchangeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
6925	type NoMethod ExchangeTargetingOptionDetails
6926	raw := NoMethod(*s)
6927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6928}
6929
6930// ExitEvent: Exit event of the creative.
6931type ExitEvent struct {
6932	// Name: The name of the click tag of the exit event. The name must be
6933	// unique within one creative. Leave it empty or unset for creatives
6934	// containing image assets only.
6935	Name string `json:"name,omitempty"`
6936
6937	// ReportingName: The name used to identify this event in reports. Leave
6938	// it empty or unset for creatives containing image assets only.
6939	ReportingName string `json:"reportingName,omitempty"`
6940
6941	// Type: Required. The type of the exit event.
6942	//
6943	// Possible values:
6944	//   "EXIT_EVENT_TYPE_UNSPECIFIED" - Exit event type is not specified or
6945	// is unknown in this version.
6946	//   "EXIT_EVENT_TYPE_DEFAULT" - The exit event is the default one.
6947	//   "EXIT_EVENT_TYPE_BACKUP" - The exit event is a backup exit event.
6948	// There could be multiple backup exit events in a creative.
6949	Type string `json:"type,omitempty"`
6950
6951	// Url: Required. The click through URL of the exit event. This is
6952	// required when type is: * `EXIT_EVENT_TYPE_DEFAULT` *
6953	// `EXIT_EVENT_TYPE_BACKUP`
6954	Url string `json:"url,omitempty"`
6955
6956	// ForceSendFields is a list of field names (e.g. "Name") to
6957	// unconditionally include in API requests. By default, fields with
6958	// empty or default values are omitted from API requests. However, any
6959	// non-pointer, non-interface field appearing in ForceSendFields will be
6960	// sent to the server regardless of whether the field is empty or not.
6961	// This may be used to include empty fields in Patch requests.
6962	ForceSendFields []string `json:"-"`
6963
6964	// NullFields is a list of field names (e.g. "Name") to include in API
6965	// requests with the JSON null value. By default, fields with empty
6966	// values are omitted from API requests. However, any field with an
6967	// empty value appearing in NullFields will be sent to the server as
6968	// null. It is an error if a field in this list has a non-empty value.
6969	// This may be used to include null fields in Patch requests.
6970	NullFields []string `json:"-"`
6971}
6972
6973func (s *ExitEvent) MarshalJSON() ([]byte, error) {
6974	type NoMethod ExitEvent
6975	raw := NoMethod(*s)
6976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6977}
6978
6979// FirstAndThirdPartyAudience: Describes a first or third party audience
6980// list used for targeting. First party audiences are created via usage
6981// of client data. Third party audiences are provided by Third Party
6982// data providers and can only be licensed to customers.
6983type FirstAndThirdPartyAudience struct {
6984	// ActiveDisplayAudienceSize: Output only. The estimated audience size
6985	// for the Display network in the past month. If the size is less than
6986	// 1000, the number will be hidden and 0 will be returned due to privacy
6987	// reasons. Otherwise, the number will be rounded off to two significant
6988	// digits. Only returned in GET request.
6989	ActiveDisplayAudienceSize int64 `json:"activeDisplayAudienceSize,omitempty,string"`
6990
6991	// AudienceSource: Output only. The source of the audience.
6992	//
6993	// Possible values:
6994	//   "AUDIENCE_SOURCE_UNSPECIFIED" - Default value when audience source
6995	// is not specified or is unknown.
6996	//   "DISPLAY_VIDEO_360" - Originated from Display & Video 360.
6997	//   "CAMPAIGN_MANAGER" - Originated from Campaign Manager 360.
6998	//   "AD_MANAGER" - Originated from Google Ad Manager.
6999	//   "SEARCH_ADS_360" - Originated from Search Ads 360.
7000	//   "YOUTUBE" - Originated from Youtube.
7001	//   "ADS_DATA_HUB" - Originated from Ads Data Hub.
7002	AudienceSource string `json:"audienceSource,omitempty"`
7003
7004	// AudienceType: Output only. The type of the audience.
7005	//
7006	// Possible values:
7007	//   "AUDIENCE_TYPE_UNSPECIFIED" - Default value when type is not
7008	// specified or is unknown.
7009	//   "CUSTOMER_MATCH_CONTACT_INFO" - Audience was generated through
7010	// matching customers to known contact information.
7011	//   "CUSTOMER_MATCH_DEVICE_ID" - Audience was generated through
7012	// matching customers to known Mobile device IDs.
7013	//   "CUSTOMER_MATCH_USER_ID" - Audience was generated through matching
7014	// customers to known User IDs.
7015	//   "ACTIVITY_BASED" - Audience was created based on campaign activity.
7016	//   "FREQUENCY_CAP" - Audience was created based on excluding the
7017	// number of impressions they were served.
7018	//   "TAG_BASED" - Audience was created based on custom variables
7019	// attached to pixel.
7020	//   "YOUTUBE_USERS" - Audience was created based on past interactions
7021	// with videos, YouTube ads, or YouTube channel.
7022	//   "LICENSED" - Subtype of third party audience type.
7023	AudienceType string `json:"audienceType,omitempty"`
7024
7025	// Description: The user-provided description of the audience. Only
7026	// applicable to first party audiences.
7027	Description string `json:"description,omitempty"`
7028
7029	// DisplayAudienceSize: Output only. The estimated audience size for the
7030	// Display network. If the size is less than 1000, the number will be
7031	// hidden and 0 will be returned due to privacy reasons. Otherwise, the
7032	// number will be rounded off to two significant digits. Only returned
7033	// in GET request.
7034	DisplayAudienceSize int64 `json:"displayAudienceSize,omitempty,string"`
7035
7036	// DisplayDesktopAudienceSize: Output only. The estimated desktop
7037	// audience size in Display network. If the size is less than 1000, the
7038	// number will be hidden and 0 will be returned due to privacy reasons.
7039	// Otherwise, the number will be rounded off to two significant digits.
7040	// Only applicable to first party audiences. Only returned in GET
7041	// request.
7042	DisplayDesktopAudienceSize int64 `json:"displayDesktopAudienceSize,omitempty,string"`
7043
7044	// DisplayMobileAppAudienceSize: Output only. The estimated mobile app
7045	// audience size in Display network. If the size is less than 1000, the
7046	// number will be hidden and 0 will be returned due to privacy reasons.
7047	// Otherwise, the number will be rounded off to two significant digits.
7048	// Only applicable to first party audiences. Only returned in GET
7049	// request.
7050	DisplayMobileAppAudienceSize int64 `json:"displayMobileAppAudienceSize,omitempty,string"`
7051
7052	// DisplayMobileWebAudienceSize: Output only. The estimated mobile web
7053	// audience size in Display network. If the size is less than 1000, the
7054	// number will be hidden and 0 will be returned due to privacy reasons.
7055	// Otherwise, the number will be rounded off to two significant digits.
7056	// Only applicable to first party audiences. Only returned in GET
7057	// request.
7058	DisplayMobileWebAudienceSize int64 `json:"displayMobileWebAudienceSize,omitempty,string"`
7059
7060	// DisplayName: The display name of the first and third party audience.
7061	DisplayName string `json:"displayName,omitempty"`
7062
7063	// FirstAndThirdPartyAudienceId: Output only. The unique ID of the first
7064	// and third party audience. Assigned by the system.
7065	FirstAndThirdPartyAudienceId int64 `json:"firstAndThirdPartyAudienceId,omitempty,string"`
7066
7067	// FirstAndThirdPartyAudienceType: Output only. Whether the audience is
7068	// a first or third party audience.
7069	//
7070	// Possible values:
7071	//   "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_UNSPECIFIED" - Default value
7072	// when type is not specified or is unknown.
7073	//   "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_FIRST_PARTY" - Audience that
7074	// is created via usage of client data.
7075	//   "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_THIRD_PARTY" - Audience that
7076	// is provided by Third Party data providers.
7077	FirstAndThirdPartyAudienceType string `json:"firstAndThirdPartyAudienceType,omitempty"`
7078
7079	// GmailAudienceSize: Output only. The estimated audience size for Gmail
7080	// network. If the size is less than 1000, the number will be hidden and
7081	// 0 will be returned due to privacy reasons. Otherwise, the number will
7082	// be rounded off to two significant digits. Only applicable to first
7083	// party audiences. Only returned in GET request.
7084	GmailAudienceSize int64 `json:"gmailAudienceSize,omitempty,string"`
7085
7086	// MembershipDurationDays: The duration in days that an entry remains in
7087	// the audience after the qualifying event. Only applicable to first
7088	// party audiences.
7089	MembershipDurationDays int64 `json:"membershipDurationDays,omitempty,string"`
7090
7091	// Name: Output only. The resource name of the first and third party
7092	// audience.
7093	Name string `json:"name,omitempty"`
7094
7095	// YoutubeAudienceSize: Output only. The estimated audience size for
7096	// YouTube network. If the size is less than 1000, the number will be
7097	// hidden and 0 will be returned due to privacy reasons. Otherwise, the
7098	// number will be rounded off to two significant digits. Only applicable
7099	// to first party audiences. Only returned in GET request.
7100	YoutubeAudienceSize int64 `json:"youtubeAudienceSize,omitempty,string"`
7101
7102	// ServerResponse contains the HTTP response code and headers from the
7103	// server.
7104	googleapi.ServerResponse `json:"-"`
7105
7106	// ForceSendFields is a list of field names (e.g.
7107	// "ActiveDisplayAudienceSize") to unconditionally include in API
7108	// requests. By default, fields with empty or default values are omitted
7109	// from API requests. However, any non-pointer, non-interface field
7110	// appearing in ForceSendFields will be sent to the server regardless of
7111	// whether the field is empty or not. This may be used to include empty
7112	// fields in Patch requests.
7113	ForceSendFields []string `json:"-"`
7114
7115	// NullFields is a list of field names (e.g.
7116	// "ActiveDisplayAudienceSize") to include in API requests with the JSON
7117	// null value. By default, fields with empty values are omitted from API
7118	// requests. However, any field with an empty value appearing in
7119	// NullFields will be sent to the server as null. It is an error if a
7120	// field in this list has a non-empty value. This may be used to include
7121	// null fields in Patch requests.
7122	NullFields []string `json:"-"`
7123}
7124
7125func (s *FirstAndThirdPartyAudience) MarshalJSON() ([]byte, error) {
7126	type NoMethod FirstAndThirdPartyAudience
7127	raw := NoMethod(*s)
7128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7129}
7130
7131// FirstAndThirdPartyAudienceGroup: Details of first and third party
7132// audience group. All first and third party audience targeting settings
7133// are logically ‘OR’ of each other.
7134type FirstAndThirdPartyAudienceGroup struct {
7135	// Settings: Required. All first and third party audience targeting
7136	// settings in first and third party audience group. Repeated settings
7137	// with same id are not allowed.
7138	Settings []*FirstAndThirdPartyAudienceTargetingSetting `json:"settings,omitempty"`
7139
7140	// ForceSendFields is a list of field names (e.g. "Settings") to
7141	// unconditionally include in API requests. By default, fields with
7142	// empty or default values are omitted from API requests. However, any
7143	// non-pointer, non-interface field appearing in ForceSendFields will be
7144	// sent to the server regardless of whether the field is empty or not.
7145	// This may be used to include empty fields in Patch requests.
7146	ForceSendFields []string `json:"-"`
7147
7148	// NullFields is a list of field names (e.g. "Settings") to include in
7149	// API requests with the JSON null value. By default, fields with empty
7150	// values are omitted from API requests. However, any field with an
7151	// empty value appearing in NullFields will be sent to the server as
7152	// null. It is an error if a field in this list has a non-empty value.
7153	// This may be used to include null fields in Patch requests.
7154	NullFields []string `json:"-"`
7155}
7156
7157func (s *FirstAndThirdPartyAudienceGroup) MarshalJSON() ([]byte, error) {
7158	type NoMethod FirstAndThirdPartyAudienceGroup
7159	raw := NoMethod(*s)
7160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7161}
7162
7163// FirstAndThirdPartyAudienceTargetingSetting: Details of first and
7164// third party audience targeting setting.
7165type FirstAndThirdPartyAudienceTargetingSetting struct {
7166	// FirstAndThirdPartyAudienceId: Required. First and third party
7167	// audience id of the first and third party audience targeting setting.
7168	// This id is first_and_third_party_audience_id.
7169	FirstAndThirdPartyAudienceId int64 `json:"firstAndThirdPartyAudienceId,omitempty,string"`
7170
7171	// Recency: The recency of the first and third party audience targeting
7172	// setting. Only applicable to first party audiences, otherwise will be
7173	// ignored. For more info, refer to
7174	// https://support.google.com/displayvideo/answer/2949947#recency When
7175	// unspecified, no recency limit will be used.
7176	//
7177	// Possible values:
7178	//   "RECENCY_NO_LIMIT" - No limit of recency.
7179	//   "RECENCY_1_MINUTE" - Recency is 1 minute.
7180	//   "RECENCY_5_MINUTES" - Recency is 5 minutes.
7181	//   "RECENCY_10_MINUTES" - Recency is 10 minutes.
7182	//   "RECENCY_15_MINUTES" - Recency is 15 minutes.
7183	//   "RECENCY_30_MINUTES" - Recency is 30 minutes.
7184	//   "RECENCY_1_HOUR" - Recency is 1 hour.
7185	//   "RECENCY_2_HOURS" - Recency is 2 hours.
7186	//   "RECENCY_3_HOURS" - Recency is 3 hours.
7187	//   "RECENCY_6_HOURS" - Recency is 6 hours.
7188	//   "RECENCY_12_HOURS" - Recency is 12 hours.
7189	//   "RECENCY_1_DAY" - Recency is 1 day.
7190	//   "RECENCY_2_DAYS" - Recency is 2 days.
7191	//   "RECENCY_3_DAYS" - Recency is 3 days.
7192	//   "RECENCY_5_DAYS" - Recency is 5 days.
7193	//   "RECENCY_7_DAYS" - Recency is 7 days.
7194	//   "RECENCY_10_DAYS" - Recency is 10 days.
7195	//   "RECENCY_14_DAYS" - Recency is 14 days.
7196	//   "RECENCY_15_DAYS" - Recency is 15 days.
7197	//   "RECENCY_21_DAYS" - Recency is 21 days.
7198	//   "RECENCY_28_DAYS" - Recency is 28 days.
7199	//   "RECENCY_30_DAYS" - Recency is 30 days.
7200	//   "RECENCY_40_DAYS" - Recency is 40 days.
7201	//   "RECENCY_45_DAYS" - Recency is 45 days.
7202	//   "RECENCY_60_DAYS" - Recency is 60 days.
7203	//   "RECENCY_90_DAYS" - Recency is 90 days.
7204	//   "RECENCY_120_DAYS" - Recency is 120 days.
7205	//   "RECENCY_180_DAYS" - Recency is 180 days.
7206	//   "RECENCY_270_DAYS" - Recency is 270 days.
7207	//   "RECENCY_365_DAYS" - Recency is 365 days.
7208	Recency string `json:"recency,omitempty"`
7209
7210	// ForceSendFields is a list of field names (e.g.
7211	// "FirstAndThirdPartyAudienceId") to unconditionally include in API
7212	// requests. By default, fields with empty or default values are omitted
7213	// from API requests. However, any non-pointer, non-interface field
7214	// appearing in ForceSendFields will be sent to the server regardless of
7215	// whether the field is empty or not. This may be used to include empty
7216	// fields in Patch requests.
7217	ForceSendFields []string `json:"-"`
7218
7219	// NullFields is a list of field names (e.g.
7220	// "FirstAndThirdPartyAudienceId") to include in API requests with the
7221	// JSON null value. By default, fields with empty values are omitted
7222	// from API requests. However, any field with an empty value appearing
7223	// in NullFields will be sent to the server as null. It is an error if a
7224	// field in this list has a non-empty value. This may be used to include
7225	// null fields in Patch requests.
7226	NullFields []string `json:"-"`
7227}
7228
7229func (s *FirstAndThirdPartyAudienceTargetingSetting) MarshalJSON() ([]byte, error) {
7230	type NoMethod FirstAndThirdPartyAudienceTargetingSetting
7231	raw := NoMethod(*s)
7232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7233}
7234
7235// FixedBidStrategy: A strategy that uses a fixed bidding price.
7236type FixedBidStrategy struct {
7237	// BidAmountMicros: The fixed bid amount, in micros of the advertiser's
7238	// currency. For insertion order entity, bid_amount_micros should be set
7239	// as 0. For line item entity, bid_amount_micros must be greater than or
7240	// equal to billable unit of the given currency and smaller than or
7241	// equal to the upper limit 1000000000. For example, 1500000 represents
7242	// 1.5 standard units of the currency.
7243	BidAmountMicros int64 `json:"bidAmountMicros,omitempty,string"`
7244
7245	// ForceSendFields is a list of field names (e.g. "BidAmountMicros") to
7246	// unconditionally include in API requests. By default, fields with
7247	// empty or default values are omitted from API requests. However, any
7248	// non-pointer, non-interface field appearing in ForceSendFields will be
7249	// sent to the server regardless of whether the field is empty or not.
7250	// This may be used to include empty fields in Patch requests.
7251	ForceSendFields []string `json:"-"`
7252
7253	// NullFields is a list of field names (e.g. "BidAmountMicros") to
7254	// include in API requests with the JSON null value. By default, fields
7255	// with empty values are omitted from API requests. However, any field
7256	// with an empty value appearing in NullFields will be sent to the
7257	// server as null. It is an error if a field in this list has a
7258	// non-empty value. This may be used to include null fields in Patch
7259	// requests.
7260	NullFields []string `json:"-"`
7261}
7262
7263func (s *FixedBidStrategy) MarshalJSON() ([]byte, error) {
7264	type NoMethod FixedBidStrategy
7265	raw := NoMethod(*s)
7266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7267}
7268
7269// FloodlightGroup: A single Floodlight group.
7270type FloodlightGroup struct {
7271	// ActiveViewConfig: The Active View video viewability metric
7272	// configuration for the Floodlight group.
7273	ActiveViewConfig *ActiveViewVideoViewabilityMetricConfig `json:"activeViewConfig,omitempty"`
7274
7275	// CustomVariables: User-defined custom variables owned by the
7276	// Floodlight group. Use custom Floodlight variables to create reporting
7277	// data that is tailored to your unique business needs. Custom
7278	// Floodlight variables use the keys `U1=`, `U2=`, and so on, and can
7279	// take any values that you choose to pass to them. You can use them to
7280	// track virtually any type of data that you collect about your
7281	// customers, such as the genre of movie that a customer purchases, the
7282	// country to which the item is shipped, and so on. Custom Floodlight
7283	// variables may not be used to pass any data that could be used or
7284	// recognized as personally identifiable information (PII). Example:
7285	// `custom_variables { fields { "U1": value { number_value: 123.4 },
7286	// "U2": value { string_value: "MyVariable2" }, "U3": value {
7287	// string_value: "MyVariable3" } } }` Acceptable values for keys are
7288	// "U1" through "U100", inclusive. String values must be less than 64
7289	// characters long, and cannot contain the following characters: "<>`.
7290	CustomVariables googleapi.RawMessage `json:"customVariables,omitempty"`
7291
7292	// DisplayName: Required. The display name of the Floodlight group.
7293	DisplayName string `json:"displayName,omitempty"`
7294
7295	// FloodlightGroupId: Output only. The unique ID of the Floodlight
7296	// group. Assigned by the system.
7297	FloodlightGroupId int64 `json:"floodlightGroupId,omitempty,string"`
7298
7299	// LookbackWindow: Required. The lookback window for the Floodlight
7300	// group. Both click_days and impression_days are required. Acceptable
7301	// values for both are `0` to `90`, inclusive.
7302	LookbackWindow *LookbackWindow `json:"lookbackWindow,omitempty"`
7303
7304	// Name: Output only. The resource name of the Floodlight group.
7305	Name string `json:"name,omitempty"`
7306
7307	// WebTagType: Required. The web tag type enabled for the Floodlight
7308	// group.
7309	//
7310	// Possible values:
7311	//   "WEB_TAG_TYPE_UNSPECIFIED" - Type value is not specified or is
7312	// unknown in this version.
7313	//   "WEB_TAG_TYPE_NONE" - No tag type.
7314	//   "WEB_TAG_TYPE_IMAGE" - Image tag.
7315	//   "WEB_TAG_TYPE_DYNAMIC" - Dynamic tag.
7316	WebTagType string `json:"webTagType,omitempty"`
7317
7318	// ServerResponse contains the HTTP response code and headers from the
7319	// server.
7320	googleapi.ServerResponse `json:"-"`
7321
7322	// ForceSendFields is a list of field names (e.g. "ActiveViewConfig") to
7323	// unconditionally include in API requests. By default, fields with
7324	// empty or default values are omitted from API requests. However, any
7325	// non-pointer, non-interface field appearing in ForceSendFields will be
7326	// sent to the server regardless of whether the field is empty or not.
7327	// This may be used to include empty fields in Patch requests.
7328	ForceSendFields []string `json:"-"`
7329
7330	// NullFields is a list of field names (e.g. "ActiveViewConfig") to
7331	// include in API requests with the JSON null value. By default, fields
7332	// with empty values are omitted from API requests. However, any field
7333	// with an empty value appearing in NullFields will be sent to the
7334	// server as null. It is an error if a field in this list has a
7335	// non-empty value. This may be used to include null fields in Patch
7336	// requests.
7337	NullFields []string `json:"-"`
7338}
7339
7340func (s *FloodlightGroup) MarshalJSON() ([]byte, error) {
7341	type NoMethod FloodlightGroup
7342	raw := NoMethod(*s)
7343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7344}
7345
7346// FrequencyCap: Settings that control the number of times a user may be
7347// shown with the same ad during a given time period.
7348type FrequencyCap struct {
7349	// MaxImpressions: The maximum number of times a user may be shown with
7350	// the same ad during this period. Must be greater than 0. Required when
7351	// unlimited is `false`.
7352	MaxImpressions int64 `json:"maxImpressions,omitempty"`
7353
7354	// TimeUnit: The time unit in which the frequency cap will be applied.
7355	// Required when unlimited is `false`.
7356	//
7357	// Possible values:
7358	//   "TIME_UNIT_UNSPECIFIED" - Time unit value is not specified or is
7359	// unknown in this version.
7360	//   "TIME_UNIT_LIFETIME" - The frequency cap will be applied to the
7361	// whole life time of the line item.
7362	//   "TIME_UNIT_MONTHS" - The frequency cap will be applied to a number
7363	// of months.
7364	//   "TIME_UNIT_WEEKS" - The frequency cap will be applied to a number
7365	// of weeks.
7366	//   "TIME_UNIT_DAYS" - The frequency cap will be applied to a number of
7367	// days.
7368	//   "TIME_UNIT_HOURS" - The frequency cap will be applied to a number
7369	// of hours.
7370	//   "TIME_UNIT_MINUTES" - The frequency cap will be applied to a number
7371	// of minutes.
7372	TimeUnit string `json:"timeUnit,omitempty"`
7373
7374	// TimeUnitCount: The number of time_unit the frequency cap will last.
7375	// Required when unlimited is `false`. The following restrictions apply
7376	// based on the value of time_unit: * `TIME_UNIT_LIFETIME` - this field
7377	// is output only and will default to 1 * `TIME_UNIT_MONTHS` - must be
7378	// between 1 and 2 * `TIME_UNIT_WEEKS` - must be between 1 and 4 *
7379	// `TIME_UNIT_DAYS` - must be between 1 and 6 * `TIME_UNIT_HOURS` - must
7380	// be between 1 and 23 * `TIME_UNIT_MINUTES` - must be between 1 and 59
7381	TimeUnitCount int64 `json:"timeUnitCount,omitempty"`
7382
7383	// Unlimited: Whether unlimited frequency capping is applied. When this
7384	// field is set to `true`, the remaining frequency cap fields are not
7385	// applicable.
7386	Unlimited bool `json:"unlimited,omitempty"`
7387
7388	// ForceSendFields is a list of field names (e.g. "MaxImpressions") to
7389	// unconditionally include in API requests. By default, fields with
7390	// empty or default values are omitted from API requests. However, any
7391	// non-pointer, non-interface field appearing in ForceSendFields will be
7392	// sent to the server regardless of whether the field is empty or not.
7393	// This may be used to include empty fields in Patch requests.
7394	ForceSendFields []string `json:"-"`
7395
7396	// NullFields is a list of field names (e.g. "MaxImpressions") to
7397	// include in API requests with the JSON null value. By default, fields
7398	// with empty values are omitted from API requests. However, any field
7399	// with an empty value appearing in NullFields will be sent to the
7400	// server as null. It is an error if a field in this list has a
7401	// non-empty value. This may be used to include null fields in Patch
7402	// requests.
7403	NullFields []string `json:"-"`
7404}
7405
7406func (s *FrequencyCap) MarshalJSON() ([]byte, error) {
7407	type NoMethod FrequencyCap
7408	raw := NoMethod(*s)
7409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7410}
7411
7412// GenderAssignedTargetingOptionDetails: Details for assigned gender
7413// targeting option. This will be populated in the details field of an
7414// AssignedTargetingOption when targeting_type is
7415// `TARTGETING_TYPE_GENDER`.
7416type GenderAssignedTargetingOptionDetails struct {
7417	// Gender: Output only. The gender of the audience.
7418	//
7419	// Possible values:
7420	//   "GENDER_UNSPECIFIED" - Default value when gender is not specified
7421	// in this version. This enum is a place holder for default value and
7422	// does not represent a real gender option.
7423	//   "GENDER_MALE" - The audience gender is male.
7424	//   "GENDER_FEMALE" - The audience gender is female.
7425	//   "GENDER_UNKNOWN" - The audience gender is unknown.
7426	Gender string `json:"gender,omitempty"`
7427
7428	// TargetingOptionId: Required. The targeting_option_id of a
7429	// TargetingOption of type `TARGETING_TYPE_GENDER`.
7430	TargetingOptionId string `json:"targetingOptionId,omitempty"`
7431
7432	// ForceSendFields is a list of field names (e.g. "Gender") to
7433	// unconditionally include in API requests. By default, fields with
7434	// empty or default values are omitted from API requests. However, any
7435	// non-pointer, non-interface field appearing in ForceSendFields will be
7436	// sent to the server regardless of whether the field is empty or not.
7437	// This may be used to include empty fields in Patch requests.
7438	ForceSendFields []string `json:"-"`
7439
7440	// NullFields is a list of field names (e.g. "Gender") to include in API
7441	// requests with the JSON null value. By default, fields with empty
7442	// values are omitted from API requests. However, any field with an
7443	// empty value appearing in NullFields will be sent to the server as
7444	// null. It is an error if a field in this list has a non-empty value.
7445	// This may be used to include null fields in Patch requests.
7446	NullFields []string `json:"-"`
7447}
7448
7449func (s *GenderAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
7450	type NoMethod GenderAssignedTargetingOptionDetails
7451	raw := NoMethod(*s)
7452	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7453}
7454
7455// GenderTargetingOptionDetails: Represents a targetable gender. This
7456// will be populated in the gender_details field of a TargetingOption
7457// when targeting_type is `TARGETING_TYPE_GENDER`.
7458type GenderTargetingOptionDetails struct {
7459	// Gender: Output only. The gender of an audience.
7460	//
7461	// Possible values:
7462	//   "GENDER_UNSPECIFIED" - Default value when gender is not specified
7463	// in this version. This enum is a place holder for default value and
7464	// does not represent a real gender option.
7465	//   "GENDER_MALE" - The audience gender is male.
7466	//   "GENDER_FEMALE" - The audience gender is female.
7467	//   "GENDER_UNKNOWN" - The audience gender is unknown.
7468	Gender string `json:"gender,omitempty"`
7469
7470	// ForceSendFields is a list of field names (e.g. "Gender") to
7471	// unconditionally include in API requests. By default, fields with
7472	// empty or default values are omitted from API requests. However, any
7473	// non-pointer, non-interface field appearing in ForceSendFields will be
7474	// sent to the server regardless of whether the field is empty or not.
7475	// This may be used to include empty fields in Patch requests.
7476	ForceSendFields []string `json:"-"`
7477
7478	// NullFields is a list of field names (e.g. "Gender") to include in API
7479	// requests with the JSON null value. By default, fields with empty
7480	// values are omitted from API requests. However, any field with an
7481	// empty value appearing in NullFields will be sent to the server as
7482	// null. It is an error if a field in this list has a non-empty value.
7483	// This may be used to include null fields in Patch requests.
7484	NullFields []string `json:"-"`
7485}
7486
7487func (s *GenderTargetingOptionDetails) MarshalJSON() ([]byte, error) {
7488	type NoMethod GenderTargetingOptionDetails
7489	raw := NoMethod(*s)
7490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7491}
7492
7493// GenerateDefaultLineItemRequest: Request message for
7494// LineItemService.GenerateDefaultLineItem.
7495type GenerateDefaultLineItemRequest struct {
7496	// DisplayName: Required. The display name of the line item. Must be
7497	// UTF-8 encoded with a maximum size of 240 bytes.
7498	DisplayName string `json:"displayName,omitempty"`
7499
7500	// InsertionOrderId: Required. The unique ID of the insertion order that
7501	// the line item belongs to.
7502	InsertionOrderId int64 `json:"insertionOrderId,omitempty,string"`
7503
7504	// LineItemType: Required. The type of the line item.
7505	//
7506	// Possible values:
7507	//   "LINE_ITEM_TYPE_UNSPECIFIED" - Type value is not specified or is
7508	// unknown in this version.
7509	//   "LINE_ITEM_TYPE_DISPLAY_DEFAULT" - Image, HTML5, native, or rich
7510	// media ads.
7511	//   "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL" - Display ads that
7512	// drive installs of an app.
7513	//   "LINE_ITEM_TYPE_VIDEO_DEFAULT" - Video ads sold on a CPM basis for
7514	// a variety of environments.
7515	//   "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL" - Video ads that drive
7516	// installs of an app.
7517	//   "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INVENTORY" - Display ads served
7518	// on mobile app inventory.
7519	//   "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INVENTORY" - Video ads served on
7520	// mobile app inventory.
7521	//   "LINE_ITEM_TYPE_AUDIO_DEFAULT" - RTB Audio ads sold for a variety
7522	// of environments.
7523	//   "LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP" - Over-the-top ads present in
7524	// OTT insertion orders. This type is only applicable to line items with
7525	// an insertion order of insertion_order_type `OVER_THE_TOP`.
7526	LineItemType string `json:"lineItemType,omitempty"`
7527
7528	// MobileApp: The mobile app promoted by the line item. This is
7529	// applicable only when line_item_type is either
7530	// `LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL` or
7531	// `LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL`.
7532	MobileApp *MobileApp `json:"mobileApp,omitempty"`
7533
7534	// ForceSendFields is a list of field names (e.g. "DisplayName") to
7535	// unconditionally include in API requests. By default, fields with
7536	// empty or default values are omitted from API requests. However, any
7537	// non-pointer, non-interface field appearing in ForceSendFields will be
7538	// sent to the server regardless of whether the field is empty or not.
7539	// This may be used to include empty fields in Patch requests.
7540	ForceSendFields []string `json:"-"`
7541
7542	// NullFields is a list of field names (e.g. "DisplayName") to include
7543	// in API requests with the JSON null value. By default, fields with
7544	// empty values are omitted from API requests. However, any field with
7545	// an empty value appearing in NullFields will be sent to the server as
7546	// null. It is an error if a field in this list has a non-empty value.
7547	// This may be used to include null fields in Patch requests.
7548	NullFields []string `json:"-"`
7549}
7550
7551func (s *GenerateDefaultLineItemRequest) MarshalJSON() ([]byte, error) {
7552	type NoMethod GenerateDefaultLineItemRequest
7553	raw := NoMethod(*s)
7554	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7555}
7556
7557// GeoRegionAssignedTargetingOptionDetails: Details for assigned
7558// geographic region targeting option. This will be populated in the
7559// details field of an AssignedTargetingOption when targeting_type is
7560// `TARGETING_TYPE_GEO_REGION`.
7561type GeoRegionAssignedTargetingOptionDetails struct {
7562	// DisplayName: Output only. The display name of the geographic region
7563	// (e.g., "Ontario, Canada").
7564	DisplayName string `json:"displayName,omitempty"`
7565
7566	// GeoRegionType: Output only. The type of geographic region targeting.
7567	//
7568	// Possible values:
7569	//   "GEO_REGION_TYPE_UNKNOWN" - The geographic region type is unknown.
7570	//   "GEO_REGION_TYPE_OTHER" - The geographic region type is other.
7571	//   "GEO_REGION_TYPE_COUNTRY" - The geographic region is a country.
7572	//   "GEO_REGION_TYPE_REGION" - The geographic region type is region.
7573	//   "GEO_REGION_TYPE_TERRITORY" - The geographic region is a territory.
7574	//   "GEO_REGION_TYPE_PROVINCE" - The geographic region is a province.
7575	//   "GEO_REGION_TYPE_STATE" - The geographic region is a state.
7576	//   "GEO_REGION_TYPE_PREFECTURE" - The geographic region is a
7577	// prefecture.
7578	//   "GEO_REGION_TYPE_GOVERNORATE" - The geographic region is a
7579	// governorate.
7580	//   "GEO_REGION_TYPE_CANTON" - The geographic region is a canton.
7581	//   "GEO_REGION_TYPE_UNION_TERRITORY" - The geographic region is a
7582	// union territory.
7583	//   "GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY" - The geographic region is
7584	// an autonomous community.
7585	//   "GEO_REGION_TYPE_DMA_REGION" - The geographic region is a
7586	// designated market area (DMA) region.
7587	//   "GEO_REGION_TYPE_METRO" - The geographic region type is metro.
7588	//   "GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT" - The geographic region is
7589	// a congressional district.
7590	//   "GEO_REGION_TYPE_COUNTY" - The geographic region is a county.
7591	//   "GEO_REGION_TYPE_MUNICIPALITY" - The geographic region is a
7592	// municipality.
7593	//   "GEO_REGION_TYPE_CITY" - The geographic region is a city.
7594	//   "GEO_REGION_TYPE_POSTAL_CODE" - The geographic region targeting
7595	// type is postal code.
7596	//   "GEO_REGION_TYPE_DEPARTMENT" - The geographic region targeting type
7597	// is department.
7598	//   "GEO_REGION_TYPE_AIRPORT" - The geographic region is an airport.
7599	//   "GEO_REGION_TYPE_TV_REGION" - The geographic region is a TV region.
7600	//   "GEO_REGION_TYPE_OKRUG" - The geographic region is an okrug.
7601	//   "GEO_REGION_TYPE_BOROUGH" - The geographic region is a borough.
7602	//   "GEO_REGION_TYPE_CITY_REGION" - The geographic region is a city
7603	// region.
7604	//   "GEO_REGION_TYPE_ARRONDISSEMENT" - The geographic region is an
7605	// arrondissement.
7606	//   "GEO_REGION_TYPE_NEIGHBORHOOD" - The geographic region is a
7607	// neighborhood.
7608	//   "GEO_REGION_TYPE_UNIVERSITY" - The geographic region is a
7609	// university.
7610	//   "GEO_REGION_TYPE_DISTRICT" - The geographic region is a district.
7611	GeoRegionType string `json:"geoRegionType,omitempty"`
7612
7613	// Negative: Indicates if this option is being negatively targeted.
7614	Negative bool `json:"negative,omitempty"`
7615
7616	// TargetingOptionId: Required. The targeting_option_id of a
7617	// TargetingOption of type `TARGETING_TYPE_GEO_REGION`.
7618	TargetingOptionId string `json:"targetingOptionId,omitempty"`
7619
7620	// ForceSendFields is a list of field names (e.g. "DisplayName") to
7621	// unconditionally include in API requests. By default, fields with
7622	// empty or default values are omitted from API requests. However, any
7623	// non-pointer, non-interface field appearing in ForceSendFields will be
7624	// sent to the server regardless of whether the field is empty or not.
7625	// This may be used to include empty fields in Patch requests.
7626	ForceSendFields []string `json:"-"`
7627
7628	// NullFields is a list of field names (e.g. "DisplayName") to include
7629	// in API requests with the JSON null value. By default, fields with
7630	// empty values are omitted from API requests. However, any field with
7631	// an empty value appearing in NullFields will be sent to the server as
7632	// null. It is an error if a field in this list has a non-empty value.
7633	// This may be used to include null fields in Patch requests.
7634	NullFields []string `json:"-"`
7635}
7636
7637func (s *GeoRegionAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
7638	type NoMethod GeoRegionAssignedTargetingOptionDetails
7639	raw := NoMethod(*s)
7640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7641}
7642
7643// GeoRegionSearchTerms: Search terms for geo region targeting options.
7644type GeoRegionSearchTerms struct {
7645	// GeoRegionQuery: The search query for the desired geo region. The
7646	// query can be a prefix, e.g. "New Yor", "Seattle", "USA", etc.
7647	GeoRegionQuery string `json:"geoRegionQuery,omitempty"`
7648
7649	// ForceSendFields is a list of field names (e.g. "GeoRegionQuery") to
7650	// unconditionally include in API requests. By default, fields with
7651	// empty or default values are omitted from API requests. However, any
7652	// non-pointer, non-interface field appearing in ForceSendFields will be
7653	// sent to the server regardless of whether the field is empty or not.
7654	// This may be used to include empty fields in Patch requests.
7655	ForceSendFields []string `json:"-"`
7656
7657	// NullFields is a list of field names (e.g. "GeoRegionQuery") to
7658	// include in API requests with the JSON null value. By default, fields
7659	// with empty values are omitted from API requests. However, any field
7660	// with an empty value appearing in NullFields will be sent to the
7661	// server as null. It is an error if a field in this list has a
7662	// non-empty value. This may be used to include null fields in Patch
7663	// requests.
7664	NullFields []string `json:"-"`
7665}
7666
7667func (s *GeoRegionSearchTerms) MarshalJSON() ([]byte, error) {
7668	type NoMethod GeoRegionSearchTerms
7669	raw := NoMethod(*s)
7670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7671}
7672
7673// GeoRegionTargetingOptionDetails: Represents a targetable geographic
7674// region. This will be populated in the geo_region_details field when
7675// targeting_type is `TARGETING_TYPE_GEO_REGION`.
7676type GeoRegionTargetingOptionDetails struct {
7677	// DisplayName: Output only. The display name of the geographic region
7678	// (e.g., "Ontario, Canada").
7679	DisplayName string `json:"displayName,omitempty"`
7680
7681	// GeoRegionType: Output only. The type of geographic region targeting.
7682	//
7683	// Possible values:
7684	//   "GEO_REGION_TYPE_UNKNOWN" - The geographic region type is unknown.
7685	//   "GEO_REGION_TYPE_OTHER" - The geographic region type is other.
7686	//   "GEO_REGION_TYPE_COUNTRY" - The geographic region is a country.
7687	//   "GEO_REGION_TYPE_REGION" - The geographic region type is region.
7688	//   "GEO_REGION_TYPE_TERRITORY" - The geographic region is a territory.
7689	//   "GEO_REGION_TYPE_PROVINCE" - The geographic region is a province.
7690	//   "GEO_REGION_TYPE_STATE" - The geographic region is a state.
7691	//   "GEO_REGION_TYPE_PREFECTURE" - The geographic region is a
7692	// prefecture.
7693	//   "GEO_REGION_TYPE_GOVERNORATE" - The geographic region is a
7694	// governorate.
7695	//   "GEO_REGION_TYPE_CANTON" - The geographic region is a canton.
7696	//   "GEO_REGION_TYPE_UNION_TERRITORY" - The geographic region is a
7697	// union territory.
7698	//   "GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY" - The geographic region is
7699	// an autonomous community.
7700	//   "GEO_REGION_TYPE_DMA_REGION" - The geographic region is a
7701	// designated market area (DMA) region.
7702	//   "GEO_REGION_TYPE_METRO" - The geographic region type is metro.
7703	//   "GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT" - The geographic region is
7704	// a congressional district.
7705	//   "GEO_REGION_TYPE_COUNTY" - The geographic region is a county.
7706	//   "GEO_REGION_TYPE_MUNICIPALITY" - The geographic region is a
7707	// municipality.
7708	//   "GEO_REGION_TYPE_CITY" - The geographic region is a city.
7709	//   "GEO_REGION_TYPE_POSTAL_CODE" - The geographic region targeting
7710	// type is postal code.
7711	//   "GEO_REGION_TYPE_DEPARTMENT" - The geographic region targeting type
7712	// is department.
7713	//   "GEO_REGION_TYPE_AIRPORT" - The geographic region is an airport.
7714	//   "GEO_REGION_TYPE_TV_REGION" - The geographic region is a TV region.
7715	//   "GEO_REGION_TYPE_OKRUG" - The geographic region is an okrug.
7716	//   "GEO_REGION_TYPE_BOROUGH" - The geographic region is a borough.
7717	//   "GEO_REGION_TYPE_CITY_REGION" - The geographic region is a city
7718	// region.
7719	//   "GEO_REGION_TYPE_ARRONDISSEMENT" - The geographic region is an
7720	// arrondissement.
7721	//   "GEO_REGION_TYPE_NEIGHBORHOOD" - The geographic region is a
7722	// neighborhood.
7723	//   "GEO_REGION_TYPE_UNIVERSITY" - The geographic region is a
7724	// university.
7725	//   "GEO_REGION_TYPE_DISTRICT" - The geographic region is a district.
7726	GeoRegionType string `json:"geoRegionType,omitempty"`
7727
7728	// ForceSendFields is a list of field names (e.g. "DisplayName") to
7729	// unconditionally include in API requests. By default, fields with
7730	// empty or default values are omitted from API requests. However, any
7731	// non-pointer, non-interface field appearing in ForceSendFields will be
7732	// sent to the server regardless of whether the field is empty or not.
7733	// This may be used to include empty fields in Patch requests.
7734	ForceSendFields []string `json:"-"`
7735
7736	// NullFields is a list of field names (e.g. "DisplayName") to include
7737	// in API requests with the JSON null value. By default, fields with
7738	// empty values are omitted from API requests. However, any field with
7739	// an empty value appearing in NullFields will be sent to the server as
7740	// null. It is an error if a field in this list has a non-empty value.
7741	// This may be used to include null fields in Patch requests.
7742	NullFields []string `json:"-"`
7743}
7744
7745func (s *GeoRegionTargetingOptionDetails) MarshalJSON() ([]byte, error) {
7746	type NoMethod GeoRegionTargetingOptionDetails
7747	raw := NoMethod(*s)
7748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7749}
7750
7751// GoogleAudience: Describes a Google audience resource. Includes Google
7752// audience lists.
7753type GoogleAudience struct {
7754	// DisplayName: Output only. The display name of the Google audience. .
7755	DisplayName string `json:"displayName,omitempty"`
7756
7757	// GoogleAudienceId: Output only. The unique ID of the Google audience.
7758	// Assigned by the system.
7759	GoogleAudienceId int64 `json:"googleAudienceId,omitempty,string"`
7760
7761	// GoogleAudienceType: Output only. The type of Google audience. .
7762	//
7763	// Possible values:
7764	//   "GOOGLE_AUDIENCE_TYPE_UNSPECIFIED" - Default value when type is not
7765	// specified or is unknown.
7766	//   "GOOGLE_AUDIENCE_TYPE_AFFINITY" - Affinity type Google audience.
7767	//   "GOOGLE_AUDIENCE_TYPE_IN_MARKET" - In-Market type Google audience.
7768	//   "GOOGLE_AUDIENCE_TYPE_INSTALLED_APPS" - Installed-Apps type Google
7769	// audience.
7770	//   "GOOGLE_AUDIENCE_TYPE_NEW_MOBILE_DEVICES" - New-Mobile-Devices type
7771	// Google audience.
7772	//   "GOOGLE_AUDIENCE_TYPE_LIFE_EVENT" - Life-Event type Google
7773	// audience.
7774	//   "GOOGLE_AUDIENCE_TYPE_EXTENDED_DEMOGRAPHIC" - Extended-Demographic
7775	// type Google audience.
7776	GoogleAudienceType string `json:"googleAudienceType,omitempty"`
7777
7778	// Name: Output only. The resource name of the google audience.
7779	Name string `json:"name,omitempty"`
7780
7781	// ServerResponse contains the HTTP response code and headers from the
7782	// server.
7783	googleapi.ServerResponse `json:"-"`
7784
7785	// ForceSendFields is a list of field names (e.g. "DisplayName") to
7786	// unconditionally include in API requests. By default, fields with
7787	// empty or default values are omitted from API requests. However, any
7788	// non-pointer, non-interface field appearing in ForceSendFields will be
7789	// sent to the server regardless of whether the field is empty or not.
7790	// This may be used to include empty fields in Patch requests.
7791	ForceSendFields []string `json:"-"`
7792
7793	// NullFields is a list of field names (e.g. "DisplayName") to include
7794	// in API requests with the JSON null value. By default, fields with
7795	// empty values are omitted from API requests. However, any field with
7796	// an empty value appearing in NullFields will be sent to the server as
7797	// null. It is an error if a field in this list has a non-empty value.
7798	// This may be used to include null fields in Patch requests.
7799	NullFields []string `json:"-"`
7800}
7801
7802func (s *GoogleAudience) MarshalJSON() ([]byte, error) {
7803	type NoMethod GoogleAudience
7804	raw := NoMethod(*s)
7805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7806}
7807
7808// GoogleAudienceGroup: Details of Google audience group. All Google
7809// audience targeting settings are logically ‘OR’ of each other.
7810type GoogleAudienceGroup struct {
7811	// Settings: Required. All Google audience targeting settings in Google
7812	// audience group. Repeated settings with same id will be ignored.
7813	Settings []*GoogleAudienceTargetingSetting `json:"settings,omitempty"`
7814
7815	// ForceSendFields is a list of field names (e.g. "Settings") to
7816	// unconditionally include in API requests. By default, fields with
7817	// empty or default values are omitted from API requests. However, any
7818	// non-pointer, non-interface field appearing in ForceSendFields will be
7819	// sent to the server regardless of whether the field is empty or not.
7820	// This may be used to include empty fields in Patch requests.
7821	ForceSendFields []string `json:"-"`
7822
7823	// NullFields is a list of field names (e.g. "Settings") to include in
7824	// API requests with the JSON null value. By default, fields with empty
7825	// values are omitted from API requests. However, any field with an
7826	// empty value appearing in NullFields will be sent to the server as
7827	// null. It is an error if a field in this list has a non-empty value.
7828	// This may be used to include null fields in Patch requests.
7829	NullFields []string `json:"-"`
7830}
7831
7832func (s *GoogleAudienceGroup) MarshalJSON() ([]byte, error) {
7833	type NoMethod GoogleAudienceGroup
7834	raw := NoMethod(*s)
7835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7836}
7837
7838// GoogleAudienceTargetingSetting: Details of Google audience targeting
7839// setting.
7840type GoogleAudienceTargetingSetting struct {
7841	// GoogleAudienceId: Required. Google audience id of the Google audience
7842	// targeting setting. This id is google_audience_id.
7843	GoogleAudienceId int64 `json:"googleAudienceId,omitempty,string"`
7844
7845	// ForceSendFields is a list of field names (e.g. "GoogleAudienceId") to
7846	// unconditionally include in API requests. By default, fields with
7847	// empty or default values are omitted from API requests. However, any
7848	// non-pointer, non-interface field appearing in ForceSendFields will be
7849	// sent to the server regardless of whether the field is empty or not.
7850	// This may be used to include empty fields in Patch requests.
7851	ForceSendFields []string `json:"-"`
7852
7853	// NullFields is a list of field names (e.g. "GoogleAudienceId") to
7854	// include in API requests with the JSON null value. By default, fields
7855	// with empty values are omitted from API requests. However, any field
7856	// with an empty value appearing in NullFields will be sent to the
7857	// server as null. It is an error if a field in this list has a
7858	// non-empty value. This may be used to include null fields in Patch
7859	// requests.
7860	NullFields []string `json:"-"`
7861}
7862
7863func (s *GoogleAudienceTargetingSetting) MarshalJSON() ([]byte, error) {
7864	type NoMethod GoogleAudienceTargetingSetting
7865	raw := NoMethod(*s)
7866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7867}
7868
7869// GoogleBytestreamMedia: Media resource.
7870type GoogleBytestreamMedia struct {
7871	// ResourceName: Name of the media resource.
7872	ResourceName string `json:"resourceName,omitempty"`
7873
7874	// ServerResponse contains the HTTP response code and headers from the
7875	// server.
7876	googleapi.ServerResponse `json:"-"`
7877
7878	// ForceSendFields is a list of field names (e.g. "ResourceName") to
7879	// unconditionally include in API requests. By default, fields with
7880	// empty or default values are omitted from API requests. However, any
7881	// non-pointer, non-interface field appearing in ForceSendFields will be
7882	// sent to the server regardless of whether the field is empty or not.
7883	// This may be used to include empty fields in Patch requests.
7884	ForceSendFields []string `json:"-"`
7885
7886	// NullFields is a list of field names (e.g. "ResourceName") to include
7887	// in API requests with the JSON null value. By default, fields with
7888	// empty values are omitted from API requests. However, any field with
7889	// an empty value appearing in NullFields will be sent to the server as
7890	// null. It is an error if a field in this list has a non-empty value.
7891	// This may be used to include null fields in Patch requests.
7892	NullFields []string `json:"-"`
7893}
7894
7895func (s *GoogleBytestreamMedia) MarshalJSON() ([]byte, error) {
7896	type NoMethod GoogleBytestreamMedia
7897	raw := NoMethod(*s)
7898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7899}
7900
7901// HouseholdIncomeAssignedTargetingOptionDetails: Details for assigned
7902// household income targeting option. This will be populated in the
7903// details field of an AssignedTargetingOption when targeting_type is
7904// `TARGETING_TYPE_HOUSEHOLD_INCOME`.
7905type HouseholdIncomeAssignedTargetingOptionDetails struct {
7906	// HouseholdIncome: Output only. The household income of the audience.
7907	//
7908	// Possible values:
7909	//   "HOUSEHOLD_INCOME_UNSPECIFIED" - Default value when household
7910	// income is not specified in this version. This enum is a placeholder
7911	// for default value and does not represent a real household income
7912	// option.
7913	//   "HOUSEHOLD_INCOME_UNKNOWN" - The household income of the audience
7914	// is unknown.
7915	//   "HOUSEHOLD_INCOME_LOWER_50_PERCENT" - The audience is in the lower
7916	// 50% of U.S. household incomes.
7917	//   "HOUSEHOLD_INCOME_TOP_41_TO_50_PERCENT" - The audience is in the
7918	// top 41-50% of U.S. household incomes.
7919	//   "HOUSEHOLD_INCOME_TOP_31_TO_40_PERCENT" - The audience is in the
7920	// top 31-40% of U.S. household incomes.
7921	//   "HOUSEHOLD_INCOME_TOP_21_TO_30_PERCENT" - The audience is in the
7922	// top 21-30% of U.S. household incomes.
7923	//   "HOUSEHOLD_INCOME_TOP_11_TO_20_PERCENT" - The audience is in the
7924	// top 11-20% of U.S. household incomes.
7925	//   "HOUSEHOLD_INCOME_TOP_10_PERCENT" - The audience is in the top 10%
7926	// of U.S. household incomes.
7927	HouseholdIncome string `json:"householdIncome,omitempty"`
7928
7929	// TargetingOptionId: Required. The targeting_option_id of a
7930	// TargetingOption of type `TARGETING_TYPE_HOUSEHOLD_INCOME`.
7931	TargetingOptionId string `json:"targetingOptionId,omitempty"`
7932
7933	// ForceSendFields is a list of field names (e.g. "HouseholdIncome") to
7934	// unconditionally include in API requests. By default, fields with
7935	// empty or default values are omitted from API requests. However, any
7936	// non-pointer, non-interface field appearing in ForceSendFields will be
7937	// sent to the server regardless of whether the field is empty or not.
7938	// This may be used to include empty fields in Patch requests.
7939	ForceSendFields []string `json:"-"`
7940
7941	// NullFields is a list of field names (e.g. "HouseholdIncome") to
7942	// include in API requests with the JSON null value. By default, fields
7943	// with empty values are omitted from API requests. However, any field
7944	// with an empty value appearing in NullFields will be sent to the
7945	// server as null. It is an error if a field in this list has a
7946	// non-empty value. This may be used to include null fields in Patch
7947	// requests.
7948	NullFields []string `json:"-"`
7949}
7950
7951func (s *HouseholdIncomeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
7952	type NoMethod HouseholdIncomeAssignedTargetingOptionDetails
7953	raw := NoMethod(*s)
7954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7955}
7956
7957// HouseholdIncomeTargetingOptionDetails: Represents a targetable
7958// household income. This will be populated in the
7959// household_income_details field of a TargetingOption when
7960// targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`.
7961type HouseholdIncomeTargetingOptionDetails struct {
7962	// HouseholdIncome: Output only. The household income of an audience.
7963	//
7964	// Possible values:
7965	//   "HOUSEHOLD_INCOME_UNSPECIFIED" - Default value when household
7966	// income is not specified in this version. This enum is a placeholder
7967	// for default value and does not represent a real household income
7968	// option.
7969	//   "HOUSEHOLD_INCOME_UNKNOWN" - The household income of the audience
7970	// is unknown.
7971	//   "HOUSEHOLD_INCOME_LOWER_50_PERCENT" - The audience is in the lower
7972	// 50% of U.S. household incomes.
7973	//   "HOUSEHOLD_INCOME_TOP_41_TO_50_PERCENT" - The audience is in the
7974	// top 41-50% of U.S. household incomes.
7975	//   "HOUSEHOLD_INCOME_TOP_31_TO_40_PERCENT" - The audience is in the
7976	// top 31-40% of U.S. household incomes.
7977	//   "HOUSEHOLD_INCOME_TOP_21_TO_30_PERCENT" - The audience is in the
7978	// top 21-30% of U.S. household incomes.
7979	//   "HOUSEHOLD_INCOME_TOP_11_TO_20_PERCENT" - The audience is in the
7980	// top 11-20% of U.S. household incomes.
7981	//   "HOUSEHOLD_INCOME_TOP_10_PERCENT" - The audience is in the top 10%
7982	// of U.S. household incomes.
7983	HouseholdIncome string `json:"householdIncome,omitempty"`
7984
7985	// ForceSendFields is a list of field names (e.g. "HouseholdIncome") to
7986	// unconditionally include in API requests. By default, fields with
7987	// empty or default values are omitted from API requests. However, any
7988	// non-pointer, non-interface field appearing in ForceSendFields will be
7989	// sent to the server regardless of whether the field is empty or not.
7990	// This may be used to include empty fields in Patch requests.
7991	ForceSendFields []string `json:"-"`
7992
7993	// NullFields is a list of field names (e.g. "HouseholdIncome") to
7994	// include in API requests with the JSON null value. By default, fields
7995	// with empty values are omitted from API requests. However, any field
7996	// with an empty value appearing in NullFields will be sent to the
7997	// server as null. It is an error if a field in this list has a
7998	// non-empty value. This may be used to include null fields in Patch
7999	// requests.
8000	NullFields []string `json:"-"`
8001}
8002
8003func (s *HouseholdIncomeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
8004	type NoMethod HouseholdIncomeTargetingOptionDetails
8005	raw := NoMethod(*s)
8006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8007}
8008
8009// IdFilter: A filtering option that filters entities by their entity
8010// IDs.
8011type IdFilter struct {
8012	// AdGroupAdIds: YouTube Ads to download by ID. All IDs must belong to
8013	// the same Advertiser or Partner specified in
8014	// CreateSdfDownloadTaskRequest.
8015	AdGroupAdIds googleapi.Int64s `json:"adGroupAdIds,omitempty"`
8016
8017	// AdGroupIds: YouTube Ad Groups to download by ID. All IDs must belong
8018	// to the same Advertiser or Partner specified in
8019	// CreateSdfDownloadTaskRequest.
8020	AdGroupIds googleapi.Int64s `json:"adGroupIds,omitempty"`
8021
8022	// CampaignIds: Campaigns to download by ID. All IDs must belong to the
8023	// same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.
8024	CampaignIds googleapi.Int64s `json:"campaignIds,omitempty"`
8025
8026	// InsertionOrderIds: Insertion Orders to download by ID. All IDs must
8027	// belong to the same Advertiser or Partner specified in
8028	// CreateSdfDownloadTaskRequest.
8029	InsertionOrderIds googleapi.Int64s `json:"insertionOrderIds,omitempty"`
8030
8031	// LineItemIds: Line Items to download by ID. All IDs must belong to the
8032	// same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.
8033	LineItemIds googleapi.Int64s `json:"lineItemIds,omitempty"`
8034
8035	// MediaProductIds: Media Products to download by ID. All IDs must
8036	// belong to the same Advertiser or Partner specified in
8037	// CreateSdfDownloadTaskRequest.
8038	MediaProductIds googleapi.Int64s `json:"mediaProductIds,omitempty"`
8039
8040	// ForceSendFields is a list of field names (e.g. "AdGroupAdIds") to
8041	// unconditionally include in API requests. By default, fields with
8042	// empty or default values are omitted from API requests. However, any
8043	// non-pointer, non-interface field appearing in ForceSendFields will be
8044	// sent to the server regardless of whether the field is empty or not.
8045	// This may be used to include empty fields in Patch requests.
8046	ForceSendFields []string `json:"-"`
8047
8048	// NullFields is a list of field names (e.g. "AdGroupAdIds") to include
8049	// in API requests with the JSON null value. By default, fields with
8050	// empty values are omitted from API requests. However, any field with
8051	// an empty value appearing in NullFields will be sent to the server as
8052	// null. It is an error if a field in this list has a non-empty value.
8053	// This may be used to include null fields in Patch requests.
8054	NullFields []string `json:"-"`
8055}
8056
8057func (s *IdFilter) MarshalJSON() ([]byte, error) {
8058	type NoMethod IdFilter
8059	raw := NoMethod(*s)
8060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8061}
8062
8063// InsertionOrder: A single insertion order.
8064type InsertionOrder struct {
8065	// AdvertiserId: Output only. The unique ID of the advertiser the
8066	// insertion order belongs to.
8067	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
8068
8069	// BidStrategy: The bidding strategy of the insertion order. By default,
8070	// fixed_bid is set.
8071	BidStrategy *BiddingStrategy `json:"bidStrategy,omitempty"`
8072
8073	// Budget: Required. The budget allocation settings of the insertion
8074	// order.
8075	Budget *InsertionOrderBudget `json:"budget,omitempty"`
8076
8077	// CampaignId: Required. Immutable. The unique ID of the campaign that
8078	// the insertion order belongs to.
8079	CampaignId int64 `json:"campaignId,omitempty,string"`
8080
8081	// DisplayName: Required. The display name of the insertion order. Must
8082	// be UTF-8 encoded with a maximum size of 240 bytes.
8083	DisplayName string `json:"displayName,omitempty"`
8084
8085	// EntityStatus: Required. Controls whether or not the insertion order
8086	// can spend its budget and bid on inventory. * For CreateInsertionOrder
8087	// method, only `ENTITY_STATUS_DRAFT` is allowed. To activate an
8088	// insertion order, use UpdateInsertionOrder method and update the
8089	// status to `ENTITY_STATUS_ACTIVE` after creation. * An insertion order
8090	// cannot be changed back to `ENTITY_STATUS_DRAFT` status from any other
8091	// status. * An insertion order cannot be set to `ENTITY_STATUS_ACTIVE`
8092	// if its parent campaign is not active.
8093	//
8094	// Possible values:
8095	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
8096	// specified or is unknown in this version.
8097	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
8098	// budget.
8099	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
8100	// budget spending are disabled. An entity can be deleted after
8101	// archived. Deleted entities cannot be retrieved.
8102	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
8103	// budget spending are disabled.
8104	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
8105	// the entity.
8106	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
8107	// for deletion.
8108	EntityStatus string `json:"entityStatus,omitempty"`
8109
8110	// FrequencyCap: Required. The frequency capping setting of the
8111	// insertion order.
8112	FrequencyCap *FrequencyCap `json:"frequencyCap,omitempty"`
8113
8114	// InsertionOrderId: Output only. The unique ID of the insertion order.
8115	// Assigned by the system.
8116	InsertionOrderId int64 `json:"insertionOrderId,omitempty,string"`
8117
8118	// InsertionOrderType: The type of insertion order. If this field is
8119	// unspecified in creation, the value defaults to `RTB`.
8120	//
8121	// Possible values:
8122	//   "INSERTION_ORDER_TYPE_UNSPECIFIED" - Insertion order type is not
8123	// specified or is unknown.
8124	//   "RTB" - Real-time bidding.
8125	//   "OVER_THE_TOP" - Over-the-top.
8126	InsertionOrderType string `json:"insertionOrderType,omitempty"`
8127
8128	// IntegrationDetails: Additional integration details of the insertion
8129	// order.
8130	IntegrationDetails *IntegrationDetails `json:"integrationDetails,omitempty"`
8131
8132	// Name: Output only. The resource name of the insertion order.
8133	Name string `json:"name,omitempty"`
8134
8135	// Pacing: Required. The budget spending speed setting of the insertion
8136	// order.
8137	Pacing *Pacing `json:"pacing,omitempty"`
8138
8139	// PartnerCosts: The partner costs associated with the insertion order.
8140	// If absent or empty in CreateInsertionOrder method, the newly created
8141	// insertion order will inherit partner costs from the partner settings.
8142	PartnerCosts []*PartnerCost `json:"partnerCosts,omitempty"`
8143
8144	// PerformanceGoal: Required. Performance goal of the insertion order.
8145	PerformanceGoal *PerformanceGoal `json:"performanceGoal,omitempty"`
8146
8147	// UpdateTime: Output only. The timestamp when the insertion order was
8148	// last updated. Assigned by the system.
8149	UpdateTime string `json:"updateTime,omitempty"`
8150
8151	// ServerResponse contains the HTTP response code and headers from the
8152	// server.
8153	googleapi.ServerResponse `json:"-"`
8154
8155	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
8156	// unconditionally include in API requests. By default, fields with
8157	// empty or default values are omitted from API requests. However, any
8158	// non-pointer, non-interface field appearing in ForceSendFields will be
8159	// sent to the server regardless of whether the field is empty or not.
8160	// This may be used to include empty fields in Patch requests.
8161	ForceSendFields []string `json:"-"`
8162
8163	// NullFields is a list of field names (e.g. "AdvertiserId") to include
8164	// in API requests with the JSON null value. By default, fields with
8165	// empty values are omitted from API requests. However, any field with
8166	// an empty value appearing in NullFields will be sent to the server as
8167	// null. It is an error if a field in this list has a non-empty value.
8168	// This may be used to include null fields in Patch requests.
8169	NullFields []string `json:"-"`
8170}
8171
8172func (s *InsertionOrder) MarshalJSON() ([]byte, error) {
8173	type NoMethod InsertionOrder
8174	raw := NoMethod(*s)
8175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8176}
8177
8178// InsertionOrderBudget: Settings that control how insertion order
8179// budget is allocated.
8180type InsertionOrderBudget struct {
8181	// AutomationType: The type of automation used to manage bid and budget
8182	// for the insertion order. If this field is unspecified in creation,
8183	// the value defaults to `INSERTION_ORDER_AUTOMATION_TYPE_NONE`.
8184	//
8185	// Possible values:
8186	//   "INSERTION_ORDER_AUTOMATION_TYPE_UNSPECIFIED" - Insertion order
8187	// automation option is not specified or is unknown in this version.
8188	//   "INSERTION_ORDER_AUTOMATION_TYPE_BUDGET" - Automatic budget
8189	// allocation. Allow the system to automatically shift budget to owning
8190	// line items to optimize performance defined by performance_goal. No
8191	// automation on bid settings.
8192	//   "INSERTION_ORDER_AUTOMATION_TYPE_NONE" - No automation of bid or
8193	// budget on insertion order level. Bid and budget must be manually
8194	// configured at the line item level.
8195	//   "INSERTION_ORDER_AUTOMATION_TYPE_BID_BUDGET" - Allow the system to
8196	// automatically adjust bids and shift budget to owning line items to
8197	// optimize performance defined by performance_goal.
8198	AutomationType string `json:"automationType,omitempty"`
8199
8200	// BudgetSegments: Required. The list of budget segments. Use a budget
8201	// segment to specify a specific budget for a given period of time an
8202	// insertion order is running.
8203	BudgetSegments []*InsertionOrderBudgetSegment `json:"budgetSegments,omitempty"`
8204
8205	// BudgetUnit: Required. Immutable. The budget unit specifies whether
8206	// the budget is currency based or impression based.
8207	//
8208	// Possible values:
8209	//   "BUDGET_UNIT_UNSPECIFIED" - Type value is not specified or is
8210	// unknown in this version.
8211	//   "BUDGET_UNIT_CURRENCY" - Budgeting in currency amounts.
8212	//   "BUDGET_UNIT_IMPRESSIONS" - Budgeting in impression amounts.
8213	BudgetUnit string `json:"budgetUnit,omitempty"`
8214
8215	// ForceSendFields is a list of field names (e.g. "AutomationType") to
8216	// unconditionally include in API requests. By default, fields with
8217	// empty or default values are omitted from API requests. However, any
8218	// non-pointer, non-interface field appearing in ForceSendFields will be
8219	// sent to the server regardless of whether the field is empty or not.
8220	// This may be used to include empty fields in Patch requests.
8221	ForceSendFields []string `json:"-"`
8222
8223	// NullFields is a list of field names (e.g. "AutomationType") to
8224	// include in API requests with the JSON null value. By default, fields
8225	// with empty values are omitted from API requests. However, any field
8226	// with an empty value appearing in NullFields will be sent to the
8227	// server as null. It is an error if a field in this list has a
8228	// non-empty value. This may be used to include null fields in Patch
8229	// requests.
8230	NullFields []string `json:"-"`
8231}
8232
8233func (s *InsertionOrderBudget) MarshalJSON() ([]byte, error) {
8234	type NoMethod InsertionOrderBudget
8235	raw := NoMethod(*s)
8236	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8237}
8238
8239// InsertionOrderBudgetSegment: Settings that control the budget of a
8240// single budget segment.
8241type InsertionOrderBudgetSegment struct {
8242	// BudgetAmountMicros: Required. The budget amount the insertion order
8243	// will spend for the given date_range. The amount is in micros. Must be
8244	// greater than 0. For example, 500000000 represents 500 standard units
8245	// of the currency.
8246	BudgetAmountMicros int64 `json:"budgetAmountMicros,omitempty,string"`
8247
8248	// CampaignBudgetId: The budget_id of the campaign budget that this
8249	// insertion order budget segment is a part of.
8250	CampaignBudgetId int64 `json:"campaignBudgetId,omitempty,string"`
8251
8252	// DateRange: Required. The start and end date settings of the budget
8253	// segment. They are resolved relative to the parent advertiser's time
8254	// zone. * When creating a new budget segment, both `start_date` and
8255	// `end_date` must be in the future. * An existing budget segment with a
8256	// `start_date` in the past has a mutable `end_date` but an immutable
8257	// `start_date`. * `end_date` must be the `start_date` or later, both
8258	// before the year 2037.
8259	DateRange *DateRange `json:"dateRange,omitempty"`
8260
8261	// Description: The budget segment description. It can be used to enter
8262	// Purchase Order information for each budget segment and have that
8263	// information printed on the invoices. Must be UTF-8 encoded with a
8264	// length of no more than 80 characters.
8265	Description string `json:"description,omitempty"`
8266
8267	// ForceSendFields is a list of field names (e.g. "BudgetAmountMicros")
8268	// to unconditionally include in API requests. By default, fields with
8269	// empty or default values are omitted from API requests. However, any
8270	// non-pointer, non-interface field appearing in ForceSendFields will be
8271	// sent to the server regardless of whether the field is empty or not.
8272	// This may be used to include empty fields in Patch requests.
8273	ForceSendFields []string `json:"-"`
8274
8275	// NullFields is a list of field names (e.g. "BudgetAmountMicros") to
8276	// include in API requests with the JSON null value. By default, fields
8277	// with empty values are omitted from API requests. However, any field
8278	// with an empty value appearing in NullFields will be sent to the
8279	// server as null. It is an error if a field in this list has a
8280	// non-empty value. This may be used to include null fields in Patch
8281	// requests.
8282	NullFields []string `json:"-"`
8283}
8284
8285func (s *InsertionOrderBudgetSegment) MarshalJSON() ([]byte, error) {
8286	type NoMethod InsertionOrderBudgetSegment
8287	raw := NoMethod(*s)
8288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8289}
8290
8291// IntegralAdScience: Details of Integral Ad Science settings.
8292type IntegralAdScience struct {
8293	// CustomSegmentId: The custom segment ID provided by Integral Ad
8294	// Science. The ID must be between `1000001` and `1999999`, inclusive.
8295	CustomSegmentId googleapi.Int64s `json:"customSegmentId,omitempty"`
8296
8297	// DisplayViewability: Display Viewability section (applicable to
8298	// display line items only).
8299	//
8300	// Possible values:
8301	//   "PERFORMANCE_VIEWABILITY_UNSPECIFIED" - This enum is only a
8302	// placeholder and it doesn't specify any display viewability options.
8303	//   "PERFORMANCE_VIEWABILITY_40" - Target 40% Viewability or Higher.
8304	//   "PERFORMANCE_VIEWABILITY_50" - Target 50% Viewability or Higher.
8305	//   "PERFORMANCE_VIEWABILITY_60" - Target 60% Viewability or Higher.
8306	//   "PERFORMANCE_VIEWABILITY_70" - Target 70% Viewability or Higher.
8307	DisplayViewability string `json:"displayViewability,omitempty"`
8308
8309	// ExcludeUnrateable: Brand Safety - **Unrateable**.
8310	ExcludeUnrateable bool `json:"excludeUnrateable,omitempty"`
8311
8312	// ExcludedAdFraudRisk: Ad Fraud settings.
8313	//
8314	// Possible values:
8315	//   "SUSPICIOUS_ACTIVITY_UNSPECIFIED" - This enum is only a placeholder
8316	// and it doesn't specify any ad fraud prevention options.
8317	//   "SUSPICIOUS_ACTIVITY_HR" - Ad Fraud - Exclude High Risk.
8318	//   "SUSPICIOUS_ACTIVITY_HMR" - Ad Fraud - Exclude High and Moderate
8319	// Risk.
8320	ExcludedAdFraudRisk string `json:"excludedAdFraudRisk,omitempty"`
8321
8322	// ExcludedAdultRisk: Brand Safety - **Adult content**.
8323	//
8324	// Possible values:
8325	//   "ADULT_UNSPECIFIED" - This enum is only a placeholder and it
8326	// doesn't specify any adult options.
8327	//   "ADULT_HR" - Adult - Exclude High Risk.
8328	//   "ADULT_HMR" - Adult - Exclude High and Moderate Risk.
8329	ExcludedAdultRisk string `json:"excludedAdultRisk,omitempty"`
8330
8331	// ExcludedAlcoholRisk: Brand Safety - **Alcohol**.
8332	//
8333	// Possible values:
8334	//   "ALCOHOL_UNSPECIFIED" - This enum is only a placeholder and it
8335	// doesn't specify any alcohol options.
8336	//   "ALCOHOL_HR" - Alcohol - Exclude High Risk.
8337	//   "ALCOHOL_HMR" - Alcohol - Exclude High and Moderate Risk.
8338	ExcludedAlcoholRisk string `json:"excludedAlcoholRisk,omitempty"`
8339
8340	// ExcludedDrugsRisk: Brand Safety - **Drugs**.
8341	//
8342	// Possible values:
8343	//   "DRUGS_UNSPECIFIED" - This enum is only a placeholder and it
8344	// doesn't specify any drugs options.
8345	//   "DRUGS_HR" - Drugs - Exclude High Risk.
8346	//   "DRUGS_HMR" - Drugs - Exclude High and Moderate Risk.
8347	ExcludedDrugsRisk string `json:"excludedDrugsRisk,omitempty"`
8348
8349	// ExcludedGamblingRisk: Brand Safety - **Gambling**.
8350	//
8351	// Possible values:
8352	//   "GAMBLING_UNSPECIFIED" - This enum is only a placeholder and it
8353	// doesn't specify any gambling options.
8354	//   "GAMBLING_HR" - Gambling - Exclude High Risk.
8355	//   "GAMBLING_HMR" - Gambling - Exclude High and Moderate Risk.
8356	ExcludedGamblingRisk string `json:"excludedGamblingRisk,omitempty"`
8357
8358	// ExcludedHateSpeechRisk: Brand Safety - **Hate speech**.
8359	//
8360	// Possible values:
8361	//   "HATE_SPEECH_UNSPECIFIED" - This enum is only a placeholder and it
8362	// doesn't specify any hate speech options.
8363	//   "HATE_SPEECH_HR" - Hate Speech - Exclude High Risk.
8364	//   "HATE_SPEECH_HMR" - Hate Speech - Exclude High and Moderate Risk.
8365	ExcludedHateSpeechRisk string `json:"excludedHateSpeechRisk,omitempty"`
8366
8367	// ExcludedIllegalDownloadsRisk: Brand Safety - **Illegal downloads**.
8368	//
8369	// Possible values:
8370	//   "ILLEGAL_DOWNLOADS_UNSPECIFIED" - This enum is only a placeholder
8371	// and it doesn't specify any illegal downloads options.
8372	//   "ILLEGAL_DOWNLOADS_HR" - Illegal Downloads - Exclude High Risk.
8373	//   "ILLEGAL_DOWNLOADS_HMR" - Illegal Downloads - Exclude High and
8374	// Moderate Risk.
8375	ExcludedIllegalDownloadsRisk string `json:"excludedIllegalDownloadsRisk,omitempty"`
8376
8377	// ExcludedOffensiveLanguageRisk: Brand Safety - **Offensive language**.
8378	//
8379	// Possible values:
8380	//   "OFFENSIVE_LANGUAGE_UNSPECIFIED" - This enum is only a placeholder
8381	// and it doesn't specify any language options.
8382	//   "OFFENSIVE_LANGUAGE_HR" - Offensive Language - Exclude High Risk.
8383	//   "OFFENSIVE_LANGUAGE_HMR" - Offensive Language - Exclude High and
8384	// Moderate Risk.
8385	ExcludedOffensiveLanguageRisk string `json:"excludedOffensiveLanguageRisk,omitempty"`
8386
8387	// ExcludedViolenceRisk: Brand Safety - **Violence**.
8388	//
8389	// Possible values:
8390	//   "VIOLENCE_UNSPECIFIED" - This enum is only a placeholder and it
8391	// doesn't specify any violence options.
8392	//   "VIOLENCE_HR" - Violence - Exclude High Risk.
8393	//   "VIOLENCE_HMR" - Violence - Exclude High and Moderate Risk.
8394	ExcludedViolenceRisk string `json:"excludedViolenceRisk,omitempty"`
8395
8396	// TraqScoreOption: True advertising quality (applicable to Display line
8397	// items only).
8398	//
8399	// Possible values:
8400	//   "TRAQ_UNSPECIFIED" - This enum is only a placeholder and it doesn't
8401	// specify any true advertising quality scores.
8402	//   "TRAQ_250" - TRAQ score 250-1000.
8403	//   "TRAQ_500" - TRAQ score 500-1000.
8404	//   "TRAQ_600" - TRAQ score 600-1000.
8405	//   "TRAQ_700" - TRAQ score 700-1000.
8406	//   "TRAQ_750" - TRAQ score 750-1000.
8407	//   "TRAQ_875" - TRAQ score 875-1000.
8408	//   "TRAQ_1000" - TRAQ score 1000.
8409	TraqScoreOption string `json:"traqScoreOption,omitempty"`
8410
8411	// VideoViewability: Video Viewability Section (applicable to video line
8412	// items only).
8413	//
8414	// Possible values:
8415	//   "VIDEO_VIEWABILITY_UNSPECIFIED" - This enum is only a placeholder
8416	// and it doesn't specify any video viewability options.
8417	//   "VIDEO_VIEWABILITY_40" - 40%+ in view (IAB video viewability
8418	// standard).
8419	//   "VIDEO_VIEWABILITY_50" - 50%+ in view (IAB video viewability
8420	// standard).
8421	//   "VIDEO_VIEWABILITY_60" - 60%+ in view (IAB video viewability
8422	// standard).
8423	//   "VIDEO_VIEWABILITY_70" - 70%+ in view (IAB video viewability
8424	// standard).
8425	VideoViewability string `json:"videoViewability,omitempty"`
8426
8427	// ForceSendFields is a list of field names (e.g. "CustomSegmentId") to
8428	// unconditionally include in API requests. By default, fields with
8429	// empty or default values are omitted from API requests. However, any
8430	// non-pointer, non-interface field appearing in ForceSendFields will be
8431	// sent to the server regardless of whether the field is empty or not.
8432	// This may be used to include empty fields in Patch requests.
8433	ForceSendFields []string `json:"-"`
8434
8435	// NullFields is a list of field names (e.g. "CustomSegmentId") to
8436	// include in API requests with the JSON null value. By default, fields
8437	// with empty values are omitted from API requests. However, any field
8438	// with an empty value appearing in NullFields will be sent to the
8439	// server as null. It is an error if a field in this list has a
8440	// non-empty value. This may be used to include null fields in Patch
8441	// requests.
8442	NullFields []string `json:"-"`
8443}
8444
8445func (s *IntegralAdScience) MarshalJSON() ([]byte, error) {
8446	type NoMethod IntegralAdScience
8447	raw := NoMethod(*s)
8448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8449}
8450
8451// IntegrationDetails: Integration details of an entry.
8452type IntegrationDetails struct {
8453	// Details: Additional details of the entry in string format. Must be
8454	// UTF-8 encoded with a length of no more than 1000 characters.
8455	Details string `json:"details,omitempty"`
8456
8457	// IntegrationCode: An external identifier to be associated with the
8458	// entry. The integration code will show up together with the entry in
8459	// many places in the system, for example, reporting. Must be UTF-8
8460	// encoded with a length of no more than 500 characters.
8461	IntegrationCode string `json:"integrationCode,omitempty"`
8462
8463	// ForceSendFields is a list of field names (e.g. "Details") to
8464	// unconditionally include in API requests. By default, fields with
8465	// empty or default values are omitted from API requests. However, any
8466	// non-pointer, non-interface field appearing in ForceSendFields will be
8467	// sent to the server regardless of whether the field is empty or not.
8468	// This may be used to include empty fields in Patch requests.
8469	ForceSendFields []string `json:"-"`
8470
8471	// NullFields is a list of field names (e.g. "Details") to include in
8472	// API requests with the JSON null value. By default, fields with empty
8473	// values are omitted from API requests. However, any field with an
8474	// empty value appearing in NullFields will be sent to the server as
8475	// null. It is an error if a field in this list has a non-empty value.
8476	// This may be used to include null fields in Patch requests.
8477	NullFields []string `json:"-"`
8478}
8479
8480func (s *IntegrationDetails) MarshalJSON() ([]byte, error) {
8481	type NoMethod IntegrationDetails
8482	raw := NoMethod(*s)
8483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8484}
8485
8486// InventorySource: An inventory source.
8487type InventorySource struct {
8488	// Commitment: Whether the inventory source has a guaranteed or
8489	// non-guaranteed delivery.
8490	//
8491	// Possible values:
8492	//   "INVENTORY_SOURCE_COMMITMENT_UNSPECIFIED" - The commitment is not
8493	// specified or is unknown in this version.
8494	//   "INVENTORY_SOURCE_COMMITMENT_GUARANTEED" - The commitment is
8495	// guaranteed delivery.
8496	//   "INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED" - The commitment is
8497	// non-guaranteed delivery.
8498	Commitment string `json:"commitment,omitempty"`
8499
8500	// CreativeConfigs: The creative requirements of the inventory source.
8501	// Not applicable for auction packages.
8502	CreativeConfigs []*CreativeConfig `json:"creativeConfigs,omitempty"`
8503
8504	// DealId: The ID in the exchange space that uniquely identifies the
8505	// inventory source. Must be unique across buyers within each exchange
8506	// but not necessarily unique across exchanges.
8507	DealId string `json:"dealId,omitempty"`
8508
8509	// DeliveryMethod: The delivery method of the inventory source. * For
8510	// non-guaranteed inventory sources, the only acceptable value is
8511	// `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`. * For guaranteed
8512	// inventory sources, acceptable values are
8513	// `INVENTORY_SOURCE_DELIVERY_METHOD_TAG` and
8514	// `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`.
8515	//
8516	// Possible values:
8517	//   "INVENTORY_SOURCE_DELIVERY_METHOD_UNSPECIFIED" - The delivery
8518	// method is not specified or is unknown in this version.
8519	//   "INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC" - The delivery
8520	// method is programmatic.
8521	//   "INVENTORY_SOURCE_DELIVERY_METHOD_TAG" - The delivery method is
8522	// tag.
8523	DeliveryMethod string `json:"deliveryMethod,omitempty"`
8524
8525	// DisplayName: The display name of the inventory source. Must be UTF-8
8526	// encoded with a maximum size of 240 bytes.
8527	DisplayName string `json:"displayName,omitempty"`
8528
8529	// Exchange: The exchange to which the inventory source belongs.
8530	//
8531	// Possible values:
8532	//   "EXCHANGE_UNSPECIFIED" - Exchange is not specified or is unknown in
8533	// this version.
8534	//   "EXCHANGE_GOOGLE_AD_MANAGER" - Google Ad Manager.
8535	//   "EXCHANGE_APPNEXUS" - AppNexus.
8536	//   "EXCHANGE_BRIGHTROLL" - BrightRoll Exchange for Video from Yahoo!.
8537	//   "EXCHANGE_ADFORM" - Adform.
8538	//   "EXCHANGE_ADMETA" - Admeta.
8539	//   "EXCHANGE_ADMIXER" - Admixer.
8540	//   "EXCHANGE_ADSMOGO" - AdsMogo.
8541	//   "EXCHANGE_ADSWIZZ" - AdsWizz.
8542	//   "EXCHANGE_BIDSWITCH" - BidSwitch.
8543	//   "EXCHANGE_BRIGHTROLL_DISPLAY" - BrightRoll Exchange for Display
8544	// from Yahoo!.
8545	//   "EXCHANGE_CADREON" - Cadreon.
8546	//   "EXCHANGE_DAILYMOTION" - Dailymotion.
8547	//   "EXCHANGE_FIVE" - Five.
8548	//   "EXCHANGE_FLUCT" - Fluct.
8549	//   "EXCHANGE_FREEWHEEL" - FreeWheel SSP.
8550	//   "EXCHANGE_GENIEE" - Geniee.
8551	//   "EXCHANGE_GUMGUM" - GumGum.
8552	//   "EXCHANGE_IMOBILE" - i-mobile.
8553	//   "EXCHANGE_IBILLBOARD" - iBILLBOARD.
8554	//   "EXCHANGE_IMPROVE_DIGITAL" - Improve Digital.
8555	//   "EXCHANGE_INDEX" - Index Exchange.
8556	//   "EXCHANGE_KARGO" - Kargo.
8557	//   "EXCHANGE_MICROAD" - MicroAd.
8558	//   "EXCHANGE_MOPUB" - MoPub.
8559	//   "EXCHANGE_NEND" - Nend.
8560	//   "EXCHANGE_ONE_BY_AOL_DISPLAY" - ONE by AOL: Display Market Place.
8561	//   "EXCHANGE_ONE_BY_AOL_MOBILE" - ONE by AOL: Mobile.
8562	//   "EXCHANGE_ONE_BY_AOL_VIDEO" - ONE by AOL: Video.
8563	//   "EXCHANGE_OOYALA" - Ooyala.
8564	//   "EXCHANGE_OPENX" - OpenX.
8565	//   "EXCHANGE_PERMODO" - Permodo.
8566	//   "EXCHANGE_PLATFORMONE" - Platform One.
8567	//   "EXCHANGE_PLATFORMID" - PlatformId.
8568	//   "EXCHANGE_PUBMATIC" - PubMatic.
8569	//   "EXCHANGE_PULSEPOINT" - PulsePoint.
8570	//   "EXCHANGE_REVENUEMAX" - RevenueMax.
8571	//   "EXCHANGE_RUBICON" - Rubicon.
8572	//   "EXCHANGE_SMARTCLIP" - SmartClip.
8573	//   "EXCHANGE_SMARTRTB" - SmartRTB+.
8574	//   "EXCHANGE_SMARTSTREAMTV" - SmartstreamTv.
8575	//   "EXCHANGE_SOVRN" - Sovrn.
8576	//   "EXCHANGE_SPOTXCHANGE" - SpotXchange.
8577	//   "EXCHANGE_STROER" - Ströer SSP.
8578	//   "EXCHANGE_TEADSTV" - TeadsTv.
8579	//   "EXCHANGE_TELARIA" - Telaria.
8580	//   "EXCHANGE_TVN" - TVN.
8581	//   "EXCHANGE_UNITED" - United.
8582	//   "EXCHANGE_YIELDLAB" - Yieldlab.
8583	//   "EXCHANGE_YIELDMO" - Yieldmo.
8584	//   "EXCHANGE_UNRULYX" - UnrulyX.
8585	//   "EXCHANGE_OPEN8" - Open8.
8586	//   "EXCHANGE_TRITON" - Triton.
8587	//   "EXCHANGE_TRIPLELIFT" - TripleLift.
8588	//   "EXCHANGE_TABOOLA" - Taboola.
8589	//   "EXCHANGE_INMOBI" - InMobi.
8590	//   "EXCHANGE_SMAATO" - Smaato.
8591	//   "EXCHANGE_AJA" - Aja.
8592	//   "EXCHANGE_SUPERSHIP" - Supership.
8593	//   "EXCHANGE_NEXSTAR_DIGITAL" - Nexstar Digital.
8594	//   "EXCHANGE_WAZE" - Waze.
8595	//   "EXCHANGE_SOUNDCAST" - SoundCast.
8596	//   "EXCHANGE_SHARETHROUGH" - Sharethrough.
8597	//   "EXCHANGE_RED_FOR_PUBLISHERS" - Red For Publishers.
8598	//   "EXCHANGE_MEDIANET" - Media.net.
8599	//   "EXCHANGE_TAPJOY" - Tapjoy.
8600	Exchange string `json:"exchange,omitempty"`
8601
8602	// InventorySourceId: Output only. The unique ID of the inventory
8603	// source. Assigned by the system.
8604	InventorySourceId int64 `json:"inventorySourceId,omitempty,string"`
8605
8606	// InventorySourceType: Denotes the type of the inventory source.
8607	//
8608	// Possible values:
8609	//   "INVENTORY_SOURCE_TYPE_UNSPECIFIED" - The inventory source type is
8610	// not specified or is unknown in this version.
8611	//   "INVENTORY_SOURCE_TYPE_PRIVATE" - Private inventory source.
8612	//   "INVENTORY_SOURCE_TYPE_AUCTION_PACKAGE" - Auction package.
8613	InventorySourceType string `json:"inventorySourceType,omitempty"`
8614
8615	// Name: Output only. The resource name of the inventory source.
8616	Name string `json:"name,omitempty"`
8617
8618	// PublisherName: The publisher/seller name of the inventory source.
8619	PublisherName string `json:"publisherName,omitempty"`
8620
8621	// RateDetails: Required. The rate details of the inventory source.
8622	RateDetails *RateDetails `json:"rateDetails,omitempty"`
8623
8624	// Status: The status settings of the inventory source.
8625	Status *InventorySourceStatus `json:"status,omitempty"`
8626
8627	// TimeRange: The time range when this inventory source starts and stops
8628	// serving.
8629	TimeRange *TimeRange `json:"timeRange,omitempty"`
8630
8631	// UpdateTime: Output only. The timestamp when the inventory source was
8632	// last updated. Assigned by the system.
8633	UpdateTime string `json:"updateTime,omitempty"`
8634
8635	// ServerResponse contains the HTTP response code and headers from the
8636	// server.
8637	googleapi.ServerResponse `json:"-"`
8638
8639	// ForceSendFields is a list of field names (e.g. "Commitment") to
8640	// unconditionally include in API requests. By default, fields with
8641	// empty or default values are omitted from API requests. However, any
8642	// non-pointer, non-interface field appearing in ForceSendFields will be
8643	// sent to the server regardless of whether the field is empty or not.
8644	// This may be used to include empty fields in Patch requests.
8645	ForceSendFields []string `json:"-"`
8646
8647	// NullFields is a list of field names (e.g. "Commitment") to include in
8648	// API requests with the JSON null value. By default, fields with empty
8649	// values are omitted from API requests. However, any field with an
8650	// empty value appearing in NullFields will be sent to the server as
8651	// null. It is an error if a field in this list has a non-empty value.
8652	// This may be used to include null fields in Patch requests.
8653	NullFields []string `json:"-"`
8654}
8655
8656func (s *InventorySource) MarshalJSON() ([]byte, error) {
8657	type NoMethod InventorySource
8658	raw := NoMethod(*s)
8659	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8660}
8661
8662// InventorySourceAssignedTargetingOptionDetails: Targeting details for
8663// inventory source. This will be populated in the details field of an
8664// AssignedTargetingOption when targeting_type is
8665// `TARGETING_TYPE_INVENTORY_SOURCE`.
8666type InventorySourceAssignedTargetingOptionDetails struct {
8667	// InventorySourceId: Required. ID of the inventory source. Should refer
8668	// to the inventory_source_id field of an InventorySource resource.
8669	InventorySourceId int64 `json:"inventorySourceId,omitempty,string"`
8670
8671	// ForceSendFields is a list of field names (e.g. "InventorySourceId")
8672	// to unconditionally include in API requests. By default, fields with
8673	// empty or default values are omitted from API requests. However, any
8674	// non-pointer, non-interface field appearing in ForceSendFields will be
8675	// sent to the server regardless of whether the field is empty or not.
8676	// This may be used to include empty fields in Patch requests.
8677	ForceSendFields []string `json:"-"`
8678
8679	// NullFields is a list of field names (e.g. "InventorySourceId") to
8680	// include in API requests with the JSON null value. By default, fields
8681	// with empty values are omitted from API requests. However, any field
8682	// with an empty value appearing in NullFields will be sent to the
8683	// server as null. It is an error if a field in this list has a
8684	// non-empty value. This may be used to include null fields in Patch
8685	// requests.
8686	NullFields []string `json:"-"`
8687}
8688
8689func (s *InventorySourceAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
8690	type NoMethod InventorySourceAssignedTargetingOptionDetails
8691	raw := NoMethod(*s)
8692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8693}
8694
8695// InventorySourceDisplayCreativeConfig: The configuration for display
8696// creatives.
8697type InventorySourceDisplayCreativeConfig struct {
8698	// CreativeSize: The size requirements for display creatives that can be
8699	// assigned to the inventory source.
8700	CreativeSize *Dimensions `json:"creativeSize,omitempty"`
8701
8702	// ForceSendFields is a list of field names (e.g. "CreativeSize") to
8703	// unconditionally include in API requests. By default, fields with
8704	// empty or default values are omitted from API requests. However, any
8705	// non-pointer, non-interface field appearing in ForceSendFields will be
8706	// sent to the server regardless of whether the field is empty or not.
8707	// This may be used to include empty fields in Patch requests.
8708	ForceSendFields []string `json:"-"`
8709
8710	// NullFields is a list of field names (e.g. "CreativeSize") to include
8711	// in API requests with the JSON null value. By default, fields with
8712	// empty values are omitted from API requests. However, any field with
8713	// an empty value appearing in NullFields will be sent to the server as
8714	// null. It is an error if a field in this list has a non-empty value.
8715	// This may be used to include null fields in Patch requests.
8716	NullFields []string `json:"-"`
8717}
8718
8719func (s *InventorySourceDisplayCreativeConfig) MarshalJSON() ([]byte, error) {
8720	type NoMethod InventorySourceDisplayCreativeConfig
8721	raw := NoMethod(*s)
8722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8723}
8724
8725// InventorySourceFilter: A filtering option for filtering on Inventory
8726// Source entities.
8727type InventorySourceFilter struct {
8728	// InventorySourceIds: Inventory Sources to download by ID. All IDs must
8729	// belong to the same Advertiser or Partner specified in
8730	// CreateSdfDownloadTaskRequest. Leave empty to download all Inventory
8731	// Sources for the selected Advertiser or Partner.
8732	InventorySourceIds googleapi.Int64s `json:"inventorySourceIds,omitempty"`
8733
8734	// ForceSendFields is a list of field names (e.g. "InventorySourceIds")
8735	// to unconditionally include in API requests. By default, fields with
8736	// empty or default values are omitted from API requests. However, any
8737	// non-pointer, non-interface field appearing in ForceSendFields will be
8738	// sent to the server regardless of whether the field is empty or not.
8739	// This may be used to include empty fields in Patch requests.
8740	ForceSendFields []string `json:"-"`
8741
8742	// NullFields is a list of field names (e.g. "InventorySourceIds") to
8743	// include in API requests with the JSON null value. By default, fields
8744	// with empty values are omitted from API requests. However, any field
8745	// with an empty value appearing in NullFields will be sent to the
8746	// server as null. It is an error if a field in this list has a
8747	// non-empty value. This may be used to include null fields in Patch
8748	// requests.
8749	NullFields []string `json:"-"`
8750}
8751
8752func (s *InventorySourceFilter) MarshalJSON() ([]byte, error) {
8753	type NoMethod InventorySourceFilter
8754	raw := NoMethod(*s)
8755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8756}
8757
8758// InventorySourceGroup: A collection of targetable inventory sources.
8759type InventorySourceGroup struct {
8760	// DisplayName: Required. The display name of the inventory source
8761	// group. Must be UTF-8 encoded with a maximum size of 240 bytes.
8762	DisplayName string `json:"displayName,omitempty"`
8763
8764	// InventorySourceGroupId: Output only. The unique ID of the inventory
8765	// source group. Assigned by the system.
8766	InventorySourceGroupId int64 `json:"inventorySourceGroupId,omitempty,string"`
8767
8768	// Name: Output only. The resource name of the inventory source group.
8769	Name string `json:"name,omitempty"`
8770
8771	// ServerResponse contains the HTTP response code and headers from the
8772	// server.
8773	googleapi.ServerResponse `json:"-"`
8774
8775	// ForceSendFields is a list of field names (e.g. "DisplayName") to
8776	// unconditionally include in API requests. By default, fields with
8777	// empty or default values are omitted from API requests. However, any
8778	// non-pointer, non-interface field appearing in ForceSendFields will be
8779	// sent to the server regardless of whether the field is empty or not.
8780	// This may be used to include empty fields in Patch requests.
8781	ForceSendFields []string `json:"-"`
8782
8783	// NullFields is a list of field names (e.g. "DisplayName") to include
8784	// in API requests with the JSON null value. By default, fields with
8785	// empty values are omitted from API requests. However, any field with
8786	// an empty value appearing in NullFields will be sent to the server as
8787	// null. It is an error if a field in this list has a non-empty value.
8788	// This may be used to include null fields in Patch requests.
8789	NullFields []string `json:"-"`
8790}
8791
8792func (s *InventorySourceGroup) MarshalJSON() ([]byte, error) {
8793	type NoMethod InventorySourceGroup
8794	raw := NoMethod(*s)
8795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8796}
8797
8798// InventorySourceGroupAssignedTargetingOptionDetails: Targeting details
8799// for inventory source group. This will be populated in the details
8800// field of an AssignedTargetingOption when targeting_type is
8801// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`.
8802type InventorySourceGroupAssignedTargetingOptionDetails struct {
8803	// InventorySourceGroupId: Required. ID of the inventory source group.
8804	// Should refer to the inventory_source_group_id field of an
8805	// InventorySourceGroup resource.
8806	InventorySourceGroupId int64 `json:"inventorySourceGroupId,omitempty,string"`
8807
8808	// ForceSendFields is a list of field names (e.g.
8809	// "InventorySourceGroupId") to unconditionally include in API requests.
8810	// By default, fields with empty or default values are omitted from API
8811	// requests. However, any non-pointer, non-interface field appearing in
8812	// ForceSendFields will be sent to the server regardless of whether the
8813	// field is empty or not. This may be used to include empty fields in
8814	// Patch requests.
8815	ForceSendFields []string `json:"-"`
8816
8817	// NullFields is a list of field names (e.g. "InventorySourceGroupId")
8818	// to include in API requests with the JSON null value. By default,
8819	// fields with empty values are omitted from API requests. However, any
8820	// field with an empty value appearing in NullFields will be sent to the
8821	// server as null. It is an error if a field in this list has a
8822	// non-empty value. This may be used to include null fields in Patch
8823	// requests.
8824	NullFields []string `json:"-"`
8825}
8826
8827func (s *InventorySourceGroupAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
8828	type NoMethod InventorySourceGroupAssignedTargetingOptionDetails
8829	raw := NoMethod(*s)
8830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8831}
8832
8833// InventorySourceStatus: The status related settings of the inventory
8834// source.
8835type InventorySourceStatus struct {
8836	// ConfigStatus: Output only. The configuration status of the inventory
8837	// source. Only applicable for guaranteed inventory sources. Acceptable
8838	// values are `INVENTORY_SOURCE_CONFIG_STATUS_PENDING` and
8839	// `INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED`. An inventory source must
8840	// be configured (fill in the required fields, choose creatives, and
8841	// select a default campaign) before it can serve.
8842	//
8843	// Possible values:
8844	//   "INVENTORY_SOURCE_CONFIG_STATUS_UNSPECIFIED" - The approval status
8845	// is not specified or is unknown in this version.
8846	//   "INVENTORY_SOURCE_CONFIG_STATUS_PENDING" - The beginning state of a
8847	// guaranteed inventory source. The inventory source in this state needs
8848	// to be configured.
8849	//   "INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED" - The state after the
8850	// buyer configures a guaranteed inventory source.
8851	ConfigStatus string `json:"configStatus,omitempty"`
8852
8853	// EntityPauseReason: The user-provided reason for pausing this
8854	// inventory source. Must not exceed 100 characters. Only applicable
8855	// when entity_status is set to `ENTITY_STATUS_PAUSED`.
8856	EntityPauseReason string `json:"entityPauseReason,omitempty"`
8857
8858	// EntityStatus: Whether or not the inventory source is servable.
8859	// Acceptable values are `ENTITY_STATUS_ACTIVE`,
8860	// `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. Default value
8861	// is `ENTITY_STATUS_ACTIVE`.
8862	//
8863	// Possible values:
8864	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
8865	// specified or is unknown in this version.
8866	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
8867	// budget.
8868	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
8869	// budget spending are disabled. An entity can be deleted after
8870	// archived. Deleted entities cannot be retrieved.
8871	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
8872	// budget spending are disabled.
8873	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
8874	// the entity.
8875	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
8876	// for deletion.
8877	EntityStatus string `json:"entityStatus,omitempty"`
8878
8879	// SellerPauseReason: Output only. The seller-provided reason for
8880	// pausing this inventory source. Only applicable for inventory sources
8881	// synced directly from the publishers and when seller_status is set to
8882	// `ENTITY_STATUS_PAUSED`.
8883	SellerPauseReason string `json:"sellerPauseReason,omitempty"`
8884
8885	// SellerStatus: Output only. The status set by the seller for the
8886	// inventory source. Only applicable for inventory sources synced
8887	// directly from the publishers. Acceptable values are
8888	// `ENTITY_STATUS_ACTIVE` and `ENTITY_STATUS_PAUSED`.
8889	//
8890	// Possible values:
8891	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
8892	// specified or is unknown in this version.
8893	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
8894	// budget.
8895	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
8896	// budget spending are disabled. An entity can be deleted after
8897	// archived. Deleted entities cannot be retrieved.
8898	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
8899	// budget spending are disabled.
8900	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
8901	// the entity.
8902	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
8903	// for deletion.
8904	SellerStatus string `json:"sellerStatus,omitempty"`
8905
8906	// ForceSendFields is a list of field names (e.g. "ConfigStatus") to
8907	// unconditionally include in API requests. By default, fields with
8908	// empty or default values are omitted from API requests. However, any
8909	// non-pointer, non-interface field appearing in ForceSendFields will be
8910	// sent to the server regardless of whether the field is empty or not.
8911	// This may be used to include empty fields in Patch requests.
8912	ForceSendFields []string `json:"-"`
8913
8914	// NullFields is a list of field names (e.g. "ConfigStatus") to include
8915	// in API requests with the JSON null value. By default, fields with
8916	// empty values are omitted from API requests. However, any field with
8917	// an empty value appearing in NullFields will be sent to the server as
8918	// null. It is an error if a field in this list has a non-empty value.
8919	// This may be used to include null fields in Patch requests.
8920	NullFields []string `json:"-"`
8921}
8922
8923func (s *InventorySourceStatus) MarshalJSON() ([]byte, error) {
8924	type NoMethod InventorySourceStatus
8925	raw := NoMethod(*s)
8926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8927}
8928
8929// InventorySourceVideoCreativeConfig: The configuration for video
8930// creatives.
8931type InventorySourceVideoCreativeConfig struct {
8932	// Duration: The duration requirements for the video creatives that can
8933	// be assigned to the inventory source.
8934	Duration string `json:"duration,omitempty"`
8935
8936	// ForceSendFields is a list of field names (e.g. "Duration") to
8937	// unconditionally include in API requests. By default, fields with
8938	// empty or default values are omitted from API requests. However, any
8939	// non-pointer, non-interface field appearing in ForceSendFields will be
8940	// sent to the server regardless of whether the field is empty or not.
8941	// This may be used to include empty fields in Patch requests.
8942	ForceSendFields []string `json:"-"`
8943
8944	// NullFields is a list of field names (e.g. "Duration") to include in
8945	// API requests with the JSON null value. By default, fields with empty
8946	// values are omitted from API requests. However, any field with an
8947	// empty value appearing in NullFields will be sent to the server as
8948	// null. It is an error if a field in this list has a non-empty value.
8949	// This may be used to include null fields in Patch requests.
8950	NullFields []string `json:"-"`
8951}
8952
8953func (s *InventorySourceVideoCreativeConfig) MarshalJSON() ([]byte, error) {
8954	type NoMethod InventorySourceVideoCreativeConfig
8955	raw := NoMethod(*s)
8956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8957}
8958
8959// Invoice: A single invoice.
8960type Invoice struct {
8961	// BudgetInvoiceGroupingId: The budget grouping ID for this invoice.
8962	// This field will only be set if the invoice level of the corresponding
8963	// billing profile was set to "Budget invoice grouping ID".
8964	BudgetInvoiceGroupingId string `json:"budgetInvoiceGroupingId,omitempty"`
8965
8966	// BudgetSummaries: The list of summarized information for each budget
8967	// associated with this invoice. This field will only be set if the
8968	// invoice detail level of the corresponding billing profile was set to
8969	// "Budget level PO".
8970	BudgetSummaries []*BudgetSummary `json:"budgetSummaries,omitempty"`
8971
8972	// CorrectedInvoiceId: The ID of the original invoice being adjusted by
8973	// this invoice, if applicable. May appear on the invoice PDF as
8974	// `Reference invoice number`. If replaced_invoice_ids is set, this
8975	// field will be empty.
8976	CorrectedInvoiceId string `json:"correctedInvoiceId,omitempty"`
8977
8978	// CurrencyCode: The currency used in the invoice in ISO 4217 format.
8979	CurrencyCode string `json:"currencyCode,omitempty"`
8980
8981	// DisplayName: The display name of the invoice.
8982	DisplayName string `json:"displayName,omitempty"`
8983
8984	// DueDate: The date when the invoice is due.
8985	DueDate *Date `json:"dueDate,omitempty"`
8986
8987	// InvoiceId: The unique ID of the invoice.
8988	InvoiceId string `json:"invoiceId,omitempty"`
8989
8990	// InvoiceType: The type of invoice document.
8991	//
8992	// Possible values:
8993	//   "INVOICE_TYPE_UNSPECIFIED" - Not specified or is unknown in this
8994	// version.
8995	//   "INVOICE_TYPE_CREDIT" - The invoice has a negative amount.
8996	//   "INVOICE_TYPE_INVOICE" - The invoice has a positive amount.
8997	InvoiceType string `json:"invoiceType,omitempty"`
8998
8999	// IssueDate: The date when the invoice was issued.
9000	IssueDate *Date `json:"issueDate,omitempty"`
9001
9002	// Name: The resource name of the invoice.
9003	Name string `json:"name,omitempty"`
9004
9005	// NonBudgetMicros: The total amount of costs or adjustments not tied to
9006	// a particular budget, in micros of the invoice's currency. For
9007	// example, if currency_code is `USD`, then 1000000 represents one US
9008	// dollar.
9009	NonBudgetMicros int64 `json:"nonBudgetMicros,omitempty,string"`
9010
9011	// PaymentsAccountId: The ID of the payments account the invoice belongs
9012	// to. Appears on the invoice PDF as `Billing Account Number`.
9013	PaymentsAccountId string `json:"paymentsAccountId,omitempty"`
9014
9015	// PaymentsProfileId: The ID of the payments profile the invoice belongs
9016	// to. Appears on the invoice PDF as `Billing ID`.
9017	PaymentsProfileId string `json:"paymentsProfileId,omitempty"`
9018
9019	// PdfUrl: The URL to download a PDF copy of the invoice. This URL is
9020	// user specific and requires a valid OAuth 2.0 access token to access.
9021	// The access token must be provided in an `Authorization: Bearer` HTTP
9022	// header and be authorized for one of the following scopes: *
9023	// `https://www.googleapis.com/auth/display-video-mediaplanning` *
9024	// `https://www.googleapis.com/auth/display-video` The URL will be valid
9025	// for 7 days after retrieval of this invoice object or until this
9026	// invoice is retrieved again.
9027	PdfUrl string `json:"pdfUrl,omitempty"`
9028
9029	// PurchaseOrderNumber: Purchase order number associated with the
9030	// invoice.
9031	PurchaseOrderNumber string `json:"purchaseOrderNumber,omitempty"`
9032
9033	// ReplacedInvoiceIds: The ID(s) of any originally issued invoice that
9034	// is being cancelled by this invoice, if applicable. Multiple invoices
9035	// may be listed if those invoices are being consolidated into a single
9036	// invoice. May appear on invoice PDF as `Replaced invoice numbers`. If
9037	// corrected_invoice_id is set, this field will be empty.
9038	ReplacedInvoiceIds []string `json:"replacedInvoiceIds,omitempty"`
9039
9040	// ServiceDateRange: The service start and end dates which are covered
9041	// by this invoice.
9042	ServiceDateRange *DateRange `json:"serviceDateRange,omitempty"`
9043
9044	// SubtotalAmountMicros: The pre-tax subtotal amount, in micros of the
9045	// invoice's currency. For example, if currency_code is `USD`, then
9046	// 1000000 represents one US dollar.
9047	SubtotalAmountMicros int64 `json:"subtotalAmountMicros,omitempty,string"`
9048
9049	// TotalAmountMicros: The invoice total amount, in micros of the
9050	// invoice's currency. For example, if currency_code is `USD`, then
9051	// 1000000 represents one US dollar.
9052	TotalAmountMicros int64 `json:"totalAmountMicros,omitempty,string"`
9053
9054	// TotalTaxAmountMicros: The sum of all taxes in invoice, in micros of
9055	// the invoice's currency. For example, if currency_code is `USD`, then
9056	// 1000000 represents one US dollar.
9057	TotalTaxAmountMicros int64 `json:"totalTaxAmountMicros,omitempty,string"`
9058
9059	// ForceSendFields is a list of field names (e.g.
9060	// "BudgetInvoiceGroupingId") to unconditionally include in API
9061	// requests. By default, fields with empty or default values are omitted
9062	// from API requests. However, any non-pointer, non-interface field
9063	// appearing in ForceSendFields will be sent to the server regardless of
9064	// whether the field is empty or not. This may be used to include empty
9065	// fields in Patch requests.
9066	ForceSendFields []string `json:"-"`
9067
9068	// NullFields is a list of field names (e.g. "BudgetInvoiceGroupingId")
9069	// to include in API requests with the JSON null value. By default,
9070	// fields with empty values are omitted from API requests. However, any
9071	// field with an empty value appearing in NullFields will be sent to the
9072	// server as null. It is an error if a field in this list has a
9073	// non-empty value. This may be used to include null fields in Patch
9074	// requests.
9075	NullFields []string `json:"-"`
9076}
9077
9078func (s *Invoice) MarshalJSON() ([]byte, error) {
9079	type NoMethod Invoice
9080	raw := NoMethod(*s)
9081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9082}
9083
9084// KeywordAssignedTargetingOptionDetails: Details for assigned keyword
9085// targeting option. This will be populated in the details field of an
9086// AssignedTargetingOption when targeting_type is
9087// `TARGETING_TYPE_KEYWORD`.
9088type KeywordAssignedTargetingOptionDetails struct {
9089	// Keyword: Required. The keyword, for example `car insurance`. Positive
9090	// keyword cannot be offensive word. Must be UTF-8 encoded with a
9091	// maximum size of 255 bytes. Maximum number of characters is 80.
9092	// Maximum number of words is 10.
9093	Keyword string `json:"keyword,omitempty"`
9094
9095	// Negative: Indicates if this option is being negatively targeted.
9096	Negative bool `json:"negative,omitempty"`
9097
9098	// ForceSendFields is a list of field names (e.g. "Keyword") to
9099	// unconditionally include in API requests. By default, fields with
9100	// empty or default values are omitted from API requests. However, any
9101	// non-pointer, non-interface field appearing in ForceSendFields will be
9102	// sent to the server regardless of whether the field is empty or not.
9103	// This may be used to include empty fields in Patch requests.
9104	ForceSendFields []string `json:"-"`
9105
9106	// NullFields is a list of field names (e.g. "Keyword") to include in
9107	// API requests with the JSON null value. By default, fields with empty
9108	// values are omitted from API requests. However, any field with an
9109	// empty value appearing in NullFields will be sent to the server as
9110	// null. It is an error if a field in this list has a non-empty value.
9111	// This may be used to include null fields in Patch requests.
9112	NullFields []string `json:"-"`
9113}
9114
9115func (s *KeywordAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
9116	type NoMethod KeywordAssignedTargetingOptionDetails
9117	raw := NoMethod(*s)
9118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9119}
9120
9121// LanguageAssignedTargetingOptionDetails: Details for assigned language
9122// targeting option. This will be populated in the details field of an
9123// AssignedTargetingOption when targeting_type is
9124// `TARGETING_TYPE_LANGUAGE`.
9125type LanguageAssignedTargetingOptionDetails struct {
9126	// DisplayName: Output only. The display name of the language (e.g.,
9127	// "French").
9128	DisplayName string `json:"displayName,omitempty"`
9129
9130	// Negative: Indicates if this option is being negatively targeted. All
9131	// assigned language targeting options on the same resource must have
9132	// the same value for this field.
9133	Negative bool `json:"negative,omitempty"`
9134
9135	// TargetingOptionId: Required. The targeting_option_id of a
9136	// TargetingOption of type `TARGETING_TYPE_LANGUAGE`.
9137	TargetingOptionId string `json:"targetingOptionId,omitempty"`
9138
9139	// ForceSendFields is a list of field names (e.g. "DisplayName") to
9140	// unconditionally include in API requests. By default, fields with
9141	// empty or default values are omitted from API requests. However, any
9142	// non-pointer, non-interface field appearing in ForceSendFields will be
9143	// sent to the server regardless of whether the field is empty or not.
9144	// This may be used to include empty fields in Patch requests.
9145	ForceSendFields []string `json:"-"`
9146
9147	// NullFields is a list of field names (e.g. "DisplayName") to include
9148	// in API requests with the JSON null value. By default, fields with
9149	// empty values are omitted from API requests. However, any field with
9150	// an empty value appearing in NullFields will be sent to the server as
9151	// null. It is an error if a field in this list has a non-empty value.
9152	// This may be used to include null fields in Patch requests.
9153	NullFields []string `json:"-"`
9154}
9155
9156func (s *LanguageAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
9157	type NoMethod LanguageAssignedTargetingOptionDetails
9158	raw := NoMethod(*s)
9159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9160}
9161
9162// LanguageTargetingOptionDetails: Represents a targetable language.
9163// This will be populated in the language_details field when
9164// targeting_type is `TARGETING_TYPE_LANGUAGE`.
9165type LanguageTargetingOptionDetails struct {
9166	// DisplayName: Output only. The display name of the language (e.g.,
9167	// "French").
9168	DisplayName string `json:"displayName,omitempty"`
9169
9170	// ForceSendFields is a list of field names (e.g. "DisplayName") to
9171	// unconditionally include in API requests. By default, fields with
9172	// empty or default values are omitted from API requests. However, any
9173	// non-pointer, non-interface field appearing in ForceSendFields will be
9174	// sent to the server regardless of whether the field is empty or not.
9175	// This may be used to include empty fields in Patch requests.
9176	ForceSendFields []string `json:"-"`
9177
9178	// NullFields is a list of field names (e.g. "DisplayName") to include
9179	// in API requests with the JSON null value. By default, fields with
9180	// empty values are omitted from API requests. However, any field with
9181	// an empty value appearing in NullFields will be sent to the server as
9182	// null. It is an error if a field in this list has a non-empty value.
9183	// This may be used to include null fields in Patch requests.
9184	NullFields []string `json:"-"`
9185}
9186
9187func (s *LanguageTargetingOptionDetails) MarshalJSON() ([]byte, error) {
9188	type NoMethod LanguageTargetingOptionDetails
9189	raw := NoMethod(*s)
9190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9191}
9192
9193// LineItem: A single line item.
9194type LineItem struct {
9195	// AdvertiserId: Output only. The unique ID of the advertiser the line
9196	// item belongs to.
9197	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
9198
9199	// BidStrategy: Required. The bidding strategy of the line item.
9200	BidStrategy *BiddingStrategy `json:"bidStrategy,omitempty"`
9201
9202	// Budget: Required. The budget allocation setting of the line item.
9203	Budget *LineItemBudget `json:"budget,omitempty"`
9204
9205	// CampaignId: Output only. The unique ID of the campaign that the line
9206	// item belongs to.
9207	CampaignId int64 `json:"campaignId,omitempty,string"`
9208
9209	// ConversionCounting: The conversion tracking setting of the line item.
9210	ConversionCounting *ConversionCountingConfig `json:"conversionCounting,omitempty"`
9211
9212	// CreativeIds: The IDs of the creatives associated with the line item.
9213	CreativeIds googleapi.Int64s `json:"creativeIds,omitempty"`
9214
9215	// DisplayName: Required. The display name of the line item. Must be
9216	// UTF-8 encoded with a maximum size of 240 bytes.
9217	DisplayName string `json:"displayName,omitempty"`
9218
9219	// EntityStatus: Required. Controls whether or not the line item can
9220	// spend its budget and bid on inventory. * For CreateLineItem method,
9221	// only `ENTITY_STATUS_DRAFT` is allowed. To activate a line item, use
9222	// UpdateLineItem method and update the status to `ENTITY_STATUS_ACTIVE`
9223	// after creation. * A line item cannot be changed back to
9224	// `ENTITY_STATUS_DRAFT` status from any other status. * If the line
9225	// item's parent insertion order is not active, the line item can't
9226	// spend its budget even if its own status is `ENTITY_STATUS_ACTIVE`.
9227	//
9228	// Possible values:
9229	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
9230	// specified or is unknown in this version.
9231	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
9232	// budget.
9233	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
9234	// budget spending are disabled. An entity can be deleted after
9235	// archived. Deleted entities cannot be retrieved.
9236	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
9237	// budget spending are disabled.
9238	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
9239	// the entity.
9240	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
9241	// for deletion.
9242	EntityStatus string `json:"entityStatus,omitempty"`
9243
9244	// Flight: Required. The start and end time of the line item's flight.
9245	Flight *LineItemFlight `json:"flight,omitempty"`
9246
9247	// FrequencyCap: Required. The frequency capping setting of the line
9248	// item.
9249	FrequencyCap *FrequencyCap `json:"frequencyCap,omitempty"`
9250
9251	// InsertionOrderId: Required. Immutable. The unique ID of the insertion
9252	// order that the line item belongs to.
9253	InsertionOrderId int64 `json:"insertionOrderId,omitempty,string"`
9254
9255	// IntegrationDetails: Integration details of the line item.
9256	IntegrationDetails *IntegrationDetails `json:"integrationDetails,omitempty"`
9257
9258	// InventorySourceIds: The IDs of the private inventory sources assigned
9259	// to the line item.
9260	InventorySourceIds googleapi.Int64s `json:"inventorySourceIds,omitempty"`
9261
9262	// LineItemId: Output only. The unique ID of the line item. Assigned by
9263	// the system.
9264	LineItemId int64 `json:"lineItemId,omitempty,string"`
9265
9266	// LineItemType: Required. Immutable. The type of the line item.
9267	//
9268	// Possible values:
9269	//   "LINE_ITEM_TYPE_UNSPECIFIED" - Type value is not specified or is
9270	// unknown in this version.
9271	//   "LINE_ITEM_TYPE_DISPLAY_DEFAULT" - Image, HTML5, native, or rich
9272	// media ads.
9273	//   "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL" - Display ads that
9274	// drive installs of an app.
9275	//   "LINE_ITEM_TYPE_VIDEO_DEFAULT" - Video ads sold on a CPM basis for
9276	// a variety of environments.
9277	//   "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL" - Video ads that drive
9278	// installs of an app.
9279	//   "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INVENTORY" - Display ads served
9280	// on mobile app inventory.
9281	//   "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INVENTORY" - Video ads served on
9282	// mobile app inventory.
9283	//   "LINE_ITEM_TYPE_AUDIO_DEFAULT" - RTB Audio ads sold for a variety
9284	// of environments.
9285	//   "LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP" - Over-the-top ads present in
9286	// OTT insertion orders. This type is only applicable to line items with
9287	// an insertion order of insertion_order_type `OVER_THE_TOP`.
9288	LineItemType string `json:"lineItemType,omitempty"`
9289
9290	// MobileApp: The mobile app promoted by the line item. This is
9291	// applicable only when line_item_type is either
9292	// `LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL` or
9293	// `LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL`.
9294	MobileApp *MobileApp `json:"mobileApp,omitempty"`
9295
9296	// Name: Output only. The resource name of the line item.
9297	Name string `json:"name,omitempty"`
9298
9299	// Pacing: Required. The budget spending speed setting of the line item.
9300	Pacing *Pacing `json:"pacing,omitempty"`
9301
9302	// PartnerCosts: The partner costs associated with the line item. If
9303	// absent or empty in CreateLineItem method, the newly created line item
9304	// will inherit partner costs from its parent insertion order.
9305	PartnerCosts []*PartnerCost `json:"partnerCosts,omitempty"`
9306
9307	// PartnerRevenueModel: Required. The partner revenue model setting of
9308	// the line item.
9309	PartnerRevenueModel *PartnerRevenueModel `json:"partnerRevenueModel,omitempty"`
9310
9311	// TargetingExpansion: The targeting expansion
9312	// (https://support.google.com/displayvideo/answer/10191558) settings of
9313	// the line item. This config is only applicable when eligible audience
9314	// list targeting is assigned to the line item.
9315	TargetingExpansion *TargetingExpansionConfig `json:"targetingExpansion,omitempty"`
9316
9317	// UpdateTime: Output only. The timestamp when the line item was last
9318	// updated. Assigned by the system.
9319	UpdateTime string `json:"updateTime,omitempty"`
9320
9321	// WarningMessages: Output only. The warning messages generated by the
9322	// line item. These warnings do not block saving the line item, but some
9323	// may block the line item from running.
9324	//
9325	// Possible values:
9326	//   "LINE_ITEM_WARNING_MESSAGE_UNSPECIFIED" - Not specified or is
9327	// unknown.
9328	//   "INVALID_FLIGHT_DATES" - This line item has invalid flight dates.
9329	// The line item will not run.
9330	//   "EXPIRED" - This line item's end date is in the past.
9331	//   "PENDING_FLIGHT" - This line item will begin running in the future.
9332	//   "ALL_PARTNER_ENABLED_EXCHANGES_NEGATIVELY_TARGETED" - All partner
9333	// enabled exchanges are negatively targeted. The line item will not
9334	// run.
9335	//   "INVALID_INVENTORY_SOURCE" - No active inventory sources are being
9336	// targeted. The line item will not run.
9337	//   "APP_INVENTORY_INVALID_SITE_TARGETING" - This line item's Apps &
9338	// URLs targeting doesn't include any mobile apps. This line item's type
9339	// requires you to include mobile apps in your channel, sitelist, or
9340	// apps targeting. The line item will not run.
9341	//   "APP_INVENTORY_INVALID_AUDIENCE_LISTS" - This line item isn't
9342	// targeting any mobile users. This line item's type requires you to
9343	// target a user list with mobile users. The line item will not run.
9344	//   "NO_VALID_CREATIVE" - This line item does not contain any valid
9345	// creative. The line item will not run.
9346	//   "PARENT_INSERTION_ORDER_PAUSED" - The insertion order of this line
9347	// item is paused. The line item will not run.
9348	//   "PARENT_INSERTION_ORDER_EXPIRED" - The insertion order of this line
9349	// item has its end date set in the past. The line item will not run.
9350	//   "NO_POSITIVE_AUDIENCE_LIST_TARGETED" - This line item does not
9351	// target any audience lists, which may result in spending your budget
9352	// too quickly.
9353	//   "APP_INSTALL_NO_CONVERSION_PIXEL" - This app install line item does
9354	// not have any conversion pixel set up.
9355	//   "TARGETING_REVOKED_OR_CLOSED_USER_LIST" - This line item targets
9356	// one or more user lists that are no longer available. In the future,
9357	// this will prevent the line item from serving, so consider removing
9358	// these lists from your targeting.
9359	//   "APP_INSTALL_NO_OPTIMAL_BIDDING_STRATEGY" - This app install line
9360	// item does not have an optimal bidding strategy.
9361	//   "CREATIVE_SIZE_NOT_IN_USE_FOR_TARGETED_DEALS" - Deals targeted by
9362	// this line item accept creative sizes which are not in use. This may
9363	// limit the line item's delivery or performance.
9364	//   "NO_CREATIVE_FOR_TARGETED_DEALS" - This line item does not contain
9365	// any creative for the targeted deals.
9366	//   "TARGETING_DEPRECATED_GEO_TARGET" - This line item targets a geo
9367	// target that is deprecated.
9368	WarningMessages []string `json:"warningMessages,omitempty"`
9369
9370	// ServerResponse contains the HTTP response code and headers from the
9371	// server.
9372	googleapi.ServerResponse `json:"-"`
9373
9374	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
9375	// unconditionally include in API requests. By default, fields with
9376	// empty or default values are omitted from API requests. However, any
9377	// non-pointer, non-interface field appearing in ForceSendFields will be
9378	// sent to the server regardless of whether the field is empty or not.
9379	// This may be used to include empty fields in Patch requests.
9380	ForceSendFields []string `json:"-"`
9381
9382	// NullFields is a list of field names (e.g. "AdvertiserId") to include
9383	// in API requests with the JSON null value. By default, fields with
9384	// empty values are omitted from API requests. However, any field with
9385	// an empty value appearing in NullFields will be sent to the server as
9386	// null. It is an error if a field in this list has a non-empty value.
9387	// This may be used to include null fields in Patch requests.
9388	NullFields []string `json:"-"`
9389}
9390
9391func (s *LineItem) MarshalJSON() ([]byte, error) {
9392	type NoMethod LineItem
9393	raw := NoMethod(*s)
9394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9395}
9396
9397// LineItemBudget: Settings that control how budget is allocated.
9398type LineItemBudget struct {
9399	// BudgetAllocationType: Required. The type of the budget allocation.
9400	// `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC` is only applicable when
9401	// automatic budget allocation is enabled for the parent insertion
9402	// order.
9403	//
9404	// Possible values:
9405	//   "LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNSPECIFIED" - Type value is not
9406	// specified or is unknown in this version.
9407	//   "LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC" - Automatic budget
9408	// allocation is enabled for the line item.
9409	//   "LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED" - A fixed max budget
9410	// amount is allocated for the line item.
9411	//   "LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED" - No budget limit is
9412	// applied to the line item.
9413	BudgetAllocationType string `json:"budgetAllocationType,omitempty"`
9414
9415	// BudgetUnit: Output only. The budget unit specifies whether the budget
9416	// is currency based or impression based. This value is inherited from
9417	// the parent insertion order.
9418	//
9419	// Possible values:
9420	//   "BUDGET_UNIT_UNSPECIFIED" - Type value is not specified or is
9421	// unknown in this version.
9422	//   "BUDGET_UNIT_CURRENCY" - Budgeting in currency amounts.
9423	//   "BUDGET_UNIT_IMPRESSIONS" - Budgeting in impression amounts.
9424	BudgetUnit string `json:"budgetUnit,omitempty"`
9425
9426	// MaxAmount: The maximum budget amount the line item will spend. Must
9427	// be greater than 0. When budget_allocation_type is: *
9428	// `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC`, this field is immutable
9429	// and is set by the system. * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED`,
9430	// if budget_unit is: - `BUDGET_UNIT_CURRENCY`, this field represents
9431	// maximum budget amount to spend, in micros of the advertiser's
9432	// currency. For example, 1500000 represents 1.5 standard units of the
9433	// currency. - `BUDGET_UNIT_IMPRESSIONS`, this field represents the
9434	// maximum number of impressions to serve. *
9435	// `LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED`, this field is not
9436	// applicable and will be ignored by the system.
9437	MaxAmount int64 `json:"maxAmount,omitempty,string"`
9438
9439	// ForceSendFields is a list of field names (e.g.
9440	// "BudgetAllocationType") to unconditionally include in API requests.
9441	// By default, fields with empty or default values are omitted from API
9442	// requests. However, any non-pointer, non-interface field appearing in
9443	// ForceSendFields will be sent to the server regardless of whether the
9444	// field is empty or not. This may be used to include empty fields in
9445	// Patch requests.
9446	ForceSendFields []string `json:"-"`
9447
9448	// NullFields is a list of field names (e.g. "BudgetAllocationType") to
9449	// include in API requests with the JSON null value. By default, fields
9450	// with empty values are omitted from API requests. However, any field
9451	// with an empty value appearing in NullFields will be sent to the
9452	// server as null. It is an error if a field in this list has a
9453	// non-empty value. This may be used to include null fields in Patch
9454	// requests.
9455	NullFields []string `json:"-"`
9456}
9457
9458func (s *LineItemBudget) MarshalJSON() ([]byte, error) {
9459	type NoMethod LineItemBudget
9460	raw := NoMethod(*s)
9461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9462}
9463
9464// LineItemFlight: Settings that control the active duration of a line
9465// item.
9466type LineItemFlight struct {
9467	// DateRange: The flight start and end dates of the line item. They are
9468	// resolved relative to the parent advertiser's time zone. * Required
9469	// when flight_date_type is `LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM`. Output
9470	// only otherwise. * When creating a new flight, both `start_date` and
9471	// `end_date` must be in the future. * An existing flight with a
9472	// `start_date` in the past has a mutable `end_date` but an immutable
9473	// `start_date`. * `end_date` must be the `start_date` or later, both
9474	// before the year 2037.
9475	DateRange *DateRange `json:"dateRange,omitempty"`
9476
9477	// FlightDateType: Required. The type of the line item's flight dates.
9478	//
9479	// Possible values:
9480	//   "LINE_ITEM_FLIGHT_DATE_TYPE_UNSPECIFIED" - Type value is not
9481	// specified or is unknown in this version.
9482	//   "LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED" - The line item's flight
9483	// dates are inherited from its parent insertion order.
9484	//   "LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM" - The line item uses its own
9485	// custom flight dates.
9486	//   "LINE_ITEM_FLIGHT_DATE_TYPE_TRIGGER" - The line item uses a
9487	// trigger.
9488	FlightDateType string `json:"flightDateType,omitempty"`
9489
9490	// TriggerId: The ID of the manual trigger associated with the line
9491	// item. * Required when flight_date_type is
9492	// `LINE_ITEM_FLIGHT_DATE_TYPE_TRIGGER`. Must not be set otherwise. *
9493	// When set, the line item's flight dates are inherited from its parent
9494	// insertion order. * Active line items will spend when the selected
9495	// trigger is activated within the parent insertion order's flight
9496	// dates.
9497	TriggerId int64 `json:"triggerId,omitempty,string"`
9498
9499	// ForceSendFields is a list of field names (e.g. "DateRange") to
9500	// unconditionally include in API requests. By default, fields with
9501	// empty or default values are omitted from API requests. However, any
9502	// non-pointer, non-interface field appearing in ForceSendFields will be
9503	// sent to the server regardless of whether the field is empty or not.
9504	// This may be used to include empty fields in Patch requests.
9505	ForceSendFields []string `json:"-"`
9506
9507	// NullFields is a list of field names (e.g. "DateRange") to include in
9508	// API requests with the JSON null value. By default, fields with empty
9509	// values are omitted from API requests. However, any field with an
9510	// empty value appearing in NullFields will be sent to the server as
9511	// null. It is an error if a field in this list has a non-empty value.
9512	// This may be used to include null fields in Patch requests.
9513	NullFields []string `json:"-"`
9514}
9515
9516func (s *LineItemFlight) MarshalJSON() ([]byte, error) {
9517	type NoMethod LineItemFlight
9518	raw := NoMethod(*s)
9519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9520}
9521
9522// ListAdvertiserAssignedTargetingOptionsResponse: Response message for
9523// ListAdvertiserAssignedTargetingOptions.
9524type ListAdvertiserAssignedTargetingOptionsResponse struct {
9525	// AssignedTargetingOptions: The list of assigned targeting options.
9526	// This list will be absent if empty.
9527	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
9528
9529	// NextPageToken: A token identifying the next page of results. This
9530	// value should be specified as the pageToken in a subsequent
9531	// ListAdvertiserAssignedTargetingOptionsRequest to fetch the next page
9532	// of results. This token will be absent if there are no more
9533	// assigned_targeting_options to return.
9534	NextPageToken string `json:"nextPageToken,omitempty"`
9535
9536	// ServerResponse contains the HTTP response code and headers from the
9537	// server.
9538	googleapi.ServerResponse `json:"-"`
9539
9540	// ForceSendFields is a list of field names (e.g.
9541	// "AssignedTargetingOptions") to unconditionally include in API
9542	// requests. By default, fields with empty or default values are omitted
9543	// from API requests. However, any non-pointer, non-interface field
9544	// appearing in ForceSendFields will be sent to the server regardless of
9545	// whether the field is empty or not. This may be used to include empty
9546	// fields in Patch requests.
9547	ForceSendFields []string `json:"-"`
9548
9549	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
9550	// to include in API requests with the JSON null value. By default,
9551	// fields with empty values are omitted from API requests. However, any
9552	// field with an empty value appearing in NullFields will be sent to the
9553	// server as null. It is an error if a field in this list has a
9554	// non-empty value. This may be used to include null fields in Patch
9555	// requests.
9556	NullFields []string `json:"-"`
9557}
9558
9559func (s *ListAdvertiserAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
9560	type NoMethod ListAdvertiserAssignedTargetingOptionsResponse
9561	raw := NoMethod(*s)
9562	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9563}
9564
9565type ListAdvertisersResponse struct {
9566	// Advertisers: The list of advertisers. This list will be absent if
9567	// empty.
9568	Advertisers []*Advertiser `json:"advertisers,omitempty"`
9569
9570	// NextPageToken: A token to retrieve the next page of results. Pass
9571	// this value in the page_token field in the subsequent call to
9572	// `ListAdvertisers` method to retrieve the next page of results.
9573	NextPageToken string `json:"nextPageToken,omitempty"`
9574
9575	// ServerResponse contains the HTTP response code and headers from the
9576	// server.
9577	googleapi.ServerResponse `json:"-"`
9578
9579	// ForceSendFields is a list of field names (e.g. "Advertisers") to
9580	// unconditionally include in API requests. By default, fields with
9581	// empty or default values are omitted from API requests. However, any
9582	// non-pointer, non-interface field appearing in ForceSendFields will be
9583	// sent to the server regardless of whether the field is empty or not.
9584	// This may be used to include empty fields in Patch requests.
9585	ForceSendFields []string `json:"-"`
9586
9587	// NullFields is a list of field names (e.g. "Advertisers") to include
9588	// in API requests with the JSON null value. By default, fields with
9589	// empty values are omitted from API requests. However, any field with
9590	// an empty value appearing in NullFields will be sent to the server as
9591	// null. It is an error if a field in this list has a non-empty value.
9592	// This may be used to include null fields in Patch requests.
9593	NullFields []string `json:"-"`
9594}
9595
9596func (s *ListAdvertisersResponse) MarshalJSON() ([]byte, error) {
9597	type NoMethod ListAdvertisersResponse
9598	raw := NoMethod(*s)
9599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9600}
9601
9602// ListAssignedInventorySourcesResponse: Response message for
9603// AssignedInventorySourceService.ListAssignedInventorySources.
9604type ListAssignedInventorySourcesResponse struct {
9605	// AssignedInventorySources: The list of assigned inventory sources.
9606	// This list will be absent if empty.
9607	AssignedInventorySources []*AssignedInventorySource `json:"assignedInventorySources,omitempty"`
9608
9609	// NextPageToken: A token to retrieve the next page of results. Pass
9610	// this value in the page_token field in the subsequent call to
9611	// `ListAssignedInventorySources` method to retrieve the next page of
9612	// results.
9613	NextPageToken string `json:"nextPageToken,omitempty"`
9614
9615	// ServerResponse contains the HTTP response code and headers from the
9616	// server.
9617	googleapi.ServerResponse `json:"-"`
9618
9619	// ForceSendFields is a list of field names (e.g.
9620	// "AssignedInventorySources") to unconditionally include in API
9621	// requests. By default, fields with empty or default values are omitted
9622	// from API requests. However, any non-pointer, non-interface field
9623	// appearing in ForceSendFields will be sent to the server regardless of
9624	// whether the field is empty or not. This may be used to include empty
9625	// fields in Patch requests.
9626	ForceSendFields []string `json:"-"`
9627
9628	// NullFields is a list of field names (e.g. "AssignedInventorySources")
9629	// to include in API requests with the JSON null value. By default,
9630	// fields with empty values are omitted from API requests. However, any
9631	// field with an empty value appearing in NullFields will be sent to the
9632	// server as null. It is an error if a field in this list has a
9633	// non-empty value. This may be used to include null fields in Patch
9634	// requests.
9635	NullFields []string `json:"-"`
9636}
9637
9638func (s *ListAssignedInventorySourcesResponse) MarshalJSON() ([]byte, error) {
9639	type NoMethod ListAssignedInventorySourcesResponse
9640	raw := NoMethod(*s)
9641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9642}
9643
9644// ListAssignedLocationsResponse: Response message for
9645// AssignedLocationService.ListAssignedLocations.
9646type ListAssignedLocationsResponse struct {
9647	// AssignedLocations: The list of assigned locations. This list will be
9648	// absent if empty.
9649	AssignedLocations []*AssignedLocation `json:"assignedLocations,omitempty"`
9650
9651	// NextPageToken: A token to retrieve the next page of results. Pass
9652	// this value in the page_token field in the subsequent call to
9653	// `ListAssignedLocations` method to retrieve the next page of results.
9654	NextPageToken string `json:"nextPageToken,omitempty"`
9655
9656	// ServerResponse contains the HTTP response code and headers from the
9657	// server.
9658	googleapi.ServerResponse `json:"-"`
9659
9660	// ForceSendFields is a list of field names (e.g. "AssignedLocations")
9661	// to unconditionally include in API requests. By default, fields with
9662	// empty or default values are omitted from API requests. However, any
9663	// non-pointer, non-interface field appearing in ForceSendFields will be
9664	// sent to the server regardless of whether the field is empty or not.
9665	// This may be used to include empty fields in Patch requests.
9666	ForceSendFields []string `json:"-"`
9667
9668	// NullFields is a list of field names (e.g. "AssignedLocations") to
9669	// include in API requests with the JSON null value. By default, fields
9670	// with empty values are omitted from API requests. However, any field
9671	// with an empty value appearing in NullFields will be sent to the
9672	// server as null. It is an error if a field in this list has a
9673	// non-empty value. This may be used to include null fields in Patch
9674	// requests.
9675	NullFields []string `json:"-"`
9676}
9677
9678func (s *ListAssignedLocationsResponse) MarshalJSON() ([]byte, error) {
9679	type NoMethod ListAssignedLocationsResponse
9680	raw := NoMethod(*s)
9681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9682}
9683
9684// ListCampaignAssignedTargetingOptionsResponse: Response message for
9685// ListCampaignAssignedTargetingOptions.
9686type ListCampaignAssignedTargetingOptionsResponse struct {
9687	// AssignedTargetingOptions: The list of assigned targeting options.
9688	// This list will be absent if empty.
9689	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
9690
9691	// NextPageToken: A token identifying the next page of results. This
9692	// value should be specified as the pageToken in a subsequent
9693	// ListCampaignAssignedTargetingOptionsRequest to fetch the next page of
9694	// results. This token will be absent if there are no more
9695	// assigned_targeting_options to return.
9696	NextPageToken string `json:"nextPageToken,omitempty"`
9697
9698	// ServerResponse contains the HTTP response code and headers from the
9699	// server.
9700	googleapi.ServerResponse `json:"-"`
9701
9702	// ForceSendFields is a list of field names (e.g.
9703	// "AssignedTargetingOptions") to unconditionally include in API
9704	// requests. By default, fields with empty or default values are omitted
9705	// from API requests. However, any non-pointer, non-interface field
9706	// appearing in ForceSendFields will be sent to the server regardless of
9707	// whether the field is empty or not. This may be used to include empty
9708	// fields in Patch requests.
9709	ForceSendFields []string `json:"-"`
9710
9711	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
9712	// to include in API requests with the JSON null value. By default,
9713	// fields with empty values are omitted from API requests. However, any
9714	// field with an empty value appearing in NullFields will be sent to the
9715	// server as null. It is an error if a field in this list has a
9716	// non-empty value. This may be used to include null fields in Patch
9717	// requests.
9718	NullFields []string `json:"-"`
9719}
9720
9721func (s *ListCampaignAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
9722	type NoMethod ListCampaignAssignedTargetingOptionsResponse
9723	raw := NoMethod(*s)
9724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9725}
9726
9727type ListCampaignsResponse struct {
9728	// Campaigns: The list of campaigns. This list will be absent if empty.
9729	Campaigns []*Campaign `json:"campaigns,omitempty"`
9730
9731	// NextPageToken: A token to retrieve the next page of results. Pass
9732	// this value in the page_token field in the subsequent call to
9733	// `ListCampaigns` method to retrieve the next page of results.
9734	NextPageToken string `json:"nextPageToken,omitempty"`
9735
9736	// ServerResponse contains the HTTP response code and headers from the
9737	// server.
9738	googleapi.ServerResponse `json:"-"`
9739
9740	// ForceSendFields is a list of field names (e.g. "Campaigns") to
9741	// unconditionally include in API requests. By default, fields with
9742	// empty or default values are omitted from API requests. However, any
9743	// non-pointer, non-interface field appearing in ForceSendFields will be
9744	// sent to the server regardless of whether the field is empty or not.
9745	// This may be used to include empty fields in Patch requests.
9746	ForceSendFields []string `json:"-"`
9747
9748	// NullFields is a list of field names (e.g. "Campaigns") to include in
9749	// API requests with the JSON null value. By default, fields with empty
9750	// values are omitted from API requests. However, any field with an
9751	// empty value appearing in NullFields will be sent to the server as
9752	// null. It is an error if a field in this list has a non-empty value.
9753	// This may be used to include null fields in Patch requests.
9754	NullFields []string `json:"-"`
9755}
9756
9757func (s *ListCampaignsResponse) MarshalJSON() ([]byte, error) {
9758	type NoMethod ListCampaignsResponse
9759	raw := NoMethod(*s)
9760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9761}
9762
9763type ListChannelsResponse struct {
9764	// Channels: The list of channels. This list will be absent if empty.
9765	Channels []*Channel `json:"channels,omitempty"`
9766
9767	// NextPageToken: A token to retrieve the next page of results. Pass
9768	// this value in the page_token field in the subsequent call to
9769	// `ListChannels` method to retrieve the next page of results.
9770	NextPageToken string `json:"nextPageToken,omitempty"`
9771
9772	// ServerResponse contains the HTTP response code and headers from the
9773	// server.
9774	googleapi.ServerResponse `json:"-"`
9775
9776	// ForceSendFields is a list of field names (e.g. "Channels") to
9777	// unconditionally include in API requests. By default, fields with
9778	// empty or default values are omitted from API requests. However, any
9779	// non-pointer, non-interface field appearing in ForceSendFields will be
9780	// sent to the server regardless of whether the field is empty or not.
9781	// This may be used to include empty fields in Patch requests.
9782	ForceSendFields []string `json:"-"`
9783
9784	// NullFields is a list of field names (e.g. "Channels") to include in
9785	// API requests with the JSON null value. By default, fields with empty
9786	// values are omitted from API requests. However, any field with an
9787	// empty value appearing in NullFields will be sent to the server as
9788	// null. It is an error if a field in this list has a non-empty value.
9789	// This may be used to include null fields in Patch requests.
9790	NullFields []string `json:"-"`
9791}
9792
9793func (s *ListChannelsResponse) MarshalJSON() ([]byte, error) {
9794	type NoMethod ListChannelsResponse
9795	raw := NoMethod(*s)
9796	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9797}
9798
9799type ListCombinedAudiencesResponse struct {
9800	// CombinedAudiences: The list of combined audiences. This list will be
9801	// absent if empty.
9802	CombinedAudiences []*CombinedAudience `json:"combinedAudiences,omitempty"`
9803
9804	// NextPageToken: A token to retrieve the next page of results. Pass
9805	// this value in the page_token field in the subsequent call to
9806	// `ListCombinedAudiences` method to retrieve the next page of results.
9807	NextPageToken string `json:"nextPageToken,omitempty"`
9808
9809	// ServerResponse contains the HTTP response code and headers from the
9810	// server.
9811	googleapi.ServerResponse `json:"-"`
9812
9813	// ForceSendFields is a list of field names (e.g. "CombinedAudiences")
9814	// to unconditionally include in API requests. By default, fields with
9815	// empty or default values are omitted from API requests. However, any
9816	// non-pointer, non-interface field appearing in ForceSendFields will be
9817	// sent to the server regardless of whether the field is empty or not.
9818	// This may be used to include empty fields in Patch requests.
9819	ForceSendFields []string `json:"-"`
9820
9821	// NullFields is a list of field names (e.g. "CombinedAudiences") to
9822	// include in API requests with the JSON null value. By default, fields
9823	// with empty values are omitted from API requests. However, any field
9824	// with an empty value appearing in NullFields will be sent to the
9825	// server as null. It is an error if a field in this list has a
9826	// non-empty value. This may be used to include null fields in Patch
9827	// requests.
9828	NullFields []string `json:"-"`
9829}
9830
9831func (s *ListCombinedAudiencesResponse) MarshalJSON() ([]byte, error) {
9832	type NoMethod ListCombinedAudiencesResponse
9833	raw := NoMethod(*s)
9834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9835}
9836
9837type ListCreativesResponse struct {
9838	// Creatives: The list of creatives. This list will be absent if empty.
9839	Creatives []*Creative `json:"creatives,omitempty"`
9840
9841	// NextPageToken: A token to retrieve the next page of results. Pass
9842	// this value in the page_token field in the subsequent call to
9843	// `ListCreativesRequest` method to retrieve the next page of results.
9844	// If this field is null, it means this is the last page.
9845	NextPageToken string `json:"nextPageToken,omitempty"`
9846
9847	// ServerResponse contains the HTTP response code and headers from the
9848	// server.
9849	googleapi.ServerResponse `json:"-"`
9850
9851	// ForceSendFields is a list of field names (e.g. "Creatives") to
9852	// unconditionally include in API requests. By default, fields with
9853	// empty or default values are omitted from API requests. However, any
9854	// non-pointer, non-interface field appearing in ForceSendFields will be
9855	// sent to the server regardless of whether the field is empty or not.
9856	// This may be used to include empty fields in Patch requests.
9857	ForceSendFields []string `json:"-"`
9858
9859	// NullFields is a list of field names (e.g. "Creatives") to include in
9860	// API requests with the JSON null value. By default, fields with empty
9861	// values are omitted from API requests. However, any field with an
9862	// empty value appearing in NullFields will be sent to the server as
9863	// null. It is an error if a field in this list has a non-empty value.
9864	// This may be used to include null fields in Patch requests.
9865	NullFields []string `json:"-"`
9866}
9867
9868func (s *ListCreativesResponse) MarshalJSON() ([]byte, error) {
9869	type NoMethod ListCreativesResponse
9870	raw := NoMethod(*s)
9871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9872}
9873
9874type ListCustomBiddingAlgorithmsResponse struct {
9875	// CustomBiddingAlgorithms: The list of custom bidding algorithms. This
9876	// list will be absent if empty.
9877	CustomBiddingAlgorithms []*CustomBiddingAlgorithm `json:"customBiddingAlgorithms,omitempty"`
9878
9879	// NextPageToken: A token to retrieve the next page of results. Pass
9880	// this value in the page_token field in the subsequent call to
9881	// `ListCustomBiddingAlgorithmsRequest` method to retrieve the next page
9882	// of results. If this field is null, it means this is the last page.
9883	NextPageToken string `json:"nextPageToken,omitempty"`
9884
9885	// ServerResponse contains the HTTP response code and headers from the
9886	// server.
9887	googleapi.ServerResponse `json:"-"`
9888
9889	// ForceSendFields is a list of field names (e.g.
9890	// "CustomBiddingAlgorithms") to unconditionally include in API
9891	// requests. By default, fields with empty or default values are omitted
9892	// from API requests. However, any non-pointer, non-interface field
9893	// appearing in ForceSendFields will be sent to the server regardless of
9894	// whether the field is empty or not. This may be used to include empty
9895	// fields in Patch requests.
9896	ForceSendFields []string `json:"-"`
9897
9898	// NullFields is a list of field names (e.g. "CustomBiddingAlgorithms")
9899	// to include in API requests with the JSON null value. By default,
9900	// fields with empty values are omitted from API requests. However, any
9901	// field with an empty value appearing in NullFields will be sent to the
9902	// server as null. It is an error if a field in this list has a
9903	// non-empty value. This may be used to include null fields in Patch
9904	// requests.
9905	NullFields []string `json:"-"`
9906}
9907
9908func (s *ListCustomBiddingAlgorithmsResponse) MarshalJSON() ([]byte, error) {
9909	type NoMethod ListCustomBiddingAlgorithmsResponse
9910	raw := NoMethod(*s)
9911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9912}
9913
9914type ListCustomListsResponse struct {
9915	// CustomLists: The list of custom lists. This list will be absent if
9916	// empty.
9917	CustomLists []*CustomList `json:"customLists,omitempty"`
9918
9919	// NextPageToken: A token to retrieve the next page of results. Pass
9920	// this value in the page_token field in the subsequent call to
9921	// `ListCustomLists` method to retrieve the next page of results.
9922	NextPageToken string `json:"nextPageToken,omitempty"`
9923
9924	// ServerResponse contains the HTTP response code and headers from the
9925	// server.
9926	googleapi.ServerResponse `json:"-"`
9927
9928	// ForceSendFields is a list of field names (e.g. "CustomLists") to
9929	// unconditionally include in API requests. By default, fields with
9930	// empty or default values are omitted from API requests. However, any
9931	// non-pointer, non-interface field appearing in ForceSendFields will be
9932	// sent to the server regardless of whether the field is empty or not.
9933	// This may be used to include empty fields in Patch requests.
9934	ForceSendFields []string `json:"-"`
9935
9936	// NullFields is a list of field names (e.g. "CustomLists") to include
9937	// in API requests with the JSON null value. By default, fields with
9938	// empty values are omitted from API requests. However, any field with
9939	// an empty value appearing in NullFields will be sent to the server as
9940	// null. It is an error if a field in this list has a non-empty value.
9941	// This may be used to include null fields in Patch requests.
9942	NullFields []string `json:"-"`
9943}
9944
9945func (s *ListCustomListsResponse) MarshalJSON() ([]byte, error) {
9946	type NoMethod ListCustomListsResponse
9947	raw := NoMethod(*s)
9948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9949}
9950
9951type ListFirstAndThirdPartyAudiencesResponse struct {
9952	// FirstAndThirdPartyAudiences: The list of first and third party
9953	// audiences. Audience size properties will not be included. This list
9954	// will be absent if empty.
9955	FirstAndThirdPartyAudiences []*FirstAndThirdPartyAudience `json:"firstAndThirdPartyAudiences,omitempty"`
9956
9957	// NextPageToken: A token to retrieve the next page of results. Pass
9958	// this value in the page_token field in the subsequent call to
9959	// `ListFirstAndThirdPartyAudiences` method to retrieve the next page of
9960	// results.
9961	NextPageToken string `json:"nextPageToken,omitempty"`
9962
9963	// ServerResponse contains the HTTP response code and headers from the
9964	// server.
9965	googleapi.ServerResponse `json:"-"`
9966
9967	// ForceSendFields is a list of field names (e.g.
9968	// "FirstAndThirdPartyAudiences") to unconditionally include in API
9969	// requests. By default, fields with empty or default values are omitted
9970	// from API requests. However, any non-pointer, non-interface field
9971	// appearing in ForceSendFields will be sent to the server regardless of
9972	// whether the field is empty or not. This may be used to include empty
9973	// fields in Patch requests.
9974	ForceSendFields []string `json:"-"`
9975
9976	// NullFields is a list of field names (e.g.
9977	// "FirstAndThirdPartyAudiences") to include in API requests with the
9978	// JSON null value. By default, fields with empty values are omitted
9979	// from API requests. However, any field with an empty value appearing
9980	// in NullFields will be sent to the server as null. It is an error if a
9981	// field in this list has a non-empty value. This may be used to include
9982	// null fields in Patch requests.
9983	NullFields []string `json:"-"`
9984}
9985
9986func (s *ListFirstAndThirdPartyAudiencesResponse) MarshalJSON() ([]byte, error) {
9987	type NoMethod ListFirstAndThirdPartyAudiencesResponse
9988	raw := NoMethod(*s)
9989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9990}
9991
9992type ListGoogleAudiencesResponse struct {
9993	// GoogleAudiences: The list of Google audiences. This list will be
9994	// absent if empty.
9995	GoogleAudiences []*GoogleAudience `json:"googleAudiences,omitempty"`
9996
9997	// NextPageToken: A token to retrieve the next page of results. Pass
9998	// this value in the page_token field in the subsequent call to
9999	// `ListGoogleAudiences` method to retrieve the next page of results.
10000	NextPageToken string `json:"nextPageToken,omitempty"`
10001
10002	// ServerResponse contains the HTTP response code and headers from the
10003	// server.
10004	googleapi.ServerResponse `json:"-"`
10005
10006	// ForceSendFields is a list of field names (e.g. "GoogleAudiences") to
10007	// unconditionally include in API requests. By default, fields with
10008	// empty or default values are omitted from API requests. However, any
10009	// non-pointer, non-interface field appearing in ForceSendFields will be
10010	// sent to the server regardless of whether the field is empty or not.
10011	// This may be used to include empty fields in Patch requests.
10012	ForceSendFields []string `json:"-"`
10013
10014	// NullFields is a list of field names (e.g. "GoogleAudiences") to
10015	// include in API requests with the JSON null value. By default, fields
10016	// with empty values are omitted from API requests. However, any field
10017	// with an empty value appearing in NullFields will be sent to the
10018	// server as null. It is an error if a field in this list has a
10019	// non-empty value. This may be used to include null fields in Patch
10020	// requests.
10021	NullFields []string `json:"-"`
10022}
10023
10024func (s *ListGoogleAudiencesResponse) MarshalJSON() ([]byte, error) {
10025	type NoMethod ListGoogleAudiencesResponse
10026	raw := NoMethod(*s)
10027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10028}
10029
10030// ListInsertionOrderAssignedTargetingOptionsResponse: Response message
10031// for ListInsertionOrderAssignedTargetingOptions.
10032type ListInsertionOrderAssignedTargetingOptionsResponse struct {
10033	// AssignedTargetingOptions: The list of assigned targeting options.
10034	// This list will be absent if empty.
10035	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
10036
10037	// NextPageToken: A token identifying the next page of results. This
10038	// value should be specified as the pageToken in a subsequent
10039	// ListInsertionOrderAssignedTargetingOptionsRequest to fetch the next
10040	// page of results. This token will be absent if there are no more
10041	// assigned_targeting_options to return.
10042	NextPageToken string `json:"nextPageToken,omitempty"`
10043
10044	// ServerResponse contains the HTTP response code and headers from the
10045	// server.
10046	googleapi.ServerResponse `json:"-"`
10047
10048	// ForceSendFields is a list of field names (e.g.
10049	// "AssignedTargetingOptions") to unconditionally include in API
10050	// requests. By default, fields with empty or default values are omitted
10051	// from API requests. However, any non-pointer, non-interface field
10052	// appearing in ForceSendFields will be sent to the server regardless of
10053	// whether the field is empty or not. This may be used to include empty
10054	// fields in Patch requests.
10055	ForceSendFields []string `json:"-"`
10056
10057	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
10058	// to include in API requests with the JSON null value. By default,
10059	// fields with empty values are omitted from API requests. However, any
10060	// field with an empty value appearing in NullFields will be sent to the
10061	// server as null. It is an error if a field in this list has a
10062	// non-empty value. This may be used to include null fields in Patch
10063	// requests.
10064	NullFields []string `json:"-"`
10065}
10066
10067func (s *ListInsertionOrderAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
10068	type NoMethod ListInsertionOrderAssignedTargetingOptionsResponse
10069	raw := NoMethod(*s)
10070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10071}
10072
10073type ListInsertionOrdersResponse struct {
10074	// InsertionOrders: The list of insertion orders. This list will be
10075	// absent if empty.
10076	InsertionOrders []*InsertionOrder `json:"insertionOrders,omitempty"`
10077
10078	// NextPageToken: A token to retrieve the next page of results. Pass
10079	// this value in the page_token field in the subsequent call to
10080	// `ListInsertionOrders` method to retrieve the next page of results.
10081	NextPageToken string `json:"nextPageToken,omitempty"`
10082
10083	// ServerResponse contains the HTTP response code and headers from the
10084	// server.
10085	googleapi.ServerResponse `json:"-"`
10086
10087	// ForceSendFields is a list of field names (e.g. "InsertionOrders") to
10088	// unconditionally include in API requests. By default, fields with
10089	// empty or default values are omitted from API requests. However, any
10090	// non-pointer, non-interface field appearing in ForceSendFields will be
10091	// sent to the server regardless of whether the field is empty or not.
10092	// This may be used to include empty fields in Patch requests.
10093	ForceSendFields []string `json:"-"`
10094
10095	// NullFields is a list of field names (e.g. "InsertionOrders") to
10096	// include in API requests with the JSON null value. By default, fields
10097	// with empty values are omitted from API requests. However, any field
10098	// with an empty value appearing in NullFields will be sent to the
10099	// server as null. It is an error if a field in this list has a
10100	// non-empty value. This may be used to include null fields in Patch
10101	// requests.
10102	NullFields []string `json:"-"`
10103}
10104
10105func (s *ListInsertionOrdersResponse) MarshalJSON() ([]byte, error) {
10106	type NoMethod ListInsertionOrdersResponse
10107	raw := NoMethod(*s)
10108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10109}
10110
10111// ListInventorySourceGroupsResponse: Response message for
10112// InventorySourceGroupService.ListInventorySourceGroups.
10113type ListInventorySourceGroupsResponse struct {
10114	// InventorySourceGroups: The list of inventory source groups. This list
10115	// will be absent if empty.
10116	InventorySourceGroups []*InventorySourceGroup `json:"inventorySourceGroups,omitempty"`
10117
10118	// NextPageToken: A token to retrieve the next page of results. Pass
10119	// this value in the page_token field in the subsequent call to
10120	// `ListInventorySourceGroups` method to retrieve the next page of
10121	// results.
10122	NextPageToken string `json:"nextPageToken,omitempty"`
10123
10124	// ServerResponse contains the HTTP response code and headers from the
10125	// server.
10126	googleapi.ServerResponse `json:"-"`
10127
10128	// ForceSendFields is a list of field names (e.g.
10129	// "InventorySourceGroups") to unconditionally include in API requests.
10130	// By default, fields with empty or default values are omitted from API
10131	// requests. However, any non-pointer, non-interface field appearing in
10132	// ForceSendFields will be sent to the server regardless of whether the
10133	// field is empty or not. This may be used to include empty fields in
10134	// Patch requests.
10135	ForceSendFields []string `json:"-"`
10136
10137	// NullFields is a list of field names (e.g. "InventorySourceGroups") to
10138	// include in API requests with the JSON null value. By default, fields
10139	// with empty values are omitted from API requests. However, any field
10140	// with an empty value appearing in NullFields will be sent to the
10141	// server as null. It is an error if a field in this list has a
10142	// non-empty value. This may be used to include null fields in Patch
10143	// requests.
10144	NullFields []string `json:"-"`
10145}
10146
10147func (s *ListInventorySourceGroupsResponse) MarshalJSON() ([]byte, error) {
10148	type NoMethod ListInventorySourceGroupsResponse
10149	raw := NoMethod(*s)
10150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10151}
10152
10153type ListInventorySourcesResponse struct {
10154	// InventorySources: The list of inventory sources. This list will be
10155	// absent if empty.
10156	InventorySources []*InventorySource `json:"inventorySources,omitempty"`
10157
10158	// NextPageToken: A token to retrieve the next page of results. Pass
10159	// this value in the page_token field in the subsequent call to
10160	// `ListInventorySources` method to retrieve the next page of results.
10161	NextPageToken string `json:"nextPageToken,omitempty"`
10162
10163	// ServerResponse contains the HTTP response code and headers from the
10164	// server.
10165	googleapi.ServerResponse `json:"-"`
10166
10167	// ForceSendFields is a list of field names (e.g. "InventorySources") to
10168	// unconditionally include in API requests. By default, fields with
10169	// empty or default values are omitted from API requests. However, any
10170	// non-pointer, non-interface field appearing in ForceSendFields will be
10171	// sent to the server regardless of whether the field is empty or not.
10172	// This may be used to include empty fields in Patch requests.
10173	ForceSendFields []string `json:"-"`
10174
10175	// NullFields is a list of field names (e.g. "InventorySources") to
10176	// include in API requests with the JSON null value. By default, fields
10177	// with empty values are omitted from API requests. However, any field
10178	// with an empty value appearing in NullFields will be sent to the
10179	// server as null. It is an error if a field in this list has a
10180	// non-empty value. This may be used to include null fields in Patch
10181	// requests.
10182	NullFields []string `json:"-"`
10183}
10184
10185func (s *ListInventorySourcesResponse) MarshalJSON() ([]byte, error) {
10186	type NoMethod ListInventorySourcesResponse
10187	raw := NoMethod(*s)
10188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10189}
10190
10191type ListInvoicesResponse struct {
10192	// Invoices: The list of invoices. This list will be absent if empty.
10193	Invoices []*Invoice `json:"invoices,omitempty"`
10194
10195	// NextPageToken: A token to retrieve the next page of results. Pass
10196	// this value in the page_token field in the subsequent call to
10197	// `ListInvoices` method to retrieve the next page of results. This
10198	// token will be absent if there are no more invoices to return.
10199	NextPageToken string `json:"nextPageToken,omitempty"`
10200
10201	// ServerResponse contains the HTTP response code and headers from the
10202	// server.
10203	googleapi.ServerResponse `json:"-"`
10204
10205	// ForceSendFields is a list of field names (e.g. "Invoices") to
10206	// unconditionally include in API requests. By default, fields with
10207	// empty or default values are omitted from API requests. However, any
10208	// non-pointer, non-interface field appearing in ForceSendFields will be
10209	// sent to the server regardless of whether the field is empty or not.
10210	// This may be used to include empty fields in Patch requests.
10211	ForceSendFields []string `json:"-"`
10212
10213	// NullFields is a list of field names (e.g. "Invoices") to include in
10214	// API requests with the JSON null value. By default, fields with empty
10215	// values are omitted from API requests. However, any field with an
10216	// empty value appearing in NullFields will be sent to the server as
10217	// null. It is an error if a field in this list has a non-empty value.
10218	// This may be used to include null fields in Patch requests.
10219	NullFields []string `json:"-"`
10220}
10221
10222func (s *ListInvoicesResponse) MarshalJSON() ([]byte, error) {
10223	type NoMethod ListInvoicesResponse
10224	raw := NoMethod(*s)
10225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10226}
10227
10228// ListLineItemAssignedTargetingOptionsResponse: Response message for
10229// ListLineItemAssignedTargetingOptions.
10230type ListLineItemAssignedTargetingOptionsResponse struct {
10231	// AssignedTargetingOptions: The list of assigned targeting options.
10232	// This list will be absent if empty.
10233	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
10234
10235	// NextPageToken: A token identifying the next page of results. This
10236	// value should be specified as the pageToken in a subsequent
10237	// ListLineItemAssignedTargetingOptionsRequest to fetch the next page of
10238	// results. This token will be absent if there are no more
10239	// assigned_targeting_options to return.
10240	NextPageToken string `json:"nextPageToken,omitempty"`
10241
10242	// ServerResponse contains the HTTP response code and headers from the
10243	// server.
10244	googleapi.ServerResponse `json:"-"`
10245
10246	// ForceSendFields is a list of field names (e.g.
10247	// "AssignedTargetingOptions") to unconditionally include in API
10248	// requests. By default, fields with empty or default values are omitted
10249	// from API requests. However, any non-pointer, non-interface field
10250	// appearing in ForceSendFields will be sent to the server regardless of
10251	// whether the field is empty or not. This may be used to include empty
10252	// fields in Patch requests.
10253	ForceSendFields []string `json:"-"`
10254
10255	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
10256	// to include in API requests with the JSON null value. By default,
10257	// fields with empty values are omitted from API requests. However, any
10258	// field with an empty value appearing in NullFields will be sent to the
10259	// server as null. It is an error if a field in this list has a
10260	// non-empty value. This may be used to include null fields in Patch
10261	// requests.
10262	NullFields []string `json:"-"`
10263}
10264
10265func (s *ListLineItemAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
10266	type NoMethod ListLineItemAssignedTargetingOptionsResponse
10267	raw := NoMethod(*s)
10268	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10269}
10270
10271type ListLineItemsResponse struct {
10272	// LineItems: The list of line items. This list will be absent if empty.
10273	LineItems []*LineItem `json:"lineItems,omitempty"`
10274
10275	// NextPageToken: A token to retrieve the next page of results. Pass
10276	// this value in the page_token field in the subsequent call to
10277	// `ListLineItems` method to retrieve the next page of results.
10278	NextPageToken string `json:"nextPageToken,omitempty"`
10279
10280	// ServerResponse contains the HTTP response code and headers from the
10281	// server.
10282	googleapi.ServerResponse `json:"-"`
10283
10284	// ForceSendFields is a list of field names (e.g. "LineItems") to
10285	// unconditionally include in API requests. By default, fields with
10286	// empty or default values are omitted from API requests. However, any
10287	// non-pointer, non-interface field appearing in ForceSendFields will be
10288	// sent to the server regardless of whether the field is empty or not.
10289	// This may be used to include empty fields in Patch requests.
10290	ForceSendFields []string `json:"-"`
10291
10292	// NullFields is a list of field names (e.g. "LineItems") to include in
10293	// API requests with the JSON null value. By default, fields with empty
10294	// values are omitted from API requests. However, any field with an
10295	// empty value appearing in NullFields will be sent to the server as
10296	// null. It is an error if a field in this list has a non-empty value.
10297	// This may be used to include null fields in Patch requests.
10298	NullFields []string `json:"-"`
10299}
10300
10301func (s *ListLineItemsResponse) MarshalJSON() ([]byte, error) {
10302	type NoMethod ListLineItemsResponse
10303	raw := NoMethod(*s)
10304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10305}
10306
10307type ListLocationListsResponse struct {
10308	// LocationLists: The list of location lists. This list will be absent
10309	// if empty.
10310	LocationLists []*LocationList `json:"locationLists,omitempty"`
10311
10312	// NextPageToken: A token to retrieve the next page of results. Pass
10313	// this value in the page_token field in the subsequent call to
10314	// `ListLocationLists` method to retrieve the next page of results.
10315	NextPageToken string `json:"nextPageToken,omitempty"`
10316
10317	// ServerResponse contains the HTTP response code and headers from the
10318	// server.
10319	googleapi.ServerResponse `json:"-"`
10320
10321	// ForceSendFields is a list of field names (e.g. "LocationLists") to
10322	// unconditionally include in API requests. By default, fields with
10323	// empty or default values are omitted from API requests. However, any
10324	// non-pointer, non-interface field appearing in ForceSendFields will be
10325	// sent to the server regardless of whether the field is empty or not.
10326	// This may be used to include empty fields in Patch requests.
10327	ForceSendFields []string `json:"-"`
10328
10329	// NullFields is a list of field names (e.g. "LocationLists") to include
10330	// in API requests with the JSON null value. By default, fields with
10331	// empty values are omitted from API requests. However, any field with
10332	// an empty value appearing in NullFields will be sent to the server as
10333	// null. It is an error if a field in this list has a non-empty value.
10334	// This may be used to include null fields in Patch requests.
10335	NullFields []string `json:"-"`
10336}
10337
10338func (s *ListLocationListsResponse) MarshalJSON() ([]byte, error) {
10339	type NoMethod ListLocationListsResponse
10340	raw := NoMethod(*s)
10341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10342}
10343
10344type ListManualTriggersResponse struct {
10345	// ManualTriggers: The list of manual triggers. This list will be absent
10346	// if empty.
10347	ManualTriggers []*ManualTrigger `json:"manualTriggers,omitempty"`
10348
10349	// NextPageToken: A token to retrieve the next page of results. Pass
10350	// this value in the page_token field in the subsequent call to
10351	// `ListManualTriggers` method to retrieve the next page of results.
10352	NextPageToken string `json:"nextPageToken,omitempty"`
10353
10354	// ServerResponse contains the HTTP response code and headers from the
10355	// server.
10356	googleapi.ServerResponse `json:"-"`
10357
10358	// ForceSendFields is a list of field names (e.g. "ManualTriggers") to
10359	// unconditionally include in API requests. By default, fields with
10360	// empty or default values are omitted from API requests. However, any
10361	// non-pointer, non-interface field appearing in ForceSendFields will be
10362	// sent to the server regardless of whether the field is empty or not.
10363	// This may be used to include empty fields in Patch requests.
10364	ForceSendFields []string `json:"-"`
10365
10366	// NullFields is a list of field names (e.g. "ManualTriggers") to
10367	// include in API requests with the JSON null value. By default, fields
10368	// with empty values are omitted from API requests. However, any field
10369	// with an empty value appearing in NullFields will be sent to the
10370	// server as null. It is an error if a field in this list has a
10371	// non-empty value. This may be used to include null fields in Patch
10372	// requests.
10373	NullFields []string `json:"-"`
10374}
10375
10376func (s *ListManualTriggersResponse) MarshalJSON() ([]byte, error) {
10377	type NoMethod ListManualTriggersResponse
10378	raw := NoMethod(*s)
10379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10380}
10381
10382// ListNegativeKeywordListsResponse: Response message for
10383// NegativeKeywordListService.ListNegativeKeywordLists.
10384type ListNegativeKeywordListsResponse struct {
10385	// NegativeKeywordLists: The list of negative keyword lists. This list
10386	// will be absent if empty.
10387	NegativeKeywordLists []*NegativeKeywordList `json:"negativeKeywordLists,omitempty"`
10388
10389	// NextPageToken: A token to retrieve the next page of results. Pass
10390	// this value in the page_token field in the subsequent call to
10391	// `ListNegativeKeywordLists` method to retrieve the next page of
10392	// results.
10393	NextPageToken string `json:"nextPageToken,omitempty"`
10394
10395	// ServerResponse contains the HTTP response code and headers from the
10396	// server.
10397	googleapi.ServerResponse `json:"-"`
10398
10399	// ForceSendFields is a list of field names (e.g.
10400	// "NegativeKeywordLists") to unconditionally include in API requests.
10401	// By default, fields with empty or default values are omitted from API
10402	// requests. However, any non-pointer, non-interface field appearing in
10403	// ForceSendFields will be sent to the server regardless of whether the
10404	// field is empty or not. This may be used to include empty fields in
10405	// Patch requests.
10406	ForceSendFields []string `json:"-"`
10407
10408	// NullFields is a list of field names (e.g. "NegativeKeywordLists") to
10409	// include in API requests with the JSON null value. By default, fields
10410	// with empty values are omitted from API requests. However, any field
10411	// with an empty value appearing in NullFields will be sent to the
10412	// server as null. It is an error if a field in this list has a
10413	// non-empty value. This may be used to include null fields in Patch
10414	// requests.
10415	NullFields []string `json:"-"`
10416}
10417
10418func (s *ListNegativeKeywordListsResponse) MarshalJSON() ([]byte, error) {
10419	type NoMethod ListNegativeKeywordListsResponse
10420	raw := NoMethod(*s)
10421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10422}
10423
10424// ListNegativeKeywordsResponse: Response message for
10425// NegativeKeywordService.ListNegativeKeywords.
10426type ListNegativeKeywordsResponse struct {
10427	// NegativeKeywords: The list of negative keywords. This list will be
10428	// absent if empty.
10429	NegativeKeywords []*NegativeKeyword `json:"negativeKeywords,omitempty"`
10430
10431	// NextPageToken: A token to retrieve the next page of results. Pass
10432	// this value in the page_token field in the subsequent call to
10433	// `ListNegativeKeywords` method to retrieve the next page of results.
10434	NextPageToken string `json:"nextPageToken,omitempty"`
10435
10436	// ServerResponse contains the HTTP response code and headers from the
10437	// server.
10438	googleapi.ServerResponse `json:"-"`
10439
10440	// ForceSendFields is a list of field names (e.g. "NegativeKeywords") to
10441	// unconditionally include in API requests. By default, fields with
10442	// empty or default values are omitted from API requests. However, any
10443	// non-pointer, non-interface field appearing in ForceSendFields will be
10444	// sent to the server regardless of whether the field is empty or not.
10445	// This may be used to include empty fields in Patch requests.
10446	ForceSendFields []string `json:"-"`
10447
10448	// NullFields is a list of field names (e.g. "NegativeKeywords") to
10449	// include in API requests with the JSON null value. By default, fields
10450	// with empty values are omitted from API requests. However, any field
10451	// with an empty value appearing in NullFields will be sent to the
10452	// server as null. It is an error if a field in this list has a
10453	// non-empty value. This may be used to include null fields in Patch
10454	// requests.
10455	NullFields []string `json:"-"`
10456}
10457
10458func (s *ListNegativeKeywordsResponse) MarshalJSON() ([]byte, error) {
10459	type NoMethod ListNegativeKeywordsResponse
10460	raw := NoMethod(*s)
10461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10462}
10463
10464type ListPartnerAssignedTargetingOptionsResponse struct {
10465	// AssignedTargetingOptions: The list of assigned targeting options.
10466	// This list will be absent if empty.
10467	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
10468
10469	// NextPageToken: A token identifying the next page of results. This
10470	// value should be specified as the pageToken in a subsequent
10471	// ListPartnerAssignedTargetingOptionsRequest to fetch the next page of
10472	// results. This token will be absent if there are no more
10473	// assigned_targeting_options to return.
10474	NextPageToken string `json:"nextPageToken,omitempty"`
10475
10476	// ServerResponse contains the HTTP response code and headers from the
10477	// server.
10478	googleapi.ServerResponse `json:"-"`
10479
10480	// ForceSendFields is a list of field names (e.g.
10481	// "AssignedTargetingOptions") to unconditionally include in API
10482	// requests. By default, fields with empty or default values are omitted
10483	// from API requests. However, any non-pointer, non-interface field
10484	// appearing in ForceSendFields will be sent to the server regardless of
10485	// whether the field is empty or not. This may be used to include empty
10486	// fields in Patch requests.
10487	ForceSendFields []string `json:"-"`
10488
10489	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
10490	// to include in API requests with the JSON null value. By default,
10491	// fields with empty values are omitted from API requests. However, any
10492	// field with an empty value appearing in NullFields will be sent to the
10493	// server as null. It is an error if a field in this list has a
10494	// non-empty value. This may be used to include null fields in Patch
10495	// requests.
10496	NullFields []string `json:"-"`
10497}
10498
10499func (s *ListPartnerAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
10500	type NoMethod ListPartnerAssignedTargetingOptionsResponse
10501	raw := NoMethod(*s)
10502	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10503}
10504
10505type ListPartnersResponse struct {
10506	// NextPageToken: A token to retrieve the next page of results. Pass
10507	// this value in the page_token field in the subsequent call to
10508	// `ListPartners` method to retrieve the next page of results.
10509	NextPageToken string `json:"nextPageToken,omitempty"`
10510
10511	// Partners: The list of partners. This list will be absent if empty.
10512	Partners []*Partner `json:"partners,omitempty"`
10513
10514	// ServerResponse contains the HTTP response code and headers from the
10515	// server.
10516	googleapi.ServerResponse `json:"-"`
10517
10518	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
10519	// unconditionally include in API requests. By default, fields with
10520	// empty or default values are omitted from API requests. However, any
10521	// non-pointer, non-interface field appearing in ForceSendFields will be
10522	// sent to the server regardless of whether the field is empty or not.
10523	// This may be used to include empty fields in Patch requests.
10524	ForceSendFields []string `json:"-"`
10525
10526	// NullFields is a list of field names (e.g. "NextPageToken") to include
10527	// in API requests with the JSON null value. By default, fields with
10528	// empty values are omitted from API requests. However, any field with
10529	// an empty value appearing in NullFields will be sent to the server as
10530	// null. It is an error if a field in this list has a non-empty value.
10531	// This may be used to include null fields in Patch requests.
10532	NullFields []string `json:"-"`
10533}
10534
10535func (s *ListPartnersResponse) MarshalJSON() ([]byte, error) {
10536	type NoMethod ListPartnersResponse
10537	raw := NoMethod(*s)
10538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10539}
10540
10541// ListSitesResponse: Response message for SiteService.ListSites.
10542type ListSitesResponse struct {
10543	// NextPageToken: A token to retrieve the next page of results. Pass
10544	// this value in the page_token field in the subsequent call to
10545	// `ListSites` method to retrieve the next page of results.
10546	NextPageToken string `json:"nextPageToken,omitempty"`
10547
10548	// Sites: The list of sites. This list will be absent if empty.
10549	Sites []*Site `json:"sites,omitempty"`
10550
10551	// ServerResponse contains the HTTP response code and headers from the
10552	// server.
10553	googleapi.ServerResponse `json:"-"`
10554
10555	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
10556	// unconditionally include in API requests. By default, fields with
10557	// empty or default values are omitted from API requests. However, any
10558	// non-pointer, non-interface field appearing in ForceSendFields will be
10559	// sent to the server regardless of whether the field is empty or not.
10560	// This may be used to include empty fields in Patch requests.
10561	ForceSendFields []string `json:"-"`
10562
10563	// NullFields is a list of field names (e.g. "NextPageToken") to include
10564	// in API requests with the JSON null value. By default, fields with
10565	// empty values are omitted from API requests. However, any field with
10566	// an empty value appearing in NullFields will be sent to the server as
10567	// null. It is an error if a field in this list has a non-empty value.
10568	// This may be used to include null fields in Patch requests.
10569	NullFields []string `json:"-"`
10570}
10571
10572func (s *ListSitesResponse) MarshalJSON() ([]byte, error) {
10573	type NoMethod ListSitesResponse
10574	raw := NoMethod(*s)
10575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10576}
10577
10578// ListTargetingOptionsResponse: Response message for
10579// ListTargetingOptions.
10580type ListTargetingOptionsResponse struct {
10581	// NextPageToken: A token to retrieve the next page of results. Pass
10582	// this value in the page_token field in the subsequent call to
10583	// `ListTargetingOptions` method to retrieve the next page of results.
10584	NextPageToken string `json:"nextPageToken,omitempty"`
10585
10586	// TargetingOptions: The list of targeting options. This list will be
10587	// absent if empty.
10588	TargetingOptions []*TargetingOption `json:"targetingOptions,omitempty"`
10589
10590	// ServerResponse contains the HTTP response code and headers from the
10591	// server.
10592	googleapi.ServerResponse `json:"-"`
10593
10594	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
10595	// unconditionally include in API requests. By default, fields with
10596	// empty or default values are omitted from API requests. However, any
10597	// non-pointer, non-interface field appearing in ForceSendFields will be
10598	// sent to the server regardless of whether the field is empty or not.
10599	// This may be used to include empty fields in Patch requests.
10600	ForceSendFields []string `json:"-"`
10601
10602	// NullFields is a list of field names (e.g. "NextPageToken") to include
10603	// in API requests with the JSON null value. By default, fields with
10604	// empty values are omitted from API requests. However, any field with
10605	// an empty value appearing in NullFields will be sent to the server as
10606	// null. It is an error if a field in this list has a non-empty value.
10607	// This may be used to include null fields in Patch requests.
10608	NullFields []string `json:"-"`
10609}
10610
10611func (s *ListTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
10612	type NoMethod ListTargetingOptionsResponse
10613	raw := NoMethod(*s)
10614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10615}
10616
10617type ListUsersResponse struct {
10618	// NextPageToken: A token to retrieve the next page of results. Pass
10619	// this value in the page_token field in the subsequent call to
10620	// `ListUsers` method to retrieve the next page of results. This token
10621	// will be absent if there are no more results to return.
10622	NextPageToken string `json:"nextPageToken,omitempty"`
10623
10624	// Users: The list of users. This list will be absent if empty.
10625	Users []*User `json:"users,omitempty"`
10626
10627	// ServerResponse contains the HTTP response code and headers from the
10628	// server.
10629	googleapi.ServerResponse `json:"-"`
10630
10631	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
10632	// unconditionally include in API requests. By default, fields with
10633	// empty or default values are omitted from API requests. However, any
10634	// non-pointer, non-interface field appearing in ForceSendFields will be
10635	// sent to the server regardless of whether the field is empty or not.
10636	// This may be used to include empty fields in Patch requests.
10637	ForceSendFields []string `json:"-"`
10638
10639	// NullFields is a list of field names (e.g. "NextPageToken") to include
10640	// in API requests with the JSON null value. By default, fields with
10641	// empty values are omitted from API requests. However, any field with
10642	// an empty value appearing in NullFields will be sent to the server as
10643	// null. It is an error if a field in this list has a non-empty value.
10644	// This may be used to include null fields in Patch requests.
10645	NullFields []string `json:"-"`
10646}
10647
10648func (s *ListUsersResponse) MarshalJSON() ([]byte, error) {
10649	type NoMethod ListUsersResponse
10650	raw := NoMethod(*s)
10651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10652}
10653
10654// LocationList: A list of locations used for targeting.
10655type LocationList struct {
10656	// AdvertiserId: Required. Immutable. The unique ID of the advertiser
10657	// the location list belongs to.
10658	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
10659
10660	// DisplayName: Required. The display name of the location list. Must be
10661	// UTF-8 encoded with a maximum size of 240 bytes.
10662	DisplayName string `json:"displayName,omitempty"`
10663
10664	// LocationListId: Output only. The unique ID of the location list.
10665	// Assigned by the system.
10666	LocationListId int64 `json:"locationListId,omitempty,string"`
10667
10668	// LocationType: Required. Immutable. The type of location. All
10669	// locations in the list will share this type.
10670	//
10671	// Possible values:
10672	//   "TARGETING_LOCATION_TYPE_UNSPECIFIED" - Default value when type is
10673	// not specified or is unknown.
10674	//   "TARGETING_LOCATION_TYPE_PROXIMITY" - The type for proximity geo
10675	// location.
10676	//   "TARGETING_LOCATION_TYPE_REGIONAL" - The type for regional geo
10677	// location.
10678	LocationType string `json:"locationType,omitempty"`
10679
10680	// Name: Output only. The resource name of the location list.
10681	Name string `json:"name,omitempty"`
10682
10683	// ServerResponse contains the HTTP response code and headers from the
10684	// server.
10685	googleapi.ServerResponse `json:"-"`
10686
10687	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
10688	// unconditionally include in API requests. By default, fields with
10689	// empty or default values are omitted from API requests. However, any
10690	// non-pointer, non-interface field appearing in ForceSendFields will be
10691	// sent to the server regardless of whether the field is empty or not.
10692	// This may be used to include empty fields in Patch requests.
10693	ForceSendFields []string `json:"-"`
10694
10695	// NullFields is a list of field names (e.g. "AdvertiserId") to include
10696	// in API requests with the JSON null value. By default, fields with
10697	// empty values are omitted from API requests. However, any field with
10698	// an empty value appearing in NullFields will be sent to the server as
10699	// null. It is an error if a field in this list has a non-empty value.
10700	// This may be used to include null fields in Patch requests.
10701	NullFields []string `json:"-"`
10702}
10703
10704func (s *LocationList) MarshalJSON() ([]byte, error) {
10705	type NoMethod LocationList
10706	raw := NoMethod(*s)
10707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10708}
10709
10710// LookbackWindow: Specifies how many days into the past to look when
10711// determining whether to record a conversion.
10712type LookbackWindow struct {
10713	// ClickDays: Lookback window, in days, from the last time a given user
10714	// clicked on one of your ads.
10715	ClickDays int64 `json:"clickDays,omitempty"`
10716
10717	// ImpressionDays: Lookback window, in days, from the last time a given
10718	// user viewed one of your ads.
10719	ImpressionDays int64 `json:"impressionDays,omitempty"`
10720
10721	// ForceSendFields is a list of field names (e.g. "ClickDays") to
10722	// unconditionally include in API requests. By default, fields with
10723	// empty or default values are omitted from API requests. However, any
10724	// non-pointer, non-interface field appearing in ForceSendFields will be
10725	// sent to the server regardless of whether the field is empty or not.
10726	// This may be used to include empty fields in Patch requests.
10727	ForceSendFields []string `json:"-"`
10728
10729	// NullFields is a list of field names (e.g. "ClickDays") to include in
10730	// API requests with the JSON null value. By default, fields with empty
10731	// values are omitted from API requests. However, any field with an
10732	// empty value appearing in NullFields will be sent to the server as
10733	// null. It is an error if a field in this list has a non-empty value.
10734	// This may be used to include null fields in Patch requests.
10735	NullFields []string `json:"-"`
10736}
10737
10738func (s *LookbackWindow) MarshalJSON() ([]byte, error) {
10739	type NoMethod LookbackWindow
10740	raw := NoMethod(*s)
10741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10742}
10743
10744type LookupInvoiceCurrencyResponse struct {
10745	// CurrencyCode: Currency used by the advertiser in ISO 4217 format.
10746	CurrencyCode string `json:"currencyCode,omitempty"`
10747
10748	// ServerResponse contains the HTTP response code and headers from the
10749	// server.
10750	googleapi.ServerResponse `json:"-"`
10751
10752	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
10753	// unconditionally include in API requests. By default, fields with
10754	// empty or default values are omitted from API requests. However, any
10755	// non-pointer, non-interface field appearing in ForceSendFields will be
10756	// sent to the server regardless of whether the field is empty or not.
10757	// This may be used to include empty fields in Patch requests.
10758	ForceSendFields []string `json:"-"`
10759
10760	// NullFields is a list of field names (e.g. "CurrencyCode") to include
10761	// in API requests with the JSON null value. By default, fields with
10762	// empty values are omitted from API requests. However, any field with
10763	// an empty value appearing in NullFields will be sent to the server as
10764	// null. It is an error if a field in this list has a non-empty value.
10765	// This may be used to include null fields in Patch requests.
10766	NullFields []string `json:"-"`
10767}
10768
10769func (s *LookupInvoiceCurrencyResponse) MarshalJSON() ([]byte, error) {
10770	type NoMethod LookupInvoiceCurrencyResponse
10771	raw := NoMethod(*s)
10772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10773}
10774
10775// ManualTrigger: A single manual trigger in Display & Video 360.
10776type ManualTrigger struct {
10777	// ActivationDurationMinutes: Required. The maximum duration of each
10778	// activation in minutes. Must be between 1 and 360 inclusive. After
10779	// this duration, the trigger will be automatically deactivated.
10780	ActivationDurationMinutes int64 `json:"activationDurationMinutes,omitempty,string"`
10781
10782	// AdvertiserId: Required. Immutable. The unique ID of the advertiser
10783	// that the manual trigger belongs to.
10784	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
10785
10786	// DisplayName: Required. The display name of the manual trigger. Must
10787	// be UTF-8 encoded with a maximum size of 240 bytes.
10788	DisplayName string `json:"displayName,omitempty"`
10789
10790	// LatestActivationTime: Output only. The timestamp of the trigger's
10791	// latest activation.
10792	LatestActivationTime string `json:"latestActivationTime,omitempty"`
10793
10794	// Name: Output only. The resource name of the manual trigger.
10795	Name string `json:"name,omitempty"`
10796
10797	// State: Output only. The state of the manual trigger. Will be set to
10798	// the `INACTIVE` state upon creation.
10799	//
10800	// Possible values:
10801	//   "STATE_UNSPECIFIED" - Default value when state is not specified or
10802	// is unknown in this version.
10803	//   "INACTIVE" - The trigger is currently inactive and ready to be
10804	// activated.
10805	//   "ACTIVE" - The trigger is currently active (activated).
10806	State string `json:"state,omitempty"`
10807
10808	// TriggerId: Output only. The unique ID of the manual trigger.
10809	TriggerId int64 `json:"triggerId,omitempty,string"`
10810
10811	// ServerResponse contains the HTTP response code and headers from the
10812	// server.
10813	googleapi.ServerResponse `json:"-"`
10814
10815	// ForceSendFields is a list of field names (e.g.
10816	// "ActivationDurationMinutes") to unconditionally include in API
10817	// requests. By default, fields with empty or default values are omitted
10818	// from API requests. However, any non-pointer, non-interface field
10819	// appearing in ForceSendFields will be sent to the server regardless of
10820	// whether the field is empty or not. This may be used to include empty
10821	// fields in Patch requests.
10822	ForceSendFields []string `json:"-"`
10823
10824	// NullFields is a list of field names (e.g.
10825	// "ActivationDurationMinutes") to include in API requests with the JSON
10826	// null value. By default, fields with empty values are omitted from API
10827	// requests. However, any field with an empty value appearing in
10828	// NullFields will be sent to the server as null. It is an error if a
10829	// field in this list has a non-empty value. This may be used to include
10830	// null fields in Patch requests.
10831	NullFields []string `json:"-"`
10832}
10833
10834func (s *ManualTrigger) MarshalJSON() ([]byte, error) {
10835	type NoMethod ManualTrigger
10836	raw := NoMethod(*s)
10837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10838}
10839
10840// MaximizeSpendBidStrategy: A strategy that automatically adjusts the
10841// bid to optimize a specified performance goal while spending the full
10842// budget.
10843type MaximizeSpendBidStrategy struct {
10844	// CustomBiddingAlgorithmId: The ID of the Custom Bidding Algorithm used
10845	// by this strategy. Only applicable when performance_goal_type is set
10846	// to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.
10847	CustomBiddingAlgorithmId int64 `json:"customBiddingAlgorithmId,omitempty,string"`
10848
10849	// MaxAverageCpmBidAmountMicros: The maximum average CPM that may be
10850	// bid, in micros of the advertiser's currency. Must be greater than or
10851	// equal to a billable unit of the given currency. For example, 1500000
10852	// represents 1.5 standard units of the currency.
10853	MaxAverageCpmBidAmountMicros int64 `json:"maxAverageCpmBidAmountMicros,omitempty,string"`
10854
10855	// PerformanceGoalType: Required. The type of the performance goal that
10856	// the bidding strategy tries to minimize while spending the full
10857	// budget. `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM` is not
10858	// supported for this strategy.
10859	//
10860	// Possible values:
10861	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_UNSPECIFIED" - Type value
10862	// is not specified or is unknown in this version.
10863	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA" - Cost per action.
10864	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC" - Cost per click.
10865	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM" - Viewable
10866	// CPM.
10867	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO" - Custom
10868	// bidding algorithm.
10869	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA" - Completed inview
10870	// and audible views.
10871	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN" - Inview time over
10872	// 10 secs views.
10873	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED" - Viewable
10874	// impressions.
10875	PerformanceGoalType string `json:"performanceGoalType,omitempty"`
10876
10877	// ForceSendFields is a list of field names (e.g.
10878	// "CustomBiddingAlgorithmId") to unconditionally include in API
10879	// requests. By default, fields with empty or default values are omitted
10880	// from API requests. However, any non-pointer, non-interface field
10881	// appearing in ForceSendFields will be sent to the server regardless of
10882	// whether the field is empty or not. This may be used to include empty
10883	// fields in Patch requests.
10884	ForceSendFields []string `json:"-"`
10885
10886	// NullFields is a list of field names (e.g. "CustomBiddingAlgorithmId")
10887	// to include in API requests with the JSON null value. By default,
10888	// fields with empty values are omitted from API requests. However, any
10889	// field with an empty value appearing in NullFields will be sent to the
10890	// server as null. It is an error if a field in this list has a
10891	// non-empty value. This may be used to include null fields in Patch
10892	// requests.
10893	NullFields []string `json:"-"`
10894}
10895
10896func (s *MaximizeSpendBidStrategy) MarshalJSON() ([]byte, error) {
10897	type NoMethod MaximizeSpendBidStrategy
10898	raw := NoMethod(*s)
10899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10900}
10901
10902// MeasurementConfig: Measurement settings of a partner.
10903type MeasurementConfig struct {
10904	// Dv360ToCmCostReportingEnabled: Whether or not to report DV360 cost to
10905	// CM360.
10906	Dv360ToCmCostReportingEnabled bool `json:"dv360ToCmCostReportingEnabled,omitempty"`
10907
10908	// Dv360ToCmDataSharingEnabled: Whether or not to include DV360 data in
10909	// CM360 data transfer reports.
10910	Dv360ToCmDataSharingEnabled bool `json:"dv360ToCmDataSharingEnabled,omitempty"`
10911
10912	// ForceSendFields is a list of field names (e.g.
10913	// "Dv360ToCmCostReportingEnabled") to unconditionally include in API
10914	// requests. By default, fields with empty or default values are omitted
10915	// from API requests. However, any non-pointer, non-interface field
10916	// appearing in ForceSendFields will be sent to the server regardless of
10917	// whether the field is empty or not. This may be used to include empty
10918	// fields in Patch requests.
10919	ForceSendFields []string `json:"-"`
10920
10921	// NullFields is a list of field names (e.g.
10922	// "Dv360ToCmCostReportingEnabled") to include in API requests with the
10923	// JSON null value. By default, fields with empty values are omitted
10924	// from API requests. However, any field with an empty value appearing
10925	// in NullFields will be sent to the server as null. It is an error if a
10926	// field in this list has a non-empty value. This may be used to include
10927	// null fields in Patch requests.
10928	NullFields []string `json:"-"`
10929}
10930
10931func (s *MeasurementConfig) MarshalJSON() ([]byte, error) {
10932	type NoMethod MeasurementConfig
10933	raw := NoMethod(*s)
10934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10935}
10936
10937// MobileApp: A mobile app promoted by a mobile app install line item.
10938type MobileApp struct {
10939	// AppId: Required. The ID of the app provided by the platform store.
10940	// Android apps are identified by the bundle ID used by Android's Play
10941	// store, such as `com.google.android.gm`. iOS apps are identified by a
10942	// nine-digit app ID used by Apple's App store, such as `422689480`.
10943	AppId string `json:"appId,omitempty"`
10944
10945	// DisplayName: Output only. The app name.
10946	DisplayName string `json:"displayName,omitempty"`
10947
10948	// Platform: Output only. The app platform.
10949	//
10950	// Possible values:
10951	//   "PLATFORM_UNSPECIFIED" - Platform is not specified.
10952	//   "IOS" - iOS platform.
10953	//   "ANDROID" - Android platform.
10954	Platform string `json:"platform,omitempty"`
10955
10956	// Publisher: Output only. The app publisher.
10957	Publisher string `json:"publisher,omitempty"`
10958
10959	// ForceSendFields is a list of field names (e.g. "AppId") to
10960	// unconditionally include in API requests. By default, fields with
10961	// empty or default values are omitted from API requests. However, any
10962	// non-pointer, non-interface field appearing in ForceSendFields will be
10963	// sent to the server regardless of whether the field is empty or not.
10964	// This may be used to include empty fields in Patch requests.
10965	ForceSendFields []string `json:"-"`
10966
10967	// NullFields is a list of field names (e.g. "AppId") to include in API
10968	// requests with the JSON null value. By default, fields with empty
10969	// values are omitted from API requests. However, any field with an
10970	// empty value appearing in NullFields will be sent to the server as
10971	// null. It is an error if a field in this list has a non-empty value.
10972	// This may be used to include null fields in Patch requests.
10973	NullFields []string `json:"-"`
10974}
10975
10976func (s *MobileApp) MarshalJSON() ([]byte, error) {
10977	type NoMethod MobileApp
10978	raw := NoMethod(*s)
10979	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10980}
10981
10982// Money: Represents an amount of money with its currency type.
10983type Money struct {
10984	// CurrencyCode: The three-letter currency code defined in ISO 4217.
10985	CurrencyCode string `json:"currencyCode,omitempty"`
10986
10987	// Nanos: Number of nano (10^-9) units of the amount. The value must be
10988	// between -999,999,999 and +999,999,999 inclusive. If `units` is
10989	// positive, `nanos` must be positive or zero. If `units` is zero,
10990	// `nanos` can be positive, zero, or negative. If `units` is negative,
10991	// `nanos` must be negative or zero. For example $-1.75 is represented
10992	// as `units`=-1 and `nanos`=-750,000,000.
10993	Nanos int64 `json:"nanos,omitempty"`
10994
10995	// Units: The whole units of the amount. For example if `currencyCode`
10996	// is "USD", then 1 unit is one US dollar.
10997	Units int64 `json:"units,omitempty,string"`
10998
10999	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
11000	// unconditionally include in API requests. By default, fields with
11001	// empty or default values are omitted from API requests. However, any
11002	// non-pointer, non-interface field appearing in ForceSendFields will be
11003	// sent to the server regardless of whether the field is empty or not.
11004	// This may be used to include empty fields in Patch requests.
11005	ForceSendFields []string `json:"-"`
11006
11007	// NullFields is a list of field names (e.g. "CurrencyCode") to include
11008	// in API requests with the JSON null value. By default, fields with
11009	// empty values are omitted from API requests. However, any field with
11010	// an empty value appearing in NullFields will be sent to the server as
11011	// null. It is an error if a field in this list has a non-empty value.
11012	// This may be used to include null fields in Patch requests.
11013	NullFields []string `json:"-"`
11014}
11015
11016func (s *Money) MarshalJSON() ([]byte, error) {
11017	type NoMethod Money
11018	raw := NoMethod(*s)
11019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11020}
11021
11022// NativeContentPositionAssignedTargetingOptionDetails: Details for
11023// native content position assigned targeting option. This will be
11024// populated in the native_content_position_details field when
11025// targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`.
11026// Explicitly targeting all options is not supported. Remove all native
11027// content position targeting options to achieve this effect.
11028type NativeContentPositionAssignedTargetingOptionDetails struct {
11029	// ContentPosition: Output only. The content position.
11030	//
11031	// Possible values:
11032	//   "NATIVE_CONTENT_POSITION_UNSPECIFIED" - Native content position is
11033	// not specified in this version. This enum is a place holder for a
11034	// default value and does not represent a real native content position.
11035	//   "NATIVE_CONTENT_POSITION_UNKNOWN" - The native content position is
11036	// unknown.
11037	//   "NATIVE_CONTENT_POSITION_IN_ARTICLE" - Native content position is
11038	// in-article, i.e., ads appear between the paragraphs of pages.
11039	//   "NATIVE_CONTENT_POSITION_IN_FEED" - Native content position is
11040	// in-feed, i.e., ads appear in a scrollable stream of content. A feed
11041	// is typically editorial (e.g. a list of articles or news) or listings
11042	// (e.g. a list of products or services).
11043	//   "NATIVE_CONTENT_POSITION_PERIPHERAL" - Native content position is
11044	// peripheral, i.e., ads appear outside of core content on pages, such
11045	// as the right- or left-hand side of the page.
11046	//   "NATIVE_CONTENT_POSITION_RECOMMENDATION" - Native content position
11047	// is recommendation, i.e., ads appear in sections for recommended
11048	// content.
11049	ContentPosition string `json:"contentPosition,omitempty"`
11050
11051	// TargetingOptionId: Required. The targeting_option_id field when
11052	// targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`.
11053	TargetingOptionId string `json:"targetingOptionId,omitempty"`
11054
11055	// ForceSendFields is a list of field names (e.g. "ContentPosition") to
11056	// unconditionally include in API requests. By default, fields with
11057	// empty or default values are omitted from API requests. However, any
11058	// non-pointer, non-interface field appearing in ForceSendFields will be
11059	// sent to the server regardless of whether the field is empty or not.
11060	// This may be used to include empty fields in Patch requests.
11061	ForceSendFields []string `json:"-"`
11062
11063	// NullFields is a list of field names (e.g. "ContentPosition") to
11064	// include in API requests with the JSON null value. By default, fields
11065	// with empty values are omitted from API requests. However, any field
11066	// with an empty value appearing in NullFields will be sent to the
11067	// server as null. It is an error if a field in this list has a
11068	// non-empty value. This may be used to include null fields in Patch
11069	// requests.
11070	NullFields []string `json:"-"`
11071}
11072
11073func (s *NativeContentPositionAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11074	type NoMethod NativeContentPositionAssignedTargetingOptionDetails
11075	raw := NoMethod(*s)
11076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11077}
11078
11079// NativeContentPositionTargetingOptionDetails: Represents a targetable
11080// native content position. This will be populated in the
11081// native_content_position_details field when targeting_type is
11082// `TARGETING_TYPE_NATIVE_CONTENT_POSITION`.
11083type NativeContentPositionTargetingOptionDetails struct {
11084	// ContentPosition: Output only. The content position.
11085	//
11086	// Possible values:
11087	//   "NATIVE_CONTENT_POSITION_UNSPECIFIED" - Native content position is
11088	// not specified in this version. This enum is a place holder for a
11089	// default value and does not represent a real native content position.
11090	//   "NATIVE_CONTENT_POSITION_UNKNOWN" - The native content position is
11091	// unknown.
11092	//   "NATIVE_CONTENT_POSITION_IN_ARTICLE" - Native content position is
11093	// in-article, i.e., ads appear between the paragraphs of pages.
11094	//   "NATIVE_CONTENT_POSITION_IN_FEED" - Native content position is
11095	// in-feed, i.e., ads appear in a scrollable stream of content. A feed
11096	// is typically editorial (e.g. a list of articles or news) or listings
11097	// (e.g. a list of products or services).
11098	//   "NATIVE_CONTENT_POSITION_PERIPHERAL" - Native content position is
11099	// peripheral, i.e., ads appear outside of core content on pages, such
11100	// as the right- or left-hand side of the page.
11101	//   "NATIVE_CONTENT_POSITION_RECOMMENDATION" - Native content position
11102	// is recommendation, i.e., ads appear in sections for recommended
11103	// content.
11104	ContentPosition string `json:"contentPosition,omitempty"`
11105
11106	// ForceSendFields is a list of field names (e.g. "ContentPosition") to
11107	// unconditionally include in API requests. By default, fields with
11108	// empty or default values are omitted from API requests. However, any
11109	// non-pointer, non-interface field appearing in ForceSendFields will be
11110	// sent to the server regardless of whether the field is empty or not.
11111	// This may be used to include empty fields in Patch requests.
11112	ForceSendFields []string `json:"-"`
11113
11114	// NullFields is a list of field names (e.g. "ContentPosition") to
11115	// include in API requests with the JSON null value. By default, fields
11116	// with empty values are omitted from API requests. However, any field
11117	// with an empty value appearing in NullFields will be sent to the
11118	// server as null. It is an error if a field in this list has a
11119	// non-empty value. This may be used to include null fields in Patch
11120	// requests.
11121	NullFields []string `json:"-"`
11122}
11123
11124func (s *NativeContentPositionTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11125	type NoMethod NativeContentPositionTargetingOptionDetails
11126	raw := NoMethod(*s)
11127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11128}
11129
11130// NegativeKeyword: A negatively targeted keyword that belongs to a
11131// negative keyword list.
11132type NegativeKeyword struct {
11133	// KeywordValue: Required. Immutable. The negatively targeted keyword,
11134	// for example `car insurance`. Must be UTF-8 encoded with a maximum
11135	// size of 255 bytes. Maximum number of characters is 80. Maximum number
11136	// of words is 10. Valid characters are restricted to ASCII characters
11137	// only. The only URL-escaping permitted is for representing whitespace
11138	// between words. Leading or trailing whitespace is ignored.
11139	KeywordValue string `json:"keywordValue,omitempty"`
11140
11141	// Name: Output only. The resource name of the negative keyword.
11142	Name string `json:"name,omitempty"`
11143
11144	// ServerResponse contains the HTTP response code and headers from the
11145	// server.
11146	googleapi.ServerResponse `json:"-"`
11147
11148	// ForceSendFields is a list of field names (e.g. "KeywordValue") to
11149	// unconditionally include in API requests. By default, fields with
11150	// empty or default values are omitted from API requests. However, any
11151	// non-pointer, non-interface field appearing in ForceSendFields will be
11152	// sent to the server regardless of whether the field is empty or not.
11153	// This may be used to include empty fields in Patch requests.
11154	ForceSendFields []string `json:"-"`
11155
11156	// NullFields is a list of field names (e.g. "KeywordValue") to include
11157	// in API requests with the JSON null value. By default, fields with
11158	// empty values are omitted from API requests. However, any field with
11159	// an empty value appearing in NullFields will be sent to the server as
11160	// null. It is an error if a field in this list has a non-empty value.
11161	// This may be used to include null fields in Patch requests.
11162	NullFields []string `json:"-"`
11163}
11164
11165func (s *NegativeKeyword) MarshalJSON() ([]byte, error) {
11166	type NoMethod NegativeKeyword
11167	raw := NoMethod(*s)
11168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11169}
11170
11171// NegativeKeywordList: A list of negative keywords used for targeting.
11172type NegativeKeywordList struct {
11173	// AdvertiserId: Output only. The unique ID of the advertiser the
11174	// negative keyword list belongs to.
11175	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
11176
11177	// DisplayName: Required. The display name of the negative keyword list.
11178	// Must be UTF-8 encoded with a maximum size of 255 bytes.
11179	DisplayName string `json:"displayName,omitempty"`
11180
11181	// Name: Output only. The resource name of the negative keyword list.
11182	Name string `json:"name,omitempty"`
11183
11184	// NegativeKeywordListId: Output only. The unique ID of the negative
11185	// keyword list. Assigned by the system.
11186	NegativeKeywordListId int64 `json:"negativeKeywordListId,omitempty,string"`
11187
11188	// TargetedLineItemCount: Output only. Number of line items that are
11189	// directly targeting this negative keyword list.
11190	TargetedLineItemCount int64 `json:"targetedLineItemCount,omitempty,string"`
11191
11192	// ServerResponse contains the HTTP response code and headers from the
11193	// server.
11194	googleapi.ServerResponse `json:"-"`
11195
11196	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
11197	// unconditionally include in API requests. By default, fields with
11198	// empty or default values are omitted from API requests. However, any
11199	// non-pointer, non-interface field appearing in ForceSendFields will be
11200	// sent to the server regardless of whether the field is empty or not.
11201	// This may be used to include empty fields in Patch requests.
11202	ForceSendFields []string `json:"-"`
11203
11204	// NullFields is a list of field names (e.g. "AdvertiserId") to include
11205	// in API requests with the JSON null value. By default, fields with
11206	// empty values are omitted from API requests. However, any field with
11207	// an empty value appearing in NullFields will be sent to the server as
11208	// null. It is an error if a field in this list has a non-empty value.
11209	// This may be used to include null fields in Patch requests.
11210	NullFields []string `json:"-"`
11211}
11212
11213func (s *NegativeKeywordList) MarshalJSON() ([]byte, error) {
11214	type NoMethod NegativeKeywordList
11215	raw := NoMethod(*s)
11216	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11217}
11218
11219// NegativeKeywordListAssignedTargetingOptionDetails: Targeting details
11220// for negative keyword list. This will be populated in the details
11221// field of an AssignedTargetingOption when targeting_type is
11222// `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`.
11223type NegativeKeywordListAssignedTargetingOptionDetails struct {
11224	// NegativeKeywordListId: Required. ID of the negative keyword list.
11225	// Should refer to the negative_keyword_list_id field of a
11226	// NegativeKeywordList resource.
11227	NegativeKeywordListId int64 `json:"negativeKeywordListId,omitempty,string"`
11228
11229	// ForceSendFields is a list of field names (e.g.
11230	// "NegativeKeywordListId") to unconditionally include in API requests.
11231	// By default, fields with empty or default values are omitted from API
11232	// requests. However, any non-pointer, non-interface field appearing in
11233	// ForceSendFields will be sent to the server regardless of whether the
11234	// field is empty or not. This may be used to include empty fields in
11235	// Patch requests.
11236	ForceSendFields []string `json:"-"`
11237
11238	// NullFields is a list of field names (e.g. "NegativeKeywordListId") to
11239	// include in API requests with the JSON null value. By default, fields
11240	// with empty values are omitted from API requests. However, any field
11241	// with an empty value appearing in NullFields will be sent to the
11242	// server as null. It is an error if a field in this list has a
11243	// non-empty value. This may be used to include null fields in Patch
11244	// requests.
11245	NullFields []string `json:"-"`
11246}
11247
11248func (s *NegativeKeywordListAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11249	type NoMethod NegativeKeywordListAssignedTargetingOptionDetails
11250	raw := NoMethod(*s)
11251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11252}
11253
11254// ObaIcon: OBA Icon for a Creative
11255type ObaIcon struct {
11256	// ClickTrackingUrl: Required. The click tracking URL of the OBA icon.
11257	// Only URLs of the following domains are allowed: *
11258	// https://info.evidon.com * https://l.betrad.com
11259	ClickTrackingUrl string `json:"clickTrackingUrl,omitempty"`
11260
11261	// Dimensions: The dimensions of the OBA icon.
11262	Dimensions *Dimensions `json:"dimensions,omitempty"`
11263
11264	// LandingPageUrl: Required. The landing page URL of the OBA icon. Only
11265	// URLs of the following domains are allowed: * https://info.evidon.com
11266	// * https://l.betrad.com
11267	LandingPageUrl string `json:"landingPageUrl,omitempty"`
11268
11269	// Position: The position of the OBA icon on the creative.
11270	//
11271	// Possible values:
11272	//   "OBA_ICON_POSITION_UNSPECIFIED" - The OBA icon position is not
11273	// specified.
11274	//   "OBA_ICON_POSITION_UPPER_RIGHT" - At the upper right side of the
11275	// creative.
11276	//   "OBA_ICON_POSITION_UPPER_LEFT" - At the upper left side of the
11277	// creative.
11278	//   "OBA_ICON_POSITION_LOWER_RIGHT" - At the lower right side of the
11279	// creative.
11280	//   "OBA_ICON_POSITION_LOWER_LEFT" - At the lower left side of the
11281	// creative.
11282	Position string `json:"position,omitempty"`
11283
11284	// Program: The program of the OBA icon. For example: “AdChoices”.
11285	Program string `json:"program,omitempty"`
11286
11287	// ResourceMimeType: The MIME type of the OBA icon resource.
11288	ResourceMimeType string `json:"resourceMimeType,omitempty"`
11289
11290	// ResourceUrl: The URL of the OBA icon resource.
11291	ResourceUrl string `json:"resourceUrl,omitempty"`
11292
11293	// ViewTrackingUrl: Required. The view tracking URL of the OBA icon.
11294	// Only URLs of the following domains are allowed: *
11295	// https://info.evidon.com * https://l.betrad.com
11296	ViewTrackingUrl string `json:"viewTrackingUrl,omitempty"`
11297
11298	// ForceSendFields is a list of field names (e.g. "ClickTrackingUrl") to
11299	// unconditionally include in API requests. By default, fields with
11300	// empty or default values are omitted from API requests. However, any
11301	// non-pointer, non-interface field appearing in ForceSendFields will be
11302	// sent to the server regardless of whether the field is empty or not.
11303	// This may be used to include empty fields in Patch requests.
11304	ForceSendFields []string `json:"-"`
11305
11306	// NullFields is a list of field names (e.g. "ClickTrackingUrl") to
11307	// include in API requests with the JSON null value. By default, fields
11308	// with empty values are omitted from API requests. However, any field
11309	// with an empty value appearing in NullFields will be sent to the
11310	// server as null. It is an error if a field in this list has a
11311	// non-empty value. This may be used to include null fields in Patch
11312	// requests.
11313	NullFields []string `json:"-"`
11314}
11315
11316func (s *ObaIcon) MarshalJSON() ([]byte, error) {
11317	type NoMethod ObaIcon
11318	raw := NoMethod(*s)
11319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11320}
11321
11322// OmidAssignedTargetingOptionDetails: Represents a targetable Open
11323// Measurement enabled inventory type. This will be populated in the
11324// details field of an AssignedTargetingOption when targeting_type is
11325// `TARGETING_TYPE_OMID`.
11326type OmidAssignedTargetingOptionDetails struct {
11327	// Omid: Output only. The type of Open Measurement enabled inventory.
11328	//
11329	// Possible values:
11330	//   "OMID_UNSPECIFIED" - Default value when omid targeting is not
11331	// specified in this version.
11332	//   "OMID_FOR_MOBILE_DISPLAY_ADS" - Open Measurement enabled mobile
11333	// display inventory.
11334	Omid string `json:"omid,omitempty"`
11335
11336	// TargetingOptionId: Required. The targeting_option_id of a
11337	// TargetingOption of type `TARGETING_TYPE_OMID`.
11338	TargetingOptionId string `json:"targetingOptionId,omitempty"`
11339
11340	// ForceSendFields is a list of field names (e.g. "Omid") to
11341	// unconditionally include in API requests. By default, fields with
11342	// empty or default values are omitted from API requests. However, any
11343	// non-pointer, non-interface field appearing in ForceSendFields will be
11344	// sent to the server regardless of whether the field is empty or not.
11345	// This may be used to include empty fields in Patch requests.
11346	ForceSendFields []string `json:"-"`
11347
11348	// NullFields is a list of field names (e.g. "Omid") to include in API
11349	// requests with the JSON null value. By default, fields with empty
11350	// values are omitted from API requests. However, any field with an
11351	// empty value appearing in NullFields will be sent to the server as
11352	// null. It is an error if a field in this list has a non-empty value.
11353	// This may be used to include null fields in Patch requests.
11354	NullFields []string `json:"-"`
11355}
11356
11357func (s *OmidAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11358	type NoMethod OmidAssignedTargetingOptionDetails
11359	raw := NoMethod(*s)
11360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11361}
11362
11363// OmidTargetingOptionDetails: Represents a targetable Open Measurement
11364// enabled inventory type. This will be populated in the omid_details
11365// field when targeting_type is `TARGETING_TYPE_OMID`.
11366type OmidTargetingOptionDetails struct {
11367	// Omid: Output only. The type of Open Measurement enabled inventory.
11368	//
11369	// Possible values:
11370	//   "OMID_UNSPECIFIED" - Default value when omid targeting is not
11371	// specified in this version.
11372	//   "OMID_FOR_MOBILE_DISPLAY_ADS" - Open Measurement enabled mobile
11373	// display inventory.
11374	Omid string `json:"omid,omitempty"`
11375
11376	// ForceSendFields is a list of field names (e.g. "Omid") to
11377	// unconditionally include in API requests. By default, fields with
11378	// empty or default values are omitted from API requests. However, any
11379	// non-pointer, non-interface field appearing in ForceSendFields will be
11380	// sent to the server regardless of whether the field is empty or not.
11381	// This may be used to include empty fields in Patch requests.
11382	ForceSendFields []string `json:"-"`
11383
11384	// NullFields is a list of field names (e.g. "Omid") to include in API
11385	// requests with the JSON null value. By default, fields with empty
11386	// values are omitted from API requests. However, any field with an
11387	// empty value appearing in NullFields will be sent to the server as
11388	// null. It is an error if a field in this list has a non-empty value.
11389	// This may be used to include null fields in Patch requests.
11390	NullFields []string `json:"-"`
11391}
11392
11393func (s *OmidTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11394	type NoMethod OmidTargetingOptionDetails
11395	raw := NoMethod(*s)
11396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11397}
11398
11399// OnScreenPositionAssignedTargetingOptionDetails: On screen position
11400// targeting option details. This will be populated in the
11401// on_screen_position_details field when targeting_type is
11402// `TARGETING_TYPE_ON_SCREEN_POSITION`.
11403type OnScreenPositionAssignedTargetingOptionDetails struct {
11404	// AdType: Output only. The ad type to target. Only applicable to
11405	// insertion order targeting and new line items supporting the specified
11406	// ad type will inherit this targeting option by default. Possible
11407	// values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new
11408	// line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. *
11409	// `AD_TYPE_VIDEO`, the setting will be inherited by new line item when
11410	// line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`.
11411	//
11412	// Possible values:
11413	//   "AD_TYPE_UNSPECIFIED" - Ad type is not specified or is unknown in
11414	// this version.
11415	//   "AD_TYPE_DISPLAY" - Display creatives, e.g. image and HTML5.
11416	//   "AD_TYPE_VIDEO" - Video creatives, e.g. video ads that play during
11417	// streaming content in video players.
11418	//   "AD_TYPE_AUDIO" - Audio creatives, e.g. audio ads that play during
11419	// audio content.
11420	AdType string `json:"adType,omitempty"`
11421
11422	// OnScreenPosition: Output only. The on screen position.
11423	//
11424	// Possible values:
11425	//   "ON_SCREEN_POSITION_UNSPECIFIED" - On screen position is not
11426	// specified in this version. This enum is a place holder for a default
11427	// value and does not represent a real on screen position.
11428	//   "ON_SCREEN_POSITION_UNKNOWN" - The ad position is unknown on the
11429	// screen.
11430	//   "ON_SCREEN_POSITION_ABOVE_THE_FOLD" - The ad is located above the
11431	// fold.
11432	//   "ON_SCREEN_POSITION_BELOW_THE_FOLD" - The ad is located below the
11433	// fold.
11434	OnScreenPosition string `json:"onScreenPosition,omitempty"`
11435
11436	// TargetingOptionId: Required. The targeting_option_id field when
11437	// targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.
11438	TargetingOptionId string `json:"targetingOptionId,omitempty"`
11439
11440	// ForceSendFields is a list of field names (e.g. "AdType") to
11441	// unconditionally include in API requests. By default, fields with
11442	// empty or default values are omitted from API requests. However, any
11443	// non-pointer, non-interface field appearing in ForceSendFields will be
11444	// sent to the server regardless of whether the field is empty or not.
11445	// This may be used to include empty fields in Patch requests.
11446	ForceSendFields []string `json:"-"`
11447
11448	// NullFields is a list of field names (e.g. "AdType") to include in API
11449	// requests with the JSON null value. By default, fields with empty
11450	// values are omitted from API requests. However, any field with an
11451	// empty value appearing in NullFields will be sent to the server as
11452	// null. It is an error if a field in this list has a non-empty value.
11453	// This may be used to include null fields in Patch requests.
11454	NullFields []string `json:"-"`
11455}
11456
11457func (s *OnScreenPositionAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11458	type NoMethod OnScreenPositionAssignedTargetingOptionDetails
11459	raw := NoMethod(*s)
11460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11461}
11462
11463// OnScreenPositionTargetingOptionDetails: Represents a targetable on
11464// screen position, which could be used by display and video ads. This
11465// will be populated in the on_screen_position_details field when
11466// targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.
11467type OnScreenPositionTargetingOptionDetails struct {
11468	// OnScreenPosition: Output only. The on screen position.
11469	//
11470	// Possible values:
11471	//   "ON_SCREEN_POSITION_UNSPECIFIED" - On screen position is not
11472	// specified in this version. This enum is a place holder for a default
11473	// value and does not represent a real on screen position.
11474	//   "ON_SCREEN_POSITION_UNKNOWN" - The ad position is unknown on the
11475	// screen.
11476	//   "ON_SCREEN_POSITION_ABOVE_THE_FOLD" - The ad is located above the
11477	// fold.
11478	//   "ON_SCREEN_POSITION_BELOW_THE_FOLD" - The ad is located below the
11479	// fold.
11480	OnScreenPosition string `json:"onScreenPosition,omitempty"`
11481
11482	// ForceSendFields is a list of field names (e.g. "OnScreenPosition") to
11483	// unconditionally include in API requests. By default, fields with
11484	// empty or default values are omitted from API requests. However, any
11485	// non-pointer, non-interface field appearing in ForceSendFields will be
11486	// sent to the server regardless of whether the field is empty or not.
11487	// This may be used to include empty fields in Patch requests.
11488	ForceSendFields []string `json:"-"`
11489
11490	// NullFields is a list of field names (e.g. "OnScreenPosition") to
11491	// include in API requests with the JSON null value. By default, fields
11492	// with empty values are omitted from API requests. However, any field
11493	// with an empty value appearing in NullFields will be sent to the
11494	// server as null. It is an error if a field in this list has a
11495	// non-empty value. This may be used to include null fields in Patch
11496	// requests.
11497	NullFields []string `json:"-"`
11498}
11499
11500func (s *OnScreenPositionTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11501	type NoMethod OnScreenPositionTargetingOptionDetails
11502	raw := NoMethod(*s)
11503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11504}
11505
11506// OperatingSystemAssignedTargetingOptionDetails: Assigned operating
11507// system targeting option details. This will be populated in the
11508// operating_system_details field when targeting_type is
11509// `TARGETING_TYPE_OPERATING_SYSTEM`.
11510type OperatingSystemAssignedTargetingOptionDetails struct {
11511	// DisplayName: Output only. The display name of the operating system.
11512	DisplayName string `json:"displayName,omitempty"`
11513
11514	// Negative: Indicates if this option is being negatively targeted.
11515	Negative bool `json:"negative,omitempty"`
11516
11517	// TargetingOptionId: Required. The targeting option ID populated in
11518	// targeting_option_id field when targeting_type is
11519	// `TARGETING_TYPE_OPERATING_SYSTEM`.
11520	TargetingOptionId string `json:"targetingOptionId,omitempty"`
11521
11522	// ForceSendFields is a list of field names (e.g. "DisplayName") to
11523	// unconditionally include in API requests. By default, fields with
11524	// empty or default values are omitted from API requests. However, any
11525	// non-pointer, non-interface field appearing in ForceSendFields will be
11526	// sent to the server regardless of whether the field is empty or not.
11527	// This may be used to include empty fields in Patch requests.
11528	ForceSendFields []string `json:"-"`
11529
11530	// NullFields is a list of field names (e.g. "DisplayName") to include
11531	// in API requests with the JSON null value. By default, fields with
11532	// empty values are omitted from API requests. However, any field with
11533	// an empty value appearing in NullFields will be sent to the server as
11534	// null. It is an error if a field in this list has a non-empty value.
11535	// This may be used to include null fields in Patch requests.
11536	NullFields []string `json:"-"`
11537}
11538
11539func (s *OperatingSystemAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11540	type NoMethod OperatingSystemAssignedTargetingOptionDetails
11541	raw := NoMethod(*s)
11542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11543}
11544
11545// OperatingSystemTargetingOptionDetails: Represents a targetable
11546// operating system. This will be populated in the
11547// operating_system_details field of a TargetingOption when
11548// targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`.
11549type OperatingSystemTargetingOptionDetails struct {
11550	// DisplayName: Output only. The display name of the operating system.
11551	DisplayName string `json:"displayName,omitempty"`
11552
11553	// ForceSendFields is a list of field names (e.g. "DisplayName") to
11554	// unconditionally include in API requests. By default, fields with
11555	// empty or default values are omitted from API requests. However, any
11556	// non-pointer, non-interface field appearing in ForceSendFields will be
11557	// sent to the server regardless of whether the field is empty or not.
11558	// This may be used to include empty fields in Patch requests.
11559	ForceSendFields []string `json:"-"`
11560
11561	// NullFields is a list of field names (e.g. "DisplayName") to include
11562	// in API requests with the JSON null value. By default, fields with
11563	// empty values are omitted from API requests. However, any field with
11564	// an empty value appearing in NullFields will be sent to the server as
11565	// null. It is an error if a field in this list has a non-empty value.
11566	// This may be used to include null fields in Patch requests.
11567	NullFields []string `json:"-"`
11568}
11569
11570func (s *OperatingSystemTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11571	type NoMethod OperatingSystemTargetingOptionDetails
11572	raw := NoMethod(*s)
11573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11574}
11575
11576// Operation: This resource represents a long-running operation that is
11577// the result of a network API call.
11578type Operation struct {
11579	// Done: If the value is `false`, it means the operation is still in
11580	// progress. If `true`, the operation is completed, and either `error`
11581	// or `response` is available.
11582	Done bool `json:"done,omitempty"`
11583
11584	// Error: The error result of the operation in case of failure or
11585	// cancellation.
11586	Error *Status `json:"error,omitempty"`
11587
11588	// Metadata: Service-specific metadata associated with the operation. It
11589	// typically contains progress information and common metadata such as
11590	// create time. Some services might not provide such metadata. Any
11591	// method that returns a long-running operation should document the
11592	// metadata type, if any.
11593	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
11594
11595	// Name: The server-assigned name, which is only unique within the same
11596	// service that originally returns it. If you use the default HTTP
11597	// mapping, the `name` should be a resource name ending with
11598	// `operations/{unique_id}`.
11599	Name string `json:"name,omitempty"`
11600
11601	// Response: The normal response of the operation in case of success. If
11602	// the original method returns no data on success, such as `Delete`, the
11603	// response is `google.protobuf.Empty`. If the original method is
11604	// standard `Get`/`Create`/`Update`, the response should be the
11605	// resource. For other methods, the response should have the type
11606	// `XxxResponse`, where `Xxx` is the original method name. For example,
11607	// if the original method name is `TakeSnapshot()`, the inferred
11608	// response type is `TakeSnapshotResponse`.
11609	Response googleapi.RawMessage `json:"response,omitempty"`
11610
11611	// ServerResponse contains the HTTP response code and headers from the
11612	// server.
11613	googleapi.ServerResponse `json:"-"`
11614
11615	// ForceSendFields is a list of field names (e.g. "Done") to
11616	// unconditionally include in API requests. By default, fields with
11617	// empty or default values are omitted from API requests. However, any
11618	// non-pointer, non-interface field appearing in ForceSendFields will be
11619	// sent to the server regardless of whether the field is empty or not.
11620	// This may be used to include empty fields in Patch requests.
11621	ForceSendFields []string `json:"-"`
11622
11623	// NullFields is a list of field names (e.g. "Done") to include in API
11624	// requests with the JSON null value. By default, fields with empty
11625	// values are omitted from API requests. However, any field with an
11626	// empty value appearing in NullFields will be sent to the server as
11627	// null. It is an error if a field in this list has a non-empty value.
11628	// This may be used to include null fields in Patch requests.
11629	NullFields []string `json:"-"`
11630}
11631
11632func (s *Operation) MarshalJSON() ([]byte, error) {
11633	type NoMethod Operation
11634	raw := NoMethod(*s)
11635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11636}
11637
11638// Pacing: Settings that control the rate at which a budget is spent.
11639type Pacing struct {
11640	// DailyMaxImpressions: Maximum number of impressions to serve every
11641	// day. Applicable when the budget is impression based. Must be greater
11642	// than 0.
11643	DailyMaxImpressions int64 `json:"dailyMaxImpressions,omitempty,string"`
11644
11645	// DailyMaxMicros: Maximum currency amount to spend every day in micros
11646	// of advertiser's currency. Applicable when the budget is currency
11647	// based. Must be greater than 0. For example, for 1.5 standard unit of
11648	// the currency, set this field to 1500000. The value assigned will be
11649	// rounded to whole billable units for the relevant currency by the
11650	// following rules: any positive value less than a single billable unit
11651	// will be rounded up to one billable unit and any value larger than a
11652	// single billable unit will be rounded down to the nearest billable
11653	// value. For example, if the currency's billable unit is 0.01, and this
11654	// field is set to 10257770, it will round down to 10250000, a value of
11655	// 10.25. If set to 505, it will round up to 10000, a value of 0.01.
11656	DailyMaxMicros int64 `json:"dailyMaxMicros,omitempty,string"`
11657
11658	// PacingPeriod: Required. The time period in which the pacing budget
11659	// will be spent. When automatic budget allocation is enabled at the
11660	// insertion order via auto_budget_allocation, this field is output only
11661	// and defaults to `PACING_PERIOD_FLIGHT`.
11662	//
11663	// Possible values:
11664	//   "PACING_PERIOD_UNSPECIFIED" - Period value is not specified or is
11665	// unknown in this version.
11666	//   "PACING_PERIOD_DAILY" - The pacing setting will be applied on daily
11667	// basis.
11668	//   "PACING_PERIOD_FLIGHT" - The pacing setting will be applied to the
11669	// whole flight duration.
11670	PacingPeriod string `json:"pacingPeriod,omitempty"`
11671
11672	// PacingType: Required. The type of pacing that defines how the budget
11673	// amount will be spent across the pacing_period.
11674	//
11675	// Possible values:
11676	//   "PACING_TYPE_UNSPECIFIED" - Pacing mode value is not specified or
11677	// is unknown in this version.
11678	//   "PACING_TYPE_AHEAD" - Only applicable to `PACING_PERIOD_FLIGHT`
11679	// pacing period. Ahead pacing attempts to spend faster than evenly, to
11680	// make sure the entire budget is spent by the end of the flight.
11681	//   "PACING_TYPE_ASAP" - Spend all of pacing budget amount as quick as
11682	// possible.
11683	//   "PACING_TYPE_EVEN" - Spend a consistent budget amount every period
11684	// of time.
11685	PacingType string `json:"pacingType,omitempty"`
11686
11687	// ForceSendFields is a list of field names (e.g. "DailyMaxImpressions")
11688	// to unconditionally include in API requests. By default, fields with
11689	// empty or default values are omitted from API requests. However, any
11690	// non-pointer, non-interface field appearing in ForceSendFields will be
11691	// sent to the server regardless of whether the field is empty or not.
11692	// This may be used to include empty fields in Patch requests.
11693	ForceSendFields []string `json:"-"`
11694
11695	// NullFields is a list of field names (e.g. "DailyMaxImpressions") to
11696	// include in API requests with the JSON null value. By default, fields
11697	// with empty values are omitted from API requests. However, any field
11698	// with an empty value appearing in NullFields will be sent to the
11699	// server as null. It is an error if a field in this list has a
11700	// non-empty value. This may be used to include null fields in Patch
11701	// requests.
11702	NullFields []string `json:"-"`
11703}
11704
11705func (s *Pacing) MarshalJSON() ([]byte, error) {
11706	type NoMethod Pacing
11707	raw := NoMethod(*s)
11708	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11709}
11710
11711// ParentEntityFilter: A filtering option that filters on selected file
11712// types belonging to a chosen set of filter entities.
11713type ParentEntityFilter struct {
11714	// FileType: Required. File types that will be returned.
11715	//
11716	// Possible values:
11717	//   "FILE_TYPE_UNSPECIFIED" - Default value when type is unspecified or
11718	// is unknown in this version.
11719	//   "FILE_TYPE_CAMPAIGN" - Campaign.
11720	//   "FILE_TYPE_MEDIA_PRODUCT" - Media Product.
11721	//   "FILE_TYPE_INSERTION_ORDER" - Insertion Order.
11722	//   "FILE_TYPE_LINE_ITEM" - Line Item.
11723	//   "FILE_TYPE_AD_GROUP" - YouTube Ad Group.
11724	//   "FILE_TYPE_AD" - YouTube Ad.
11725	FileType []string `json:"fileType,omitempty"`
11726
11727	// FilterIds: The IDs of the specified filter type. This is used to
11728	// filter entities to fetch. If filter type is not `FILTER_TYPE_NONE`,
11729	// at least one ID must be specified.
11730	FilterIds googleapi.Int64s `json:"filterIds,omitempty"`
11731
11732	// FilterType: Required. Filter type used to filter fetched entities.
11733	//
11734	// Possible values:
11735	//   "FILTER_TYPE_UNSPECIFIED" - Default value when type is unspecified
11736	// or is unknown in this version.
11737	//   "FILTER_TYPE_NONE" - If selected, no filter will be applied to the
11738	// download. Can only be used if an Advertiser is specified in
11739	// CreateSdfDownloadTaskRequest.
11740	//   "FILTER_TYPE_ADVERTISER_ID" - Advertiser ID. If selected, all
11741	// filter IDs must be Advertiser IDs that belong to the Partner
11742	// specified in CreateSdfDownloadTaskRequest.
11743	//   "FILTER_TYPE_CAMPAIGN_ID" - Campaign ID. If selected, all filter
11744	// IDs must be Campaign IDs that belong to the Advertiser or Partner
11745	// specified in CreateSdfDownloadTaskRequest.
11746	//   "FILTER_TYPE_MEDIA_PRODUCT_ID" - Media Product ID. If selected, all
11747	// filter IDs must be Media Product IDs that belong to the Advertiser or
11748	// Partner specified in CreateSdfDownloadTaskRequest. Can only be used
11749	// for downloading `FILE_TYPE_MEDIA_PRODUCT`.
11750	//   "FILTER_TYPE_INSERTION_ORDER_ID" - Insertion Order ID. If selected,
11751	// all filter IDs must be Insertion Order IDs that belong to the
11752	// Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Can
11753	// only be used for downloading `FILE_TYPE_INSERTION_ORDER`,
11754	// `FILE_TYPE_LINE_ITEM`, `FILE_TYPE_AD_GROUP`, and `FILE_TYPE_AD`.
11755	//   "FILTER_TYPE_LINE_ITEM_ID" - Line Item ID. If selected, all filter
11756	// IDs must be Line Item IDs that belong to the Advertiser or Partner
11757	// specified in CreateSdfDownloadTaskRequest. Can only be used for
11758	// downloading `FILE_TYPE_LINE_ITEM`, `FILE_TYPE_AD_GROUP`, and
11759	// `FILE_TYPE_AD`.
11760	FilterType string `json:"filterType,omitempty"`
11761
11762	// ForceSendFields is a list of field names (e.g. "FileType") to
11763	// unconditionally include in API requests. By default, fields with
11764	// empty or default values are omitted from API requests. However, any
11765	// non-pointer, non-interface field appearing in ForceSendFields will be
11766	// sent to the server regardless of whether the field is empty or not.
11767	// This may be used to include empty fields in Patch requests.
11768	ForceSendFields []string `json:"-"`
11769
11770	// NullFields is a list of field names (e.g. "FileType") to include in
11771	// API requests with the JSON null value. By default, fields with empty
11772	// values are omitted from API requests. However, any field with an
11773	// empty value appearing in NullFields will be sent to the server as
11774	// null. It is an error if a field in this list has a non-empty value.
11775	// This may be used to include null fields in Patch requests.
11776	NullFields []string `json:"-"`
11777}
11778
11779func (s *ParentEntityFilter) MarshalJSON() ([]byte, error) {
11780	type NoMethod ParentEntityFilter
11781	raw := NoMethod(*s)
11782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11783}
11784
11785// ParentalStatusAssignedTargetingOptionDetails: Details for assigned
11786// parental status targeting option. This will be populated in the
11787// details field of an AssignedTargetingOption when targeting_type is
11788// `TARTGETING_TYPE_PARENTAL_STATUS`.
11789type ParentalStatusAssignedTargetingOptionDetails struct {
11790	// ParentalStatus: Output only. The parental status of the audience.
11791	//
11792	// Possible values:
11793	//   "PARENTAL_STATUS_UNSPECIFIED" - Default value when parental status
11794	// is not specified in this version. This enum is a place holder for
11795	// default value and does not represent a real parental status option.
11796	//   "PARENTAL_STATUS_PARENT" - The audience is a parent.
11797	//   "PARENTAL_STATUS_NOT_A_PARENT" - The audience is not a parent.
11798	//   "PARENTAL_STATUS_UNKNOWN" - The parental status of the audience is
11799	// unknown.
11800	ParentalStatus string `json:"parentalStatus,omitempty"`
11801
11802	// TargetingOptionId: Required. The targeting_option_id of a
11803	// TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`.
11804	TargetingOptionId string `json:"targetingOptionId,omitempty"`
11805
11806	// ForceSendFields is a list of field names (e.g. "ParentalStatus") to
11807	// unconditionally include in API requests. By default, fields with
11808	// empty or default values are omitted from API requests. However, any
11809	// non-pointer, non-interface field appearing in ForceSendFields will be
11810	// sent to the server regardless of whether the field is empty or not.
11811	// This may be used to include empty fields in Patch requests.
11812	ForceSendFields []string `json:"-"`
11813
11814	// NullFields is a list of field names (e.g. "ParentalStatus") to
11815	// include in API requests with the JSON null value. By default, fields
11816	// with empty values are omitted from API requests. However, any field
11817	// with an empty value appearing in NullFields will be sent to the
11818	// server as null. It is an error if a field in this list has a
11819	// non-empty value. This may be used to include null fields in Patch
11820	// requests.
11821	NullFields []string `json:"-"`
11822}
11823
11824func (s *ParentalStatusAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11825	type NoMethod ParentalStatusAssignedTargetingOptionDetails
11826	raw := NoMethod(*s)
11827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11828}
11829
11830// ParentalStatusTargetingOptionDetails: Represents a targetable
11831// parental status. This will be populated in the
11832// parental_status_details field of a TargetingOption when
11833// targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`.
11834type ParentalStatusTargetingOptionDetails struct {
11835	// ParentalStatus: Output only. The parental status of an audience.
11836	//
11837	// Possible values:
11838	//   "PARENTAL_STATUS_UNSPECIFIED" - Default value when parental status
11839	// is not specified in this version. This enum is a place holder for
11840	// default value and does not represent a real parental status option.
11841	//   "PARENTAL_STATUS_PARENT" - The audience is a parent.
11842	//   "PARENTAL_STATUS_NOT_A_PARENT" - The audience is not a parent.
11843	//   "PARENTAL_STATUS_UNKNOWN" - The parental status of the audience is
11844	// unknown.
11845	ParentalStatus string `json:"parentalStatus,omitempty"`
11846
11847	// ForceSendFields is a list of field names (e.g. "ParentalStatus") to
11848	// unconditionally include in API requests. By default, fields with
11849	// empty or default values are omitted from API requests. However, any
11850	// non-pointer, non-interface field appearing in ForceSendFields will be
11851	// sent to the server regardless of whether the field is empty or not.
11852	// This may be used to include empty fields in Patch requests.
11853	ForceSendFields []string `json:"-"`
11854
11855	// NullFields is a list of field names (e.g. "ParentalStatus") to
11856	// include in API requests with the JSON null value. By default, fields
11857	// with empty values are omitted from API requests. However, any field
11858	// with an empty value appearing in NullFields will be sent to the
11859	// server as null. It is an error if a field in this list has a
11860	// non-empty value. This may be used to include null fields in Patch
11861	// requests.
11862	NullFields []string `json:"-"`
11863}
11864
11865func (s *ParentalStatusTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11866	type NoMethod ParentalStatusTargetingOptionDetails
11867	raw := NoMethod(*s)
11868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11869}
11870
11871// Partner: A single partner in Display & Video 360 (DV360).
11872type Partner struct {
11873	// AdServerConfig: Ad server related settings of the partner.
11874	AdServerConfig *PartnerAdServerConfig `json:"adServerConfig,omitempty"`
11875
11876	// DataAccessConfig: Settings that control how partner data may be
11877	// accessed.
11878	DataAccessConfig *PartnerDataAccessConfig `json:"dataAccessConfig,omitempty"`
11879
11880	// DisplayName: The display name of the partner. Must be UTF-8 encoded
11881	// with a maximum size of 240 bytes.
11882	DisplayName string `json:"displayName,omitempty"`
11883
11884	// EntityStatus: Output only. The status of the partner.
11885	//
11886	// Possible values:
11887	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
11888	// specified or is unknown in this version.
11889	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
11890	// budget.
11891	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
11892	// budget spending are disabled. An entity can be deleted after
11893	// archived. Deleted entities cannot be retrieved.
11894	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
11895	// budget spending are disabled.
11896	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
11897	// the entity.
11898	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
11899	// for deletion.
11900	EntityStatus string `json:"entityStatus,omitempty"`
11901
11902	// ExchangeConfig: Settings that control which exchanges are enabled for
11903	// the partner.
11904	ExchangeConfig *ExchangeConfig `json:"exchangeConfig,omitempty"`
11905
11906	// GeneralConfig: General settings of the partner.
11907	GeneralConfig *PartnerGeneralConfig `json:"generalConfig,omitempty"`
11908
11909	// Name: Output only. The resource name of the partner.
11910	Name string `json:"name,omitempty"`
11911
11912	// PartnerId: Output only. The unique ID of the partner. Assigned by the
11913	// system.
11914	PartnerId int64 `json:"partnerId,omitempty,string"`
11915
11916	// UpdateTime: Output only. The timestamp when the partner was last
11917	// updated. Assigned by the system.
11918	UpdateTime string `json:"updateTime,omitempty"`
11919
11920	// ServerResponse contains the HTTP response code and headers from the
11921	// server.
11922	googleapi.ServerResponse `json:"-"`
11923
11924	// ForceSendFields is a list of field names (e.g. "AdServerConfig") to
11925	// unconditionally include in API requests. By default, fields with
11926	// empty or default values are omitted from API requests. However, any
11927	// non-pointer, non-interface field appearing in ForceSendFields will be
11928	// sent to the server regardless of whether the field is empty or not.
11929	// This may be used to include empty fields in Patch requests.
11930	ForceSendFields []string `json:"-"`
11931
11932	// NullFields is a list of field names (e.g. "AdServerConfig") to
11933	// include in API requests with the JSON null value. By default, fields
11934	// with empty values are omitted from API requests. However, any field
11935	// with an empty value appearing in NullFields will be sent to the
11936	// server as null. It is an error if a field in this list has a
11937	// non-empty value. This may be used to include null fields in Patch
11938	// requests.
11939	NullFields []string `json:"-"`
11940}
11941
11942func (s *Partner) MarshalJSON() ([]byte, error) {
11943	type NoMethod Partner
11944	raw := NoMethod(*s)
11945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11946}
11947
11948// PartnerAdServerConfig: Ad server related settings of a partner.
11949type PartnerAdServerConfig struct {
11950	// MeasurementConfig: Measurement settings of a partner.
11951	MeasurementConfig *MeasurementConfig `json:"measurementConfig,omitempty"`
11952
11953	// ForceSendFields is a list of field names (e.g. "MeasurementConfig")
11954	// to unconditionally include in API requests. By default, fields with
11955	// empty or default values are omitted from API requests. However, any
11956	// non-pointer, non-interface field appearing in ForceSendFields will be
11957	// sent to the server regardless of whether the field is empty or not.
11958	// This may be used to include empty fields in Patch requests.
11959	ForceSendFields []string `json:"-"`
11960
11961	// NullFields is a list of field names (e.g. "MeasurementConfig") to
11962	// include in API requests with the JSON null value. By default, fields
11963	// with empty values are omitted from API requests. However, any field
11964	// with an empty value appearing in NullFields will be sent to the
11965	// server as null. It is an error if a field in this list has a
11966	// non-empty value. This may be used to include null fields in Patch
11967	// requests.
11968	NullFields []string `json:"-"`
11969}
11970
11971func (s *PartnerAdServerConfig) MarshalJSON() ([]byte, error) {
11972	type NoMethod PartnerAdServerConfig
11973	raw := NoMethod(*s)
11974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11975}
11976
11977// PartnerCost: Settings that control a partner cost. A partner cost is
11978// any type of expense involved in running a campaign, other than the
11979// costs of purchasing impressions (which is called the media cost) and
11980// using third-party audience segment data (data fee). Some examples of
11981// partner costs include the fees for using DV360, a third-party ad
11982// server, or a third-party ad serving verification service.
11983type PartnerCost struct {
11984	// CostType: Required. The type of the partner cost.
11985	//
11986	// Possible values:
11987	//   "PARTNER_COST_TYPE_UNSPECIFIED" - Type value is not specified or is
11988	// unknown in this version.
11989	//   "PARTNER_COST_TYPE_ADLOOX" - The cost is charged for using Adloox.
11990	//   "PARTNER_COST_TYPE_ADLOOX_PREBID" - The cost is charged for using
11991	// Adloox Pre-Bid.
11992	//   "PARTNER_COST_TYPE_ADSAFE" - The cost is charged for using AdSafe.
11993	//   "PARTNER_COST_TYPE_ADXPOSE" - The cost is charged for using
11994	// AdExpose.
11995	//   "PARTNER_COST_TYPE_AGGREGATE_KNOWLEDGE" - The cost is charged for
11996	// using Aggregate Knowledge.
11997	//   "PARTNER_COST_TYPE_AGENCY_TRADING_DESK" - The cost is charged for
11998	// using an Agency Trading Desk.
11999	//   "PARTNER_COST_TYPE_DV360_FEE" - The cost is charged for using
12000	// DV360.
12001	//   "PARTNER_COST_TYPE_COMSCORE_VCE" - The cost is charged for using
12002	// comScore vCE.
12003	//   "PARTNER_COST_TYPE_DATA_MANAGEMENT_PLATFORM" - The cost is charged
12004	// for using a Data Management Platform.
12005	//   "PARTNER_COST_TYPE_DEFAULT" - The default cost type.
12006	//   "PARTNER_COST_TYPE_DOUBLE_VERIFY" - The cost is charged for using
12007	// DoubleVerify.
12008	//   "PARTNER_COST_TYPE_DOUBLE_VERIFY_PREBID" - The cost is charged for
12009	// using DoubleVerify Pre-Bid.
12010	//   "PARTNER_COST_TYPE_EVIDON" - The cost is charged for using Evidon.
12011	//   "PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_VIDEO" - The cost is charged
12012	// for using Integral Ad Science Video.
12013	//   "PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_PREBID" - The cost is
12014	// charged for using Integral Ad Science Pre-Bid.
12015	//   "PARTNER_COST_TYPE_MEDIA_COST_DATA" - The cost is charged for using
12016	// media cost data.
12017	//   "PARTNER_COST_TYPE_MOAT_VIDEO" - The cost is charged for using MOAT
12018	// Video.
12019	//   "PARTNER_COST_TYPE_NIELSEN_DAR" - The cost is charged for using
12020	// Nielsen Digital Ad Ratings.
12021	//   "PARTNER_COST_TYPE_SHOP_LOCAL" - The cost is charged for using
12022	// ShopLocal.
12023	//   "PARTNER_COST_TYPE_TERACENT" - The cost is charged for using
12024	// Teracent.
12025	//   "PARTNER_COST_TYPE_THIRD_PARTY_AD_SERVER" - The cost is charged for
12026	// using a third-party ad server.
12027	//   "PARTNER_COST_TYPE_TRUST_METRICS" - The cost is charged for using
12028	// TrustMetrics.
12029	//   "PARTNER_COST_TYPE_VIZU" - The cost is charged for using Vizu.
12030	//   "PARTNER_COST_TYPE_ADLINGO_FEE" - The cost is charged for using
12031	// AdLingo.
12032	//   "PARTNER_COST_TYPE_CUSTOM_FEE_1" - The cost is charged as custom
12033	// fee 1.
12034	//   "PARTNER_COST_TYPE_CUSTOM_FEE_2" - The cost is charged as custom
12035	// fee 2.
12036	//   "PARTNER_COST_TYPE_CUSTOM_FEE_3" - The cost is charged as custom
12037	// fee 3.
12038	//   "PARTNER_COST_TYPE_CUSTOM_FEE_4" - The cost is charged as custom
12039	// fee 4.
12040	//   "PARTNER_COST_TYPE_CUSTOM_FEE_5" - The cost is charged as custom
12041	// fee 5.
12042	CostType string `json:"costType,omitempty"`
12043
12044	// FeeAmount: The CPM fee amount in micros of advertiser's currency.
12045	// Applicable when the fee_type is `PARTNER_FEE_TYPE_CPM_FEE`. Must be
12046	// greater than or equal to 0. For example, for 1.5 standard unit of the
12047	// advertiser's currency, set this field to 1500000.
12048	FeeAmount int64 `json:"feeAmount,omitempty,string"`
12049
12050	// FeePercentageMillis: The media fee percentage in millis (1/1000 of a
12051	// percent). Applicable when the fee_type is
12052	// `PARTNER_FEE_TYPE_MEDIA_FEE`. Must be greater than or equal to 0. For
12053	// example: 100 represents 0.1%.
12054	FeePercentageMillis int64 `json:"feePercentageMillis,omitempty,string"`
12055
12056	// FeeType: Required. The fee type for this partner cost.
12057	//
12058	// Possible values:
12059	//   "PARTNER_COST_FEE_TYPE_UNSPECIFIED" - Value is not specified or is
12060	// unknown in this version.
12061	//   "PARTNER_COST_FEE_TYPE_CPM_FEE" - The partner cost is a fixed CPM
12062	// fee. Not applicable when the partner cost cost_type is one of: *
12063	// `PARTNER_COST_TYPE_MEDIA_COST_DATA` * `PARTNER_COST_TYPE_DV360_FEE`.
12064	//   "PARTNER_COST_FEE_TYPE_MEDIA_FEE" - The partner cost is a
12065	// percentage surcharge based on the media cost. Not applicable when the
12066	// partner cost_type is one of: * `PARTNER_COST_TYPE_SHOP_LOCAL` *
12067	// `PARTNER_COST_TYPE_TRUST_METRICS` *
12068	// `PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_VIDEO` *
12069	// `PARTNER_COST_TYPE_MOAT_VIDEO`.
12070	FeeType string `json:"feeType,omitempty"`
12071
12072	// InvoiceType: The invoice type for this partner cost. * Required when
12073	// cost_type is one of: - `PARTNER_COST_TYPE_ADLOOX` -
12074	// `PARTNER_COST_TYPE_DOUBLE_VERIFY` -
12075	// `PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE`. * Output only for other
12076	// types.
12077	//
12078	// Possible values:
12079	//   "PARTNER_COST_INVOICE_TYPE_UNSPECIFIED" - Type value is not
12080	// specified or is unknown in this version.
12081	//   "PARTNER_COST_INVOICE_TYPE_DV360" - Partner cost is billed through
12082	// DV360.
12083	//   "PARTNER_COST_INVOICE_TYPE_PARTNER" - Partner cost is billed by the
12084	// partner.
12085	InvoiceType string `json:"invoiceType,omitempty"`
12086
12087	// ForceSendFields is a list of field names (e.g. "CostType") to
12088	// unconditionally include in API requests. By default, fields with
12089	// empty or default values are omitted from API requests. However, any
12090	// non-pointer, non-interface field appearing in ForceSendFields will be
12091	// sent to the server regardless of whether the field is empty or not.
12092	// This may be used to include empty fields in Patch requests.
12093	ForceSendFields []string `json:"-"`
12094
12095	// NullFields is a list of field names (e.g. "CostType") to include in
12096	// API requests with the JSON null value. By default, fields with empty
12097	// values are omitted from API requests. However, any field with an
12098	// empty value appearing in NullFields will be sent to the server as
12099	// null. It is an error if a field in this list has a non-empty value.
12100	// This may be used to include null fields in Patch requests.
12101	NullFields []string `json:"-"`
12102}
12103
12104func (s *PartnerCost) MarshalJSON() ([]byte, error) {
12105	type NoMethod PartnerCost
12106	raw := NoMethod(*s)
12107	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12108}
12109
12110// PartnerDataAccessConfig: Settings that control how partner related
12111// data may be accessed.
12112type PartnerDataAccessConfig struct {
12113	// SdfConfig: Structured Data Files (SDF) settings for the partner. The
12114	// SDF configuration for the partner.
12115	SdfConfig *SdfConfig `json:"sdfConfig,omitempty"`
12116
12117	// ForceSendFields is a list of field names (e.g. "SdfConfig") to
12118	// unconditionally include in API requests. By default, fields with
12119	// empty or default values are omitted from API requests. However, any
12120	// non-pointer, non-interface field appearing in ForceSendFields will be
12121	// sent to the server regardless of whether the field is empty or not.
12122	// This may be used to include empty fields in Patch requests.
12123	ForceSendFields []string `json:"-"`
12124
12125	// NullFields is a list of field names (e.g. "SdfConfig") to include in
12126	// API requests with the JSON null value. By default, fields with empty
12127	// values are omitted from API requests. However, any field with an
12128	// empty value appearing in NullFields will be sent to the server as
12129	// null. It is an error if a field in this list has a non-empty value.
12130	// This may be used to include null fields in Patch requests.
12131	NullFields []string `json:"-"`
12132}
12133
12134func (s *PartnerDataAccessConfig) MarshalJSON() ([]byte, error) {
12135	type NoMethod PartnerDataAccessConfig
12136	raw := NoMethod(*s)
12137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12138}
12139
12140// PartnerGeneralConfig: General settings of a partner.
12141type PartnerGeneralConfig struct {
12142	// CurrencyCode: Immutable. Partner's currency in ISO 4217 format.
12143	CurrencyCode string `json:"currencyCode,omitempty"`
12144
12145	// TimeZone: Immutable. The standard TZ database name of the partner's
12146	// time zone. For example, `America/New_York`. See more at:
12147	// https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
12148	TimeZone string `json:"timeZone,omitempty"`
12149
12150	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
12151	// unconditionally include in API requests. By default, fields with
12152	// empty or default values are omitted from API requests. However, any
12153	// non-pointer, non-interface field appearing in ForceSendFields will be
12154	// sent to the server regardless of whether the field is empty or not.
12155	// This may be used to include empty fields in Patch requests.
12156	ForceSendFields []string `json:"-"`
12157
12158	// NullFields is a list of field names (e.g. "CurrencyCode") to include
12159	// in API requests with the JSON null value. By default, fields with
12160	// empty values are omitted from API requests. However, any field with
12161	// an empty value appearing in NullFields will be sent to the server as
12162	// null. It is an error if a field in this list has a non-empty value.
12163	// This may be used to include null fields in Patch requests.
12164	NullFields []string `json:"-"`
12165}
12166
12167func (s *PartnerGeneralConfig) MarshalJSON() ([]byte, error) {
12168	type NoMethod PartnerGeneralConfig
12169	raw := NoMethod(*s)
12170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12171}
12172
12173// PartnerRevenueModel: Settings that control how partner revenue is
12174// calculated.
12175type PartnerRevenueModel struct {
12176	// MarkupAmount: Required. The markup amount of the partner revenue
12177	// model. Must be greater than or equal to 0. * When the markup_type is
12178	// set to be `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`, this field
12179	// represents the CPM markup in micros of advertiser's currency. For
12180	// example, 1500000 represents 1.5 standard units of the currency. *
12181	// When the markup_type is set to be
12182	// `PARTNER_REVENUE_MODEL_MARKUP_TYPE_MEDIA_COST_MARKUP`, this field
12183	// represents the media cost percent markup in millis. For example, 100
12184	// represents 0.1% (decimal 0.001). * When the markup_type is set to be
12185	// `PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP`, this
12186	// field represents the total media cost percent markup in millis. For
12187	// example, 100 represents 0.1% (decimal 0.001).
12188	MarkupAmount int64 `json:"markupAmount,omitempty,string"`
12189
12190	// MarkupType: Required. The markup type of the partner revenue model.
12191	//
12192	// Possible values:
12193	//   "PARTNER_REVENUE_MODEL_MARKUP_TYPE_UNSPECIFIED" - Type value is not
12194	// specified or is unknown in this version.
12195	//   "PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM" - Calculate the partner
12196	// revenue based on a fixed CPM.
12197	//   "PARTNER_REVENUE_MODEL_MARKUP_TYPE_MEDIA_COST_MARKUP" - Calculate
12198	// the partner revenue based on a percentage surcharge of its media
12199	// cost.
12200	//   "PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP" -
12201	// Calculate the partner revenue based on a percentage surcharge of its
12202	// total media cost, which includes all partner costs and data costs.
12203	MarkupType string `json:"markupType,omitempty"`
12204
12205	// ForceSendFields is a list of field names (e.g. "MarkupAmount") to
12206	// unconditionally include in API requests. By default, fields with
12207	// empty or default values are omitted from API requests. However, any
12208	// non-pointer, non-interface field appearing in ForceSendFields will be
12209	// sent to the server regardless of whether the field is empty or not.
12210	// This may be used to include empty fields in Patch requests.
12211	ForceSendFields []string `json:"-"`
12212
12213	// NullFields is a list of field names (e.g. "MarkupAmount") to include
12214	// in API requests with the JSON null value. By default, fields with
12215	// empty values are omitted from API requests. However, any field with
12216	// an empty value appearing in NullFields will be sent to the server as
12217	// null. It is an error if a field in this list has a non-empty value.
12218	// This may be used to include null fields in Patch requests.
12219	NullFields []string `json:"-"`
12220}
12221
12222func (s *PartnerRevenueModel) MarshalJSON() ([]byte, error) {
12223	type NoMethod PartnerRevenueModel
12224	raw := NoMethod(*s)
12225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12226}
12227
12228// PerformanceGoal: Settings that control the performance goal of a
12229// campaign or insertion order.
12230type PerformanceGoal struct {
12231	// PerformanceGoalAmountMicros: The goal amount, in micros of the
12232	// advertiser's currency. Applicable when performance_goal_type is one
12233	// of: * `PERFORMANCE_GOAL_TYPE_CPM` * `PERFORMANCE_GOAL_TYPE_CPC` *
12234	// `PERFORMANCE_GOAL_TYPE_CPA` * `PERFORMANCE_GOAL_TYPE_CPIAVC` *
12235	// `PERFORMANCE_GOAL_TYPE_VCPM` For example 1500000 represents 1.5
12236	// standard units of the currency.
12237	PerformanceGoalAmountMicros int64 `json:"performanceGoalAmountMicros,omitempty,string"`
12238
12239	// PerformanceGoalPercentageMicros: The decimal representation of the
12240	// goal percentage in micros. Applicable when performance_goal_type is
12241	// one of: * `PERFORMANCE_GOAL_TYPE_CTR` *
12242	// `PERFORMANCE_GOAL_TYPE_VIEWABILITY` *
12243	// `PERFORMANCE_GOAL_TYPE_CLICK_CVR` *
12244	// `PERFORMANCE_GOAL_TYPE_IMPRESSION_CVR` * `PERFORMANCE_GOAL_TYPE_VTR`
12245	// * `PERFORMANCE_GOAL_TYPE_AUDIO_COMPLETION_RATE` *
12246	// `PERFORMANCE_GOAL_TYPE_VIDEO_COMPLETION_RATE` For example, 70000
12247	// represents 7% (decimal 0.07).
12248	PerformanceGoalPercentageMicros int64 `json:"performanceGoalPercentageMicros,omitempty,string"`
12249
12250	// PerformanceGoalString: A key performance indicator (KPI) string,
12251	// which can be empty. Must be UTF-8 encoded with a length of no more
12252	// than 100 characters. Applicable when performance_goal_type is set to
12253	// `PERFORMANCE_GOAL_TYPE_OTHER`.
12254	PerformanceGoalString string `json:"performanceGoalString,omitempty"`
12255
12256	// PerformanceGoalType: Required. The type of the performance goal.
12257	//
12258	// Possible values:
12259	//   "PERFORMANCE_GOAL_TYPE_UNSPECIFIED" - Performance goal type is not
12260	// specified or is unknown in this version.
12261	//   "PERFORMANCE_GOAL_TYPE_CPM" - The performance goal is set in CPM
12262	// (cost per mille).
12263	//   "PERFORMANCE_GOAL_TYPE_CPC" - The performance goal is set in CPC
12264	// (cost per click).
12265	//   "PERFORMANCE_GOAL_TYPE_CPA" - The performance goal is set in CPA
12266	// (cost per action).
12267	//   "PERFORMANCE_GOAL_TYPE_CTR" - The performance goal is set in CTR
12268	// (click-through rate) percentage.
12269	//   "PERFORMANCE_GOAL_TYPE_VIEWABILITY" - The performance goal is set
12270	// in Viewability percentage.
12271	//   "PERFORMANCE_GOAL_TYPE_CPIAVC" - The performance goal is set as
12272	// CPIAVC (cost per impression audible and visible at completion).
12273	//   "PERFORMANCE_GOAL_TYPE_CPE" - The performance goal is set in CPE
12274	// (cost per engagement).
12275	//   "PERFORMANCE_GOAL_TYPE_CLICK_CVR" - The performance goal is set in
12276	// click conversion rate (conversions per click) percentage.
12277	//   "PERFORMANCE_GOAL_TYPE_IMPRESSION_CVR" - The performance goal is
12278	// set in impression conversion rate (conversions per impression)
12279	// percentage.
12280	//   "PERFORMANCE_GOAL_TYPE_VCPM" - The performance goal is set in VCPM
12281	// (cost per thousand viewable impressions).
12282	//   "PERFORMANCE_GOAL_TYPE_VTR" - The performance goal is set in
12283	// YouTube view rate (YouTube views per impression) percentage.
12284	//   "PERFORMANCE_GOAL_TYPE_AUDIO_COMPLETION_RATE" - The performance
12285	// goal is set in audio completion rate (complete audio listens per
12286	// impression) percentage.
12287	//   "PERFORMANCE_GOAL_TYPE_VIDEO_COMPLETION_RATE" - The performance
12288	// goal is set in video completion rate (complete video views per
12289	// impression) percentage.
12290	//   "PERFORMANCE_GOAL_TYPE_OTHER" - The performance goal is set to
12291	// Other.
12292	PerformanceGoalType string `json:"performanceGoalType,omitempty"`
12293
12294	// ForceSendFields is a list of field names (e.g.
12295	// "PerformanceGoalAmountMicros") to unconditionally include in API
12296	// requests. By default, fields with empty or default values are omitted
12297	// from API requests. However, any non-pointer, non-interface field
12298	// appearing in ForceSendFields will be sent to the server regardless of
12299	// whether the field is empty or not. This may be used to include empty
12300	// fields in Patch requests.
12301	ForceSendFields []string `json:"-"`
12302
12303	// NullFields is a list of field names (e.g.
12304	// "PerformanceGoalAmountMicros") to include in API requests with the
12305	// JSON null value. By default, fields with empty values are omitted
12306	// from API requests. However, any field with an empty value appearing
12307	// in NullFields will be sent to the server as null. It is an error if a
12308	// field in this list has a non-empty value. This may be used to include
12309	// null fields in Patch requests.
12310	NullFields []string `json:"-"`
12311}
12312
12313func (s *PerformanceGoal) MarshalJSON() ([]byte, error) {
12314	type NoMethod PerformanceGoal
12315	raw := NoMethod(*s)
12316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12317}
12318
12319// PerformanceGoalBidStrategy: A strategy that automatically adjusts the
12320// bid to meet or beat a specified performance goal.
12321type PerformanceGoalBidStrategy struct {
12322	// CustomBiddingAlgorithmId: The ID of the Custom Bidding Algorithm used
12323	// by this strategy. Only applicable when performance_goal_type is set
12324	// to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.
12325	CustomBiddingAlgorithmId int64 `json:"customBiddingAlgorithmId,omitempty,string"`
12326
12327	// MaxAverageCpmBidAmountMicros: The maximum average CPM that may be
12328	// bid, in micros of the advertiser's currency. Must be greater than or
12329	// equal to a billable unit of the given currency. Not applicable when
12330	// performance_goal_type is set to
12331	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`. For example,
12332	// 1500000 represents 1.5 standard units of the currency.
12333	MaxAverageCpmBidAmountMicros int64 `json:"maxAverageCpmBidAmountMicros,omitempty,string"`
12334
12335	// PerformanceGoalAmountMicros: Required. The performance goal the
12336	// bidding strategy will attempt to meet or beat, in micros of the
12337	// advertiser's currency or in micro of the ROAS (Return On Advertising
12338	// Spend) value which is also based on advertiser's currency. Must be
12339	// greater than or equal to a billable unit of the given currency and
12340	// smaller or equal to upper bounds. Each performance_goal_type has its
12341	// upper bound: * when performance_goal_type is
12342	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA`, upper bound is 10000.00
12343	// USD. * when performance_goal_type is
12344	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC`, upper bound is 1000.00
12345	// USD. * when performance_goal_type is
12346	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, upper bound is
12347	// 1000.00 USD. * when performance_goal_type is
12348	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`, upper bound is
12349	// 1000.00 and lower bound is 0.01. Example: If set to
12350	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, the bid price
12351	// will be based on the probability that each available impression will
12352	// be viewable. For example, if viewable CPM target is $2 and an
12353	// impression is 40% likely to be viewable, the bid price will be $0.80
12354	// CPM (40% of $2). For example, 1500000 represents 1.5 standard units
12355	// of the currency or ROAS value.
12356	PerformanceGoalAmountMicros int64 `json:"performanceGoalAmountMicros,omitempty,string"`
12357
12358	// PerformanceGoalType: Required. The type of the performance goal that
12359	// the bidding strategy will try to meet or beat. For line item level
12360	// usage, the value must be one of: *
12361	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA` *
12362	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC` *
12363	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM` *
12364	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.
12365	//
12366	// Possible values:
12367	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_UNSPECIFIED" - Type value
12368	// is not specified or is unknown in this version.
12369	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA" - Cost per action.
12370	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC" - Cost per click.
12371	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM" - Viewable
12372	// CPM.
12373	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO" - Custom
12374	// bidding algorithm.
12375	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA" - Completed inview
12376	// and audible views.
12377	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN" - Inview time over
12378	// 10 secs views.
12379	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED" - Viewable
12380	// impressions.
12381	PerformanceGoalType string `json:"performanceGoalType,omitempty"`
12382
12383	// ForceSendFields is a list of field names (e.g.
12384	// "CustomBiddingAlgorithmId") to unconditionally include in API
12385	// requests. By default, fields with empty or default values are omitted
12386	// from API requests. However, any non-pointer, non-interface field
12387	// appearing in ForceSendFields will be sent to the server regardless of
12388	// whether the field is empty or not. This may be used to include empty
12389	// fields in Patch requests.
12390	ForceSendFields []string `json:"-"`
12391
12392	// NullFields is a list of field names (e.g. "CustomBiddingAlgorithmId")
12393	// to include in API requests with the JSON null value. By default,
12394	// fields with empty values are omitted from API requests. However, any
12395	// field with an empty value appearing in NullFields will be sent to the
12396	// server as null. It is an error if a field in this list has a
12397	// non-empty value. This may be used to include null fields in Patch
12398	// requests.
12399	NullFields []string `json:"-"`
12400}
12401
12402func (s *PerformanceGoalBidStrategy) MarshalJSON() ([]byte, error) {
12403	type NoMethod PerformanceGoalBidStrategy
12404	raw := NoMethod(*s)
12405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12406}
12407
12408// PoiAssignedTargetingOptionDetails: Details for assigned POI targeting
12409// option. This will be populated in the details field of an
12410// AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`.
12411type PoiAssignedTargetingOptionDetails struct {
12412	// DisplayName: Output only. The display name of a POI, e.g. "Times
12413	// Square", "Space Needle", followed by its full address if available.
12414	DisplayName string `json:"displayName,omitempty"`
12415
12416	// Latitude: Output only. Latitude of the POI rounding to 6th decimal
12417	// place.
12418	Latitude float64 `json:"latitude,omitempty"`
12419
12420	// Longitude: Output only. Longitude of the POI rounding to 6th decimal
12421	// place.
12422	Longitude float64 `json:"longitude,omitempty"`
12423
12424	// ProximityRadiusAmount: Required. The radius of the area around the
12425	// POI that will be targeted. The units of the radius are specified by
12426	// proximity_radius_unit. Must be 1 to 800 if unit is
12427	// `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is
12428	// `DISTANCE_UNIT_MILES`.
12429	ProximityRadiusAmount float64 `json:"proximityRadiusAmount,omitempty"`
12430
12431	// ProximityRadiusUnit: Required. The unit of distance by which the
12432	// targeting radius is measured.
12433	//
12434	// Possible values:
12435	//   "DISTANCE_UNIT_UNSPECIFIED" - Type value is not specified or is
12436	// unknown in this version.
12437	//   "DISTANCE_UNIT_MILES" - Miles.
12438	//   "DISTANCE_UNIT_KILOMETERS" - Kilometers.
12439	ProximityRadiusUnit string `json:"proximityRadiusUnit,omitempty"`
12440
12441	// TargetingOptionId: Required. The targeting_option_id of a
12442	// TargetingOption of type `TARGETING_TYPE_POI` or reuse an existing
12443	// assigned_targeting_option_id.
12444	TargetingOptionId string `json:"targetingOptionId,omitempty"`
12445
12446	// ForceSendFields is a list of field names (e.g. "DisplayName") to
12447	// unconditionally include in API requests. By default, fields with
12448	// empty or default values are omitted from API requests. However, any
12449	// non-pointer, non-interface field appearing in ForceSendFields will be
12450	// sent to the server regardless of whether the field is empty or not.
12451	// This may be used to include empty fields in Patch requests.
12452	ForceSendFields []string `json:"-"`
12453
12454	// NullFields is a list of field names (e.g. "DisplayName") to include
12455	// in API requests with the JSON null value. By default, fields with
12456	// empty values are omitted from API requests. However, any field with
12457	// an empty value appearing in NullFields will be sent to the server as
12458	// null. It is an error if a field in this list has a non-empty value.
12459	// This may be used to include null fields in Patch requests.
12460	NullFields []string `json:"-"`
12461}
12462
12463func (s *PoiAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
12464	type NoMethod PoiAssignedTargetingOptionDetails
12465	raw := NoMethod(*s)
12466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12467}
12468
12469func (s *PoiAssignedTargetingOptionDetails) UnmarshalJSON(data []byte) error {
12470	type NoMethod PoiAssignedTargetingOptionDetails
12471	var s1 struct {
12472		Latitude              gensupport.JSONFloat64 `json:"latitude"`
12473		Longitude             gensupport.JSONFloat64 `json:"longitude"`
12474		ProximityRadiusAmount gensupport.JSONFloat64 `json:"proximityRadiusAmount"`
12475		*NoMethod
12476	}
12477	s1.NoMethod = (*NoMethod)(s)
12478	if err := json.Unmarshal(data, &s1); err != nil {
12479		return err
12480	}
12481	s.Latitude = float64(s1.Latitude)
12482	s.Longitude = float64(s1.Longitude)
12483	s.ProximityRadiusAmount = float64(s1.ProximityRadiusAmount)
12484	return nil
12485}
12486
12487// PoiSearchTerms: Search terms for POI targeting options.
12488type PoiSearchTerms struct {
12489	// PoiQuery: The search query for the desired POI name, street address,
12490	// or coordinate of the desired POI. The query can be a prefix, e.g.
12491	// "Times squar", "40.7505045,-73.99562", "315 W 44th St", etc.
12492	PoiQuery string `json:"poiQuery,omitempty"`
12493
12494	// ForceSendFields is a list of field names (e.g. "PoiQuery") to
12495	// unconditionally include in API requests. By default, fields with
12496	// empty or default values are omitted from API requests. However, any
12497	// non-pointer, non-interface field appearing in ForceSendFields will be
12498	// sent to the server regardless of whether the field is empty or not.
12499	// This may be used to include empty fields in Patch requests.
12500	ForceSendFields []string `json:"-"`
12501
12502	// NullFields is a list of field names (e.g. "PoiQuery") to include in
12503	// API requests with the JSON null value. By default, fields with empty
12504	// values are omitted from API requests. However, any field with an
12505	// empty value appearing in NullFields will be sent to the server as
12506	// null. It is an error if a field in this list has a non-empty value.
12507	// This may be used to include null fields in Patch requests.
12508	NullFields []string `json:"-"`
12509}
12510
12511func (s *PoiSearchTerms) MarshalJSON() ([]byte, error) {
12512	type NoMethod PoiSearchTerms
12513	raw := NoMethod(*s)
12514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12515}
12516
12517// PoiTargetingOptionDetails: Represents a targetable point of
12518// interest(POI). This will be populated in the poi_details field when
12519// targeting_type is `TARGETING_TYPE_POI`.
12520type PoiTargetingOptionDetails struct {
12521	// DisplayName: Output only. The display name of a POI(e.g. "Times
12522	// Square", "Space Needle"), followed by its full address if available.
12523	DisplayName string `json:"displayName,omitempty"`
12524
12525	// Latitude: Output only. Latitude of the POI rounding to 6th decimal
12526	// place.
12527	Latitude float64 `json:"latitude,omitempty"`
12528
12529	// Longitude: Output only. Longitude of the POI rounding to 6th decimal
12530	// place.
12531	Longitude float64 `json:"longitude,omitempty"`
12532
12533	// ForceSendFields is a list of field names (e.g. "DisplayName") to
12534	// unconditionally include in API requests. By default, fields with
12535	// empty or default values are omitted from API requests. However, any
12536	// non-pointer, non-interface field appearing in ForceSendFields will be
12537	// sent to the server regardless of whether the field is empty or not.
12538	// This may be used to include empty fields in Patch requests.
12539	ForceSendFields []string `json:"-"`
12540
12541	// NullFields is a list of field names (e.g. "DisplayName") to include
12542	// in API requests with the JSON null value. By default, fields with
12543	// empty values are omitted from API requests. However, any field with
12544	// an empty value appearing in NullFields will be sent to the server as
12545	// null. It is an error if a field in this list has a non-empty value.
12546	// This may be used to include null fields in Patch requests.
12547	NullFields []string `json:"-"`
12548}
12549
12550func (s *PoiTargetingOptionDetails) MarshalJSON() ([]byte, error) {
12551	type NoMethod PoiTargetingOptionDetails
12552	raw := NoMethod(*s)
12553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12554}
12555
12556func (s *PoiTargetingOptionDetails) UnmarshalJSON(data []byte) error {
12557	type NoMethod PoiTargetingOptionDetails
12558	var s1 struct {
12559		Latitude  gensupport.JSONFloat64 `json:"latitude"`
12560		Longitude gensupport.JSONFloat64 `json:"longitude"`
12561		*NoMethod
12562	}
12563	s1.NoMethod = (*NoMethod)(s)
12564	if err := json.Unmarshal(data, &s1); err != nil {
12565		return err
12566	}
12567	s.Latitude = float64(s1.Latitude)
12568	s.Longitude = float64(s1.Longitude)
12569	return nil
12570}
12571
12572// PrismaConfig: Settings specific to the Mediaocean Prisma tool.
12573type PrismaConfig struct {
12574	// PrismaCpeCode: Required. Relevant client, product, and estimate codes
12575	// from the Mediaocean Prisma tool.
12576	PrismaCpeCode *PrismaCpeCode `json:"prismaCpeCode,omitempty"`
12577
12578	// PrismaType: Required. The Prisma type.
12579	//
12580	// Possible values:
12581	//   "PRISMA_TYPE_UNSPECIFIED" - Type is not specified or unknown in
12582	// this version.
12583	//   "PRISMA_TYPE_DISPLAY" - Display type.
12584	//   "PRISMA_TYPE_SEARCH" - Search type.
12585	//   "PRISMA_TYPE_VIDEO" - Video type.
12586	//   "PRISMA_TYPE_AUDIO" - Audio type.
12587	//   "PRISMA_TYPE_SOCIAL" - Social type.
12588	//   "PRISMA_TYPE_FEE" - Fee type.
12589	PrismaType string `json:"prismaType,omitempty"`
12590
12591	// Supplier: Required. The entity allocated this budget (DSP, site,
12592	// etc.).
12593	Supplier string `json:"supplier,omitempty"`
12594
12595	// ForceSendFields is a list of field names (e.g. "PrismaCpeCode") to
12596	// unconditionally include in API requests. By default, fields with
12597	// empty or default values are omitted from API requests. However, any
12598	// non-pointer, non-interface field appearing in ForceSendFields will be
12599	// sent to the server regardless of whether the field is empty or not.
12600	// This may be used to include empty fields in Patch requests.
12601	ForceSendFields []string `json:"-"`
12602
12603	// NullFields is a list of field names (e.g. "PrismaCpeCode") to include
12604	// in API requests with the JSON null value. By default, fields with
12605	// empty values are omitted from API requests. However, any field with
12606	// an empty value appearing in NullFields will be sent to the server as
12607	// null. It is an error if a field in this list has a non-empty value.
12608	// This may be used to include null fields in Patch requests.
12609	NullFields []string `json:"-"`
12610}
12611
12612func (s *PrismaConfig) MarshalJSON() ([]byte, error) {
12613	type NoMethod PrismaConfig
12614	raw := NoMethod(*s)
12615	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12616}
12617
12618// PrismaCpeCode: Google Payments Center supports searching and
12619// filtering on the component fields of this code.
12620type PrismaCpeCode struct {
12621	// PrismaClientCode: The Prisma client code.
12622	PrismaClientCode string `json:"prismaClientCode,omitempty"`
12623
12624	// PrismaEstimateCode: The Prisma estimate code.
12625	PrismaEstimateCode string `json:"prismaEstimateCode,omitempty"`
12626
12627	// PrismaProductCode: The Prisma product code.
12628	PrismaProductCode string `json:"prismaProductCode,omitempty"`
12629
12630	// ForceSendFields is a list of field names (e.g. "PrismaClientCode") to
12631	// unconditionally include in API requests. By default, fields with
12632	// empty or default values are omitted from API requests. However, any
12633	// non-pointer, non-interface field appearing in ForceSendFields will be
12634	// sent to the server regardless of whether the field is empty or not.
12635	// This may be used to include empty fields in Patch requests.
12636	ForceSendFields []string `json:"-"`
12637
12638	// NullFields is a list of field names (e.g. "PrismaClientCode") to
12639	// include in API requests with the JSON null value. By default, fields
12640	// with empty values are omitted from API requests. However, any field
12641	// with an empty value appearing in NullFields will be sent to the
12642	// server as null. It is an error if a field in this list has a
12643	// non-empty value. This may be used to include null fields in Patch
12644	// requests.
12645	NullFields []string `json:"-"`
12646}
12647
12648func (s *PrismaCpeCode) MarshalJSON() ([]byte, error) {
12649	type NoMethod PrismaCpeCode
12650	raw := NoMethod(*s)
12651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12652}
12653
12654// ProximityLocationListAssignedTargetingOptionDetails: Targeting
12655// details for proximity location list. This will be populated in the
12656// details field of an AssignedTargetingOption when targeting_type is
12657// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`.
12658type ProximityLocationListAssignedTargetingOptionDetails struct {
12659	// ProximityLocationListId: Required. ID of the proximity location list.
12660	// Should refer to the location_list_id field of a LocationList resource
12661	// whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`.
12662	ProximityLocationListId int64 `json:"proximityLocationListId,omitempty,string"`
12663
12664	// ProximityRadiusRange: Required. Radius range for proximity location
12665	// list. This represents the size of the area around a chosen location
12666	// that will be targeted. `All` proximity location targeting under a
12667	// single resource must have the same radius range value. Set this value
12668	// to match any existing targeting. If updated, this field will change
12669	// the radius range for all proximity targeting under the resource.
12670	//
12671	// Possible values:
12672	//   "PROXIMITY_RADIUS_RANGE_UNSPECIFIED" - The targeted radius range is
12673	// not specified or is unknown. Default value when radius range is not
12674	// specified in this version. This enum is a placeholder for default
12675	// value and does not represent a real radius range option.
12676	//   "PROXIMITY_RADIUS_RANGE_SMALL" - The targeted radius range is
12677	// small.
12678	//   "PROXIMITY_RADIUS_RANGE_MEDIUM" - The targeted radius range is
12679	// medium.
12680	//   "PROXIMITY_RADIUS_RANGE_LARGE" - The targeted radius range is
12681	// large.
12682	ProximityRadiusRange string `json:"proximityRadiusRange,omitempty"`
12683
12684	// ForceSendFields is a list of field names (e.g.
12685	// "ProximityLocationListId") to unconditionally include in API
12686	// requests. By default, fields with empty or default values are omitted
12687	// from API requests. However, any non-pointer, non-interface field
12688	// appearing in ForceSendFields will be sent to the server regardless of
12689	// whether the field is empty or not. This may be used to include empty
12690	// fields in Patch requests.
12691	ForceSendFields []string `json:"-"`
12692
12693	// NullFields is a list of field names (e.g. "ProximityLocationListId")
12694	// to include in API requests with the JSON null value. By default,
12695	// fields with empty values are omitted from API requests. However, any
12696	// field with an empty value appearing in NullFields will be sent to the
12697	// server as null. It is an error if a field in this list has a
12698	// non-empty value. This may be used to include null fields in Patch
12699	// requests.
12700	NullFields []string `json:"-"`
12701}
12702
12703func (s *ProximityLocationListAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
12704	type NoMethod ProximityLocationListAssignedTargetingOptionDetails
12705	raw := NoMethod(*s)
12706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12707}
12708
12709// PublisherReviewStatus: Publisher review status for the creative.
12710type PublisherReviewStatus struct {
12711	// PublisherName: The publisher reviewing the creative.
12712	PublisherName string `json:"publisherName,omitempty"`
12713
12714	// Status: Status of the publisher review.
12715	//
12716	// Possible values:
12717	//   "REVIEW_STATUS_UNSPECIFIED" - Type value is not specified or is
12718	// unknown in this version.
12719	//   "REVIEW_STATUS_APPROVED" - The creative is approved.
12720	//   "REVIEW_STATUS_REJECTED" - The creative is rejected.
12721	//   "REVIEW_STATUS_PENDING" - The creative is pending review.
12722	Status string `json:"status,omitempty"`
12723
12724	// ForceSendFields is a list of field names (e.g. "PublisherName") to
12725	// unconditionally include in API requests. By default, fields with
12726	// empty or default values are omitted from API requests. However, any
12727	// non-pointer, non-interface field appearing in ForceSendFields will be
12728	// sent to the server regardless of whether the field is empty or not.
12729	// This may be used to include empty fields in Patch requests.
12730	ForceSendFields []string `json:"-"`
12731
12732	// NullFields is a list of field names (e.g. "PublisherName") to include
12733	// in API requests with the JSON null value. By default, fields with
12734	// empty values are omitted from API requests. However, any field with
12735	// an empty value appearing in NullFields will be sent to the server as
12736	// null. It is an error if a field in this list has a non-empty value.
12737	// This may be used to include null fields in Patch requests.
12738	NullFields []string `json:"-"`
12739}
12740
12741func (s *PublisherReviewStatus) MarshalJSON() ([]byte, error) {
12742	type NoMethod PublisherReviewStatus
12743	raw := NoMethod(*s)
12744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12745}
12746
12747// RateDetails: The rate related settings of the inventory source.
12748type RateDetails struct {
12749	// InventorySourceRateType: The rate type. Acceptable values are
12750	// `INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED`,
12751	// `INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR`, and
12752	// `INVENTORY_SOURCE_RATE_TYPE_CPD`.
12753	//
12754	// Possible values:
12755	//   "INVENTORY_SOURCE_RATE_TYPE_UNSPECIFIED" - The rate type is not
12756	// specified or is unknown in this version.
12757	//   "INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED" - The rate type is CPM
12758	// (Fixed).
12759	//   "INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR" - The rate type is CPM
12760	// (Floor).
12761	//   "INVENTORY_SOURCE_RATE_TYPE_CPD" - The rate type is Cost per Day.
12762	//   "INVENTORY_SOURCE_RATE_TYPE_FLAT" - The rate type is Flat.
12763	InventorySourceRateType string `json:"inventorySourceRateType,omitempty"`
12764
12765	// MinimumSpend: Output only. The amount that the buyer has committed to
12766	// spending on the inventory source up front. Only applicable for
12767	// guaranteed inventory sources.
12768	MinimumSpend *Money `json:"minimumSpend,omitempty"`
12769
12770	// Rate: The rate for the inventory source.
12771	Rate *Money `json:"rate,omitempty"`
12772
12773	// UnitsPurchased: Required for guaranteed inventory sources. The number
12774	// of impressions guaranteed by the seller.
12775	UnitsPurchased int64 `json:"unitsPurchased,omitempty,string"`
12776
12777	// ForceSendFields is a list of field names (e.g.
12778	// "InventorySourceRateType") to unconditionally include in API
12779	// requests. By default, fields with empty or default values are omitted
12780	// from API requests. However, any non-pointer, non-interface field
12781	// appearing in ForceSendFields will be sent to the server regardless of
12782	// whether the field is empty or not. This may be used to include empty
12783	// fields in Patch requests.
12784	ForceSendFields []string `json:"-"`
12785
12786	// NullFields is a list of field names (e.g. "InventorySourceRateType")
12787	// to include in API requests with the JSON null value. By default,
12788	// fields with empty values are omitted from API requests. However, any
12789	// field with an empty value appearing in NullFields will be sent to the
12790	// server as null. It is an error if a field in this list has a
12791	// non-empty value. This may be used to include null fields in Patch
12792	// requests.
12793	NullFields []string `json:"-"`
12794}
12795
12796func (s *RateDetails) MarshalJSON() ([]byte, error) {
12797	type NoMethod RateDetails
12798	raw := NoMethod(*s)
12799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12800}
12801
12802// RegionalLocationListAssignedTargetingOptionDetails: Targeting details
12803// for regional location list. This will be populated in the details
12804// field of an AssignedTargetingOption when targeting_type is
12805// `TARGETING_TYPE_REGIONAL_LOCATION_LIST`.
12806type RegionalLocationListAssignedTargetingOptionDetails struct {
12807	// Negative: Indicates if this option is being negatively targeted.
12808	Negative bool `json:"negative,omitempty"`
12809
12810	// RegionalLocationListId: Required. ID of the regional location list.
12811	// Should refer to the location_list_id field of a LocationList resource
12812	// whose type is `TARGETING_LOCATION_TYPE_REGIONAL`.
12813	RegionalLocationListId int64 `json:"regionalLocationListId,omitempty,string"`
12814
12815	// ForceSendFields is a list of field names (e.g. "Negative") to
12816	// unconditionally include in API requests. By default, fields with
12817	// empty or default values are omitted from API requests. However, any
12818	// non-pointer, non-interface field appearing in ForceSendFields will be
12819	// sent to the server regardless of whether the field is empty or not.
12820	// This may be used to include empty fields in Patch requests.
12821	ForceSendFields []string `json:"-"`
12822
12823	// NullFields is a list of field names (e.g. "Negative") to include in
12824	// API requests with the JSON null value. By default, fields with empty
12825	// values are omitted from API requests. However, any field with an
12826	// empty value appearing in NullFields will be sent to the server as
12827	// null. It is an error if a field in this list has a non-empty value.
12828	// This may be used to include null fields in Patch requests.
12829	NullFields []string `json:"-"`
12830}
12831
12832func (s *RegionalLocationListAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
12833	type NoMethod RegionalLocationListAssignedTargetingOptionDetails
12834	raw := NoMethod(*s)
12835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12836}
12837
12838// ReplaceNegativeKeywordsRequest: Request message for
12839// NegativeKeywordService.ReplaceNegativeKeywords.
12840type ReplaceNegativeKeywordsRequest struct {
12841	// NewNegativeKeywords: The negative keywords that will replace the
12842	// existing keywords in the negative keyword list, specified as a list
12843	// of NegativeKeywords.
12844	NewNegativeKeywords []*NegativeKeyword `json:"newNegativeKeywords,omitempty"`
12845
12846	// ForceSendFields is a list of field names (e.g. "NewNegativeKeywords")
12847	// to unconditionally include in API requests. By default, fields with
12848	// empty or default values are omitted from API requests. However, any
12849	// non-pointer, non-interface field appearing in ForceSendFields will be
12850	// sent to the server regardless of whether the field is empty or not.
12851	// This may be used to include empty fields in Patch requests.
12852	ForceSendFields []string `json:"-"`
12853
12854	// NullFields is a list of field names (e.g. "NewNegativeKeywords") to
12855	// include in API requests with the JSON null value. By default, fields
12856	// with empty values are omitted from API requests. However, any field
12857	// with an empty value appearing in NullFields will be sent to the
12858	// server as null. It is an error if a field in this list has a
12859	// non-empty value. This may be used to include null fields in Patch
12860	// requests.
12861	NullFields []string `json:"-"`
12862}
12863
12864func (s *ReplaceNegativeKeywordsRequest) MarshalJSON() ([]byte, error) {
12865	type NoMethod ReplaceNegativeKeywordsRequest
12866	raw := NoMethod(*s)
12867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12868}
12869
12870// ReplaceNegativeKeywordsResponse: Response message for
12871// NegativeKeywordService.ReplaceNegativeKeywords.
12872type ReplaceNegativeKeywordsResponse struct {
12873	// NegativeKeywords: The full list of negative keywords now present in
12874	// the negative keyword list.
12875	NegativeKeywords []*NegativeKeyword `json:"negativeKeywords,omitempty"`
12876
12877	// ServerResponse contains the HTTP response code and headers from the
12878	// server.
12879	googleapi.ServerResponse `json:"-"`
12880
12881	// ForceSendFields is a list of field names (e.g. "NegativeKeywords") to
12882	// unconditionally include in API requests. By default, fields with
12883	// empty or default values are omitted from API requests. However, any
12884	// non-pointer, non-interface field appearing in ForceSendFields will be
12885	// sent to the server regardless of whether the field is empty or not.
12886	// This may be used to include empty fields in Patch requests.
12887	ForceSendFields []string `json:"-"`
12888
12889	// NullFields is a list of field names (e.g. "NegativeKeywords") to
12890	// include in API requests with the JSON null value. By default, fields
12891	// with empty values are omitted from API requests. However, any field
12892	// with an empty value appearing in NullFields will be sent to the
12893	// server as null. It is an error if a field in this list has a
12894	// non-empty value. This may be used to include null fields in Patch
12895	// requests.
12896	NullFields []string `json:"-"`
12897}
12898
12899func (s *ReplaceNegativeKeywordsResponse) MarshalJSON() ([]byte, error) {
12900	type NoMethod ReplaceNegativeKeywordsResponse
12901	raw := NoMethod(*s)
12902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12903}
12904
12905// ReplaceSitesRequest: Request message for SiteService.ReplaceSites.
12906type ReplaceSitesRequest struct {
12907	// AdvertiserId: The ID of the advertiser that owns the parent channel.
12908	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
12909
12910	// NewSites: The sites that will replace the existing sites assigned to
12911	// the channel, specified as a list of Sites.
12912	NewSites []*Site `json:"newSites,omitempty"`
12913
12914	// PartnerId: The ID of the partner that owns the parent channel.
12915	PartnerId int64 `json:"partnerId,omitempty,string"`
12916
12917	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
12918	// unconditionally include in API requests. By default, fields with
12919	// empty or default values are omitted from API requests. However, any
12920	// non-pointer, non-interface field appearing in ForceSendFields will be
12921	// sent to the server regardless of whether the field is empty or not.
12922	// This may be used to include empty fields in Patch requests.
12923	ForceSendFields []string `json:"-"`
12924
12925	// NullFields is a list of field names (e.g. "AdvertiserId") to include
12926	// in API requests with the JSON null value. By default, fields with
12927	// empty values are omitted from API requests. However, any field with
12928	// an empty value appearing in NullFields will be sent to the server as
12929	// null. It is an error if a field in this list has a non-empty value.
12930	// This may be used to include null fields in Patch requests.
12931	NullFields []string `json:"-"`
12932}
12933
12934func (s *ReplaceSitesRequest) MarshalJSON() ([]byte, error) {
12935	type NoMethod ReplaceSitesRequest
12936	raw := NoMethod(*s)
12937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12938}
12939
12940// ReplaceSitesResponse: Response message for SiteService.ReplaceSites.
12941type ReplaceSitesResponse struct {
12942	// Sites: The list of sites in the channel after replacing.
12943	Sites []*Site `json:"sites,omitempty"`
12944
12945	// ServerResponse contains the HTTP response code and headers from the
12946	// server.
12947	googleapi.ServerResponse `json:"-"`
12948
12949	// ForceSendFields is a list of field names (e.g. "Sites") to
12950	// unconditionally include in API requests. By default, fields with
12951	// empty or default values are omitted from API requests. However, any
12952	// non-pointer, non-interface field appearing in ForceSendFields will be
12953	// sent to the server regardless of whether the field is empty or not.
12954	// This may be used to include empty fields in Patch requests.
12955	ForceSendFields []string `json:"-"`
12956
12957	// NullFields is a list of field names (e.g. "Sites") to include in API
12958	// requests with the JSON null value. By default, fields with empty
12959	// values are omitted from API requests. However, any field with an
12960	// empty value appearing in NullFields will be sent to the server as
12961	// null. It is an error if a field in this list has a non-empty value.
12962	// This may be used to include null fields in Patch requests.
12963	NullFields []string `json:"-"`
12964}
12965
12966func (s *ReplaceSitesResponse) MarshalJSON() ([]byte, error) {
12967	type NoMethod ReplaceSitesResponse
12968	raw := NoMethod(*s)
12969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12970}
12971
12972// ReviewStatusInfo: Review statuses for the creative.
12973type ReviewStatusInfo struct {
12974	// ApprovalStatus: Represents the basic approval needed for a creative
12975	// to begin serving. Summary of creative_and_landing_page_review_status
12976	// and content_and_policy_review_status.
12977	//
12978	// Possible values:
12979	//   "APPROVAL_STATUS_UNSPECIFIED" - Type value is not specified or is
12980	// unknown in this version.
12981	//   "APPROVAL_STATUS_PENDING_NOT_SERVABLE" - The creative is still
12982	// under review and not servable.
12983	//   "APPROVAL_STATUS_PENDING_SERVABLE" - The creative has passed
12984	// creative & landing page review and is servable, but is awaiting
12985	// additional content & policy review.
12986	//   "APPROVAL_STATUS_APPROVED_SERVABLE" - Both creative & landing page
12987	// review and content & policy review are approved. The creative is
12988	// servable.
12989	//   "APPROVAL_STATUS_REJECTED_NOT_SERVABLE" - There is an issue with
12990	// the creative that must be fixed before it can serve.
12991	ApprovalStatus string `json:"approvalStatus,omitempty"`
12992
12993	// ContentAndPolicyReviewStatus: Content and policy review status for
12994	// the creative.
12995	//
12996	// Possible values:
12997	//   "REVIEW_STATUS_UNSPECIFIED" - Type value is not specified or is
12998	// unknown in this version.
12999	//   "REVIEW_STATUS_APPROVED" - The creative is approved.
13000	//   "REVIEW_STATUS_REJECTED" - The creative is rejected.
13001	//   "REVIEW_STATUS_PENDING" - The creative is pending review.
13002	ContentAndPolicyReviewStatus string `json:"contentAndPolicyReviewStatus,omitempty"`
13003
13004	// CreativeAndLandingPageReviewStatus: Creative and landing page review
13005	// status for the creative.
13006	//
13007	// Possible values:
13008	//   "REVIEW_STATUS_UNSPECIFIED" - Type value is not specified or is
13009	// unknown in this version.
13010	//   "REVIEW_STATUS_APPROVED" - The creative is approved.
13011	//   "REVIEW_STATUS_REJECTED" - The creative is rejected.
13012	//   "REVIEW_STATUS_PENDING" - The creative is pending review.
13013	CreativeAndLandingPageReviewStatus string `json:"creativeAndLandingPageReviewStatus,omitempty"`
13014
13015	// ExchangeReviewStatuses: Exchange review statuses for the creative.
13016	ExchangeReviewStatuses []*ExchangeReviewStatus `json:"exchangeReviewStatuses,omitempty"`
13017
13018	// PublisherReviewStatuses: Publisher review statuses for the creative.
13019	PublisherReviewStatuses []*PublisherReviewStatus `json:"publisherReviewStatuses,omitempty"`
13020
13021	// ForceSendFields is a list of field names (e.g. "ApprovalStatus") to
13022	// unconditionally include in API requests. By default, fields with
13023	// empty or default values are omitted from API requests. However, any
13024	// non-pointer, non-interface field appearing in ForceSendFields will be
13025	// sent to the server regardless of whether the field is empty or not.
13026	// This may be used to include empty fields in Patch requests.
13027	ForceSendFields []string `json:"-"`
13028
13029	// NullFields is a list of field names (e.g. "ApprovalStatus") to
13030	// include in API requests with the JSON null value. By default, fields
13031	// with empty values are omitted from API requests. However, any field
13032	// with an empty value appearing in NullFields will be sent to the
13033	// server as null. It is an error if a field in this list has a
13034	// non-empty value. This may be used to include null fields in Patch
13035	// requests.
13036	NullFields []string `json:"-"`
13037}
13038
13039func (s *ReviewStatusInfo) MarshalJSON() ([]byte, error) {
13040	type NoMethod ReviewStatusInfo
13041	raw := NoMethod(*s)
13042	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13043}
13044
13045// SdfConfig: Structured Data File (SDF) related settings.
13046type SdfConfig struct {
13047	// AdminEmail: An administrator email address to which the SDF
13048	// processing status reports will be sent.
13049	AdminEmail string `json:"adminEmail,omitempty"`
13050
13051	// Version: Required. The version of SDF being used.
13052	//
13053	// Possible values:
13054	//   "SDF_VERSION_UNSPECIFIED" - SDF version value is not specified or
13055	// is unknown in this version.
13056	//   "SDF_VERSION_3_1" - SDF version 3.1
13057	//   "SDF_VERSION_4" - SDF version 4
13058	//   "SDF_VERSION_4_1" - SDF version 4.1
13059	//   "SDF_VERSION_4_2" - SDF version 4.2
13060	//   "SDF_VERSION_5" - SDF version 5.
13061	//   "SDF_VERSION_5_1" - SDF version 5.1
13062	//   "SDF_VERSION_5_2" - SDF version 5.2
13063	//   "SDF_VERSION_5_3" - SDF version 5.3
13064	Version string `json:"version,omitempty"`
13065
13066	// ForceSendFields is a list of field names (e.g. "AdminEmail") to
13067	// unconditionally include in API requests. By default, fields with
13068	// empty or default values are omitted from API requests. However, any
13069	// non-pointer, non-interface field appearing in ForceSendFields will be
13070	// sent to the server regardless of whether the field is empty or not.
13071	// This may be used to include empty fields in Patch requests.
13072	ForceSendFields []string `json:"-"`
13073
13074	// NullFields is a list of field names (e.g. "AdminEmail") to include in
13075	// API requests with the JSON null value. By default, fields with empty
13076	// values are omitted from API requests. However, any field with an
13077	// empty value appearing in NullFields will be sent to the server as
13078	// null. It is an error if a field in this list has a non-empty value.
13079	// This may be used to include null fields in Patch requests.
13080	NullFields []string `json:"-"`
13081}
13082
13083func (s *SdfConfig) MarshalJSON() ([]byte, error) {
13084	type NoMethod SdfConfig
13085	raw := NoMethod(*s)
13086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13087}
13088
13089// SdfDownloadTask: Type for the response returned by
13090// [SdfDownloadTaskService.CreateSdfDownloadTask].
13091type SdfDownloadTask struct {
13092	// ResourceName: A resource name to be used in media.download to
13093	// Download the prepared files. Resource names have the format
13094	// `download/sdfdownloadtasks/media/{media_id}`. `media_id` will be made
13095	// available by the long running operation service once the task status
13096	// is done.
13097	ResourceName string `json:"resourceName,omitempty"`
13098
13099	// ForceSendFields is a list of field names (e.g. "ResourceName") to
13100	// unconditionally include in API requests. By default, fields with
13101	// empty or default values are omitted from API requests. However, any
13102	// non-pointer, non-interface field appearing in ForceSendFields will be
13103	// sent to the server regardless of whether the field is empty or not.
13104	// This may be used to include empty fields in Patch requests.
13105	ForceSendFields []string `json:"-"`
13106
13107	// NullFields is a list of field names (e.g. "ResourceName") to include
13108	// in API requests with the JSON null value. By default, fields with
13109	// empty values are omitted from API requests. However, any field with
13110	// an empty value appearing in NullFields will be sent to the server as
13111	// null. It is an error if a field in this list has a non-empty value.
13112	// This may be used to include null fields in Patch requests.
13113	NullFields []string `json:"-"`
13114}
13115
13116func (s *SdfDownloadTask) MarshalJSON() ([]byte, error) {
13117	type NoMethod SdfDownloadTask
13118	raw := NoMethod(*s)
13119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13120}
13121
13122// SdfDownloadTaskMetadata: Type for the metadata returned by
13123// [SdfDownloadTaskService.CreateSdfDownloadTask].
13124type SdfDownloadTaskMetadata struct {
13125	// CreateTime: The time when the operation was created.
13126	CreateTime string `json:"createTime,omitempty"`
13127
13128	// EndTime: The time when execution was completed.
13129	EndTime string `json:"endTime,omitempty"`
13130
13131	// Version: The SDF version used to execute this download task.
13132	//
13133	// Possible values:
13134	//   "SDF_VERSION_UNSPECIFIED" - SDF version value is not specified or
13135	// is unknown in this version.
13136	//   "SDF_VERSION_3_1" - SDF version 3.1
13137	//   "SDF_VERSION_4" - SDF version 4
13138	//   "SDF_VERSION_4_1" - SDF version 4.1
13139	//   "SDF_VERSION_4_2" - SDF version 4.2
13140	//   "SDF_VERSION_5" - SDF version 5.
13141	//   "SDF_VERSION_5_1" - SDF version 5.1
13142	//   "SDF_VERSION_5_2" - SDF version 5.2
13143	//   "SDF_VERSION_5_3" - SDF version 5.3
13144	Version string `json:"version,omitempty"`
13145
13146	// ForceSendFields is a list of field names (e.g. "CreateTime") to
13147	// unconditionally include in API requests. By default, fields with
13148	// empty or default values are omitted from API requests. However, any
13149	// non-pointer, non-interface field appearing in ForceSendFields will be
13150	// sent to the server regardless of whether the field is empty or not.
13151	// This may be used to include empty fields in Patch requests.
13152	ForceSendFields []string `json:"-"`
13153
13154	// NullFields is a list of field names (e.g. "CreateTime") to include in
13155	// API requests with the JSON null value. By default, fields with empty
13156	// values are omitted from API requests. However, any field with an
13157	// empty value appearing in NullFields will be sent to the server as
13158	// null. It is an error if a field in this list has a non-empty value.
13159	// This may be used to include null fields in Patch requests.
13160	NullFields []string `json:"-"`
13161}
13162
13163func (s *SdfDownloadTaskMetadata) MarshalJSON() ([]byte, error) {
13164	type NoMethod SdfDownloadTaskMetadata
13165	raw := NoMethod(*s)
13166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13167}
13168
13169// SearchTargetingOptionsRequest: Request message for
13170// SearchTargetingOptions.
13171type SearchTargetingOptionsRequest struct {
13172	// AdvertiserId: Required. The Advertiser this request is being made in
13173	// the context of.
13174	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
13175
13176	// BusinessChainSearchTerms: Search terms for Business Chain targeting
13177	// options. Can only be used when targeting_type is
13178	// `TARGETING_TYPE_BUSINESS_CHAIN`.
13179	BusinessChainSearchTerms *BusinessChainSearchTerms `json:"businessChainSearchTerms,omitempty"`
13180
13181	// GeoRegionSearchTerms: Search terms for geo region targeting options.
13182	// Can only be used when targeting_type is `TARGETING_TYPE_GEO_REGION`.
13183	GeoRegionSearchTerms *GeoRegionSearchTerms `json:"geoRegionSearchTerms,omitempty"`
13184
13185	// PageSize: Requested page size. Must be between `1` and `100`. If
13186	// unspecified will default to `100`. Returns error code
13187	// `INVALID_ARGUMENT` if an invalid value is specified.
13188	PageSize int64 `json:"pageSize,omitempty"`
13189
13190	// PageToken: A token identifying a page of results the server should
13191	// return. Typically, this is the value of next_page_token returned from
13192	// the previous call to `SearchTargetingOptions` method. If not
13193	// specified, the first page of results will be returned.
13194	PageToken string `json:"pageToken,omitempty"`
13195
13196	// PoiSearchTerms: Search terms for POI targeting options. Can only be
13197	// used when targeting_type is `TARGETING_TYPE_POI`.
13198	PoiSearchTerms *PoiSearchTerms `json:"poiSearchTerms,omitempty"`
13199
13200	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
13201	// unconditionally include in API requests. By default, fields with
13202	// empty or default values are omitted from API requests. However, any
13203	// non-pointer, non-interface field appearing in ForceSendFields will be
13204	// sent to the server regardless of whether the field is empty or not.
13205	// This may be used to include empty fields in Patch requests.
13206	ForceSendFields []string `json:"-"`
13207
13208	// NullFields is a list of field names (e.g. "AdvertiserId") to include
13209	// in API requests with the JSON null value. By default, fields with
13210	// empty values are omitted from API requests. However, any field with
13211	// an empty value appearing in NullFields will be sent to the server as
13212	// null. It is an error if a field in this list has a non-empty value.
13213	// This may be used to include null fields in Patch requests.
13214	NullFields []string `json:"-"`
13215}
13216
13217func (s *SearchTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
13218	type NoMethod SearchTargetingOptionsRequest
13219	raw := NoMethod(*s)
13220	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13221}
13222
13223// SearchTargetingOptionsResponse: Response message for
13224// SearchTargetingOptions.
13225type SearchTargetingOptionsResponse struct {
13226	// NextPageToken: A token to retrieve the next page of results. Pass
13227	// this value in the page_token field in the subsequent call to
13228	// `SearchTargetingOptions` method to retrieve the next page of results.
13229	NextPageToken string `json:"nextPageToken,omitempty"`
13230
13231	// TargetingOptions: The list of targeting options that match the search
13232	// criteria. This list will be absent if empty.
13233	TargetingOptions []*TargetingOption `json:"targetingOptions,omitempty"`
13234
13235	// ServerResponse contains the HTTP response code and headers from the
13236	// server.
13237	googleapi.ServerResponse `json:"-"`
13238
13239	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
13240	// unconditionally include in API requests. By default, fields with
13241	// empty or default values are omitted from API requests. However, any
13242	// non-pointer, non-interface field appearing in ForceSendFields will be
13243	// sent to the server regardless of whether the field is empty or not.
13244	// This may be used to include empty fields in Patch requests.
13245	ForceSendFields []string `json:"-"`
13246
13247	// NullFields is a list of field names (e.g. "NextPageToken") to include
13248	// in API requests with the JSON null value. By default, fields with
13249	// empty values are omitted from API requests. However, any field with
13250	// an empty value appearing in NullFields will be sent to the server as
13251	// null. It is an error if a field in this list has a non-empty value.
13252	// This may be used to include null fields in Patch requests.
13253	NullFields []string `json:"-"`
13254}
13255
13256func (s *SearchTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
13257	type NoMethod SearchTargetingOptionsResponse
13258	raw := NoMethod(*s)
13259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13260}
13261
13262// SensitiveCategoryAssignedTargetingOptionDetails: Targeting details
13263// for sensitive category. This will be populated in the details field
13264// of an AssignedTargetingOption when targeting_type is
13265// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
13266type SensitiveCategoryAssignedTargetingOptionDetails struct {
13267	// ExcludedTargetingOptionId: Required. ID of the sensitive category to
13268	// be EXCLUDED.
13269	ExcludedTargetingOptionId string `json:"excludedTargetingOptionId,omitempty"`
13270
13271	// SensitiveCategory: Output only. An enum for the DV360 Sensitive
13272	// category content classifier.
13273	//
13274	// Possible values:
13275	//   "SENSITIVE_CATEGORY_UNSPECIFIED" - This enum is only a placeholder
13276	// and doesn't specify a DV360 sensitive category.
13277	//   "SENSITIVE_CATEGORY_ADULT" - Adult or pornographic text, image, or
13278	// video content.
13279	//   "SENSITIVE_CATEGORY_DEROGATORY" - Content that may be construed as
13280	// biased against individuals, groups, or organizations based on
13281	// criteria such as race, religion, disability, sex, age, veteran
13282	// status, sexual orientation, gender identity, or political
13283	// affiliation. May also indicate discussion of such content, for
13284	// instance, in an academic or journalistic context.
13285	//   "SENSITIVE_CATEGORY_DOWNLOADS_SHARING" - Content related to audio,
13286	// video, or software downloads.
13287	//   "SENSITIVE_CATEGORY_WEAPONS" - Contains content related to personal
13288	// weapons, including knives, guns, small firearms, and ammunition.
13289	// Selecting either "weapons" or "sensitive social issues" will result
13290	// in selecting both.
13291	//   "SENSITIVE_CATEGORY_GAMBLING" - Contains content related to betting
13292	// or wagering in a real-world or online setting.
13293	//   "SENSITIVE_CATEGORY_VIOLENCE" - Content which may be considered
13294	// graphically violent, gory, gruesome, or shocking, such as street
13295	// fighting videos, accident photos, descriptions of torture, etc.
13296	//   "SENSITIVE_CATEGORY_SUGGESTIVE" - Adult content, as well as
13297	// suggestive content that's not explicitly pornographic. This category
13298	// includes all pages categorized as adult.
13299	//   "SENSITIVE_CATEGORY_PROFANITY" - Prominent use of words considered
13300	// indecent, such as curse words and sexual slang. Pages with only very
13301	// occasional usage, such as news sites that might include such words in
13302	// a quotation, are not included.
13303	//   "SENSITIVE_CATEGORY_ALCOHOL" - Contains content related to
13304	// alcoholic beverages, alcohol brands, recipes, etc.
13305	//   "SENSITIVE_CATEGORY_DRUGS" - Contains content related to the
13306	// recreational use of legal or illegal drugs, as well as to drug
13307	// paraphernalia or cultivation.
13308	//   "SENSITIVE_CATEGORY_TOBACCO" - Contains content related to tobacco
13309	// and tobacco accessories, including lighters, humidors, ashtrays, etc.
13310	//   "SENSITIVE_CATEGORY_POLITICS" - Political news and media, including
13311	// discussions of social, governmental, and public policy.
13312	//   "SENSITIVE_CATEGORY_RELIGION" - Content related to religious
13313	// thought or beliefs.
13314	//   "SENSITIVE_CATEGORY_TRAGEDY" - Content related to death, disasters,
13315	// accidents, war, etc.
13316	//   "SENSITIVE_CATEGORY_TRANSPORTATION_ACCIDENTS" - Content related to
13317	// motor vehicle, aviation or other transportation accidents.
13318	//   "SENSITIVE_CATEGORY_SENSITIVE_SOCIAL_ISSUES" - Issues that evoke
13319	// strong, opposing views and spark debate. These include issues that
13320	// are controversial in most countries and markets (such as abortion),
13321	// as well as those that are controversial in specific countries and
13322	// markets (such as immigration reform in the United States).
13323	//   "SENSITIVE_CATEGORY_SHOCKING" - Content which may be considered
13324	// shocking or disturbing, such as violent news stories, stunts, or
13325	// toilet humor.
13326	SensitiveCategory string `json:"sensitiveCategory,omitempty"`
13327
13328	// ForceSendFields is a list of field names (e.g.
13329	// "ExcludedTargetingOptionId") to unconditionally include in API
13330	// requests. By default, fields with empty or default values are omitted
13331	// from API requests. However, any non-pointer, non-interface field
13332	// appearing in ForceSendFields will be sent to the server regardless of
13333	// whether the field is empty or not. This may be used to include empty
13334	// fields in Patch requests.
13335	ForceSendFields []string `json:"-"`
13336
13337	// NullFields is a list of field names (e.g.
13338	// "ExcludedTargetingOptionId") to include in API requests with the JSON
13339	// null value. By default, fields with empty values are omitted from API
13340	// requests. However, any field with an empty value appearing in
13341	// NullFields will be sent to the server as null. It is an error if a
13342	// field in this list has a non-empty value. This may be used to include
13343	// null fields in Patch requests.
13344	NullFields []string `json:"-"`
13345}
13346
13347func (s *SensitiveCategoryAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
13348	type NoMethod SensitiveCategoryAssignedTargetingOptionDetails
13349	raw := NoMethod(*s)
13350	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13351}
13352
13353// SensitiveCategoryTargetingOptionDetails: Represents a targetable
13354// sensitive category. This will be populated in the
13355// sensitive_category_details field of the TargetingOption when
13356// targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
13357type SensitiveCategoryTargetingOptionDetails struct {
13358	// SensitiveCategory: Output only. An enum for the DV360 Sensitive
13359	// category content classifier.
13360	//
13361	// Possible values:
13362	//   "SENSITIVE_CATEGORY_UNSPECIFIED" - This enum is only a placeholder
13363	// and doesn't specify a DV360 sensitive category.
13364	//   "SENSITIVE_CATEGORY_ADULT" - Adult or pornographic text, image, or
13365	// video content.
13366	//   "SENSITIVE_CATEGORY_DEROGATORY" - Content that may be construed as
13367	// biased against individuals, groups, or organizations based on
13368	// criteria such as race, religion, disability, sex, age, veteran
13369	// status, sexual orientation, gender identity, or political
13370	// affiliation. May also indicate discussion of such content, for
13371	// instance, in an academic or journalistic context.
13372	//   "SENSITIVE_CATEGORY_DOWNLOADS_SHARING" - Content related to audio,
13373	// video, or software downloads.
13374	//   "SENSITIVE_CATEGORY_WEAPONS" - Contains content related to personal
13375	// weapons, including knives, guns, small firearms, and ammunition.
13376	// Selecting either "weapons" or "sensitive social issues" will result
13377	// in selecting both.
13378	//   "SENSITIVE_CATEGORY_GAMBLING" - Contains content related to betting
13379	// or wagering in a real-world or online setting.
13380	//   "SENSITIVE_CATEGORY_VIOLENCE" - Content which may be considered
13381	// graphically violent, gory, gruesome, or shocking, such as street
13382	// fighting videos, accident photos, descriptions of torture, etc.
13383	//   "SENSITIVE_CATEGORY_SUGGESTIVE" - Adult content, as well as
13384	// suggestive content that's not explicitly pornographic. This category
13385	// includes all pages categorized as adult.
13386	//   "SENSITIVE_CATEGORY_PROFANITY" - Prominent use of words considered
13387	// indecent, such as curse words and sexual slang. Pages with only very
13388	// occasional usage, such as news sites that might include such words in
13389	// a quotation, are not included.
13390	//   "SENSITIVE_CATEGORY_ALCOHOL" - Contains content related to
13391	// alcoholic beverages, alcohol brands, recipes, etc.
13392	//   "SENSITIVE_CATEGORY_DRUGS" - Contains content related to the
13393	// recreational use of legal or illegal drugs, as well as to drug
13394	// paraphernalia or cultivation.
13395	//   "SENSITIVE_CATEGORY_TOBACCO" - Contains content related to tobacco
13396	// and tobacco accessories, including lighters, humidors, ashtrays, etc.
13397	//   "SENSITIVE_CATEGORY_POLITICS" - Political news and media, including
13398	// discussions of social, governmental, and public policy.
13399	//   "SENSITIVE_CATEGORY_RELIGION" - Content related to religious
13400	// thought or beliefs.
13401	//   "SENSITIVE_CATEGORY_TRAGEDY" - Content related to death, disasters,
13402	// accidents, war, etc.
13403	//   "SENSITIVE_CATEGORY_TRANSPORTATION_ACCIDENTS" - Content related to
13404	// motor vehicle, aviation or other transportation accidents.
13405	//   "SENSITIVE_CATEGORY_SENSITIVE_SOCIAL_ISSUES" - Issues that evoke
13406	// strong, opposing views and spark debate. These include issues that
13407	// are controversial in most countries and markets (such as abortion),
13408	// as well as those that are controversial in specific countries and
13409	// markets (such as immigration reform in the United States).
13410	//   "SENSITIVE_CATEGORY_SHOCKING" - Content which may be considered
13411	// shocking or disturbing, such as violent news stories, stunts, or
13412	// toilet humor.
13413	SensitiveCategory string `json:"sensitiveCategory,omitempty"`
13414
13415	// ForceSendFields is a list of field names (e.g. "SensitiveCategory")
13416	// to unconditionally include in API requests. By default, fields with
13417	// empty or default values are omitted from API requests. However, any
13418	// non-pointer, non-interface field appearing in ForceSendFields will be
13419	// sent to the server regardless of whether the field is empty or not.
13420	// This may be used to include empty fields in Patch requests.
13421	ForceSendFields []string `json:"-"`
13422
13423	// NullFields is a list of field names (e.g. "SensitiveCategory") to
13424	// include in API requests with the JSON null value. By default, fields
13425	// with empty values are omitted from API requests. However, any field
13426	// with an empty value appearing in NullFields will be sent to the
13427	// server as null. It is an error if a field in this list has a
13428	// non-empty value. This may be used to include null fields in Patch
13429	// requests.
13430	NullFields []string `json:"-"`
13431}
13432
13433func (s *SensitiveCategoryTargetingOptionDetails) MarshalJSON() ([]byte, error) {
13434	type NoMethod SensitiveCategoryTargetingOptionDetails
13435	raw := NoMethod(*s)
13436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13437}
13438
13439// Site: A single site. Sites are apps or websites belonging to a
13440// channel.
13441type Site struct {
13442	// Name: Output only. The resource name of the site.
13443	Name string `json:"name,omitempty"`
13444
13445	// UrlOrAppId: Required. The app ID or URL of the site. Must be UTF-8
13446	// encoded with a maximum length of 240 bytes.
13447	UrlOrAppId string `json:"urlOrAppId,omitempty"`
13448
13449	// ServerResponse contains the HTTP response code and headers from the
13450	// server.
13451	googleapi.ServerResponse `json:"-"`
13452
13453	// ForceSendFields is a list of field names (e.g. "Name") to
13454	// unconditionally include in API requests. By default, fields with
13455	// empty or default values are omitted from API requests. However, any
13456	// non-pointer, non-interface field appearing in ForceSendFields will be
13457	// sent to the server regardless of whether the field is empty or not.
13458	// This may be used to include empty fields in Patch requests.
13459	ForceSendFields []string `json:"-"`
13460
13461	// NullFields is a list of field names (e.g. "Name") to include in API
13462	// requests with the JSON null value. By default, fields with empty
13463	// values are omitted from API requests. However, any field with an
13464	// empty value appearing in NullFields will be sent to the server as
13465	// null. It is an error if a field in this list has a non-empty value.
13466	// This may be used to include null fields in Patch requests.
13467	NullFields []string `json:"-"`
13468}
13469
13470func (s *Site) MarshalJSON() ([]byte, error) {
13471	type NoMethod Site
13472	raw := NoMethod(*s)
13473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13474}
13475
13476// Status: The `Status` type defines a logical error model that is
13477// suitable for different programming environments, including REST APIs
13478// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
13479// `Status` message contains three pieces of data: error code, error
13480// message, and error details. You can find out more about this error
13481// model and how to work with it in the API Design Guide
13482// (https://cloud.google.com/apis/design/errors).
13483type Status struct {
13484	// Code: The status code, which should be an enum value of
13485	// google.rpc.Code.
13486	Code int64 `json:"code,omitempty"`
13487
13488	// Details: A list of messages that carry the error details. There is a
13489	// common set of message types for APIs to use.
13490	Details []googleapi.RawMessage `json:"details,omitempty"`
13491
13492	// Message: A developer-facing error message, which should be in
13493	// English. Any user-facing error message should be localized and sent
13494	// in the google.rpc.Status.details field, or localized by the client.
13495	Message string `json:"message,omitempty"`
13496
13497	// ForceSendFields is a list of field names (e.g. "Code") to
13498	// unconditionally include in API requests. By default, fields with
13499	// empty or default values are omitted from API requests. However, any
13500	// non-pointer, non-interface field appearing in ForceSendFields will be
13501	// sent to the server regardless of whether the field is empty or not.
13502	// This may be used to include empty fields in Patch requests.
13503	ForceSendFields []string `json:"-"`
13504
13505	// NullFields is a list of field names (e.g. "Code") to include in API
13506	// requests with the JSON null value. By default, fields with empty
13507	// values are omitted from API requests. However, any field with an
13508	// empty value appearing in NullFields will be sent to the server as
13509	// null. It is an error if a field in this list has a non-empty value.
13510	// This may be used to include null fields in Patch requests.
13511	NullFields []string `json:"-"`
13512}
13513
13514func (s *Status) MarshalJSON() ([]byte, error) {
13515	type NoMethod Status
13516	raw := NoMethod(*s)
13517	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13518}
13519
13520// SubExchangeAssignedTargetingOptionDetails: Details for assigned
13521// sub-exchange targeting option. This will be populated in the details
13522// field of an AssignedTargetingOption when targeting_type is
13523// `TARGETING_TYPE_SUB_EXCHANGE`.
13524type SubExchangeAssignedTargetingOptionDetails struct {
13525	// TargetingOptionId: Required. The targeting_option_id of a
13526	// TargetingOption of type `TARGETING_TYPE_SUB_EXCHANGE`.
13527	TargetingOptionId string `json:"targetingOptionId,omitempty"`
13528
13529	// ForceSendFields is a list of field names (e.g. "TargetingOptionId")
13530	// to unconditionally include in API requests. By default, fields with
13531	// empty or default values are omitted from API requests. However, any
13532	// non-pointer, non-interface field appearing in ForceSendFields will be
13533	// sent to the server regardless of whether the field is empty or not.
13534	// This may be used to include empty fields in Patch requests.
13535	ForceSendFields []string `json:"-"`
13536
13537	// NullFields is a list of field names (e.g. "TargetingOptionId") to
13538	// include in API requests with the JSON null value. By default, fields
13539	// with empty values are omitted from API requests. However, any field
13540	// with an empty value appearing in NullFields will be sent to the
13541	// server as null. It is an error if a field in this list has a
13542	// non-empty value. This may be used to include null fields in Patch
13543	// requests.
13544	NullFields []string `json:"-"`
13545}
13546
13547func (s *SubExchangeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
13548	type NoMethod SubExchangeAssignedTargetingOptionDetails
13549	raw := NoMethod(*s)
13550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13551}
13552
13553// SubExchangeTargetingOptionDetails: Represents a targetable
13554// sub-exchange. This will be populated in the sub_exchange_details
13555// field of a TargetingOption when targeting_type is
13556// `TARGETING_TYPE_SUB_EXCHANGE`.
13557type SubExchangeTargetingOptionDetails struct {
13558	// DisplayName: Output only. The display name of the sub-exchange.
13559	DisplayName string `json:"displayName,omitempty"`
13560
13561	// ForceSendFields is a list of field names (e.g. "DisplayName") to
13562	// unconditionally include in API requests. By default, fields with
13563	// empty or default values are omitted from API requests. However, any
13564	// non-pointer, non-interface field appearing in ForceSendFields will be
13565	// sent to the server regardless of whether the field is empty or not.
13566	// This may be used to include empty fields in Patch requests.
13567	ForceSendFields []string `json:"-"`
13568
13569	// NullFields is a list of field names (e.g. "DisplayName") to include
13570	// in API requests with the JSON null value. By default, fields with
13571	// empty values are omitted from API requests. However, any field with
13572	// an empty value appearing in NullFields will be sent to the server as
13573	// null. It is an error if a field in this list has a non-empty value.
13574	// This may be used to include null fields in Patch requests.
13575	NullFields []string `json:"-"`
13576}
13577
13578func (s *SubExchangeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
13579	type NoMethod SubExchangeTargetingOptionDetails
13580	raw := NoMethod(*s)
13581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13582}
13583
13584// TargetingExpansionConfig: Settings that control the targeting
13585// expansion of the line item. Targeting expansion allows the line item
13586// to reach a larger audience based on the original audience list and
13587// the targeting expansion level.
13588type TargetingExpansionConfig struct {
13589	// ExcludeFirstPartyAudience: Required. Whether to exclude first party
13590	// audiences from targeting. Similar audiences of the excluded first
13591	// party lists will not be excluded. Only applicable when a first-party
13592	// audience is positively targeted (directly or included in a combined
13593	// audience), otherwise this selection will be ignored.
13594	ExcludeFirstPartyAudience bool `json:"excludeFirstPartyAudience,omitempty"`
13595
13596	// TargetingExpansionLevel: Required. Magnitude of expansion for
13597	// applicable targeting under this line item.
13598	//
13599	// Possible values:
13600	//   "TARGETING_EXPANSION_LEVEL_UNSPECIFIED" - Targeting expansion level
13601	// is not specified or is unknown in this version.
13602	//   "NO_EXPANSION" - Targeting expansion off.
13603	//   "LEAST_EXPANSION" - Conservative targeting expansion, lowest reach.
13604	//   "SOME_EXPANSION" - Moderately conservative targeting expansion,
13605	// lower reach.
13606	//   "BALANCED_EXPANSION" - Moderate targeting expansion, medium reach.
13607	//   "MORE_EXPANSION" - Moderately aggressive targeting expansion,
13608	// higher reach.
13609	//   "MOST_EXPANSION" - Aggressive targeting expansion, highest reach.
13610	TargetingExpansionLevel string `json:"targetingExpansionLevel,omitempty"`
13611
13612	// ForceSendFields is a list of field names (e.g.
13613	// "ExcludeFirstPartyAudience") to unconditionally include in API
13614	// requests. By default, fields with empty or default values are omitted
13615	// from API requests. However, any non-pointer, non-interface field
13616	// appearing in ForceSendFields will be sent to the server regardless of
13617	// whether the field is empty or not. This may be used to include empty
13618	// fields in Patch requests.
13619	ForceSendFields []string `json:"-"`
13620
13621	// NullFields is a list of field names (e.g.
13622	// "ExcludeFirstPartyAudience") to include in API requests with the JSON
13623	// null value. By default, fields with empty values are omitted from API
13624	// requests. However, any field with an empty value appearing in
13625	// NullFields will be sent to the server as null. It is an error if a
13626	// field in this list has a non-empty value. This may be used to include
13627	// null fields in Patch requests.
13628	NullFields []string `json:"-"`
13629}
13630
13631func (s *TargetingExpansionConfig) MarshalJSON() ([]byte, error) {
13632	type NoMethod TargetingExpansionConfig
13633	raw := NoMethod(*s)
13634	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13635}
13636
13637// TargetingOption: Represents a single targeting option, which is a
13638// targetable concept in DV360.
13639type TargetingOption struct {
13640	// AgeRangeDetails: Age range details.
13641	AgeRangeDetails *AgeRangeTargetingOptionDetails `json:"ageRangeDetails,omitempty"`
13642
13643	// AppCategoryDetails: App category details.
13644	AppCategoryDetails *AppCategoryTargetingOptionDetails `json:"appCategoryDetails,omitempty"`
13645
13646	// AuthorizedSellerStatusDetails: Authorized seller status resource
13647	// details.
13648	AuthorizedSellerStatusDetails *AuthorizedSellerStatusTargetingOptionDetails `json:"authorizedSellerStatusDetails,omitempty"`
13649
13650	// BrowserDetails: Browser details.
13651	BrowserDetails *BrowserTargetingOptionDetails `json:"browserDetails,omitempty"`
13652
13653	// BusinessChainDetails: Business chain resource details.
13654	BusinessChainDetails *BusinessChainTargetingOptionDetails `json:"businessChainDetails,omitempty"`
13655
13656	// CarrierAndIspDetails: Carrier and ISP details.
13657	CarrierAndIspDetails *CarrierAndIspTargetingOptionDetails `json:"carrierAndIspDetails,omitempty"`
13658
13659	// CategoryDetails: Category resource details.
13660	CategoryDetails *CategoryTargetingOptionDetails `json:"categoryDetails,omitempty"`
13661
13662	// ContentInstreamPositionDetails: Content instream position details.
13663	ContentInstreamPositionDetails *ContentInstreamPositionTargetingOptionDetails `json:"contentInstreamPositionDetails,omitempty"`
13664
13665	// ContentOutstreamPositionDetails: Content outstream position details.
13666	ContentOutstreamPositionDetails *ContentOutstreamPositionTargetingOptionDetails `json:"contentOutstreamPositionDetails,omitempty"`
13667
13668	// DeviceMakeModelDetails: Device make and model resource details.
13669	DeviceMakeModelDetails *DeviceMakeModelTargetingOptionDetails `json:"deviceMakeModelDetails,omitempty"`
13670
13671	// DeviceTypeDetails: Device type details.
13672	DeviceTypeDetails *DeviceTypeTargetingOptionDetails `json:"deviceTypeDetails,omitempty"`
13673
13674	// DigitalContentLabelDetails: Digital content label details.
13675	DigitalContentLabelDetails *DigitalContentLabelTargetingOptionDetails `json:"digitalContentLabelDetails,omitempty"`
13676
13677	// EnvironmentDetails: Environment details.
13678	EnvironmentDetails *EnvironmentTargetingOptionDetails `json:"environmentDetails,omitempty"`
13679
13680	// ExchangeDetails: Exchange details.
13681	ExchangeDetails *ExchangeTargetingOptionDetails `json:"exchangeDetails,omitempty"`
13682
13683	// GenderDetails: Gender details.
13684	GenderDetails *GenderTargetingOptionDetails `json:"genderDetails,omitempty"`
13685
13686	// GeoRegionDetails: Geographic region resource details.
13687	GeoRegionDetails *GeoRegionTargetingOptionDetails `json:"geoRegionDetails,omitempty"`
13688
13689	// HouseholdIncomeDetails: Household income details.
13690	HouseholdIncomeDetails *HouseholdIncomeTargetingOptionDetails `json:"householdIncomeDetails,omitempty"`
13691
13692	// LanguageDetails: Language resource details.
13693	LanguageDetails *LanguageTargetingOptionDetails `json:"languageDetails,omitempty"`
13694
13695	// Name: Output only. The resource name for this targeting option.
13696	Name string `json:"name,omitempty"`
13697
13698	// NativeContentPositionDetails: Native content position details.
13699	NativeContentPositionDetails *NativeContentPositionTargetingOptionDetails `json:"nativeContentPositionDetails,omitempty"`
13700
13701	// OmidDetails: Open Measurement enabled inventory details.
13702	OmidDetails *OmidTargetingOptionDetails `json:"omidDetails,omitempty"`
13703
13704	// OnScreenPositionDetails: On screen position details.
13705	OnScreenPositionDetails *OnScreenPositionTargetingOptionDetails `json:"onScreenPositionDetails,omitempty"`
13706
13707	// OperatingSystemDetails: Operating system resources details.
13708	OperatingSystemDetails *OperatingSystemTargetingOptionDetails `json:"operatingSystemDetails,omitempty"`
13709
13710	// ParentalStatusDetails: Parental status details.
13711	ParentalStatusDetails *ParentalStatusTargetingOptionDetails `json:"parentalStatusDetails,omitempty"`
13712
13713	// PoiDetails: POI resource details.
13714	PoiDetails *PoiTargetingOptionDetails `json:"poiDetails,omitempty"`
13715
13716	// SensitiveCategoryDetails: Sensitive Category details.
13717	SensitiveCategoryDetails *SensitiveCategoryTargetingOptionDetails `json:"sensitiveCategoryDetails,omitempty"`
13718
13719	// SubExchangeDetails: Sub-exchange details.
13720	SubExchangeDetails *SubExchangeTargetingOptionDetails `json:"subExchangeDetails,omitempty"`
13721
13722	// TargetingOptionId: Output only. A unique identifier for this
13723	// targeting option. The tuple {`targeting_type`, `targeting_option_id`}
13724	// will be unique.
13725	TargetingOptionId string `json:"targetingOptionId,omitempty"`
13726
13727	// TargetingType: Output only. The type of this targeting option.
13728	//
13729	// Possible values:
13730	//   "TARGETING_TYPE_UNSPECIFIED" - Default value when type is not
13731	// specified or is unknown in this version.
13732	//   "TARGETING_TYPE_CHANNEL" - Target a channel (a custom group of
13733	// related websites or apps).
13734	//   "TARGETING_TYPE_APP_CATEGORY" - Target an app category (for
13735	// example, education or puzzle games).
13736	//   "TARGETING_TYPE_APP" - Target a specific app (for example, Angry
13737	// Birds).
13738	//   "TARGETING_TYPE_URL" - Target a specific url (for example,
13739	// quora.com).
13740	//   "TARGETING_TYPE_DAY_AND_TIME" - Target ads during a chosen time
13741	// period on a specific day.
13742	//   "TARGETING_TYPE_AGE_RANGE" - Target ads to a specific age range
13743	// (for example, 18-24).
13744	//   "TARGETING_TYPE_REGIONAL_LOCATION_LIST" - Target ads to the
13745	// specified regions on a regional location list.
13746	//   "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" - Target ads to the
13747	// specified points of interest on a proximity location list.
13748	//   "TARGETING_TYPE_GENDER" - Target ads to a specific gender (for
13749	// example, female or male).
13750	//   "TARGETING_TYPE_VIDEO_PLAYER_SIZE" - Target a specific video player
13751	// size for video ads.
13752	//   "TARGETING_TYPE_USER_REWARDED_CONTENT" - Target user rewarded
13753	// content for video ads.
13754	//   "TARGETING_TYPE_PARENTAL_STATUS" - Target ads to a specific
13755	// parental status (for example, parent or not a parent).
13756	//   "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" - Target video or audio
13757	// ads in a specific content instream position (for example, pre-roll,
13758	// mid-roll, or post-roll).
13759	//   "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" - Target ads in a
13760	// specific content outstream position.
13761	//   "TARGETING_TYPE_DEVICE_TYPE" - Target ads to a specific device type
13762	// (for example, tablet or connected TV).
13763	//   "TARGETING_TYPE_AUDIENCE_GROUP" - Target ads to an audience or
13764	// groups of audiences. Singleton field, at most one can exist on a
13765	// single Lineitem at a time.
13766	//   "TARGETING_TYPE_BROWSER" - Target ads to specific web browsers (for
13767	// example, Chrome).
13768	//   "TARGETING_TYPE_HOUSEHOLD_INCOME" - Target ads to a specific
13769	// household income range (for example, top 10%).
13770	//   "TARGETING_TYPE_ON_SCREEN_POSITION" - Target ads in a specific on
13771	// screen position.
13772	//   "TARGETING_TYPE_THIRD_PARTY_VERIFIER" - Filter web sites through
13773	// third party verification (for example, IAS or DoubleVerify).
13774	//   "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" - Filter web sites
13775	// by specific digital content label ratings (for example, DL-MA:
13776	// suitable only for mature audiences).
13777	//   "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" - Filter website
13778	// content by sensitive categories (for example, adult).
13779	//   "TARGETING_TYPE_ENVIRONMENT" - Target ads to a specific environment
13780	// (for example, web or app).
13781	//   "TARGETING_TYPE_CARRIER_AND_ISP" - Target ads to a specific network
13782	// carrier or internet service provider (ISP) (for example, Comcast or
13783	// Orange).
13784	//   "TARGETING_TYPE_OPERATING_SYSTEM" - Target ads to a specific
13785	// operating system (for example, macOS).
13786	//   "TARGETING_TYPE_DEVICE_MAKE_MODEL" - Target ads to a specific
13787	// device make or model (for example, Roku or Samsung).
13788	//   "TARGETING_TYPE_KEYWORD" - Target ads to a specific keyword (for
13789	// example, dog or retriever).
13790	//   "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" - Target ads to a specific
13791	// negative keyword list.
13792	//   "TARGETING_TYPE_VIEWABILITY" - Target ads to a specific viewability
13793	// (for example, 80% viewable).
13794	//   "TARGETING_TYPE_CATEGORY" - Target ads to a specific content
13795	// category (for example, arts & entertainment).
13796	//   "TARGETING_TYPE_INVENTORY_SOURCE" - Purchase impressions from
13797	// specific deals and auction packages.
13798	//   "TARGETING_TYPE_LANGUAGE" - Target ads to a specific language (for
13799	// example, English or Japanese).
13800	//   "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" - Target ads to ads.txt
13801	// authorized sellers.
13802	//   "TARGETING_TYPE_GEO_REGION" - Target ads to a specific regional
13803	// location (for example, a city or state).
13804	//   "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" - Purchase impressions from
13805	// a group of deals and auction packages.
13806	//   "TARGETING_TYPE_EXCHANGE" - Purchase impressions from specific
13807	// exchanges.
13808	//   "TARGETING_TYPE_SUB_EXCHANGE" - Purchase impressions from specific
13809	// sub-exchanges.
13810	//   "TARGETING_TYPE_POI" - Target ads around a specific point of
13811	// interest, such as a notable building, a street address, or
13812	// latitude/longitude coordinates.
13813	//   "TARGETING_TYPE_BUSINESS_CHAIN" - Target ads around locations of a
13814	// business chain within a specific geo region.
13815	//   "TARGETING_TYPE_NATIVE_CONTENT_POSITION" - Target ads to a specific
13816	// native content position.
13817	//   "TARGETING_TYPE_OMID" - Target ads in an Open Measurement enabled
13818	// inventory.
13819	TargetingType string `json:"targetingType,omitempty"`
13820
13821	// UserRewardedContentDetails: User rewarded content details.
13822	UserRewardedContentDetails *UserRewardedContentTargetingOptionDetails `json:"userRewardedContentDetails,omitempty"`
13823
13824	// VideoPlayerSizeDetails: Video player size details.
13825	VideoPlayerSizeDetails *VideoPlayerSizeTargetingOptionDetails `json:"videoPlayerSizeDetails,omitempty"`
13826
13827	// ViewabilityDetails: Viewability resource details.
13828	ViewabilityDetails *ViewabilityTargetingOptionDetails `json:"viewabilityDetails,omitempty"`
13829
13830	// ServerResponse contains the HTTP response code and headers from the
13831	// server.
13832	googleapi.ServerResponse `json:"-"`
13833
13834	// ForceSendFields is a list of field names (e.g. "AgeRangeDetails") to
13835	// unconditionally include in API requests. By default, fields with
13836	// empty or default values are omitted from API requests. However, any
13837	// non-pointer, non-interface field appearing in ForceSendFields will be
13838	// sent to the server regardless of whether the field is empty or not.
13839	// This may be used to include empty fields in Patch requests.
13840	ForceSendFields []string `json:"-"`
13841
13842	// NullFields is a list of field names (e.g. "AgeRangeDetails") to
13843	// include in API requests with the JSON null value. By default, fields
13844	// with empty values are omitted from API requests. However, any field
13845	// with an empty value appearing in NullFields will be sent to the
13846	// server as null. It is an error if a field in this list has a
13847	// non-empty value. This may be used to include null fields in Patch
13848	// requests.
13849	NullFields []string `json:"-"`
13850}
13851
13852func (s *TargetingOption) MarshalJSON() ([]byte, error) {
13853	type NoMethod TargetingOption
13854	raw := NoMethod(*s)
13855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13856}
13857
13858// ThirdPartyOnlyConfig: Settings for advertisers that use third-party
13859// ad servers only.
13860type ThirdPartyOnlyConfig struct {
13861	// PixelOrderIdReportingEnabled: Whether or not order ID reporting for
13862	// pixels is enabled. This value cannot be changed once set to `true`.
13863	PixelOrderIdReportingEnabled bool `json:"pixelOrderIdReportingEnabled,omitempty"`
13864
13865	// ForceSendFields is a list of field names (e.g.
13866	// "PixelOrderIdReportingEnabled") to unconditionally include in API
13867	// requests. By default, fields with empty or default values are omitted
13868	// from API requests. However, any non-pointer, non-interface field
13869	// appearing in ForceSendFields will be sent to the server regardless of
13870	// whether the field is empty or not. This may be used to include empty
13871	// fields in Patch requests.
13872	ForceSendFields []string `json:"-"`
13873
13874	// NullFields is a list of field names (e.g.
13875	// "PixelOrderIdReportingEnabled") to include in API requests with the
13876	// JSON null value. By default, fields with empty values are omitted
13877	// from API requests. However, any field with an empty value appearing
13878	// in NullFields will be sent to the server as null. It is an error if a
13879	// field in this list has a non-empty value. This may be used to include
13880	// null fields in Patch requests.
13881	NullFields []string `json:"-"`
13882}
13883
13884func (s *ThirdPartyOnlyConfig) MarshalJSON() ([]byte, error) {
13885	type NoMethod ThirdPartyOnlyConfig
13886	raw := NoMethod(*s)
13887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13888}
13889
13890// ThirdPartyUrl: Tracking URLs from third parties to track interactions
13891// with an audio or a video creative.
13892type ThirdPartyUrl struct {
13893	// Type: The type of interaction needs to be tracked by the tracking URL
13894	//
13895	// Possible values:
13896	//   "THIRD_PARTY_URL_TYPE_UNSPECIFIED" - The type of third-party URL is
13897	// unspecified or is unknown in this version.
13898	//   "THIRD_PARTY_URL_TYPE_IMPRESSION" - Used to count impressions of
13899	// the creative after the audio or video buffering is complete.
13900	//   "THIRD_PARTY_URL_TYPE_CLICK_TRACKING" - Used to track user clicks
13901	// on the audio or video.
13902	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_START" - Used to track the number
13903	// of times a user starts the audio or video.
13904	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_FIRST_QUARTILE" - Used to track
13905	// the number of times the audio or video plays to 25% of its length.
13906	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_MIDPOINT" - Used to track the
13907	// number of times the audio or video plays to 50% of its length.
13908	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_THIRD_QUARTILE" - Used to track
13909	// the number of times the audio or video plays to 75% of its length.
13910	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_COMPLETE" - Used to track the
13911	// number of times the audio or video plays to the end.
13912	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_MUTE" - Used to track the number
13913	// of times a user mutes the audio or video.
13914	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_PAUSE" - Used to track the number
13915	// of times a user pauses the audio or video.
13916	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_REWIND" - Used to track the
13917	// number of times a user replays the audio or video.
13918	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_FULLSCREEN" - Used to track the
13919	// number of times a user expands the player to full-screen size.
13920	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_STOP" - Used to track the number
13921	// of times a user stops the audio or video.
13922	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_CUSTOM" - Used to track the
13923	// number of times a user performs a custom click, such as clicking on a
13924	// video hot spot.
13925	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_SKIP" - Used to track the number
13926	// of times the audio or video was skipped.
13927	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_PROGRESS" - Used to track the
13928	// number of times the audio or video plays to an offset determined by
13929	// the progress_offset.
13930	Type string `json:"type,omitempty"`
13931
13932	// Url: Tracking URL used to track the interaction. Provide a URL with
13933	// optional path or query string, beginning with `https:`. For example,
13934	// https://www.example.com/path
13935	Url string `json:"url,omitempty"`
13936
13937	// ForceSendFields is a list of field names (e.g. "Type") to
13938	// unconditionally include in API requests. By default, fields with
13939	// empty or default values are omitted from API requests. However, any
13940	// non-pointer, non-interface field appearing in ForceSendFields will be
13941	// sent to the server regardless of whether the field is empty or not.
13942	// This may be used to include empty fields in Patch requests.
13943	ForceSendFields []string `json:"-"`
13944
13945	// NullFields is a list of field names (e.g. "Type") to include in API
13946	// requests with the JSON null value. By default, fields with empty
13947	// values are omitted from API requests. However, any field with an
13948	// empty value appearing in NullFields will be sent to the server as
13949	// null. It is an error if a field in this list has a non-empty value.
13950	// This may be used to include null fields in Patch requests.
13951	NullFields []string `json:"-"`
13952}
13953
13954func (s *ThirdPartyUrl) MarshalJSON() ([]byte, error) {
13955	type NoMethod ThirdPartyUrl
13956	raw := NoMethod(*s)
13957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13958}
13959
13960// ThirdPartyVerifierAssignedTargetingOptionDetails: Assigned third
13961// party verifier targeting option details. This will be populated in
13962// the details field of an AssignedTargetingOption when targeting_type
13963// is `TARGETING_TYPE_THIRD_PARTY_VERIFIER`.
13964type ThirdPartyVerifierAssignedTargetingOptionDetails struct {
13965	// Adloox: Third party brand verifier -- Adloox.
13966	Adloox *Adloox `json:"adloox,omitempty"`
13967
13968	// DoubleVerify: Third party brand verifier -- DoubleVerify.
13969	DoubleVerify *DoubleVerify `json:"doubleVerify,omitempty"`
13970
13971	// IntegralAdScience: Third party brand verifier -- Integral Ad Science.
13972	IntegralAdScience *IntegralAdScience `json:"integralAdScience,omitempty"`
13973
13974	// ForceSendFields is a list of field names (e.g. "Adloox") to
13975	// unconditionally include in API requests. By default, fields with
13976	// empty or default values are omitted from API requests. However, any
13977	// non-pointer, non-interface field appearing in ForceSendFields will be
13978	// sent to the server regardless of whether the field is empty or not.
13979	// This may be used to include empty fields in Patch requests.
13980	ForceSendFields []string `json:"-"`
13981
13982	// NullFields is a list of field names (e.g. "Adloox") to include in API
13983	// requests with the JSON null value. By default, fields with empty
13984	// values are omitted from API requests. However, any field with an
13985	// empty value appearing in NullFields will be sent to the server as
13986	// null. It is an error if a field in this list has a non-empty value.
13987	// This may be used to include null fields in Patch requests.
13988	NullFields []string `json:"-"`
13989}
13990
13991func (s *ThirdPartyVerifierAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
13992	type NoMethod ThirdPartyVerifierAssignedTargetingOptionDetails
13993	raw := NoMethod(*s)
13994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13995}
13996
13997// TimeRange: A time range.
13998type TimeRange struct {
13999	// EndTime: Required. The upper bound of a time range, inclusive.
14000	EndTime string `json:"endTime,omitempty"`
14001
14002	// StartTime: Required. The lower bound of a time range, inclusive.
14003	StartTime string `json:"startTime,omitempty"`
14004
14005	// ForceSendFields is a list of field names (e.g. "EndTime") to
14006	// unconditionally include in API requests. By default, fields with
14007	// empty or default values are omitted from API requests. However, any
14008	// non-pointer, non-interface field appearing in ForceSendFields will be
14009	// sent to the server regardless of whether the field is empty or not.
14010	// This may be used to include empty fields in Patch requests.
14011	ForceSendFields []string `json:"-"`
14012
14013	// NullFields is a list of field names (e.g. "EndTime") to include in
14014	// API requests with the JSON null value. By default, fields with empty
14015	// values are omitted from API requests. However, any field with an
14016	// empty value appearing in NullFields will be sent to the server as
14017	// null. It is an error if a field in this list has a non-empty value.
14018	// This may be used to include null fields in Patch requests.
14019	NullFields []string `json:"-"`
14020}
14021
14022func (s *TimeRange) MarshalJSON() ([]byte, error) {
14023	type NoMethod TimeRange
14024	raw := NoMethod(*s)
14025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14026}
14027
14028// TimerEvent: Timer event of the creative.
14029type TimerEvent struct {
14030	// Name: Required. The name of the timer event.
14031	Name string `json:"name,omitempty"`
14032
14033	// ReportingName: Required. The name used to identify this timer event
14034	// in reports.
14035	ReportingName string `json:"reportingName,omitempty"`
14036
14037	// ForceSendFields is a list of field names (e.g. "Name") to
14038	// unconditionally include in API requests. By default, fields with
14039	// empty or default values are omitted from API requests. However, any
14040	// non-pointer, non-interface field appearing in ForceSendFields will be
14041	// sent to the server regardless of whether the field is empty or not.
14042	// This may be used to include empty fields in Patch requests.
14043	ForceSendFields []string `json:"-"`
14044
14045	// NullFields is a list of field names (e.g. "Name") to include in API
14046	// requests with the JSON null value. By default, fields with empty
14047	// values are omitted from API requests. However, any field with an
14048	// empty value appearing in NullFields will be sent to the server as
14049	// null. It is an error if a field in this list has a non-empty value.
14050	// This may be used to include null fields in Patch requests.
14051	NullFields []string `json:"-"`
14052}
14053
14054func (s *TimerEvent) MarshalJSON() ([]byte, error) {
14055	type NoMethod TimerEvent
14056	raw := NoMethod(*s)
14057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14058}
14059
14060// TrackingFloodlightActivityConfig: Settings that control the behavior
14061// of a single Floodlight activity config.
14062type TrackingFloodlightActivityConfig struct {
14063	// FloodlightActivityId: Required. The ID of the Floodlight activity.
14064	FloodlightActivityId int64 `json:"floodlightActivityId,omitempty,string"`
14065
14066	// PostClickLookbackWindowDays: Required. The number of days after an ad
14067	// has been clicked in which a conversion may be counted. Must be
14068	// between 0 and 90 inclusive.
14069	PostClickLookbackWindowDays int64 `json:"postClickLookbackWindowDays,omitempty"`
14070
14071	// PostViewLookbackWindowDays: Required. The number of days after an ad
14072	// has been viewed in which a conversion may be counted. Must be between
14073	// 0 and 90 inclusive.
14074	PostViewLookbackWindowDays int64 `json:"postViewLookbackWindowDays,omitempty"`
14075
14076	// ForceSendFields is a list of field names (e.g.
14077	// "FloodlightActivityId") to unconditionally include in API requests.
14078	// By default, fields with empty or default values are omitted from API
14079	// requests. However, any non-pointer, non-interface field appearing in
14080	// ForceSendFields will be sent to the server regardless of whether the
14081	// field is empty or not. This may be used to include empty fields in
14082	// Patch requests.
14083	ForceSendFields []string `json:"-"`
14084
14085	// NullFields is a list of field names (e.g. "FloodlightActivityId") to
14086	// include in API requests with the JSON null value. By default, fields
14087	// with empty values are omitted from API requests. However, any field
14088	// with an empty value appearing in NullFields will be sent to the
14089	// server as null. It is an error if a field in this list has a
14090	// non-empty value. This may be used to include null fields in Patch
14091	// requests.
14092	NullFields []string `json:"-"`
14093}
14094
14095func (s *TrackingFloodlightActivityConfig) MarshalJSON() ([]byte, error) {
14096	type NoMethod TrackingFloodlightActivityConfig
14097	raw := NoMethod(*s)
14098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14099}
14100
14101// Transcode: Represents information about the transcoded audio or video
14102// file.
14103type Transcode struct {
14104	// AudioBitRateKbps: The bit rate for the audio stream of the transcoded
14105	// video, or the bit rate for the transcoded audio, in kilobits per
14106	// second.
14107	AudioBitRateKbps int64 `json:"audioBitRateKbps,omitempty,string"`
14108
14109	// AudioSampleRateHz: The sample rate for the audio stream of the
14110	// transcoded video, or the sample rate for the transcoded audio, in
14111	// hertz.
14112	AudioSampleRateHz int64 `json:"audioSampleRateHz,omitempty,string"`
14113
14114	// BitRateKbps: The transcoding bit rate of the transcoded video, in
14115	// kilobits per second.
14116	BitRateKbps int64 `json:"bitRateKbps,omitempty,string"`
14117
14118	// Dimensions: The dimensions of the transcoded video.
14119	Dimensions *Dimensions `json:"dimensions,omitempty"`
14120
14121	// FileSizeBytes: The size of the transcoded file, in bytes.
14122	FileSizeBytes int64 `json:"fileSizeBytes,omitempty,string"`
14123
14124	// FrameRate: The frame rate of the transcoded video, in frames per
14125	// second.
14126	FrameRate float64 `json:"frameRate,omitempty"`
14127
14128	// MimeType: The MIME type of the transcoded file.
14129	MimeType string `json:"mimeType,omitempty"`
14130
14131	// Name: The name of the transcoded file.
14132	Name string `json:"name,omitempty"`
14133
14134	// Transcoded: Indicates if the transcoding was successful.
14135	Transcoded bool `json:"transcoded,omitempty"`
14136
14137	// ForceSendFields is a list of field names (e.g. "AudioBitRateKbps") to
14138	// unconditionally include in API requests. By default, fields with
14139	// empty or default values are omitted from API requests. However, any
14140	// non-pointer, non-interface field appearing in ForceSendFields will be
14141	// sent to the server regardless of whether the field is empty or not.
14142	// This may be used to include empty fields in Patch requests.
14143	ForceSendFields []string `json:"-"`
14144
14145	// NullFields is a list of field names (e.g. "AudioBitRateKbps") to
14146	// include in API requests with the JSON null value. By default, fields
14147	// with empty values are omitted from API requests. However, any field
14148	// with an empty value appearing in NullFields will be sent to the
14149	// server as null. It is an error if a field in this list has a
14150	// non-empty value. This may be used to include null fields in Patch
14151	// requests.
14152	NullFields []string `json:"-"`
14153}
14154
14155func (s *Transcode) MarshalJSON() ([]byte, error) {
14156	type NoMethod Transcode
14157	raw := NoMethod(*s)
14158	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14159}
14160
14161func (s *Transcode) UnmarshalJSON(data []byte) error {
14162	type NoMethod Transcode
14163	var s1 struct {
14164		FrameRate gensupport.JSONFloat64 `json:"frameRate"`
14165		*NoMethod
14166	}
14167	s1.NoMethod = (*NoMethod)(s)
14168	if err := json.Unmarshal(data, &s1); err != nil {
14169		return err
14170	}
14171	s.FrameRate = float64(s1.FrameRate)
14172	return nil
14173}
14174
14175// UniversalAdId: A creative identifier provided by a registry that is
14176// unique across all platforms. This is part of the VAST 4.0 standard.
14177type UniversalAdId struct {
14178	// Id: The unique creative identifier.
14179	Id string `json:"id,omitempty"`
14180
14181	// Registry: The registry provides unique creative identifiers.
14182	//
14183	// Possible values:
14184	//   "UNIVERSAL_AD_REGISTRY_UNSPECIFIED" - The Universal Ad registry is
14185	// unspecified or is unknown in this version.
14186	//   "UNIVERSAL_AD_REGISTRY_OTHER" - Use a custom provider to provide
14187	// the Universal Ad ID.
14188	//   "UNIVERSAL_AD_REGISTRY_AD_ID" - Use Ad-ID to provide the Universal
14189	// Ad ID.
14190	//   "UNIVERSAL_AD_REGISTRY_CLEARCAST" - Use clearcast.co.uk to provide
14191	// the Universal Ad ID.
14192	//   "UNIVERSAL_AD_REGISTRY_DV360" - Use Display & Video 360 to provide
14193	// the Universal Ad ID.
14194	//   "UNIVERSAL_AD_REGISTRY_CM" - Use Campaign Manager 360 to provide
14195	// the Universal Ad ID.
14196	Registry string `json:"registry,omitempty"`
14197
14198	// ForceSendFields is a list of field names (e.g. "Id") to
14199	// unconditionally include in API requests. By default, fields with
14200	// empty or default values are omitted from API requests. However, any
14201	// non-pointer, non-interface field appearing in ForceSendFields will be
14202	// sent to the server regardless of whether the field is empty or not.
14203	// This may be used to include empty fields in Patch requests.
14204	ForceSendFields []string `json:"-"`
14205
14206	// NullFields is a list of field names (e.g. "Id") to include in API
14207	// requests with the JSON null value. By default, fields with empty
14208	// values are omitted from API requests. However, any field with an
14209	// empty value appearing in NullFields will be sent to the server as
14210	// null. It is an error if a field in this list has a non-empty value.
14211	// This may be used to include null fields in Patch requests.
14212	NullFields []string `json:"-"`
14213}
14214
14215func (s *UniversalAdId) MarshalJSON() ([]byte, error) {
14216	type NoMethod UniversalAdId
14217	raw := NoMethod(*s)
14218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14219}
14220
14221// UrlAssignedTargetingOptionDetails: Details for assigned URL targeting
14222// option. This will be populated in the details field of an
14223// AssignedTargetingOption when targeting_type is `TARGETING_TYPE_URL`.
14224type UrlAssignedTargetingOptionDetails struct {
14225	// Negative: Indicates if this option is being negatively targeted.
14226	Negative bool `json:"negative,omitempty"`
14227
14228	// Url: Required. The URL, for example `example.com`. DV360 supports two
14229	// levels of subdirectory targeting, for example
14230	// `www.example.com/one-subdirectory-level/second-level`, and five
14231	// levels of subdomain targeting, for example
14232	// `five.four.three.two.one.example.com`.
14233	Url string `json:"url,omitempty"`
14234
14235	// ForceSendFields is a list of field names (e.g. "Negative") to
14236	// unconditionally include in API requests. By default, fields with
14237	// empty or default values are omitted from API requests. However, any
14238	// non-pointer, non-interface field appearing in ForceSendFields will be
14239	// sent to the server regardless of whether the field is empty or not.
14240	// This may be used to include empty fields in Patch requests.
14241	ForceSendFields []string `json:"-"`
14242
14243	// NullFields is a list of field names (e.g. "Negative") to include in
14244	// API requests with the JSON null value. By default, fields with empty
14245	// values are omitted from API requests. However, any field with an
14246	// empty value appearing in NullFields will be sent to the server as
14247	// null. It is an error if a field in this list has a non-empty value.
14248	// This may be used to include null fields in Patch requests.
14249	NullFields []string `json:"-"`
14250}
14251
14252func (s *UrlAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
14253	type NoMethod UrlAssignedTargetingOptionDetails
14254	raw := NoMethod(*s)
14255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14256}
14257
14258// User: A single user in Display & Video 360.
14259type User struct {
14260	// AssignedUserRoles: The assigned user roles. Required in CreateUser.
14261	// Output only in UpdateUser. Can only be updated through
14262	// BulkEditAssignedUserRoles.
14263	AssignedUserRoles []*AssignedUserRole `json:"assignedUserRoles,omitempty"`
14264
14265	// DisplayName: Required. The display name of the user. Must be UTF-8
14266	// encoded with a maximum size of 240 bytes.
14267	DisplayName string `json:"displayName,omitempty"`
14268
14269	// Email: Required. Immutable. The email address used to identify the
14270	// user.
14271	Email string `json:"email,omitempty"`
14272
14273	// Name: Output only. The resource name of the user.
14274	Name string `json:"name,omitempty"`
14275
14276	// UserId: Output only. The unique ID of the user. Assigned by the
14277	// system.
14278	UserId int64 `json:"userId,omitempty,string"`
14279
14280	// ServerResponse contains the HTTP response code and headers from the
14281	// server.
14282	googleapi.ServerResponse `json:"-"`
14283
14284	// ForceSendFields is a list of field names (e.g. "AssignedUserRoles")
14285	// to unconditionally include in API requests. By default, fields with
14286	// empty or default values are omitted from API requests. However, any
14287	// non-pointer, non-interface field appearing in ForceSendFields will be
14288	// sent to the server regardless of whether the field is empty or not.
14289	// This may be used to include empty fields in Patch requests.
14290	ForceSendFields []string `json:"-"`
14291
14292	// NullFields is a list of field names (e.g. "AssignedUserRoles") to
14293	// include in API requests with the JSON null value. By default, fields
14294	// with empty values are omitted from API requests. However, any field
14295	// with an empty value appearing in NullFields will be sent to the
14296	// server as null. It is an error if a field in this list has a
14297	// non-empty value. This may be used to include null fields in Patch
14298	// requests.
14299	NullFields []string `json:"-"`
14300}
14301
14302func (s *User) MarshalJSON() ([]byte, error) {
14303	type NoMethod User
14304	raw := NoMethod(*s)
14305	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14306}
14307
14308// UserRewardedContentAssignedTargetingOptionDetails: User rewarded
14309// content targeting option details. This will be populated in the
14310// user_rewarded_content_details field when targeting_type is
14311// `TARGETING_TYPE_USER_REWARDED_CONTENT`.
14312type UserRewardedContentAssignedTargetingOptionDetails struct {
14313	// TargetingOptionId: Required. The targeting_option_id field when
14314	// targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.
14315	TargetingOptionId string `json:"targetingOptionId,omitempty"`
14316
14317	// UserRewardedContent: Output only. User rewarded content status for
14318	// video ads.
14319	//
14320	// Possible values:
14321	//   "USER_REWARDED_CONTENT_UNSPECIFIED" - User rewarded content is not
14322	// specified or is unknown in this version.
14323	//   "USER_REWARDED_CONTENT_USER_REWARDED" - Represents ads where the
14324	// user will see a reward after viewing.
14325	//   "USER_REWARDED_CONTENT_NOT_USER_REWARDED" - Represents all other
14326	// ads besides user-rewarded.
14327	UserRewardedContent string `json:"userRewardedContent,omitempty"`
14328
14329	// ForceSendFields is a list of field names (e.g. "TargetingOptionId")
14330	// to unconditionally include in API requests. By default, fields with
14331	// empty or default values are omitted from API requests. However, any
14332	// non-pointer, non-interface field appearing in ForceSendFields will be
14333	// sent to the server regardless of whether the field is empty or not.
14334	// This may be used to include empty fields in Patch requests.
14335	ForceSendFields []string `json:"-"`
14336
14337	// NullFields is a list of field names (e.g. "TargetingOptionId") to
14338	// include in API requests with the JSON null value. By default, fields
14339	// with empty values are omitted from API requests. However, any field
14340	// with an empty value appearing in NullFields will be sent to the
14341	// server as null. It is an error if a field in this list has a
14342	// non-empty value. This may be used to include null fields in Patch
14343	// requests.
14344	NullFields []string `json:"-"`
14345}
14346
14347func (s *UserRewardedContentAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
14348	type NoMethod UserRewardedContentAssignedTargetingOptionDetails
14349	raw := NoMethod(*s)
14350	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14351}
14352
14353// UserRewardedContentTargetingOptionDetails: Represents a targetable
14354// user rewarded content status for video ads only. This will be
14355// populated in the user_rewarded_content_details field when
14356// targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.
14357type UserRewardedContentTargetingOptionDetails struct {
14358	// UserRewardedContent: Output only. User rewarded content status for
14359	// video ads.
14360	//
14361	// Possible values:
14362	//   "USER_REWARDED_CONTENT_UNSPECIFIED" - User rewarded content is not
14363	// specified or is unknown in this version.
14364	//   "USER_REWARDED_CONTENT_USER_REWARDED" - Represents ads where the
14365	// user will see a reward after viewing.
14366	//   "USER_REWARDED_CONTENT_NOT_USER_REWARDED" - Represents all other
14367	// ads besides user-rewarded.
14368	UserRewardedContent string `json:"userRewardedContent,omitempty"`
14369
14370	// ForceSendFields is a list of field names (e.g. "UserRewardedContent")
14371	// to unconditionally include in API requests. By default, fields with
14372	// empty or default values are omitted from API requests. However, any
14373	// non-pointer, non-interface field appearing in ForceSendFields will be
14374	// sent to the server regardless of whether the field is empty or not.
14375	// This may be used to include empty fields in Patch requests.
14376	ForceSendFields []string `json:"-"`
14377
14378	// NullFields is a list of field names (e.g. "UserRewardedContent") to
14379	// include in API requests with the JSON null value. By default, fields
14380	// with empty values are omitted from API requests. However, any field
14381	// with an empty value appearing in NullFields will be sent to the
14382	// server as null. It is an error if a field in this list has a
14383	// non-empty value. This may be used to include null fields in Patch
14384	// requests.
14385	NullFields []string `json:"-"`
14386}
14387
14388func (s *UserRewardedContentTargetingOptionDetails) MarshalJSON() ([]byte, error) {
14389	type NoMethod UserRewardedContentTargetingOptionDetails
14390	raw := NoMethod(*s)
14391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14392}
14393
14394// VideoPlayerSizeAssignedTargetingOptionDetails: Video player size
14395// targeting option details. This will be populated in the
14396// video_player_size_details field when targeting_type is
14397// `TARGETING_TYPE_VIDEO_PLAYER_SIZE`. Explicitly targeting all options
14398// is not supported. Remove all video player size targeting options to
14399// achieve this effect.
14400type VideoPlayerSizeAssignedTargetingOptionDetails struct {
14401	// TargetingOptionId: Required. The targeting_option_id field when
14402	// targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.
14403	TargetingOptionId string `json:"targetingOptionId,omitempty"`
14404
14405	// VideoPlayerSize: Output only. The video player size.
14406	//
14407	// Possible values:
14408	//   "VIDEO_PLAYER_SIZE_UNSPECIFIED" - Video player size is not
14409	// specified in this version. This enum is a place holder for a default
14410	// value and does not represent a real video player size.
14411	//   "VIDEO_PLAYER_SIZE_SMALL" - The dimensions of the video player are
14412	// less than 400×300 (desktop), or up to 20% of screen covered
14413	// (mobile).
14414	//   "VIDEO_PLAYER_SIZE_LARGE" - The dimensions of the video player are
14415	// between 400x300 and 1280x720 pixels (desktop), or 20% to 90% of the
14416	// screen covered (mobile).
14417	//   "VIDEO_PLAYER_SIZE_HD" - The dimensions of the video player are
14418	// 1280×720 or greater (desktop), or over 90% of the screen covered
14419	// (mobile).
14420	//   "VIDEO_PLAYER_SIZE_UNKNOWN" - The dimensions of the video player
14421	// are unknown.
14422	VideoPlayerSize string `json:"videoPlayerSize,omitempty"`
14423
14424	// ForceSendFields is a list of field names (e.g. "TargetingOptionId")
14425	// to unconditionally include in API requests. By default, fields with
14426	// empty or default values are omitted from API requests. However, any
14427	// non-pointer, non-interface field appearing in ForceSendFields will be
14428	// sent to the server regardless of whether the field is empty or not.
14429	// This may be used to include empty fields in Patch requests.
14430	ForceSendFields []string `json:"-"`
14431
14432	// NullFields is a list of field names (e.g. "TargetingOptionId") to
14433	// include in API requests with the JSON null value. By default, fields
14434	// with empty values are omitted from API requests. However, any field
14435	// with an empty value appearing in NullFields will be sent to the
14436	// server as null. It is an error if a field in this list has a
14437	// non-empty value. This may be used to include null fields in Patch
14438	// requests.
14439	NullFields []string `json:"-"`
14440}
14441
14442func (s *VideoPlayerSizeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
14443	type NoMethod VideoPlayerSizeAssignedTargetingOptionDetails
14444	raw := NoMethod(*s)
14445	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14446}
14447
14448// VideoPlayerSizeTargetingOptionDetails: Represents a targetable video
14449// player size. This will be populated in the video_player_size_details
14450// field when targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.
14451type VideoPlayerSizeTargetingOptionDetails struct {
14452	// VideoPlayerSize: Output only. The video player size.
14453	//
14454	// Possible values:
14455	//   "VIDEO_PLAYER_SIZE_UNSPECIFIED" - Video player size is not
14456	// specified in this version. This enum is a place holder for a default
14457	// value and does not represent a real video player size.
14458	//   "VIDEO_PLAYER_SIZE_SMALL" - The dimensions of the video player are
14459	// less than 400×300 (desktop), or up to 20% of screen covered
14460	// (mobile).
14461	//   "VIDEO_PLAYER_SIZE_LARGE" - The dimensions of the video player are
14462	// between 400x300 and 1280x720 pixels (desktop), or 20% to 90% of the
14463	// screen covered (mobile).
14464	//   "VIDEO_PLAYER_SIZE_HD" - The dimensions of the video player are
14465	// 1280×720 or greater (desktop), or over 90% of the screen covered
14466	// (mobile).
14467	//   "VIDEO_PLAYER_SIZE_UNKNOWN" - The dimensions of the video player
14468	// are unknown.
14469	VideoPlayerSize string `json:"videoPlayerSize,omitempty"`
14470
14471	// ForceSendFields is a list of field names (e.g. "VideoPlayerSize") to
14472	// unconditionally include in API requests. By default, fields with
14473	// empty or default values are omitted from API requests. However, any
14474	// non-pointer, non-interface field appearing in ForceSendFields will be
14475	// sent to the server regardless of whether the field is empty or not.
14476	// This may be used to include empty fields in Patch requests.
14477	ForceSendFields []string `json:"-"`
14478
14479	// NullFields is a list of field names (e.g. "VideoPlayerSize") to
14480	// include in API requests with the JSON null value. By default, fields
14481	// with empty values are omitted from API requests. However, any field
14482	// with an empty value appearing in NullFields will be sent to the
14483	// server as null. It is an error if a field in this list has a
14484	// non-empty value. This may be used to include null fields in Patch
14485	// requests.
14486	NullFields []string `json:"-"`
14487}
14488
14489func (s *VideoPlayerSizeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
14490	type NoMethod VideoPlayerSizeTargetingOptionDetails
14491	raw := NoMethod(*s)
14492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14493}
14494
14495// ViewabilityAssignedTargetingOptionDetails: Assigned viewability
14496// targeting option details. This will be populated in the
14497// viewability_details field of an AssignedTargetingOption when
14498// targeting_type is `TARGETING_TYPE_VIEWABILITY`.
14499type ViewabilityAssignedTargetingOptionDetails struct {
14500	// TargetingOptionId: Required. The targeting_option_id of a
14501	// TargetingOption of type `TARGETING_TYPE_VIEWABILITY` (e.g., "509010"
14502	// for targeting the `VIEWABILITY_10_PERCENT_OR_MORE` option).
14503	TargetingOptionId string `json:"targetingOptionId,omitempty"`
14504
14505	// Viewability: Output only. The predicted viewability percentage.
14506	//
14507	// Possible values:
14508	//   "VIEWABILITY_UNSPECIFIED" - Default value when viewability is not
14509	// specified in this version. This enum is a placeholder for default
14510	// value and does not represent a real viewability option.
14511	//   "VIEWABILITY_10_PERCENT_OR_MORE" - Bid only on impressions that are
14512	// at least 10% likely to be viewable.
14513	//   "VIEWABILITY_20_PERCENT_OR_MORE" - Bid only on impressions that are
14514	// at least 20% likely to be viewable.
14515	//   "VIEWABILITY_30_PERCENT_OR_MORE" - Bid only on impressions that are
14516	// at least 30% likely to be viewable.
14517	//   "VIEWABILITY_40_PERCENT_OR_MORE" - Bid only on impressions that are
14518	// at least 40% likely to be viewable.
14519	//   "VIEWABILITY_50_PERCENT_OR_MORE" - Bid only on impressions that are
14520	// at least 50% likely to be viewable.
14521	//   "VIEWABILITY_60_PERCENT_OR_MORE" - Bid only on impressions that are
14522	// at least 60% likely to be viewable.
14523	//   "VIEWABILITY_70_PERCENT_OR_MORE" - Bid only on impressions that are
14524	// at least 70% likely to be viewable.
14525	//   "VIEWABILITY_80_PERCENT_OR_MORE" - Bid only on impressions that are
14526	// at least 80% likely to be viewable.
14527	//   "VIEWABILITY_90_PERCENT_OR_MORE" - Bid only on impressions that are
14528	// at least 90% likely to be viewable.
14529	Viewability string `json:"viewability,omitempty"`
14530
14531	// ForceSendFields is a list of field names (e.g. "TargetingOptionId")
14532	// to unconditionally include in API requests. By default, fields with
14533	// empty or default values are omitted from API requests. However, any
14534	// non-pointer, non-interface field appearing in ForceSendFields will be
14535	// sent to the server regardless of whether the field is empty or not.
14536	// This may be used to include empty fields in Patch requests.
14537	ForceSendFields []string `json:"-"`
14538
14539	// NullFields is a list of field names (e.g. "TargetingOptionId") to
14540	// include in API requests with the JSON null value. By default, fields
14541	// with empty values are omitted from API requests. However, any field
14542	// with an empty value appearing in NullFields will be sent to the
14543	// server as null. It is an error if a field in this list has a
14544	// non-empty value. This may be used to include null fields in Patch
14545	// requests.
14546	NullFields []string `json:"-"`
14547}
14548
14549func (s *ViewabilityAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
14550	type NoMethod ViewabilityAssignedTargetingOptionDetails
14551	raw := NoMethod(*s)
14552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14553}
14554
14555// ViewabilityTargetingOptionDetails: Represents a targetable
14556// viewability. This will be populated in the viewability_details field
14557// of a TargetingOption when targeting_type is
14558// `TARGETING_TYPE_VIEWABILITY`.
14559type ViewabilityTargetingOptionDetails struct {
14560	// Viewability: Output only. The predicted viewability percentage.
14561	//
14562	// Possible values:
14563	//   "VIEWABILITY_UNSPECIFIED" - Default value when viewability is not
14564	// specified in this version. This enum is a placeholder for default
14565	// value and does not represent a real viewability option.
14566	//   "VIEWABILITY_10_PERCENT_OR_MORE" - Bid only on impressions that are
14567	// at least 10% likely to be viewable.
14568	//   "VIEWABILITY_20_PERCENT_OR_MORE" - Bid only on impressions that are
14569	// at least 20% likely to be viewable.
14570	//   "VIEWABILITY_30_PERCENT_OR_MORE" - Bid only on impressions that are
14571	// at least 30% likely to be viewable.
14572	//   "VIEWABILITY_40_PERCENT_OR_MORE" - Bid only on impressions that are
14573	// at least 40% likely to be viewable.
14574	//   "VIEWABILITY_50_PERCENT_OR_MORE" - Bid only on impressions that are
14575	// at least 50% likely to be viewable.
14576	//   "VIEWABILITY_60_PERCENT_OR_MORE" - Bid only on impressions that are
14577	// at least 60% likely to be viewable.
14578	//   "VIEWABILITY_70_PERCENT_OR_MORE" - Bid only on impressions that are
14579	// at least 70% likely to be viewable.
14580	//   "VIEWABILITY_80_PERCENT_OR_MORE" - Bid only on impressions that are
14581	// at least 80% likely to be viewable.
14582	//   "VIEWABILITY_90_PERCENT_OR_MORE" - Bid only on impressions that are
14583	// at least 90% likely to be viewable.
14584	Viewability string `json:"viewability,omitempty"`
14585
14586	// ForceSendFields is a list of field names (e.g. "Viewability") to
14587	// unconditionally include in API requests. By default, fields with
14588	// empty or default values are omitted from API requests. However, any
14589	// non-pointer, non-interface field appearing in ForceSendFields will be
14590	// sent to the server regardless of whether the field is empty or not.
14591	// This may be used to include empty fields in Patch requests.
14592	ForceSendFields []string `json:"-"`
14593
14594	// NullFields is a list of field names (e.g. "Viewability") to include
14595	// in API requests with the JSON null value. By default, fields with
14596	// empty values are omitted from API requests. However, any field with
14597	// an empty value appearing in NullFields will be sent to the server as
14598	// null. It is an error if a field in this list has a non-empty value.
14599	// This may be used to include null fields in Patch requests.
14600	NullFields []string `json:"-"`
14601}
14602
14603func (s *ViewabilityTargetingOptionDetails) MarshalJSON() ([]byte, error) {
14604	type NoMethod ViewabilityTargetingOptionDetails
14605	raw := NoMethod(*s)
14606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14607}
14608
14609// method id "displayvideo.advertisers.audit":
14610
14611type AdvertisersAuditCall struct {
14612	s            *Service
14613	advertiserId int64
14614	urlParams_   gensupport.URLParams
14615	ifNoneMatch_ string
14616	ctx_         context.Context
14617	header_      http.Header
14618}
14619
14620// Audit: Audits an advertiser. Returns the counts of used entities per
14621// resource type under the advertiser provided. Used entities count
14622// towards their respective resource limit. See
14623// https://support.google.com/displayvideo/answer/6071450.
14624//
14625// - advertiserId: The ID of the advertiser to audit.
14626func (r *AdvertisersService) Audit(advertiserId int64) *AdvertisersAuditCall {
14627	c := &AdvertisersAuditCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14628	c.advertiserId = advertiserId
14629	return c
14630}
14631
14632// ReadMask sets the optional parameter "readMask": The specific fields
14633// to return. If no mask is specified, all fields in the response proto
14634// will be filled. Valid values are: * usedLineItemsCount *
14635// usedInsertionOrdersCount * usedCampaignsCount * channelsCount *
14636// negativelyTargetedChannelsCount * negativeKeywordListsCount *
14637// adGroupCriteriaCount * campaignCriteriaCount
14638func (c *AdvertisersAuditCall) ReadMask(readMask string) *AdvertisersAuditCall {
14639	c.urlParams_.Set("readMask", readMask)
14640	return c
14641}
14642
14643// Fields allows partial responses to be retrieved. See
14644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14645// for more information.
14646func (c *AdvertisersAuditCall) Fields(s ...googleapi.Field) *AdvertisersAuditCall {
14647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14648	return c
14649}
14650
14651// IfNoneMatch sets the optional parameter which makes the operation
14652// fail if the object's ETag matches the given value. This is useful for
14653// getting updates only after the object has changed since the last
14654// request. Use googleapi.IsNotModified to check whether the response
14655// error from Do is the result of In-None-Match.
14656func (c *AdvertisersAuditCall) IfNoneMatch(entityTag string) *AdvertisersAuditCall {
14657	c.ifNoneMatch_ = entityTag
14658	return c
14659}
14660
14661// Context sets the context to be used in this call's Do method. Any
14662// pending HTTP request will be aborted if the provided context is
14663// canceled.
14664func (c *AdvertisersAuditCall) Context(ctx context.Context) *AdvertisersAuditCall {
14665	c.ctx_ = ctx
14666	return c
14667}
14668
14669// Header returns an http.Header that can be modified by the caller to
14670// add HTTP headers to the request.
14671func (c *AdvertisersAuditCall) Header() http.Header {
14672	if c.header_ == nil {
14673		c.header_ = make(http.Header)
14674	}
14675	return c.header_
14676}
14677
14678func (c *AdvertisersAuditCall) doRequest(alt string) (*http.Response, error) {
14679	reqHeaders := make(http.Header)
14680	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
14681	for k, v := range c.header_ {
14682		reqHeaders[k] = v
14683	}
14684	reqHeaders.Set("User-Agent", c.s.userAgent())
14685	if c.ifNoneMatch_ != "" {
14686		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14687	}
14688	var body io.Reader = nil
14689	c.urlParams_.Set("alt", alt)
14690	c.urlParams_.Set("prettyPrint", "false")
14691	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}:audit")
14692	urls += "?" + c.urlParams_.Encode()
14693	req, err := http.NewRequest("GET", urls, body)
14694	if err != nil {
14695		return nil, err
14696	}
14697	req.Header = reqHeaders
14698	googleapi.Expand(req.URL, map[string]string{
14699		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
14700	})
14701	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14702}
14703
14704// Do executes the "displayvideo.advertisers.audit" call.
14705// Exactly one of *AuditAdvertiserResponse or error will be non-nil. Any
14706// non-2xx status code is an error. Response headers are in either
14707// *AuditAdvertiserResponse.ServerResponse.Header or (if a response was
14708// returned at all) in error.(*googleapi.Error).Header. Use
14709// googleapi.IsNotModified to check whether the returned error was
14710// because http.StatusNotModified was returned.
14711func (c *AdvertisersAuditCall) Do(opts ...googleapi.CallOption) (*AuditAdvertiserResponse, error) {
14712	gensupport.SetOptions(c.urlParams_, opts...)
14713	res, err := c.doRequest("json")
14714	if res != nil && res.StatusCode == http.StatusNotModified {
14715		if res.Body != nil {
14716			res.Body.Close()
14717		}
14718		return nil, &googleapi.Error{
14719			Code:   res.StatusCode,
14720			Header: res.Header,
14721		}
14722	}
14723	if err != nil {
14724		return nil, err
14725	}
14726	defer googleapi.CloseBody(res)
14727	if err := googleapi.CheckResponse(res); err != nil {
14728		return nil, err
14729	}
14730	ret := &AuditAdvertiserResponse{
14731		ServerResponse: googleapi.ServerResponse{
14732			Header:         res.Header,
14733			HTTPStatusCode: res.StatusCode,
14734		},
14735	}
14736	target := &ret
14737	if err := gensupport.DecodeResponse(target, res); err != nil {
14738		return nil, err
14739	}
14740	return ret, nil
14741	// {
14742	//   "description": "Audits an advertiser. Returns the counts of used entities per resource type under the advertiser provided. Used entities count towards their respective resource limit. See https://support.google.com/displayvideo/answer/6071450.",
14743	//   "flatPath": "v1/advertisers/{advertisersId}:audit",
14744	//   "httpMethod": "GET",
14745	//   "id": "displayvideo.advertisers.audit",
14746	//   "parameterOrder": [
14747	//     "advertiserId"
14748	//   ],
14749	//   "parameters": {
14750	//     "advertiserId": {
14751	//       "description": "Required. The ID of the advertiser to audit.",
14752	//       "format": "int64",
14753	//       "location": "path",
14754	//       "pattern": "^[^/]+$",
14755	//       "required": true,
14756	//       "type": "string"
14757	//     },
14758	//     "readMask": {
14759	//       "description": "Optional. The specific fields to return. If no mask is specified, all fields in the response proto will be filled. Valid values are: * usedLineItemsCount * usedInsertionOrdersCount * usedCampaignsCount * channelsCount * negativelyTargetedChannelsCount * negativeKeywordListsCount * adGroupCriteriaCount * campaignCriteriaCount",
14760	//       "format": "google-fieldmask",
14761	//       "location": "query",
14762	//       "type": "string"
14763	//     }
14764	//   },
14765	//   "path": "v1/advertisers/{+advertiserId}:audit",
14766	//   "response": {
14767	//     "$ref": "AuditAdvertiserResponse"
14768	//   },
14769	//   "scopes": [
14770	//     "https://www.googleapis.com/auth/display-video"
14771	//   ]
14772	// }
14773
14774}
14775
14776// method id "displayvideo.advertisers.bulkEditAdvertiserAssignedTargetingOptions":
14777
14778type AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall struct {
14779	s                                                 *Service
14780	advertiserId                                      int64
14781	bulkeditadvertiserassignedtargetingoptionsrequest *BulkEditAdvertiserAssignedTargetingOptionsRequest
14782	urlParams_                                        gensupport.URLParams
14783	ctx_                                              context.Context
14784	header_                                           http.Header
14785}
14786
14787// BulkEditAdvertiserAssignedTargetingOptions: Bulk edits targeting
14788// options under a single advertiser. The operation will delete the
14789// assigned targeting options provided in
14790// BulkEditAdvertiserAssignedTargetingOptionsRequest.delete_requests and
14791// then create the assigned targeting options provided in
14792// BulkEditAdvertiserAssignedTargetingOptionsRequest.create_requests .
14793//
14794// - advertiserId: The ID of the advertiser.
14795func (r *AdvertisersService) BulkEditAdvertiserAssignedTargetingOptions(advertiserId int64, bulkeditadvertiserassignedtargetingoptionsrequest *BulkEditAdvertiserAssignedTargetingOptionsRequest) *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall {
14796	c := &AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14797	c.advertiserId = advertiserId
14798	c.bulkeditadvertiserassignedtargetingoptionsrequest = bulkeditadvertiserassignedtargetingoptionsrequest
14799	return c
14800}
14801
14802// Fields allows partial responses to be retrieved. See
14803// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14804// for more information.
14805func (c *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall {
14806	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14807	return c
14808}
14809
14810// Context sets the context to be used in this call's Do method. Any
14811// pending HTTP request will be aborted if the provided context is
14812// canceled.
14813func (c *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall) Context(ctx context.Context) *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall {
14814	c.ctx_ = ctx
14815	return c
14816}
14817
14818// Header returns an http.Header that can be modified by the caller to
14819// add HTTP headers to the request.
14820func (c *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall) Header() http.Header {
14821	if c.header_ == nil {
14822		c.header_ = make(http.Header)
14823	}
14824	return c.header_
14825}
14826
14827func (c *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
14828	reqHeaders := make(http.Header)
14829	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
14830	for k, v := range c.header_ {
14831		reqHeaders[k] = v
14832	}
14833	reqHeaders.Set("User-Agent", c.s.userAgent())
14834	var body io.Reader = nil
14835	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditadvertiserassignedtargetingoptionsrequest)
14836	if err != nil {
14837		return nil, err
14838	}
14839	reqHeaders.Set("Content-Type", "application/json")
14840	c.urlParams_.Set("alt", alt)
14841	c.urlParams_.Set("prettyPrint", "false")
14842	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}:bulkEditAdvertiserAssignedTargetingOptions")
14843	urls += "?" + c.urlParams_.Encode()
14844	req, err := http.NewRequest("POST", urls, body)
14845	if err != nil {
14846		return nil, err
14847	}
14848	req.Header = reqHeaders
14849	googleapi.Expand(req.URL, map[string]string{
14850		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
14851	})
14852	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14853}
14854
14855// Do executes the "displayvideo.advertisers.bulkEditAdvertiserAssignedTargetingOptions" call.
14856// Exactly one of *BulkEditAdvertiserAssignedTargetingOptionsResponse or
14857// error will be non-nil. Any non-2xx status code is an error. Response
14858// headers are in either
14859// *BulkEditAdvertiserAssignedTargetingOptionsResponse.ServerResponse.Hea
14860// der or (if a response was returned at all) in
14861// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
14862// whether the returned error was because http.StatusNotModified was
14863// returned.
14864func (c *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkEditAdvertiserAssignedTargetingOptionsResponse, error) {
14865	gensupport.SetOptions(c.urlParams_, opts...)
14866	res, err := c.doRequest("json")
14867	if res != nil && res.StatusCode == http.StatusNotModified {
14868		if res.Body != nil {
14869			res.Body.Close()
14870		}
14871		return nil, &googleapi.Error{
14872			Code:   res.StatusCode,
14873			Header: res.Header,
14874		}
14875	}
14876	if err != nil {
14877		return nil, err
14878	}
14879	defer googleapi.CloseBody(res)
14880	if err := googleapi.CheckResponse(res); err != nil {
14881		return nil, err
14882	}
14883	ret := &BulkEditAdvertiserAssignedTargetingOptionsResponse{
14884		ServerResponse: googleapi.ServerResponse{
14885			Header:         res.Header,
14886			HTTPStatusCode: res.StatusCode,
14887		},
14888	}
14889	target := &ret
14890	if err := gensupport.DecodeResponse(target, res); err != nil {
14891		return nil, err
14892	}
14893	return ret, nil
14894	// {
14895	//   "description": "Bulk edits targeting options under a single advertiser. The operation will delete the assigned targeting options provided in BulkEditAdvertiserAssignedTargetingOptionsRequest.delete_requests and then create the assigned targeting options provided in BulkEditAdvertiserAssignedTargetingOptionsRequest.create_requests .",
14896	//   "flatPath": "v1/advertisers/{advertisersId}:bulkEditAdvertiserAssignedTargetingOptions",
14897	//   "httpMethod": "POST",
14898	//   "id": "displayvideo.advertisers.bulkEditAdvertiserAssignedTargetingOptions",
14899	//   "parameterOrder": [
14900	//     "advertiserId"
14901	//   ],
14902	//   "parameters": {
14903	//     "advertiserId": {
14904	//       "description": "Required. The ID of the advertiser.",
14905	//       "format": "int64",
14906	//       "location": "path",
14907	//       "pattern": "^[^/]+$",
14908	//       "required": true,
14909	//       "type": "string"
14910	//     }
14911	//   },
14912	//   "path": "v1/advertisers/{+advertiserId}:bulkEditAdvertiserAssignedTargetingOptions",
14913	//   "request": {
14914	//     "$ref": "BulkEditAdvertiserAssignedTargetingOptionsRequest"
14915	//   },
14916	//   "response": {
14917	//     "$ref": "BulkEditAdvertiserAssignedTargetingOptionsResponse"
14918	//   },
14919	//   "scopes": [
14920	//     "https://www.googleapis.com/auth/display-video"
14921	//   ]
14922	// }
14923
14924}
14925
14926// method id "displayvideo.advertisers.bulkListAdvertiserAssignedTargetingOptions":
14927
14928type AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall struct {
14929	s            *Service
14930	advertiserId int64
14931	urlParams_   gensupport.URLParams
14932	ifNoneMatch_ string
14933	ctx_         context.Context
14934	header_      http.Header
14935}
14936
14937// BulkListAdvertiserAssignedTargetingOptions: Lists assigned targeting
14938// options of an advertiser across targeting types.
14939//
14940// - advertiserId: The ID of the advertiser the line item belongs to.
14941func (r *AdvertisersService) BulkListAdvertiserAssignedTargetingOptions(advertiserId int64) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
14942	c := &AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14943	c.advertiserId = advertiserId
14944	return c
14945}
14946
14947// Filter sets the optional parameter "filter": Allows filtering by
14948// assigned targeting option properties. Supported syntax: * Filter
14949// expressions are made up of one or more restrictions. * Restrictions
14950// can be combined by the logical operator `OR`.. * A restriction has
14951// the form of `{field} {operator} {value}`. * The operator must be
14952// `EQUALS (=)`. * Supported fields: - `targetingType` Examples: *
14953// targetingType with value TARGETING_TYPE_CHANNEL
14954// `targetingType="TARGETING_TYPE_CHANNEL" The length of this field
14955// should be no more than 500 characters.
14956func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) Filter(filter string) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
14957	c.urlParams_.Set("filter", filter)
14958	return c
14959}
14960
14961// OrderBy sets the optional parameter "orderBy": Field by which to sort
14962// the list. Acceptable values are: * `targetingType` (default) The
14963// default sorting order is ascending. To specify descending order for a
14964// field, a suffix "desc" should be added to the field name. Example:
14965// `targetingType desc`.
14966func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) OrderBy(orderBy string) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
14967	c.urlParams_.Set("orderBy", orderBy)
14968	return c
14969}
14970
14971// PageSize sets the optional parameter "pageSize": Requested page size.
14972// The size must be an integer between `1` and `5000`. If unspecified,
14973// the default is '5000'. Returns error code `INVALID_ARGUMENT` if an
14974// invalid value is specified.
14975func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) PageSize(pageSize int64) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
14976	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
14977	return c
14978}
14979
14980// PageToken sets the optional parameter "pageToken": A token that lets
14981// the client fetch the next page of results. Typically, this is the
14982// value of next_page_token returned from the previous call to
14983// `BulkListAdvertiserAssignedTargetingOptions` method. If not
14984// specified, the first page of results will be returned.
14985func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) PageToken(pageToken string) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
14986	c.urlParams_.Set("pageToken", pageToken)
14987	return c
14988}
14989
14990// Fields allows partial responses to be retrieved. See
14991// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14992// for more information.
14993func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
14994	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14995	return c
14996}
14997
14998// IfNoneMatch sets the optional parameter which makes the operation
14999// fail if the object's ETag matches the given value. This is useful for
15000// getting updates only after the object has changed since the last
15001// request. Use googleapi.IsNotModified to check whether the response
15002// error from Do is the result of In-None-Match.
15003func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) IfNoneMatch(entityTag string) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
15004	c.ifNoneMatch_ = entityTag
15005	return c
15006}
15007
15008// Context sets the context to be used in this call's Do method. Any
15009// pending HTTP request will be aborted if the provided context is
15010// canceled.
15011func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) Context(ctx context.Context) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
15012	c.ctx_ = ctx
15013	return c
15014}
15015
15016// Header returns an http.Header that can be modified by the caller to
15017// add HTTP headers to the request.
15018func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) Header() http.Header {
15019	if c.header_ == nil {
15020		c.header_ = make(http.Header)
15021	}
15022	return c.header_
15023}
15024
15025func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
15026	reqHeaders := make(http.Header)
15027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
15028	for k, v := range c.header_ {
15029		reqHeaders[k] = v
15030	}
15031	reqHeaders.Set("User-Agent", c.s.userAgent())
15032	if c.ifNoneMatch_ != "" {
15033		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15034	}
15035	var body io.Reader = nil
15036	c.urlParams_.Set("alt", alt)
15037	c.urlParams_.Set("prettyPrint", "false")
15038	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}:bulkListAdvertiserAssignedTargetingOptions")
15039	urls += "?" + c.urlParams_.Encode()
15040	req, err := http.NewRequest("GET", urls, body)
15041	if err != nil {
15042		return nil, err
15043	}
15044	req.Header = reqHeaders
15045	googleapi.Expand(req.URL, map[string]string{
15046		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
15047	})
15048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15049}
15050
15051// Do executes the "displayvideo.advertisers.bulkListAdvertiserAssignedTargetingOptions" call.
15052// Exactly one of *BulkListAdvertiserAssignedTargetingOptionsResponse or
15053// error will be non-nil. Any non-2xx status code is an error. Response
15054// headers are in either
15055// *BulkListAdvertiserAssignedTargetingOptionsResponse.ServerResponse.Hea
15056// der or (if a response was returned at all) in
15057// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
15058// whether the returned error was because http.StatusNotModified was
15059// returned.
15060func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkListAdvertiserAssignedTargetingOptionsResponse, error) {
15061	gensupport.SetOptions(c.urlParams_, opts...)
15062	res, err := c.doRequest("json")
15063	if res != nil && res.StatusCode == http.StatusNotModified {
15064		if res.Body != nil {
15065			res.Body.Close()
15066		}
15067		return nil, &googleapi.Error{
15068			Code:   res.StatusCode,
15069			Header: res.Header,
15070		}
15071	}
15072	if err != nil {
15073		return nil, err
15074	}
15075	defer googleapi.CloseBody(res)
15076	if err := googleapi.CheckResponse(res); err != nil {
15077		return nil, err
15078	}
15079	ret := &BulkListAdvertiserAssignedTargetingOptionsResponse{
15080		ServerResponse: googleapi.ServerResponse{
15081			Header:         res.Header,
15082			HTTPStatusCode: res.StatusCode,
15083		},
15084	}
15085	target := &ret
15086	if err := gensupport.DecodeResponse(target, res); err != nil {
15087		return nil, err
15088	}
15089	return ret, nil
15090	// {
15091	//   "description": "Lists assigned targeting options of an advertiser across targeting types.",
15092	//   "flatPath": "v1/advertisers/{advertisersId}:bulkListAdvertiserAssignedTargetingOptions",
15093	//   "httpMethod": "GET",
15094	//   "id": "displayvideo.advertisers.bulkListAdvertiserAssignedTargetingOptions",
15095	//   "parameterOrder": [
15096	//     "advertiserId"
15097	//   ],
15098	//   "parameters": {
15099	//     "advertiserId": {
15100	//       "description": "Required. The ID of the advertiser the line item belongs to.",
15101	//       "format": "int64",
15102	//       "location": "path",
15103	//       "pattern": "^[^/]+$",
15104	//       "required": true,
15105	//       "type": "string"
15106	//     },
15107	//     "filter": {
15108	//       "description": "Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`.. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `targetingType` Examples: * targetingType with value TARGETING_TYPE_CHANNEL `targetingType=\"TARGETING_TYPE_CHANNEL\"` The length of this field should be no more than 500 characters.",
15109	//       "location": "query",
15110	//       "type": "string"
15111	//     },
15112	//     "orderBy": {
15113	//       "description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.",
15114	//       "location": "query",
15115	//       "type": "string"
15116	//     },
15117	//     "pageSize": {
15118	//       "description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is '5000'. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
15119	//       "format": "int32",
15120	//       "location": "query",
15121	//       "type": "integer"
15122	//     },
15123	//     "pageToken": {
15124	//       "description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListAdvertiserAssignedTargetingOptions` method. If not specified, the first page of results will be returned.",
15125	//       "location": "query",
15126	//       "type": "string"
15127	//     }
15128	//   },
15129	//   "path": "v1/advertisers/{+advertiserId}:bulkListAdvertiserAssignedTargetingOptions",
15130	//   "response": {
15131	//     "$ref": "BulkListAdvertiserAssignedTargetingOptionsResponse"
15132	//   },
15133	//   "scopes": [
15134	//     "https://www.googleapis.com/auth/display-video"
15135	//   ]
15136	// }
15137
15138}
15139
15140// Pages invokes f for each page of results.
15141// A non-nil error returned from f will halt the iteration.
15142// The provided context supersedes any context provided to the Context method.
15143func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) Pages(ctx context.Context, f func(*BulkListAdvertiserAssignedTargetingOptionsResponse) error) error {
15144	c.ctx_ = ctx
15145	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
15146	for {
15147		x, err := c.Do()
15148		if err != nil {
15149			return err
15150		}
15151		if err := f(x); err != nil {
15152			return err
15153		}
15154		if x.NextPageToken == "" {
15155			return nil
15156		}
15157		c.PageToken(x.NextPageToken)
15158	}
15159}
15160
15161// method id "displayvideo.advertisers.create":
15162
15163type AdvertisersCreateCall struct {
15164	s          *Service
15165	advertiser *Advertiser
15166	urlParams_ gensupport.URLParams
15167	ctx_       context.Context
15168	header_    http.Header
15169}
15170
15171// Create: Creates a new advertiser. Returns the newly created
15172// advertiser if successful. This method can take up to 180 seconds to
15173// complete.
15174func (r *AdvertisersService) Create(advertiser *Advertiser) *AdvertisersCreateCall {
15175	c := &AdvertisersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15176	c.advertiser = advertiser
15177	return c
15178}
15179
15180// Fields allows partial responses to be retrieved. See
15181// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15182// for more information.
15183func (c *AdvertisersCreateCall) Fields(s ...googleapi.Field) *AdvertisersCreateCall {
15184	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15185	return c
15186}
15187
15188// Context sets the context to be used in this call's Do method. Any
15189// pending HTTP request will be aborted if the provided context is
15190// canceled.
15191func (c *AdvertisersCreateCall) Context(ctx context.Context) *AdvertisersCreateCall {
15192	c.ctx_ = ctx
15193	return c
15194}
15195
15196// Header returns an http.Header that can be modified by the caller to
15197// add HTTP headers to the request.
15198func (c *AdvertisersCreateCall) Header() http.Header {
15199	if c.header_ == nil {
15200		c.header_ = make(http.Header)
15201	}
15202	return c.header_
15203}
15204
15205func (c *AdvertisersCreateCall) doRequest(alt string) (*http.Response, error) {
15206	reqHeaders := make(http.Header)
15207	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
15208	for k, v := range c.header_ {
15209		reqHeaders[k] = v
15210	}
15211	reqHeaders.Set("User-Agent", c.s.userAgent())
15212	var body io.Reader = nil
15213	body, err := googleapi.WithoutDataWrapper.JSONReader(c.advertiser)
15214	if err != nil {
15215		return nil, err
15216	}
15217	reqHeaders.Set("Content-Type", "application/json")
15218	c.urlParams_.Set("alt", alt)
15219	c.urlParams_.Set("prettyPrint", "false")
15220	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers")
15221	urls += "?" + c.urlParams_.Encode()
15222	req, err := http.NewRequest("POST", urls, body)
15223	if err != nil {
15224		return nil, err
15225	}
15226	req.Header = reqHeaders
15227	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15228}
15229
15230// Do executes the "displayvideo.advertisers.create" call.
15231// Exactly one of *Advertiser or error will be non-nil. Any non-2xx
15232// status code is an error. Response headers are in either
15233// *Advertiser.ServerResponse.Header or (if a response was returned at
15234// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15235// to check whether the returned error was because
15236// http.StatusNotModified was returned.
15237func (c *AdvertisersCreateCall) Do(opts ...googleapi.CallOption) (*Advertiser, error) {
15238	gensupport.SetOptions(c.urlParams_, opts...)
15239	res, err := c.doRequest("json")
15240	if res != nil && res.StatusCode == http.StatusNotModified {
15241		if res.Body != nil {
15242			res.Body.Close()
15243		}
15244		return nil, &googleapi.Error{
15245			Code:   res.StatusCode,
15246			Header: res.Header,
15247		}
15248	}
15249	if err != nil {
15250		return nil, err
15251	}
15252	defer googleapi.CloseBody(res)
15253	if err := googleapi.CheckResponse(res); err != nil {
15254		return nil, err
15255	}
15256	ret := &Advertiser{
15257		ServerResponse: googleapi.ServerResponse{
15258			Header:         res.Header,
15259			HTTPStatusCode: res.StatusCode,
15260		},
15261	}
15262	target := &ret
15263	if err := gensupport.DecodeResponse(target, res); err != nil {
15264		return nil, err
15265	}
15266	return ret, nil
15267	// {
15268	//   "description": "Creates a new advertiser. Returns the newly created advertiser if successful. This method can take up to 180 seconds to complete.",
15269	//   "flatPath": "v1/advertisers",
15270	//   "httpMethod": "POST",
15271	//   "id": "displayvideo.advertisers.create",
15272	//   "parameterOrder": [],
15273	//   "parameters": {},
15274	//   "path": "v1/advertisers",
15275	//   "request": {
15276	//     "$ref": "Advertiser"
15277	//   },
15278	//   "response": {
15279	//     "$ref": "Advertiser"
15280	//   },
15281	//   "scopes": [
15282	//     "https://www.googleapis.com/auth/display-video"
15283	//   ]
15284	// }
15285
15286}
15287
15288// method id "displayvideo.advertisers.delete":
15289
15290type AdvertisersDeleteCall struct {
15291	s            *Service
15292	advertiserId int64
15293	urlParams_   gensupport.URLParams
15294	ctx_         context.Context
15295	header_      http.Header
15296}
15297
15298// Delete: Deletes an advertiser. Deleting an advertiser will delete all
15299// of its child resources, for example, campaigns, insertion orders and
15300// line items. A deleted advertiser cannot be recovered.
15301//
15302// - advertiserId: The ID of the advertiser we need to delete.
15303func (r *AdvertisersService) Delete(advertiserId int64) *AdvertisersDeleteCall {
15304	c := &AdvertisersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15305	c.advertiserId = advertiserId
15306	return c
15307}
15308
15309// Fields allows partial responses to be retrieved. See
15310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15311// for more information.
15312func (c *AdvertisersDeleteCall) Fields(s ...googleapi.Field) *AdvertisersDeleteCall {
15313	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15314	return c
15315}
15316
15317// Context sets the context to be used in this call's Do method. Any
15318// pending HTTP request will be aborted if the provided context is
15319// canceled.
15320func (c *AdvertisersDeleteCall) Context(ctx context.Context) *AdvertisersDeleteCall {
15321	c.ctx_ = ctx
15322	return c
15323}
15324
15325// Header returns an http.Header that can be modified by the caller to
15326// add HTTP headers to the request.
15327func (c *AdvertisersDeleteCall) Header() http.Header {
15328	if c.header_ == nil {
15329		c.header_ = make(http.Header)
15330	}
15331	return c.header_
15332}
15333
15334func (c *AdvertisersDeleteCall) doRequest(alt string) (*http.Response, error) {
15335	reqHeaders := make(http.Header)
15336	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
15337	for k, v := range c.header_ {
15338		reqHeaders[k] = v
15339	}
15340	reqHeaders.Set("User-Agent", c.s.userAgent())
15341	var body io.Reader = nil
15342	c.urlParams_.Set("alt", alt)
15343	c.urlParams_.Set("prettyPrint", "false")
15344	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}")
15345	urls += "?" + c.urlParams_.Encode()
15346	req, err := http.NewRequest("DELETE", urls, body)
15347	if err != nil {
15348		return nil, err
15349	}
15350	req.Header = reqHeaders
15351	googleapi.Expand(req.URL, map[string]string{
15352		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
15353	})
15354	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15355}
15356
15357// Do executes the "displayvideo.advertisers.delete" call.
15358// Exactly one of *Empty or error will be non-nil. Any non-2xx status
15359// code is an error. Response headers are in either
15360// *Empty.ServerResponse.Header or (if a response was returned at all)
15361// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
15362// check whether the returned error was because http.StatusNotModified
15363// was returned.
15364func (c *AdvertisersDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
15365	gensupport.SetOptions(c.urlParams_, opts...)
15366	res, err := c.doRequest("json")
15367	if res != nil && res.StatusCode == http.StatusNotModified {
15368		if res.Body != nil {
15369			res.Body.Close()
15370		}
15371		return nil, &googleapi.Error{
15372			Code:   res.StatusCode,
15373			Header: res.Header,
15374		}
15375	}
15376	if err != nil {
15377		return nil, err
15378	}
15379	defer googleapi.CloseBody(res)
15380	if err := googleapi.CheckResponse(res); err != nil {
15381		return nil, err
15382	}
15383	ret := &Empty{
15384		ServerResponse: googleapi.ServerResponse{
15385			Header:         res.Header,
15386			HTTPStatusCode: res.StatusCode,
15387		},
15388	}
15389	target := &ret
15390	if err := gensupport.DecodeResponse(target, res); err != nil {
15391		return nil, err
15392	}
15393	return ret, nil
15394	// {
15395	//   "description": "Deletes an advertiser. Deleting an advertiser will delete all of its child resources, for example, campaigns, insertion orders and line items. A deleted advertiser cannot be recovered.",
15396	//   "flatPath": "v1/advertisers/{advertisersId}",
15397	//   "httpMethod": "DELETE",
15398	//   "id": "displayvideo.advertisers.delete",
15399	//   "parameterOrder": [
15400	//     "advertiserId"
15401	//   ],
15402	//   "parameters": {
15403	//     "advertiserId": {
15404	//       "description": "The ID of the advertiser we need to delete.",
15405	//       "format": "int64",
15406	//       "location": "path",
15407	//       "pattern": "^[^/]+$",
15408	//       "required": true,
15409	//       "type": "string"
15410	//     }
15411	//   },
15412	//   "path": "v1/advertisers/{+advertiserId}",
15413	//   "response": {
15414	//     "$ref": "Empty"
15415	//   },
15416	//   "scopes": [
15417	//     "https://www.googleapis.com/auth/display-video"
15418	//   ]
15419	// }
15420
15421}
15422
15423// method id "displayvideo.advertisers.get":
15424
15425type AdvertisersGetCall struct {
15426	s            *Service
15427	advertiserId int64
15428	urlParams_   gensupport.URLParams
15429	ifNoneMatch_ string
15430	ctx_         context.Context
15431	header_      http.Header
15432}
15433
15434// Get: Gets an advertiser.
15435//
15436// - advertiserId: The ID of the advertiser to fetch.
15437func (r *AdvertisersService) Get(advertiserId int64) *AdvertisersGetCall {
15438	c := &AdvertisersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15439	c.advertiserId = advertiserId
15440	return c
15441}
15442
15443// Fields allows partial responses to be retrieved. See
15444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15445// for more information.
15446func (c *AdvertisersGetCall) Fields(s ...googleapi.Field) *AdvertisersGetCall {
15447	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15448	return c
15449}
15450
15451// IfNoneMatch sets the optional parameter which makes the operation
15452// fail if the object's ETag matches the given value. This is useful for
15453// getting updates only after the object has changed since the last
15454// request. Use googleapi.IsNotModified to check whether the response
15455// error from Do is the result of In-None-Match.
15456func (c *AdvertisersGetCall) IfNoneMatch(entityTag string) *AdvertisersGetCall {
15457	c.ifNoneMatch_ = entityTag
15458	return c
15459}
15460
15461// Context sets the context to be used in this call's Do method. Any
15462// pending HTTP request will be aborted if the provided context is
15463// canceled.
15464func (c *AdvertisersGetCall) Context(ctx context.Context) *AdvertisersGetCall {
15465	c.ctx_ = ctx
15466	return c
15467}
15468
15469// Header returns an http.Header that can be modified by the caller to
15470// add HTTP headers to the request.
15471func (c *AdvertisersGetCall) Header() http.Header {
15472	if c.header_ == nil {
15473		c.header_ = make(http.Header)
15474	}
15475	return c.header_
15476}
15477
15478func (c *AdvertisersGetCall) doRequest(alt string) (*http.Response, error) {
15479	reqHeaders := make(http.Header)
15480	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
15481	for k, v := range c.header_ {
15482		reqHeaders[k] = v
15483	}
15484	reqHeaders.Set("User-Agent", c.s.userAgent())
15485	if c.ifNoneMatch_ != "" {
15486		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15487	}
15488	var body io.Reader = nil
15489	c.urlParams_.Set("alt", alt)
15490	c.urlParams_.Set("prettyPrint", "false")
15491	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}")
15492	urls += "?" + c.urlParams_.Encode()
15493	req, err := http.NewRequest("GET", urls, body)
15494	if err != nil {
15495		return nil, err
15496	}
15497	req.Header = reqHeaders
15498	googleapi.Expand(req.URL, map[string]string{
15499		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
15500	})
15501	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15502}
15503
15504// Do executes the "displayvideo.advertisers.get" call.
15505// Exactly one of *Advertiser or error will be non-nil. Any non-2xx
15506// status code is an error. Response headers are in either
15507// *Advertiser.ServerResponse.Header or (if a response was returned at
15508// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15509// to check whether the returned error was because
15510// http.StatusNotModified was returned.
15511func (c *AdvertisersGetCall) Do(opts ...googleapi.CallOption) (*Advertiser, error) {
15512	gensupport.SetOptions(c.urlParams_, opts...)
15513	res, err := c.doRequest("json")
15514	if res != nil && res.StatusCode == http.StatusNotModified {
15515		if res.Body != nil {
15516			res.Body.Close()
15517		}
15518		return nil, &googleapi.Error{
15519			Code:   res.StatusCode,
15520			Header: res.Header,
15521		}
15522	}
15523	if err != nil {
15524		return nil, err
15525	}
15526	defer googleapi.CloseBody(res)
15527	if err := googleapi.CheckResponse(res); err != nil {
15528		return nil, err
15529	}
15530	ret := &Advertiser{
15531		ServerResponse: googleapi.ServerResponse{
15532			Header:         res.Header,
15533			HTTPStatusCode: res.StatusCode,
15534		},
15535	}
15536	target := &ret
15537	if err := gensupport.DecodeResponse(target, res); err != nil {
15538		return nil, err
15539	}
15540	return ret, nil
15541	// {
15542	//   "description": "Gets an advertiser.",
15543	//   "flatPath": "v1/advertisers/{advertisersId}",
15544	//   "httpMethod": "GET",
15545	//   "id": "displayvideo.advertisers.get",
15546	//   "parameterOrder": [
15547	//     "advertiserId"
15548	//   ],
15549	//   "parameters": {
15550	//     "advertiserId": {
15551	//       "description": "Required. The ID of the advertiser to fetch.",
15552	//       "format": "int64",
15553	//       "location": "path",
15554	//       "pattern": "^[^/]+$",
15555	//       "required": true,
15556	//       "type": "string"
15557	//     }
15558	//   },
15559	//   "path": "v1/advertisers/{+advertiserId}",
15560	//   "response": {
15561	//     "$ref": "Advertiser"
15562	//   },
15563	//   "scopes": [
15564	//     "https://www.googleapis.com/auth/display-video"
15565	//   ]
15566	// }
15567
15568}
15569
15570// method id "displayvideo.advertisers.list":
15571
15572type AdvertisersListCall struct {
15573	s            *Service
15574	urlParams_   gensupport.URLParams
15575	ifNoneMatch_ string
15576	ctx_         context.Context
15577	header_      http.Header
15578}
15579
15580// List: Lists advertisers that are accessible to the current user. The
15581// order is defined by the order_by parameter. A single partner_id is
15582// required. Cross-partner listing is not supported.
15583func (r *AdvertisersService) List() *AdvertisersListCall {
15584	c := &AdvertisersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15585	return c
15586}
15587
15588// Filter sets the optional parameter "filter": Allows filtering by
15589// advertiser properties. Supported syntax: * Filter expressions are
15590// made up of one or more restrictions. * Restrictions can be combined
15591// by `AND` or `OR` logical operators. A sequence of restrictions
15592// implicitly uses `AND`. * A restriction has the form of `{field}
15593// {operator} {value}`. * The operator used on `updateTime` must be
15594// `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)`. *
15595// The operator must be `EQUALS (=)`. * Supported fields: -
15596// `advertiserId` - `displayName` - `entityStatus` - `updateTime` (input
15597// in ISO 8601 format, or YYYY-MM-DDTHH:MM:SSZ) Examples: * All active
15598// advertisers under a partner: `entityStatus="ENTITY_STATUS_ACTIVE" *
15599// All advertisers with an update time less than or equal to
15600// `2020-11-04T18:54:47Z (format of ISO 8601)`:
15601// `updateTime<="2020-11-04T18:54:47Z" * All advertisers with an update
15602// time greater than or equal to `2020-11-04T18:54:47Z (format of ISO
15603// 8601)`: `updateTime>="2020-11-04T18:54:47Z" The length of this field
15604// should be no more than 500 characters.
15605func (c *AdvertisersListCall) Filter(filter string) *AdvertisersListCall {
15606	c.urlParams_.Set("filter", filter)
15607	return c
15608}
15609
15610// OrderBy sets the optional parameter "orderBy": Field by which to sort
15611// the list. Acceptable values are: * `displayName` (default) *
15612// `entityStatus` * `updateTime` The default sorting order is ascending.
15613// To specify descending order for a field, a suffix "desc" should be
15614// added to the field name. For example, `displayName desc`.
15615func (c *AdvertisersListCall) OrderBy(orderBy string) *AdvertisersListCall {
15616	c.urlParams_.Set("orderBy", orderBy)
15617	return c
15618}
15619
15620// PageSize sets the optional parameter "pageSize": Requested page size.
15621// Must be between `1` and `100`. If unspecified will default to `100`.
15622func (c *AdvertisersListCall) PageSize(pageSize int64) *AdvertisersListCall {
15623	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
15624	return c
15625}
15626
15627// PageToken sets the optional parameter "pageToken": A token
15628// identifying a page of results the server should return. Typically,
15629// this is the value of next_page_token returned from the previous call
15630// to `ListAdvertisers` method. If not specified, the first page of
15631// results will be returned.
15632func (c *AdvertisersListCall) PageToken(pageToken string) *AdvertisersListCall {
15633	c.urlParams_.Set("pageToken", pageToken)
15634	return c
15635}
15636
15637// PartnerId sets the optional parameter "partnerId": Required. The ID
15638// of the partner that the fetched advertisers should all belong to. The
15639// system only supports listing advertisers for one partner at a time.
15640func (c *AdvertisersListCall) PartnerId(partnerId int64) *AdvertisersListCall {
15641	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
15642	return c
15643}
15644
15645// Fields allows partial responses to be retrieved. See
15646// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15647// for more information.
15648func (c *AdvertisersListCall) Fields(s ...googleapi.Field) *AdvertisersListCall {
15649	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15650	return c
15651}
15652
15653// IfNoneMatch sets the optional parameter which makes the operation
15654// fail if the object's ETag matches the given value. This is useful for
15655// getting updates only after the object has changed since the last
15656// request. Use googleapi.IsNotModified to check whether the response
15657// error from Do is the result of In-None-Match.
15658func (c *AdvertisersListCall) IfNoneMatch(entityTag string) *AdvertisersListCall {
15659	c.ifNoneMatch_ = entityTag
15660	return c
15661}
15662
15663// Context sets the context to be used in this call's Do method. Any
15664// pending HTTP request will be aborted if the provided context is
15665// canceled.
15666func (c *AdvertisersListCall) Context(ctx context.Context) *AdvertisersListCall {
15667	c.ctx_ = ctx
15668	return c
15669}
15670
15671// Header returns an http.Header that can be modified by the caller to
15672// add HTTP headers to the request.
15673func (c *AdvertisersListCall) Header() http.Header {
15674	if c.header_ == nil {
15675		c.header_ = make(http.Header)
15676	}
15677	return c.header_
15678}
15679
15680func (c *AdvertisersListCall) doRequest(alt string) (*http.Response, error) {
15681	reqHeaders := make(http.Header)
15682	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
15683	for k, v := range c.header_ {
15684		reqHeaders[k] = v
15685	}
15686	reqHeaders.Set("User-Agent", c.s.userAgent())
15687	if c.ifNoneMatch_ != "" {
15688		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15689	}
15690	var body io.Reader = nil
15691	c.urlParams_.Set("alt", alt)
15692	c.urlParams_.Set("prettyPrint", "false")
15693	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers")
15694	urls += "?" + c.urlParams_.Encode()
15695	req, err := http.NewRequest("GET", urls, body)
15696	if err != nil {
15697		return nil, err
15698	}
15699	req.Header = reqHeaders
15700	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15701}
15702
15703// Do executes the "displayvideo.advertisers.list" call.
15704// Exactly one of *ListAdvertisersResponse or error will be non-nil. Any
15705// non-2xx status code is an error. Response headers are in either
15706// *ListAdvertisersResponse.ServerResponse.Header or (if a response was
15707// returned at all) in error.(*googleapi.Error).Header. Use
15708// googleapi.IsNotModified to check whether the returned error was
15709// because http.StatusNotModified was returned.
15710func (c *AdvertisersListCall) Do(opts ...googleapi.CallOption) (*ListAdvertisersResponse, error) {
15711	gensupport.SetOptions(c.urlParams_, opts...)
15712	res, err := c.doRequest("json")
15713	if res != nil && res.StatusCode == http.StatusNotModified {
15714		if res.Body != nil {
15715			res.Body.Close()
15716		}
15717		return nil, &googleapi.Error{
15718			Code:   res.StatusCode,
15719			Header: res.Header,
15720		}
15721	}
15722	if err != nil {
15723		return nil, err
15724	}
15725	defer googleapi.CloseBody(res)
15726	if err := googleapi.CheckResponse(res); err != nil {
15727		return nil, err
15728	}
15729	ret := &ListAdvertisersResponse{
15730		ServerResponse: googleapi.ServerResponse{
15731			Header:         res.Header,
15732			HTTPStatusCode: res.StatusCode,
15733		},
15734	}
15735	target := &ret
15736	if err := gensupport.DecodeResponse(target, res); err != nil {
15737		return nil, err
15738	}
15739	return ret, nil
15740	// {
15741	//   "description": "Lists advertisers that are accessible to the current user. The order is defined by the order_by parameter. A single partner_id is required. Cross-partner listing is not supported.",
15742	//   "flatPath": "v1/advertisers",
15743	//   "httpMethod": "GET",
15744	//   "id": "displayvideo.advertisers.list",
15745	//   "parameterOrder": [],
15746	//   "parameters": {
15747	//     "filter": {
15748	//       "description": "Allows filtering by advertiser properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The operator used on `updateTime` must be `GREATER THAN OR EQUAL TO (\u003e=)` or `LESS THAN OR EQUAL TO (\u003c=)`. * The operator must be `EQUALS (=)`. * Supported fields: - `advertiserId` - `displayName` - `entityStatus` - `updateTime` (input in ISO 8601 format, or YYYY-MM-DDTHH:MM:SSZ) Examples: * All active advertisers under a partner: `entityStatus=\"ENTITY_STATUS_ACTIVE\"` * All advertisers with an update time less than or equal to `2020-11-04T18:54:47Z (format of ISO 8601)`: `updateTime\u003c=\"2020-11-04T18:54:47Z\"` * All advertisers with an update time greater than or equal to `2020-11-04T18:54:47Z (format of ISO 8601)`: `updateTime\u003e=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters.",
15749	//       "location": "query",
15750	//       "type": "string"
15751	//     },
15752	//     "orderBy": {
15753	//       "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` * `updateTime` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.",
15754	//       "location": "query",
15755	//       "type": "string"
15756	//     },
15757	//     "pageSize": {
15758	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
15759	//       "format": "int32",
15760	//       "location": "query",
15761	//       "type": "integer"
15762	//     },
15763	//     "pageToken": {
15764	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAdvertisers` method. If not specified, the first page of results will be returned.",
15765	//       "location": "query",
15766	//       "type": "string"
15767	//     },
15768	//     "partnerId": {
15769	//       "description": "Required. The ID of the partner that the fetched advertisers should all belong to. The system only supports listing advertisers for one partner at a time.",
15770	//       "format": "int64",
15771	//       "location": "query",
15772	//       "type": "string"
15773	//     }
15774	//   },
15775	//   "path": "v1/advertisers",
15776	//   "response": {
15777	//     "$ref": "ListAdvertisersResponse"
15778	//   },
15779	//   "scopes": [
15780	//     "https://www.googleapis.com/auth/display-video"
15781	//   ]
15782	// }
15783
15784}
15785
15786// Pages invokes f for each page of results.
15787// A non-nil error returned from f will halt the iteration.
15788// The provided context supersedes any context provided to the Context method.
15789func (c *AdvertisersListCall) Pages(ctx context.Context, f func(*ListAdvertisersResponse) error) error {
15790	c.ctx_ = ctx
15791	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
15792	for {
15793		x, err := c.Do()
15794		if err != nil {
15795			return err
15796		}
15797		if err := f(x); err != nil {
15798			return err
15799		}
15800		if x.NextPageToken == "" {
15801			return nil
15802		}
15803		c.PageToken(x.NextPageToken)
15804	}
15805}
15806
15807// method id "displayvideo.advertisers.patch":
15808
15809type AdvertisersPatchCall struct {
15810	s            *Service
15811	advertiserId int64
15812	advertiser   *Advertiser
15813	urlParams_   gensupport.URLParams
15814	ctx_         context.Context
15815	header_      http.Header
15816}
15817
15818// Patch: Updates an existing advertiser. Returns the updated advertiser
15819// if successful.
15820//
15821// - advertiserId: Output only. The unique ID of the advertiser.
15822//   Assigned by the system.
15823func (r *AdvertisersService) Patch(advertiserId int64, advertiser *Advertiser) *AdvertisersPatchCall {
15824	c := &AdvertisersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15825	c.advertiserId = advertiserId
15826	c.advertiser = advertiser
15827	return c
15828}
15829
15830// UpdateMask sets the optional parameter "updateMask": Required. The
15831// mask to control which fields to update.
15832func (c *AdvertisersPatchCall) UpdateMask(updateMask string) *AdvertisersPatchCall {
15833	c.urlParams_.Set("updateMask", updateMask)
15834	return c
15835}
15836
15837// Fields allows partial responses to be retrieved. See
15838// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15839// for more information.
15840func (c *AdvertisersPatchCall) Fields(s ...googleapi.Field) *AdvertisersPatchCall {
15841	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15842	return c
15843}
15844
15845// Context sets the context to be used in this call's Do method. Any
15846// pending HTTP request will be aborted if the provided context is
15847// canceled.
15848func (c *AdvertisersPatchCall) Context(ctx context.Context) *AdvertisersPatchCall {
15849	c.ctx_ = ctx
15850	return c
15851}
15852
15853// Header returns an http.Header that can be modified by the caller to
15854// add HTTP headers to the request.
15855func (c *AdvertisersPatchCall) Header() http.Header {
15856	if c.header_ == nil {
15857		c.header_ = make(http.Header)
15858	}
15859	return c.header_
15860}
15861
15862func (c *AdvertisersPatchCall) doRequest(alt string) (*http.Response, error) {
15863	reqHeaders := make(http.Header)
15864	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
15865	for k, v := range c.header_ {
15866		reqHeaders[k] = v
15867	}
15868	reqHeaders.Set("User-Agent", c.s.userAgent())
15869	var body io.Reader = nil
15870	body, err := googleapi.WithoutDataWrapper.JSONReader(c.advertiser)
15871	if err != nil {
15872		return nil, err
15873	}
15874	reqHeaders.Set("Content-Type", "application/json")
15875	c.urlParams_.Set("alt", alt)
15876	c.urlParams_.Set("prettyPrint", "false")
15877	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}")
15878	urls += "?" + c.urlParams_.Encode()
15879	req, err := http.NewRequest("PATCH", urls, body)
15880	if err != nil {
15881		return nil, err
15882	}
15883	req.Header = reqHeaders
15884	googleapi.Expand(req.URL, map[string]string{
15885		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
15886	})
15887	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15888}
15889
15890// Do executes the "displayvideo.advertisers.patch" call.
15891// Exactly one of *Advertiser or error will be non-nil. Any non-2xx
15892// status code is an error. Response headers are in either
15893// *Advertiser.ServerResponse.Header or (if a response was returned at
15894// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15895// to check whether the returned error was because
15896// http.StatusNotModified was returned.
15897func (c *AdvertisersPatchCall) Do(opts ...googleapi.CallOption) (*Advertiser, error) {
15898	gensupport.SetOptions(c.urlParams_, opts...)
15899	res, err := c.doRequest("json")
15900	if res != nil && res.StatusCode == http.StatusNotModified {
15901		if res.Body != nil {
15902			res.Body.Close()
15903		}
15904		return nil, &googleapi.Error{
15905			Code:   res.StatusCode,
15906			Header: res.Header,
15907		}
15908	}
15909	if err != nil {
15910		return nil, err
15911	}
15912	defer googleapi.CloseBody(res)
15913	if err := googleapi.CheckResponse(res); err != nil {
15914		return nil, err
15915	}
15916	ret := &Advertiser{
15917		ServerResponse: googleapi.ServerResponse{
15918			Header:         res.Header,
15919			HTTPStatusCode: res.StatusCode,
15920		},
15921	}
15922	target := &ret
15923	if err := gensupport.DecodeResponse(target, res); err != nil {
15924		return nil, err
15925	}
15926	return ret, nil
15927	// {
15928	//   "description": "Updates an existing advertiser. Returns the updated advertiser if successful.",
15929	//   "flatPath": "v1/advertisers/{advertisersId}",
15930	//   "httpMethod": "PATCH",
15931	//   "id": "displayvideo.advertisers.patch",
15932	//   "parameterOrder": [
15933	//     "advertiserId"
15934	//   ],
15935	//   "parameters": {
15936	//     "advertiserId": {
15937	//       "description": "Output only. The unique ID of the advertiser. Assigned by the system.",
15938	//       "format": "int64",
15939	//       "location": "path",
15940	//       "pattern": "^[^/]+$",
15941	//       "required": true,
15942	//       "type": "string"
15943	//     },
15944	//     "updateMask": {
15945	//       "description": "Required. The mask to control which fields to update.",
15946	//       "format": "google-fieldmask",
15947	//       "location": "query",
15948	//       "type": "string"
15949	//     }
15950	//   },
15951	//   "path": "v1/advertisers/{+advertiserId}",
15952	//   "request": {
15953	//     "$ref": "Advertiser"
15954	//   },
15955	//   "response": {
15956	//     "$ref": "Advertiser"
15957	//   },
15958	//   "scopes": [
15959	//     "https://www.googleapis.com/auth/display-video"
15960	//   ]
15961	// }
15962
15963}
15964
15965// method id "displayvideo.advertisers.assets.upload":
15966
15967type AdvertisersAssetsUploadCall struct {
15968	s                  *Service
15969	advertiserId       int64
15970	createassetrequest *CreateAssetRequest
15971	urlParams_         gensupport.URLParams
15972	mediaInfo_         *gensupport.MediaInfo
15973	ctx_               context.Context
15974	header_            http.Header
15975}
15976
15977// Upload: Uploads an asset. Returns the ID of the newly uploaded asset
15978// if successful. The asset file size should be no more than 10 MB for
15979// images, 200 MB for ZIP files, and 1 GB for videos.
15980//
15981// - advertiserId: The ID of the advertiser this asset belongs to.
15982func (r *AdvertisersAssetsService) Upload(advertiserId int64, createassetrequest *CreateAssetRequest) *AdvertisersAssetsUploadCall {
15983	c := &AdvertisersAssetsUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15984	c.advertiserId = advertiserId
15985	c.createassetrequest = createassetrequest
15986	return c
15987}
15988
15989// Media specifies the media to upload in one or more chunks. The chunk
15990// size may be controlled by supplying a MediaOption generated by
15991// googleapi.ChunkSize. The chunk size defaults to
15992// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
15993// upload request will be determined by sniffing the contents of r,
15994// unless a MediaOption generated by googleapi.ContentType is
15995// supplied.
15996// At most one of Media and ResumableMedia may be set.
15997func (c *AdvertisersAssetsUploadCall) Media(r io.Reader, options ...googleapi.MediaOption) *AdvertisersAssetsUploadCall {
15998	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
15999	return c
16000}
16001
16002// ResumableMedia specifies the media to upload in chunks and can be
16003// canceled with ctx.
16004//
16005// Deprecated: use Media instead.
16006//
16007// At most one of Media and ResumableMedia may be set. mediaType
16008// identifies the MIME media type of the upload, such as "image/png". If
16009// mediaType is "", it will be auto-detected. The provided ctx will
16010// supersede any context previously provided to the Context method.
16011func (c *AdvertisersAssetsUploadCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *AdvertisersAssetsUploadCall {
16012	c.ctx_ = ctx
16013	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
16014	return c
16015}
16016
16017// ProgressUpdater provides a callback function that will be called
16018// after every chunk. It should be a low-latency function in order to
16019// not slow down the upload operation. This should only be called when
16020// using ResumableMedia (as opposed to Media).
16021func (c *AdvertisersAssetsUploadCall) ProgressUpdater(pu googleapi.ProgressUpdater) *AdvertisersAssetsUploadCall {
16022	c.mediaInfo_.SetProgressUpdater(pu)
16023	return c
16024}
16025
16026// Fields allows partial responses to be retrieved. See
16027// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16028// for more information.
16029func (c *AdvertisersAssetsUploadCall) Fields(s ...googleapi.Field) *AdvertisersAssetsUploadCall {
16030	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16031	return c
16032}
16033
16034// Context sets the context to be used in this call's Do method. Any
16035// pending HTTP request will be aborted if the provided context is
16036// canceled.
16037// This context will supersede any context previously provided to the
16038// ResumableMedia method.
16039func (c *AdvertisersAssetsUploadCall) Context(ctx context.Context) *AdvertisersAssetsUploadCall {
16040	c.ctx_ = ctx
16041	return c
16042}
16043
16044// Header returns an http.Header that can be modified by the caller to
16045// add HTTP headers to the request.
16046func (c *AdvertisersAssetsUploadCall) Header() http.Header {
16047	if c.header_ == nil {
16048		c.header_ = make(http.Header)
16049	}
16050	return c.header_
16051}
16052
16053func (c *AdvertisersAssetsUploadCall) doRequest(alt string) (*http.Response, error) {
16054	reqHeaders := make(http.Header)
16055	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
16056	for k, v := range c.header_ {
16057		reqHeaders[k] = v
16058	}
16059	reqHeaders.Set("User-Agent", c.s.userAgent())
16060	var body io.Reader = nil
16061	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createassetrequest)
16062	if err != nil {
16063		return nil, err
16064	}
16065	reqHeaders.Set("Content-Type", "application/json")
16066	c.urlParams_.Set("alt", alt)
16067	c.urlParams_.Set("prettyPrint", "false")
16068	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/assets")
16069	if c.mediaInfo_ != nil {
16070		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/v1/advertisers/{+advertiserId}/assets")
16071		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
16072	}
16073	if body == nil {
16074		body = new(bytes.Buffer)
16075		reqHeaders.Set("Content-Type", "application/json")
16076	}
16077	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
16078	defer cleanup()
16079	urls += "?" + c.urlParams_.Encode()
16080	req, err := http.NewRequest("POST", urls, body)
16081	if err != nil {
16082		return nil, err
16083	}
16084	req.Header = reqHeaders
16085	req.GetBody = getBody
16086	googleapi.Expand(req.URL, map[string]string{
16087		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
16088	})
16089	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16090}
16091
16092// Do executes the "displayvideo.advertisers.assets.upload" call.
16093// Exactly one of *CreateAssetResponse or error will be non-nil. Any
16094// non-2xx status code is an error. Response headers are in either
16095// *CreateAssetResponse.ServerResponse.Header or (if a response was
16096// returned at all) in error.(*googleapi.Error).Header. Use
16097// googleapi.IsNotModified to check whether the returned error was
16098// because http.StatusNotModified was returned.
16099func (c *AdvertisersAssetsUploadCall) Do(opts ...googleapi.CallOption) (*CreateAssetResponse, error) {
16100	gensupport.SetOptions(c.urlParams_, opts...)
16101	res, err := c.doRequest("json")
16102	if res != nil && res.StatusCode == http.StatusNotModified {
16103		if res.Body != nil {
16104			res.Body.Close()
16105		}
16106		return nil, &googleapi.Error{
16107			Code:   res.StatusCode,
16108			Header: res.Header,
16109		}
16110	}
16111	if err != nil {
16112		return nil, err
16113	}
16114	defer googleapi.CloseBody(res)
16115	if err := googleapi.CheckResponse(res); err != nil {
16116		return nil, err
16117	}
16118	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
16119	if rx != nil {
16120		rx.Client = c.s.client
16121		rx.UserAgent = c.s.userAgent()
16122		ctx := c.ctx_
16123		if ctx == nil {
16124			ctx = context.TODO()
16125		}
16126		res, err = rx.Upload(ctx)
16127		if err != nil {
16128			return nil, err
16129		}
16130		defer res.Body.Close()
16131		if err := googleapi.CheckResponse(res); err != nil {
16132			return nil, err
16133		}
16134	}
16135	ret := &CreateAssetResponse{
16136		ServerResponse: googleapi.ServerResponse{
16137			Header:         res.Header,
16138			HTTPStatusCode: res.StatusCode,
16139		},
16140	}
16141	target := &ret
16142	if err := gensupport.DecodeResponse(target, res); err != nil {
16143		return nil, err
16144	}
16145	return ret, nil
16146	// {
16147	//   "description": "Uploads an asset. Returns the ID of the newly uploaded asset if successful. The asset file size should be no more than 10 MB for images, 200 MB for ZIP files, and 1 GB for videos.",
16148	//   "flatPath": "v1/advertisers/{advertisersId}/assets",
16149	//   "httpMethod": "POST",
16150	//   "id": "displayvideo.advertisers.assets.upload",
16151	//   "mediaUpload": {
16152	//     "accept": [
16153	//       "*/*"
16154	//     ],
16155	//     "protocols": {
16156	//       "simple": {
16157	//         "multipart": true,
16158	//         "path": "/upload/v1/advertisers/{+advertiserId}/assets"
16159	//       }
16160	//     }
16161	//   },
16162	//   "parameterOrder": [
16163	//     "advertiserId"
16164	//   ],
16165	//   "parameters": {
16166	//     "advertiserId": {
16167	//       "description": "Required. The ID of the advertiser this asset belongs to.",
16168	//       "format": "int64",
16169	//       "location": "path",
16170	//       "pattern": "^[^/]+$",
16171	//       "required": true,
16172	//       "type": "string"
16173	//     }
16174	//   },
16175	//   "path": "v1/advertisers/{+advertiserId}/assets",
16176	//   "request": {
16177	//     "$ref": "CreateAssetRequest"
16178	//   },
16179	//   "response": {
16180	//     "$ref": "CreateAssetResponse"
16181	//   },
16182	//   "scopes": [
16183	//     "https://www.googleapis.com/auth/display-video"
16184	//   ],
16185	//   "supportsMediaUpload": true
16186	// }
16187
16188}
16189
16190// method id "displayvideo.advertisers.campaigns.bulkListCampaignAssignedTargetingOptions":
16191
16192type AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall struct {
16193	s            *Service
16194	advertiserId int64
16195	campaignId   int64
16196	urlParams_   gensupport.URLParams
16197	ifNoneMatch_ string
16198	ctx_         context.Context
16199	header_      http.Header
16200}
16201
16202// BulkListCampaignAssignedTargetingOptions: Lists assigned targeting
16203// options of a campaign across targeting types.
16204//
16205// - advertiserId: The ID of the advertiser the campaign belongs to.
16206// - campaignId: The ID of the campaign to list assigned targeting
16207//   options for.
16208func (r *AdvertisersCampaignsService) BulkListCampaignAssignedTargetingOptions(advertiserId int64, campaignId int64) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
16209	c := &AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16210	c.advertiserId = advertiserId
16211	c.campaignId = campaignId
16212	return c
16213}
16214
16215// Filter sets the optional parameter "filter": Allows filtering by
16216// assigned targeting option properties. Supported syntax: * Filter
16217// expressions are made up of one or more restrictions. * Restrictions
16218// can be combined by the logical operator `OR` on the same field. * A
16219// restriction has the form of `{field} {operator} {value}`. * The
16220// operator must be `EQUALS (=)`. * Supported fields: - `targetingType`
16221// - `inheritance` Examples: * AssignedTargetingOptions of targeting
16222// type TARGETING_TYPE_LANGUAGE or TARGETING_TYPE_GENDER
16223// `targetingType="TARGETING_TYPE_LANGUAGE" OR
16224// targetingType="TARGETING_TYPE_GENDER" * AssignedTargetingOptions
16225// with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER
16226// `inheritance="NOT_INHERITED" OR inheritance="INHERITED_FROM_PARTNER"
16227// The length of this field should be no more than 500 characters.
16228func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) Filter(filter string) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
16229	c.urlParams_.Set("filter", filter)
16230	return c
16231}
16232
16233// OrderBy sets the optional parameter "orderBy": Field by which to sort
16234// the list. Acceptable values are: * `targetingType` (default) The
16235// default sorting order is ascending. To specify descending order for a
16236// field, a suffix "desc" should be added to the field name. Example:
16237// `targetingType desc`.
16238func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) OrderBy(orderBy string) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
16239	c.urlParams_.Set("orderBy", orderBy)
16240	return c
16241}
16242
16243// PageSize sets the optional parameter "pageSize": Requested page size.
16244// The size must be an integer between `1` and `5000`. If unspecified,
16245// the default is `5000`. Returns error code `INVALID_ARGUMENT` if an
16246// invalid value is specified.
16247func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) PageSize(pageSize int64) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
16248	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
16249	return c
16250}
16251
16252// PageToken sets the optional parameter "pageToken": A token that lets
16253// the client fetch the next page of results. Typically, this is the
16254// value of next_page_token returned from the previous call to
16255// `BulkListCampaignAssignedTargetingOptions` method. If not specified,
16256// the first page of results will be returned.
16257func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) PageToken(pageToken string) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
16258	c.urlParams_.Set("pageToken", pageToken)
16259	return c
16260}
16261
16262// Fields allows partial responses to be retrieved. See
16263// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16264// for more information.
16265func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
16266	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16267	return c
16268}
16269
16270// IfNoneMatch sets the optional parameter which makes the operation
16271// fail if the object's ETag matches the given value. This is useful for
16272// getting updates only after the object has changed since the last
16273// request. Use googleapi.IsNotModified to check whether the response
16274// error from Do is the result of In-None-Match.
16275func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) IfNoneMatch(entityTag string) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
16276	c.ifNoneMatch_ = entityTag
16277	return c
16278}
16279
16280// Context sets the context to be used in this call's Do method. Any
16281// pending HTTP request will be aborted if the provided context is
16282// canceled.
16283func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) Context(ctx context.Context) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
16284	c.ctx_ = ctx
16285	return c
16286}
16287
16288// Header returns an http.Header that can be modified by the caller to
16289// add HTTP headers to the request.
16290func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) Header() http.Header {
16291	if c.header_ == nil {
16292		c.header_ = make(http.Header)
16293	}
16294	return c.header_
16295}
16296
16297func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
16298	reqHeaders := make(http.Header)
16299	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
16300	for k, v := range c.header_ {
16301		reqHeaders[k] = v
16302	}
16303	reqHeaders.Set("User-Agent", c.s.userAgent())
16304	if c.ifNoneMatch_ != "" {
16305		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
16306	}
16307	var body io.Reader = nil
16308	c.urlParams_.Set("alt", alt)
16309	c.urlParams_.Set("prettyPrint", "false")
16310	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}:bulkListCampaignAssignedTargetingOptions")
16311	urls += "?" + c.urlParams_.Encode()
16312	req, err := http.NewRequest("GET", urls, body)
16313	if err != nil {
16314		return nil, err
16315	}
16316	req.Header = reqHeaders
16317	googleapi.Expand(req.URL, map[string]string{
16318		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
16319		"campaignId":   strconv.FormatInt(c.campaignId, 10),
16320	})
16321	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16322}
16323
16324// Do executes the "displayvideo.advertisers.campaigns.bulkListCampaignAssignedTargetingOptions" call.
16325// Exactly one of *BulkListCampaignAssignedTargetingOptionsResponse or
16326// error will be non-nil. Any non-2xx status code is an error. Response
16327// headers are in either
16328// *BulkListCampaignAssignedTargetingOptionsResponse.ServerResponse.Heade
16329// r or (if a response was returned at all) in
16330// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
16331// whether the returned error was because http.StatusNotModified was
16332// returned.
16333func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkListCampaignAssignedTargetingOptionsResponse, error) {
16334	gensupport.SetOptions(c.urlParams_, opts...)
16335	res, err := c.doRequest("json")
16336	if res != nil && res.StatusCode == http.StatusNotModified {
16337		if res.Body != nil {
16338			res.Body.Close()
16339		}
16340		return nil, &googleapi.Error{
16341			Code:   res.StatusCode,
16342			Header: res.Header,
16343		}
16344	}
16345	if err != nil {
16346		return nil, err
16347	}
16348	defer googleapi.CloseBody(res)
16349	if err := googleapi.CheckResponse(res); err != nil {
16350		return nil, err
16351	}
16352	ret := &BulkListCampaignAssignedTargetingOptionsResponse{
16353		ServerResponse: googleapi.ServerResponse{
16354			Header:         res.Header,
16355			HTTPStatusCode: res.StatusCode,
16356		},
16357	}
16358	target := &ret
16359	if err := gensupport.DecodeResponse(target, res); err != nil {
16360		return nil, err
16361	}
16362	return ret, nil
16363	// {
16364	//   "description": "Lists assigned targeting options of a campaign across targeting types.",
16365	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}:bulkListCampaignAssignedTargetingOptions",
16366	//   "httpMethod": "GET",
16367	//   "id": "displayvideo.advertisers.campaigns.bulkListCampaignAssignedTargetingOptions",
16368	//   "parameterOrder": [
16369	//     "advertiserId",
16370	//     "campaignId"
16371	//   ],
16372	//   "parameters": {
16373	//     "advertiserId": {
16374	//       "description": "Required. The ID of the advertiser the campaign belongs to.",
16375	//       "format": "int64",
16376	//       "location": "path",
16377	//       "pattern": "^[^/]+$",
16378	//       "required": true,
16379	//       "type": "string"
16380	//     },
16381	//     "campaignId": {
16382	//       "description": "Required. The ID of the campaign to list assigned targeting options for.",
16383	//       "format": "int64",
16384	//       "location": "path",
16385	//       "pattern": "^[^/]+$",
16386	//       "required": true,
16387	//       "type": "string"
16388	//     },
16389	//     "filter": {
16390	//       "description": "Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR` on the same field. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `targetingType` - `inheritance` Examples: * AssignedTargetingOptions of targeting type TARGETING_TYPE_LANGUAGE or TARGETING_TYPE_GENDER `targetingType=\"TARGETING_TYPE_LANGUAGE\" OR targetingType=\"TARGETING_TYPE_GENDER\"` * AssignedTargetingOptions with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters.",
16391	//       "location": "query",
16392	//       "type": "string"
16393	//     },
16394	//     "orderBy": {
16395	//       "description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.",
16396	//       "location": "query",
16397	//       "type": "string"
16398	//     },
16399	//     "pageSize": {
16400	//       "description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is `5000`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
16401	//       "format": "int32",
16402	//       "location": "query",
16403	//       "type": "integer"
16404	//     },
16405	//     "pageToken": {
16406	//       "description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListCampaignAssignedTargetingOptions` method. If not specified, the first page of results will be returned.",
16407	//       "location": "query",
16408	//       "type": "string"
16409	//     }
16410	//   },
16411	//   "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}:bulkListCampaignAssignedTargetingOptions",
16412	//   "response": {
16413	//     "$ref": "BulkListCampaignAssignedTargetingOptionsResponse"
16414	//   },
16415	//   "scopes": [
16416	//     "https://www.googleapis.com/auth/display-video"
16417	//   ]
16418	// }
16419
16420}
16421
16422// Pages invokes f for each page of results.
16423// A non-nil error returned from f will halt the iteration.
16424// The provided context supersedes any context provided to the Context method.
16425func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) Pages(ctx context.Context, f func(*BulkListCampaignAssignedTargetingOptionsResponse) error) error {
16426	c.ctx_ = ctx
16427	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
16428	for {
16429		x, err := c.Do()
16430		if err != nil {
16431			return err
16432		}
16433		if err := f(x); err != nil {
16434			return err
16435		}
16436		if x.NextPageToken == "" {
16437			return nil
16438		}
16439		c.PageToken(x.NextPageToken)
16440	}
16441}
16442
16443// method id "displayvideo.advertisers.campaigns.create":
16444
16445type AdvertisersCampaignsCreateCall struct {
16446	s            *Service
16447	advertiserId int64
16448	campaign     *Campaign
16449	urlParams_   gensupport.URLParams
16450	ctx_         context.Context
16451	header_      http.Header
16452}
16453
16454// Create: Creates a new campaign. Returns the newly created campaign if
16455// successful.
16456//
16457// - advertiserId: Output only. The unique ID of the advertiser the
16458//   campaign belongs to.
16459func (r *AdvertisersCampaignsService) Create(advertiserId int64, campaign *Campaign) *AdvertisersCampaignsCreateCall {
16460	c := &AdvertisersCampaignsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16461	c.advertiserId = advertiserId
16462	c.campaign = campaign
16463	return c
16464}
16465
16466// Fields allows partial responses to be retrieved. See
16467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16468// for more information.
16469func (c *AdvertisersCampaignsCreateCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsCreateCall {
16470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16471	return c
16472}
16473
16474// Context sets the context to be used in this call's Do method. Any
16475// pending HTTP request will be aborted if the provided context is
16476// canceled.
16477func (c *AdvertisersCampaignsCreateCall) Context(ctx context.Context) *AdvertisersCampaignsCreateCall {
16478	c.ctx_ = ctx
16479	return c
16480}
16481
16482// Header returns an http.Header that can be modified by the caller to
16483// add HTTP headers to the request.
16484func (c *AdvertisersCampaignsCreateCall) Header() http.Header {
16485	if c.header_ == nil {
16486		c.header_ = make(http.Header)
16487	}
16488	return c.header_
16489}
16490
16491func (c *AdvertisersCampaignsCreateCall) doRequest(alt string) (*http.Response, error) {
16492	reqHeaders := make(http.Header)
16493	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
16494	for k, v := range c.header_ {
16495		reqHeaders[k] = v
16496	}
16497	reqHeaders.Set("User-Agent", c.s.userAgent())
16498	var body io.Reader = nil
16499	body, err := googleapi.WithoutDataWrapper.JSONReader(c.campaign)
16500	if err != nil {
16501		return nil, err
16502	}
16503	reqHeaders.Set("Content-Type", "application/json")
16504	c.urlParams_.Set("alt", alt)
16505	c.urlParams_.Set("prettyPrint", "false")
16506	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns")
16507	urls += "?" + c.urlParams_.Encode()
16508	req, err := http.NewRequest("POST", urls, body)
16509	if err != nil {
16510		return nil, err
16511	}
16512	req.Header = reqHeaders
16513	googleapi.Expand(req.URL, map[string]string{
16514		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
16515	})
16516	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16517}
16518
16519// Do executes the "displayvideo.advertisers.campaigns.create" call.
16520// Exactly one of *Campaign or error will be non-nil. Any non-2xx status
16521// code is an error. Response headers are in either
16522// *Campaign.ServerResponse.Header or (if a response was returned at
16523// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
16524// to check whether the returned error was because
16525// http.StatusNotModified was returned.
16526func (c *AdvertisersCampaignsCreateCall) Do(opts ...googleapi.CallOption) (*Campaign, error) {
16527	gensupport.SetOptions(c.urlParams_, opts...)
16528	res, err := c.doRequest("json")
16529	if res != nil && res.StatusCode == http.StatusNotModified {
16530		if res.Body != nil {
16531			res.Body.Close()
16532		}
16533		return nil, &googleapi.Error{
16534			Code:   res.StatusCode,
16535			Header: res.Header,
16536		}
16537	}
16538	if err != nil {
16539		return nil, err
16540	}
16541	defer googleapi.CloseBody(res)
16542	if err := googleapi.CheckResponse(res); err != nil {
16543		return nil, err
16544	}
16545	ret := &Campaign{
16546		ServerResponse: googleapi.ServerResponse{
16547			Header:         res.Header,
16548			HTTPStatusCode: res.StatusCode,
16549		},
16550	}
16551	target := &ret
16552	if err := gensupport.DecodeResponse(target, res); err != nil {
16553		return nil, err
16554	}
16555	return ret, nil
16556	// {
16557	//   "description": "Creates a new campaign. Returns the newly created campaign if successful.",
16558	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns",
16559	//   "httpMethod": "POST",
16560	//   "id": "displayvideo.advertisers.campaigns.create",
16561	//   "parameterOrder": [
16562	//     "advertiserId"
16563	//   ],
16564	//   "parameters": {
16565	//     "advertiserId": {
16566	//       "description": "Output only. The unique ID of the advertiser the campaign belongs to.",
16567	//       "format": "int64",
16568	//       "location": "path",
16569	//       "pattern": "^[^/]+$",
16570	//       "required": true,
16571	//       "type": "string"
16572	//     }
16573	//   },
16574	//   "path": "v1/advertisers/{+advertiserId}/campaigns",
16575	//   "request": {
16576	//     "$ref": "Campaign"
16577	//   },
16578	//   "response": {
16579	//     "$ref": "Campaign"
16580	//   },
16581	//   "scopes": [
16582	//     "https://www.googleapis.com/auth/display-video",
16583	//     "https://www.googleapis.com/auth/display-video-mediaplanning"
16584	//   ]
16585	// }
16586
16587}
16588
16589// method id "displayvideo.advertisers.campaigns.delete":
16590
16591type AdvertisersCampaignsDeleteCall struct {
16592	s            *Service
16593	advertiserId int64
16594	campaignId   int64
16595	urlParams_   gensupport.URLParams
16596	ctx_         context.Context
16597	header_      http.Header
16598}
16599
16600// Delete: Permanently deletes a campaign. A deleted campaign cannot be
16601// recovered. The campaign should be archived first, i.e. set
16602// entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.
16603//
16604// - advertiserId: The ID of the advertiser this campaign belongs to.
16605// - campaignId: The ID of the campaign we need to delete.
16606func (r *AdvertisersCampaignsService) Delete(advertiserId int64, campaignId int64) *AdvertisersCampaignsDeleteCall {
16607	c := &AdvertisersCampaignsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16608	c.advertiserId = advertiserId
16609	c.campaignId = campaignId
16610	return c
16611}
16612
16613// Fields allows partial responses to be retrieved. See
16614// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16615// for more information.
16616func (c *AdvertisersCampaignsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsDeleteCall {
16617	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16618	return c
16619}
16620
16621// Context sets the context to be used in this call's Do method. Any
16622// pending HTTP request will be aborted if the provided context is
16623// canceled.
16624func (c *AdvertisersCampaignsDeleteCall) Context(ctx context.Context) *AdvertisersCampaignsDeleteCall {
16625	c.ctx_ = ctx
16626	return c
16627}
16628
16629// Header returns an http.Header that can be modified by the caller to
16630// add HTTP headers to the request.
16631func (c *AdvertisersCampaignsDeleteCall) Header() http.Header {
16632	if c.header_ == nil {
16633		c.header_ = make(http.Header)
16634	}
16635	return c.header_
16636}
16637
16638func (c *AdvertisersCampaignsDeleteCall) doRequest(alt string) (*http.Response, error) {
16639	reqHeaders := make(http.Header)
16640	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
16641	for k, v := range c.header_ {
16642		reqHeaders[k] = v
16643	}
16644	reqHeaders.Set("User-Agent", c.s.userAgent())
16645	var body io.Reader = nil
16646	c.urlParams_.Set("alt", alt)
16647	c.urlParams_.Set("prettyPrint", "false")
16648	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}")
16649	urls += "?" + c.urlParams_.Encode()
16650	req, err := http.NewRequest("DELETE", urls, body)
16651	if err != nil {
16652		return nil, err
16653	}
16654	req.Header = reqHeaders
16655	googleapi.Expand(req.URL, map[string]string{
16656		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
16657		"campaignId":   strconv.FormatInt(c.campaignId, 10),
16658	})
16659	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16660}
16661
16662// Do executes the "displayvideo.advertisers.campaigns.delete" call.
16663// Exactly one of *Empty or error will be non-nil. Any non-2xx status
16664// code is an error. Response headers are in either
16665// *Empty.ServerResponse.Header or (if a response was returned at all)
16666// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
16667// check whether the returned error was because http.StatusNotModified
16668// was returned.
16669func (c *AdvertisersCampaignsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
16670	gensupport.SetOptions(c.urlParams_, opts...)
16671	res, err := c.doRequest("json")
16672	if res != nil && res.StatusCode == http.StatusNotModified {
16673		if res.Body != nil {
16674			res.Body.Close()
16675		}
16676		return nil, &googleapi.Error{
16677			Code:   res.StatusCode,
16678			Header: res.Header,
16679		}
16680	}
16681	if err != nil {
16682		return nil, err
16683	}
16684	defer googleapi.CloseBody(res)
16685	if err := googleapi.CheckResponse(res); err != nil {
16686		return nil, err
16687	}
16688	ret := &Empty{
16689		ServerResponse: googleapi.ServerResponse{
16690			Header:         res.Header,
16691			HTTPStatusCode: res.StatusCode,
16692		},
16693	}
16694	target := &ret
16695	if err := gensupport.DecodeResponse(target, res); err != nil {
16696		return nil, err
16697	}
16698	return ret, nil
16699	// {
16700	//   "description": "Permanently deletes a campaign. A deleted campaign cannot be recovered. The campaign should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.",
16701	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}",
16702	//   "httpMethod": "DELETE",
16703	//   "id": "displayvideo.advertisers.campaigns.delete",
16704	//   "parameterOrder": [
16705	//     "advertiserId",
16706	//     "campaignId"
16707	//   ],
16708	//   "parameters": {
16709	//     "advertiserId": {
16710	//       "description": "The ID of the advertiser this campaign belongs to.",
16711	//       "format": "int64",
16712	//       "location": "path",
16713	//       "pattern": "^[^/]+$",
16714	//       "required": true,
16715	//       "type": "string"
16716	//     },
16717	//     "campaignId": {
16718	//       "description": "The ID of the campaign we need to delete.",
16719	//       "format": "int64",
16720	//       "location": "path",
16721	//       "pattern": "^[^/]+$",
16722	//       "required": true,
16723	//       "type": "string"
16724	//     }
16725	//   },
16726	//   "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}",
16727	//   "response": {
16728	//     "$ref": "Empty"
16729	//   },
16730	//   "scopes": [
16731	//     "https://www.googleapis.com/auth/display-video",
16732	//     "https://www.googleapis.com/auth/display-video-mediaplanning"
16733	//   ]
16734	// }
16735
16736}
16737
16738// method id "displayvideo.advertisers.campaigns.get":
16739
16740type AdvertisersCampaignsGetCall struct {
16741	s            *Service
16742	advertiserId int64
16743	campaignId   int64
16744	urlParams_   gensupport.URLParams
16745	ifNoneMatch_ string
16746	ctx_         context.Context
16747	header_      http.Header
16748}
16749
16750// Get: Gets a campaign.
16751//
16752// - advertiserId: The ID of the advertiser this campaign belongs to.
16753// - campaignId: The ID of the campaign to fetch.
16754func (r *AdvertisersCampaignsService) Get(advertiserId int64, campaignId int64) *AdvertisersCampaignsGetCall {
16755	c := &AdvertisersCampaignsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16756	c.advertiserId = advertiserId
16757	c.campaignId = campaignId
16758	return c
16759}
16760
16761// Fields allows partial responses to be retrieved. See
16762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16763// for more information.
16764func (c *AdvertisersCampaignsGetCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsGetCall {
16765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16766	return c
16767}
16768
16769// IfNoneMatch sets the optional parameter which makes the operation
16770// fail if the object's ETag matches the given value. This is useful for
16771// getting updates only after the object has changed since the last
16772// request. Use googleapi.IsNotModified to check whether the response
16773// error from Do is the result of In-None-Match.
16774func (c *AdvertisersCampaignsGetCall) IfNoneMatch(entityTag string) *AdvertisersCampaignsGetCall {
16775	c.ifNoneMatch_ = entityTag
16776	return c
16777}
16778
16779// Context sets the context to be used in this call's Do method. Any
16780// pending HTTP request will be aborted if the provided context is
16781// canceled.
16782func (c *AdvertisersCampaignsGetCall) Context(ctx context.Context) *AdvertisersCampaignsGetCall {
16783	c.ctx_ = ctx
16784	return c
16785}
16786
16787// Header returns an http.Header that can be modified by the caller to
16788// add HTTP headers to the request.
16789func (c *AdvertisersCampaignsGetCall) Header() http.Header {
16790	if c.header_ == nil {
16791		c.header_ = make(http.Header)
16792	}
16793	return c.header_
16794}
16795
16796func (c *AdvertisersCampaignsGetCall) doRequest(alt string) (*http.Response, error) {
16797	reqHeaders := make(http.Header)
16798	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
16799	for k, v := range c.header_ {
16800		reqHeaders[k] = v
16801	}
16802	reqHeaders.Set("User-Agent", c.s.userAgent())
16803	if c.ifNoneMatch_ != "" {
16804		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
16805	}
16806	var body io.Reader = nil
16807	c.urlParams_.Set("alt", alt)
16808	c.urlParams_.Set("prettyPrint", "false")
16809	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}")
16810	urls += "?" + c.urlParams_.Encode()
16811	req, err := http.NewRequest("GET", urls, body)
16812	if err != nil {
16813		return nil, err
16814	}
16815	req.Header = reqHeaders
16816	googleapi.Expand(req.URL, map[string]string{
16817		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
16818		"campaignId":   strconv.FormatInt(c.campaignId, 10),
16819	})
16820	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16821}
16822
16823// Do executes the "displayvideo.advertisers.campaigns.get" call.
16824// Exactly one of *Campaign or error will be non-nil. Any non-2xx status
16825// code is an error. Response headers are in either
16826// *Campaign.ServerResponse.Header or (if a response was returned at
16827// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
16828// to check whether the returned error was because
16829// http.StatusNotModified was returned.
16830func (c *AdvertisersCampaignsGetCall) Do(opts ...googleapi.CallOption) (*Campaign, error) {
16831	gensupport.SetOptions(c.urlParams_, opts...)
16832	res, err := c.doRequest("json")
16833	if res != nil && res.StatusCode == http.StatusNotModified {
16834		if res.Body != nil {
16835			res.Body.Close()
16836		}
16837		return nil, &googleapi.Error{
16838			Code:   res.StatusCode,
16839			Header: res.Header,
16840		}
16841	}
16842	if err != nil {
16843		return nil, err
16844	}
16845	defer googleapi.CloseBody(res)
16846	if err := googleapi.CheckResponse(res); err != nil {
16847		return nil, err
16848	}
16849	ret := &Campaign{
16850		ServerResponse: googleapi.ServerResponse{
16851			Header:         res.Header,
16852			HTTPStatusCode: res.StatusCode,
16853		},
16854	}
16855	target := &ret
16856	if err := gensupport.DecodeResponse(target, res); err != nil {
16857		return nil, err
16858	}
16859	return ret, nil
16860	// {
16861	//   "description": "Gets a campaign.",
16862	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}",
16863	//   "httpMethod": "GET",
16864	//   "id": "displayvideo.advertisers.campaigns.get",
16865	//   "parameterOrder": [
16866	//     "advertiserId",
16867	//     "campaignId"
16868	//   ],
16869	//   "parameters": {
16870	//     "advertiserId": {
16871	//       "description": "Required. The ID of the advertiser this campaign belongs to.",
16872	//       "format": "int64",
16873	//       "location": "path",
16874	//       "pattern": "^[^/]+$",
16875	//       "required": true,
16876	//       "type": "string"
16877	//     },
16878	//     "campaignId": {
16879	//       "description": "Required. The ID of the campaign to fetch.",
16880	//       "format": "int64",
16881	//       "location": "path",
16882	//       "pattern": "^[^/]+$",
16883	//       "required": true,
16884	//       "type": "string"
16885	//     }
16886	//   },
16887	//   "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}",
16888	//   "response": {
16889	//     "$ref": "Campaign"
16890	//   },
16891	//   "scopes": [
16892	//     "https://www.googleapis.com/auth/display-video",
16893	//     "https://www.googleapis.com/auth/display-video-mediaplanning"
16894	//   ]
16895	// }
16896
16897}
16898
16899// method id "displayvideo.advertisers.campaigns.list":
16900
16901type AdvertisersCampaignsListCall struct {
16902	s            *Service
16903	advertiserId int64
16904	urlParams_   gensupport.URLParams
16905	ifNoneMatch_ string
16906	ctx_         context.Context
16907	header_      http.Header
16908}
16909
16910// List: Lists campaigns in an advertiser. The order is defined by the
16911// order_by parameter. If a filter by entity_status is not specified,
16912// campaigns with `ENTITY_STATUS_ARCHIVED` will not be included in the
16913// results.
16914//
16915// - advertiserId: The ID of the advertiser to list campaigns for.
16916func (r *AdvertisersCampaignsService) List(advertiserId int64) *AdvertisersCampaignsListCall {
16917	c := &AdvertisersCampaignsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16918	c.advertiserId = advertiserId
16919	return c
16920}
16921
16922// Filter sets the optional parameter "filter": Allows filtering by
16923// campaign properties. Supported syntax: * Filter expressions are made
16924// up of one or more restrictions. * Restrictions can be combined by
16925// `AND` or `OR` logical operators. A sequence of restrictions
16926// implicitly uses `AND`. * A restriction has the form of `{field}
16927// {operator} {value}`. * The operator used on `updateTime` must be
16928// `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)`. *
16929// The operator must be `EQUALS (=)`. * Supported fields: - `campaignId`
16930// - `displayName` - `entityStatus` - `updateTime` (input in ISO 8601
16931// format, or YYYY-MM-DDTHH:MM:SSZ) Examples: * All
16932// `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` campaigns under an
16933// advertiser: `(entityStatus="ENTITY_STATUS_ACTIVE" OR
16934// entityStatus="ENTITY_STATUS_PAUSED")` * All campaigns with an update
16935// time less than or equal to `2020-11-04T18:54:47Z (format of ISO
16936// 8601)`: `updateTime<="2020-11-04T18:54:47Z" * All campaigns with an
16937// update time greater than or equal to `2020-11-04T18:54:47Z (format of
16938// ISO 8601)`: `updateTime>="2020-11-04T18:54:47Z" The length of this
16939// field should be no more than 500 characters.
16940func (c *AdvertisersCampaignsListCall) Filter(filter string) *AdvertisersCampaignsListCall {
16941	c.urlParams_.Set("filter", filter)
16942	return c
16943}
16944
16945// OrderBy sets the optional parameter "orderBy": Field by which to sort
16946// the list. Acceptable values are: * `displayName` (default) *
16947// `entityStatus` * `updateTime` The default sorting order is ascending.
16948// To specify descending order for a field, a suffix "desc" should be
16949// added to the field name. Example: `displayName desc`.
16950func (c *AdvertisersCampaignsListCall) OrderBy(orderBy string) *AdvertisersCampaignsListCall {
16951	c.urlParams_.Set("orderBy", orderBy)
16952	return c
16953}
16954
16955// PageSize sets the optional parameter "pageSize": Requested page size.
16956// Must be between `1` and `100`. If unspecified will default to `100`.
16957func (c *AdvertisersCampaignsListCall) PageSize(pageSize int64) *AdvertisersCampaignsListCall {
16958	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
16959	return c
16960}
16961
16962// PageToken sets the optional parameter "pageToken": A token
16963// identifying a page of results the server should return. Typically,
16964// this is the value of next_page_token returned from the previous call
16965// to `ListCampaigns` method. If not specified, the first page of
16966// results will be returned.
16967func (c *AdvertisersCampaignsListCall) PageToken(pageToken string) *AdvertisersCampaignsListCall {
16968	c.urlParams_.Set("pageToken", pageToken)
16969	return c
16970}
16971
16972// Fields allows partial responses to be retrieved. See
16973// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16974// for more information.
16975func (c *AdvertisersCampaignsListCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsListCall {
16976	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16977	return c
16978}
16979
16980// IfNoneMatch sets the optional parameter which makes the operation
16981// fail if the object's ETag matches the given value. This is useful for
16982// getting updates only after the object has changed since the last
16983// request. Use googleapi.IsNotModified to check whether the response
16984// error from Do is the result of In-None-Match.
16985func (c *AdvertisersCampaignsListCall) IfNoneMatch(entityTag string) *AdvertisersCampaignsListCall {
16986	c.ifNoneMatch_ = entityTag
16987	return c
16988}
16989
16990// Context sets the context to be used in this call's Do method. Any
16991// pending HTTP request will be aborted if the provided context is
16992// canceled.
16993func (c *AdvertisersCampaignsListCall) Context(ctx context.Context) *AdvertisersCampaignsListCall {
16994	c.ctx_ = ctx
16995	return c
16996}
16997
16998// Header returns an http.Header that can be modified by the caller to
16999// add HTTP headers to the request.
17000func (c *AdvertisersCampaignsListCall) Header() http.Header {
17001	if c.header_ == nil {
17002		c.header_ = make(http.Header)
17003	}
17004	return c.header_
17005}
17006
17007func (c *AdvertisersCampaignsListCall) doRequest(alt string) (*http.Response, error) {
17008	reqHeaders := make(http.Header)
17009	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
17010	for k, v := range c.header_ {
17011		reqHeaders[k] = v
17012	}
17013	reqHeaders.Set("User-Agent", c.s.userAgent())
17014	if c.ifNoneMatch_ != "" {
17015		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
17016	}
17017	var body io.Reader = nil
17018	c.urlParams_.Set("alt", alt)
17019	c.urlParams_.Set("prettyPrint", "false")
17020	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns")
17021	urls += "?" + c.urlParams_.Encode()
17022	req, err := http.NewRequest("GET", urls, body)
17023	if err != nil {
17024		return nil, err
17025	}
17026	req.Header = reqHeaders
17027	googleapi.Expand(req.URL, map[string]string{
17028		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
17029	})
17030	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17031}
17032
17033// Do executes the "displayvideo.advertisers.campaigns.list" call.
17034// Exactly one of *ListCampaignsResponse or error will be non-nil. Any
17035// non-2xx status code is an error. Response headers are in either
17036// *ListCampaignsResponse.ServerResponse.Header or (if a response was
17037// returned at all) in error.(*googleapi.Error).Header. Use
17038// googleapi.IsNotModified to check whether the returned error was
17039// because http.StatusNotModified was returned.
17040func (c *AdvertisersCampaignsListCall) Do(opts ...googleapi.CallOption) (*ListCampaignsResponse, error) {
17041	gensupport.SetOptions(c.urlParams_, opts...)
17042	res, err := c.doRequest("json")
17043	if res != nil && res.StatusCode == http.StatusNotModified {
17044		if res.Body != nil {
17045			res.Body.Close()
17046		}
17047		return nil, &googleapi.Error{
17048			Code:   res.StatusCode,
17049			Header: res.Header,
17050		}
17051	}
17052	if err != nil {
17053		return nil, err
17054	}
17055	defer googleapi.CloseBody(res)
17056	if err := googleapi.CheckResponse(res); err != nil {
17057		return nil, err
17058	}
17059	ret := &ListCampaignsResponse{
17060		ServerResponse: googleapi.ServerResponse{
17061			Header:         res.Header,
17062			HTTPStatusCode: res.StatusCode,
17063		},
17064	}
17065	target := &ret
17066	if err := gensupport.DecodeResponse(target, res); err != nil {
17067		return nil, err
17068	}
17069	return ret, nil
17070	// {
17071	//   "description": "Lists campaigns in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, campaigns with `ENTITY_STATUS_ARCHIVED` will not be included in the results.",
17072	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns",
17073	//   "httpMethod": "GET",
17074	//   "id": "displayvideo.advertisers.campaigns.list",
17075	//   "parameterOrder": [
17076	//     "advertiserId"
17077	//   ],
17078	//   "parameters": {
17079	//     "advertiserId": {
17080	//       "description": "The ID of the advertiser to list campaigns for.",
17081	//       "format": "int64",
17082	//       "location": "path",
17083	//       "pattern": "^[^/]+$",
17084	//       "required": true,
17085	//       "type": "string"
17086	//     },
17087	//     "filter": {
17088	//       "description": "Allows filtering by campaign properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The operator used on `updateTime` must be `GREATER THAN OR EQUAL TO (\u003e=)` or `LESS THAN OR EQUAL TO (\u003c=)`. * The operator must be `EQUALS (=)`. * Supported fields: - `campaignId` - `displayName` - `entityStatus` - `updateTime` (input in ISO 8601 format, or YYYY-MM-DDTHH:MM:SSZ) Examples: * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` campaigns under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\")` * All campaigns with an update time less than or equal to `2020-11-04T18:54:47Z (format of ISO 8601)`: `updateTime\u003c=\"2020-11-04T18:54:47Z\"` * All campaigns with an update time greater than or equal to `2020-11-04T18:54:47Z (format of ISO 8601)`: `updateTime\u003e=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters.",
17089	//       "location": "query",
17090	//       "type": "string"
17091	//     },
17092	//     "orderBy": {
17093	//       "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` * `updateTime` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.",
17094	//       "location": "query",
17095	//       "type": "string"
17096	//     },
17097	//     "pageSize": {
17098	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
17099	//       "format": "int32",
17100	//       "location": "query",
17101	//       "type": "integer"
17102	//     },
17103	//     "pageToken": {
17104	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCampaigns` method. If not specified, the first page of results will be returned.",
17105	//       "location": "query",
17106	//       "type": "string"
17107	//     }
17108	//   },
17109	//   "path": "v1/advertisers/{+advertiserId}/campaigns",
17110	//   "response": {
17111	//     "$ref": "ListCampaignsResponse"
17112	//   },
17113	//   "scopes": [
17114	//     "https://www.googleapis.com/auth/display-video",
17115	//     "https://www.googleapis.com/auth/display-video-mediaplanning"
17116	//   ]
17117	// }
17118
17119}
17120
17121// Pages invokes f for each page of results.
17122// A non-nil error returned from f will halt the iteration.
17123// The provided context supersedes any context provided to the Context method.
17124func (c *AdvertisersCampaignsListCall) Pages(ctx context.Context, f func(*ListCampaignsResponse) error) error {
17125	c.ctx_ = ctx
17126	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
17127	for {
17128		x, err := c.Do()
17129		if err != nil {
17130			return err
17131		}
17132		if err := f(x); err != nil {
17133			return err
17134		}
17135		if x.NextPageToken == "" {
17136			return nil
17137		}
17138		c.PageToken(x.NextPageToken)
17139	}
17140}
17141
17142// method id "displayvideo.advertisers.campaigns.patch":
17143
17144type AdvertisersCampaignsPatchCall struct {
17145	s            *Service
17146	advertiserId int64
17147	campaignId   int64
17148	campaign     *Campaign
17149	urlParams_   gensupport.URLParams
17150	ctx_         context.Context
17151	header_      http.Header
17152}
17153
17154// Patch: Updates an existing campaign. Returns the updated campaign if
17155// successful.
17156//
17157// - advertiserId: Output only. The unique ID of the advertiser the
17158//   campaign belongs to.
17159// - campaignId: Output only. The unique ID of the campaign. Assigned by
17160//   the system.
17161func (r *AdvertisersCampaignsService) Patch(advertiserId int64, campaignId int64, campaign *Campaign) *AdvertisersCampaignsPatchCall {
17162	c := &AdvertisersCampaignsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17163	c.advertiserId = advertiserId
17164	c.campaignId = campaignId
17165	c.campaign = campaign
17166	return c
17167}
17168
17169// UpdateMask sets the optional parameter "updateMask": Required. The
17170// mask to control which fields to update.
17171func (c *AdvertisersCampaignsPatchCall) UpdateMask(updateMask string) *AdvertisersCampaignsPatchCall {
17172	c.urlParams_.Set("updateMask", updateMask)
17173	return c
17174}
17175
17176// Fields allows partial responses to be retrieved. See
17177// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17178// for more information.
17179func (c *AdvertisersCampaignsPatchCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsPatchCall {
17180	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17181	return c
17182}
17183
17184// Context sets the context to be used in this call's Do method. Any
17185// pending HTTP request will be aborted if the provided context is
17186// canceled.
17187func (c *AdvertisersCampaignsPatchCall) Context(ctx context.Context) *AdvertisersCampaignsPatchCall {
17188	c.ctx_ = ctx
17189	return c
17190}
17191
17192// Header returns an http.Header that can be modified by the caller to
17193// add HTTP headers to the request.
17194func (c *AdvertisersCampaignsPatchCall) Header() http.Header {
17195	if c.header_ == nil {
17196		c.header_ = make(http.Header)
17197	}
17198	return c.header_
17199}
17200
17201func (c *AdvertisersCampaignsPatchCall) doRequest(alt string) (*http.Response, error) {
17202	reqHeaders := make(http.Header)
17203	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
17204	for k, v := range c.header_ {
17205		reqHeaders[k] = v
17206	}
17207	reqHeaders.Set("User-Agent", c.s.userAgent())
17208	var body io.Reader = nil
17209	body, err := googleapi.WithoutDataWrapper.JSONReader(c.campaign)
17210	if err != nil {
17211		return nil, err
17212	}
17213	reqHeaders.Set("Content-Type", "application/json")
17214	c.urlParams_.Set("alt", alt)
17215	c.urlParams_.Set("prettyPrint", "false")
17216	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}")
17217	urls += "?" + c.urlParams_.Encode()
17218	req, err := http.NewRequest("PATCH", urls, body)
17219	if err != nil {
17220		return nil, err
17221	}
17222	req.Header = reqHeaders
17223	googleapi.Expand(req.URL, map[string]string{
17224		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
17225		"campaignId":   strconv.FormatInt(c.campaignId, 10),
17226	})
17227	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17228}
17229
17230// Do executes the "displayvideo.advertisers.campaigns.patch" call.
17231// Exactly one of *Campaign or error will be non-nil. Any non-2xx status
17232// code is an error. Response headers are in either
17233// *Campaign.ServerResponse.Header or (if a response was returned at
17234// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
17235// to check whether the returned error was because
17236// http.StatusNotModified was returned.
17237func (c *AdvertisersCampaignsPatchCall) Do(opts ...googleapi.CallOption) (*Campaign, error) {
17238	gensupport.SetOptions(c.urlParams_, opts...)
17239	res, err := c.doRequest("json")
17240	if res != nil && res.StatusCode == http.StatusNotModified {
17241		if res.Body != nil {
17242			res.Body.Close()
17243		}
17244		return nil, &googleapi.Error{
17245			Code:   res.StatusCode,
17246			Header: res.Header,
17247		}
17248	}
17249	if err != nil {
17250		return nil, err
17251	}
17252	defer googleapi.CloseBody(res)
17253	if err := googleapi.CheckResponse(res); err != nil {
17254		return nil, err
17255	}
17256	ret := &Campaign{
17257		ServerResponse: googleapi.ServerResponse{
17258			Header:         res.Header,
17259			HTTPStatusCode: res.StatusCode,
17260		},
17261	}
17262	target := &ret
17263	if err := gensupport.DecodeResponse(target, res); err != nil {
17264		return nil, err
17265	}
17266	return ret, nil
17267	// {
17268	//   "description": "Updates an existing campaign. Returns the updated campaign if successful.",
17269	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}",
17270	//   "httpMethod": "PATCH",
17271	//   "id": "displayvideo.advertisers.campaigns.patch",
17272	//   "parameterOrder": [
17273	//     "advertiserId",
17274	//     "campaignId"
17275	//   ],
17276	//   "parameters": {
17277	//     "advertiserId": {
17278	//       "description": "Output only. The unique ID of the advertiser the campaign belongs to.",
17279	//       "format": "int64",
17280	//       "location": "path",
17281	//       "pattern": "^[^/]+$",
17282	//       "required": true,
17283	//       "type": "string"
17284	//     },
17285	//     "campaignId": {
17286	//       "description": "Output only. The unique ID of the campaign. Assigned by the system.",
17287	//       "format": "int64",
17288	//       "location": "path",
17289	//       "pattern": "^[^/]+$",
17290	//       "required": true,
17291	//       "type": "string"
17292	//     },
17293	//     "updateMask": {
17294	//       "description": "Required. The mask to control which fields to update.",
17295	//       "format": "google-fieldmask",
17296	//       "location": "query",
17297	//       "type": "string"
17298	//     }
17299	//   },
17300	//   "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}",
17301	//   "request": {
17302	//     "$ref": "Campaign"
17303	//   },
17304	//   "response": {
17305	//     "$ref": "Campaign"
17306	//   },
17307	//   "scopes": [
17308	//     "https://www.googleapis.com/auth/display-video",
17309	//     "https://www.googleapis.com/auth/display-video-mediaplanning"
17310	//   ]
17311	// }
17312
17313}
17314
17315// method id "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.get":
17316
17317type AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall struct {
17318	s                         *Service
17319	advertiserId              int64
17320	campaignId                int64
17321	targetingType             string
17322	assignedTargetingOptionId string
17323	urlParams_                gensupport.URLParams
17324	ifNoneMatch_              string
17325	ctx_                      context.Context
17326	header_                   http.Header
17327}
17328
17329// Get: Gets a single targeting option assigned to a campaign.
17330//
17331// - advertiserId: The ID of the advertiser the campaign belongs to.
17332// - assignedTargetingOptionId: An identifier unique to the targeting
17333//   type in this campaign that identifies the assigned targeting option
17334//   being requested.
17335// - campaignId: The ID of the campaign the assigned targeting option
17336//   belongs to.
17337// - targetingType: Identifies the type of this assigned targeting
17338//   option. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` *
17339//   `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` *
17340//   `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` *
17341//   `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` *
17342//   `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
17343//   `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` *
17344//   `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` *
17345//   `TARGETING_TYPE_HOUSEHOLD_INCOME` *
17346//   `TARGETING_TYPE_INVENTORY_SOURCE` *
17347//   `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE`
17348//   * `TARGETING_TYPE_ON_SCREEN_POSITION` *
17349//   `TARGETING_TYPE_PARENTAL_STATUS` *
17350//   `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` *
17351//   `TARGETING_TYPE_SUB_EXCHANGE` *
17352//   `TARGETING_TYPE_THIRD_PARTY_VERIFIER` *
17353//   `TARGETING_TYPE_VIEWABILITY`.
17354func (r *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService) Get(advertiserId int64, campaignId int64, targetingType string, assignedTargetingOptionId string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall {
17355	c := &AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17356	c.advertiserId = advertiserId
17357	c.campaignId = campaignId
17358	c.targetingType = targetingType
17359	c.assignedTargetingOptionId = assignedTargetingOptionId
17360	return c
17361}
17362
17363// Fields allows partial responses to be retrieved. See
17364// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17365// for more information.
17366func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall {
17367	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17368	return c
17369}
17370
17371// IfNoneMatch sets the optional parameter which makes the operation
17372// fail if the object's ETag matches the given value. This is useful for
17373// getting updates only after the object has changed since the last
17374// request. Use googleapi.IsNotModified to check whether the response
17375// error from Do is the result of In-None-Match.
17376func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall) IfNoneMatch(entityTag string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall {
17377	c.ifNoneMatch_ = entityTag
17378	return c
17379}
17380
17381// Context sets the context to be used in this call's Do method. Any
17382// pending HTTP request will be aborted if the provided context is
17383// canceled.
17384func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall) Context(ctx context.Context) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall {
17385	c.ctx_ = ctx
17386	return c
17387}
17388
17389// Header returns an http.Header that can be modified by the caller to
17390// add HTTP headers to the request.
17391func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall) Header() http.Header {
17392	if c.header_ == nil {
17393		c.header_ = make(http.Header)
17394	}
17395	return c.header_
17396}
17397
17398func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall) doRequest(alt string) (*http.Response, error) {
17399	reqHeaders := make(http.Header)
17400	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
17401	for k, v := range c.header_ {
17402		reqHeaders[k] = v
17403	}
17404	reqHeaders.Set("User-Agent", c.s.userAgent())
17405	if c.ifNoneMatch_ != "" {
17406		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
17407	}
17408	var body io.Reader = nil
17409	c.urlParams_.Set("alt", alt)
17410	c.urlParams_.Set("prettyPrint", "false")
17411	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
17412	urls += "?" + c.urlParams_.Encode()
17413	req, err := http.NewRequest("GET", urls, body)
17414	if err != nil {
17415		return nil, err
17416	}
17417	req.Header = reqHeaders
17418	googleapi.Expand(req.URL, map[string]string{
17419		"advertiserId":              strconv.FormatInt(c.advertiserId, 10),
17420		"campaignId":                strconv.FormatInt(c.campaignId, 10),
17421		"targetingType":             c.targetingType,
17422		"assignedTargetingOptionId": c.assignedTargetingOptionId,
17423	})
17424	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17425}
17426
17427// Do executes the "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.get" call.
17428// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
17429// non-2xx status code is an error. Response headers are in either
17430// *AssignedTargetingOption.ServerResponse.Header or (if a response was
17431// returned at all) in error.(*googleapi.Error).Header. Use
17432// googleapi.IsNotModified to check whether the returned error was
17433// because http.StatusNotModified was returned.
17434func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
17435	gensupport.SetOptions(c.urlParams_, opts...)
17436	res, err := c.doRequest("json")
17437	if res != nil && res.StatusCode == http.StatusNotModified {
17438		if res.Body != nil {
17439			res.Body.Close()
17440		}
17441		return nil, &googleapi.Error{
17442			Code:   res.StatusCode,
17443			Header: res.Header,
17444		}
17445	}
17446	if err != nil {
17447		return nil, err
17448	}
17449	defer googleapi.CloseBody(res)
17450	if err := googleapi.CheckResponse(res); err != nil {
17451		return nil, err
17452	}
17453	ret := &AssignedTargetingOption{
17454		ServerResponse: googleapi.ServerResponse{
17455			Header:         res.Header,
17456			HTTPStatusCode: res.StatusCode,
17457		},
17458	}
17459	target := &ret
17460	if err := gensupport.DecodeResponse(target, res); err != nil {
17461		return nil, err
17462	}
17463	return ret, nil
17464	// {
17465	//   "description": "Gets a single targeting option assigned to a campaign.",
17466	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
17467	//   "httpMethod": "GET",
17468	//   "id": "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.get",
17469	//   "parameterOrder": [
17470	//     "advertiserId",
17471	//     "campaignId",
17472	//     "targetingType",
17473	//     "assignedTargetingOptionId"
17474	//   ],
17475	//   "parameters": {
17476	//     "advertiserId": {
17477	//       "description": "Required. The ID of the advertiser the campaign belongs to.",
17478	//       "format": "int64",
17479	//       "location": "path",
17480	//       "pattern": "^[^/]+$",
17481	//       "required": true,
17482	//       "type": "string"
17483	//     },
17484	//     "assignedTargetingOptionId": {
17485	//       "description": "Required. An identifier unique to the targeting type in this campaign that identifies the assigned targeting option being requested.",
17486	//       "location": "path",
17487	//       "pattern": "^[^/]+$",
17488	//       "required": true,
17489	//       "type": "string"
17490	//     },
17491	//     "campaignId": {
17492	//       "description": "Required. The ID of the campaign the assigned targeting option belongs to.",
17493	//       "format": "int64",
17494	//       "location": "path",
17495	//       "pattern": "^[^/]+$",
17496	//       "required": true,
17497	//       "type": "string"
17498	//     },
17499	//     "targetingType": {
17500	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_VIEWABILITY`",
17501	//       "enum": [
17502	//         "TARGETING_TYPE_UNSPECIFIED",
17503	//         "TARGETING_TYPE_CHANNEL",
17504	//         "TARGETING_TYPE_APP_CATEGORY",
17505	//         "TARGETING_TYPE_APP",
17506	//         "TARGETING_TYPE_URL",
17507	//         "TARGETING_TYPE_DAY_AND_TIME",
17508	//         "TARGETING_TYPE_AGE_RANGE",
17509	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
17510	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
17511	//         "TARGETING_TYPE_GENDER",
17512	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
17513	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
17514	//         "TARGETING_TYPE_PARENTAL_STATUS",
17515	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
17516	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
17517	//         "TARGETING_TYPE_DEVICE_TYPE",
17518	//         "TARGETING_TYPE_AUDIENCE_GROUP",
17519	//         "TARGETING_TYPE_BROWSER",
17520	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
17521	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
17522	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
17523	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
17524	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
17525	//         "TARGETING_TYPE_ENVIRONMENT",
17526	//         "TARGETING_TYPE_CARRIER_AND_ISP",
17527	//         "TARGETING_TYPE_OPERATING_SYSTEM",
17528	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
17529	//         "TARGETING_TYPE_KEYWORD",
17530	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
17531	//         "TARGETING_TYPE_VIEWABILITY",
17532	//         "TARGETING_TYPE_CATEGORY",
17533	//         "TARGETING_TYPE_INVENTORY_SOURCE",
17534	//         "TARGETING_TYPE_LANGUAGE",
17535	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
17536	//         "TARGETING_TYPE_GEO_REGION",
17537	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
17538	//         "TARGETING_TYPE_EXCHANGE",
17539	//         "TARGETING_TYPE_SUB_EXCHANGE",
17540	//         "TARGETING_TYPE_POI",
17541	//         "TARGETING_TYPE_BUSINESS_CHAIN",
17542	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
17543	//         "TARGETING_TYPE_OMID"
17544	//       ],
17545	//       "enumDescriptions": [
17546	//         "Default value when type is not specified or is unknown in this version.",
17547	//         "Target a channel (a custom group of related websites or apps).",
17548	//         "Target an app category (for example, education or puzzle games).",
17549	//         "Target a specific app (for example, Angry Birds).",
17550	//         "Target a specific url (for example, quora.com).",
17551	//         "Target ads during a chosen time period on a specific day.",
17552	//         "Target ads to a specific age range (for example, 18-24).",
17553	//         "Target ads to the specified regions on a regional location list.",
17554	//         "Target ads to the specified points of interest on a proximity location list.",
17555	//         "Target ads to a specific gender (for example, female or male).",
17556	//         "Target a specific video player size for video ads.",
17557	//         "Target user rewarded content for video ads.",
17558	//         "Target ads to a specific parental status (for example, parent or not a parent).",
17559	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
17560	//         "Target ads in a specific content outstream position.",
17561	//         "Target ads to a specific device type (for example, tablet or connected TV).",
17562	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
17563	//         "Target ads to specific web browsers (for example, Chrome).",
17564	//         "Target ads to a specific household income range (for example, top 10%).",
17565	//         "Target ads in a specific on screen position.",
17566	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
17567	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
17568	//         "Filter website content by sensitive categories (for example, adult).",
17569	//         "Target ads to a specific environment (for example, web or app).",
17570	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
17571	//         "Target ads to a specific operating system (for example, macOS).",
17572	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
17573	//         "Target ads to a specific keyword (for example, dog or retriever).",
17574	//         "Target ads to a specific negative keyword list.",
17575	//         "Target ads to a specific viewability (for example, 80% viewable).",
17576	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
17577	//         "Purchase impressions from specific deals and auction packages.",
17578	//         "Target ads to a specific language (for example, English or Japanese).",
17579	//         "Target ads to ads.txt authorized sellers.",
17580	//         "Target ads to a specific regional location (for example, a city or state).",
17581	//         "Purchase impressions from a group of deals and auction packages.",
17582	//         "Purchase impressions from specific exchanges.",
17583	//         "Purchase impressions from specific sub-exchanges.",
17584	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
17585	//         "Target ads around locations of a business chain within a specific geo region.",
17586	//         "Target ads to a specific native content position.",
17587	//         "Target ads in an Open Measurement enabled inventory."
17588	//       ],
17589	//       "location": "path",
17590	//       "pattern": "^[^/]+$",
17591	//       "required": true,
17592	//       "type": "string"
17593	//     }
17594	//   },
17595	//   "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
17596	//   "response": {
17597	//     "$ref": "AssignedTargetingOption"
17598	//   },
17599	//   "scopes": [
17600	//     "https://www.googleapis.com/auth/display-video"
17601	//   ]
17602	// }
17603
17604}
17605
17606// method id "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.list":
17607
17608type AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall struct {
17609	s             *Service
17610	advertiserId  int64
17611	campaignId    int64
17612	targetingType string
17613	urlParams_    gensupport.URLParams
17614	ifNoneMatch_  string
17615	ctx_          context.Context
17616	header_       http.Header
17617}
17618
17619// List: Lists the targeting options assigned to a campaign for a
17620// specified targeting type.
17621//
17622// - advertiserId: The ID of the advertiser the campaign belongs to.
17623// - campaignId: The ID of the campaign to list assigned targeting
17624//   options for.
17625// - targetingType: Identifies the type of assigned targeting options to
17626//   list. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` *
17627//   `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` *
17628//   `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` *
17629//   `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` *
17630//   `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
17631//   `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` *
17632//   `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` *
17633//   `TARGETING_TYPE_HOUSEHOLD_INCOME` *
17634//   `TARGETING_TYPE_INVENTORY_SOURCE` *
17635//   `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE`
17636//   * `TARGETING_TYPE_ON_SCREEN_POSITION` *
17637//   `TARGETING_TYPE_PARENTAL_STATUS` *
17638//   `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` *
17639//   `TARGETING_TYPE_SUB_EXCHANGE` *
17640//   `TARGETING_TYPE_THIRD_PARTY_VERIFIER` *
17641//   `TARGETING_TYPE_VIEWABILITY`.
17642func (r *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService) List(advertiserId int64, campaignId int64, targetingType string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
17643	c := &AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17644	c.advertiserId = advertiserId
17645	c.campaignId = campaignId
17646	c.targetingType = targetingType
17647	return c
17648}
17649
17650// Filter sets the optional parameter "filter": Allows filtering by
17651// assigned targeting option properties. Supported syntax: * Filter
17652// expressions are made up of one or more restrictions. * Restrictions
17653// can be combined by the logical operator `OR`. * A restriction has the
17654// form of `{field} {operator} {value}`. * The operator must be `EQUALS
17655// (=)`. * Supported fields: - `assignedTargetingOptionId` -
17656// `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2
17657// `assignedTargetingOptionId="1" OR assignedTargetingOptionId="2" *
17658// AssignedTargetingOptions with inheritance status of NOT_INHERITED or
17659// INHERITED_FROM_PARTNER `inheritance="NOT_INHERITED" OR
17660// inheritance="INHERITED_FROM_PARTNER" The length of this field should
17661// be no more than 500 characters.
17662func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) Filter(filter string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
17663	c.urlParams_.Set("filter", filter)
17664	return c
17665}
17666
17667// OrderBy sets the optional parameter "orderBy": Field by which to sort
17668// the list. Acceptable values are: * `assignedTargetingOptionId`
17669// (default) The default sorting order is ascending. To specify
17670// descending order for a field, a suffix "desc" should be added to the
17671// field name. Example: `assignedTargetingOptionId desc`.
17672func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) OrderBy(orderBy string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
17673	c.urlParams_.Set("orderBy", orderBy)
17674	return c
17675}
17676
17677// PageSize sets the optional parameter "pageSize": Requested page size.
17678// Must be between `1` and `5000`. If unspecified will default to `100`.
17679// Returns error code `INVALID_ARGUMENT` if an invalid value is
17680// specified.
17681func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) PageSize(pageSize int64) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
17682	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
17683	return c
17684}
17685
17686// PageToken sets the optional parameter "pageToken": A token
17687// identifying a page of results the server should return. Typically,
17688// this is the value of next_page_token returned from the previous call
17689// to `ListCampaignAssignedTargetingOptions` method. If not specified,
17690// the first page of results will be returned.
17691func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) PageToken(pageToken string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
17692	c.urlParams_.Set("pageToken", pageToken)
17693	return c
17694}
17695
17696// Fields allows partial responses to be retrieved. See
17697// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17698// for more information.
17699func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
17700	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17701	return c
17702}
17703
17704// IfNoneMatch sets the optional parameter which makes the operation
17705// fail if the object's ETag matches the given value. This is useful for
17706// getting updates only after the object has changed since the last
17707// request. Use googleapi.IsNotModified to check whether the response
17708// error from Do is the result of In-None-Match.
17709func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) IfNoneMatch(entityTag string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
17710	c.ifNoneMatch_ = entityTag
17711	return c
17712}
17713
17714// Context sets the context to be used in this call's Do method. Any
17715// pending HTTP request will be aborted if the provided context is
17716// canceled.
17717func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) Context(ctx context.Context) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
17718	c.ctx_ = ctx
17719	return c
17720}
17721
17722// Header returns an http.Header that can be modified by the caller to
17723// add HTTP headers to the request.
17724func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) Header() http.Header {
17725	if c.header_ == nil {
17726		c.header_ = make(http.Header)
17727	}
17728	return c.header_
17729}
17730
17731func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) doRequest(alt string) (*http.Response, error) {
17732	reqHeaders := make(http.Header)
17733	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
17734	for k, v := range c.header_ {
17735		reqHeaders[k] = v
17736	}
17737	reqHeaders.Set("User-Agent", c.s.userAgent())
17738	if c.ifNoneMatch_ != "" {
17739		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
17740	}
17741	var body io.Reader = nil
17742	c.urlParams_.Set("alt", alt)
17743	c.urlParams_.Set("prettyPrint", "false")
17744	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
17745	urls += "?" + c.urlParams_.Encode()
17746	req, err := http.NewRequest("GET", urls, body)
17747	if err != nil {
17748		return nil, err
17749	}
17750	req.Header = reqHeaders
17751	googleapi.Expand(req.URL, map[string]string{
17752		"advertiserId":  strconv.FormatInt(c.advertiserId, 10),
17753		"campaignId":    strconv.FormatInt(c.campaignId, 10),
17754		"targetingType": c.targetingType,
17755	})
17756	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17757}
17758
17759// Do executes the "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.list" call.
17760// Exactly one of *ListCampaignAssignedTargetingOptionsResponse or error
17761// will be non-nil. Any non-2xx status code is an error. Response
17762// headers are in either
17763// *ListCampaignAssignedTargetingOptionsResponse.ServerResponse.Header
17764// or (if a response was returned at all) in
17765// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
17766// whether the returned error was because http.StatusNotModified was
17767// returned.
17768func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) Do(opts ...googleapi.CallOption) (*ListCampaignAssignedTargetingOptionsResponse, error) {
17769	gensupport.SetOptions(c.urlParams_, opts...)
17770	res, err := c.doRequest("json")
17771	if res != nil && res.StatusCode == http.StatusNotModified {
17772		if res.Body != nil {
17773			res.Body.Close()
17774		}
17775		return nil, &googleapi.Error{
17776			Code:   res.StatusCode,
17777			Header: res.Header,
17778		}
17779	}
17780	if err != nil {
17781		return nil, err
17782	}
17783	defer googleapi.CloseBody(res)
17784	if err := googleapi.CheckResponse(res); err != nil {
17785		return nil, err
17786	}
17787	ret := &ListCampaignAssignedTargetingOptionsResponse{
17788		ServerResponse: googleapi.ServerResponse{
17789			Header:         res.Header,
17790			HTTPStatusCode: res.StatusCode,
17791		},
17792	}
17793	target := &ret
17794	if err := gensupport.DecodeResponse(target, res); err != nil {
17795		return nil, err
17796	}
17797	return ret, nil
17798	// {
17799	//   "description": "Lists the targeting options assigned to a campaign for a specified targeting type.",
17800	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
17801	//   "httpMethod": "GET",
17802	//   "id": "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.list",
17803	//   "parameterOrder": [
17804	//     "advertiserId",
17805	//     "campaignId",
17806	//     "targetingType"
17807	//   ],
17808	//   "parameters": {
17809	//     "advertiserId": {
17810	//       "description": "Required. The ID of the advertiser the campaign belongs to.",
17811	//       "format": "int64",
17812	//       "location": "path",
17813	//       "pattern": "^[^/]+$",
17814	//       "required": true,
17815	//       "type": "string"
17816	//     },
17817	//     "campaignId": {
17818	//       "description": "Required. The ID of the campaign to list assigned targeting options for.",
17819	//       "format": "int64",
17820	//       "location": "path",
17821	//       "pattern": "^[^/]+$",
17822	//       "required": true,
17823	//       "type": "string"
17824	//     },
17825	//     "filter": {
17826	//       "description": "Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` - `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2 `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * AssignedTargetingOptions with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters.",
17827	//       "location": "query",
17828	//       "type": "string"
17829	//     },
17830	//     "orderBy": {
17831	//       "description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.",
17832	//       "location": "query",
17833	//       "type": "string"
17834	//     },
17835	//     "pageSize": {
17836	//       "description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
17837	//       "format": "int32",
17838	//       "location": "query",
17839	//       "type": "integer"
17840	//     },
17841	//     "pageToken": {
17842	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCampaignAssignedTargetingOptions` method. If not specified, the first page of results will be returned.",
17843	//       "location": "query",
17844	//       "type": "string"
17845	//     },
17846	//     "targetingType": {
17847	//       "description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_VIEWABILITY`",
17848	//       "enum": [
17849	//         "TARGETING_TYPE_UNSPECIFIED",
17850	//         "TARGETING_TYPE_CHANNEL",
17851	//         "TARGETING_TYPE_APP_CATEGORY",
17852	//         "TARGETING_TYPE_APP",
17853	//         "TARGETING_TYPE_URL",
17854	//         "TARGETING_TYPE_DAY_AND_TIME",
17855	//         "TARGETING_TYPE_AGE_RANGE",
17856	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
17857	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
17858	//         "TARGETING_TYPE_GENDER",
17859	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
17860	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
17861	//         "TARGETING_TYPE_PARENTAL_STATUS",
17862	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
17863	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
17864	//         "TARGETING_TYPE_DEVICE_TYPE",
17865	//         "TARGETING_TYPE_AUDIENCE_GROUP",
17866	//         "TARGETING_TYPE_BROWSER",
17867	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
17868	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
17869	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
17870	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
17871	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
17872	//         "TARGETING_TYPE_ENVIRONMENT",
17873	//         "TARGETING_TYPE_CARRIER_AND_ISP",
17874	//         "TARGETING_TYPE_OPERATING_SYSTEM",
17875	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
17876	//         "TARGETING_TYPE_KEYWORD",
17877	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
17878	//         "TARGETING_TYPE_VIEWABILITY",
17879	//         "TARGETING_TYPE_CATEGORY",
17880	//         "TARGETING_TYPE_INVENTORY_SOURCE",
17881	//         "TARGETING_TYPE_LANGUAGE",
17882	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
17883	//         "TARGETING_TYPE_GEO_REGION",
17884	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
17885	//         "TARGETING_TYPE_EXCHANGE",
17886	//         "TARGETING_TYPE_SUB_EXCHANGE",
17887	//         "TARGETING_TYPE_POI",
17888	//         "TARGETING_TYPE_BUSINESS_CHAIN",
17889	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
17890	//         "TARGETING_TYPE_OMID"
17891	//       ],
17892	//       "enumDescriptions": [
17893	//         "Default value when type is not specified or is unknown in this version.",
17894	//         "Target a channel (a custom group of related websites or apps).",
17895	//         "Target an app category (for example, education or puzzle games).",
17896	//         "Target a specific app (for example, Angry Birds).",
17897	//         "Target a specific url (for example, quora.com).",
17898	//         "Target ads during a chosen time period on a specific day.",
17899	//         "Target ads to a specific age range (for example, 18-24).",
17900	//         "Target ads to the specified regions on a regional location list.",
17901	//         "Target ads to the specified points of interest on a proximity location list.",
17902	//         "Target ads to a specific gender (for example, female or male).",
17903	//         "Target a specific video player size for video ads.",
17904	//         "Target user rewarded content for video ads.",
17905	//         "Target ads to a specific parental status (for example, parent or not a parent).",
17906	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
17907	//         "Target ads in a specific content outstream position.",
17908	//         "Target ads to a specific device type (for example, tablet or connected TV).",
17909	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
17910	//         "Target ads to specific web browsers (for example, Chrome).",
17911	//         "Target ads to a specific household income range (for example, top 10%).",
17912	//         "Target ads in a specific on screen position.",
17913	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
17914	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
17915	//         "Filter website content by sensitive categories (for example, adult).",
17916	//         "Target ads to a specific environment (for example, web or app).",
17917	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
17918	//         "Target ads to a specific operating system (for example, macOS).",
17919	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
17920	//         "Target ads to a specific keyword (for example, dog or retriever).",
17921	//         "Target ads to a specific negative keyword list.",
17922	//         "Target ads to a specific viewability (for example, 80% viewable).",
17923	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
17924	//         "Purchase impressions from specific deals and auction packages.",
17925	//         "Target ads to a specific language (for example, English or Japanese).",
17926	//         "Target ads to ads.txt authorized sellers.",
17927	//         "Target ads to a specific regional location (for example, a city or state).",
17928	//         "Purchase impressions from a group of deals and auction packages.",
17929	//         "Purchase impressions from specific exchanges.",
17930	//         "Purchase impressions from specific sub-exchanges.",
17931	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
17932	//         "Target ads around locations of a business chain within a specific geo region.",
17933	//         "Target ads to a specific native content position.",
17934	//         "Target ads in an Open Measurement enabled inventory."
17935	//       ],
17936	//       "location": "path",
17937	//       "pattern": "^[^/]+$",
17938	//       "required": true,
17939	//       "type": "string"
17940	//     }
17941	//   },
17942	//   "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
17943	//   "response": {
17944	//     "$ref": "ListCampaignAssignedTargetingOptionsResponse"
17945	//   },
17946	//   "scopes": [
17947	//     "https://www.googleapis.com/auth/display-video"
17948	//   ]
17949	// }
17950
17951}
17952
17953// Pages invokes f for each page of results.
17954// A non-nil error returned from f will halt the iteration.
17955// The provided context supersedes any context provided to the Context method.
17956func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) Pages(ctx context.Context, f func(*ListCampaignAssignedTargetingOptionsResponse) error) error {
17957	c.ctx_ = ctx
17958	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
17959	for {
17960		x, err := c.Do()
17961		if err != nil {
17962			return err
17963		}
17964		if err := f(x); err != nil {
17965			return err
17966		}
17967		if x.NextPageToken == "" {
17968			return nil
17969		}
17970		c.PageToken(x.NextPageToken)
17971	}
17972}
17973
17974// method id "displayvideo.advertisers.channels.create":
17975
17976type AdvertisersChannelsCreateCall struct {
17977	s            *Service
17978	advertiserId int64
17979	channel      *Channel
17980	urlParams_   gensupport.URLParams
17981	ctx_         context.Context
17982	header_      http.Header
17983}
17984
17985// Create: Creates a new channel. Returns the newly created channel if
17986// successful.
17987//
17988// - advertiserId: The ID of the advertiser that owns the created
17989//   channel.
17990func (r *AdvertisersChannelsService) Create(advertiserId int64, channel *Channel) *AdvertisersChannelsCreateCall {
17991	c := &AdvertisersChannelsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17992	c.advertiserId = advertiserId
17993	c.channel = channel
17994	return c
17995}
17996
17997// PartnerId sets the optional parameter "partnerId": The ID of the
17998// partner that owns the created channel.
17999func (c *AdvertisersChannelsCreateCall) PartnerId(partnerId int64) *AdvertisersChannelsCreateCall {
18000	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
18001	return c
18002}
18003
18004// Fields allows partial responses to be retrieved. See
18005// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18006// for more information.
18007func (c *AdvertisersChannelsCreateCall) Fields(s ...googleapi.Field) *AdvertisersChannelsCreateCall {
18008	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18009	return c
18010}
18011
18012// Context sets the context to be used in this call's Do method. Any
18013// pending HTTP request will be aborted if the provided context is
18014// canceled.
18015func (c *AdvertisersChannelsCreateCall) Context(ctx context.Context) *AdvertisersChannelsCreateCall {
18016	c.ctx_ = ctx
18017	return c
18018}
18019
18020// Header returns an http.Header that can be modified by the caller to
18021// add HTTP headers to the request.
18022func (c *AdvertisersChannelsCreateCall) Header() http.Header {
18023	if c.header_ == nil {
18024		c.header_ = make(http.Header)
18025	}
18026	return c.header_
18027}
18028
18029func (c *AdvertisersChannelsCreateCall) doRequest(alt string) (*http.Response, error) {
18030	reqHeaders := make(http.Header)
18031	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
18032	for k, v := range c.header_ {
18033		reqHeaders[k] = v
18034	}
18035	reqHeaders.Set("User-Agent", c.s.userAgent())
18036	var body io.Reader = nil
18037	body, err := googleapi.WithoutDataWrapper.JSONReader(c.channel)
18038	if err != nil {
18039		return nil, err
18040	}
18041	reqHeaders.Set("Content-Type", "application/json")
18042	c.urlParams_.Set("alt", alt)
18043	c.urlParams_.Set("prettyPrint", "false")
18044	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/channels")
18045	urls += "?" + c.urlParams_.Encode()
18046	req, err := http.NewRequest("POST", urls, body)
18047	if err != nil {
18048		return nil, err
18049	}
18050	req.Header = reqHeaders
18051	googleapi.Expand(req.URL, map[string]string{
18052		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
18053	})
18054	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18055}
18056
18057// Do executes the "displayvideo.advertisers.channels.create" call.
18058// Exactly one of *Channel or error will be non-nil. Any non-2xx status
18059// code is an error. Response headers are in either
18060// *Channel.ServerResponse.Header or (if a response was returned at all)
18061// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
18062// check whether the returned error was because http.StatusNotModified
18063// was returned.
18064func (c *AdvertisersChannelsCreateCall) Do(opts ...googleapi.CallOption) (*Channel, error) {
18065	gensupport.SetOptions(c.urlParams_, opts...)
18066	res, err := c.doRequest("json")
18067	if res != nil && res.StatusCode == http.StatusNotModified {
18068		if res.Body != nil {
18069			res.Body.Close()
18070		}
18071		return nil, &googleapi.Error{
18072			Code:   res.StatusCode,
18073			Header: res.Header,
18074		}
18075	}
18076	if err != nil {
18077		return nil, err
18078	}
18079	defer googleapi.CloseBody(res)
18080	if err := googleapi.CheckResponse(res); err != nil {
18081		return nil, err
18082	}
18083	ret := &Channel{
18084		ServerResponse: googleapi.ServerResponse{
18085			Header:         res.Header,
18086			HTTPStatusCode: res.StatusCode,
18087		},
18088	}
18089	target := &ret
18090	if err := gensupport.DecodeResponse(target, res); err != nil {
18091		return nil, err
18092	}
18093	return ret, nil
18094	// {
18095	//   "description": "Creates a new channel. Returns the newly created channel if successful.",
18096	//   "flatPath": "v1/advertisers/{advertisersId}/channels",
18097	//   "httpMethod": "POST",
18098	//   "id": "displayvideo.advertisers.channels.create",
18099	//   "parameterOrder": [
18100	//     "advertiserId"
18101	//   ],
18102	//   "parameters": {
18103	//     "advertiserId": {
18104	//       "description": "The ID of the advertiser that owns the created channel.",
18105	//       "format": "int64",
18106	//       "location": "path",
18107	//       "pattern": "^[^/]+$",
18108	//       "required": true,
18109	//       "type": "string"
18110	//     },
18111	//     "partnerId": {
18112	//       "description": "The ID of the partner that owns the created channel.",
18113	//       "format": "int64",
18114	//       "location": "query",
18115	//       "type": "string"
18116	//     }
18117	//   },
18118	//   "path": "v1/advertisers/{+advertiserId}/channels",
18119	//   "request": {
18120	//     "$ref": "Channel"
18121	//   },
18122	//   "response": {
18123	//     "$ref": "Channel"
18124	//   },
18125	//   "scopes": [
18126	//     "https://www.googleapis.com/auth/display-video"
18127	//   ]
18128	// }
18129
18130}
18131
18132// method id "displayvideo.advertisers.channels.get":
18133
18134type AdvertisersChannelsGetCall struct {
18135	s            *Service
18136	advertiserId int64
18137	channelId    int64
18138	urlParams_   gensupport.URLParams
18139	ifNoneMatch_ string
18140	ctx_         context.Context
18141	header_      http.Header
18142}
18143
18144// Get: Gets a channel for a partner or advertiser.
18145//
18146// - advertiserId: The ID of the advertiser that owns the fetched
18147//   channel.
18148// - channelId: The ID of the channel to fetch.
18149func (r *AdvertisersChannelsService) Get(advertiserId int64, channelId int64) *AdvertisersChannelsGetCall {
18150	c := &AdvertisersChannelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18151	c.advertiserId = advertiserId
18152	c.channelId = channelId
18153	return c
18154}
18155
18156// PartnerId sets the optional parameter "partnerId": The ID of the
18157// partner that owns the fetched channel.
18158func (c *AdvertisersChannelsGetCall) PartnerId(partnerId int64) *AdvertisersChannelsGetCall {
18159	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
18160	return c
18161}
18162
18163// Fields allows partial responses to be retrieved. See
18164// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18165// for more information.
18166func (c *AdvertisersChannelsGetCall) Fields(s ...googleapi.Field) *AdvertisersChannelsGetCall {
18167	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18168	return c
18169}
18170
18171// IfNoneMatch sets the optional parameter which makes the operation
18172// fail if the object's ETag matches the given value. This is useful for
18173// getting updates only after the object has changed since the last
18174// request. Use googleapi.IsNotModified to check whether the response
18175// error from Do is the result of In-None-Match.
18176func (c *AdvertisersChannelsGetCall) IfNoneMatch(entityTag string) *AdvertisersChannelsGetCall {
18177	c.ifNoneMatch_ = entityTag
18178	return c
18179}
18180
18181// Context sets the context to be used in this call's Do method. Any
18182// pending HTTP request will be aborted if the provided context is
18183// canceled.
18184func (c *AdvertisersChannelsGetCall) Context(ctx context.Context) *AdvertisersChannelsGetCall {
18185	c.ctx_ = ctx
18186	return c
18187}
18188
18189// Header returns an http.Header that can be modified by the caller to
18190// add HTTP headers to the request.
18191func (c *AdvertisersChannelsGetCall) Header() http.Header {
18192	if c.header_ == nil {
18193		c.header_ = make(http.Header)
18194	}
18195	return c.header_
18196}
18197
18198func (c *AdvertisersChannelsGetCall) doRequest(alt string) (*http.Response, error) {
18199	reqHeaders := make(http.Header)
18200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
18201	for k, v := range c.header_ {
18202		reqHeaders[k] = v
18203	}
18204	reqHeaders.Set("User-Agent", c.s.userAgent())
18205	if c.ifNoneMatch_ != "" {
18206		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
18207	}
18208	var body io.Reader = nil
18209	c.urlParams_.Set("alt", alt)
18210	c.urlParams_.Set("prettyPrint", "false")
18211	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/channels/{+channelId}")
18212	urls += "?" + c.urlParams_.Encode()
18213	req, err := http.NewRequest("GET", urls, body)
18214	if err != nil {
18215		return nil, err
18216	}
18217	req.Header = reqHeaders
18218	googleapi.Expand(req.URL, map[string]string{
18219		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
18220		"channelId":    strconv.FormatInt(c.channelId, 10),
18221	})
18222	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18223}
18224
18225// Do executes the "displayvideo.advertisers.channels.get" call.
18226// Exactly one of *Channel or error will be non-nil. Any non-2xx status
18227// code is an error. Response headers are in either
18228// *Channel.ServerResponse.Header or (if a response was returned at all)
18229// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
18230// check whether the returned error was because http.StatusNotModified
18231// was returned.
18232func (c *AdvertisersChannelsGetCall) Do(opts ...googleapi.CallOption) (*Channel, error) {
18233	gensupport.SetOptions(c.urlParams_, opts...)
18234	res, err := c.doRequest("json")
18235	if res != nil && res.StatusCode == http.StatusNotModified {
18236		if res.Body != nil {
18237			res.Body.Close()
18238		}
18239		return nil, &googleapi.Error{
18240			Code:   res.StatusCode,
18241			Header: res.Header,
18242		}
18243	}
18244	if err != nil {
18245		return nil, err
18246	}
18247	defer googleapi.CloseBody(res)
18248	if err := googleapi.CheckResponse(res); err != nil {
18249		return nil, err
18250	}
18251	ret := &Channel{
18252		ServerResponse: googleapi.ServerResponse{
18253			Header:         res.Header,
18254			HTTPStatusCode: res.StatusCode,
18255		},
18256	}
18257	target := &ret
18258	if err := gensupport.DecodeResponse(target, res); err != nil {
18259		return nil, err
18260	}
18261	return ret, nil
18262	// {
18263	//   "description": "Gets a channel for a partner or advertiser.",
18264	//   "flatPath": "v1/advertisers/{advertisersId}/channels/{channelsId}",
18265	//   "httpMethod": "GET",
18266	//   "id": "displayvideo.advertisers.channels.get",
18267	//   "parameterOrder": [
18268	//     "advertiserId",
18269	//     "channelId"
18270	//   ],
18271	//   "parameters": {
18272	//     "advertiserId": {
18273	//       "description": "The ID of the advertiser that owns the fetched channel.",
18274	//       "format": "int64",
18275	//       "location": "path",
18276	//       "pattern": "^[^/]+$",
18277	//       "required": true,
18278	//       "type": "string"
18279	//     },
18280	//     "channelId": {
18281	//       "description": "Required. The ID of the channel to fetch.",
18282	//       "format": "int64",
18283	//       "location": "path",
18284	//       "pattern": "^[^/]+$",
18285	//       "required": true,
18286	//       "type": "string"
18287	//     },
18288	//     "partnerId": {
18289	//       "description": "The ID of the partner that owns the fetched channel.",
18290	//       "format": "int64",
18291	//       "location": "query",
18292	//       "type": "string"
18293	//     }
18294	//   },
18295	//   "path": "v1/advertisers/{+advertiserId}/channels/{+channelId}",
18296	//   "response": {
18297	//     "$ref": "Channel"
18298	//   },
18299	//   "scopes": [
18300	//     "https://www.googleapis.com/auth/display-video"
18301	//   ]
18302	// }
18303
18304}
18305
18306// method id "displayvideo.advertisers.channels.list":
18307
18308type AdvertisersChannelsListCall struct {
18309	s            *Service
18310	advertiserId int64
18311	urlParams_   gensupport.URLParams
18312	ifNoneMatch_ string
18313	ctx_         context.Context
18314	header_      http.Header
18315}
18316
18317// List: Lists channels for a partner or advertiser.
18318//
18319// - advertiserId: The ID of the advertiser that owns the channels.
18320func (r *AdvertisersChannelsService) List(advertiserId int64) *AdvertisersChannelsListCall {
18321	c := &AdvertisersChannelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18322	c.advertiserId = advertiserId
18323	return c
18324}
18325
18326// Filter sets the optional parameter "filter": Allows filtering by
18327// channel fields. Supported syntax: * Filter expressions for channel
18328// currently can only contain at most one * restriction. * A restriction
18329// has the form of `{field} {operator} {value}`. * The operator must be
18330// `CONTAINS (:)`. * Supported fields: - `displayName` Examples: * All
18331// channels for which the display name contains "google": `displayName :
18332// "google". The length of this field should be no more than 500
18333// characters.
18334func (c *AdvertisersChannelsListCall) Filter(filter string) *AdvertisersChannelsListCall {
18335	c.urlParams_.Set("filter", filter)
18336	return c
18337}
18338
18339// OrderBy sets the optional parameter "orderBy": Field by which to sort
18340// the list. Acceptable values are: * `displayName` (default) *
18341// `channelId` The default sorting order is ascending. To specify
18342// descending order for a field, a suffix " desc" should be added to the
18343// field name. Example: `displayName desc`.
18344func (c *AdvertisersChannelsListCall) OrderBy(orderBy string) *AdvertisersChannelsListCall {
18345	c.urlParams_.Set("orderBy", orderBy)
18346	return c
18347}
18348
18349// PageSize sets the optional parameter "pageSize": Requested page size.
18350// Must be between `1` and `100`. If unspecified will default to `100`.
18351// Returns error code `INVALID_ARGUMENT` if an invalid value is
18352// specified.
18353func (c *AdvertisersChannelsListCall) PageSize(pageSize int64) *AdvertisersChannelsListCall {
18354	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
18355	return c
18356}
18357
18358// PageToken sets the optional parameter "pageToken": A token
18359// identifying a page of results the server should return. Typically,
18360// this is the value of next_page_token returned from the previous call
18361// to `ListChannels` method. If not specified, the first page of results
18362// will be returned.
18363func (c *AdvertisersChannelsListCall) PageToken(pageToken string) *AdvertisersChannelsListCall {
18364	c.urlParams_.Set("pageToken", pageToken)
18365	return c
18366}
18367
18368// PartnerId sets the optional parameter "partnerId": The ID of the
18369// partner that owns the channels.
18370func (c *AdvertisersChannelsListCall) PartnerId(partnerId int64) *AdvertisersChannelsListCall {
18371	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
18372	return c
18373}
18374
18375// Fields allows partial responses to be retrieved. See
18376// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18377// for more information.
18378func (c *AdvertisersChannelsListCall) Fields(s ...googleapi.Field) *AdvertisersChannelsListCall {
18379	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18380	return c
18381}
18382
18383// IfNoneMatch sets the optional parameter which makes the operation
18384// fail if the object's ETag matches the given value. This is useful for
18385// getting updates only after the object has changed since the last
18386// request. Use googleapi.IsNotModified to check whether the response
18387// error from Do is the result of In-None-Match.
18388func (c *AdvertisersChannelsListCall) IfNoneMatch(entityTag string) *AdvertisersChannelsListCall {
18389	c.ifNoneMatch_ = entityTag
18390	return c
18391}
18392
18393// Context sets the context to be used in this call's Do method. Any
18394// pending HTTP request will be aborted if the provided context is
18395// canceled.
18396func (c *AdvertisersChannelsListCall) Context(ctx context.Context) *AdvertisersChannelsListCall {
18397	c.ctx_ = ctx
18398	return c
18399}
18400
18401// Header returns an http.Header that can be modified by the caller to
18402// add HTTP headers to the request.
18403func (c *AdvertisersChannelsListCall) Header() http.Header {
18404	if c.header_ == nil {
18405		c.header_ = make(http.Header)
18406	}
18407	return c.header_
18408}
18409
18410func (c *AdvertisersChannelsListCall) doRequest(alt string) (*http.Response, error) {
18411	reqHeaders := make(http.Header)
18412	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
18413	for k, v := range c.header_ {
18414		reqHeaders[k] = v
18415	}
18416	reqHeaders.Set("User-Agent", c.s.userAgent())
18417	if c.ifNoneMatch_ != "" {
18418		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
18419	}
18420	var body io.Reader = nil
18421	c.urlParams_.Set("alt", alt)
18422	c.urlParams_.Set("prettyPrint", "false")
18423	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/channels")
18424	urls += "?" + c.urlParams_.Encode()
18425	req, err := http.NewRequest("GET", urls, body)
18426	if err != nil {
18427		return nil, err
18428	}
18429	req.Header = reqHeaders
18430	googleapi.Expand(req.URL, map[string]string{
18431		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
18432	})
18433	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18434}
18435
18436// Do executes the "displayvideo.advertisers.channels.list" call.
18437// Exactly one of *ListChannelsResponse or error will be non-nil. Any
18438// non-2xx status code is an error. Response headers are in either
18439// *ListChannelsResponse.ServerResponse.Header or (if a response was
18440// returned at all) in error.(*googleapi.Error).Header. Use
18441// googleapi.IsNotModified to check whether the returned error was
18442// because http.StatusNotModified was returned.
18443func (c *AdvertisersChannelsListCall) Do(opts ...googleapi.CallOption) (*ListChannelsResponse, error) {
18444	gensupport.SetOptions(c.urlParams_, opts...)
18445	res, err := c.doRequest("json")
18446	if res != nil && res.StatusCode == http.StatusNotModified {
18447		if res.Body != nil {
18448			res.Body.Close()
18449		}
18450		return nil, &googleapi.Error{
18451			Code:   res.StatusCode,
18452			Header: res.Header,
18453		}
18454	}
18455	if err != nil {
18456		return nil, err
18457	}
18458	defer googleapi.CloseBody(res)
18459	if err := googleapi.CheckResponse(res); err != nil {
18460		return nil, err
18461	}
18462	ret := &ListChannelsResponse{
18463		ServerResponse: googleapi.ServerResponse{
18464			Header:         res.Header,
18465			HTTPStatusCode: res.StatusCode,
18466		},
18467	}
18468	target := &ret
18469	if err := gensupport.DecodeResponse(target, res); err != nil {
18470		return nil, err
18471	}
18472	return ret, nil
18473	// {
18474	//   "description": "Lists channels for a partner or advertiser.",
18475	//   "flatPath": "v1/advertisers/{advertisersId}/channels",
18476	//   "httpMethod": "GET",
18477	//   "id": "displayvideo.advertisers.channels.list",
18478	//   "parameterOrder": [
18479	//     "advertiserId"
18480	//   ],
18481	//   "parameters": {
18482	//     "advertiserId": {
18483	//       "description": "The ID of the advertiser that owns the channels.",
18484	//       "format": "int64",
18485	//       "location": "path",
18486	//       "pattern": "^[^/]+$",
18487	//       "required": true,
18488	//       "type": "string"
18489	//     },
18490	//     "filter": {
18491	//       "description": "Allows filtering by channel fields. Supported syntax: * Filter expressions for channel currently can only contain at most one * restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * Supported fields: - `displayName` Examples: * All channels for which the display name contains \"google\": `displayName : \"google\"`. The length of this field should be no more than 500 characters.",
18492	//       "location": "query",
18493	//       "type": "string"
18494	//     },
18495	//     "orderBy": {
18496	//       "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `channelId` The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `displayName desc`.",
18497	//       "location": "query",
18498	//       "type": "string"
18499	//     },
18500	//     "pageSize": {
18501	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
18502	//       "format": "int32",
18503	//       "location": "query",
18504	//       "type": "integer"
18505	//     },
18506	//     "pageToken": {
18507	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListChannels` method. If not specified, the first page of results will be returned.",
18508	//       "location": "query",
18509	//       "type": "string"
18510	//     },
18511	//     "partnerId": {
18512	//       "description": "The ID of the partner that owns the channels.",
18513	//       "format": "int64",
18514	//       "location": "query",
18515	//       "type": "string"
18516	//     }
18517	//   },
18518	//   "path": "v1/advertisers/{+advertiserId}/channels",
18519	//   "response": {
18520	//     "$ref": "ListChannelsResponse"
18521	//   },
18522	//   "scopes": [
18523	//     "https://www.googleapis.com/auth/display-video"
18524	//   ]
18525	// }
18526
18527}
18528
18529// Pages invokes f for each page of results.
18530// A non-nil error returned from f will halt the iteration.
18531// The provided context supersedes any context provided to the Context method.
18532func (c *AdvertisersChannelsListCall) Pages(ctx context.Context, f func(*ListChannelsResponse) error) error {
18533	c.ctx_ = ctx
18534	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
18535	for {
18536		x, err := c.Do()
18537		if err != nil {
18538			return err
18539		}
18540		if err := f(x); err != nil {
18541			return err
18542		}
18543		if x.NextPageToken == "" {
18544			return nil
18545		}
18546		c.PageToken(x.NextPageToken)
18547	}
18548}
18549
18550// method id "displayvideo.advertisers.channels.patch":
18551
18552type AdvertisersChannelsPatchCall struct {
18553	s            *Service
18554	advertiserId int64
18555	channelId    int64
18556	channel      *Channel
18557	urlParams_   gensupport.URLParams
18558	ctx_         context.Context
18559	header_      http.Header
18560}
18561
18562// Patch: Updates a channel. Returns the updated channel if successful.
18563//
18564// - advertiserId: The ID of the advertiser that owns the created
18565//   channel.
18566// - channelId: Output only. The unique ID of the channel. Assigned by
18567//   the system.
18568func (r *AdvertisersChannelsService) Patch(advertiserId int64, channelId int64, channel *Channel) *AdvertisersChannelsPatchCall {
18569	c := &AdvertisersChannelsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18570	c.advertiserId = advertiserId
18571	c.channelId = channelId
18572	c.channel = channel
18573	return c
18574}
18575
18576// PartnerId sets the optional parameter "partnerId": The ID of the
18577// partner that owns the created channel.
18578func (c *AdvertisersChannelsPatchCall) PartnerId(partnerId int64) *AdvertisersChannelsPatchCall {
18579	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
18580	return c
18581}
18582
18583// UpdateMask sets the optional parameter "updateMask": Required. The
18584// mask to control which fields to update.
18585func (c *AdvertisersChannelsPatchCall) UpdateMask(updateMask string) *AdvertisersChannelsPatchCall {
18586	c.urlParams_.Set("updateMask", updateMask)
18587	return c
18588}
18589
18590// Fields allows partial responses to be retrieved. See
18591// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18592// for more information.
18593func (c *AdvertisersChannelsPatchCall) Fields(s ...googleapi.Field) *AdvertisersChannelsPatchCall {
18594	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18595	return c
18596}
18597
18598// Context sets the context to be used in this call's Do method. Any
18599// pending HTTP request will be aborted if the provided context is
18600// canceled.
18601func (c *AdvertisersChannelsPatchCall) Context(ctx context.Context) *AdvertisersChannelsPatchCall {
18602	c.ctx_ = ctx
18603	return c
18604}
18605
18606// Header returns an http.Header that can be modified by the caller to
18607// add HTTP headers to the request.
18608func (c *AdvertisersChannelsPatchCall) Header() http.Header {
18609	if c.header_ == nil {
18610		c.header_ = make(http.Header)
18611	}
18612	return c.header_
18613}
18614
18615func (c *AdvertisersChannelsPatchCall) doRequest(alt string) (*http.Response, error) {
18616	reqHeaders := make(http.Header)
18617	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
18618	for k, v := range c.header_ {
18619		reqHeaders[k] = v
18620	}
18621	reqHeaders.Set("User-Agent", c.s.userAgent())
18622	var body io.Reader = nil
18623	body, err := googleapi.WithoutDataWrapper.JSONReader(c.channel)
18624	if err != nil {
18625		return nil, err
18626	}
18627	reqHeaders.Set("Content-Type", "application/json")
18628	c.urlParams_.Set("alt", alt)
18629	c.urlParams_.Set("prettyPrint", "false")
18630	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/channels/{channelId}")
18631	urls += "?" + c.urlParams_.Encode()
18632	req, err := http.NewRequest("PATCH", urls, body)
18633	if err != nil {
18634		return nil, err
18635	}
18636	req.Header = reqHeaders
18637	googleapi.Expand(req.URL, map[string]string{
18638		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
18639		"channelId":    strconv.FormatInt(c.channelId, 10),
18640	})
18641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18642}
18643
18644// Do executes the "displayvideo.advertisers.channels.patch" call.
18645// Exactly one of *Channel or error will be non-nil. Any non-2xx status
18646// code is an error. Response headers are in either
18647// *Channel.ServerResponse.Header or (if a response was returned at all)
18648// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
18649// check whether the returned error was because http.StatusNotModified
18650// was returned.
18651func (c *AdvertisersChannelsPatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) {
18652	gensupport.SetOptions(c.urlParams_, opts...)
18653	res, err := c.doRequest("json")
18654	if res != nil && res.StatusCode == http.StatusNotModified {
18655		if res.Body != nil {
18656			res.Body.Close()
18657		}
18658		return nil, &googleapi.Error{
18659			Code:   res.StatusCode,
18660			Header: res.Header,
18661		}
18662	}
18663	if err != nil {
18664		return nil, err
18665	}
18666	defer googleapi.CloseBody(res)
18667	if err := googleapi.CheckResponse(res); err != nil {
18668		return nil, err
18669	}
18670	ret := &Channel{
18671		ServerResponse: googleapi.ServerResponse{
18672			Header:         res.Header,
18673			HTTPStatusCode: res.StatusCode,
18674		},
18675	}
18676	target := &ret
18677	if err := gensupport.DecodeResponse(target, res); err != nil {
18678		return nil, err
18679	}
18680	return ret, nil
18681	// {
18682	//   "description": "Updates a channel. Returns the updated channel if successful.",
18683	//   "flatPath": "v1/advertisers/{advertisersId}/channels/{channelId}",
18684	//   "httpMethod": "PATCH",
18685	//   "id": "displayvideo.advertisers.channels.patch",
18686	//   "parameterOrder": [
18687	//     "advertiserId",
18688	//     "channelId"
18689	//   ],
18690	//   "parameters": {
18691	//     "advertiserId": {
18692	//       "description": "The ID of the advertiser that owns the created channel.",
18693	//       "format": "int64",
18694	//       "location": "path",
18695	//       "pattern": "^[^/]+$",
18696	//       "required": true,
18697	//       "type": "string"
18698	//     },
18699	//     "channelId": {
18700	//       "description": "Output only. The unique ID of the channel. Assigned by the system.",
18701	//       "format": "int64",
18702	//       "location": "path",
18703	//       "required": true,
18704	//       "type": "string"
18705	//     },
18706	//     "partnerId": {
18707	//       "description": "The ID of the partner that owns the created channel.",
18708	//       "format": "int64",
18709	//       "location": "query",
18710	//       "type": "string"
18711	//     },
18712	//     "updateMask": {
18713	//       "description": "Required. The mask to control which fields to update.",
18714	//       "format": "google-fieldmask",
18715	//       "location": "query",
18716	//       "type": "string"
18717	//     }
18718	//   },
18719	//   "path": "v1/advertisers/{+advertiserId}/channels/{channelId}",
18720	//   "request": {
18721	//     "$ref": "Channel"
18722	//   },
18723	//   "response": {
18724	//     "$ref": "Channel"
18725	//   },
18726	//   "scopes": [
18727	//     "https://www.googleapis.com/auth/display-video"
18728	//   ]
18729	// }
18730
18731}
18732
18733// method id "displayvideo.advertisers.channels.sites.bulkEdit":
18734
18735type AdvertisersChannelsSitesBulkEditCall struct {
18736	s                    *Service
18737	advertiserId         int64
18738	channelId            int64
18739	bulkeditsitesrequest *BulkEditSitesRequest
18740	urlParams_           gensupport.URLParams
18741	ctx_                 context.Context
18742	header_              http.Header
18743}
18744
18745// BulkEdit: Bulk edits sites under a single channel. The operation will
18746// delete the sites provided in BulkEditSitesRequest.deleted_sites and
18747// then create the sites provided in BulkEditSitesRequest.created_sites.
18748//
18749// - advertiserId: The ID of the advertiser that owns the parent
18750//   channel.
18751// - channelId: The ID of the parent channel to which the sites belong.
18752func (r *AdvertisersChannelsSitesService) BulkEdit(advertiserId int64, channelId int64, bulkeditsitesrequest *BulkEditSitesRequest) *AdvertisersChannelsSitesBulkEditCall {
18753	c := &AdvertisersChannelsSitesBulkEditCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18754	c.advertiserId = advertiserId
18755	c.channelId = channelId
18756	c.bulkeditsitesrequest = bulkeditsitesrequest
18757	return c
18758}
18759
18760// Fields allows partial responses to be retrieved. See
18761// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18762// for more information.
18763func (c *AdvertisersChannelsSitesBulkEditCall) Fields(s ...googleapi.Field) *AdvertisersChannelsSitesBulkEditCall {
18764	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18765	return c
18766}
18767
18768// Context sets the context to be used in this call's Do method. Any
18769// pending HTTP request will be aborted if the provided context is
18770// canceled.
18771func (c *AdvertisersChannelsSitesBulkEditCall) Context(ctx context.Context) *AdvertisersChannelsSitesBulkEditCall {
18772	c.ctx_ = ctx
18773	return c
18774}
18775
18776// Header returns an http.Header that can be modified by the caller to
18777// add HTTP headers to the request.
18778func (c *AdvertisersChannelsSitesBulkEditCall) Header() http.Header {
18779	if c.header_ == nil {
18780		c.header_ = make(http.Header)
18781	}
18782	return c.header_
18783}
18784
18785func (c *AdvertisersChannelsSitesBulkEditCall) doRequest(alt string) (*http.Response, error) {
18786	reqHeaders := make(http.Header)
18787	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
18788	for k, v := range c.header_ {
18789		reqHeaders[k] = v
18790	}
18791	reqHeaders.Set("User-Agent", c.s.userAgent())
18792	var body io.Reader = nil
18793	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditsitesrequest)
18794	if err != nil {
18795		return nil, err
18796	}
18797	reqHeaders.Set("Content-Type", "application/json")
18798	c.urlParams_.Set("alt", alt)
18799	c.urlParams_.Set("prettyPrint", "false")
18800	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/channels/{+channelId}/sites:bulkEdit")
18801	urls += "?" + c.urlParams_.Encode()
18802	req, err := http.NewRequest("POST", urls, body)
18803	if err != nil {
18804		return nil, err
18805	}
18806	req.Header = reqHeaders
18807	googleapi.Expand(req.URL, map[string]string{
18808		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
18809		"channelId":    strconv.FormatInt(c.channelId, 10),
18810	})
18811	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18812}
18813
18814// Do executes the "displayvideo.advertisers.channels.sites.bulkEdit" call.
18815// Exactly one of *BulkEditSitesResponse or error will be non-nil. Any
18816// non-2xx status code is an error. Response headers are in either
18817// *BulkEditSitesResponse.ServerResponse.Header or (if a response was
18818// returned at all) in error.(*googleapi.Error).Header. Use
18819// googleapi.IsNotModified to check whether the returned error was
18820// because http.StatusNotModified was returned.
18821func (c *AdvertisersChannelsSitesBulkEditCall) Do(opts ...googleapi.CallOption) (*BulkEditSitesResponse, error) {
18822	gensupport.SetOptions(c.urlParams_, opts...)
18823	res, err := c.doRequest("json")
18824	if res != nil && res.StatusCode == http.StatusNotModified {
18825		if res.Body != nil {
18826			res.Body.Close()
18827		}
18828		return nil, &googleapi.Error{
18829			Code:   res.StatusCode,
18830			Header: res.Header,
18831		}
18832	}
18833	if err != nil {
18834		return nil, err
18835	}
18836	defer googleapi.CloseBody(res)
18837	if err := googleapi.CheckResponse(res); err != nil {
18838		return nil, err
18839	}
18840	ret := &BulkEditSitesResponse{
18841		ServerResponse: googleapi.ServerResponse{
18842			Header:         res.Header,
18843			HTTPStatusCode: res.StatusCode,
18844		},
18845	}
18846	target := &ret
18847	if err := gensupport.DecodeResponse(target, res); err != nil {
18848		return nil, err
18849	}
18850	return ret, nil
18851	// {
18852	//   "description": "Bulk edits sites under a single channel. The operation will delete the sites provided in BulkEditSitesRequest.deleted_sites and then create the sites provided in BulkEditSitesRequest.created_sites.",
18853	//   "flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites:bulkEdit",
18854	//   "httpMethod": "POST",
18855	//   "id": "displayvideo.advertisers.channels.sites.bulkEdit",
18856	//   "parameterOrder": [
18857	//     "advertiserId",
18858	//     "channelId"
18859	//   ],
18860	//   "parameters": {
18861	//     "advertiserId": {
18862	//       "description": "The ID of the advertiser that owns the parent channel.",
18863	//       "format": "int64",
18864	//       "location": "path",
18865	//       "required": true,
18866	//       "type": "string"
18867	//     },
18868	//     "channelId": {
18869	//       "description": "Required. The ID of the parent channel to which the sites belong.",
18870	//       "format": "int64",
18871	//       "location": "path",
18872	//       "pattern": "^[^/]+$",
18873	//       "required": true,
18874	//       "type": "string"
18875	//     }
18876	//   },
18877	//   "path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites:bulkEdit",
18878	//   "request": {
18879	//     "$ref": "BulkEditSitesRequest"
18880	//   },
18881	//   "response": {
18882	//     "$ref": "BulkEditSitesResponse"
18883	//   },
18884	//   "scopes": [
18885	//     "https://www.googleapis.com/auth/display-video"
18886	//   ]
18887	// }
18888
18889}
18890
18891// method id "displayvideo.advertisers.channels.sites.create":
18892
18893type AdvertisersChannelsSitesCreateCall struct {
18894	s            *Service
18895	advertiserId int64
18896	channelId    int64
18897	site         *Site
18898	urlParams_   gensupport.URLParams
18899	ctx_         context.Context
18900	header_      http.Header
18901}
18902
18903// Create: Creates a site in a channel.
18904//
18905// - advertiserId: The ID of the advertiser that owns the parent
18906//   channel.
18907// - channelId: The ID of the parent channel in which the site will be
18908//   created.
18909func (r *AdvertisersChannelsSitesService) Create(advertiserId int64, channelId int64, site *Site) *AdvertisersChannelsSitesCreateCall {
18910	c := &AdvertisersChannelsSitesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18911	c.advertiserId = advertiserId
18912	c.channelId = channelId
18913	c.site = site
18914	return c
18915}
18916
18917// PartnerId sets the optional parameter "partnerId": The ID of the
18918// partner that owns the parent channel.
18919func (c *AdvertisersChannelsSitesCreateCall) PartnerId(partnerId int64) *AdvertisersChannelsSitesCreateCall {
18920	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
18921	return c
18922}
18923
18924// Fields allows partial responses to be retrieved. See
18925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18926// for more information.
18927func (c *AdvertisersChannelsSitesCreateCall) Fields(s ...googleapi.Field) *AdvertisersChannelsSitesCreateCall {
18928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18929	return c
18930}
18931
18932// Context sets the context to be used in this call's Do method. Any
18933// pending HTTP request will be aborted if the provided context is
18934// canceled.
18935func (c *AdvertisersChannelsSitesCreateCall) Context(ctx context.Context) *AdvertisersChannelsSitesCreateCall {
18936	c.ctx_ = ctx
18937	return c
18938}
18939
18940// Header returns an http.Header that can be modified by the caller to
18941// add HTTP headers to the request.
18942func (c *AdvertisersChannelsSitesCreateCall) Header() http.Header {
18943	if c.header_ == nil {
18944		c.header_ = make(http.Header)
18945	}
18946	return c.header_
18947}
18948
18949func (c *AdvertisersChannelsSitesCreateCall) doRequest(alt string) (*http.Response, error) {
18950	reqHeaders := make(http.Header)
18951	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
18952	for k, v := range c.header_ {
18953		reqHeaders[k] = v
18954	}
18955	reqHeaders.Set("User-Agent", c.s.userAgent())
18956	var body io.Reader = nil
18957	body, err := googleapi.WithoutDataWrapper.JSONReader(c.site)
18958	if err != nil {
18959		return nil, err
18960	}
18961	reqHeaders.Set("Content-Type", "application/json")
18962	c.urlParams_.Set("alt", alt)
18963	c.urlParams_.Set("prettyPrint", "false")
18964	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/channels/{+channelId}/sites")
18965	urls += "?" + c.urlParams_.Encode()
18966	req, err := http.NewRequest("POST", urls, body)
18967	if err != nil {
18968		return nil, err
18969	}
18970	req.Header = reqHeaders
18971	googleapi.Expand(req.URL, map[string]string{
18972		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
18973		"channelId":    strconv.FormatInt(c.channelId, 10),
18974	})
18975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18976}
18977
18978// Do executes the "displayvideo.advertisers.channels.sites.create" call.
18979// Exactly one of *Site or error will be non-nil. Any non-2xx status
18980// code is an error. Response headers are in either
18981// *Site.ServerResponse.Header or (if a response was returned at all) in
18982// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
18983// whether the returned error was because http.StatusNotModified was
18984// returned.
18985func (c *AdvertisersChannelsSitesCreateCall) Do(opts ...googleapi.CallOption) (*Site, error) {
18986	gensupport.SetOptions(c.urlParams_, opts...)
18987	res, err := c.doRequest("json")
18988	if res != nil && res.StatusCode == http.StatusNotModified {
18989		if res.Body != nil {
18990			res.Body.Close()
18991		}
18992		return nil, &googleapi.Error{
18993			Code:   res.StatusCode,
18994			Header: res.Header,
18995		}
18996	}
18997	if err != nil {
18998		return nil, err
18999	}
19000	defer googleapi.CloseBody(res)
19001	if err := googleapi.CheckResponse(res); err != nil {
19002		return nil, err
19003	}
19004	ret := &Site{
19005		ServerResponse: googleapi.ServerResponse{
19006			Header:         res.Header,
19007			HTTPStatusCode: res.StatusCode,
19008		},
19009	}
19010	target := &ret
19011	if err := gensupport.DecodeResponse(target, res); err != nil {
19012		return nil, err
19013	}
19014	return ret, nil
19015	// {
19016	//   "description": "Creates a site in a channel.",
19017	//   "flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites",
19018	//   "httpMethod": "POST",
19019	//   "id": "displayvideo.advertisers.channels.sites.create",
19020	//   "parameterOrder": [
19021	//     "advertiserId",
19022	//     "channelId"
19023	//   ],
19024	//   "parameters": {
19025	//     "advertiserId": {
19026	//       "description": "The ID of the advertiser that owns the parent channel.",
19027	//       "format": "int64",
19028	//       "location": "path",
19029	//       "required": true,
19030	//       "type": "string"
19031	//     },
19032	//     "channelId": {
19033	//       "description": "Required. The ID of the parent channel in which the site will be created.",
19034	//       "format": "int64",
19035	//       "location": "path",
19036	//       "pattern": "^[^/]+$",
19037	//       "required": true,
19038	//       "type": "string"
19039	//     },
19040	//     "partnerId": {
19041	//       "description": "The ID of the partner that owns the parent channel.",
19042	//       "format": "int64",
19043	//       "location": "query",
19044	//       "type": "string"
19045	//     }
19046	//   },
19047	//   "path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites",
19048	//   "request": {
19049	//     "$ref": "Site"
19050	//   },
19051	//   "response": {
19052	//     "$ref": "Site"
19053	//   },
19054	//   "scopes": [
19055	//     "https://www.googleapis.com/auth/display-video"
19056	//   ]
19057	// }
19058
19059}
19060
19061// method id "displayvideo.advertisers.channels.sites.delete":
19062
19063type AdvertisersChannelsSitesDeleteCall struct {
19064	s            *Service
19065	advertiserId int64
19066	channelId    int64
19067	urlOrAppId   string
19068	urlParams_   gensupport.URLParams
19069	ctx_         context.Context
19070	header_      http.Header
19071}
19072
19073// Delete: Deletes a site from a channel.
19074//
19075// - advertiserId: The ID of the advertiser that owns the parent
19076//   channel.
19077// - channelId: The ID of the parent channel to which the site belongs.
19078// - urlOrAppId: The URL or app ID of the site to delete.
19079func (r *AdvertisersChannelsSitesService) Delete(advertiserId int64, channelId int64, urlOrAppId string) *AdvertisersChannelsSitesDeleteCall {
19080	c := &AdvertisersChannelsSitesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19081	c.advertiserId = advertiserId
19082	c.channelId = channelId
19083	c.urlOrAppId = urlOrAppId
19084	return c
19085}
19086
19087// PartnerId sets the optional parameter "partnerId": The ID of the
19088// partner that owns the parent channel.
19089func (c *AdvertisersChannelsSitesDeleteCall) PartnerId(partnerId int64) *AdvertisersChannelsSitesDeleteCall {
19090	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
19091	return c
19092}
19093
19094// Fields allows partial responses to be retrieved. See
19095// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19096// for more information.
19097func (c *AdvertisersChannelsSitesDeleteCall) Fields(s ...googleapi.Field) *AdvertisersChannelsSitesDeleteCall {
19098	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19099	return c
19100}
19101
19102// Context sets the context to be used in this call's Do method. Any
19103// pending HTTP request will be aborted if the provided context is
19104// canceled.
19105func (c *AdvertisersChannelsSitesDeleteCall) Context(ctx context.Context) *AdvertisersChannelsSitesDeleteCall {
19106	c.ctx_ = ctx
19107	return c
19108}
19109
19110// Header returns an http.Header that can be modified by the caller to
19111// add HTTP headers to the request.
19112func (c *AdvertisersChannelsSitesDeleteCall) Header() http.Header {
19113	if c.header_ == nil {
19114		c.header_ = make(http.Header)
19115	}
19116	return c.header_
19117}
19118
19119func (c *AdvertisersChannelsSitesDeleteCall) doRequest(alt string) (*http.Response, error) {
19120	reqHeaders := make(http.Header)
19121	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
19122	for k, v := range c.header_ {
19123		reqHeaders[k] = v
19124	}
19125	reqHeaders.Set("User-Agent", c.s.userAgent())
19126	var body io.Reader = nil
19127	c.urlParams_.Set("alt", alt)
19128	c.urlParams_.Set("prettyPrint", "false")
19129	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/channels/{+channelId}/sites/{+urlOrAppId}")
19130	urls += "?" + c.urlParams_.Encode()
19131	req, err := http.NewRequest("DELETE", urls, body)
19132	if err != nil {
19133		return nil, err
19134	}
19135	req.Header = reqHeaders
19136	googleapi.Expand(req.URL, map[string]string{
19137		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
19138		"channelId":    strconv.FormatInt(c.channelId, 10),
19139		"urlOrAppId":   c.urlOrAppId,
19140	})
19141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19142}
19143
19144// Do executes the "displayvideo.advertisers.channels.sites.delete" call.
19145// Exactly one of *Empty or error will be non-nil. Any non-2xx status
19146// code is an error. Response headers are in either
19147// *Empty.ServerResponse.Header or (if a response was returned at all)
19148// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
19149// check whether the returned error was because http.StatusNotModified
19150// was returned.
19151func (c *AdvertisersChannelsSitesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
19152	gensupport.SetOptions(c.urlParams_, opts...)
19153	res, err := c.doRequest("json")
19154	if res != nil && res.StatusCode == http.StatusNotModified {
19155		if res.Body != nil {
19156			res.Body.Close()
19157		}
19158		return nil, &googleapi.Error{
19159			Code:   res.StatusCode,
19160			Header: res.Header,
19161		}
19162	}
19163	if err != nil {
19164		return nil, err
19165	}
19166	defer googleapi.CloseBody(res)
19167	if err := googleapi.CheckResponse(res); err != nil {
19168		return nil, err
19169	}
19170	ret := &Empty{
19171		ServerResponse: googleapi.ServerResponse{
19172			Header:         res.Header,
19173			HTTPStatusCode: res.StatusCode,
19174		},
19175	}
19176	target := &ret
19177	if err := gensupport.DecodeResponse(target, res); err != nil {
19178		return nil, err
19179	}
19180	return ret, nil
19181	// {
19182	//   "description": "Deletes a site from a channel.",
19183	//   "flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites/{sitesId}",
19184	//   "httpMethod": "DELETE",
19185	//   "id": "displayvideo.advertisers.channels.sites.delete",
19186	//   "parameterOrder": [
19187	//     "advertiserId",
19188	//     "channelId",
19189	//     "urlOrAppId"
19190	//   ],
19191	//   "parameters": {
19192	//     "advertiserId": {
19193	//       "description": "The ID of the advertiser that owns the parent channel.",
19194	//       "format": "int64",
19195	//       "location": "path",
19196	//       "required": true,
19197	//       "type": "string"
19198	//     },
19199	//     "channelId": {
19200	//       "description": "Required. The ID of the parent channel to which the site belongs.",
19201	//       "format": "int64",
19202	//       "location": "path",
19203	//       "pattern": "^[^/]+$",
19204	//       "required": true,
19205	//       "type": "string"
19206	//     },
19207	//     "partnerId": {
19208	//       "description": "The ID of the partner that owns the parent channel.",
19209	//       "format": "int64",
19210	//       "location": "query",
19211	//       "type": "string"
19212	//     },
19213	//     "urlOrAppId": {
19214	//       "description": "Required. The URL or app ID of the site to delete.",
19215	//       "location": "path",
19216	//       "pattern": "^[^/]+$",
19217	//       "required": true,
19218	//       "type": "string"
19219	//     }
19220	//   },
19221	//   "path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites/{+urlOrAppId}",
19222	//   "response": {
19223	//     "$ref": "Empty"
19224	//   },
19225	//   "scopes": [
19226	//     "https://www.googleapis.com/auth/display-video"
19227	//   ]
19228	// }
19229
19230}
19231
19232// method id "displayvideo.advertisers.channels.sites.list":
19233
19234type AdvertisersChannelsSitesListCall struct {
19235	s            *Service
19236	advertiserId int64
19237	channelId    int64
19238	urlParams_   gensupport.URLParams
19239	ifNoneMatch_ string
19240	ctx_         context.Context
19241	header_      http.Header
19242}
19243
19244// List: Lists sites in a channel.
19245//
19246// - advertiserId: The ID of the advertiser that owns the parent
19247//   channel.
19248// - channelId: The ID of the parent channel to which the requested
19249//   sites belong.
19250func (r *AdvertisersChannelsSitesService) List(advertiserId int64, channelId int64) *AdvertisersChannelsSitesListCall {
19251	c := &AdvertisersChannelsSitesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19252	c.advertiserId = advertiserId
19253	c.channelId = channelId
19254	return c
19255}
19256
19257// Filter sets the optional parameter "filter": Allows filtering by site
19258// fields. Supported syntax: * Filter expressions for site currently can
19259// only contain at most one * restriction. * A restriction has the form
19260// of `{field} {operator} {value}`. * The operator must be `CONTAINS
19261// (:)`. * Supported fields: - `urlOrAppId` Examples: * All sites for
19262// which the URL or app ID contains "google": `urlOrAppId : "google"
19263func (c *AdvertisersChannelsSitesListCall) Filter(filter string) *AdvertisersChannelsSitesListCall {
19264	c.urlParams_.Set("filter", filter)
19265	return c
19266}
19267
19268// OrderBy sets the optional parameter "orderBy": Field by which to sort
19269// the list. Acceptable values are: * `urlOrAppId` (default) The default
19270// sorting order is ascending. To specify descending order for a field,
19271// a suffix " desc" should be added to the field name. Example:
19272// `urlOrAppId desc`.
19273func (c *AdvertisersChannelsSitesListCall) OrderBy(orderBy string) *AdvertisersChannelsSitesListCall {
19274	c.urlParams_.Set("orderBy", orderBy)
19275	return c
19276}
19277
19278// PageSize sets the optional parameter "pageSize": Requested page size.
19279// Must be between `1` and `10000`. If unspecified will default to
19280// `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is
19281// specified.
19282func (c *AdvertisersChannelsSitesListCall) PageSize(pageSize int64) *AdvertisersChannelsSitesListCall {
19283	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
19284	return c
19285}
19286
19287// PageToken sets the optional parameter "pageToken": A token
19288// identifying a page of results the server should return. Typically,
19289// this is the value of next_page_token returned from the previous call
19290// to `ListSites` method. If not specified, the first page of results
19291// will be returned.
19292func (c *AdvertisersChannelsSitesListCall) PageToken(pageToken string) *AdvertisersChannelsSitesListCall {
19293	c.urlParams_.Set("pageToken", pageToken)
19294	return c
19295}
19296
19297// PartnerId sets the optional parameter "partnerId": The ID of the
19298// partner that owns the parent channel.
19299func (c *AdvertisersChannelsSitesListCall) PartnerId(partnerId int64) *AdvertisersChannelsSitesListCall {
19300	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
19301	return c
19302}
19303
19304// Fields allows partial responses to be retrieved. See
19305// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19306// for more information.
19307func (c *AdvertisersChannelsSitesListCall) Fields(s ...googleapi.Field) *AdvertisersChannelsSitesListCall {
19308	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19309	return c
19310}
19311
19312// IfNoneMatch sets the optional parameter which makes the operation
19313// fail if the object's ETag matches the given value. This is useful for
19314// getting updates only after the object has changed since the last
19315// request. Use googleapi.IsNotModified to check whether the response
19316// error from Do is the result of In-None-Match.
19317func (c *AdvertisersChannelsSitesListCall) IfNoneMatch(entityTag string) *AdvertisersChannelsSitesListCall {
19318	c.ifNoneMatch_ = entityTag
19319	return c
19320}
19321
19322// Context sets the context to be used in this call's Do method. Any
19323// pending HTTP request will be aborted if the provided context is
19324// canceled.
19325func (c *AdvertisersChannelsSitesListCall) Context(ctx context.Context) *AdvertisersChannelsSitesListCall {
19326	c.ctx_ = ctx
19327	return c
19328}
19329
19330// Header returns an http.Header that can be modified by the caller to
19331// add HTTP headers to the request.
19332func (c *AdvertisersChannelsSitesListCall) Header() http.Header {
19333	if c.header_ == nil {
19334		c.header_ = make(http.Header)
19335	}
19336	return c.header_
19337}
19338
19339func (c *AdvertisersChannelsSitesListCall) doRequest(alt string) (*http.Response, error) {
19340	reqHeaders := make(http.Header)
19341	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
19342	for k, v := range c.header_ {
19343		reqHeaders[k] = v
19344	}
19345	reqHeaders.Set("User-Agent", c.s.userAgent())
19346	if c.ifNoneMatch_ != "" {
19347		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
19348	}
19349	var body io.Reader = nil
19350	c.urlParams_.Set("alt", alt)
19351	c.urlParams_.Set("prettyPrint", "false")
19352	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/channels/{+channelId}/sites")
19353	urls += "?" + c.urlParams_.Encode()
19354	req, err := http.NewRequest("GET", urls, body)
19355	if err != nil {
19356		return nil, err
19357	}
19358	req.Header = reqHeaders
19359	googleapi.Expand(req.URL, map[string]string{
19360		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
19361		"channelId":    strconv.FormatInt(c.channelId, 10),
19362	})
19363	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19364}
19365
19366// Do executes the "displayvideo.advertisers.channels.sites.list" call.
19367// Exactly one of *ListSitesResponse or error will be non-nil. Any
19368// non-2xx status code is an error. Response headers are in either
19369// *ListSitesResponse.ServerResponse.Header or (if a response was
19370// returned at all) in error.(*googleapi.Error).Header. Use
19371// googleapi.IsNotModified to check whether the returned error was
19372// because http.StatusNotModified was returned.
19373func (c *AdvertisersChannelsSitesListCall) Do(opts ...googleapi.CallOption) (*ListSitesResponse, error) {
19374	gensupport.SetOptions(c.urlParams_, opts...)
19375	res, err := c.doRequest("json")
19376	if res != nil && res.StatusCode == http.StatusNotModified {
19377		if res.Body != nil {
19378			res.Body.Close()
19379		}
19380		return nil, &googleapi.Error{
19381			Code:   res.StatusCode,
19382			Header: res.Header,
19383		}
19384	}
19385	if err != nil {
19386		return nil, err
19387	}
19388	defer googleapi.CloseBody(res)
19389	if err := googleapi.CheckResponse(res); err != nil {
19390		return nil, err
19391	}
19392	ret := &ListSitesResponse{
19393		ServerResponse: googleapi.ServerResponse{
19394			Header:         res.Header,
19395			HTTPStatusCode: res.StatusCode,
19396		},
19397	}
19398	target := &ret
19399	if err := gensupport.DecodeResponse(target, res); err != nil {
19400		return nil, err
19401	}
19402	return ret, nil
19403	// {
19404	//   "description": "Lists sites in a channel.",
19405	//   "flatPath": "v1/advertisers/{advertisersId}/channels/{channelsId}/sites",
19406	//   "httpMethod": "GET",
19407	//   "id": "displayvideo.advertisers.channels.sites.list",
19408	//   "parameterOrder": [
19409	//     "advertiserId",
19410	//     "channelId"
19411	//   ],
19412	//   "parameters": {
19413	//     "advertiserId": {
19414	//       "description": "The ID of the advertiser that owns the parent channel.",
19415	//       "format": "int64",
19416	//       "location": "path",
19417	//       "pattern": "^[^/]+$",
19418	//       "required": true,
19419	//       "type": "string"
19420	//     },
19421	//     "channelId": {
19422	//       "description": "Required. The ID of the parent channel to which the requested sites belong.",
19423	//       "format": "int64",
19424	//       "location": "path",
19425	//       "pattern": "^[^/]+$",
19426	//       "required": true,
19427	//       "type": "string"
19428	//     },
19429	//     "filter": {
19430	//       "description": "Allows filtering by site fields. Supported syntax: * Filter expressions for site currently can only contain at most one * restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * Supported fields: - `urlOrAppId` Examples: * All sites for which the URL or app ID contains \"google\": `urlOrAppId : \"google\"`",
19431	//       "location": "query",
19432	//       "type": "string"
19433	//     },
19434	//     "orderBy": {
19435	//       "description": "Field by which to sort the list. Acceptable values are: * `urlOrAppId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `urlOrAppId desc`.",
19436	//       "location": "query",
19437	//       "type": "string"
19438	//     },
19439	//     "pageSize": {
19440	//       "description": "Requested page size. Must be between `1` and `10000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
19441	//       "format": "int32",
19442	//       "location": "query",
19443	//       "type": "integer"
19444	//     },
19445	//     "pageToken": {
19446	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListSites` method. If not specified, the first page of results will be returned.",
19447	//       "location": "query",
19448	//       "type": "string"
19449	//     },
19450	//     "partnerId": {
19451	//       "description": "The ID of the partner that owns the parent channel.",
19452	//       "format": "int64",
19453	//       "location": "query",
19454	//       "type": "string"
19455	//     }
19456	//   },
19457	//   "path": "v1/advertisers/{+advertiserId}/channels/{+channelId}/sites",
19458	//   "response": {
19459	//     "$ref": "ListSitesResponse"
19460	//   },
19461	//   "scopes": [
19462	//     "https://www.googleapis.com/auth/display-video"
19463	//   ]
19464	// }
19465
19466}
19467
19468// Pages invokes f for each page of results.
19469// A non-nil error returned from f will halt the iteration.
19470// The provided context supersedes any context provided to the Context method.
19471func (c *AdvertisersChannelsSitesListCall) Pages(ctx context.Context, f func(*ListSitesResponse) error) error {
19472	c.ctx_ = ctx
19473	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
19474	for {
19475		x, err := c.Do()
19476		if err != nil {
19477			return err
19478		}
19479		if err := f(x); err != nil {
19480			return err
19481		}
19482		if x.NextPageToken == "" {
19483			return nil
19484		}
19485		c.PageToken(x.NextPageToken)
19486	}
19487}
19488
19489// method id "displayvideo.advertisers.channels.sites.replace":
19490
19491type AdvertisersChannelsSitesReplaceCall struct {
19492	s                   *Service
19493	advertiserId        int64
19494	channelId           int64
19495	replacesitesrequest *ReplaceSitesRequest
19496	urlParams_          gensupport.URLParams
19497	ctx_                context.Context
19498	header_             http.Header
19499}
19500
19501// Replace: Replaces all of the sites under a single channel. The
19502// operation will replace the sites under a channel with the sites
19503// provided in ReplaceSitesRequest.new_sites.
19504//
19505// - advertiserId: The ID of the advertiser that owns the parent
19506//   channel.
19507// - channelId: The ID of the parent channel whose sites will be
19508//   replaced.
19509func (r *AdvertisersChannelsSitesService) Replace(advertiserId int64, channelId int64, replacesitesrequest *ReplaceSitesRequest) *AdvertisersChannelsSitesReplaceCall {
19510	c := &AdvertisersChannelsSitesReplaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19511	c.advertiserId = advertiserId
19512	c.channelId = channelId
19513	c.replacesitesrequest = replacesitesrequest
19514	return c
19515}
19516
19517// Fields allows partial responses to be retrieved. See
19518// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19519// for more information.
19520func (c *AdvertisersChannelsSitesReplaceCall) Fields(s ...googleapi.Field) *AdvertisersChannelsSitesReplaceCall {
19521	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19522	return c
19523}
19524
19525// Context sets the context to be used in this call's Do method. Any
19526// pending HTTP request will be aborted if the provided context is
19527// canceled.
19528func (c *AdvertisersChannelsSitesReplaceCall) Context(ctx context.Context) *AdvertisersChannelsSitesReplaceCall {
19529	c.ctx_ = ctx
19530	return c
19531}
19532
19533// Header returns an http.Header that can be modified by the caller to
19534// add HTTP headers to the request.
19535func (c *AdvertisersChannelsSitesReplaceCall) Header() http.Header {
19536	if c.header_ == nil {
19537		c.header_ = make(http.Header)
19538	}
19539	return c.header_
19540}
19541
19542func (c *AdvertisersChannelsSitesReplaceCall) doRequest(alt string) (*http.Response, error) {
19543	reqHeaders := make(http.Header)
19544	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
19545	for k, v := range c.header_ {
19546		reqHeaders[k] = v
19547	}
19548	reqHeaders.Set("User-Agent", c.s.userAgent())
19549	var body io.Reader = nil
19550	body, err := googleapi.WithoutDataWrapper.JSONReader(c.replacesitesrequest)
19551	if err != nil {
19552		return nil, err
19553	}
19554	reqHeaders.Set("Content-Type", "application/json")
19555	c.urlParams_.Set("alt", alt)
19556	c.urlParams_.Set("prettyPrint", "false")
19557	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/channels/{+channelId}/sites:replace")
19558	urls += "?" + c.urlParams_.Encode()
19559	req, err := http.NewRequest("POST", urls, body)
19560	if err != nil {
19561		return nil, err
19562	}
19563	req.Header = reqHeaders
19564	googleapi.Expand(req.URL, map[string]string{
19565		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
19566		"channelId":    strconv.FormatInt(c.channelId, 10),
19567	})
19568	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19569}
19570
19571// Do executes the "displayvideo.advertisers.channels.sites.replace" call.
19572// Exactly one of *ReplaceSitesResponse or error will be non-nil. Any
19573// non-2xx status code is an error. Response headers are in either
19574// *ReplaceSitesResponse.ServerResponse.Header or (if a response was
19575// returned at all) in error.(*googleapi.Error).Header. Use
19576// googleapi.IsNotModified to check whether the returned error was
19577// because http.StatusNotModified was returned.
19578func (c *AdvertisersChannelsSitesReplaceCall) Do(opts ...googleapi.CallOption) (*ReplaceSitesResponse, error) {
19579	gensupport.SetOptions(c.urlParams_, opts...)
19580	res, err := c.doRequest("json")
19581	if res != nil && res.StatusCode == http.StatusNotModified {
19582		if res.Body != nil {
19583			res.Body.Close()
19584		}
19585		return nil, &googleapi.Error{
19586			Code:   res.StatusCode,
19587			Header: res.Header,
19588		}
19589	}
19590	if err != nil {
19591		return nil, err
19592	}
19593	defer googleapi.CloseBody(res)
19594	if err := googleapi.CheckResponse(res); err != nil {
19595		return nil, err
19596	}
19597	ret := &ReplaceSitesResponse{
19598		ServerResponse: googleapi.ServerResponse{
19599			Header:         res.Header,
19600			HTTPStatusCode: res.StatusCode,
19601		},
19602	}
19603	target := &ret
19604	if err := gensupport.DecodeResponse(target, res); err != nil {
19605		return nil, err
19606	}
19607	return ret, nil
19608	// {
19609	//   "description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites.",
19610	//   "flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites:replace",
19611	//   "httpMethod": "POST",
19612	//   "id": "displayvideo.advertisers.channels.sites.replace",
19613	//   "parameterOrder": [
19614	//     "advertiserId",
19615	//     "channelId"
19616	//   ],
19617	//   "parameters": {
19618	//     "advertiserId": {
19619	//       "description": "The ID of the advertiser that owns the parent channel.",
19620	//       "format": "int64",
19621	//       "location": "path",
19622	//       "required": true,
19623	//       "type": "string"
19624	//     },
19625	//     "channelId": {
19626	//       "description": "Required. The ID of the parent channel whose sites will be replaced.",
19627	//       "format": "int64",
19628	//       "location": "path",
19629	//       "pattern": "^[^/]+$",
19630	//       "required": true,
19631	//       "type": "string"
19632	//     }
19633	//   },
19634	//   "path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites:replace",
19635	//   "request": {
19636	//     "$ref": "ReplaceSitesRequest"
19637	//   },
19638	//   "response": {
19639	//     "$ref": "ReplaceSitesResponse"
19640	//   },
19641	//   "scopes": [
19642	//     "https://www.googleapis.com/auth/display-video"
19643	//   ]
19644	// }
19645
19646}
19647
19648// method id "displayvideo.advertisers.creatives.create":
19649
19650type AdvertisersCreativesCreateCall struct {
19651	s            *Service
19652	advertiserId int64
19653	creative     *Creative
19654	urlParams_   gensupport.URLParams
19655	ctx_         context.Context
19656	header_      http.Header
19657}
19658
19659// Create: Creates a new creative. Returns the newly created creative if
19660// successful.
19661//
19662// - advertiserId: Output only. The unique ID of the advertiser the
19663//   creative belongs to.
19664func (r *AdvertisersCreativesService) Create(advertiserId int64, creative *Creative) *AdvertisersCreativesCreateCall {
19665	c := &AdvertisersCreativesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19666	c.advertiserId = advertiserId
19667	c.creative = creative
19668	return c
19669}
19670
19671// Fields allows partial responses to be retrieved. See
19672// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19673// for more information.
19674func (c *AdvertisersCreativesCreateCall) Fields(s ...googleapi.Field) *AdvertisersCreativesCreateCall {
19675	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19676	return c
19677}
19678
19679// Context sets the context to be used in this call's Do method. Any
19680// pending HTTP request will be aborted if the provided context is
19681// canceled.
19682func (c *AdvertisersCreativesCreateCall) Context(ctx context.Context) *AdvertisersCreativesCreateCall {
19683	c.ctx_ = ctx
19684	return c
19685}
19686
19687// Header returns an http.Header that can be modified by the caller to
19688// add HTTP headers to the request.
19689func (c *AdvertisersCreativesCreateCall) Header() http.Header {
19690	if c.header_ == nil {
19691		c.header_ = make(http.Header)
19692	}
19693	return c.header_
19694}
19695
19696func (c *AdvertisersCreativesCreateCall) doRequest(alt string) (*http.Response, error) {
19697	reqHeaders := make(http.Header)
19698	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
19699	for k, v := range c.header_ {
19700		reqHeaders[k] = v
19701	}
19702	reqHeaders.Set("User-Agent", c.s.userAgent())
19703	var body io.Reader = nil
19704	body, err := googleapi.WithoutDataWrapper.JSONReader(c.creative)
19705	if err != nil {
19706		return nil, err
19707	}
19708	reqHeaders.Set("Content-Type", "application/json")
19709	c.urlParams_.Set("alt", alt)
19710	c.urlParams_.Set("prettyPrint", "false")
19711	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/creatives")
19712	urls += "?" + c.urlParams_.Encode()
19713	req, err := http.NewRequest("POST", urls, body)
19714	if err != nil {
19715		return nil, err
19716	}
19717	req.Header = reqHeaders
19718	googleapi.Expand(req.URL, map[string]string{
19719		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
19720	})
19721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19722}
19723
19724// Do executes the "displayvideo.advertisers.creatives.create" call.
19725// Exactly one of *Creative or error will be non-nil. Any non-2xx status
19726// code is an error. Response headers are in either
19727// *Creative.ServerResponse.Header or (if a response was returned at
19728// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
19729// to check whether the returned error was because
19730// http.StatusNotModified was returned.
19731func (c *AdvertisersCreativesCreateCall) Do(opts ...googleapi.CallOption) (*Creative, error) {
19732	gensupport.SetOptions(c.urlParams_, opts...)
19733	res, err := c.doRequest("json")
19734	if res != nil && res.StatusCode == http.StatusNotModified {
19735		if res.Body != nil {
19736			res.Body.Close()
19737		}
19738		return nil, &googleapi.Error{
19739			Code:   res.StatusCode,
19740			Header: res.Header,
19741		}
19742	}
19743	if err != nil {
19744		return nil, err
19745	}
19746	defer googleapi.CloseBody(res)
19747	if err := googleapi.CheckResponse(res); err != nil {
19748		return nil, err
19749	}
19750	ret := &Creative{
19751		ServerResponse: googleapi.ServerResponse{
19752			Header:         res.Header,
19753			HTTPStatusCode: res.StatusCode,
19754		},
19755	}
19756	target := &ret
19757	if err := gensupport.DecodeResponse(target, res); err != nil {
19758		return nil, err
19759	}
19760	return ret, nil
19761	// {
19762	//   "description": "Creates a new creative. Returns the newly created creative if successful.",
19763	//   "flatPath": "v1/advertisers/{advertisersId}/creatives",
19764	//   "httpMethod": "POST",
19765	//   "id": "displayvideo.advertisers.creatives.create",
19766	//   "parameterOrder": [
19767	//     "advertiserId"
19768	//   ],
19769	//   "parameters": {
19770	//     "advertiserId": {
19771	//       "description": "Output only. The unique ID of the advertiser the creative belongs to.",
19772	//       "format": "int64",
19773	//       "location": "path",
19774	//       "pattern": "^[^/]+$",
19775	//       "required": true,
19776	//       "type": "string"
19777	//     }
19778	//   },
19779	//   "path": "v1/advertisers/{+advertiserId}/creatives",
19780	//   "request": {
19781	//     "$ref": "Creative"
19782	//   },
19783	//   "response": {
19784	//     "$ref": "Creative"
19785	//   },
19786	//   "scopes": [
19787	//     "https://www.googleapis.com/auth/display-video"
19788	//   ]
19789	// }
19790
19791}
19792
19793// method id "displayvideo.advertisers.creatives.delete":
19794
19795type AdvertisersCreativesDeleteCall struct {
19796	s            *Service
19797	advertiserId int64
19798	creativeId   int64
19799	urlParams_   gensupport.URLParams
19800	ctx_         context.Context
19801	header_      http.Header
19802}
19803
19804// Delete: Deletes a creative. Returns error code `NOT_FOUND` if the
19805// creative does not exist. The creative should be archived first, i.e.
19806// set entity_status to `ENTITY_STATUS_ARCHIVED`, before it can be
19807// deleted.
19808//
19809// - advertiserId: The ID of the advertiser this creative belongs to.
19810// - creativeId: The ID of the creative to be deleted.
19811func (r *AdvertisersCreativesService) Delete(advertiserId int64, creativeId int64) *AdvertisersCreativesDeleteCall {
19812	c := &AdvertisersCreativesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19813	c.advertiserId = advertiserId
19814	c.creativeId = creativeId
19815	return c
19816}
19817
19818// Fields allows partial responses to be retrieved. See
19819// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19820// for more information.
19821func (c *AdvertisersCreativesDeleteCall) Fields(s ...googleapi.Field) *AdvertisersCreativesDeleteCall {
19822	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19823	return c
19824}
19825
19826// Context sets the context to be used in this call's Do method. Any
19827// pending HTTP request will be aborted if the provided context is
19828// canceled.
19829func (c *AdvertisersCreativesDeleteCall) Context(ctx context.Context) *AdvertisersCreativesDeleteCall {
19830	c.ctx_ = ctx
19831	return c
19832}
19833
19834// Header returns an http.Header that can be modified by the caller to
19835// add HTTP headers to the request.
19836func (c *AdvertisersCreativesDeleteCall) Header() http.Header {
19837	if c.header_ == nil {
19838		c.header_ = make(http.Header)
19839	}
19840	return c.header_
19841}
19842
19843func (c *AdvertisersCreativesDeleteCall) doRequest(alt string) (*http.Response, error) {
19844	reqHeaders := make(http.Header)
19845	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
19846	for k, v := range c.header_ {
19847		reqHeaders[k] = v
19848	}
19849	reqHeaders.Set("User-Agent", c.s.userAgent())
19850	var body io.Reader = nil
19851	c.urlParams_.Set("alt", alt)
19852	c.urlParams_.Set("prettyPrint", "false")
19853	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/creatives/{+creativeId}")
19854	urls += "?" + c.urlParams_.Encode()
19855	req, err := http.NewRequest("DELETE", urls, body)
19856	if err != nil {
19857		return nil, err
19858	}
19859	req.Header = reqHeaders
19860	googleapi.Expand(req.URL, map[string]string{
19861		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
19862		"creativeId":   strconv.FormatInt(c.creativeId, 10),
19863	})
19864	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19865}
19866
19867// Do executes the "displayvideo.advertisers.creatives.delete" call.
19868// Exactly one of *Empty or error will be non-nil. Any non-2xx status
19869// code is an error. Response headers are in either
19870// *Empty.ServerResponse.Header or (if a response was returned at all)
19871// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
19872// check whether the returned error was because http.StatusNotModified
19873// was returned.
19874func (c *AdvertisersCreativesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
19875	gensupport.SetOptions(c.urlParams_, opts...)
19876	res, err := c.doRequest("json")
19877	if res != nil && res.StatusCode == http.StatusNotModified {
19878		if res.Body != nil {
19879			res.Body.Close()
19880		}
19881		return nil, &googleapi.Error{
19882			Code:   res.StatusCode,
19883			Header: res.Header,
19884		}
19885	}
19886	if err != nil {
19887		return nil, err
19888	}
19889	defer googleapi.CloseBody(res)
19890	if err := googleapi.CheckResponse(res); err != nil {
19891		return nil, err
19892	}
19893	ret := &Empty{
19894		ServerResponse: googleapi.ServerResponse{
19895			Header:         res.Header,
19896			HTTPStatusCode: res.StatusCode,
19897		},
19898	}
19899	target := &ret
19900	if err := gensupport.DecodeResponse(target, res); err != nil {
19901		return nil, err
19902	}
19903	return ret, nil
19904	// {
19905	//   "description": "Deletes a creative. Returns error code `NOT_FOUND` if the creative does not exist. The creative should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, before it can be deleted.",
19906	//   "flatPath": "v1/advertisers/{advertisersId}/creatives/{creativesId}",
19907	//   "httpMethod": "DELETE",
19908	//   "id": "displayvideo.advertisers.creatives.delete",
19909	//   "parameterOrder": [
19910	//     "advertiserId",
19911	//     "creativeId"
19912	//   ],
19913	//   "parameters": {
19914	//     "advertiserId": {
19915	//       "description": "The ID of the advertiser this creative belongs to.",
19916	//       "format": "int64",
19917	//       "location": "path",
19918	//       "pattern": "^[^/]+$",
19919	//       "required": true,
19920	//       "type": "string"
19921	//     },
19922	//     "creativeId": {
19923	//       "description": "The ID of the creative to be deleted.",
19924	//       "format": "int64",
19925	//       "location": "path",
19926	//       "pattern": "^[^/]+$",
19927	//       "required": true,
19928	//       "type": "string"
19929	//     }
19930	//   },
19931	//   "path": "v1/advertisers/{+advertiserId}/creatives/{+creativeId}",
19932	//   "response": {
19933	//     "$ref": "Empty"
19934	//   },
19935	//   "scopes": [
19936	//     "https://www.googleapis.com/auth/display-video"
19937	//   ]
19938	// }
19939
19940}
19941
19942// method id "displayvideo.advertisers.creatives.get":
19943
19944type AdvertisersCreativesGetCall struct {
19945	s            *Service
19946	advertiserId int64
19947	creativeId   int64
19948	urlParams_   gensupport.URLParams
19949	ifNoneMatch_ string
19950	ctx_         context.Context
19951	header_      http.Header
19952}
19953
19954// Get: Gets a creative.
19955//
19956// - advertiserId: The ID of the advertiser this creative belongs to.
19957// - creativeId: The ID of the creative to fetch.
19958func (r *AdvertisersCreativesService) Get(advertiserId int64, creativeId int64) *AdvertisersCreativesGetCall {
19959	c := &AdvertisersCreativesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19960	c.advertiserId = advertiserId
19961	c.creativeId = creativeId
19962	return c
19963}
19964
19965// Fields allows partial responses to be retrieved. See
19966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19967// for more information.
19968func (c *AdvertisersCreativesGetCall) Fields(s ...googleapi.Field) *AdvertisersCreativesGetCall {
19969	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19970	return c
19971}
19972
19973// IfNoneMatch sets the optional parameter which makes the operation
19974// fail if the object's ETag matches the given value. This is useful for
19975// getting updates only after the object has changed since the last
19976// request. Use googleapi.IsNotModified to check whether the response
19977// error from Do is the result of In-None-Match.
19978func (c *AdvertisersCreativesGetCall) IfNoneMatch(entityTag string) *AdvertisersCreativesGetCall {
19979	c.ifNoneMatch_ = entityTag
19980	return c
19981}
19982
19983// Context sets the context to be used in this call's Do method. Any
19984// pending HTTP request will be aborted if the provided context is
19985// canceled.
19986func (c *AdvertisersCreativesGetCall) Context(ctx context.Context) *AdvertisersCreativesGetCall {
19987	c.ctx_ = ctx
19988	return c
19989}
19990
19991// Header returns an http.Header that can be modified by the caller to
19992// add HTTP headers to the request.
19993func (c *AdvertisersCreativesGetCall) Header() http.Header {
19994	if c.header_ == nil {
19995		c.header_ = make(http.Header)
19996	}
19997	return c.header_
19998}
19999
20000func (c *AdvertisersCreativesGetCall) doRequest(alt string) (*http.Response, error) {
20001	reqHeaders := make(http.Header)
20002	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
20003	for k, v := range c.header_ {
20004		reqHeaders[k] = v
20005	}
20006	reqHeaders.Set("User-Agent", c.s.userAgent())
20007	if c.ifNoneMatch_ != "" {
20008		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
20009	}
20010	var body io.Reader = nil
20011	c.urlParams_.Set("alt", alt)
20012	c.urlParams_.Set("prettyPrint", "false")
20013	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/creatives/{+creativeId}")
20014	urls += "?" + c.urlParams_.Encode()
20015	req, err := http.NewRequest("GET", urls, body)
20016	if err != nil {
20017		return nil, err
20018	}
20019	req.Header = reqHeaders
20020	googleapi.Expand(req.URL, map[string]string{
20021		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
20022		"creativeId":   strconv.FormatInt(c.creativeId, 10),
20023	})
20024	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20025}
20026
20027// Do executes the "displayvideo.advertisers.creatives.get" call.
20028// Exactly one of *Creative or error will be non-nil. Any non-2xx status
20029// code is an error. Response headers are in either
20030// *Creative.ServerResponse.Header or (if a response was returned at
20031// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
20032// to check whether the returned error was because
20033// http.StatusNotModified was returned.
20034func (c *AdvertisersCreativesGetCall) Do(opts ...googleapi.CallOption) (*Creative, error) {
20035	gensupport.SetOptions(c.urlParams_, opts...)
20036	res, err := c.doRequest("json")
20037	if res != nil && res.StatusCode == http.StatusNotModified {
20038		if res.Body != nil {
20039			res.Body.Close()
20040		}
20041		return nil, &googleapi.Error{
20042			Code:   res.StatusCode,
20043			Header: res.Header,
20044		}
20045	}
20046	if err != nil {
20047		return nil, err
20048	}
20049	defer googleapi.CloseBody(res)
20050	if err := googleapi.CheckResponse(res); err != nil {
20051		return nil, err
20052	}
20053	ret := &Creative{
20054		ServerResponse: googleapi.ServerResponse{
20055			Header:         res.Header,
20056			HTTPStatusCode: res.StatusCode,
20057		},
20058	}
20059	target := &ret
20060	if err := gensupport.DecodeResponse(target, res); err != nil {
20061		return nil, err
20062	}
20063	return ret, nil
20064	// {
20065	//   "description": "Gets a creative.",
20066	//   "flatPath": "v1/advertisers/{advertisersId}/creatives/{creativesId}",
20067	//   "httpMethod": "GET",
20068	//   "id": "displayvideo.advertisers.creatives.get",
20069	//   "parameterOrder": [
20070	//     "advertiserId",
20071	//     "creativeId"
20072	//   ],
20073	//   "parameters": {
20074	//     "advertiserId": {
20075	//       "description": "Required. The ID of the advertiser this creative belongs to.",
20076	//       "format": "int64",
20077	//       "location": "path",
20078	//       "pattern": "^[^/]+$",
20079	//       "required": true,
20080	//       "type": "string"
20081	//     },
20082	//     "creativeId": {
20083	//       "description": "Required. The ID of the creative to fetch.",
20084	//       "format": "int64",
20085	//       "location": "path",
20086	//       "pattern": "^[^/]+$",
20087	//       "required": true,
20088	//       "type": "string"
20089	//     }
20090	//   },
20091	//   "path": "v1/advertisers/{+advertiserId}/creatives/{+creativeId}",
20092	//   "response": {
20093	//     "$ref": "Creative"
20094	//   },
20095	//   "scopes": [
20096	//     "https://www.googleapis.com/auth/display-video"
20097	//   ]
20098	// }
20099
20100}
20101
20102// method id "displayvideo.advertisers.creatives.list":
20103
20104type AdvertisersCreativesListCall struct {
20105	s            *Service
20106	advertiserId int64
20107	urlParams_   gensupport.URLParams
20108	ifNoneMatch_ string
20109	ctx_         context.Context
20110	header_      http.Header
20111}
20112
20113// List: Lists creatives in an advertiser. The order is defined by the
20114// order_by parameter. If a filter by entity_status is not specified,
20115// creatives with `ENTITY_STATUS_ARCHIVED` will not be included in the
20116// results.
20117//
20118// - advertiserId: The ID of the advertiser to list creatives for.
20119func (r *AdvertisersCreativesService) List(advertiserId int64) *AdvertisersCreativesListCall {
20120	c := &AdvertisersCreativesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20121	c.advertiserId = advertiserId
20122	return c
20123}
20124
20125// Filter sets the optional parameter "filter": Allows filtering by
20126// creative properties. Supported syntax: * Filter expressions are made
20127// up of one or more restrictions. * Restriction for the same field must
20128// be combined by `OR`. * Restriction for different fields must be
20129// combined by `AND`. * Between `(` and `)` there can only be
20130// restrictions combined by `OR` for the same field. * A restriction has
20131// the form of `{field} {operator} {value}`. * The operator must be
20132// `EQUALS (=)` for the following fields: - `entityStatus` -
20133// `creativeType`. - `dimensions` - `minDuration` - `maxDuration` -
20134// `approvalStatus` - `exchangeReviewStatus` - `dynamic` - `creativeId`
20135// * The operator must be `HAS (:)` for the following fields: -
20136// `lineItemIds` * For `entityStatus`, `minDuration`, `maxDuration`, and
20137// `dynamic` there may be at most one restriction. * For `dimensions`,
20138// the value is in the form of "{width}x{height}". * For
20139// `exchangeReviewStatus`, the value is in the form of
20140// `{exchange}-{reviewStatus}`. * For `minDuration` and `maxDuration`,
20141// the value is in the form of "{duration}s". Only seconds are
20142// supported with millisecond granularity. * There may be multiple
20143// `lineItemIds` restrictions in order to search against multiple
20144// possible line item IDs. * There may be multiple `creativeId`
20145// restrictions in order to search against multiple possible creative
20146// IDs. Examples: * All native creatives:
20147// `creativeType="CREATIVE_TYPE_NATIVE" * All active creatives with
20148// 300x400 or 50x100 dimensions: `entityStatus="ENTITY_STATUS_ACTIVE"
20149// AND (dimensions="300x400" OR dimensions="50x100")` * All dynamic
20150// creatives that are approved by AdX or AppNexus, with a minimum
20151// duration of 5 seconds and 200ms. `dynamic="true" AND
20152// minDuration="5.2s" AND
20153// (exchangeReviewStatus="EXCHANGE_GOOGLE_AD_MANAGER-REVIEW_STATUS_APPROV
20154// ED" OR
20155// exchangeReviewStatus="EXCHANGE_APPNEXUS-REVIEW_STATUS_APPROVED")` *
20156// All video creatives that are associated with line item ID 1 or 2:
20157// `creativeType="CREATIVE_TYPE_VIDEO" AND (lineItemIds:1 OR
20158// lineItemIds:2)` * Find creatives by multiple creative IDs:
20159// `creativeId=1 OR creativeId=2` The length of this field should be no
20160// more than 500 characters.
20161func (c *AdvertisersCreativesListCall) Filter(filter string) *AdvertisersCreativesListCall {
20162	c.urlParams_.Set("filter", filter)
20163	return c
20164}
20165
20166// OrderBy sets the optional parameter "orderBy": Field by which to sort
20167// the list. Acceptable values are: * `creativeId` (default) *
20168// `createTime` * `mediaDuration` * `dimensions` (sorts by width first,
20169// then by height) The default sorting order is ascending. To specify
20170// descending order for a field, a suffix "desc" should be added to the
20171// field name. Example: `createTime desc`.
20172func (c *AdvertisersCreativesListCall) OrderBy(orderBy string) *AdvertisersCreativesListCall {
20173	c.urlParams_.Set("orderBy", orderBy)
20174	return c
20175}
20176
20177// PageSize sets the optional parameter "pageSize": Requested page size.
20178// Must be between `1` and `100`. If unspecified will default to `100`.
20179// Returns error code `INVALID_ARGUMENT` if an invalid value is
20180// specified.
20181func (c *AdvertisersCreativesListCall) PageSize(pageSize int64) *AdvertisersCreativesListCall {
20182	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
20183	return c
20184}
20185
20186// PageToken sets the optional parameter "pageToken": A token
20187// identifying a page of results the server should return. Typically,
20188// this is the value of next_page_token returned from the previous call
20189// to `ListCreatives` method. If not specified, the first page of
20190// results will be returned.
20191func (c *AdvertisersCreativesListCall) PageToken(pageToken string) *AdvertisersCreativesListCall {
20192	c.urlParams_.Set("pageToken", pageToken)
20193	return c
20194}
20195
20196// Fields allows partial responses to be retrieved. See
20197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20198// for more information.
20199func (c *AdvertisersCreativesListCall) Fields(s ...googleapi.Field) *AdvertisersCreativesListCall {
20200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20201	return c
20202}
20203
20204// IfNoneMatch sets the optional parameter which makes the operation
20205// fail if the object's ETag matches the given value. This is useful for
20206// getting updates only after the object has changed since the last
20207// request. Use googleapi.IsNotModified to check whether the response
20208// error from Do is the result of In-None-Match.
20209func (c *AdvertisersCreativesListCall) IfNoneMatch(entityTag string) *AdvertisersCreativesListCall {
20210	c.ifNoneMatch_ = entityTag
20211	return c
20212}
20213
20214// Context sets the context to be used in this call's Do method. Any
20215// pending HTTP request will be aborted if the provided context is
20216// canceled.
20217func (c *AdvertisersCreativesListCall) Context(ctx context.Context) *AdvertisersCreativesListCall {
20218	c.ctx_ = ctx
20219	return c
20220}
20221
20222// Header returns an http.Header that can be modified by the caller to
20223// add HTTP headers to the request.
20224func (c *AdvertisersCreativesListCall) Header() http.Header {
20225	if c.header_ == nil {
20226		c.header_ = make(http.Header)
20227	}
20228	return c.header_
20229}
20230
20231func (c *AdvertisersCreativesListCall) doRequest(alt string) (*http.Response, error) {
20232	reqHeaders := make(http.Header)
20233	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
20234	for k, v := range c.header_ {
20235		reqHeaders[k] = v
20236	}
20237	reqHeaders.Set("User-Agent", c.s.userAgent())
20238	if c.ifNoneMatch_ != "" {
20239		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
20240	}
20241	var body io.Reader = nil
20242	c.urlParams_.Set("alt", alt)
20243	c.urlParams_.Set("prettyPrint", "false")
20244	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/creatives")
20245	urls += "?" + c.urlParams_.Encode()
20246	req, err := http.NewRequest("GET", urls, body)
20247	if err != nil {
20248		return nil, err
20249	}
20250	req.Header = reqHeaders
20251	googleapi.Expand(req.URL, map[string]string{
20252		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
20253	})
20254	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20255}
20256
20257// Do executes the "displayvideo.advertisers.creatives.list" call.
20258// Exactly one of *ListCreativesResponse or error will be non-nil. Any
20259// non-2xx status code is an error. Response headers are in either
20260// *ListCreativesResponse.ServerResponse.Header or (if a response was
20261// returned at all) in error.(*googleapi.Error).Header. Use
20262// googleapi.IsNotModified to check whether the returned error was
20263// because http.StatusNotModified was returned.
20264func (c *AdvertisersCreativesListCall) Do(opts ...googleapi.CallOption) (*ListCreativesResponse, error) {
20265	gensupport.SetOptions(c.urlParams_, opts...)
20266	res, err := c.doRequest("json")
20267	if res != nil && res.StatusCode == http.StatusNotModified {
20268		if res.Body != nil {
20269			res.Body.Close()
20270		}
20271		return nil, &googleapi.Error{
20272			Code:   res.StatusCode,
20273			Header: res.Header,
20274		}
20275	}
20276	if err != nil {
20277		return nil, err
20278	}
20279	defer googleapi.CloseBody(res)
20280	if err := googleapi.CheckResponse(res); err != nil {
20281		return nil, err
20282	}
20283	ret := &ListCreativesResponse{
20284		ServerResponse: googleapi.ServerResponse{
20285			Header:         res.Header,
20286			HTTPStatusCode: res.StatusCode,
20287		},
20288	}
20289	target := &ret
20290	if err := gensupport.DecodeResponse(target, res); err != nil {
20291		return nil, err
20292	}
20293	return ret, nil
20294	// {
20295	//   "description": "Lists creatives in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, creatives with `ENTITY_STATUS_ARCHIVED` will not be included in the results.",
20296	//   "flatPath": "v1/advertisers/{advertisersId}/creatives",
20297	//   "httpMethod": "GET",
20298	//   "id": "displayvideo.advertisers.creatives.list",
20299	//   "parameterOrder": [
20300	//     "advertiserId"
20301	//   ],
20302	//   "parameters": {
20303	//     "advertiserId": {
20304	//       "description": "Required. The ID of the advertiser to list creatives for.",
20305	//       "format": "int64",
20306	//       "location": "path",
20307	//       "pattern": "^[^/]+$",
20308	//       "required": true,
20309	//       "type": "string"
20310	//     },
20311	//     "filter": {
20312	//       "description": "Allows filtering by creative properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restriction for the same field must be combined by `OR`. * Restriction for different fields must be combined by `AND`. * Between `(` and `)` there can only be restrictions combined by `OR` for the same field. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)` for the following fields: - `entityStatus` - `creativeType`. - `dimensions` - `minDuration` - `maxDuration` - `approvalStatus` - `exchangeReviewStatus` - `dynamic` - `creativeId` * The operator must be `HAS (:)` for the following fields: - `lineItemIds` * For `entityStatus`, `minDuration`, `maxDuration`, and `dynamic` there may be at most one restriction. * For `dimensions`, the value is in the form of `\"{width}x{height}\"`. * For `exchangeReviewStatus`, the value is in the form of `{exchange}-{reviewStatus}`. * For `minDuration` and `maxDuration`, the value is in the form of `\"{duration}s\"`. Only seconds are supported with millisecond granularity. * There may be multiple `lineItemIds` restrictions in order to search against multiple possible line item IDs. * There may be multiple `creativeId` restrictions in order to search against multiple possible creative IDs. Examples: * All native creatives: `creativeType=\"CREATIVE_TYPE_NATIVE\"` * All active creatives with 300x400 or 50x100 dimensions: `entityStatus=\"ENTITY_STATUS_ACTIVE\" AND (dimensions=\"300x400\" OR dimensions=\"50x100\")` * All dynamic creatives that are approved by AdX or AppNexus, with a minimum duration of 5 seconds and 200ms. `dynamic=\"true\" AND minDuration=\"5.2s\" AND (exchangeReviewStatus=\"EXCHANGE_GOOGLE_AD_MANAGER-REVIEW_STATUS_APPROVED\" OR exchangeReviewStatus=\"EXCHANGE_APPNEXUS-REVIEW_STATUS_APPROVED\")` * All video creatives that are associated with line item ID 1 or 2: `creativeType=\"CREATIVE_TYPE_VIDEO\" AND (lineItemIds:1 OR lineItemIds:2)` * Find creatives by multiple creative IDs: `creativeId=1 OR creativeId=2` The length of this field should be no more than 500 characters.",
20313	//       "location": "query",
20314	//       "type": "string"
20315	//     },
20316	//     "orderBy": {
20317	//       "description": "Field by which to sort the list. Acceptable values are: * `creativeId` (default) * `createTime` * `mediaDuration` * `dimensions` (sorts by width first, then by height) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `createTime desc`.",
20318	//       "location": "query",
20319	//       "type": "string"
20320	//     },
20321	//     "pageSize": {
20322	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
20323	//       "format": "int32",
20324	//       "location": "query",
20325	//       "type": "integer"
20326	//     },
20327	//     "pageToken": {
20328	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCreatives` method. If not specified, the first page of results will be returned.",
20329	//       "location": "query",
20330	//       "type": "string"
20331	//     }
20332	//   },
20333	//   "path": "v1/advertisers/{+advertiserId}/creatives",
20334	//   "response": {
20335	//     "$ref": "ListCreativesResponse"
20336	//   },
20337	//   "scopes": [
20338	//     "https://www.googleapis.com/auth/display-video"
20339	//   ]
20340	// }
20341
20342}
20343
20344// Pages invokes f for each page of results.
20345// A non-nil error returned from f will halt the iteration.
20346// The provided context supersedes any context provided to the Context method.
20347func (c *AdvertisersCreativesListCall) Pages(ctx context.Context, f func(*ListCreativesResponse) error) error {
20348	c.ctx_ = ctx
20349	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
20350	for {
20351		x, err := c.Do()
20352		if err != nil {
20353			return err
20354		}
20355		if err := f(x); err != nil {
20356			return err
20357		}
20358		if x.NextPageToken == "" {
20359			return nil
20360		}
20361		c.PageToken(x.NextPageToken)
20362	}
20363}
20364
20365// method id "displayvideo.advertisers.creatives.patch":
20366
20367type AdvertisersCreativesPatchCall struct {
20368	s            *Service
20369	advertiserId int64
20370	creativeId   int64
20371	creative     *Creative
20372	urlParams_   gensupport.URLParams
20373	ctx_         context.Context
20374	header_      http.Header
20375}
20376
20377// Patch: Updates an existing creative. Returns the updated creative if
20378// successful.
20379//
20380// - advertiserId: Output only. The unique ID of the advertiser the
20381//   creative belongs to.
20382// - creativeId: Output only. The unique ID of the creative. Assigned by
20383//   the system.
20384func (r *AdvertisersCreativesService) Patch(advertiserId int64, creativeId int64, creative *Creative) *AdvertisersCreativesPatchCall {
20385	c := &AdvertisersCreativesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20386	c.advertiserId = advertiserId
20387	c.creativeId = creativeId
20388	c.creative = creative
20389	return c
20390}
20391
20392// UpdateMask sets the optional parameter "updateMask": Required. The
20393// mask to control which fields to update.
20394func (c *AdvertisersCreativesPatchCall) UpdateMask(updateMask string) *AdvertisersCreativesPatchCall {
20395	c.urlParams_.Set("updateMask", updateMask)
20396	return c
20397}
20398
20399// Fields allows partial responses to be retrieved. See
20400// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20401// for more information.
20402func (c *AdvertisersCreativesPatchCall) Fields(s ...googleapi.Field) *AdvertisersCreativesPatchCall {
20403	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20404	return c
20405}
20406
20407// Context sets the context to be used in this call's Do method. Any
20408// pending HTTP request will be aborted if the provided context is
20409// canceled.
20410func (c *AdvertisersCreativesPatchCall) Context(ctx context.Context) *AdvertisersCreativesPatchCall {
20411	c.ctx_ = ctx
20412	return c
20413}
20414
20415// Header returns an http.Header that can be modified by the caller to
20416// add HTTP headers to the request.
20417func (c *AdvertisersCreativesPatchCall) Header() http.Header {
20418	if c.header_ == nil {
20419		c.header_ = make(http.Header)
20420	}
20421	return c.header_
20422}
20423
20424func (c *AdvertisersCreativesPatchCall) doRequest(alt string) (*http.Response, error) {
20425	reqHeaders := make(http.Header)
20426	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
20427	for k, v := range c.header_ {
20428		reqHeaders[k] = v
20429	}
20430	reqHeaders.Set("User-Agent", c.s.userAgent())
20431	var body io.Reader = nil
20432	body, err := googleapi.WithoutDataWrapper.JSONReader(c.creative)
20433	if err != nil {
20434		return nil, err
20435	}
20436	reqHeaders.Set("Content-Type", "application/json")
20437	c.urlParams_.Set("alt", alt)
20438	c.urlParams_.Set("prettyPrint", "false")
20439	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/creatives/{+creativeId}")
20440	urls += "?" + c.urlParams_.Encode()
20441	req, err := http.NewRequest("PATCH", urls, body)
20442	if err != nil {
20443		return nil, err
20444	}
20445	req.Header = reqHeaders
20446	googleapi.Expand(req.URL, map[string]string{
20447		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
20448		"creativeId":   strconv.FormatInt(c.creativeId, 10),
20449	})
20450	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20451}
20452
20453// Do executes the "displayvideo.advertisers.creatives.patch" call.
20454// Exactly one of *Creative or error will be non-nil. Any non-2xx status
20455// code is an error. Response headers are in either
20456// *Creative.ServerResponse.Header or (if a response was returned at
20457// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
20458// to check whether the returned error was because
20459// http.StatusNotModified was returned.
20460func (c *AdvertisersCreativesPatchCall) Do(opts ...googleapi.CallOption) (*Creative, error) {
20461	gensupport.SetOptions(c.urlParams_, opts...)
20462	res, err := c.doRequest("json")
20463	if res != nil && res.StatusCode == http.StatusNotModified {
20464		if res.Body != nil {
20465			res.Body.Close()
20466		}
20467		return nil, &googleapi.Error{
20468			Code:   res.StatusCode,
20469			Header: res.Header,
20470		}
20471	}
20472	if err != nil {
20473		return nil, err
20474	}
20475	defer googleapi.CloseBody(res)
20476	if err := googleapi.CheckResponse(res); err != nil {
20477		return nil, err
20478	}
20479	ret := &Creative{
20480		ServerResponse: googleapi.ServerResponse{
20481			Header:         res.Header,
20482			HTTPStatusCode: res.StatusCode,
20483		},
20484	}
20485	target := &ret
20486	if err := gensupport.DecodeResponse(target, res); err != nil {
20487		return nil, err
20488	}
20489	return ret, nil
20490	// {
20491	//   "description": "Updates an existing creative. Returns the updated creative if successful.",
20492	//   "flatPath": "v1/advertisers/{advertisersId}/creatives/{creativesId}",
20493	//   "httpMethod": "PATCH",
20494	//   "id": "displayvideo.advertisers.creatives.patch",
20495	//   "parameterOrder": [
20496	//     "advertiserId",
20497	//     "creativeId"
20498	//   ],
20499	//   "parameters": {
20500	//     "advertiserId": {
20501	//       "description": "Output only. The unique ID of the advertiser the creative belongs to.",
20502	//       "format": "int64",
20503	//       "location": "path",
20504	//       "pattern": "^[^/]+$",
20505	//       "required": true,
20506	//       "type": "string"
20507	//     },
20508	//     "creativeId": {
20509	//       "description": "Output only. The unique ID of the creative. Assigned by the system.",
20510	//       "format": "int64",
20511	//       "location": "path",
20512	//       "pattern": "^[^/]+$",
20513	//       "required": true,
20514	//       "type": "string"
20515	//     },
20516	//     "updateMask": {
20517	//       "description": "Required. The mask to control which fields to update.",
20518	//       "format": "google-fieldmask",
20519	//       "location": "query",
20520	//       "type": "string"
20521	//     }
20522	//   },
20523	//   "path": "v1/advertisers/{+advertiserId}/creatives/{+creativeId}",
20524	//   "request": {
20525	//     "$ref": "Creative"
20526	//   },
20527	//   "response": {
20528	//     "$ref": "Creative"
20529	//   },
20530	//   "scopes": [
20531	//     "https://www.googleapis.com/auth/display-video"
20532	//   ]
20533	// }
20534
20535}
20536
20537// method id "displayvideo.advertisers.insertionOrders.bulkListInsertionOrderAssignedTargetingOptions":
20538
20539type AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall struct {
20540	s                *Service
20541	advertiserId     int64
20542	insertionOrderId int64
20543	urlParams_       gensupport.URLParams
20544	ifNoneMatch_     string
20545	ctx_             context.Context
20546	header_          http.Header
20547}
20548
20549// BulkListInsertionOrderAssignedTargetingOptions: Lists assigned
20550// targeting options of an insertion order across targeting types.
20551//
20552// - advertiserId: The ID of the advertiser the insertion order belongs
20553//   to.
20554// - insertionOrderId: The ID of the insertion order to list assigned
20555//   targeting options for.
20556func (r *AdvertisersInsertionOrdersService) BulkListInsertionOrderAssignedTargetingOptions(advertiserId int64, insertionOrderId int64) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
20557	c := &AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20558	c.advertiserId = advertiserId
20559	c.insertionOrderId = insertionOrderId
20560	return c
20561}
20562
20563// Filter sets the optional parameter "filter": Allows filtering by
20564// assigned targeting option properties. Supported syntax: * Filter
20565// expressions are made up of one or more restrictions. * Restrictions
20566// can be combined by the logical operator `OR` on the same field. * A
20567// restriction has the form of `{field} {operator} {value}`. * The
20568// operator must be `EQUALS (=)`. * Supported fields: - `targetingType`
20569// - `inheritance` Examples: * AssignedTargetingOptions of targeting
20570// type TARGETING_TYPE_PROXIMITY_LOCATION_LIST or TARGETING_TYPE_CHANNEL
20571// `targetingType="TARGETING_TYPE_PROXIMITY_LOCATION_LIST" OR
20572// targetingType="TARGETING_TYPE_CHANNEL" * AssignedTargetingOptions
20573// with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER
20574// `inheritance="NOT_INHERITED" OR inheritance="INHERITED_FROM_PARTNER"
20575// The length of this field should be no more than 500 characters.
20576func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) Filter(filter string) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
20577	c.urlParams_.Set("filter", filter)
20578	return c
20579}
20580
20581// OrderBy sets the optional parameter "orderBy": Field by which to sort
20582// the list. Acceptable values are: * `targetingType` (default) The
20583// default sorting order is ascending. To specify descending order for a
20584// field, a suffix "desc" should be added to the field name. Example:
20585// `targetingType desc`.
20586func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) OrderBy(orderBy string) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
20587	c.urlParams_.Set("orderBy", orderBy)
20588	return c
20589}
20590
20591// PageSize sets the optional parameter "pageSize": Requested page size.
20592// The size must be an integer between `1` and `5000`. If unspecified,
20593// the default is `5000`. Returns error code `INVALID_ARGUMENT` if an
20594// invalid value is specified.
20595func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) PageSize(pageSize int64) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
20596	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
20597	return c
20598}
20599
20600// PageToken sets the optional parameter "pageToken": A token that lets
20601// the client fetch the next page of results. Typically, this is the
20602// value of next_page_token returned from the previous call to
20603// `BulkListInsertionOrderAssignedTargetingOptions` method. If not
20604// specified, the first page of results will be returned.
20605func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) PageToken(pageToken string) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
20606	c.urlParams_.Set("pageToken", pageToken)
20607	return c
20608}
20609
20610// Fields allows partial responses to be retrieved. See
20611// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20612// for more information.
20613func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
20614	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20615	return c
20616}
20617
20618// IfNoneMatch sets the optional parameter which makes the operation
20619// fail if the object's ETag matches the given value. This is useful for
20620// getting updates only after the object has changed since the last
20621// request. Use googleapi.IsNotModified to check whether the response
20622// error from Do is the result of In-None-Match.
20623func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) IfNoneMatch(entityTag string) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
20624	c.ifNoneMatch_ = entityTag
20625	return c
20626}
20627
20628// Context sets the context to be used in this call's Do method. Any
20629// pending HTTP request will be aborted if the provided context is
20630// canceled.
20631func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) Context(ctx context.Context) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
20632	c.ctx_ = ctx
20633	return c
20634}
20635
20636// Header returns an http.Header that can be modified by the caller to
20637// add HTTP headers to the request.
20638func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) Header() http.Header {
20639	if c.header_ == nil {
20640		c.header_ = make(http.Header)
20641	}
20642	return c.header_
20643}
20644
20645func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
20646	reqHeaders := make(http.Header)
20647	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
20648	for k, v := range c.header_ {
20649		reqHeaders[k] = v
20650	}
20651	reqHeaders.Set("User-Agent", c.s.userAgent())
20652	if c.ifNoneMatch_ != "" {
20653		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
20654	}
20655	var body io.Reader = nil
20656	c.urlParams_.Set("alt", alt)
20657	c.urlParams_.Set("prettyPrint", "false")
20658	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}:bulkListInsertionOrderAssignedTargetingOptions")
20659	urls += "?" + c.urlParams_.Encode()
20660	req, err := http.NewRequest("GET", urls, body)
20661	if err != nil {
20662		return nil, err
20663	}
20664	req.Header = reqHeaders
20665	googleapi.Expand(req.URL, map[string]string{
20666		"advertiserId":     strconv.FormatInt(c.advertiserId, 10),
20667		"insertionOrderId": strconv.FormatInt(c.insertionOrderId, 10),
20668	})
20669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20670}
20671
20672// Do executes the "displayvideo.advertisers.insertionOrders.bulkListInsertionOrderAssignedTargetingOptions" call.
20673// Exactly one of
20674// *BulkListInsertionOrderAssignedTargetingOptionsResponse or error will
20675// be non-nil. Any non-2xx status code is an error. Response headers are
20676// in either
20677// *BulkListInsertionOrderAssignedTargetingOptionsResponse.ServerResponse
20678// .Header or (if a response was returned at all) in
20679// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
20680// whether the returned error was because http.StatusNotModified was
20681// returned.
20682func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkListInsertionOrderAssignedTargetingOptionsResponse, error) {
20683	gensupport.SetOptions(c.urlParams_, opts...)
20684	res, err := c.doRequest("json")
20685	if res != nil && res.StatusCode == http.StatusNotModified {
20686		if res.Body != nil {
20687			res.Body.Close()
20688		}
20689		return nil, &googleapi.Error{
20690			Code:   res.StatusCode,
20691			Header: res.Header,
20692		}
20693	}
20694	if err != nil {
20695		return nil, err
20696	}
20697	defer googleapi.CloseBody(res)
20698	if err := googleapi.CheckResponse(res); err != nil {
20699		return nil, err
20700	}
20701	ret := &BulkListInsertionOrderAssignedTargetingOptionsResponse{
20702		ServerResponse: googleapi.ServerResponse{
20703			Header:         res.Header,
20704			HTTPStatusCode: res.StatusCode,
20705		},
20706	}
20707	target := &ret
20708	if err := gensupport.DecodeResponse(target, res); err != nil {
20709		return nil, err
20710	}
20711	return ret, nil
20712	// {
20713	//   "description": "Lists assigned targeting options of an insertion order across targeting types.",
20714	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}:bulkListInsertionOrderAssignedTargetingOptions",
20715	//   "httpMethod": "GET",
20716	//   "id": "displayvideo.advertisers.insertionOrders.bulkListInsertionOrderAssignedTargetingOptions",
20717	//   "parameterOrder": [
20718	//     "advertiserId",
20719	//     "insertionOrderId"
20720	//   ],
20721	//   "parameters": {
20722	//     "advertiserId": {
20723	//       "description": "Required. The ID of the advertiser the insertion order belongs to.",
20724	//       "format": "int64",
20725	//       "location": "path",
20726	//       "pattern": "^[^/]+$",
20727	//       "required": true,
20728	//       "type": "string"
20729	//     },
20730	//     "filter": {
20731	//       "description": "Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR` on the same field. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `targetingType` - `inheritance` Examples: * AssignedTargetingOptions of targeting type TARGETING_TYPE_PROXIMITY_LOCATION_LIST or TARGETING_TYPE_CHANNEL `targetingType=\"TARGETING_TYPE_PROXIMITY_LOCATION_LIST\" OR targetingType=\"TARGETING_TYPE_CHANNEL\"` * AssignedTargetingOptions with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters.",
20732	//       "location": "query",
20733	//       "type": "string"
20734	//     },
20735	//     "insertionOrderId": {
20736	//       "description": "Required. The ID of the insertion order to list assigned targeting options for.",
20737	//       "format": "int64",
20738	//       "location": "path",
20739	//       "pattern": "^[^/]+$",
20740	//       "required": true,
20741	//       "type": "string"
20742	//     },
20743	//     "orderBy": {
20744	//       "description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.",
20745	//       "location": "query",
20746	//       "type": "string"
20747	//     },
20748	//     "pageSize": {
20749	//       "description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is `5000`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
20750	//       "format": "int32",
20751	//       "location": "query",
20752	//       "type": "integer"
20753	//     },
20754	//     "pageToken": {
20755	//       "description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListInsertionOrderAssignedTargetingOptions` method. If not specified, the first page of results will be returned.",
20756	//       "location": "query",
20757	//       "type": "string"
20758	//     }
20759	//   },
20760	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}:bulkListInsertionOrderAssignedTargetingOptions",
20761	//   "response": {
20762	//     "$ref": "BulkListInsertionOrderAssignedTargetingOptionsResponse"
20763	//   },
20764	//   "scopes": [
20765	//     "https://www.googleapis.com/auth/display-video"
20766	//   ]
20767	// }
20768
20769}
20770
20771// Pages invokes f for each page of results.
20772// A non-nil error returned from f will halt the iteration.
20773// The provided context supersedes any context provided to the Context method.
20774func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) Pages(ctx context.Context, f func(*BulkListInsertionOrderAssignedTargetingOptionsResponse) error) error {
20775	c.ctx_ = ctx
20776	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
20777	for {
20778		x, err := c.Do()
20779		if err != nil {
20780			return err
20781		}
20782		if err := f(x); err != nil {
20783			return err
20784		}
20785		if x.NextPageToken == "" {
20786			return nil
20787		}
20788		c.PageToken(x.NextPageToken)
20789	}
20790}
20791
20792// method id "displayvideo.advertisers.insertionOrders.create":
20793
20794type AdvertisersInsertionOrdersCreateCall struct {
20795	s              *Service
20796	advertiserId   int64
20797	insertionorder *InsertionOrder
20798	urlParams_     gensupport.URLParams
20799	ctx_           context.Context
20800	header_        http.Header
20801}
20802
20803// Create: Creates a new insertion order. Returns the newly created
20804// insertion order if successful.
20805//
20806// - advertiserId: Output only. The unique ID of the advertiser the
20807//   insertion order belongs to.
20808func (r *AdvertisersInsertionOrdersService) Create(advertiserId int64, insertionorder *InsertionOrder) *AdvertisersInsertionOrdersCreateCall {
20809	c := &AdvertisersInsertionOrdersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20810	c.advertiserId = advertiserId
20811	c.insertionorder = insertionorder
20812	return c
20813}
20814
20815// Fields allows partial responses to be retrieved. See
20816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20817// for more information.
20818func (c *AdvertisersInsertionOrdersCreateCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersCreateCall {
20819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20820	return c
20821}
20822
20823// Context sets the context to be used in this call's Do method. Any
20824// pending HTTP request will be aborted if the provided context is
20825// canceled.
20826func (c *AdvertisersInsertionOrdersCreateCall) Context(ctx context.Context) *AdvertisersInsertionOrdersCreateCall {
20827	c.ctx_ = ctx
20828	return c
20829}
20830
20831// Header returns an http.Header that can be modified by the caller to
20832// add HTTP headers to the request.
20833func (c *AdvertisersInsertionOrdersCreateCall) Header() http.Header {
20834	if c.header_ == nil {
20835		c.header_ = make(http.Header)
20836	}
20837	return c.header_
20838}
20839
20840func (c *AdvertisersInsertionOrdersCreateCall) doRequest(alt string) (*http.Response, error) {
20841	reqHeaders := make(http.Header)
20842	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
20843	for k, v := range c.header_ {
20844		reqHeaders[k] = v
20845	}
20846	reqHeaders.Set("User-Agent", c.s.userAgent())
20847	var body io.Reader = nil
20848	body, err := googleapi.WithoutDataWrapper.JSONReader(c.insertionorder)
20849	if err != nil {
20850		return nil, err
20851	}
20852	reqHeaders.Set("Content-Type", "application/json")
20853	c.urlParams_.Set("alt", alt)
20854	c.urlParams_.Set("prettyPrint", "false")
20855	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders")
20856	urls += "?" + c.urlParams_.Encode()
20857	req, err := http.NewRequest("POST", urls, body)
20858	if err != nil {
20859		return nil, err
20860	}
20861	req.Header = reqHeaders
20862	googleapi.Expand(req.URL, map[string]string{
20863		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
20864	})
20865	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20866}
20867
20868// Do executes the "displayvideo.advertisers.insertionOrders.create" call.
20869// Exactly one of *InsertionOrder or error will be non-nil. Any non-2xx
20870// status code is an error. Response headers are in either
20871// *InsertionOrder.ServerResponse.Header or (if a response was returned
20872// at all) in error.(*googleapi.Error).Header. Use
20873// googleapi.IsNotModified to check whether the returned error was
20874// because http.StatusNotModified was returned.
20875func (c *AdvertisersInsertionOrdersCreateCall) Do(opts ...googleapi.CallOption) (*InsertionOrder, error) {
20876	gensupport.SetOptions(c.urlParams_, opts...)
20877	res, err := c.doRequest("json")
20878	if res != nil && res.StatusCode == http.StatusNotModified {
20879		if res.Body != nil {
20880			res.Body.Close()
20881		}
20882		return nil, &googleapi.Error{
20883			Code:   res.StatusCode,
20884			Header: res.Header,
20885		}
20886	}
20887	if err != nil {
20888		return nil, err
20889	}
20890	defer googleapi.CloseBody(res)
20891	if err := googleapi.CheckResponse(res); err != nil {
20892		return nil, err
20893	}
20894	ret := &InsertionOrder{
20895		ServerResponse: googleapi.ServerResponse{
20896			Header:         res.Header,
20897			HTTPStatusCode: res.StatusCode,
20898		},
20899	}
20900	target := &ret
20901	if err := gensupport.DecodeResponse(target, res); err != nil {
20902		return nil, err
20903	}
20904	return ret, nil
20905	// {
20906	//   "description": "Creates a new insertion order. Returns the newly created insertion order if successful.",
20907	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders",
20908	//   "httpMethod": "POST",
20909	//   "id": "displayvideo.advertisers.insertionOrders.create",
20910	//   "parameterOrder": [
20911	//     "advertiserId"
20912	//   ],
20913	//   "parameters": {
20914	//     "advertiserId": {
20915	//       "description": "Output only. The unique ID of the advertiser the insertion order belongs to.",
20916	//       "format": "int64",
20917	//       "location": "path",
20918	//       "pattern": "^[^/]+$",
20919	//       "required": true,
20920	//       "type": "string"
20921	//     }
20922	//   },
20923	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders",
20924	//   "request": {
20925	//     "$ref": "InsertionOrder"
20926	//   },
20927	//   "response": {
20928	//     "$ref": "InsertionOrder"
20929	//   },
20930	//   "scopes": [
20931	//     "https://www.googleapis.com/auth/display-video"
20932	//   ]
20933	// }
20934
20935}
20936
20937// method id "displayvideo.advertisers.insertionOrders.delete":
20938
20939type AdvertisersInsertionOrdersDeleteCall struct {
20940	s                *Service
20941	advertiserId     int64
20942	insertionOrderId int64
20943	urlParams_       gensupport.URLParams
20944	ctx_             context.Context
20945	header_          http.Header
20946}
20947
20948// Delete: Deletes an insertion order. Returns error code `NOT_FOUND` if
20949// the insertion order does not exist. The insertion order should be
20950// archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`,
20951// to be able to delete it.
20952//
20953// - advertiserId: The ID of the advertiser this insertion order belongs
20954//   to.
20955// - insertionOrderId: The ID of the insertion order we need to delete.
20956func (r *AdvertisersInsertionOrdersService) Delete(advertiserId int64, insertionOrderId int64) *AdvertisersInsertionOrdersDeleteCall {
20957	c := &AdvertisersInsertionOrdersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20958	c.advertiserId = advertiserId
20959	c.insertionOrderId = insertionOrderId
20960	return c
20961}
20962
20963// Fields allows partial responses to be retrieved. See
20964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20965// for more information.
20966func (c *AdvertisersInsertionOrdersDeleteCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersDeleteCall {
20967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20968	return c
20969}
20970
20971// Context sets the context to be used in this call's Do method. Any
20972// pending HTTP request will be aborted if the provided context is
20973// canceled.
20974func (c *AdvertisersInsertionOrdersDeleteCall) Context(ctx context.Context) *AdvertisersInsertionOrdersDeleteCall {
20975	c.ctx_ = ctx
20976	return c
20977}
20978
20979// Header returns an http.Header that can be modified by the caller to
20980// add HTTP headers to the request.
20981func (c *AdvertisersInsertionOrdersDeleteCall) Header() http.Header {
20982	if c.header_ == nil {
20983		c.header_ = make(http.Header)
20984	}
20985	return c.header_
20986}
20987
20988func (c *AdvertisersInsertionOrdersDeleteCall) doRequest(alt string) (*http.Response, error) {
20989	reqHeaders := make(http.Header)
20990	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
20991	for k, v := range c.header_ {
20992		reqHeaders[k] = v
20993	}
20994	reqHeaders.Set("User-Agent", c.s.userAgent())
20995	var body io.Reader = nil
20996	c.urlParams_.Set("alt", alt)
20997	c.urlParams_.Set("prettyPrint", "false")
20998	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}")
20999	urls += "?" + c.urlParams_.Encode()
21000	req, err := http.NewRequest("DELETE", urls, body)
21001	if err != nil {
21002		return nil, err
21003	}
21004	req.Header = reqHeaders
21005	googleapi.Expand(req.URL, map[string]string{
21006		"advertiserId":     strconv.FormatInt(c.advertiserId, 10),
21007		"insertionOrderId": strconv.FormatInt(c.insertionOrderId, 10),
21008	})
21009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
21010}
21011
21012// Do executes the "displayvideo.advertisers.insertionOrders.delete" call.
21013// Exactly one of *Empty or error will be non-nil. Any non-2xx status
21014// code is an error. Response headers are in either
21015// *Empty.ServerResponse.Header or (if a response was returned at all)
21016// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
21017// check whether the returned error was because http.StatusNotModified
21018// was returned.
21019func (c *AdvertisersInsertionOrdersDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
21020	gensupport.SetOptions(c.urlParams_, opts...)
21021	res, err := c.doRequest("json")
21022	if res != nil && res.StatusCode == http.StatusNotModified {
21023		if res.Body != nil {
21024			res.Body.Close()
21025		}
21026		return nil, &googleapi.Error{
21027			Code:   res.StatusCode,
21028			Header: res.Header,
21029		}
21030	}
21031	if err != nil {
21032		return nil, err
21033	}
21034	defer googleapi.CloseBody(res)
21035	if err := googleapi.CheckResponse(res); err != nil {
21036		return nil, err
21037	}
21038	ret := &Empty{
21039		ServerResponse: googleapi.ServerResponse{
21040			Header:         res.Header,
21041			HTTPStatusCode: res.StatusCode,
21042		},
21043	}
21044	target := &ret
21045	if err := gensupport.DecodeResponse(target, res); err != nil {
21046		return nil, err
21047	}
21048	return ret, nil
21049	// {
21050	//   "description": "Deletes an insertion order. Returns error code `NOT_FOUND` if the insertion order does not exist. The insertion order should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.",
21051	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}",
21052	//   "httpMethod": "DELETE",
21053	//   "id": "displayvideo.advertisers.insertionOrders.delete",
21054	//   "parameterOrder": [
21055	//     "advertiserId",
21056	//     "insertionOrderId"
21057	//   ],
21058	//   "parameters": {
21059	//     "advertiserId": {
21060	//       "description": "The ID of the advertiser this insertion order belongs to.",
21061	//       "format": "int64",
21062	//       "location": "path",
21063	//       "pattern": "^[^/]+$",
21064	//       "required": true,
21065	//       "type": "string"
21066	//     },
21067	//     "insertionOrderId": {
21068	//       "description": "The ID of the insertion order we need to delete.",
21069	//       "format": "int64",
21070	//       "location": "path",
21071	//       "pattern": "^[^/]+$",
21072	//       "required": true,
21073	//       "type": "string"
21074	//     }
21075	//   },
21076	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}",
21077	//   "response": {
21078	//     "$ref": "Empty"
21079	//   },
21080	//   "scopes": [
21081	//     "https://www.googleapis.com/auth/display-video"
21082	//   ]
21083	// }
21084
21085}
21086
21087// method id "displayvideo.advertisers.insertionOrders.get":
21088
21089type AdvertisersInsertionOrdersGetCall struct {
21090	s                *Service
21091	advertiserId     int64
21092	insertionOrderId int64
21093	urlParams_       gensupport.URLParams
21094	ifNoneMatch_     string
21095	ctx_             context.Context
21096	header_          http.Header
21097}
21098
21099// Get: Gets an insertion order. Returns error code `NOT_FOUND` if the
21100// insertion order does not exist.
21101//
21102// - advertiserId: The ID of the advertiser this insertion order belongs
21103//   to.
21104// - insertionOrderId: The ID of the insertion order to fetch.
21105func (r *AdvertisersInsertionOrdersService) Get(advertiserId int64, insertionOrderId int64) *AdvertisersInsertionOrdersGetCall {
21106	c := &AdvertisersInsertionOrdersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
21107	c.advertiserId = advertiserId
21108	c.insertionOrderId = insertionOrderId
21109	return c
21110}
21111
21112// Fields allows partial responses to be retrieved. See
21113// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
21114// for more information.
21115func (c *AdvertisersInsertionOrdersGetCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersGetCall {
21116	c.urlParams_.Set("fields", googleapi.CombineFields(s))
21117	return c
21118}
21119
21120// IfNoneMatch sets the optional parameter which makes the operation
21121// fail if the object's ETag matches the given value. This is useful for
21122// getting updates only after the object has changed since the last
21123// request. Use googleapi.IsNotModified to check whether the response
21124// error from Do is the result of In-None-Match.
21125func (c *AdvertisersInsertionOrdersGetCall) IfNoneMatch(entityTag string) *AdvertisersInsertionOrdersGetCall {
21126	c.ifNoneMatch_ = entityTag
21127	return c
21128}
21129
21130// Context sets the context to be used in this call's Do method. Any
21131// pending HTTP request will be aborted if the provided context is
21132// canceled.
21133func (c *AdvertisersInsertionOrdersGetCall) Context(ctx context.Context) *AdvertisersInsertionOrdersGetCall {
21134	c.ctx_ = ctx
21135	return c
21136}
21137
21138// Header returns an http.Header that can be modified by the caller to
21139// add HTTP headers to the request.
21140func (c *AdvertisersInsertionOrdersGetCall) Header() http.Header {
21141	if c.header_ == nil {
21142		c.header_ = make(http.Header)
21143	}
21144	return c.header_
21145}
21146
21147func (c *AdvertisersInsertionOrdersGetCall) doRequest(alt string) (*http.Response, error) {
21148	reqHeaders := make(http.Header)
21149	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
21150	for k, v := range c.header_ {
21151		reqHeaders[k] = v
21152	}
21153	reqHeaders.Set("User-Agent", c.s.userAgent())
21154	if c.ifNoneMatch_ != "" {
21155		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
21156	}
21157	var body io.Reader = nil
21158	c.urlParams_.Set("alt", alt)
21159	c.urlParams_.Set("prettyPrint", "false")
21160	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}")
21161	urls += "?" + c.urlParams_.Encode()
21162	req, err := http.NewRequest("GET", urls, body)
21163	if err != nil {
21164		return nil, err
21165	}
21166	req.Header = reqHeaders
21167	googleapi.Expand(req.URL, map[string]string{
21168		"advertiserId":     strconv.FormatInt(c.advertiserId, 10),
21169		"insertionOrderId": strconv.FormatInt(c.insertionOrderId, 10),
21170	})
21171	return gensupport.SendRequest(c.ctx_, c.s.client, req)
21172}
21173
21174// Do executes the "displayvideo.advertisers.insertionOrders.get" call.
21175// Exactly one of *InsertionOrder or error will be non-nil. Any non-2xx
21176// status code is an error. Response headers are in either
21177// *InsertionOrder.ServerResponse.Header or (if a response was returned
21178// at all) in error.(*googleapi.Error).Header. Use
21179// googleapi.IsNotModified to check whether the returned error was
21180// because http.StatusNotModified was returned.
21181func (c *AdvertisersInsertionOrdersGetCall) Do(opts ...googleapi.CallOption) (*InsertionOrder, error) {
21182	gensupport.SetOptions(c.urlParams_, opts...)
21183	res, err := c.doRequest("json")
21184	if res != nil && res.StatusCode == http.StatusNotModified {
21185		if res.Body != nil {
21186			res.Body.Close()
21187		}
21188		return nil, &googleapi.Error{
21189			Code:   res.StatusCode,
21190			Header: res.Header,
21191		}
21192	}
21193	if err != nil {
21194		return nil, err
21195	}
21196	defer googleapi.CloseBody(res)
21197	if err := googleapi.CheckResponse(res); err != nil {
21198		return nil, err
21199	}
21200	ret := &InsertionOrder{
21201		ServerResponse: googleapi.ServerResponse{
21202			Header:         res.Header,
21203			HTTPStatusCode: res.StatusCode,
21204		},
21205	}
21206	target := &ret
21207	if err := gensupport.DecodeResponse(target, res); err != nil {
21208		return nil, err
21209	}
21210	return ret, nil
21211	// {
21212	//   "description": "Gets an insertion order. Returns error code `NOT_FOUND` if the insertion order does not exist.",
21213	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}",
21214	//   "httpMethod": "GET",
21215	//   "id": "displayvideo.advertisers.insertionOrders.get",
21216	//   "parameterOrder": [
21217	//     "advertiserId",
21218	//     "insertionOrderId"
21219	//   ],
21220	//   "parameters": {
21221	//     "advertiserId": {
21222	//       "description": "Required. The ID of the advertiser this insertion order belongs to.",
21223	//       "format": "int64",
21224	//       "location": "path",
21225	//       "pattern": "^[^/]+$",
21226	//       "required": true,
21227	//       "type": "string"
21228	//     },
21229	//     "insertionOrderId": {
21230	//       "description": "Required. The ID of the insertion order to fetch.",
21231	//       "format": "int64",
21232	//       "location": "path",
21233	//       "pattern": "^[^/]+$",
21234	//       "required": true,
21235	//       "type": "string"
21236	//     }
21237	//   },
21238	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}",
21239	//   "response": {
21240	//     "$ref": "InsertionOrder"
21241	//   },
21242	//   "scopes": [
21243	//     "https://www.googleapis.com/auth/display-video"
21244	//   ]
21245	// }
21246
21247}
21248
21249// method id "displayvideo.advertisers.insertionOrders.list":
21250
21251type AdvertisersInsertionOrdersListCall struct {
21252	s            *Service
21253	advertiserId int64
21254	urlParams_   gensupport.URLParams
21255	ifNoneMatch_ string
21256	ctx_         context.Context
21257	header_      http.Header
21258}
21259
21260// List: Lists insertion orders in an advertiser. The order is defined
21261// by the order_by parameter. If a filter by entity_status is not
21262// specified, insertion orders with `ENTITY_STATUS_ARCHIVED` will not be
21263// included in the results.
21264//
21265// - advertiserId: The ID of the advertiser to list insertion orders
21266//   for.
21267func (r *AdvertisersInsertionOrdersService) List(advertiserId int64) *AdvertisersInsertionOrdersListCall {
21268	c := &AdvertisersInsertionOrdersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
21269	c.advertiserId = advertiserId
21270	return c
21271}
21272
21273// Filter sets the optional parameter "filter": Allows filtering by
21274// insertion order properties. Supported syntax: * Filter expressions
21275// are made up of one or more restrictions. * Restrictions can be
21276// combined by `AND` or `OR` logical operators. A sequence of
21277// restrictions implicitly uses `AND`. * A restriction has the form of
21278// `{field} {operator} {value}`. * The operator used on
21279// `budget.budget_segments.date_range.end_date` must be LESS THAN (<). *
21280// The operator used on `updateTime` must be `GREATER THAN OR EQUAL TO
21281// (>=)` or `LESS THAN OR EQUAL TO (<=)`. * The operators used on all
21282// other fields must be `EQUALS (=)`. * Supported fields: - `campaignId`
21283// - `displayName` - `entityStatus` -
21284// `budget.budget_segments.date_range.end_date` (input as YYYY-MM-DD) -
21285// `updateTime` (input in ISO 8601 format, or YYYY-MM-DDTHH:MM:SSZ)
21286// Examples: * All insertion orders under a campaign:
21287// `campaignId="1234" * All `ENTITY_STATUS_ACTIVE` or
21288// `ENTITY_STATUS_PAUSED` insertion orders under an advertiser:
21289// `(entityStatus="ENTITY_STATUS_ACTIVE" OR
21290// entityStatus="ENTITY_STATUS_PAUSED")` * All insertion orders whose
21291// budget segments' dates end before March 28, 2019:
21292// `budget.budget_segments.date_range.end_date<"2019-03-28" * All
21293// insertion orders with an update time less than or equal to
21294// `2020-11-04T18:54:47Z (format of ISO 8601)`:
21295// `updateTime<="2020-11-04T18:54:47Z" * All insertion orders with an
21296// update time greater than or equal to `2020-11-04T18:54:47Z (format of
21297// ISO 8601)`: `updateTime>="2020-11-04T18:54:47Z" The length of this
21298// field should be no more than 500 characters.
21299func (c *AdvertisersInsertionOrdersListCall) Filter(filter string) *AdvertisersInsertionOrdersListCall {
21300	c.urlParams_.Set("filter", filter)
21301	return c
21302}
21303
21304// OrderBy sets the optional parameter "orderBy": Field by which to sort
21305// the list. Acceptable values are: * "displayName" (default) *
21306// "entityStatus" * "updateTime" The default sorting order is ascending.
21307// To specify descending order for a field, a suffix "desc" should be
21308// added to the field name. Example: `displayName desc`.
21309func (c *AdvertisersInsertionOrdersListCall) OrderBy(orderBy string) *AdvertisersInsertionOrdersListCall {
21310	c.urlParams_.Set("orderBy", orderBy)
21311	return c
21312}
21313
21314// PageSize sets the optional parameter "pageSize": Requested page size.
21315// Must be between `1` and `100`. If unspecified will default to `100`.
21316// Returns error code `INVALID_ARGUMENT` if an invalid value is
21317// specified.
21318func (c *AdvertisersInsertionOrdersListCall) PageSize(pageSize int64) *AdvertisersInsertionOrdersListCall {
21319	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
21320	return c
21321}
21322
21323// PageToken sets the optional parameter "pageToken": A token
21324// identifying a page of results the server should return. Typically,
21325// this is the value of next_page_token returned from the previous call
21326// to `ListInsertionOrders` method. If not specified, the first page of
21327// results will be returned.
21328func (c *AdvertisersInsertionOrdersListCall) PageToken(pageToken string) *AdvertisersInsertionOrdersListCall {
21329	c.urlParams_.Set("pageToken", pageToken)
21330	return c
21331}
21332
21333// Fields allows partial responses to be retrieved. See
21334// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
21335// for more information.
21336func (c *AdvertisersInsertionOrdersListCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersListCall {
21337	c.urlParams_.Set("fields", googleapi.CombineFields(s))
21338	return c
21339}
21340
21341// IfNoneMatch sets the optional parameter which makes the operation
21342// fail if the object's ETag matches the given value. This is useful for
21343// getting updates only after the object has changed since the last
21344// request. Use googleapi.IsNotModified to check whether the response
21345// error from Do is the result of In-None-Match.
21346func (c *AdvertisersInsertionOrdersListCall) IfNoneMatch(entityTag string) *AdvertisersInsertionOrdersListCall {
21347	c.ifNoneMatch_ = entityTag
21348	return c
21349}
21350
21351// Context sets the context to be used in this call's Do method. Any
21352// pending HTTP request will be aborted if the provided context is
21353// canceled.
21354func (c *AdvertisersInsertionOrdersListCall) Context(ctx context.Context) *AdvertisersInsertionOrdersListCall {
21355	c.ctx_ = ctx
21356	return c
21357}
21358
21359// Header returns an http.Header that can be modified by the caller to
21360// add HTTP headers to the request.
21361func (c *AdvertisersInsertionOrdersListCall) Header() http.Header {
21362	if c.header_ == nil {
21363		c.header_ = make(http.Header)
21364	}
21365	return c.header_
21366}
21367
21368func (c *AdvertisersInsertionOrdersListCall) doRequest(alt string) (*http.Response, error) {
21369	reqHeaders := make(http.Header)
21370	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
21371	for k, v := range c.header_ {
21372		reqHeaders[k] = v
21373	}
21374	reqHeaders.Set("User-Agent", c.s.userAgent())
21375	if c.ifNoneMatch_ != "" {
21376		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
21377	}
21378	var body io.Reader = nil
21379	c.urlParams_.Set("alt", alt)
21380	c.urlParams_.Set("prettyPrint", "false")
21381	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders")
21382	urls += "?" + c.urlParams_.Encode()
21383	req, err := http.NewRequest("GET", urls, body)
21384	if err != nil {
21385		return nil, err
21386	}
21387	req.Header = reqHeaders
21388	googleapi.Expand(req.URL, map[string]string{
21389		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
21390	})
21391	return gensupport.SendRequest(c.ctx_, c.s.client, req)
21392}
21393
21394// Do executes the "displayvideo.advertisers.insertionOrders.list" call.
21395// Exactly one of *ListInsertionOrdersResponse or error will be non-nil.
21396// Any non-2xx status code is an error. Response headers are in either
21397// *ListInsertionOrdersResponse.ServerResponse.Header or (if a response
21398// was returned at all) in error.(*googleapi.Error).Header. Use
21399// googleapi.IsNotModified to check whether the returned error was
21400// because http.StatusNotModified was returned.
21401func (c *AdvertisersInsertionOrdersListCall) Do(opts ...googleapi.CallOption) (*ListInsertionOrdersResponse, error) {
21402	gensupport.SetOptions(c.urlParams_, opts...)
21403	res, err := c.doRequest("json")
21404	if res != nil && res.StatusCode == http.StatusNotModified {
21405		if res.Body != nil {
21406			res.Body.Close()
21407		}
21408		return nil, &googleapi.Error{
21409			Code:   res.StatusCode,
21410			Header: res.Header,
21411		}
21412	}
21413	if err != nil {
21414		return nil, err
21415	}
21416	defer googleapi.CloseBody(res)
21417	if err := googleapi.CheckResponse(res); err != nil {
21418		return nil, err
21419	}
21420	ret := &ListInsertionOrdersResponse{
21421		ServerResponse: googleapi.ServerResponse{
21422			Header:         res.Header,
21423			HTTPStatusCode: res.StatusCode,
21424		},
21425	}
21426	target := &ret
21427	if err := gensupport.DecodeResponse(target, res); err != nil {
21428		return nil, err
21429	}
21430	return ret, nil
21431	// {
21432	//   "description": "Lists insertion orders in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, insertion orders with `ENTITY_STATUS_ARCHIVED` will not be included in the results.",
21433	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders",
21434	//   "httpMethod": "GET",
21435	//   "id": "displayvideo.advertisers.insertionOrders.list",
21436	//   "parameterOrder": [
21437	//     "advertiserId"
21438	//   ],
21439	//   "parameters": {
21440	//     "advertiserId": {
21441	//       "description": "Required. The ID of the advertiser to list insertion orders for.",
21442	//       "format": "int64",
21443	//       "location": "path",
21444	//       "pattern": "^[^/]+$",
21445	//       "required": true,
21446	//       "type": "string"
21447	//     },
21448	//     "filter": {
21449	//       "description": "Allows filtering by insertion order properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The operator used on `budget.budget_segments.date_range.end_date` must be LESS THAN (\u003c). * The operator used on `updateTime` must be `GREATER THAN OR EQUAL TO (\u003e=)` or `LESS THAN OR EQUAL TO (\u003c=)`. * The operators used on all other fields must be `EQUALS (=)`. * Supported fields: - `campaignId` - `displayName` - `entityStatus` - `budget.budget_segments.date_range.end_date` (input as YYYY-MM-DD) - `updateTime` (input in ISO 8601 format, or YYYY-MM-DDTHH:MM:SSZ) Examples: * All insertion orders under a campaign: `campaignId=\"1234\"` * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` insertion orders under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\")` * All insertion orders whose budget segments' dates end before March 28, 2019: `budget.budget_segments.date_range.end_date\u003c\"2019-03-28\"` * All insertion orders with an update time less than or equal to `2020-11-04T18:54:47Z (format of ISO 8601)`: `updateTime\u003c=\"2020-11-04T18:54:47Z\"` * All insertion orders with an update time greater than or equal to `2020-11-04T18:54:47Z (format of ISO 8601)`: `updateTime\u003e=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters.",
21450	//       "location": "query",
21451	//       "type": "string"
21452	//     },
21453	//     "orderBy": {
21454	//       "description": "Field by which to sort the list. Acceptable values are: * \"displayName\" (default) * \"entityStatus\" * \"updateTime\" The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.",
21455	//       "location": "query",
21456	//       "type": "string"
21457	//     },
21458	//     "pageSize": {
21459	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
21460	//       "format": "int32",
21461	//       "location": "query",
21462	//       "type": "integer"
21463	//     },
21464	//     "pageToken": {
21465	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInsertionOrders` method. If not specified, the first page of results will be returned.",
21466	//       "location": "query",
21467	//       "type": "string"
21468	//     }
21469	//   },
21470	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders",
21471	//   "response": {
21472	//     "$ref": "ListInsertionOrdersResponse"
21473	//   },
21474	//   "scopes": [
21475	//     "https://www.googleapis.com/auth/display-video"
21476	//   ]
21477	// }
21478
21479}
21480
21481// Pages invokes f for each page of results.
21482// A non-nil error returned from f will halt the iteration.
21483// The provided context supersedes any context provided to the Context method.
21484func (c *AdvertisersInsertionOrdersListCall) Pages(ctx context.Context, f func(*ListInsertionOrdersResponse) error) error {
21485	c.ctx_ = ctx
21486	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
21487	for {
21488		x, err := c.Do()
21489		if err != nil {
21490			return err
21491		}
21492		if err := f(x); err != nil {
21493			return err
21494		}
21495		if x.NextPageToken == "" {
21496			return nil
21497		}
21498		c.PageToken(x.NextPageToken)
21499	}
21500}
21501
21502// method id "displayvideo.advertisers.insertionOrders.patch":
21503
21504type AdvertisersInsertionOrdersPatchCall struct {
21505	s                *Service
21506	advertiserId     int64
21507	insertionOrderId int64
21508	insertionorder   *InsertionOrder
21509	urlParams_       gensupport.URLParams
21510	ctx_             context.Context
21511	header_          http.Header
21512}
21513
21514// Patch: Updates an existing insertion order. Returns the updated
21515// insertion order if successful.
21516//
21517// - advertiserId: Output only. The unique ID of the advertiser the
21518//   insertion order belongs to.
21519// - insertionOrderId: Output only. The unique ID of the insertion
21520//   order. Assigned by the system.
21521func (r *AdvertisersInsertionOrdersService) Patch(advertiserId int64, insertionOrderId int64, insertionorder *InsertionOrder) *AdvertisersInsertionOrdersPatchCall {
21522	c := &AdvertisersInsertionOrdersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
21523	c.advertiserId = advertiserId
21524	c.insertionOrderId = insertionOrderId
21525	c.insertionorder = insertionorder
21526	return c
21527}
21528
21529// UpdateMask sets the optional parameter "updateMask": Required. The
21530// mask to control which fields to update.
21531func (c *AdvertisersInsertionOrdersPatchCall) UpdateMask(updateMask string) *AdvertisersInsertionOrdersPatchCall {
21532	c.urlParams_.Set("updateMask", updateMask)
21533	return c
21534}
21535
21536// Fields allows partial responses to be retrieved. See
21537// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
21538// for more information.
21539func (c *AdvertisersInsertionOrdersPatchCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersPatchCall {
21540	c.urlParams_.Set("fields", googleapi.CombineFields(s))
21541	return c
21542}
21543
21544// Context sets the context to be used in this call's Do method. Any
21545// pending HTTP request will be aborted if the provided context is
21546// canceled.
21547func (c *AdvertisersInsertionOrdersPatchCall) Context(ctx context.Context) *AdvertisersInsertionOrdersPatchCall {
21548	c.ctx_ = ctx
21549	return c
21550}
21551
21552// Header returns an http.Header that can be modified by the caller to
21553// add HTTP headers to the request.
21554func (c *AdvertisersInsertionOrdersPatchCall) Header() http.Header {
21555	if c.header_ == nil {
21556		c.header_ = make(http.Header)
21557	}
21558	return c.header_
21559}
21560
21561func (c *AdvertisersInsertionOrdersPatchCall) doRequest(alt string) (*http.Response, error) {
21562	reqHeaders := make(http.Header)
21563	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
21564	for k, v := range c.header_ {
21565		reqHeaders[k] = v
21566	}
21567	reqHeaders.Set("User-Agent", c.s.userAgent())
21568	var body io.Reader = nil
21569	body, err := googleapi.WithoutDataWrapper.JSONReader(c.insertionorder)
21570	if err != nil {
21571		return nil, err
21572	}
21573	reqHeaders.Set("Content-Type", "application/json")
21574	c.urlParams_.Set("alt", alt)
21575	c.urlParams_.Set("prettyPrint", "false")
21576	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}")
21577	urls += "?" + c.urlParams_.Encode()
21578	req, err := http.NewRequest("PATCH", urls, body)
21579	if err != nil {
21580		return nil, err
21581	}
21582	req.Header = reqHeaders
21583	googleapi.Expand(req.URL, map[string]string{
21584		"advertiserId":     strconv.FormatInt(c.advertiserId, 10),
21585		"insertionOrderId": strconv.FormatInt(c.insertionOrderId, 10),
21586	})
21587	return gensupport.SendRequest(c.ctx_, c.s.client, req)
21588}
21589
21590// Do executes the "displayvideo.advertisers.insertionOrders.patch" call.
21591// Exactly one of *InsertionOrder or error will be non-nil. Any non-2xx
21592// status code is an error. Response headers are in either
21593// *InsertionOrder.ServerResponse.Header or (if a response was returned
21594// at all) in error.(*googleapi.Error).Header. Use
21595// googleapi.IsNotModified to check whether the returned error was
21596// because http.StatusNotModified was returned.
21597func (c *AdvertisersInsertionOrdersPatchCall) Do(opts ...googleapi.CallOption) (*InsertionOrder, error) {
21598	gensupport.SetOptions(c.urlParams_, opts...)
21599	res, err := c.doRequest("json")
21600	if res != nil && res.StatusCode == http.StatusNotModified {
21601		if res.Body != nil {
21602			res.Body.Close()
21603		}
21604		return nil, &googleapi.Error{
21605			Code:   res.StatusCode,
21606			Header: res.Header,
21607		}
21608	}
21609	if err != nil {
21610		return nil, err
21611	}
21612	defer googleapi.CloseBody(res)
21613	if err := googleapi.CheckResponse(res); err != nil {
21614		return nil, err
21615	}
21616	ret := &InsertionOrder{
21617		ServerResponse: googleapi.ServerResponse{
21618			Header:         res.Header,
21619			HTTPStatusCode: res.StatusCode,
21620		},
21621	}
21622	target := &ret
21623	if err := gensupport.DecodeResponse(target, res); err != nil {
21624		return nil, err
21625	}
21626	return ret, nil
21627	// {
21628	//   "description": "Updates an existing insertion order. Returns the updated insertion order if successful.",
21629	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}",
21630	//   "httpMethod": "PATCH",
21631	//   "id": "displayvideo.advertisers.insertionOrders.patch",
21632	//   "parameterOrder": [
21633	//     "advertiserId",
21634	//     "insertionOrderId"
21635	//   ],
21636	//   "parameters": {
21637	//     "advertiserId": {
21638	//       "description": "Output only. The unique ID of the advertiser the insertion order belongs to.",
21639	//       "format": "int64",
21640	//       "location": "path",
21641	//       "pattern": "^[^/]+$",
21642	//       "required": true,
21643	//       "type": "string"
21644	//     },
21645	//     "insertionOrderId": {
21646	//       "description": "Output only. The unique ID of the insertion order. Assigned by the system.",
21647	//       "format": "int64",
21648	//       "location": "path",
21649	//       "pattern": "^[^/]+$",
21650	//       "required": true,
21651	//       "type": "string"
21652	//     },
21653	//     "updateMask": {
21654	//       "description": "Required. The mask to control which fields to update.",
21655	//       "format": "google-fieldmask",
21656	//       "location": "query",
21657	//       "type": "string"
21658	//     }
21659	//   },
21660	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}",
21661	//   "request": {
21662	//     "$ref": "InsertionOrder"
21663	//   },
21664	//   "response": {
21665	//     "$ref": "InsertionOrder"
21666	//   },
21667	//   "scopes": [
21668	//     "https://www.googleapis.com/auth/display-video"
21669	//   ]
21670	// }
21671
21672}
21673
21674// method id "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.get":
21675
21676type AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall struct {
21677	s                         *Service
21678	advertiserId              int64
21679	insertionOrderId          int64
21680	targetingType             string
21681	assignedTargetingOptionId string
21682	urlParams_                gensupport.URLParams
21683	ifNoneMatch_              string
21684	ctx_                      context.Context
21685	header_                   http.Header
21686}
21687
21688// Get: Gets a single targeting option assigned to an insertion order.
21689//
21690// - advertiserId: The ID of the advertiser the insertion order belongs
21691//   to.
21692// - assignedTargetingOptionId: An identifier unique to the targeting
21693//   type in this insertion order that identifies the assigned targeting
21694//   option being requested.
21695// - insertionOrderId: The ID of the insertion order the assigned
21696//   targeting option belongs to.
21697// - targetingType: Identifies the type of this assigned targeting
21698//   option.
21699func (r *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService) Get(advertiserId int64, insertionOrderId int64, targetingType string, assignedTargetingOptionId string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall {
21700	c := &AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
21701	c.advertiserId = advertiserId
21702	c.insertionOrderId = insertionOrderId
21703	c.targetingType = targetingType
21704	c.assignedTargetingOptionId = assignedTargetingOptionId
21705	return c
21706}
21707
21708// Fields allows partial responses to be retrieved. See
21709// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
21710// for more information.
21711func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall {
21712	c.urlParams_.Set("fields", googleapi.CombineFields(s))
21713	return c
21714}
21715
21716// IfNoneMatch sets the optional parameter which makes the operation
21717// fail if the object's ETag matches the given value. This is useful for
21718// getting updates only after the object has changed since the last
21719// request. Use googleapi.IsNotModified to check whether the response
21720// error from Do is the result of In-None-Match.
21721func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall) IfNoneMatch(entityTag string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall {
21722	c.ifNoneMatch_ = entityTag
21723	return c
21724}
21725
21726// Context sets the context to be used in this call's Do method. Any
21727// pending HTTP request will be aborted if the provided context is
21728// canceled.
21729func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall) Context(ctx context.Context) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall {
21730	c.ctx_ = ctx
21731	return c
21732}
21733
21734// Header returns an http.Header that can be modified by the caller to
21735// add HTTP headers to the request.
21736func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall) Header() http.Header {
21737	if c.header_ == nil {
21738		c.header_ = make(http.Header)
21739	}
21740	return c.header_
21741}
21742
21743func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall) doRequest(alt string) (*http.Response, error) {
21744	reqHeaders := make(http.Header)
21745	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
21746	for k, v := range c.header_ {
21747		reqHeaders[k] = v
21748	}
21749	reqHeaders.Set("User-Agent", c.s.userAgent())
21750	if c.ifNoneMatch_ != "" {
21751		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
21752	}
21753	var body io.Reader = nil
21754	c.urlParams_.Set("alt", alt)
21755	c.urlParams_.Set("prettyPrint", "false")
21756	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
21757	urls += "?" + c.urlParams_.Encode()
21758	req, err := http.NewRequest("GET", urls, body)
21759	if err != nil {
21760		return nil, err
21761	}
21762	req.Header = reqHeaders
21763	googleapi.Expand(req.URL, map[string]string{
21764		"advertiserId":              strconv.FormatInt(c.advertiserId, 10),
21765		"insertionOrderId":          strconv.FormatInt(c.insertionOrderId, 10),
21766		"targetingType":             c.targetingType,
21767		"assignedTargetingOptionId": c.assignedTargetingOptionId,
21768	})
21769	return gensupport.SendRequest(c.ctx_, c.s.client, req)
21770}
21771
21772// Do executes the "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.get" call.
21773// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
21774// non-2xx status code is an error. Response headers are in either
21775// *AssignedTargetingOption.ServerResponse.Header or (if a response was
21776// returned at all) in error.(*googleapi.Error).Header. Use
21777// googleapi.IsNotModified to check whether the returned error was
21778// because http.StatusNotModified was returned.
21779func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
21780	gensupport.SetOptions(c.urlParams_, opts...)
21781	res, err := c.doRequest("json")
21782	if res != nil && res.StatusCode == http.StatusNotModified {
21783		if res.Body != nil {
21784			res.Body.Close()
21785		}
21786		return nil, &googleapi.Error{
21787			Code:   res.StatusCode,
21788			Header: res.Header,
21789		}
21790	}
21791	if err != nil {
21792		return nil, err
21793	}
21794	defer googleapi.CloseBody(res)
21795	if err := googleapi.CheckResponse(res); err != nil {
21796		return nil, err
21797	}
21798	ret := &AssignedTargetingOption{
21799		ServerResponse: googleapi.ServerResponse{
21800			Header:         res.Header,
21801			HTTPStatusCode: res.StatusCode,
21802		},
21803	}
21804	target := &ret
21805	if err := gensupport.DecodeResponse(target, res); err != nil {
21806		return nil, err
21807	}
21808	return ret, nil
21809	// {
21810	//   "description": "Gets a single targeting option assigned to an insertion order.",
21811	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
21812	//   "httpMethod": "GET",
21813	//   "id": "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.get",
21814	//   "parameterOrder": [
21815	//     "advertiserId",
21816	//     "insertionOrderId",
21817	//     "targetingType",
21818	//     "assignedTargetingOptionId"
21819	//   ],
21820	//   "parameters": {
21821	//     "advertiserId": {
21822	//       "description": "Required. The ID of the advertiser the insertion order belongs to.",
21823	//       "format": "int64",
21824	//       "location": "path",
21825	//       "pattern": "^[^/]+$",
21826	//       "required": true,
21827	//       "type": "string"
21828	//     },
21829	//     "assignedTargetingOptionId": {
21830	//       "description": "Required. An identifier unique to the targeting type in this insertion order that identifies the assigned targeting option being requested.",
21831	//       "location": "path",
21832	//       "pattern": "^[^/]+$",
21833	//       "required": true,
21834	//       "type": "string"
21835	//     },
21836	//     "insertionOrderId": {
21837	//       "description": "Required. The ID of the insertion order the assigned targeting option belongs to.",
21838	//       "format": "int64",
21839	//       "location": "path",
21840	//       "pattern": "^[^/]+$",
21841	//       "required": true,
21842	//       "type": "string"
21843	//     },
21844	//     "targetingType": {
21845	//       "description": "Required. Identifies the type of this assigned targeting option.",
21846	//       "enum": [
21847	//         "TARGETING_TYPE_UNSPECIFIED",
21848	//         "TARGETING_TYPE_CHANNEL",
21849	//         "TARGETING_TYPE_APP_CATEGORY",
21850	//         "TARGETING_TYPE_APP",
21851	//         "TARGETING_TYPE_URL",
21852	//         "TARGETING_TYPE_DAY_AND_TIME",
21853	//         "TARGETING_TYPE_AGE_RANGE",
21854	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
21855	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
21856	//         "TARGETING_TYPE_GENDER",
21857	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
21858	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
21859	//         "TARGETING_TYPE_PARENTAL_STATUS",
21860	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
21861	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
21862	//         "TARGETING_TYPE_DEVICE_TYPE",
21863	//         "TARGETING_TYPE_AUDIENCE_GROUP",
21864	//         "TARGETING_TYPE_BROWSER",
21865	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
21866	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
21867	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
21868	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
21869	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
21870	//         "TARGETING_TYPE_ENVIRONMENT",
21871	//         "TARGETING_TYPE_CARRIER_AND_ISP",
21872	//         "TARGETING_TYPE_OPERATING_SYSTEM",
21873	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
21874	//         "TARGETING_TYPE_KEYWORD",
21875	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
21876	//         "TARGETING_TYPE_VIEWABILITY",
21877	//         "TARGETING_TYPE_CATEGORY",
21878	//         "TARGETING_TYPE_INVENTORY_SOURCE",
21879	//         "TARGETING_TYPE_LANGUAGE",
21880	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
21881	//         "TARGETING_TYPE_GEO_REGION",
21882	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
21883	//         "TARGETING_TYPE_EXCHANGE",
21884	//         "TARGETING_TYPE_SUB_EXCHANGE",
21885	//         "TARGETING_TYPE_POI",
21886	//         "TARGETING_TYPE_BUSINESS_CHAIN",
21887	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
21888	//         "TARGETING_TYPE_OMID"
21889	//       ],
21890	//       "enumDescriptions": [
21891	//         "Default value when type is not specified or is unknown in this version.",
21892	//         "Target a channel (a custom group of related websites or apps).",
21893	//         "Target an app category (for example, education or puzzle games).",
21894	//         "Target a specific app (for example, Angry Birds).",
21895	//         "Target a specific url (for example, quora.com).",
21896	//         "Target ads during a chosen time period on a specific day.",
21897	//         "Target ads to a specific age range (for example, 18-24).",
21898	//         "Target ads to the specified regions on a regional location list.",
21899	//         "Target ads to the specified points of interest on a proximity location list.",
21900	//         "Target ads to a specific gender (for example, female or male).",
21901	//         "Target a specific video player size for video ads.",
21902	//         "Target user rewarded content for video ads.",
21903	//         "Target ads to a specific parental status (for example, parent or not a parent).",
21904	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
21905	//         "Target ads in a specific content outstream position.",
21906	//         "Target ads to a specific device type (for example, tablet or connected TV).",
21907	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
21908	//         "Target ads to specific web browsers (for example, Chrome).",
21909	//         "Target ads to a specific household income range (for example, top 10%).",
21910	//         "Target ads in a specific on screen position.",
21911	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
21912	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
21913	//         "Filter website content by sensitive categories (for example, adult).",
21914	//         "Target ads to a specific environment (for example, web or app).",
21915	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
21916	//         "Target ads to a specific operating system (for example, macOS).",
21917	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
21918	//         "Target ads to a specific keyword (for example, dog or retriever).",
21919	//         "Target ads to a specific negative keyword list.",
21920	//         "Target ads to a specific viewability (for example, 80% viewable).",
21921	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
21922	//         "Purchase impressions from specific deals and auction packages.",
21923	//         "Target ads to a specific language (for example, English or Japanese).",
21924	//         "Target ads to ads.txt authorized sellers.",
21925	//         "Target ads to a specific regional location (for example, a city or state).",
21926	//         "Purchase impressions from a group of deals and auction packages.",
21927	//         "Purchase impressions from specific exchanges.",
21928	//         "Purchase impressions from specific sub-exchanges.",
21929	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
21930	//         "Target ads around locations of a business chain within a specific geo region.",
21931	//         "Target ads to a specific native content position.",
21932	//         "Target ads in an Open Measurement enabled inventory."
21933	//       ],
21934	//       "location": "path",
21935	//       "pattern": "^[^/]+$",
21936	//       "required": true,
21937	//       "type": "string"
21938	//     }
21939	//   },
21940	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
21941	//   "response": {
21942	//     "$ref": "AssignedTargetingOption"
21943	//   },
21944	//   "scopes": [
21945	//     "https://www.googleapis.com/auth/display-video"
21946	//   ]
21947	// }
21948
21949}
21950
21951// method id "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.list":
21952
21953type AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall struct {
21954	s                *Service
21955	advertiserId     int64
21956	insertionOrderId int64
21957	targetingType    string
21958	urlParams_       gensupport.URLParams
21959	ifNoneMatch_     string
21960	ctx_             context.Context
21961	header_          http.Header
21962}
21963
21964// List: Lists the targeting options assigned to an insertion order.
21965//
21966// - advertiserId: The ID of the advertiser the insertion order belongs
21967//   to.
21968// - insertionOrderId: The ID of the insertion order to list assigned
21969//   targeting options for.
21970// - targetingType: Identifies the type of assigned targeting options to
21971//   list.
21972func (r *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService) List(advertiserId int64, insertionOrderId int64, targetingType string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
21973	c := &AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
21974	c.advertiserId = advertiserId
21975	c.insertionOrderId = insertionOrderId
21976	c.targetingType = targetingType
21977	return c
21978}
21979
21980// Filter sets the optional parameter "filter": Allows filtering by
21981// assigned targeting option properties. Supported syntax: * Filter
21982// expressions are made up of one or more restrictions. * Restrictions
21983// can be combined by the logical operator `OR`. * A restriction has the
21984// form of `{field} {operator} {value}`. * The operator must be `EQUALS
21985// (=)`. * Supported fields: - `assignedTargetingOptionId` -
21986// `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2
21987// `assignedTargetingOptionId="1" OR assignedTargetingOptionId="2" *
21988// AssignedTargetingOptions with inheritance status of NOT_INHERITED or
21989// INHERITED_FROM_PARTNER `inheritance="NOT_INHERITED" OR
21990// inheritance="INHERITED_FROM_PARTNER" The length of this field should
21991// be no more than 500 characters.
21992func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) Filter(filter string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
21993	c.urlParams_.Set("filter", filter)
21994	return c
21995}
21996
21997// OrderBy sets the optional parameter "orderBy": Field by which to sort
21998// the list. Acceptable values are: * `assignedTargetingOptionId`
21999// (default) The default sorting order is ascending. To specify
22000// descending order for a field, a suffix "desc" should be added to the
22001// field name. Example: `assignedTargetingOptionId desc`.
22002func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) OrderBy(orderBy string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
22003	c.urlParams_.Set("orderBy", orderBy)
22004	return c
22005}
22006
22007// PageSize sets the optional parameter "pageSize": Requested page size.
22008// Must be between `1` and `5000`. If unspecified will default to `100`.
22009// Returns error code `INVALID_ARGUMENT` if an invalid value is
22010// specified.
22011func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) PageSize(pageSize int64) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
22012	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
22013	return c
22014}
22015
22016// PageToken sets the optional parameter "pageToken": A token
22017// identifying a page of results the server should return. Typically,
22018// this is the value of next_page_token returned from the previous call
22019// to `ListInsertionOrderAssignedTargetingOptions` method. If not
22020// specified, the first page of results will be returned.
22021func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) PageToken(pageToken string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
22022	c.urlParams_.Set("pageToken", pageToken)
22023	return c
22024}
22025
22026// Fields allows partial responses to be retrieved. See
22027// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
22028// for more information.
22029func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
22030	c.urlParams_.Set("fields", googleapi.CombineFields(s))
22031	return c
22032}
22033
22034// IfNoneMatch sets the optional parameter which makes the operation
22035// fail if the object's ETag matches the given value. This is useful for
22036// getting updates only after the object has changed since the last
22037// request. Use googleapi.IsNotModified to check whether the response
22038// error from Do is the result of In-None-Match.
22039func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) IfNoneMatch(entityTag string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
22040	c.ifNoneMatch_ = entityTag
22041	return c
22042}
22043
22044// Context sets the context to be used in this call's Do method. Any
22045// pending HTTP request will be aborted if the provided context is
22046// canceled.
22047func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) Context(ctx context.Context) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
22048	c.ctx_ = ctx
22049	return c
22050}
22051
22052// Header returns an http.Header that can be modified by the caller to
22053// add HTTP headers to the request.
22054func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) Header() http.Header {
22055	if c.header_ == nil {
22056		c.header_ = make(http.Header)
22057	}
22058	return c.header_
22059}
22060
22061func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) doRequest(alt string) (*http.Response, error) {
22062	reqHeaders := make(http.Header)
22063	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
22064	for k, v := range c.header_ {
22065		reqHeaders[k] = v
22066	}
22067	reqHeaders.Set("User-Agent", c.s.userAgent())
22068	if c.ifNoneMatch_ != "" {
22069		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
22070	}
22071	var body io.Reader = nil
22072	c.urlParams_.Set("alt", alt)
22073	c.urlParams_.Set("prettyPrint", "false")
22074	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
22075	urls += "?" + c.urlParams_.Encode()
22076	req, err := http.NewRequest("GET", urls, body)
22077	if err != nil {
22078		return nil, err
22079	}
22080	req.Header = reqHeaders
22081	googleapi.Expand(req.URL, map[string]string{
22082		"advertiserId":     strconv.FormatInt(c.advertiserId, 10),
22083		"insertionOrderId": strconv.FormatInt(c.insertionOrderId, 10),
22084		"targetingType":    c.targetingType,
22085	})
22086	return gensupport.SendRequest(c.ctx_, c.s.client, req)
22087}
22088
22089// Do executes the "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.list" call.
22090// Exactly one of *ListInsertionOrderAssignedTargetingOptionsResponse or
22091// error will be non-nil. Any non-2xx status code is an error. Response
22092// headers are in either
22093// *ListInsertionOrderAssignedTargetingOptionsResponse.ServerResponse.Hea
22094// der or (if a response was returned at all) in
22095// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
22096// whether the returned error was because http.StatusNotModified was
22097// returned.
22098func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) Do(opts ...googleapi.CallOption) (*ListInsertionOrderAssignedTargetingOptionsResponse, error) {
22099	gensupport.SetOptions(c.urlParams_, opts...)
22100	res, err := c.doRequest("json")
22101	if res != nil && res.StatusCode == http.StatusNotModified {
22102		if res.Body != nil {
22103			res.Body.Close()
22104		}
22105		return nil, &googleapi.Error{
22106			Code:   res.StatusCode,
22107			Header: res.Header,
22108		}
22109	}
22110	if err != nil {
22111		return nil, err
22112	}
22113	defer googleapi.CloseBody(res)
22114	if err := googleapi.CheckResponse(res); err != nil {
22115		return nil, err
22116	}
22117	ret := &ListInsertionOrderAssignedTargetingOptionsResponse{
22118		ServerResponse: googleapi.ServerResponse{
22119			Header:         res.Header,
22120			HTTPStatusCode: res.StatusCode,
22121		},
22122	}
22123	target := &ret
22124	if err := gensupport.DecodeResponse(target, res); err != nil {
22125		return nil, err
22126	}
22127	return ret, nil
22128	// {
22129	//   "description": "Lists the targeting options assigned to an insertion order.",
22130	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
22131	//   "httpMethod": "GET",
22132	//   "id": "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.list",
22133	//   "parameterOrder": [
22134	//     "advertiserId",
22135	//     "insertionOrderId",
22136	//     "targetingType"
22137	//   ],
22138	//   "parameters": {
22139	//     "advertiserId": {
22140	//       "description": "Required. The ID of the advertiser the insertion order belongs to.",
22141	//       "format": "int64",
22142	//       "location": "path",
22143	//       "pattern": "^[^/]+$",
22144	//       "required": true,
22145	//       "type": "string"
22146	//     },
22147	//     "filter": {
22148	//       "description": "Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` - `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2 `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * AssignedTargetingOptions with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters.",
22149	//       "location": "query",
22150	//       "type": "string"
22151	//     },
22152	//     "insertionOrderId": {
22153	//       "description": "Required. The ID of the insertion order to list assigned targeting options for.",
22154	//       "format": "int64",
22155	//       "location": "path",
22156	//       "pattern": "^[^/]+$",
22157	//       "required": true,
22158	//       "type": "string"
22159	//     },
22160	//     "orderBy": {
22161	//       "description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.",
22162	//       "location": "query",
22163	//       "type": "string"
22164	//     },
22165	//     "pageSize": {
22166	//       "description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
22167	//       "format": "int32",
22168	//       "location": "query",
22169	//       "type": "integer"
22170	//     },
22171	//     "pageToken": {
22172	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInsertionOrderAssignedTargetingOptions` method. If not specified, the first page of results will be returned.",
22173	//       "location": "query",
22174	//       "type": "string"
22175	//     },
22176	//     "targetingType": {
22177	//       "description": "Required. Identifies the type of assigned targeting options to list.",
22178	//       "enum": [
22179	//         "TARGETING_TYPE_UNSPECIFIED",
22180	//         "TARGETING_TYPE_CHANNEL",
22181	//         "TARGETING_TYPE_APP_CATEGORY",
22182	//         "TARGETING_TYPE_APP",
22183	//         "TARGETING_TYPE_URL",
22184	//         "TARGETING_TYPE_DAY_AND_TIME",
22185	//         "TARGETING_TYPE_AGE_RANGE",
22186	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
22187	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
22188	//         "TARGETING_TYPE_GENDER",
22189	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
22190	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
22191	//         "TARGETING_TYPE_PARENTAL_STATUS",
22192	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
22193	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
22194	//         "TARGETING_TYPE_DEVICE_TYPE",
22195	//         "TARGETING_TYPE_AUDIENCE_GROUP",
22196	//         "TARGETING_TYPE_BROWSER",
22197	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
22198	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
22199	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
22200	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
22201	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
22202	//         "TARGETING_TYPE_ENVIRONMENT",
22203	//         "TARGETING_TYPE_CARRIER_AND_ISP",
22204	//         "TARGETING_TYPE_OPERATING_SYSTEM",
22205	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
22206	//         "TARGETING_TYPE_KEYWORD",
22207	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
22208	//         "TARGETING_TYPE_VIEWABILITY",
22209	//         "TARGETING_TYPE_CATEGORY",
22210	//         "TARGETING_TYPE_INVENTORY_SOURCE",
22211	//         "TARGETING_TYPE_LANGUAGE",
22212	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
22213	//         "TARGETING_TYPE_GEO_REGION",
22214	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
22215	//         "TARGETING_TYPE_EXCHANGE",
22216	//         "TARGETING_TYPE_SUB_EXCHANGE",
22217	//         "TARGETING_TYPE_POI",
22218	//         "TARGETING_TYPE_BUSINESS_CHAIN",
22219	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
22220	//         "TARGETING_TYPE_OMID"
22221	//       ],
22222	//       "enumDescriptions": [
22223	//         "Default value when type is not specified or is unknown in this version.",
22224	//         "Target a channel (a custom group of related websites or apps).",
22225	//         "Target an app category (for example, education or puzzle games).",
22226	//         "Target a specific app (for example, Angry Birds).",
22227	//         "Target a specific url (for example, quora.com).",
22228	//         "Target ads during a chosen time period on a specific day.",
22229	//         "Target ads to a specific age range (for example, 18-24).",
22230	//         "Target ads to the specified regions on a regional location list.",
22231	//         "Target ads to the specified points of interest on a proximity location list.",
22232	//         "Target ads to a specific gender (for example, female or male).",
22233	//         "Target a specific video player size for video ads.",
22234	//         "Target user rewarded content for video ads.",
22235	//         "Target ads to a specific parental status (for example, parent or not a parent).",
22236	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
22237	//         "Target ads in a specific content outstream position.",
22238	//         "Target ads to a specific device type (for example, tablet or connected TV).",
22239	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
22240	//         "Target ads to specific web browsers (for example, Chrome).",
22241	//         "Target ads to a specific household income range (for example, top 10%).",
22242	//         "Target ads in a specific on screen position.",
22243	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
22244	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
22245	//         "Filter website content by sensitive categories (for example, adult).",
22246	//         "Target ads to a specific environment (for example, web or app).",
22247	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
22248	//         "Target ads to a specific operating system (for example, macOS).",
22249	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
22250	//         "Target ads to a specific keyword (for example, dog or retriever).",
22251	//         "Target ads to a specific negative keyword list.",
22252	//         "Target ads to a specific viewability (for example, 80% viewable).",
22253	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
22254	//         "Purchase impressions from specific deals and auction packages.",
22255	//         "Target ads to a specific language (for example, English or Japanese).",
22256	//         "Target ads to ads.txt authorized sellers.",
22257	//         "Target ads to a specific regional location (for example, a city or state).",
22258	//         "Purchase impressions from a group of deals and auction packages.",
22259	//         "Purchase impressions from specific exchanges.",
22260	//         "Purchase impressions from specific sub-exchanges.",
22261	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
22262	//         "Target ads around locations of a business chain within a specific geo region.",
22263	//         "Target ads to a specific native content position.",
22264	//         "Target ads in an Open Measurement enabled inventory."
22265	//       ],
22266	//       "location": "path",
22267	//       "pattern": "^[^/]+$",
22268	//       "required": true,
22269	//       "type": "string"
22270	//     }
22271	//   },
22272	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
22273	//   "response": {
22274	//     "$ref": "ListInsertionOrderAssignedTargetingOptionsResponse"
22275	//   },
22276	//   "scopes": [
22277	//     "https://www.googleapis.com/auth/display-video"
22278	//   ]
22279	// }
22280
22281}
22282
22283// Pages invokes f for each page of results.
22284// A non-nil error returned from f will halt the iteration.
22285// The provided context supersedes any context provided to the Context method.
22286func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) Pages(ctx context.Context, f func(*ListInsertionOrderAssignedTargetingOptionsResponse) error) error {
22287	c.ctx_ = ctx
22288	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
22289	for {
22290		x, err := c.Do()
22291		if err != nil {
22292			return err
22293		}
22294		if err := f(x); err != nil {
22295			return err
22296		}
22297		if x.NextPageToken == "" {
22298			return nil
22299		}
22300		c.PageToken(x.NextPageToken)
22301	}
22302}
22303
22304// method id "displayvideo.advertisers.invoices.list":
22305
22306type AdvertisersInvoicesListCall struct {
22307	s            *Service
22308	advertiserId int64
22309	urlParams_   gensupport.URLParams
22310	ifNoneMatch_ string
22311	ctx_         context.Context
22312	header_      http.Header
22313}
22314
22315// List: Lists invoices posted for an advertiser in a given month.
22316// Invoices generated by billing profiles with a "Partner" invoice level
22317// are not retrievable through this method.
22318//
22319// - advertiserId: The ID of the advertiser to list invoices for.
22320func (r *AdvertisersInvoicesService) List(advertiserId int64) *AdvertisersInvoicesListCall {
22321	c := &AdvertisersInvoicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
22322	c.advertiserId = advertiserId
22323	return c
22324}
22325
22326// IssueMonth sets the optional parameter "issueMonth": The month to
22327// list the invoices for. If not set, the request will retrieve invoices
22328// for the previous month. Must be in the format YYYYMM.
22329func (c *AdvertisersInvoicesListCall) IssueMonth(issueMonth string) *AdvertisersInvoicesListCall {
22330	c.urlParams_.Set("issueMonth", issueMonth)
22331	return c
22332}
22333
22334// LoiSapinInvoiceType sets the optional parameter
22335// "loiSapinInvoiceType": Select type of invoice to retrieve for Loi
22336// Sapin advertisers. Only applicable to Loi Sapin advertisers. Will be
22337// ignored otherwise.
22338//
22339// Possible values:
22340//   "LOI_SAPIN_INVOICE_TYPE_UNSPECIFIED" - Value is not specified.
22341//   "LOI_SAPIN_INVOICE_TYPE_MEDIA" - Invoices with Media cost.
22342//   "LOI_SAPIN_INVOICE_TYPE_PLATFORM" - Invoices with Platform fee.
22343func (c *AdvertisersInvoicesListCall) LoiSapinInvoiceType(loiSapinInvoiceType string) *AdvertisersInvoicesListCall {
22344	c.urlParams_.Set("loiSapinInvoiceType", loiSapinInvoiceType)
22345	return c
22346}
22347
22348// PageSize sets the optional parameter "pageSize": Requested page size.
22349// Must be between `1` and `100`. If unspecified will default to `100`.
22350// Returns error code `INVALID_ARGUMENT` if an invalid value is
22351// specified.
22352func (c *AdvertisersInvoicesListCall) PageSize(pageSize int64) *AdvertisersInvoicesListCall {
22353	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
22354	return c
22355}
22356
22357// PageToken sets the optional parameter "pageToken": A token
22358// identifying a page of results the server should return. Typically,
22359// this is the value of next_page_token returned from the previous call
22360// to `ListInvoices` method. If not specified, the first page of results
22361// will be returned.
22362func (c *AdvertisersInvoicesListCall) PageToken(pageToken string) *AdvertisersInvoicesListCall {
22363	c.urlParams_.Set("pageToken", pageToken)
22364	return c
22365}
22366
22367// Fields allows partial responses to be retrieved. See
22368// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
22369// for more information.
22370func (c *AdvertisersInvoicesListCall) Fields(s ...googleapi.Field) *AdvertisersInvoicesListCall {
22371	c.urlParams_.Set("fields", googleapi.CombineFields(s))
22372	return c
22373}
22374
22375// IfNoneMatch sets the optional parameter which makes the operation
22376// fail if the object's ETag matches the given value. This is useful for
22377// getting updates only after the object has changed since the last
22378// request. Use googleapi.IsNotModified to check whether the response
22379// error from Do is the result of In-None-Match.
22380func (c *AdvertisersInvoicesListCall) IfNoneMatch(entityTag string) *AdvertisersInvoicesListCall {
22381	c.ifNoneMatch_ = entityTag
22382	return c
22383}
22384
22385// Context sets the context to be used in this call's Do method. Any
22386// pending HTTP request will be aborted if the provided context is
22387// canceled.
22388func (c *AdvertisersInvoicesListCall) Context(ctx context.Context) *AdvertisersInvoicesListCall {
22389	c.ctx_ = ctx
22390	return c
22391}
22392
22393// Header returns an http.Header that can be modified by the caller to
22394// add HTTP headers to the request.
22395func (c *AdvertisersInvoicesListCall) Header() http.Header {
22396	if c.header_ == nil {
22397		c.header_ = make(http.Header)
22398	}
22399	return c.header_
22400}
22401
22402func (c *AdvertisersInvoicesListCall) doRequest(alt string) (*http.Response, error) {
22403	reqHeaders := make(http.Header)
22404	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
22405	for k, v := range c.header_ {
22406		reqHeaders[k] = v
22407	}
22408	reqHeaders.Set("User-Agent", c.s.userAgent())
22409	if c.ifNoneMatch_ != "" {
22410		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
22411	}
22412	var body io.Reader = nil
22413	c.urlParams_.Set("alt", alt)
22414	c.urlParams_.Set("prettyPrint", "false")
22415	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/invoices")
22416	urls += "?" + c.urlParams_.Encode()
22417	req, err := http.NewRequest("GET", urls, body)
22418	if err != nil {
22419		return nil, err
22420	}
22421	req.Header = reqHeaders
22422	googleapi.Expand(req.URL, map[string]string{
22423		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
22424	})
22425	return gensupport.SendRequest(c.ctx_, c.s.client, req)
22426}
22427
22428// Do executes the "displayvideo.advertisers.invoices.list" call.
22429// Exactly one of *ListInvoicesResponse or error will be non-nil. Any
22430// non-2xx status code is an error. Response headers are in either
22431// *ListInvoicesResponse.ServerResponse.Header or (if a response was
22432// returned at all) in error.(*googleapi.Error).Header. Use
22433// googleapi.IsNotModified to check whether the returned error was
22434// because http.StatusNotModified was returned.
22435func (c *AdvertisersInvoicesListCall) Do(opts ...googleapi.CallOption) (*ListInvoicesResponse, error) {
22436	gensupport.SetOptions(c.urlParams_, opts...)
22437	res, err := c.doRequest("json")
22438	if res != nil && res.StatusCode == http.StatusNotModified {
22439		if res.Body != nil {
22440			res.Body.Close()
22441		}
22442		return nil, &googleapi.Error{
22443			Code:   res.StatusCode,
22444			Header: res.Header,
22445		}
22446	}
22447	if err != nil {
22448		return nil, err
22449	}
22450	defer googleapi.CloseBody(res)
22451	if err := googleapi.CheckResponse(res); err != nil {
22452		return nil, err
22453	}
22454	ret := &ListInvoicesResponse{
22455		ServerResponse: googleapi.ServerResponse{
22456			Header:         res.Header,
22457			HTTPStatusCode: res.StatusCode,
22458		},
22459	}
22460	target := &ret
22461	if err := gensupport.DecodeResponse(target, res); err != nil {
22462		return nil, err
22463	}
22464	return ret, nil
22465	// {
22466	//   "description": "Lists invoices posted for an advertiser in a given month. Invoices generated by billing profiles with a \"Partner\" invoice level are not retrievable through this method.",
22467	//   "flatPath": "v1/advertisers/{advertisersId}/invoices",
22468	//   "httpMethod": "GET",
22469	//   "id": "displayvideo.advertisers.invoices.list",
22470	//   "parameterOrder": [
22471	//     "advertiserId"
22472	//   ],
22473	//   "parameters": {
22474	//     "advertiserId": {
22475	//       "description": "Required. The ID of the advertiser to list invoices for.",
22476	//       "format": "int64",
22477	//       "location": "path",
22478	//       "pattern": "^[^/]+$",
22479	//       "required": true,
22480	//       "type": "string"
22481	//     },
22482	//     "issueMonth": {
22483	//       "description": "The month to list the invoices for. If not set, the request will retrieve invoices for the previous month. Must be in the format YYYYMM.",
22484	//       "location": "query",
22485	//       "type": "string"
22486	//     },
22487	//     "loiSapinInvoiceType": {
22488	//       "description": "Select type of invoice to retrieve for Loi Sapin advertisers. Only applicable to Loi Sapin advertisers. Will be ignored otherwise.",
22489	//       "enum": [
22490	//         "LOI_SAPIN_INVOICE_TYPE_UNSPECIFIED",
22491	//         "LOI_SAPIN_INVOICE_TYPE_MEDIA",
22492	//         "LOI_SAPIN_INVOICE_TYPE_PLATFORM"
22493	//       ],
22494	//       "enumDescriptions": [
22495	//         "Value is not specified.",
22496	//         "Invoices with Media cost.",
22497	//         "Invoices with Platform fee."
22498	//       ],
22499	//       "location": "query",
22500	//       "type": "string"
22501	//     },
22502	//     "pageSize": {
22503	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
22504	//       "format": "int32",
22505	//       "location": "query",
22506	//       "type": "integer"
22507	//     },
22508	//     "pageToken": {
22509	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInvoices` method. If not specified, the first page of results will be returned.",
22510	//       "location": "query",
22511	//       "type": "string"
22512	//     }
22513	//   },
22514	//   "path": "v1/advertisers/{+advertiserId}/invoices",
22515	//   "response": {
22516	//     "$ref": "ListInvoicesResponse"
22517	//   },
22518	//   "scopes": [
22519	//     "https://www.googleapis.com/auth/display-video",
22520	//     "https://www.googleapis.com/auth/display-video-mediaplanning"
22521	//   ]
22522	// }
22523
22524}
22525
22526// Pages invokes f for each page of results.
22527// A non-nil error returned from f will halt the iteration.
22528// The provided context supersedes any context provided to the Context method.
22529func (c *AdvertisersInvoicesListCall) Pages(ctx context.Context, f func(*ListInvoicesResponse) error) error {
22530	c.ctx_ = ctx
22531	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
22532	for {
22533		x, err := c.Do()
22534		if err != nil {
22535			return err
22536		}
22537		if err := f(x); err != nil {
22538			return err
22539		}
22540		if x.NextPageToken == "" {
22541			return nil
22542		}
22543		c.PageToken(x.NextPageToken)
22544	}
22545}
22546
22547// method id "displayvideo.advertisers.invoices.lookupInvoiceCurrency":
22548
22549type AdvertisersInvoicesLookupInvoiceCurrencyCall struct {
22550	s            *Service
22551	advertiserId int64
22552	urlParams_   gensupport.URLParams
22553	ifNoneMatch_ string
22554	ctx_         context.Context
22555	header_      http.Header
22556}
22557
22558// LookupInvoiceCurrency: Retrieves the invoice currency used by an
22559// advertiser in a given month.
22560//
22561// - advertiserId: The ID of the advertiser to lookup currency for.
22562func (r *AdvertisersInvoicesService) LookupInvoiceCurrency(advertiserId int64) *AdvertisersInvoicesLookupInvoiceCurrencyCall {
22563	c := &AdvertisersInvoicesLookupInvoiceCurrencyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
22564	c.advertiserId = advertiserId
22565	return c
22566}
22567
22568// InvoiceMonth sets the optional parameter "invoiceMonth": Month for
22569// which the currency is needed. If not set, the request will return
22570// existing currency settings for the advertiser. Must be in the format
22571// YYYYMM.
22572func (c *AdvertisersInvoicesLookupInvoiceCurrencyCall) InvoiceMonth(invoiceMonth string) *AdvertisersInvoicesLookupInvoiceCurrencyCall {
22573	c.urlParams_.Set("invoiceMonth", invoiceMonth)
22574	return c
22575}
22576
22577// Fields allows partial responses to be retrieved. See
22578// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
22579// for more information.
22580func (c *AdvertisersInvoicesLookupInvoiceCurrencyCall) Fields(s ...googleapi.Field) *AdvertisersInvoicesLookupInvoiceCurrencyCall {
22581	c.urlParams_.Set("fields", googleapi.CombineFields(s))
22582	return c
22583}
22584
22585// IfNoneMatch sets the optional parameter which makes the operation
22586// fail if the object's ETag matches the given value. This is useful for
22587// getting updates only after the object has changed since the last
22588// request. Use googleapi.IsNotModified to check whether the response
22589// error from Do is the result of In-None-Match.
22590func (c *AdvertisersInvoicesLookupInvoiceCurrencyCall) IfNoneMatch(entityTag string) *AdvertisersInvoicesLookupInvoiceCurrencyCall {
22591	c.ifNoneMatch_ = entityTag
22592	return c
22593}
22594
22595// Context sets the context to be used in this call's Do method. Any
22596// pending HTTP request will be aborted if the provided context is
22597// canceled.
22598func (c *AdvertisersInvoicesLookupInvoiceCurrencyCall) Context(ctx context.Context) *AdvertisersInvoicesLookupInvoiceCurrencyCall {
22599	c.ctx_ = ctx
22600	return c
22601}
22602
22603// Header returns an http.Header that can be modified by the caller to
22604// add HTTP headers to the request.
22605func (c *AdvertisersInvoicesLookupInvoiceCurrencyCall) Header() http.Header {
22606	if c.header_ == nil {
22607		c.header_ = make(http.Header)
22608	}
22609	return c.header_
22610}
22611
22612func (c *AdvertisersInvoicesLookupInvoiceCurrencyCall) doRequest(alt string) (*http.Response, error) {
22613	reqHeaders := make(http.Header)
22614	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
22615	for k, v := range c.header_ {
22616		reqHeaders[k] = v
22617	}
22618	reqHeaders.Set("User-Agent", c.s.userAgent())
22619	if c.ifNoneMatch_ != "" {
22620		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
22621	}
22622	var body io.Reader = nil
22623	c.urlParams_.Set("alt", alt)
22624	c.urlParams_.Set("prettyPrint", "false")
22625	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/invoices:lookupInvoiceCurrency")
22626	urls += "?" + c.urlParams_.Encode()
22627	req, err := http.NewRequest("GET", urls, body)
22628	if err != nil {
22629		return nil, err
22630	}
22631	req.Header = reqHeaders
22632	googleapi.Expand(req.URL, map[string]string{
22633		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
22634	})
22635	return gensupport.SendRequest(c.ctx_, c.s.client, req)
22636}
22637
22638// Do executes the "displayvideo.advertisers.invoices.lookupInvoiceCurrency" call.
22639// Exactly one of *LookupInvoiceCurrencyResponse or error will be
22640// non-nil. Any non-2xx status code is an error. Response headers are in
22641// either *LookupInvoiceCurrencyResponse.ServerResponse.Header or (if a
22642// response was returned at all) in error.(*googleapi.Error).Header. Use
22643// googleapi.IsNotModified to check whether the returned error was
22644// because http.StatusNotModified was returned.
22645func (c *AdvertisersInvoicesLookupInvoiceCurrencyCall) Do(opts ...googleapi.CallOption) (*LookupInvoiceCurrencyResponse, error) {
22646	gensupport.SetOptions(c.urlParams_, opts...)
22647	res, err := c.doRequest("json")
22648	if res != nil && res.StatusCode == http.StatusNotModified {
22649		if res.Body != nil {
22650			res.Body.Close()
22651		}
22652		return nil, &googleapi.Error{
22653			Code:   res.StatusCode,
22654			Header: res.Header,
22655		}
22656	}
22657	if err != nil {
22658		return nil, err
22659	}
22660	defer googleapi.CloseBody(res)
22661	if err := googleapi.CheckResponse(res); err != nil {
22662		return nil, err
22663	}
22664	ret := &LookupInvoiceCurrencyResponse{
22665		ServerResponse: googleapi.ServerResponse{
22666			Header:         res.Header,
22667			HTTPStatusCode: res.StatusCode,
22668		},
22669	}
22670	target := &ret
22671	if err := gensupport.DecodeResponse(target, res); err != nil {
22672		return nil, err
22673	}
22674	return ret, nil
22675	// {
22676	//   "description": "Retrieves the invoice currency used by an advertiser in a given month.",
22677	//   "flatPath": "v1/advertisers/{advertisersId}/invoices:lookupInvoiceCurrency",
22678	//   "httpMethod": "GET",
22679	//   "id": "displayvideo.advertisers.invoices.lookupInvoiceCurrency",
22680	//   "parameterOrder": [
22681	//     "advertiserId"
22682	//   ],
22683	//   "parameters": {
22684	//     "advertiserId": {
22685	//       "description": "Required. The ID of the advertiser to lookup currency for.",
22686	//       "format": "int64",
22687	//       "location": "path",
22688	//       "pattern": "^[^/]+$",
22689	//       "required": true,
22690	//       "type": "string"
22691	//     },
22692	//     "invoiceMonth": {
22693	//       "description": "Month for which the currency is needed. If not set, the request will return existing currency settings for the advertiser. Must be in the format YYYYMM.",
22694	//       "location": "query",
22695	//       "type": "string"
22696	//     }
22697	//   },
22698	//   "path": "v1/advertisers/{+advertiserId}/invoices:lookupInvoiceCurrency",
22699	//   "response": {
22700	//     "$ref": "LookupInvoiceCurrencyResponse"
22701	//   },
22702	//   "scopes": [
22703	//     "https://www.googleapis.com/auth/display-video",
22704	//     "https://www.googleapis.com/auth/display-video-mediaplanning"
22705	//   ]
22706	// }
22707
22708}
22709
22710// method id "displayvideo.advertisers.lineItems.bulkEditLineItemAssignedTargetingOptions":
22711
22712type AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall struct {
22713	s                                               *Service
22714	advertiserId                                    int64
22715	lineItemId                                      int64
22716	bulkeditlineitemassignedtargetingoptionsrequest *BulkEditLineItemAssignedTargetingOptionsRequest
22717	urlParams_                                      gensupport.URLParams
22718	ctx_                                            context.Context
22719	header_                                         http.Header
22720}
22721
22722// BulkEditLineItemAssignedTargetingOptions: Bulk edits targeting
22723// options under a single line item. The operation will delete the
22724// assigned targeting options provided in
22725// BulkEditLineItemAssignedTargetingOptionsRequest.delete_requests and
22726// then create the assigned targeting options provided in
22727// BulkEditLineItemAssignedTargetingOptionsRequest.create_requests .
22728//
22729// - advertiserId: The ID of the advertiser the line item belongs to.
22730// - lineItemId: The ID of the line item the assigned targeting option
22731//   will belong to.
22732func (r *AdvertisersLineItemsService) BulkEditLineItemAssignedTargetingOptions(advertiserId int64, lineItemId int64, bulkeditlineitemassignedtargetingoptionsrequest *BulkEditLineItemAssignedTargetingOptionsRequest) *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall {
22733	c := &AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
22734	c.advertiserId = advertiserId
22735	c.lineItemId = lineItemId
22736	c.bulkeditlineitemassignedtargetingoptionsrequest = bulkeditlineitemassignedtargetingoptionsrequest
22737	return c
22738}
22739
22740// Fields allows partial responses to be retrieved. See
22741// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
22742// for more information.
22743func (c *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall {
22744	c.urlParams_.Set("fields", googleapi.CombineFields(s))
22745	return c
22746}
22747
22748// Context sets the context to be used in this call's Do method. Any
22749// pending HTTP request will be aborted if the provided context is
22750// canceled.
22751func (c *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall) Context(ctx context.Context) *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall {
22752	c.ctx_ = ctx
22753	return c
22754}
22755
22756// Header returns an http.Header that can be modified by the caller to
22757// add HTTP headers to the request.
22758func (c *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall) Header() http.Header {
22759	if c.header_ == nil {
22760		c.header_ = make(http.Header)
22761	}
22762	return c.header_
22763}
22764
22765func (c *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
22766	reqHeaders := make(http.Header)
22767	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
22768	for k, v := range c.header_ {
22769		reqHeaders[k] = v
22770	}
22771	reqHeaders.Set("User-Agent", c.s.userAgent())
22772	var body io.Reader = nil
22773	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditlineitemassignedtargetingoptionsrequest)
22774	if err != nil {
22775		return nil, err
22776	}
22777	reqHeaders.Set("Content-Type", "application/json")
22778	c.urlParams_.Set("alt", alt)
22779	c.urlParams_.Set("prettyPrint", "false")
22780	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}:bulkEditLineItemAssignedTargetingOptions")
22781	urls += "?" + c.urlParams_.Encode()
22782	req, err := http.NewRequest("POST", urls, body)
22783	if err != nil {
22784		return nil, err
22785	}
22786	req.Header = reqHeaders
22787	googleapi.Expand(req.URL, map[string]string{
22788		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
22789		"lineItemId":   strconv.FormatInt(c.lineItemId, 10),
22790	})
22791	return gensupport.SendRequest(c.ctx_, c.s.client, req)
22792}
22793
22794// Do executes the "displayvideo.advertisers.lineItems.bulkEditLineItemAssignedTargetingOptions" call.
22795// Exactly one of *BulkEditLineItemAssignedTargetingOptionsResponse or
22796// error will be non-nil. Any non-2xx status code is an error. Response
22797// headers are in either
22798// *BulkEditLineItemAssignedTargetingOptionsResponse.ServerResponse.Heade
22799// r or (if a response was returned at all) in
22800// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
22801// whether the returned error was because http.StatusNotModified was
22802// returned.
22803func (c *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkEditLineItemAssignedTargetingOptionsResponse, error) {
22804	gensupport.SetOptions(c.urlParams_, opts...)
22805	res, err := c.doRequest("json")
22806	if res != nil && res.StatusCode == http.StatusNotModified {
22807		if res.Body != nil {
22808			res.Body.Close()
22809		}
22810		return nil, &googleapi.Error{
22811			Code:   res.StatusCode,
22812			Header: res.Header,
22813		}
22814	}
22815	if err != nil {
22816		return nil, err
22817	}
22818	defer googleapi.CloseBody(res)
22819	if err := googleapi.CheckResponse(res); err != nil {
22820		return nil, err
22821	}
22822	ret := &BulkEditLineItemAssignedTargetingOptionsResponse{
22823		ServerResponse: googleapi.ServerResponse{
22824			Header:         res.Header,
22825			HTTPStatusCode: res.StatusCode,
22826		},
22827	}
22828	target := &ret
22829	if err := gensupport.DecodeResponse(target, res); err != nil {
22830		return nil, err
22831	}
22832	return ret, nil
22833	// {
22834	//   "description": "Bulk edits targeting options under a single line item. The operation will delete the assigned targeting options provided in BulkEditLineItemAssignedTargetingOptionsRequest.delete_requests and then create the assigned targeting options provided in BulkEditLineItemAssignedTargetingOptionsRequest.create_requests .",
22835	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}:bulkEditLineItemAssignedTargetingOptions",
22836	//   "httpMethod": "POST",
22837	//   "id": "displayvideo.advertisers.lineItems.bulkEditLineItemAssignedTargetingOptions",
22838	//   "parameterOrder": [
22839	//     "advertiserId",
22840	//     "lineItemId"
22841	//   ],
22842	//   "parameters": {
22843	//     "advertiserId": {
22844	//       "description": "Required. The ID of the advertiser the line item belongs to.",
22845	//       "format": "int64",
22846	//       "location": "path",
22847	//       "pattern": "^[^/]+$",
22848	//       "required": true,
22849	//       "type": "string"
22850	//     },
22851	//     "lineItemId": {
22852	//       "description": "Required. The ID of the line item the assigned targeting option will belong to.",
22853	//       "format": "int64",
22854	//       "location": "path",
22855	//       "pattern": "^[^/]+$",
22856	//       "required": true,
22857	//       "type": "string"
22858	//     }
22859	//   },
22860	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}:bulkEditLineItemAssignedTargetingOptions",
22861	//   "request": {
22862	//     "$ref": "BulkEditLineItemAssignedTargetingOptionsRequest"
22863	//   },
22864	//   "response": {
22865	//     "$ref": "BulkEditLineItemAssignedTargetingOptionsResponse"
22866	//   },
22867	//   "scopes": [
22868	//     "https://www.googleapis.com/auth/display-video"
22869	//   ]
22870	// }
22871
22872}
22873
22874// method id "displayvideo.advertisers.lineItems.bulkListLineItemAssignedTargetingOptions":
22875
22876type AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall struct {
22877	s            *Service
22878	advertiserId int64
22879	lineItemId   int64
22880	urlParams_   gensupport.URLParams
22881	ifNoneMatch_ string
22882	ctx_         context.Context
22883	header_      http.Header
22884}
22885
22886// BulkListLineItemAssignedTargetingOptions: Lists assigned targeting
22887// options of a line item across targeting types.
22888//
22889// - advertiserId: The ID of the advertiser the line item belongs to.
22890// - lineItemId: The ID of the line item to list assigned targeting
22891//   options for.
22892func (r *AdvertisersLineItemsService) BulkListLineItemAssignedTargetingOptions(advertiserId int64, lineItemId int64) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
22893	c := &AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
22894	c.advertiserId = advertiserId
22895	c.lineItemId = lineItemId
22896	return c
22897}
22898
22899// Filter sets the optional parameter "filter": Allows filtering by
22900// assigned targeting option properties. Supported syntax: * Filter
22901// expressions are made up of one or more restrictions. * Restrictions
22902// can be combined by the logical operator `OR` on the same field. * A
22903// restriction has the form of `{field} {operator} {value}`. * The
22904// operator must be `EQUALS (=)`. * Supported fields: - `targetingType`
22905// - `inheritance` Examples: * AssignedTargetingOptions of targeting
22906// type TARGETING_TYPE_PROXIMITY_LOCATION_LIST or TARGETING_TYPE_CHANNEL
22907// `targetingType="TARGETING_TYPE_PROXIMITY_LOCATION_LIST" OR
22908// targetingType="TARGETING_TYPE_CHANNEL" * AssignedTargetingOptions
22909// with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER
22910// `inheritance="NOT_INHERITED" OR inheritance="INHERITED_FROM_PARTNER"
22911// The length of this field should be no more than 500 characters.
22912func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) Filter(filter string) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
22913	c.urlParams_.Set("filter", filter)
22914	return c
22915}
22916
22917// OrderBy sets the optional parameter "orderBy": Field by which to sort
22918// the list. Acceptable values are: * `targetingType` (default) The
22919// default sorting order is ascending. To specify descending order for a
22920// field, a suffix "desc" should be added to the field name. Example:
22921// `targetingType desc`.
22922func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) OrderBy(orderBy string) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
22923	c.urlParams_.Set("orderBy", orderBy)
22924	return c
22925}
22926
22927// PageSize sets the optional parameter "pageSize": Requested page size.
22928// The size must be an integer between `1` and `5000`. If unspecified,
22929// the default is '5000'. Returns error code `INVALID_ARGUMENT` if an
22930// invalid value is specified.
22931func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) PageSize(pageSize int64) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
22932	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
22933	return c
22934}
22935
22936// PageToken sets the optional parameter "pageToken": A token that lets
22937// the client fetch the next page of results. Typically, this is the
22938// value of next_page_token returned from the previous call to
22939// `BulkListLineItemAssignedTargetingOptions` method. If not specified,
22940// the first page of results will be returned.
22941func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) PageToken(pageToken string) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
22942	c.urlParams_.Set("pageToken", pageToken)
22943	return c
22944}
22945
22946// Fields allows partial responses to be retrieved. See
22947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
22948// for more information.
22949func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
22950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
22951	return c
22952}
22953
22954// IfNoneMatch sets the optional parameter which makes the operation
22955// fail if the object's ETag matches the given value. This is useful for
22956// getting updates only after the object has changed since the last
22957// request. Use googleapi.IsNotModified to check whether the response
22958// error from Do is the result of In-None-Match.
22959func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) IfNoneMatch(entityTag string) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
22960	c.ifNoneMatch_ = entityTag
22961	return c
22962}
22963
22964// Context sets the context to be used in this call's Do method. Any
22965// pending HTTP request will be aborted if the provided context is
22966// canceled.
22967func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) Context(ctx context.Context) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
22968	c.ctx_ = ctx
22969	return c
22970}
22971
22972// Header returns an http.Header that can be modified by the caller to
22973// add HTTP headers to the request.
22974func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) Header() http.Header {
22975	if c.header_ == nil {
22976		c.header_ = make(http.Header)
22977	}
22978	return c.header_
22979}
22980
22981func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
22982	reqHeaders := make(http.Header)
22983	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
22984	for k, v := range c.header_ {
22985		reqHeaders[k] = v
22986	}
22987	reqHeaders.Set("User-Agent", c.s.userAgent())
22988	if c.ifNoneMatch_ != "" {
22989		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
22990	}
22991	var body io.Reader = nil
22992	c.urlParams_.Set("alt", alt)
22993	c.urlParams_.Set("prettyPrint", "false")
22994	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}:bulkListLineItemAssignedTargetingOptions")
22995	urls += "?" + c.urlParams_.Encode()
22996	req, err := http.NewRequest("GET", urls, body)
22997	if err != nil {
22998		return nil, err
22999	}
23000	req.Header = reqHeaders
23001	googleapi.Expand(req.URL, map[string]string{
23002		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
23003		"lineItemId":   strconv.FormatInt(c.lineItemId, 10),
23004	})
23005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
23006}
23007
23008// Do executes the "displayvideo.advertisers.lineItems.bulkListLineItemAssignedTargetingOptions" call.
23009// Exactly one of *BulkListLineItemAssignedTargetingOptionsResponse or
23010// error will be non-nil. Any non-2xx status code is an error. Response
23011// headers are in either
23012// *BulkListLineItemAssignedTargetingOptionsResponse.ServerResponse.Heade
23013// r or (if a response was returned at all) in
23014// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
23015// whether the returned error was because http.StatusNotModified was
23016// returned.
23017func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkListLineItemAssignedTargetingOptionsResponse, error) {
23018	gensupport.SetOptions(c.urlParams_, opts...)
23019	res, err := c.doRequest("json")
23020	if res != nil && res.StatusCode == http.StatusNotModified {
23021		if res.Body != nil {
23022			res.Body.Close()
23023		}
23024		return nil, &googleapi.Error{
23025			Code:   res.StatusCode,
23026			Header: res.Header,
23027		}
23028	}
23029	if err != nil {
23030		return nil, err
23031	}
23032	defer googleapi.CloseBody(res)
23033	if err := googleapi.CheckResponse(res); err != nil {
23034		return nil, err
23035	}
23036	ret := &BulkListLineItemAssignedTargetingOptionsResponse{
23037		ServerResponse: googleapi.ServerResponse{
23038			Header:         res.Header,
23039			HTTPStatusCode: res.StatusCode,
23040		},
23041	}
23042	target := &ret
23043	if err := gensupport.DecodeResponse(target, res); err != nil {
23044		return nil, err
23045	}
23046	return ret, nil
23047	// {
23048	//   "description": "Lists assigned targeting options of a line item across targeting types.",
23049	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}:bulkListLineItemAssignedTargetingOptions",
23050	//   "httpMethod": "GET",
23051	//   "id": "displayvideo.advertisers.lineItems.bulkListLineItemAssignedTargetingOptions",
23052	//   "parameterOrder": [
23053	//     "advertiserId",
23054	//     "lineItemId"
23055	//   ],
23056	//   "parameters": {
23057	//     "advertiserId": {
23058	//       "description": "Required. The ID of the advertiser the line item belongs to.",
23059	//       "format": "int64",
23060	//       "location": "path",
23061	//       "pattern": "^[^/]+$",
23062	//       "required": true,
23063	//       "type": "string"
23064	//     },
23065	//     "filter": {
23066	//       "description": "Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR` on the same field. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `targetingType` - `inheritance` Examples: * AssignedTargetingOptions of targeting type TARGETING_TYPE_PROXIMITY_LOCATION_LIST or TARGETING_TYPE_CHANNEL `targetingType=\"TARGETING_TYPE_PROXIMITY_LOCATION_LIST\" OR targetingType=\"TARGETING_TYPE_CHANNEL\"` * AssignedTargetingOptions with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters.",
23067	//       "location": "query",
23068	//       "type": "string"
23069	//     },
23070	//     "lineItemId": {
23071	//       "description": "Required. The ID of the line item to list assigned targeting options for.",
23072	//       "format": "int64",
23073	//       "location": "path",
23074	//       "pattern": "^[^/]+$",
23075	//       "required": true,
23076	//       "type": "string"
23077	//     },
23078	//     "orderBy": {
23079	//       "description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.",
23080	//       "location": "query",
23081	//       "type": "string"
23082	//     },
23083	//     "pageSize": {
23084	//       "description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is '5000'. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
23085	//       "format": "int32",
23086	//       "location": "query",
23087	//       "type": "integer"
23088	//     },
23089	//     "pageToken": {
23090	//       "description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListLineItemAssignedTargetingOptions` method. If not specified, the first page of results will be returned.",
23091	//       "location": "query",
23092	//       "type": "string"
23093	//     }
23094	//   },
23095	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}:bulkListLineItemAssignedTargetingOptions",
23096	//   "response": {
23097	//     "$ref": "BulkListLineItemAssignedTargetingOptionsResponse"
23098	//   },
23099	//   "scopes": [
23100	//     "https://www.googleapis.com/auth/display-video"
23101	//   ]
23102	// }
23103
23104}
23105
23106// Pages invokes f for each page of results.
23107// A non-nil error returned from f will halt the iteration.
23108// The provided context supersedes any context provided to the Context method.
23109func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) Pages(ctx context.Context, f func(*BulkListLineItemAssignedTargetingOptionsResponse) error) error {
23110	c.ctx_ = ctx
23111	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
23112	for {
23113		x, err := c.Do()
23114		if err != nil {
23115			return err
23116		}
23117		if err := f(x); err != nil {
23118			return err
23119		}
23120		if x.NextPageToken == "" {
23121			return nil
23122		}
23123		c.PageToken(x.NextPageToken)
23124	}
23125}
23126
23127// method id "displayvideo.advertisers.lineItems.create":
23128
23129type AdvertisersLineItemsCreateCall struct {
23130	s            *Service
23131	advertiserId int64
23132	lineitem     *LineItem
23133	urlParams_   gensupport.URLParams
23134	ctx_         context.Context
23135	header_      http.Header
23136}
23137
23138// Create: Creates a new line item. Returns the newly created line item
23139// if successful.
23140//
23141// - advertiserId: Output only. The unique ID of the advertiser the line
23142//   item belongs to.
23143func (r *AdvertisersLineItemsService) Create(advertiserId int64, lineitem *LineItem) *AdvertisersLineItemsCreateCall {
23144	c := &AdvertisersLineItemsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
23145	c.advertiserId = advertiserId
23146	c.lineitem = lineitem
23147	return c
23148}
23149
23150// Fields allows partial responses to be retrieved. See
23151// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
23152// for more information.
23153func (c *AdvertisersLineItemsCreateCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsCreateCall {
23154	c.urlParams_.Set("fields", googleapi.CombineFields(s))
23155	return c
23156}
23157
23158// Context sets the context to be used in this call's Do method. Any
23159// pending HTTP request will be aborted if the provided context is
23160// canceled.
23161func (c *AdvertisersLineItemsCreateCall) Context(ctx context.Context) *AdvertisersLineItemsCreateCall {
23162	c.ctx_ = ctx
23163	return c
23164}
23165
23166// Header returns an http.Header that can be modified by the caller to
23167// add HTTP headers to the request.
23168func (c *AdvertisersLineItemsCreateCall) Header() http.Header {
23169	if c.header_ == nil {
23170		c.header_ = make(http.Header)
23171	}
23172	return c.header_
23173}
23174
23175func (c *AdvertisersLineItemsCreateCall) doRequest(alt string) (*http.Response, error) {
23176	reqHeaders := make(http.Header)
23177	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
23178	for k, v := range c.header_ {
23179		reqHeaders[k] = v
23180	}
23181	reqHeaders.Set("User-Agent", c.s.userAgent())
23182	var body io.Reader = nil
23183	body, err := googleapi.WithoutDataWrapper.JSONReader(c.lineitem)
23184	if err != nil {
23185		return nil, err
23186	}
23187	reqHeaders.Set("Content-Type", "application/json")
23188	c.urlParams_.Set("alt", alt)
23189	c.urlParams_.Set("prettyPrint", "false")
23190	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems")
23191	urls += "?" + c.urlParams_.Encode()
23192	req, err := http.NewRequest("POST", urls, body)
23193	if err != nil {
23194		return nil, err
23195	}
23196	req.Header = reqHeaders
23197	googleapi.Expand(req.URL, map[string]string{
23198		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
23199	})
23200	return gensupport.SendRequest(c.ctx_, c.s.client, req)
23201}
23202
23203// Do executes the "displayvideo.advertisers.lineItems.create" call.
23204// Exactly one of *LineItem or error will be non-nil. Any non-2xx status
23205// code is an error. Response headers are in either
23206// *LineItem.ServerResponse.Header or (if a response was returned at
23207// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
23208// to check whether the returned error was because
23209// http.StatusNotModified was returned.
23210func (c *AdvertisersLineItemsCreateCall) Do(opts ...googleapi.CallOption) (*LineItem, error) {
23211	gensupport.SetOptions(c.urlParams_, opts...)
23212	res, err := c.doRequest("json")
23213	if res != nil && res.StatusCode == http.StatusNotModified {
23214		if res.Body != nil {
23215			res.Body.Close()
23216		}
23217		return nil, &googleapi.Error{
23218			Code:   res.StatusCode,
23219			Header: res.Header,
23220		}
23221	}
23222	if err != nil {
23223		return nil, err
23224	}
23225	defer googleapi.CloseBody(res)
23226	if err := googleapi.CheckResponse(res); err != nil {
23227		return nil, err
23228	}
23229	ret := &LineItem{
23230		ServerResponse: googleapi.ServerResponse{
23231			Header:         res.Header,
23232			HTTPStatusCode: res.StatusCode,
23233		},
23234	}
23235	target := &ret
23236	if err := gensupport.DecodeResponse(target, res); err != nil {
23237		return nil, err
23238	}
23239	return ret, nil
23240	// {
23241	//   "description": "Creates a new line item. Returns the newly created line item if successful.",
23242	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems",
23243	//   "httpMethod": "POST",
23244	//   "id": "displayvideo.advertisers.lineItems.create",
23245	//   "parameterOrder": [
23246	//     "advertiserId"
23247	//   ],
23248	//   "parameters": {
23249	//     "advertiserId": {
23250	//       "description": "Output only. The unique ID of the advertiser the line item belongs to.",
23251	//       "format": "int64",
23252	//       "location": "path",
23253	//       "pattern": "^[^/]+$",
23254	//       "required": true,
23255	//       "type": "string"
23256	//     }
23257	//   },
23258	//   "path": "v1/advertisers/{+advertiserId}/lineItems",
23259	//   "request": {
23260	//     "$ref": "LineItem"
23261	//   },
23262	//   "response": {
23263	//     "$ref": "LineItem"
23264	//   },
23265	//   "scopes": [
23266	//     "https://www.googleapis.com/auth/display-video"
23267	//   ]
23268	// }
23269
23270}
23271
23272// method id "displayvideo.advertisers.lineItems.delete":
23273
23274type AdvertisersLineItemsDeleteCall struct {
23275	s            *Service
23276	advertiserId int64
23277	lineItemId   int64
23278	urlParams_   gensupport.URLParams
23279	ctx_         context.Context
23280	header_      http.Header
23281}
23282
23283// Delete: Deletes a line item. Returns error code `NOT_FOUND` if the
23284// line item does not exist. The line item should be archived first,
23285// i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to
23286// delete it.
23287//
23288// - advertiserId: The ID of the advertiser this line item belongs to.
23289// - lineItemId: The ID of the line item we need to fetch.
23290func (r *AdvertisersLineItemsService) Delete(advertiserId int64, lineItemId int64) *AdvertisersLineItemsDeleteCall {
23291	c := &AdvertisersLineItemsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
23292	c.advertiserId = advertiserId
23293	c.lineItemId = lineItemId
23294	return c
23295}
23296
23297// Fields allows partial responses to be retrieved. See
23298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
23299// for more information.
23300func (c *AdvertisersLineItemsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsDeleteCall {
23301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
23302	return c
23303}
23304
23305// Context sets the context to be used in this call's Do method. Any
23306// pending HTTP request will be aborted if the provided context is
23307// canceled.
23308func (c *AdvertisersLineItemsDeleteCall) Context(ctx context.Context) *AdvertisersLineItemsDeleteCall {
23309	c.ctx_ = ctx
23310	return c
23311}
23312
23313// Header returns an http.Header that can be modified by the caller to
23314// add HTTP headers to the request.
23315func (c *AdvertisersLineItemsDeleteCall) Header() http.Header {
23316	if c.header_ == nil {
23317		c.header_ = make(http.Header)
23318	}
23319	return c.header_
23320}
23321
23322func (c *AdvertisersLineItemsDeleteCall) doRequest(alt string) (*http.Response, error) {
23323	reqHeaders := make(http.Header)
23324	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
23325	for k, v := range c.header_ {
23326		reqHeaders[k] = v
23327	}
23328	reqHeaders.Set("User-Agent", c.s.userAgent())
23329	var body io.Reader = nil
23330	c.urlParams_.Set("alt", alt)
23331	c.urlParams_.Set("prettyPrint", "false")
23332	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}")
23333	urls += "?" + c.urlParams_.Encode()
23334	req, err := http.NewRequest("DELETE", urls, body)
23335	if err != nil {
23336		return nil, err
23337	}
23338	req.Header = reqHeaders
23339	googleapi.Expand(req.URL, map[string]string{
23340		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
23341		"lineItemId":   strconv.FormatInt(c.lineItemId, 10),
23342	})
23343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
23344}
23345
23346// Do executes the "displayvideo.advertisers.lineItems.delete" call.
23347// Exactly one of *Empty or error will be non-nil. Any non-2xx status
23348// code is an error. Response headers are in either
23349// *Empty.ServerResponse.Header or (if a response was returned at all)
23350// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
23351// check whether the returned error was because http.StatusNotModified
23352// was returned.
23353func (c *AdvertisersLineItemsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
23354	gensupport.SetOptions(c.urlParams_, opts...)
23355	res, err := c.doRequest("json")
23356	if res != nil && res.StatusCode == http.StatusNotModified {
23357		if res.Body != nil {
23358			res.Body.Close()
23359		}
23360		return nil, &googleapi.Error{
23361			Code:   res.StatusCode,
23362			Header: res.Header,
23363		}
23364	}
23365	if err != nil {
23366		return nil, err
23367	}
23368	defer googleapi.CloseBody(res)
23369	if err := googleapi.CheckResponse(res); err != nil {
23370		return nil, err
23371	}
23372	ret := &Empty{
23373		ServerResponse: googleapi.ServerResponse{
23374			Header:         res.Header,
23375			HTTPStatusCode: res.StatusCode,
23376		},
23377	}
23378	target := &ret
23379	if err := gensupport.DecodeResponse(target, res); err != nil {
23380		return nil, err
23381	}
23382	return ret, nil
23383	// {
23384	//   "description": "Deletes a line item. Returns error code `NOT_FOUND` if the line item does not exist. The line item should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.",
23385	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}",
23386	//   "httpMethod": "DELETE",
23387	//   "id": "displayvideo.advertisers.lineItems.delete",
23388	//   "parameterOrder": [
23389	//     "advertiserId",
23390	//     "lineItemId"
23391	//   ],
23392	//   "parameters": {
23393	//     "advertiserId": {
23394	//       "description": "The ID of the advertiser this line item belongs to.",
23395	//       "format": "int64",
23396	//       "location": "path",
23397	//       "pattern": "^[^/]+$",
23398	//       "required": true,
23399	//       "type": "string"
23400	//     },
23401	//     "lineItemId": {
23402	//       "description": "The ID of the line item we need to fetch.",
23403	//       "format": "int64",
23404	//       "location": "path",
23405	//       "pattern": "^[^/]+$",
23406	//       "required": true,
23407	//       "type": "string"
23408	//     }
23409	//   },
23410	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}",
23411	//   "response": {
23412	//     "$ref": "Empty"
23413	//   },
23414	//   "scopes": [
23415	//     "https://www.googleapis.com/auth/display-video"
23416	//   ]
23417	// }
23418
23419}
23420
23421// method id "displayvideo.advertisers.lineItems.generateDefault":
23422
23423type AdvertisersLineItemsGenerateDefaultCall struct {
23424	s                              *Service
23425	advertiserId                   int64
23426	generatedefaultlineitemrequest *GenerateDefaultLineItemRequest
23427	urlParams_                     gensupport.URLParams
23428	ctx_                           context.Context
23429	header_                        http.Header
23430}
23431
23432// GenerateDefault: Creates a new line item with settings (including
23433// targeting) inherited from the insertion order and an
23434// `ENTITY_STATUS_DRAFT` entity_status. Returns the newly created line
23435// item if successful. There are default values based on the three
23436// fields: * The insertion order's insertion_order_type * The insertion
23437// order's automation_type * The given line_item_type
23438//
23439// - advertiserId: The ID of the advertiser this line item belongs to.
23440func (r *AdvertisersLineItemsService) GenerateDefault(advertiserId int64, generatedefaultlineitemrequest *GenerateDefaultLineItemRequest) *AdvertisersLineItemsGenerateDefaultCall {
23441	c := &AdvertisersLineItemsGenerateDefaultCall{s: r.s, urlParams_: make(gensupport.URLParams)}
23442	c.advertiserId = advertiserId
23443	c.generatedefaultlineitemrequest = generatedefaultlineitemrequest
23444	return c
23445}
23446
23447// Fields allows partial responses to be retrieved. See
23448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
23449// for more information.
23450func (c *AdvertisersLineItemsGenerateDefaultCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsGenerateDefaultCall {
23451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
23452	return c
23453}
23454
23455// Context sets the context to be used in this call's Do method. Any
23456// pending HTTP request will be aborted if the provided context is
23457// canceled.
23458func (c *AdvertisersLineItemsGenerateDefaultCall) Context(ctx context.Context) *AdvertisersLineItemsGenerateDefaultCall {
23459	c.ctx_ = ctx
23460	return c
23461}
23462
23463// Header returns an http.Header that can be modified by the caller to
23464// add HTTP headers to the request.
23465func (c *AdvertisersLineItemsGenerateDefaultCall) Header() http.Header {
23466	if c.header_ == nil {
23467		c.header_ = make(http.Header)
23468	}
23469	return c.header_
23470}
23471
23472func (c *AdvertisersLineItemsGenerateDefaultCall) doRequest(alt string) (*http.Response, error) {
23473	reqHeaders := make(http.Header)
23474	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
23475	for k, v := range c.header_ {
23476		reqHeaders[k] = v
23477	}
23478	reqHeaders.Set("User-Agent", c.s.userAgent())
23479	var body io.Reader = nil
23480	body, err := googleapi.WithoutDataWrapper.JSONReader(c.generatedefaultlineitemrequest)
23481	if err != nil {
23482		return nil, err
23483	}
23484	reqHeaders.Set("Content-Type", "application/json")
23485	c.urlParams_.Set("alt", alt)
23486	c.urlParams_.Set("prettyPrint", "false")
23487	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems:generateDefault")
23488	urls += "?" + c.urlParams_.Encode()
23489	req, err := http.NewRequest("POST", urls, body)
23490	if err != nil {
23491		return nil, err
23492	}
23493	req.Header = reqHeaders
23494	googleapi.Expand(req.URL, map[string]string{
23495		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
23496	})
23497	return gensupport.SendRequest(c.ctx_, c.s.client, req)
23498}
23499
23500// Do executes the "displayvideo.advertisers.lineItems.generateDefault" call.
23501// Exactly one of *LineItem or error will be non-nil. Any non-2xx status
23502// code is an error. Response headers are in either
23503// *LineItem.ServerResponse.Header or (if a response was returned at
23504// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
23505// to check whether the returned error was because
23506// http.StatusNotModified was returned.
23507func (c *AdvertisersLineItemsGenerateDefaultCall) Do(opts ...googleapi.CallOption) (*LineItem, error) {
23508	gensupport.SetOptions(c.urlParams_, opts...)
23509	res, err := c.doRequest("json")
23510	if res != nil && res.StatusCode == http.StatusNotModified {
23511		if res.Body != nil {
23512			res.Body.Close()
23513		}
23514		return nil, &googleapi.Error{
23515			Code:   res.StatusCode,
23516			Header: res.Header,
23517		}
23518	}
23519	if err != nil {
23520		return nil, err
23521	}
23522	defer googleapi.CloseBody(res)
23523	if err := googleapi.CheckResponse(res); err != nil {
23524		return nil, err
23525	}
23526	ret := &LineItem{
23527		ServerResponse: googleapi.ServerResponse{
23528			Header:         res.Header,
23529			HTTPStatusCode: res.StatusCode,
23530		},
23531	}
23532	target := &ret
23533	if err := gensupport.DecodeResponse(target, res); err != nil {
23534		return nil, err
23535	}
23536	return ret, nil
23537	// {
23538	//   "description": "Creates a new line item with settings (including targeting) inherited from the insertion order and an `ENTITY_STATUS_DRAFT` entity_status. Returns the newly created line item if successful. There are default values based on the three fields: * The insertion order's insertion_order_type * The insertion order's automation_type * The given line_item_type",
23539	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems:generateDefault",
23540	//   "httpMethod": "POST",
23541	//   "id": "displayvideo.advertisers.lineItems.generateDefault",
23542	//   "parameterOrder": [
23543	//     "advertiserId"
23544	//   ],
23545	//   "parameters": {
23546	//     "advertiserId": {
23547	//       "description": "Required. The ID of the advertiser this line item belongs to.",
23548	//       "format": "int64",
23549	//       "location": "path",
23550	//       "pattern": "^[^/]+$",
23551	//       "required": true,
23552	//       "type": "string"
23553	//     }
23554	//   },
23555	//   "path": "v1/advertisers/{+advertiserId}/lineItems:generateDefault",
23556	//   "request": {
23557	//     "$ref": "GenerateDefaultLineItemRequest"
23558	//   },
23559	//   "response": {
23560	//     "$ref": "LineItem"
23561	//   },
23562	//   "scopes": [
23563	//     "https://www.googleapis.com/auth/display-video"
23564	//   ]
23565	// }
23566
23567}
23568
23569// method id "displayvideo.advertisers.lineItems.get":
23570
23571type AdvertisersLineItemsGetCall struct {
23572	s            *Service
23573	advertiserId int64
23574	lineItemId   int64
23575	urlParams_   gensupport.URLParams
23576	ifNoneMatch_ string
23577	ctx_         context.Context
23578	header_      http.Header
23579}
23580
23581// Get: Gets a line item.
23582//
23583// - advertiserId: The ID of the advertiser this line item belongs to.
23584// - lineItemId: The ID of the line item to fetch.
23585func (r *AdvertisersLineItemsService) Get(advertiserId int64, lineItemId int64) *AdvertisersLineItemsGetCall {
23586	c := &AdvertisersLineItemsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
23587	c.advertiserId = advertiserId
23588	c.lineItemId = lineItemId
23589	return c
23590}
23591
23592// Fields allows partial responses to be retrieved. See
23593// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
23594// for more information.
23595func (c *AdvertisersLineItemsGetCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsGetCall {
23596	c.urlParams_.Set("fields", googleapi.CombineFields(s))
23597	return c
23598}
23599
23600// IfNoneMatch sets the optional parameter which makes the operation
23601// fail if the object's ETag matches the given value. This is useful for
23602// getting updates only after the object has changed since the last
23603// request. Use googleapi.IsNotModified to check whether the response
23604// error from Do is the result of In-None-Match.
23605func (c *AdvertisersLineItemsGetCall) IfNoneMatch(entityTag string) *AdvertisersLineItemsGetCall {
23606	c.ifNoneMatch_ = entityTag
23607	return c
23608}
23609
23610// Context sets the context to be used in this call's Do method. Any
23611// pending HTTP request will be aborted if the provided context is
23612// canceled.
23613func (c *AdvertisersLineItemsGetCall) Context(ctx context.Context) *AdvertisersLineItemsGetCall {
23614	c.ctx_ = ctx
23615	return c
23616}
23617
23618// Header returns an http.Header that can be modified by the caller to
23619// add HTTP headers to the request.
23620func (c *AdvertisersLineItemsGetCall) Header() http.Header {
23621	if c.header_ == nil {
23622		c.header_ = make(http.Header)
23623	}
23624	return c.header_
23625}
23626
23627func (c *AdvertisersLineItemsGetCall) doRequest(alt string) (*http.Response, error) {
23628	reqHeaders := make(http.Header)
23629	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
23630	for k, v := range c.header_ {
23631		reqHeaders[k] = v
23632	}
23633	reqHeaders.Set("User-Agent", c.s.userAgent())
23634	if c.ifNoneMatch_ != "" {
23635		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
23636	}
23637	var body io.Reader = nil
23638	c.urlParams_.Set("alt", alt)
23639	c.urlParams_.Set("prettyPrint", "false")
23640	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}")
23641	urls += "?" + c.urlParams_.Encode()
23642	req, err := http.NewRequest("GET", urls, body)
23643	if err != nil {
23644		return nil, err
23645	}
23646	req.Header = reqHeaders
23647	googleapi.Expand(req.URL, map[string]string{
23648		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
23649		"lineItemId":   strconv.FormatInt(c.lineItemId, 10),
23650	})
23651	return gensupport.SendRequest(c.ctx_, c.s.client, req)
23652}
23653
23654// Do executes the "displayvideo.advertisers.lineItems.get" call.
23655// Exactly one of *LineItem or error will be non-nil. Any non-2xx status
23656// code is an error. Response headers are in either
23657// *LineItem.ServerResponse.Header or (if a response was returned at
23658// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
23659// to check whether the returned error was because
23660// http.StatusNotModified was returned.
23661func (c *AdvertisersLineItemsGetCall) Do(opts ...googleapi.CallOption) (*LineItem, error) {
23662	gensupport.SetOptions(c.urlParams_, opts...)
23663	res, err := c.doRequest("json")
23664	if res != nil && res.StatusCode == http.StatusNotModified {
23665		if res.Body != nil {
23666			res.Body.Close()
23667		}
23668		return nil, &googleapi.Error{
23669			Code:   res.StatusCode,
23670			Header: res.Header,
23671		}
23672	}
23673	if err != nil {
23674		return nil, err
23675	}
23676	defer googleapi.CloseBody(res)
23677	if err := googleapi.CheckResponse(res); err != nil {
23678		return nil, err
23679	}
23680	ret := &LineItem{
23681		ServerResponse: googleapi.ServerResponse{
23682			Header:         res.Header,
23683			HTTPStatusCode: res.StatusCode,
23684		},
23685	}
23686	target := &ret
23687	if err := gensupport.DecodeResponse(target, res); err != nil {
23688		return nil, err
23689	}
23690	return ret, nil
23691	// {
23692	//   "description": "Gets a line item.",
23693	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}",
23694	//   "httpMethod": "GET",
23695	//   "id": "displayvideo.advertisers.lineItems.get",
23696	//   "parameterOrder": [
23697	//     "advertiserId",
23698	//     "lineItemId"
23699	//   ],
23700	//   "parameters": {
23701	//     "advertiserId": {
23702	//       "description": "Required. The ID of the advertiser this line item belongs to.",
23703	//       "format": "int64",
23704	//       "location": "path",
23705	//       "pattern": "^[^/]+$",
23706	//       "required": true,
23707	//       "type": "string"
23708	//     },
23709	//     "lineItemId": {
23710	//       "description": "Required. The ID of the line item to fetch.",
23711	//       "format": "int64",
23712	//       "location": "path",
23713	//       "pattern": "^[^/]+$",
23714	//       "required": true,
23715	//       "type": "string"
23716	//     }
23717	//   },
23718	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}",
23719	//   "response": {
23720	//     "$ref": "LineItem"
23721	//   },
23722	//   "scopes": [
23723	//     "https://www.googleapis.com/auth/display-video"
23724	//   ]
23725	// }
23726
23727}
23728
23729// method id "displayvideo.advertisers.lineItems.list":
23730
23731type AdvertisersLineItemsListCall struct {
23732	s            *Service
23733	advertiserId int64
23734	urlParams_   gensupport.URLParams
23735	ifNoneMatch_ string
23736	ctx_         context.Context
23737	header_      http.Header
23738}
23739
23740// List: Lists line items in an advertiser. The order is defined by the
23741// order_by parameter. If a filter by entity_status is not specified,
23742// line items with `ENTITY_STATUS_ARCHIVED` will not be included in the
23743// results.
23744//
23745// - advertiserId: The ID of the advertiser to list line items for.
23746func (r *AdvertisersLineItemsService) List(advertiserId int64) *AdvertisersLineItemsListCall {
23747	c := &AdvertisersLineItemsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
23748	c.advertiserId = advertiserId
23749	return c
23750}
23751
23752// Filter sets the optional parameter "filter": Allows filtering by line
23753// item properties. Supported syntax: * Filter expressions are made up
23754// of one or more restrictions. * Restrictions can be combined by `AND`
23755// or `OR` logical operators. A sequence of restrictions implicitly uses
23756// `AND`. * A restriction has the form of `{field} {operator} {value}`.
23757// * The operator used on `flight.dateRange.endDate` must be LESS THAN
23758// (<). * The operator used on `updateTime` must be `GREATER THAN OR
23759// EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)`. * The operator used
23760// on `warningMessages` must be `HAS (:)`. * The operators used on all
23761// other fields must be `EQUALS (=)`. * Supported properties: -
23762// `campaignId` - `displayName` - `insertionOrderId` - `entityStatus` -
23763// `lineItemId` - `lineItemType` - `flight.dateRange.endDate` (input
23764// formatted as YYYY-MM-DD) - `warningMessages` - `flight.triggerId` -
23765// `updateTime` (input in ISO 8601 format, or YYYY-MM-DDTHH:MM:SSZ) -
23766// `targetedChannelId` - `targetedNegativeKeywordListId` Examples: * All
23767// line items under an insertion order: `insertionOrderId="1234" * All
23768// `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` and
23769// `LINE_ITEM_TYPE_DISPLAY_DEFAULT` line items under an advertiser:
23770// `(entityStatus="ENTITY_STATUS_ACTIVE" OR
23771// entityStatus="ENTITY_STATUS_PAUSED") AND
23772// lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" * All line items whose
23773// flight dates end before March 28, 2019:
23774// `flight.dateRange.endDate<"2019-03-28" * All line items that have
23775// `NO_VALID_CREATIVE` in `warningMessages`:
23776// `warningMessages:"NO_VALID_CREATIVE" * All line items with an update
23777// time less than or equal to `2020-11-04T18:54:47Z (format of ISO
23778// 8601)`: `updateTime<="2020-11-04T18:54:47Z" * All line items with an
23779// update time greater than or equal to `2020-11-04T18:54:47Z (format of
23780// ISO 8601)`: `updateTime>="2020-11-04T18:54:47Z" * All line items
23781// that are using both the specified channel and specified negative
23782// keyword list in their targeting: `targetedNegativeKeywordListId=789
23783// AND targetedChannelId=12345` The length of this field should be no
23784// more than 500 characters.
23785func (c *AdvertisersLineItemsListCall) Filter(filter string) *AdvertisersLineItemsListCall {
23786	c.urlParams_.Set("filter", filter)
23787	return c
23788}
23789
23790// OrderBy sets the optional parameter "orderBy": Field by which to sort
23791// the list. Acceptable values are: * "displayName" (default) *
23792// "entityStatus" * “flight.dateRange.endDate” * "updateTime" The
23793// default sorting order is ascending. To specify descending order for a
23794// field, a suffix "desc" should be added to the field name. Example:
23795// `displayName desc`.
23796func (c *AdvertisersLineItemsListCall) OrderBy(orderBy string) *AdvertisersLineItemsListCall {
23797	c.urlParams_.Set("orderBy", orderBy)
23798	return c
23799}
23800
23801// PageSize sets the optional parameter "pageSize": Requested page size.
23802// Must be between `1` and `100`. If unspecified will default to `100`.
23803// Returns error code `INVALID_ARGUMENT` if an invalid value is
23804// specified.
23805func (c *AdvertisersLineItemsListCall) PageSize(pageSize int64) *AdvertisersLineItemsListCall {
23806	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
23807	return c
23808}
23809
23810// PageToken sets the optional parameter "pageToken": A token
23811// identifying a page of results the server should return. Typically,
23812// this is the value of next_page_token returned from the previous call
23813// to `ListLineItems` method. If not specified, the first page of
23814// results will be returned.
23815func (c *AdvertisersLineItemsListCall) PageToken(pageToken string) *AdvertisersLineItemsListCall {
23816	c.urlParams_.Set("pageToken", pageToken)
23817	return c
23818}
23819
23820// Fields allows partial responses to be retrieved. See
23821// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
23822// for more information.
23823func (c *AdvertisersLineItemsListCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsListCall {
23824	c.urlParams_.Set("fields", googleapi.CombineFields(s))
23825	return c
23826}
23827
23828// IfNoneMatch sets the optional parameter which makes the operation
23829// fail if the object's ETag matches the given value. This is useful for
23830// getting updates only after the object has changed since the last
23831// request. Use googleapi.IsNotModified to check whether the response
23832// error from Do is the result of In-None-Match.
23833func (c *AdvertisersLineItemsListCall) IfNoneMatch(entityTag string) *AdvertisersLineItemsListCall {
23834	c.ifNoneMatch_ = entityTag
23835	return c
23836}
23837
23838// Context sets the context to be used in this call's Do method. Any
23839// pending HTTP request will be aborted if the provided context is
23840// canceled.
23841func (c *AdvertisersLineItemsListCall) Context(ctx context.Context) *AdvertisersLineItemsListCall {
23842	c.ctx_ = ctx
23843	return c
23844}
23845
23846// Header returns an http.Header that can be modified by the caller to
23847// add HTTP headers to the request.
23848func (c *AdvertisersLineItemsListCall) Header() http.Header {
23849	if c.header_ == nil {
23850		c.header_ = make(http.Header)
23851	}
23852	return c.header_
23853}
23854
23855func (c *AdvertisersLineItemsListCall) doRequest(alt string) (*http.Response, error) {
23856	reqHeaders := make(http.Header)
23857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
23858	for k, v := range c.header_ {
23859		reqHeaders[k] = v
23860	}
23861	reqHeaders.Set("User-Agent", c.s.userAgent())
23862	if c.ifNoneMatch_ != "" {
23863		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
23864	}
23865	var body io.Reader = nil
23866	c.urlParams_.Set("alt", alt)
23867	c.urlParams_.Set("prettyPrint", "false")
23868	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems")
23869	urls += "?" + c.urlParams_.Encode()
23870	req, err := http.NewRequest("GET", urls, body)
23871	if err != nil {
23872		return nil, err
23873	}
23874	req.Header = reqHeaders
23875	googleapi.Expand(req.URL, map[string]string{
23876		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
23877	})
23878	return gensupport.SendRequest(c.ctx_, c.s.client, req)
23879}
23880
23881// Do executes the "displayvideo.advertisers.lineItems.list" call.
23882// Exactly one of *ListLineItemsResponse or error will be non-nil. Any
23883// non-2xx status code is an error. Response headers are in either
23884// *ListLineItemsResponse.ServerResponse.Header or (if a response was
23885// returned at all) in error.(*googleapi.Error).Header. Use
23886// googleapi.IsNotModified to check whether the returned error was
23887// because http.StatusNotModified was returned.
23888func (c *AdvertisersLineItemsListCall) Do(opts ...googleapi.CallOption) (*ListLineItemsResponse, error) {
23889	gensupport.SetOptions(c.urlParams_, opts...)
23890	res, err := c.doRequest("json")
23891	if res != nil && res.StatusCode == http.StatusNotModified {
23892		if res.Body != nil {
23893			res.Body.Close()
23894		}
23895		return nil, &googleapi.Error{
23896			Code:   res.StatusCode,
23897			Header: res.Header,
23898		}
23899	}
23900	if err != nil {
23901		return nil, err
23902	}
23903	defer googleapi.CloseBody(res)
23904	if err := googleapi.CheckResponse(res); err != nil {
23905		return nil, err
23906	}
23907	ret := &ListLineItemsResponse{
23908		ServerResponse: googleapi.ServerResponse{
23909			Header:         res.Header,
23910			HTTPStatusCode: res.StatusCode,
23911		},
23912	}
23913	target := &ret
23914	if err := gensupport.DecodeResponse(target, res); err != nil {
23915		return nil, err
23916	}
23917	return ret, nil
23918	// {
23919	//   "description": "Lists line items in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, line items with `ENTITY_STATUS_ARCHIVED` will not be included in the results.",
23920	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems",
23921	//   "httpMethod": "GET",
23922	//   "id": "displayvideo.advertisers.lineItems.list",
23923	//   "parameterOrder": [
23924	//     "advertiserId"
23925	//   ],
23926	//   "parameters": {
23927	//     "advertiserId": {
23928	//       "description": "Required. The ID of the advertiser to list line items for.",
23929	//       "format": "int64",
23930	//       "location": "path",
23931	//       "pattern": "^[^/]+$",
23932	//       "required": true,
23933	//       "type": "string"
23934	//     },
23935	//     "filter": {
23936	//       "description": "Allows filtering by line item properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The operator used on `flight.dateRange.endDate` must be LESS THAN (\u003c). * The operator used on `updateTime` must be `GREATER THAN OR EQUAL TO (\u003e=)` or `LESS THAN OR EQUAL TO (\u003c=)`. * The operator used on `warningMessages` must be `HAS (:)`. * The operators used on all other fields must be `EQUALS (=)`. * Supported properties: - `campaignId` - `displayName` - `insertionOrderId` - `entityStatus` - `lineItemId` - `lineItemType` - `flight.dateRange.endDate` (input formatted as YYYY-MM-DD) - `warningMessages` - `flight.triggerId` - `updateTime` (input in ISO 8601 format, or YYYY-MM-DDTHH:MM:SSZ) - `targetedChannelId` - `targetedNegativeKeywordListId` Examples: * All line items under an insertion order: `insertionOrderId=\"1234\"` * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` and `LINE_ITEM_TYPE_DISPLAY_DEFAULT` line items under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\") AND lineItemType=\"LINE_ITEM_TYPE_DISPLAY_DEFAULT\"` * All line items whose flight dates end before March 28, 2019: `flight.dateRange.endDate\u003c\"2019-03-28\"` * All line items that have `NO_VALID_CREATIVE` in `warningMessages`: `warningMessages:\"NO_VALID_CREATIVE\"` * All line items with an update time less than or equal to `2020-11-04T18:54:47Z (format of ISO 8601)`: `updateTime\u003c=\"2020-11-04T18:54:47Z\"` * All line items with an update time greater than or equal to `2020-11-04T18:54:47Z (format of ISO 8601)`: `updateTime\u003e=\"2020-11-04T18:54:47Z\"` * All line items that are using both the specified channel and specified negative keyword list in their targeting: `targetedNegativeKeywordListId=789 AND targetedChannelId=12345` The length of this field should be no more than 500 characters.",
23937	//       "location": "query",
23938	//       "type": "string"
23939	//     },
23940	//     "orderBy": {
23941	//       "description": "Field by which to sort the list. Acceptable values are: * \"displayName\" (default) * \"entityStatus\" * “flight.dateRange.endDate” * \"updateTime\" The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.",
23942	//       "location": "query",
23943	//       "type": "string"
23944	//     },
23945	//     "pageSize": {
23946	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
23947	//       "format": "int32",
23948	//       "location": "query",
23949	//       "type": "integer"
23950	//     },
23951	//     "pageToken": {
23952	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLineItems` method. If not specified, the first page of results will be returned.",
23953	//       "location": "query",
23954	//       "type": "string"
23955	//     }
23956	//   },
23957	//   "path": "v1/advertisers/{+advertiserId}/lineItems",
23958	//   "response": {
23959	//     "$ref": "ListLineItemsResponse"
23960	//   },
23961	//   "scopes": [
23962	//     "https://www.googleapis.com/auth/display-video"
23963	//   ]
23964	// }
23965
23966}
23967
23968// Pages invokes f for each page of results.
23969// A non-nil error returned from f will halt the iteration.
23970// The provided context supersedes any context provided to the Context method.
23971func (c *AdvertisersLineItemsListCall) Pages(ctx context.Context, f func(*ListLineItemsResponse) error) error {
23972	c.ctx_ = ctx
23973	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
23974	for {
23975		x, err := c.Do()
23976		if err != nil {
23977			return err
23978		}
23979		if err := f(x); err != nil {
23980			return err
23981		}
23982		if x.NextPageToken == "" {
23983			return nil
23984		}
23985		c.PageToken(x.NextPageToken)
23986	}
23987}
23988
23989// method id "displayvideo.advertisers.lineItems.patch":
23990
23991type AdvertisersLineItemsPatchCall struct {
23992	s            *Service
23993	advertiserId int64
23994	lineItemId   int64
23995	lineitem     *LineItem
23996	urlParams_   gensupport.URLParams
23997	ctx_         context.Context
23998	header_      http.Header
23999}
24000
24001// Patch: Updates an existing line item. Returns the updated line item
24002// if successful.
24003//
24004// - advertiserId: Output only. The unique ID of the advertiser the line
24005//   item belongs to.
24006// - lineItemId: Output only. The unique ID of the line item. Assigned
24007//   by the system.
24008func (r *AdvertisersLineItemsService) Patch(advertiserId int64, lineItemId int64, lineitem *LineItem) *AdvertisersLineItemsPatchCall {
24009	c := &AdvertisersLineItemsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24010	c.advertiserId = advertiserId
24011	c.lineItemId = lineItemId
24012	c.lineitem = lineitem
24013	return c
24014}
24015
24016// UpdateMask sets the optional parameter "updateMask": Required. The
24017// mask to control which fields to update.
24018func (c *AdvertisersLineItemsPatchCall) UpdateMask(updateMask string) *AdvertisersLineItemsPatchCall {
24019	c.urlParams_.Set("updateMask", updateMask)
24020	return c
24021}
24022
24023// Fields allows partial responses to be retrieved. See
24024// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24025// for more information.
24026func (c *AdvertisersLineItemsPatchCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsPatchCall {
24027	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24028	return c
24029}
24030
24031// Context sets the context to be used in this call's Do method. Any
24032// pending HTTP request will be aborted if the provided context is
24033// canceled.
24034func (c *AdvertisersLineItemsPatchCall) Context(ctx context.Context) *AdvertisersLineItemsPatchCall {
24035	c.ctx_ = ctx
24036	return c
24037}
24038
24039// Header returns an http.Header that can be modified by the caller to
24040// add HTTP headers to the request.
24041func (c *AdvertisersLineItemsPatchCall) Header() http.Header {
24042	if c.header_ == nil {
24043		c.header_ = make(http.Header)
24044	}
24045	return c.header_
24046}
24047
24048func (c *AdvertisersLineItemsPatchCall) doRequest(alt string) (*http.Response, error) {
24049	reqHeaders := make(http.Header)
24050	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
24051	for k, v := range c.header_ {
24052		reqHeaders[k] = v
24053	}
24054	reqHeaders.Set("User-Agent", c.s.userAgent())
24055	var body io.Reader = nil
24056	body, err := googleapi.WithoutDataWrapper.JSONReader(c.lineitem)
24057	if err != nil {
24058		return nil, err
24059	}
24060	reqHeaders.Set("Content-Type", "application/json")
24061	c.urlParams_.Set("alt", alt)
24062	c.urlParams_.Set("prettyPrint", "false")
24063	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}")
24064	urls += "?" + c.urlParams_.Encode()
24065	req, err := http.NewRequest("PATCH", urls, body)
24066	if err != nil {
24067		return nil, err
24068	}
24069	req.Header = reqHeaders
24070	googleapi.Expand(req.URL, map[string]string{
24071		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
24072		"lineItemId":   strconv.FormatInt(c.lineItemId, 10),
24073	})
24074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24075}
24076
24077// Do executes the "displayvideo.advertisers.lineItems.patch" call.
24078// Exactly one of *LineItem or error will be non-nil. Any non-2xx status
24079// code is an error. Response headers are in either
24080// *LineItem.ServerResponse.Header or (if a response was returned at
24081// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
24082// to check whether the returned error was because
24083// http.StatusNotModified was returned.
24084func (c *AdvertisersLineItemsPatchCall) Do(opts ...googleapi.CallOption) (*LineItem, error) {
24085	gensupport.SetOptions(c.urlParams_, opts...)
24086	res, err := c.doRequest("json")
24087	if res != nil && res.StatusCode == http.StatusNotModified {
24088		if res.Body != nil {
24089			res.Body.Close()
24090		}
24091		return nil, &googleapi.Error{
24092			Code:   res.StatusCode,
24093			Header: res.Header,
24094		}
24095	}
24096	if err != nil {
24097		return nil, err
24098	}
24099	defer googleapi.CloseBody(res)
24100	if err := googleapi.CheckResponse(res); err != nil {
24101		return nil, err
24102	}
24103	ret := &LineItem{
24104		ServerResponse: googleapi.ServerResponse{
24105			Header:         res.Header,
24106			HTTPStatusCode: res.StatusCode,
24107		},
24108	}
24109	target := &ret
24110	if err := gensupport.DecodeResponse(target, res); err != nil {
24111		return nil, err
24112	}
24113	return ret, nil
24114	// {
24115	//   "description": "Updates an existing line item. Returns the updated line item if successful.",
24116	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}",
24117	//   "httpMethod": "PATCH",
24118	//   "id": "displayvideo.advertisers.lineItems.patch",
24119	//   "parameterOrder": [
24120	//     "advertiserId",
24121	//     "lineItemId"
24122	//   ],
24123	//   "parameters": {
24124	//     "advertiserId": {
24125	//       "description": "Output only. The unique ID of the advertiser the line item belongs to.",
24126	//       "format": "int64",
24127	//       "location": "path",
24128	//       "pattern": "^[^/]+$",
24129	//       "required": true,
24130	//       "type": "string"
24131	//     },
24132	//     "lineItemId": {
24133	//       "description": "Output only. The unique ID of the line item. Assigned by the system.",
24134	//       "format": "int64",
24135	//       "location": "path",
24136	//       "pattern": "^[^/]+$",
24137	//       "required": true,
24138	//       "type": "string"
24139	//     },
24140	//     "updateMask": {
24141	//       "description": "Required. The mask to control which fields to update.",
24142	//       "format": "google-fieldmask",
24143	//       "location": "query",
24144	//       "type": "string"
24145	//     }
24146	//   },
24147	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}",
24148	//   "request": {
24149	//     "$ref": "LineItem"
24150	//   },
24151	//   "response": {
24152	//     "$ref": "LineItem"
24153	//   },
24154	//   "scopes": [
24155	//     "https://www.googleapis.com/auth/display-video"
24156	//   ]
24157	// }
24158
24159}
24160
24161// method id "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create":
24162
24163type AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall struct {
24164	s                       *Service
24165	advertiserId            int64
24166	lineItemId              int64
24167	targetingType           string
24168	assignedtargetingoption *AssignedTargetingOption
24169	urlParams_              gensupport.URLParams
24170	ctx_                    context.Context
24171	header_                 http.Header
24172}
24173
24174// Create: Assigns a targeting option to a line item. Returns the
24175// assigned targeting option if successful.
24176//
24177// - advertiserId: The ID of the advertiser the line item belongs to.
24178// - lineItemId: The ID of the line item the assigned targeting option
24179//   will belong to.
24180// - targetingType: Identifies the type of this assigned targeting
24181//   option.
24182func (r *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService) Create(advertiserId int64, lineItemId int64, targetingType string, assignedtargetingoption *AssignedTargetingOption) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall {
24183	c := &AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24184	c.advertiserId = advertiserId
24185	c.lineItemId = lineItemId
24186	c.targetingType = targetingType
24187	c.assignedtargetingoption = assignedtargetingoption
24188	return c
24189}
24190
24191// Fields allows partial responses to be retrieved. See
24192// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24193// for more information.
24194func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall {
24195	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24196	return c
24197}
24198
24199// Context sets the context to be used in this call's Do method. Any
24200// pending HTTP request will be aborted if the provided context is
24201// canceled.
24202func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall) Context(ctx context.Context) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall {
24203	c.ctx_ = ctx
24204	return c
24205}
24206
24207// Header returns an http.Header that can be modified by the caller to
24208// add HTTP headers to the request.
24209func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall) Header() http.Header {
24210	if c.header_ == nil {
24211		c.header_ = make(http.Header)
24212	}
24213	return c.header_
24214}
24215
24216func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall) doRequest(alt string) (*http.Response, error) {
24217	reqHeaders := make(http.Header)
24218	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
24219	for k, v := range c.header_ {
24220		reqHeaders[k] = v
24221	}
24222	reqHeaders.Set("User-Agent", c.s.userAgent())
24223	var body io.Reader = nil
24224	body, err := googleapi.WithoutDataWrapper.JSONReader(c.assignedtargetingoption)
24225	if err != nil {
24226		return nil, err
24227	}
24228	reqHeaders.Set("Content-Type", "application/json")
24229	c.urlParams_.Set("alt", alt)
24230	c.urlParams_.Set("prettyPrint", "false")
24231	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
24232	urls += "?" + c.urlParams_.Encode()
24233	req, err := http.NewRequest("POST", urls, body)
24234	if err != nil {
24235		return nil, err
24236	}
24237	req.Header = reqHeaders
24238	googleapi.Expand(req.URL, map[string]string{
24239		"advertiserId":  strconv.FormatInt(c.advertiserId, 10),
24240		"lineItemId":    strconv.FormatInt(c.lineItemId, 10),
24241		"targetingType": c.targetingType,
24242	})
24243	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24244}
24245
24246// Do executes the "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create" call.
24247// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
24248// non-2xx status code is an error. Response headers are in either
24249// *AssignedTargetingOption.ServerResponse.Header or (if a response was
24250// returned at all) in error.(*googleapi.Error).Header. Use
24251// googleapi.IsNotModified to check whether the returned error was
24252// because http.StatusNotModified was returned.
24253func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
24254	gensupport.SetOptions(c.urlParams_, opts...)
24255	res, err := c.doRequest("json")
24256	if res != nil && res.StatusCode == http.StatusNotModified {
24257		if res.Body != nil {
24258			res.Body.Close()
24259		}
24260		return nil, &googleapi.Error{
24261			Code:   res.StatusCode,
24262			Header: res.Header,
24263		}
24264	}
24265	if err != nil {
24266		return nil, err
24267	}
24268	defer googleapi.CloseBody(res)
24269	if err := googleapi.CheckResponse(res); err != nil {
24270		return nil, err
24271	}
24272	ret := &AssignedTargetingOption{
24273		ServerResponse: googleapi.ServerResponse{
24274			Header:         res.Header,
24275			HTTPStatusCode: res.StatusCode,
24276		},
24277	}
24278	target := &ret
24279	if err := gensupport.DecodeResponse(target, res); err != nil {
24280		return nil, err
24281	}
24282	return ret, nil
24283	// {
24284	//   "description": "Assigns a targeting option to a line item. Returns the assigned targeting option if successful.",
24285	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
24286	//   "httpMethod": "POST",
24287	//   "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create",
24288	//   "parameterOrder": [
24289	//     "advertiserId",
24290	//     "lineItemId",
24291	//     "targetingType"
24292	//   ],
24293	//   "parameters": {
24294	//     "advertiserId": {
24295	//       "description": "Required. The ID of the advertiser the line item belongs to.",
24296	//       "format": "int64",
24297	//       "location": "path",
24298	//       "pattern": "^[^/]+$",
24299	//       "required": true,
24300	//       "type": "string"
24301	//     },
24302	//     "lineItemId": {
24303	//       "description": "Required. The ID of the line item the assigned targeting option will belong to.",
24304	//       "format": "int64",
24305	//       "location": "path",
24306	//       "pattern": "^[^/]+$",
24307	//       "required": true,
24308	//       "type": "string"
24309	//     },
24310	//     "targetingType": {
24311	//       "description": "Required. Identifies the type of this assigned targeting option.",
24312	//       "enum": [
24313	//         "TARGETING_TYPE_UNSPECIFIED",
24314	//         "TARGETING_TYPE_CHANNEL",
24315	//         "TARGETING_TYPE_APP_CATEGORY",
24316	//         "TARGETING_TYPE_APP",
24317	//         "TARGETING_TYPE_URL",
24318	//         "TARGETING_TYPE_DAY_AND_TIME",
24319	//         "TARGETING_TYPE_AGE_RANGE",
24320	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
24321	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
24322	//         "TARGETING_TYPE_GENDER",
24323	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
24324	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
24325	//         "TARGETING_TYPE_PARENTAL_STATUS",
24326	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
24327	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
24328	//         "TARGETING_TYPE_DEVICE_TYPE",
24329	//         "TARGETING_TYPE_AUDIENCE_GROUP",
24330	//         "TARGETING_TYPE_BROWSER",
24331	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
24332	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
24333	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
24334	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
24335	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
24336	//         "TARGETING_TYPE_ENVIRONMENT",
24337	//         "TARGETING_TYPE_CARRIER_AND_ISP",
24338	//         "TARGETING_TYPE_OPERATING_SYSTEM",
24339	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
24340	//         "TARGETING_TYPE_KEYWORD",
24341	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
24342	//         "TARGETING_TYPE_VIEWABILITY",
24343	//         "TARGETING_TYPE_CATEGORY",
24344	//         "TARGETING_TYPE_INVENTORY_SOURCE",
24345	//         "TARGETING_TYPE_LANGUAGE",
24346	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
24347	//         "TARGETING_TYPE_GEO_REGION",
24348	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
24349	//         "TARGETING_TYPE_EXCHANGE",
24350	//         "TARGETING_TYPE_SUB_EXCHANGE",
24351	//         "TARGETING_TYPE_POI",
24352	//         "TARGETING_TYPE_BUSINESS_CHAIN",
24353	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
24354	//         "TARGETING_TYPE_OMID"
24355	//       ],
24356	//       "enumDescriptions": [
24357	//         "Default value when type is not specified or is unknown in this version.",
24358	//         "Target a channel (a custom group of related websites or apps).",
24359	//         "Target an app category (for example, education or puzzle games).",
24360	//         "Target a specific app (for example, Angry Birds).",
24361	//         "Target a specific url (for example, quora.com).",
24362	//         "Target ads during a chosen time period on a specific day.",
24363	//         "Target ads to a specific age range (for example, 18-24).",
24364	//         "Target ads to the specified regions on a regional location list.",
24365	//         "Target ads to the specified points of interest on a proximity location list.",
24366	//         "Target ads to a specific gender (for example, female or male).",
24367	//         "Target a specific video player size for video ads.",
24368	//         "Target user rewarded content for video ads.",
24369	//         "Target ads to a specific parental status (for example, parent or not a parent).",
24370	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
24371	//         "Target ads in a specific content outstream position.",
24372	//         "Target ads to a specific device type (for example, tablet or connected TV).",
24373	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
24374	//         "Target ads to specific web browsers (for example, Chrome).",
24375	//         "Target ads to a specific household income range (for example, top 10%).",
24376	//         "Target ads in a specific on screen position.",
24377	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
24378	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
24379	//         "Filter website content by sensitive categories (for example, adult).",
24380	//         "Target ads to a specific environment (for example, web or app).",
24381	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
24382	//         "Target ads to a specific operating system (for example, macOS).",
24383	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
24384	//         "Target ads to a specific keyword (for example, dog or retriever).",
24385	//         "Target ads to a specific negative keyword list.",
24386	//         "Target ads to a specific viewability (for example, 80% viewable).",
24387	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
24388	//         "Purchase impressions from specific deals and auction packages.",
24389	//         "Target ads to a specific language (for example, English or Japanese).",
24390	//         "Target ads to ads.txt authorized sellers.",
24391	//         "Target ads to a specific regional location (for example, a city or state).",
24392	//         "Purchase impressions from a group of deals and auction packages.",
24393	//         "Purchase impressions from specific exchanges.",
24394	//         "Purchase impressions from specific sub-exchanges.",
24395	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
24396	//         "Target ads around locations of a business chain within a specific geo region.",
24397	//         "Target ads to a specific native content position.",
24398	//         "Target ads in an Open Measurement enabled inventory."
24399	//       ],
24400	//       "location": "path",
24401	//       "pattern": "^[^/]+$",
24402	//       "required": true,
24403	//       "type": "string"
24404	//     }
24405	//   },
24406	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
24407	//   "request": {
24408	//     "$ref": "AssignedTargetingOption"
24409	//   },
24410	//   "response": {
24411	//     "$ref": "AssignedTargetingOption"
24412	//   },
24413	//   "scopes": [
24414	//     "https://www.googleapis.com/auth/display-video"
24415	//   ]
24416	// }
24417
24418}
24419
24420// method id "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete":
24421
24422type AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall struct {
24423	s                         *Service
24424	advertiserId              int64
24425	lineItemId                int64
24426	targetingType             string
24427	assignedTargetingOptionId string
24428	urlParams_                gensupport.URLParams
24429	ctx_                      context.Context
24430	header_                   http.Header
24431}
24432
24433// Delete: Deletes an assigned targeting option from a line item.
24434//
24435// - advertiserId: The ID of the advertiser the line item belongs to.
24436// - assignedTargetingOptionId: The ID of the assigned targeting option
24437//   to delete.
24438// - lineItemId: The ID of the line item the assigned targeting option
24439//   belongs to.
24440// - targetingType: Identifies the type of this assigned targeting
24441//   option.
24442func (r *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService) Delete(advertiserId int64, lineItemId int64, targetingType string, assignedTargetingOptionId string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall {
24443	c := &AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24444	c.advertiserId = advertiserId
24445	c.lineItemId = lineItemId
24446	c.targetingType = targetingType
24447	c.assignedTargetingOptionId = assignedTargetingOptionId
24448	return c
24449}
24450
24451// Fields allows partial responses to be retrieved. See
24452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24453// for more information.
24454func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall {
24455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24456	return c
24457}
24458
24459// Context sets the context to be used in this call's Do method. Any
24460// pending HTTP request will be aborted if the provided context is
24461// canceled.
24462func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall) Context(ctx context.Context) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall {
24463	c.ctx_ = ctx
24464	return c
24465}
24466
24467// Header returns an http.Header that can be modified by the caller to
24468// add HTTP headers to the request.
24469func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall) Header() http.Header {
24470	if c.header_ == nil {
24471		c.header_ = make(http.Header)
24472	}
24473	return c.header_
24474}
24475
24476func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall) doRequest(alt string) (*http.Response, error) {
24477	reqHeaders := make(http.Header)
24478	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
24479	for k, v := range c.header_ {
24480		reqHeaders[k] = v
24481	}
24482	reqHeaders.Set("User-Agent", c.s.userAgent())
24483	var body io.Reader = nil
24484	c.urlParams_.Set("alt", alt)
24485	c.urlParams_.Set("prettyPrint", "false")
24486	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
24487	urls += "?" + c.urlParams_.Encode()
24488	req, err := http.NewRequest("DELETE", urls, body)
24489	if err != nil {
24490		return nil, err
24491	}
24492	req.Header = reqHeaders
24493	googleapi.Expand(req.URL, map[string]string{
24494		"advertiserId":              strconv.FormatInt(c.advertiserId, 10),
24495		"lineItemId":                strconv.FormatInt(c.lineItemId, 10),
24496		"targetingType":             c.targetingType,
24497		"assignedTargetingOptionId": c.assignedTargetingOptionId,
24498	})
24499	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24500}
24501
24502// Do executes the "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete" call.
24503// Exactly one of *Empty or error will be non-nil. Any non-2xx status
24504// code is an error. Response headers are in either
24505// *Empty.ServerResponse.Header or (if a response was returned at all)
24506// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
24507// check whether the returned error was because http.StatusNotModified
24508// was returned.
24509func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
24510	gensupport.SetOptions(c.urlParams_, opts...)
24511	res, err := c.doRequest("json")
24512	if res != nil && res.StatusCode == http.StatusNotModified {
24513		if res.Body != nil {
24514			res.Body.Close()
24515		}
24516		return nil, &googleapi.Error{
24517			Code:   res.StatusCode,
24518			Header: res.Header,
24519		}
24520	}
24521	if err != nil {
24522		return nil, err
24523	}
24524	defer googleapi.CloseBody(res)
24525	if err := googleapi.CheckResponse(res); err != nil {
24526		return nil, err
24527	}
24528	ret := &Empty{
24529		ServerResponse: googleapi.ServerResponse{
24530			Header:         res.Header,
24531			HTTPStatusCode: res.StatusCode,
24532		},
24533	}
24534	target := &ret
24535	if err := gensupport.DecodeResponse(target, res); err != nil {
24536		return nil, err
24537	}
24538	return ret, nil
24539	// {
24540	//   "description": "Deletes an assigned targeting option from a line item.",
24541	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
24542	//   "httpMethod": "DELETE",
24543	//   "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete",
24544	//   "parameterOrder": [
24545	//     "advertiserId",
24546	//     "lineItemId",
24547	//     "targetingType",
24548	//     "assignedTargetingOptionId"
24549	//   ],
24550	//   "parameters": {
24551	//     "advertiserId": {
24552	//       "description": "Required. The ID of the advertiser the line item belongs to.",
24553	//       "format": "int64",
24554	//       "location": "path",
24555	//       "pattern": "^[^/]+$",
24556	//       "required": true,
24557	//       "type": "string"
24558	//     },
24559	//     "assignedTargetingOptionId": {
24560	//       "description": "Required. The ID of the assigned targeting option to delete.",
24561	//       "location": "path",
24562	//       "pattern": "^[^/]+$",
24563	//       "required": true,
24564	//       "type": "string"
24565	//     },
24566	//     "lineItemId": {
24567	//       "description": "Required. The ID of the line item the assigned targeting option belongs to.",
24568	//       "format": "int64",
24569	//       "location": "path",
24570	//       "pattern": "^[^/]+$",
24571	//       "required": true,
24572	//       "type": "string"
24573	//     },
24574	//     "targetingType": {
24575	//       "description": "Required. Identifies the type of this assigned targeting option.",
24576	//       "enum": [
24577	//         "TARGETING_TYPE_UNSPECIFIED",
24578	//         "TARGETING_TYPE_CHANNEL",
24579	//         "TARGETING_TYPE_APP_CATEGORY",
24580	//         "TARGETING_TYPE_APP",
24581	//         "TARGETING_TYPE_URL",
24582	//         "TARGETING_TYPE_DAY_AND_TIME",
24583	//         "TARGETING_TYPE_AGE_RANGE",
24584	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
24585	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
24586	//         "TARGETING_TYPE_GENDER",
24587	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
24588	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
24589	//         "TARGETING_TYPE_PARENTAL_STATUS",
24590	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
24591	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
24592	//         "TARGETING_TYPE_DEVICE_TYPE",
24593	//         "TARGETING_TYPE_AUDIENCE_GROUP",
24594	//         "TARGETING_TYPE_BROWSER",
24595	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
24596	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
24597	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
24598	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
24599	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
24600	//         "TARGETING_TYPE_ENVIRONMENT",
24601	//         "TARGETING_TYPE_CARRIER_AND_ISP",
24602	//         "TARGETING_TYPE_OPERATING_SYSTEM",
24603	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
24604	//         "TARGETING_TYPE_KEYWORD",
24605	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
24606	//         "TARGETING_TYPE_VIEWABILITY",
24607	//         "TARGETING_TYPE_CATEGORY",
24608	//         "TARGETING_TYPE_INVENTORY_SOURCE",
24609	//         "TARGETING_TYPE_LANGUAGE",
24610	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
24611	//         "TARGETING_TYPE_GEO_REGION",
24612	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
24613	//         "TARGETING_TYPE_EXCHANGE",
24614	//         "TARGETING_TYPE_SUB_EXCHANGE",
24615	//         "TARGETING_TYPE_POI",
24616	//         "TARGETING_TYPE_BUSINESS_CHAIN",
24617	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
24618	//         "TARGETING_TYPE_OMID"
24619	//       ],
24620	//       "enumDescriptions": [
24621	//         "Default value when type is not specified or is unknown in this version.",
24622	//         "Target a channel (a custom group of related websites or apps).",
24623	//         "Target an app category (for example, education or puzzle games).",
24624	//         "Target a specific app (for example, Angry Birds).",
24625	//         "Target a specific url (for example, quora.com).",
24626	//         "Target ads during a chosen time period on a specific day.",
24627	//         "Target ads to a specific age range (for example, 18-24).",
24628	//         "Target ads to the specified regions on a regional location list.",
24629	//         "Target ads to the specified points of interest on a proximity location list.",
24630	//         "Target ads to a specific gender (for example, female or male).",
24631	//         "Target a specific video player size for video ads.",
24632	//         "Target user rewarded content for video ads.",
24633	//         "Target ads to a specific parental status (for example, parent or not a parent).",
24634	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
24635	//         "Target ads in a specific content outstream position.",
24636	//         "Target ads to a specific device type (for example, tablet or connected TV).",
24637	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
24638	//         "Target ads to specific web browsers (for example, Chrome).",
24639	//         "Target ads to a specific household income range (for example, top 10%).",
24640	//         "Target ads in a specific on screen position.",
24641	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
24642	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
24643	//         "Filter website content by sensitive categories (for example, adult).",
24644	//         "Target ads to a specific environment (for example, web or app).",
24645	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
24646	//         "Target ads to a specific operating system (for example, macOS).",
24647	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
24648	//         "Target ads to a specific keyword (for example, dog or retriever).",
24649	//         "Target ads to a specific negative keyword list.",
24650	//         "Target ads to a specific viewability (for example, 80% viewable).",
24651	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
24652	//         "Purchase impressions from specific deals and auction packages.",
24653	//         "Target ads to a specific language (for example, English or Japanese).",
24654	//         "Target ads to ads.txt authorized sellers.",
24655	//         "Target ads to a specific regional location (for example, a city or state).",
24656	//         "Purchase impressions from a group of deals and auction packages.",
24657	//         "Purchase impressions from specific exchanges.",
24658	//         "Purchase impressions from specific sub-exchanges.",
24659	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
24660	//         "Target ads around locations of a business chain within a specific geo region.",
24661	//         "Target ads to a specific native content position.",
24662	//         "Target ads in an Open Measurement enabled inventory."
24663	//       ],
24664	//       "location": "path",
24665	//       "pattern": "^[^/]+$",
24666	//       "required": true,
24667	//       "type": "string"
24668	//     }
24669	//   },
24670	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
24671	//   "response": {
24672	//     "$ref": "Empty"
24673	//   },
24674	//   "scopes": [
24675	//     "https://www.googleapis.com/auth/display-video"
24676	//   ]
24677	// }
24678
24679}
24680
24681// method id "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.get":
24682
24683type AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall struct {
24684	s                         *Service
24685	advertiserId              int64
24686	lineItemId                int64
24687	targetingType             string
24688	assignedTargetingOptionId string
24689	urlParams_                gensupport.URLParams
24690	ifNoneMatch_              string
24691	ctx_                      context.Context
24692	header_                   http.Header
24693}
24694
24695// Get: Gets a single targeting option assigned to a line item.
24696//
24697// - advertiserId: The ID of the advertiser the line item belongs to.
24698// - assignedTargetingOptionId: An identifier unique to the targeting
24699//   type in this line item that identifies the assigned targeting
24700//   option being requested.
24701// - lineItemId: The ID of the line item the assigned targeting option
24702//   belongs to.
24703// - targetingType: Identifies the type of this assigned targeting
24704//   option.
24705func (r *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService) Get(advertiserId int64, lineItemId int64, targetingType string, assignedTargetingOptionId string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall {
24706	c := &AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24707	c.advertiserId = advertiserId
24708	c.lineItemId = lineItemId
24709	c.targetingType = targetingType
24710	c.assignedTargetingOptionId = assignedTargetingOptionId
24711	return c
24712}
24713
24714// Fields allows partial responses to be retrieved. See
24715// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24716// for more information.
24717func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall {
24718	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24719	return c
24720}
24721
24722// IfNoneMatch sets the optional parameter which makes the operation
24723// fail if the object's ETag matches the given value. This is useful for
24724// getting updates only after the object has changed since the last
24725// request. Use googleapi.IsNotModified to check whether the response
24726// error from Do is the result of In-None-Match.
24727func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall) IfNoneMatch(entityTag string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall {
24728	c.ifNoneMatch_ = entityTag
24729	return c
24730}
24731
24732// Context sets the context to be used in this call's Do method. Any
24733// pending HTTP request will be aborted if the provided context is
24734// canceled.
24735func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall) Context(ctx context.Context) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall {
24736	c.ctx_ = ctx
24737	return c
24738}
24739
24740// Header returns an http.Header that can be modified by the caller to
24741// add HTTP headers to the request.
24742func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall) Header() http.Header {
24743	if c.header_ == nil {
24744		c.header_ = make(http.Header)
24745	}
24746	return c.header_
24747}
24748
24749func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall) doRequest(alt string) (*http.Response, error) {
24750	reqHeaders := make(http.Header)
24751	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
24752	for k, v := range c.header_ {
24753		reqHeaders[k] = v
24754	}
24755	reqHeaders.Set("User-Agent", c.s.userAgent())
24756	if c.ifNoneMatch_ != "" {
24757		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
24758	}
24759	var body io.Reader = nil
24760	c.urlParams_.Set("alt", alt)
24761	c.urlParams_.Set("prettyPrint", "false")
24762	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
24763	urls += "?" + c.urlParams_.Encode()
24764	req, err := http.NewRequest("GET", urls, body)
24765	if err != nil {
24766		return nil, err
24767	}
24768	req.Header = reqHeaders
24769	googleapi.Expand(req.URL, map[string]string{
24770		"advertiserId":              strconv.FormatInt(c.advertiserId, 10),
24771		"lineItemId":                strconv.FormatInt(c.lineItemId, 10),
24772		"targetingType":             c.targetingType,
24773		"assignedTargetingOptionId": c.assignedTargetingOptionId,
24774	})
24775	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24776}
24777
24778// Do executes the "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.get" call.
24779// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
24780// non-2xx status code is an error. Response headers are in either
24781// *AssignedTargetingOption.ServerResponse.Header or (if a response was
24782// returned at all) in error.(*googleapi.Error).Header. Use
24783// googleapi.IsNotModified to check whether the returned error was
24784// because http.StatusNotModified was returned.
24785func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
24786	gensupport.SetOptions(c.urlParams_, opts...)
24787	res, err := c.doRequest("json")
24788	if res != nil && res.StatusCode == http.StatusNotModified {
24789		if res.Body != nil {
24790			res.Body.Close()
24791		}
24792		return nil, &googleapi.Error{
24793			Code:   res.StatusCode,
24794			Header: res.Header,
24795		}
24796	}
24797	if err != nil {
24798		return nil, err
24799	}
24800	defer googleapi.CloseBody(res)
24801	if err := googleapi.CheckResponse(res); err != nil {
24802		return nil, err
24803	}
24804	ret := &AssignedTargetingOption{
24805		ServerResponse: googleapi.ServerResponse{
24806			Header:         res.Header,
24807			HTTPStatusCode: res.StatusCode,
24808		},
24809	}
24810	target := &ret
24811	if err := gensupport.DecodeResponse(target, res); err != nil {
24812		return nil, err
24813	}
24814	return ret, nil
24815	// {
24816	//   "description": "Gets a single targeting option assigned to a line item.",
24817	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
24818	//   "httpMethod": "GET",
24819	//   "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.get",
24820	//   "parameterOrder": [
24821	//     "advertiserId",
24822	//     "lineItemId",
24823	//     "targetingType",
24824	//     "assignedTargetingOptionId"
24825	//   ],
24826	//   "parameters": {
24827	//     "advertiserId": {
24828	//       "description": "Required. The ID of the advertiser the line item belongs to.",
24829	//       "format": "int64",
24830	//       "location": "path",
24831	//       "pattern": "^[^/]+$",
24832	//       "required": true,
24833	//       "type": "string"
24834	//     },
24835	//     "assignedTargetingOptionId": {
24836	//       "description": "Required. An identifier unique to the targeting type in this line item that identifies the assigned targeting option being requested.",
24837	//       "location": "path",
24838	//       "pattern": "^[^/]+$",
24839	//       "required": true,
24840	//       "type": "string"
24841	//     },
24842	//     "lineItemId": {
24843	//       "description": "Required. The ID of the line item the assigned targeting option belongs to.",
24844	//       "format": "int64",
24845	//       "location": "path",
24846	//       "pattern": "^[^/]+$",
24847	//       "required": true,
24848	//       "type": "string"
24849	//     },
24850	//     "targetingType": {
24851	//       "description": "Required. Identifies the type of this assigned targeting option.",
24852	//       "enum": [
24853	//         "TARGETING_TYPE_UNSPECIFIED",
24854	//         "TARGETING_TYPE_CHANNEL",
24855	//         "TARGETING_TYPE_APP_CATEGORY",
24856	//         "TARGETING_TYPE_APP",
24857	//         "TARGETING_TYPE_URL",
24858	//         "TARGETING_TYPE_DAY_AND_TIME",
24859	//         "TARGETING_TYPE_AGE_RANGE",
24860	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
24861	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
24862	//         "TARGETING_TYPE_GENDER",
24863	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
24864	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
24865	//         "TARGETING_TYPE_PARENTAL_STATUS",
24866	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
24867	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
24868	//         "TARGETING_TYPE_DEVICE_TYPE",
24869	//         "TARGETING_TYPE_AUDIENCE_GROUP",
24870	//         "TARGETING_TYPE_BROWSER",
24871	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
24872	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
24873	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
24874	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
24875	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
24876	//         "TARGETING_TYPE_ENVIRONMENT",
24877	//         "TARGETING_TYPE_CARRIER_AND_ISP",
24878	//         "TARGETING_TYPE_OPERATING_SYSTEM",
24879	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
24880	//         "TARGETING_TYPE_KEYWORD",
24881	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
24882	//         "TARGETING_TYPE_VIEWABILITY",
24883	//         "TARGETING_TYPE_CATEGORY",
24884	//         "TARGETING_TYPE_INVENTORY_SOURCE",
24885	//         "TARGETING_TYPE_LANGUAGE",
24886	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
24887	//         "TARGETING_TYPE_GEO_REGION",
24888	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
24889	//         "TARGETING_TYPE_EXCHANGE",
24890	//         "TARGETING_TYPE_SUB_EXCHANGE",
24891	//         "TARGETING_TYPE_POI",
24892	//         "TARGETING_TYPE_BUSINESS_CHAIN",
24893	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
24894	//         "TARGETING_TYPE_OMID"
24895	//       ],
24896	//       "enumDescriptions": [
24897	//         "Default value when type is not specified or is unknown in this version.",
24898	//         "Target a channel (a custom group of related websites or apps).",
24899	//         "Target an app category (for example, education or puzzle games).",
24900	//         "Target a specific app (for example, Angry Birds).",
24901	//         "Target a specific url (for example, quora.com).",
24902	//         "Target ads during a chosen time period on a specific day.",
24903	//         "Target ads to a specific age range (for example, 18-24).",
24904	//         "Target ads to the specified regions on a regional location list.",
24905	//         "Target ads to the specified points of interest on a proximity location list.",
24906	//         "Target ads to a specific gender (for example, female or male).",
24907	//         "Target a specific video player size for video ads.",
24908	//         "Target user rewarded content for video ads.",
24909	//         "Target ads to a specific parental status (for example, parent or not a parent).",
24910	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
24911	//         "Target ads in a specific content outstream position.",
24912	//         "Target ads to a specific device type (for example, tablet or connected TV).",
24913	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
24914	//         "Target ads to specific web browsers (for example, Chrome).",
24915	//         "Target ads to a specific household income range (for example, top 10%).",
24916	//         "Target ads in a specific on screen position.",
24917	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
24918	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
24919	//         "Filter website content by sensitive categories (for example, adult).",
24920	//         "Target ads to a specific environment (for example, web or app).",
24921	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
24922	//         "Target ads to a specific operating system (for example, macOS).",
24923	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
24924	//         "Target ads to a specific keyword (for example, dog or retriever).",
24925	//         "Target ads to a specific negative keyword list.",
24926	//         "Target ads to a specific viewability (for example, 80% viewable).",
24927	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
24928	//         "Purchase impressions from specific deals and auction packages.",
24929	//         "Target ads to a specific language (for example, English or Japanese).",
24930	//         "Target ads to ads.txt authorized sellers.",
24931	//         "Target ads to a specific regional location (for example, a city or state).",
24932	//         "Purchase impressions from a group of deals and auction packages.",
24933	//         "Purchase impressions from specific exchanges.",
24934	//         "Purchase impressions from specific sub-exchanges.",
24935	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
24936	//         "Target ads around locations of a business chain within a specific geo region.",
24937	//         "Target ads to a specific native content position.",
24938	//         "Target ads in an Open Measurement enabled inventory."
24939	//       ],
24940	//       "location": "path",
24941	//       "pattern": "^[^/]+$",
24942	//       "required": true,
24943	//       "type": "string"
24944	//     }
24945	//   },
24946	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
24947	//   "response": {
24948	//     "$ref": "AssignedTargetingOption"
24949	//   },
24950	//   "scopes": [
24951	//     "https://www.googleapis.com/auth/display-video"
24952	//   ]
24953	// }
24954
24955}
24956
24957// method id "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.list":
24958
24959type AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall struct {
24960	s             *Service
24961	advertiserId  int64
24962	lineItemId    int64
24963	targetingType string
24964	urlParams_    gensupport.URLParams
24965	ifNoneMatch_  string
24966	ctx_          context.Context
24967	header_       http.Header
24968}
24969
24970// List: Lists the targeting options assigned to a line item.
24971//
24972// - advertiserId: The ID of the advertiser the line item belongs to.
24973// - lineItemId: The ID of the line item to list assigned targeting
24974//   options for.
24975// - targetingType: Identifies the type of assigned targeting options to
24976//   list.
24977func (r *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService) List(advertiserId int64, lineItemId int64, targetingType string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
24978	c := &AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24979	c.advertiserId = advertiserId
24980	c.lineItemId = lineItemId
24981	c.targetingType = targetingType
24982	return c
24983}
24984
24985// Filter sets the optional parameter "filter": Allows filtering by
24986// assigned targeting option properties. Supported syntax: * Filter
24987// expressions are made up of one or more restrictions. * Restrictions
24988// can be combined by the logical operator `OR`. * A restriction has the
24989// form of `{field} {operator} {value}`. * The operator must be `EQUALS
24990// (=)`. * Supported fields: - `assignedTargetingOptionId` -
24991// `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2
24992// `assignedTargetingOptionId="1" OR assignedTargetingOptionId="2" *
24993// AssignedTargetingOptions with inheritance status of NOT_INHERITED or
24994// INHERITED_FROM_PARTNER `inheritance="NOT_INHERITED" OR
24995// inheritance="INHERITED_FROM_PARTNER" The length of this field should
24996// be no more than 500 characters.
24997func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) Filter(filter string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
24998	c.urlParams_.Set("filter", filter)
24999	return c
25000}
25001
25002// OrderBy sets the optional parameter "orderBy": Field by which to sort
25003// the list. Acceptable values are: * `assignedTargetingOptionId`
25004// (default) The default sorting order is ascending. To specify
25005// descending order for a field, a suffix "desc" should be added to the
25006// field name. Example: `assignedTargetingOptionId desc`.
25007func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) OrderBy(orderBy string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
25008	c.urlParams_.Set("orderBy", orderBy)
25009	return c
25010}
25011
25012// PageSize sets the optional parameter "pageSize": Requested page size.
25013// Must be between `1` and `5000`. If unspecified will default to `100`.
25014// Returns error code `INVALID_ARGUMENT` if an invalid value is
25015// specified.
25016func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) PageSize(pageSize int64) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
25017	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
25018	return c
25019}
25020
25021// PageToken sets the optional parameter "pageToken": A token
25022// identifying a page of results the server should return. Typically,
25023// this is the value of next_page_token returned from the previous call
25024// to `ListLineItemAssignedTargetingOptions` method. If not specified,
25025// the first page of results will be returned.
25026func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) PageToken(pageToken string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
25027	c.urlParams_.Set("pageToken", pageToken)
25028	return c
25029}
25030
25031// Fields allows partial responses to be retrieved. See
25032// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25033// for more information.
25034func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
25035	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25036	return c
25037}
25038
25039// IfNoneMatch sets the optional parameter which makes the operation
25040// fail if the object's ETag matches the given value. This is useful for
25041// getting updates only after the object has changed since the last
25042// request. Use googleapi.IsNotModified to check whether the response
25043// error from Do is the result of In-None-Match.
25044func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) IfNoneMatch(entityTag string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
25045	c.ifNoneMatch_ = entityTag
25046	return c
25047}
25048
25049// Context sets the context to be used in this call's Do method. Any
25050// pending HTTP request will be aborted if the provided context is
25051// canceled.
25052func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) Context(ctx context.Context) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
25053	c.ctx_ = ctx
25054	return c
25055}
25056
25057// Header returns an http.Header that can be modified by the caller to
25058// add HTTP headers to the request.
25059func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) Header() http.Header {
25060	if c.header_ == nil {
25061		c.header_ = make(http.Header)
25062	}
25063	return c.header_
25064}
25065
25066func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) doRequest(alt string) (*http.Response, error) {
25067	reqHeaders := make(http.Header)
25068	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
25069	for k, v := range c.header_ {
25070		reqHeaders[k] = v
25071	}
25072	reqHeaders.Set("User-Agent", c.s.userAgent())
25073	if c.ifNoneMatch_ != "" {
25074		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
25075	}
25076	var body io.Reader = nil
25077	c.urlParams_.Set("alt", alt)
25078	c.urlParams_.Set("prettyPrint", "false")
25079	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
25080	urls += "?" + c.urlParams_.Encode()
25081	req, err := http.NewRequest("GET", urls, body)
25082	if err != nil {
25083		return nil, err
25084	}
25085	req.Header = reqHeaders
25086	googleapi.Expand(req.URL, map[string]string{
25087		"advertiserId":  strconv.FormatInt(c.advertiserId, 10),
25088		"lineItemId":    strconv.FormatInt(c.lineItemId, 10),
25089		"targetingType": c.targetingType,
25090	})
25091	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25092}
25093
25094// Do executes the "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.list" call.
25095// Exactly one of *ListLineItemAssignedTargetingOptionsResponse or error
25096// will be non-nil. Any non-2xx status code is an error. Response
25097// headers are in either
25098// *ListLineItemAssignedTargetingOptionsResponse.ServerResponse.Header
25099// or (if a response was returned at all) in
25100// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
25101// whether the returned error was because http.StatusNotModified was
25102// returned.
25103func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) Do(opts ...googleapi.CallOption) (*ListLineItemAssignedTargetingOptionsResponse, error) {
25104	gensupport.SetOptions(c.urlParams_, opts...)
25105	res, err := c.doRequest("json")
25106	if res != nil && res.StatusCode == http.StatusNotModified {
25107		if res.Body != nil {
25108			res.Body.Close()
25109		}
25110		return nil, &googleapi.Error{
25111			Code:   res.StatusCode,
25112			Header: res.Header,
25113		}
25114	}
25115	if err != nil {
25116		return nil, err
25117	}
25118	defer googleapi.CloseBody(res)
25119	if err := googleapi.CheckResponse(res); err != nil {
25120		return nil, err
25121	}
25122	ret := &ListLineItemAssignedTargetingOptionsResponse{
25123		ServerResponse: googleapi.ServerResponse{
25124			Header:         res.Header,
25125			HTTPStatusCode: res.StatusCode,
25126		},
25127	}
25128	target := &ret
25129	if err := gensupport.DecodeResponse(target, res); err != nil {
25130		return nil, err
25131	}
25132	return ret, nil
25133	// {
25134	//   "description": "Lists the targeting options assigned to a line item.",
25135	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
25136	//   "httpMethod": "GET",
25137	//   "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.list",
25138	//   "parameterOrder": [
25139	//     "advertiserId",
25140	//     "lineItemId",
25141	//     "targetingType"
25142	//   ],
25143	//   "parameters": {
25144	//     "advertiserId": {
25145	//       "description": "Required. The ID of the advertiser the line item belongs to.",
25146	//       "format": "int64",
25147	//       "location": "path",
25148	//       "pattern": "^[^/]+$",
25149	//       "required": true,
25150	//       "type": "string"
25151	//     },
25152	//     "filter": {
25153	//       "description": "Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` - `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2 `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * AssignedTargetingOptions with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters.",
25154	//       "location": "query",
25155	//       "type": "string"
25156	//     },
25157	//     "lineItemId": {
25158	//       "description": "Required. The ID of the line item to list assigned targeting options for.",
25159	//       "format": "int64",
25160	//       "location": "path",
25161	//       "pattern": "^[^/]+$",
25162	//       "required": true,
25163	//       "type": "string"
25164	//     },
25165	//     "orderBy": {
25166	//       "description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.",
25167	//       "location": "query",
25168	//       "type": "string"
25169	//     },
25170	//     "pageSize": {
25171	//       "description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
25172	//       "format": "int32",
25173	//       "location": "query",
25174	//       "type": "integer"
25175	//     },
25176	//     "pageToken": {
25177	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLineItemAssignedTargetingOptions` method. If not specified, the first page of results will be returned.",
25178	//       "location": "query",
25179	//       "type": "string"
25180	//     },
25181	//     "targetingType": {
25182	//       "description": "Required. Identifies the type of assigned targeting options to list.",
25183	//       "enum": [
25184	//         "TARGETING_TYPE_UNSPECIFIED",
25185	//         "TARGETING_TYPE_CHANNEL",
25186	//         "TARGETING_TYPE_APP_CATEGORY",
25187	//         "TARGETING_TYPE_APP",
25188	//         "TARGETING_TYPE_URL",
25189	//         "TARGETING_TYPE_DAY_AND_TIME",
25190	//         "TARGETING_TYPE_AGE_RANGE",
25191	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
25192	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
25193	//         "TARGETING_TYPE_GENDER",
25194	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
25195	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
25196	//         "TARGETING_TYPE_PARENTAL_STATUS",
25197	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
25198	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
25199	//         "TARGETING_TYPE_DEVICE_TYPE",
25200	//         "TARGETING_TYPE_AUDIENCE_GROUP",
25201	//         "TARGETING_TYPE_BROWSER",
25202	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
25203	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
25204	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
25205	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
25206	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
25207	//         "TARGETING_TYPE_ENVIRONMENT",
25208	//         "TARGETING_TYPE_CARRIER_AND_ISP",
25209	//         "TARGETING_TYPE_OPERATING_SYSTEM",
25210	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
25211	//         "TARGETING_TYPE_KEYWORD",
25212	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
25213	//         "TARGETING_TYPE_VIEWABILITY",
25214	//         "TARGETING_TYPE_CATEGORY",
25215	//         "TARGETING_TYPE_INVENTORY_SOURCE",
25216	//         "TARGETING_TYPE_LANGUAGE",
25217	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
25218	//         "TARGETING_TYPE_GEO_REGION",
25219	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
25220	//         "TARGETING_TYPE_EXCHANGE",
25221	//         "TARGETING_TYPE_SUB_EXCHANGE",
25222	//         "TARGETING_TYPE_POI",
25223	//         "TARGETING_TYPE_BUSINESS_CHAIN",
25224	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
25225	//         "TARGETING_TYPE_OMID"
25226	//       ],
25227	//       "enumDescriptions": [
25228	//         "Default value when type is not specified or is unknown in this version.",
25229	//         "Target a channel (a custom group of related websites or apps).",
25230	//         "Target an app category (for example, education or puzzle games).",
25231	//         "Target a specific app (for example, Angry Birds).",
25232	//         "Target a specific url (for example, quora.com).",
25233	//         "Target ads during a chosen time period on a specific day.",
25234	//         "Target ads to a specific age range (for example, 18-24).",
25235	//         "Target ads to the specified regions on a regional location list.",
25236	//         "Target ads to the specified points of interest on a proximity location list.",
25237	//         "Target ads to a specific gender (for example, female or male).",
25238	//         "Target a specific video player size for video ads.",
25239	//         "Target user rewarded content for video ads.",
25240	//         "Target ads to a specific parental status (for example, parent or not a parent).",
25241	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
25242	//         "Target ads in a specific content outstream position.",
25243	//         "Target ads to a specific device type (for example, tablet or connected TV).",
25244	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
25245	//         "Target ads to specific web browsers (for example, Chrome).",
25246	//         "Target ads to a specific household income range (for example, top 10%).",
25247	//         "Target ads in a specific on screen position.",
25248	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
25249	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
25250	//         "Filter website content by sensitive categories (for example, adult).",
25251	//         "Target ads to a specific environment (for example, web or app).",
25252	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
25253	//         "Target ads to a specific operating system (for example, macOS).",
25254	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
25255	//         "Target ads to a specific keyword (for example, dog or retriever).",
25256	//         "Target ads to a specific negative keyword list.",
25257	//         "Target ads to a specific viewability (for example, 80% viewable).",
25258	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
25259	//         "Purchase impressions from specific deals and auction packages.",
25260	//         "Target ads to a specific language (for example, English or Japanese).",
25261	//         "Target ads to ads.txt authorized sellers.",
25262	//         "Target ads to a specific regional location (for example, a city or state).",
25263	//         "Purchase impressions from a group of deals and auction packages.",
25264	//         "Purchase impressions from specific exchanges.",
25265	//         "Purchase impressions from specific sub-exchanges.",
25266	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
25267	//         "Target ads around locations of a business chain within a specific geo region.",
25268	//         "Target ads to a specific native content position.",
25269	//         "Target ads in an Open Measurement enabled inventory."
25270	//       ],
25271	//       "location": "path",
25272	//       "pattern": "^[^/]+$",
25273	//       "required": true,
25274	//       "type": "string"
25275	//     }
25276	//   },
25277	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
25278	//   "response": {
25279	//     "$ref": "ListLineItemAssignedTargetingOptionsResponse"
25280	//   },
25281	//   "scopes": [
25282	//     "https://www.googleapis.com/auth/display-video"
25283	//   ]
25284	// }
25285
25286}
25287
25288// Pages invokes f for each page of results.
25289// A non-nil error returned from f will halt the iteration.
25290// The provided context supersedes any context provided to the Context method.
25291func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) Pages(ctx context.Context, f func(*ListLineItemAssignedTargetingOptionsResponse) error) error {
25292	c.ctx_ = ctx
25293	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
25294	for {
25295		x, err := c.Do()
25296		if err != nil {
25297			return err
25298		}
25299		if err := f(x); err != nil {
25300			return err
25301		}
25302		if x.NextPageToken == "" {
25303			return nil
25304		}
25305		c.PageToken(x.NextPageToken)
25306	}
25307}
25308
25309// method id "displayvideo.advertisers.locationLists.create":
25310
25311type AdvertisersLocationListsCreateCall struct {
25312	s            *Service
25313	advertiserId int64
25314	locationlist *LocationList
25315	urlParams_   gensupport.URLParams
25316	ctx_         context.Context
25317	header_      http.Header
25318}
25319
25320// Create: Creates a new location list. Returns the newly created
25321// location list if successful.
25322//
25323// - advertiserId: The ID of the DV360 advertiser to which the location
25324//   list belongs.
25325func (r *AdvertisersLocationListsService) Create(advertiserId int64, locationlist *LocationList) *AdvertisersLocationListsCreateCall {
25326	c := &AdvertisersLocationListsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25327	c.advertiserId = advertiserId
25328	c.locationlist = locationlist
25329	return c
25330}
25331
25332// Fields allows partial responses to be retrieved. See
25333// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25334// for more information.
25335func (c *AdvertisersLocationListsCreateCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsCreateCall {
25336	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25337	return c
25338}
25339
25340// Context sets the context to be used in this call's Do method. Any
25341// pending HTTP request will be aborted if the provided context is
25342// canceled.
25343func (c *AdvertisersLocationListsCreateCall) Context(ctx context.Context) *AdvertisersLocationListsCreateCall {
25344	c.ctx_ = ctx
25345	return c
25346}
25347
25348// Header returns an http.Header that can be modified by the caller to
25349// add HTTP headers to the request.
25350func (c *AdvertisersLocationListsCreateCall) Header() http.Header {
25351	if c.header_ == nil {
25352		c.header_ = make(http.Header)
25353	}
25354	return c.header_
25355}
25356
25357func (c *AdvertisersLocationListsCreateCall) doRequest(alt string) (*http.Response, error) {
25358	reqHeaders := make(http.Header)
25359	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
25360	for k, v := range c.header_ {
25361		reqHeaders[k] = v
25362	}
25363	reqHeaders.Set("User-Agent", c.s.userAgent())
25364	var body io.Reader = nil
25365	body, err := googleapi.WithoutDataWrapper.JSONReader(c.locationlist)
25366	if err != nil {
25367		return nil, err
25368	}
25369	reqHeaders.Set("Content-Type", "application/json")
25370	c.urlParams_.Set("alt", alt)
25371	c.urlParams_.Set("prettyPrint", "false")
25372	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/locationLists")
25373	urls += "?" + c.urlParams_.Encode()
25374	req, err := http.NewRequest("POST", urls, body)
25375	if err != nil {
25376		return nil, err
25377	}
25378	req.Header = reqHeaders
25379	googleapi.Expand(req.URL, map[string]string{
25380		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
25381	})
25382	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25383}
25384
25385// Do executes the "displayvideo.advertisers.locationLists.create" call.
25386// Exactly one of *LocationList or error will be non-nil. Any non-2xx
25387// status code is an error. Response headers are in either
25388// *LocationList.ServerResponse.Header or (if a response was returned at
25389// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
25390// to check whether the returned error was because
25391// http.StatusNotModified was returned.
25392func (c *AdvertisersLocationListsCreateCall) Do(opts ...googleapi.CallOption) (*LocationList, error) {
25393	gensupport.SetOptions(c.urlParams_, opts...)
25394	res, err := c.doRequest("json")
25395	if res != nil && res.StatusCode == http.StatusNotModified {
25396		if res.Body != nil {
25397			res.Body.Close()
25398		}
25399		return nil, &googleapi.Error{
25400			Code:   res.StatusCode,
25401			Header: res.Header,
25402		}
25403	}
25404	if err != nil {
25405		return nil, err
25406	}
25407	defer googleapi.CloseBody(res)
25408	if err := googleapi.CheckResponse(res); err != nil {
25409		return nil, err
25410	}
25411	ret := &LocationList{
25412		ServerResponse: googleapi.ServerResponse{
25413			Header:         res.Header,
25414			HTTPStatusCode: res.StatusCode,
25415		},
25416	}
25417	target := &ret
25418	if err := gensupport.DecodeResponse(target, res); err != nil {
25419		return nil, err
25420	}
25421	return ret, nil
25422	// {
25423	//   "description": "Creates a new location list. Returns the newly created location list if successful.",
25424	//   "flatPath": "v1/advertisers/{advertisersId}/locationLists",
25425	//   "httpMethod": "POST",
25426	//   "id": "displayvideo.advertisers.locationLists.create",
25427	//   "parameterOrder": [
25428	//     "advertiserId"
25429	//   ],
25430	//   "parameters": {
25431	//     "advertiserId": {
25432	//       "description": "Required. The ID of the DV360 advertiser to which the location list belongs.",
25433	//       "format": "int64",
25434	//       "location": "path",
25435	//       "pattern": "^[^/]+$",
25436	//       "required": true,
25437	//       "type": "string"
25438	//     }
25439	//   },
25440	//   "path": "v1/advertisers/{+advertiserId}/locationLists",
25441	//   "request": {
25442	//     "$ref": "LocationList"
25443	//   },
25444	//   "response": {
25445	//     "$ref": "LocationList"
25446	//   },
25447	//   "scopes": [
25448	//     "https://www.googleapis.com/auth/display-video"
25449	//   ]
25450	// }
25451
25452}
25453
25454// method id "displayvideo.advertisers.locationLists.get":
25455
25456type AdvertisersLocationListsGetCall struct {
25457	s              *Service
25458	advertiserId   int64
25459	locationListId int64
25460	urlParams_     gensupport.URLParams
25461	ifNoneMatch_   string
25462	ctx_           context.Context
25463	header_        http.Header
25464}
25465
25466// Get: Gets a location list.
25467//
25468// - advertiserId: The ID of the DV360 advertiser to which the fetched
25469//   location list belongs.
25470// - locationListId: The ID of the location list to fetch.
25471func (r *AdvertisersLocationListsService) Get(advertiserId int64, locationListId int64) *AdvertisersLocationListsGetCall {
25472	c := &AdvertisersLocationListsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25473	c.advertiserId = advertiserId
25474	c.locationListId = locationListId
25475	return c
25476}
25477
25478// Fields allows partial responses to be retrieved. See
25479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25480// for more information.
25481func (c *AdvertisersLocationListsGetCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsGetCall {
25482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25483	return c
25484}
25485
25486// IfNoneMatch sets the optional parameter which makes the operation
25487// fail if the object's ETag matches the given value. This is useful for
25488// getting updates only after the object has changed since the last
25489// request. Use googleapi.IsNotModified to check whether the response
25490// error from Do is the result of In-None-Match.
25491func (c *AdvertisersLocationListsGetCall) IfNoneMatch(entityTag string) *AdvertisersLocationListsGetCall {
25492	c.ifNoneMatch_ = entityTag
25493	return c
25494}
25495
25496// Context sets the context to be used in this call's Do method. Any
25497// pending HTTP request will be aborted if the provided context is
25498// canceled.
25499func (c *AdvertisersLocationListsGetCall) Context(ctx context.Context) *AdvertisersLocationListsGetCall {
25500	c.ctx_ = ctx
25501	return c
25502}
25503
25504// Header returns an http.Header that can be modified by the caller to
25505// add HTTP headers to the request.
25506func (c *AdvertisersLocationListsGetCall) Header() http.Header {
25507	if c.header_ == nil {
25508		c.header_ = make(http.Header)
25509	}
25510	return c.header_
25511}
25512
25513func (c *AdvertisersLocationListsGetCall) doRequest(alt string) (*http.Response, error) {
25514	reqHeaders := make(http.Header)
25515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
25516	for k, v := range c.header_ {
25517		reqHeaders[k] = v
25518	}
25519	reqHeaders.Set("User-Agent", c.s.userAgent())
25520	if c.ifNoneMatch_ != "" {
25521		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
25522	}
25523	var body io.Reader = nil
25524	c.urlParams_.Set("alt", alt)
25525	c.urlParams_.Set("prettyPrint", "false")
25526	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/locationLists/{+locationListId}")
25527	urls += "?" + c.urlParams_.Encode()
25528	req, err := http.NewRequest("GET", urls, body)
25529	if err != nil {
25530		return nil, err
25531	}
25532	req.Header = reqHeaders
25533	googleapi.Expand(req.URL, map[string]string{
25534		"advertiserId":   strconv.FormatInt(c.advertiserId, 10),
25535		"locationListId": strconv.FormatInt(c.locationListId, 10),
25536	})
25537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25538}
25539
25540// Do executes the "displayvideo.advertisers.locationLists.get" call.
25541// Exactly one of *LocationList or error will be non-nil. Any non-2xx
25542// status code is an error. Response headers are in either
25543// *LocationList.ServerResponse.Header or (if a response was returned at
25544// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
25545// to check whether the returned error was because
25546// http.StatusNotModified was returned.
25547func (c *AdvertisersLocationListsGetCall) Do(opts ...googleapi.CallOption) (*LocationList, error) {
25548	gensupport.SetOptions(c.urlParams_, opts...)
25549	res, err := c.doRequest("json")
25550	if res != nil && res.StatusCode == http.StatusNotModified {
25551		if res.Body != nil {
25552			res.Body.Close()
25553		}
25554		return nil, &googleapi.Error{
25555			Code:   res.StatusCode,
25556			Header: res.Header,
25557		}
25558	}
25559	if err != nil {
25560		return nil, err
25561	}
25562	defer googleapi.CloseBody(res)
25563	if err := googleapi.CheckResponse(res); err != nil {
25564		return nil, err
25565	}
25566	ret := &LocationList{
25567		ServerResponse: googleapi.ServerResponse{
25568			Header:         res.Header,
25569			HTTPStatusCode: res.StatusCode,
25570		},
25571	}
25572	target := &ret
25573	if err := gensupport.DecodeResponse(target, res); err != nil {
25574		return nil, err
25575	}
25576	return ret, nil
25577	// {
25578	//   "description": "Gets a location list.",
25579	//   "flatPath": "v1/advertisers/{advertisersId}/locationLists/{locationListsId}",
25580	//   "httpMethod": "GET",
25581	//   "id": "displayvideo.advertisers.locationLists.get",
25582	//   "parameterOrder": [
25583	//     "advertiserId",
25584	//     "locationListId"
25585	//   ],
25586	//   "parameters": {
25587	//     "advertiserId": {
25588	//       "description": "Required. The ID of the DV360 advertiser to which the fetched location list belongs.",
25589	//       "format": "int64",
25590	//       "location": "path",
25591	//       "pattern": "^[^/]+$",
25592	//       "required": true,
25593	//       "type": "string"
25594	//     },
25595	//     "locationListId": {
25596	//       "description": "Required. The ID of the location list to fetch.",
25597	//       "format": "int64",
25598	//       "location": "path",
25599	//       "pattern": "^[^/]+$",
25600	//       "required": true,
25601	//       "type": "string"
25602	//     }
25603	//   },
25604	//   "path": "v1/advertisers/{+advertiserId}/locationLists/{+locationListId}",
25605	//   "response": {
25606	//     "$ref": "LocationList"
25607	//   },
25608	//   "scopes": [
25609	//     "https://www.googleapis.com/auth/display-video"
25610	//   ]
25611	// }
25612
25613}
25614
25615// method id "displayvideo.advertisers.locationLists.list":
25616
25617type AdvertisersLocationListsListCall struct {
25618	s            *Service
25619	advertiserId int64
25620	urlParams_   gensupport.URLParams
25621	ifNoneMatch_ string
25622	ctx_         context.Context
25623	header_      http.Header
25624}
25625
25626// List: Lists location lists based on a given advertiser id.
25627//
25628// - advertiserId: The ID of the DV360 advertiser to which the fetched
25629//   location lists belong.
25630func (r *AdvertisersLocationListsService) List(advertiserId int64) *AdvertisersLocationListsListCall {
25631	c := &AdvertisersLocationListsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25632	c.advertiserId = advertiserId
25633	return c
25634}
25635
25636// Filter sets the optional parameter "filter": Allows filtering by
25637// location list fields. Supported syntax: * Filter expressions are made
25638// up of one or more restrictions. * Restrictions can be combined by
25639// `AND` or `OR` logical operators. A sequence of restrictions
25640// implicitly uses `AND`. * A restriction has the form of `{field}
25641// {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported
25642// fields: - `locationType` Examples: * All regional location list:
25643// `locationType="TARGETING_LOCATION_TYPE_REGIONAL" * All proximity
25644// location list: `locationType="TARGETING_LOCATION_TYPE_PROXIMITY"
25645func (c *AdvertisersLocationListsListCall) Filter(filter string) *AdvertisersLocationListsListCall {
25646	c.urlParams_.Set("filter", filter)
25647	return c
25648}
25649
25650// OrderBy sets the optional parameter "orderBy": Field by which to sort
25651// the list. Acceptable values are: * `locationListId` (default) *
25652// `displayName` The default sorting order is ascending. To specify
25653// descending order for a field, a suffix "desc" should be added to the
25654// field name. Example: `displayName desc`.
25655func (c *AdvertisersLocationListsListCall) OrderBy(orderBy string) *AdvertisersLocationListsListCall {
25656	c.urlParams_.Set("orderBy", orderBy)
25657	return c
25658}
25659
25660// PageSize sets the optional parameter "pageSize": Requested page size.
25661// Must be between `1` and `100`. Defaults to `100` if not set. Returns
25662// error code `INVALID_ARGUMENT` if an invalid value is specified.
25663func (c *AdvertisersLocationListsListCall) PageSize(pageSize int64) *AdvertisersLocationListsListCall {
25664	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
25665	return c
25666}
25667
25668// PageToken sets the optional parameter "pageToken": A token
25669// identifying a page of results the server should return. Typically,
25670// this is the value of next_page_token returned from the previous call
25671// to `ListLocationLists` method. If not specified, the first page of
25672// results will be returned.
25673func (c *AdvertisersLocationListsListCall) PageToken(pageToken string) *AdvertisersLocationListsListCall {
25674	c.urlParams_.Set("pageToken", pageToken)
25675	return c
25676}
25677
25678// Fields allows partial responses to be retrieved. See
25679// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25680// for more information.
25681func (c *AdvertisersLocationListsListCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsListCall {
25682	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25683	return c
25684}
25685
25686// IfNoneMatch sets the optional parameter which makes the operation
25687// fail if the object's ETag matches the given value. This is useful for
25688// getting updates only after the object has changed since the last
25689// request. Use googleapi.IsNotModified to check whether the response
25690// error from Do is the result of In-None-Match.
25691func (c *AdvertisersLocationListsListCall) IfNoneMatch(entityTag string) *AdvertisersLocationListsListCall {
25692	c.ifNoneMatch_ = entityTag
25693	return c
25694}
25695
25696// Context sets the context to be used in this call's Do method. Any
25697// pending HTTP request will be aborted if the provided context is
25698// canceled.
25699func (c *AdvertisersLocationListsListCall) Context(ctx context.Context) *AdvertisersLocationListsListCall {
25700	c.ctx_ = ctx
25701	return c
25702}
25703
25704// Header returns an http.Header that can be modified by the caller to
25705// add HTTP headers to the request.
25706func (c *AdvertisersLocationListsListCall) Header() http.Header {
25707	if c.header_ == nil {
25708		c.header_ = make(http.Header)
25709	}
25710	return c.header_
25711}
25712
25713func (c *AdvertisersLocationListsListCall) doRequest(alt string) (*http.Response, error) {
25714	reqHeaders := make(http.Header)
25715	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
25716	for k, v := range c.header_ {
25717		reqHeaders[k] = v
25718	}
25719	reqHeaders.Set("User-Agent", c.s.userAgent())
25720	if c.ifNoneMatch_ != "" {
25721		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
25722	}
25723	var body io.Reader = nil
25724	c.urlParams_.Set("alt", alt)
25725	c.urlParams_.Set("prettyPrint", "false")
25726	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/locationLists")
25727	urls += "?" + c.urlParams_.Encode()
25728	req, err := http.NewRequest("GET", urls, body)
25729	if err != nil {
25730		return nil, err
25731	}
25732	req.Header = reqHeaders
25733	googleapi.Expand(req.URL, map[string]string{
25734		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
25735	})
25736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25737}
25738
25739// Do executes the "displayvideo.advertisers.locationLists.list" call.
25740// Exactly one of *ListLocationListsResponse or error will be non-nil.
25741// Any non-2xx status code is an error. Response headers are in either
25742// *ListLocationListsResponse.ServerResponse.Header or (if a response
25743// was returned at all) in error.(*googleapi.Error).Header. Use
25744// googleapi.IsNotModified to check whether the returned error was
25745// because http.StatusNotModified was returned.
25746func (c *AdvertisersLocationListsListCall) Do(opts ...googleapi.CallOption) (*ListLocationListsResponse, error) {
25747	gensupport.SetOptions(c.urlParams_, opts...)
25748	res, err := c.doRequest("json")
25749	if res != nil && res.StatusCode == http.StatusNotModified {
25750		if res.Body != nil {
25751			res.Body.Close()
25752		}
25753		return nil, &googleapi.Error{
25754			Code:   res.StatusCode,
25755			Header: res.Header,
25756		}
25757	}
25758	if err != nil {
25759		return nil, err
25760	}
25761	defer googleapi.CloseBody(res)
25762	if err := googleapi.CheckResponse(res); err != nil {
25763		return nil, err
25764	}
25765	ret := &ListLocationListsResponse{
25766		ServerResponse: googleapi.ServerResponse{
25767			Header:         res.Header,
25768			HTTPStatusCode: res.StatusCode,
25769		},
25770	}
25771	target := &ret
25772	if err := gensupport.DecodeResponse(target, res); err != nil {
25773		return nil, err
25774	}
25775	return ret, nil
25776	// {
25777	//   "description": "Lists location lists based on a given advertiser id.",
25778	//   "flatPath": "v1/advertisers/{advertisersId}/locationLists",
25779	//   "httpMethod": "GET",
25780	//   "id": "displayvideo.advertisers.locationLists.list",
25781	//   "parameterOrder": [
25782	//     "advertiserId"
25783	//   ],
25784	//   "parameters": {
25785	//     "advertiserId": {
25786	//       "description": "Required. The ID of the DV360 advertiser to which the fetched location lists belong.",
25787	//       "format": "int64",
25788	//       "location": "path",
25789	//       "pattern": "^[^/]+$",
25790	//       "required": true,
25791	//       "type": "string"
25792	//     },
25793	//     "filter": {
25794	//       "description": "Allows filtering by location list fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `locationType` Examples: * All regional location list: `locationType=\"TARGETING_LOCATION_TYPE_REGIONAL\"` * All proximity location list: `locationType=\"TARGETING_LOCATION_TYPE_PROXIMITY\"`",
25795	//       "location": "query",
25796	//       "type": "string"
25797	//     },
25798	//     "orderBy": {
25799	//       "description": "Field by which to sort the list. Acceptable values are: * `locationListId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.",
25800	//       "location": "query",
25801	//       "type": "string"
25802	//     },
25803	//     "pageSize": {
25804	//       "description": "Requested page size. Must be between `1` and `100`. Defaults to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
25805	//       "format": "int32",
25806	//       "location": "query",
25807	//       "type": "integer"
25808	//     },
25809	//     "pageToken": {
25810	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLocationLists` method. If not specified, the first page of results will be returned.",
25811	//       "location": "query",
25812	//       "type": "string"
25813	//     }
25814	//   },
25815	//   "path": "v1/advertisers/{+advertiserId}/locationLists",
25816	//   "response": {
25817	//     "$ref": "ListLocationListsResponse"
25818	//   },
25819	//   "scopes": [
25820	//     "https://www.googleapis.com/auth/display-video"
25821	//   ]
25822	// }
25823
25824}
25825
25826// Pages invokes f for each page of results.
25827// A non-nil error returned from f will halt the iteration.
25828// The provided context supersedes any context provided to the Context method.
25829func (c *AdvertisersLocationListsListCall) Pages(ctx context.Context, f func(*ListLocationListsResponse) error) error {
25830	c.ctx_ = ctx
25831	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
25832	for {
25833		x, err := c.Do()
25834		if err != nil {
25835			return err
25836		}
25837		if err := f(x); err != nil {
25838			return err
25839		}
25840		if x.NextPageToken == "" {
25841			return nil
25842		}
25843		c.PageToken(x.NextPageToken)
25844	}
25845}
25846
25847// method id "displayvideo.advertisers.locationLists.patch":
25848
25849type AdvertisersLocationListsPatchCall struct {
25850	s              *Service
25851	advertiserId   int64
25852	locationListId int64
25853	locationlist   *LocationList
25854	urlParams_     gensupport.URLParams
25855	ctx_           context.Context
25856	header_        http.Header
25857}
25858
25859// Patch: Updates a location list. Returns the updated location list if
25860// successful.
25861//
25862// - advertiserId: The ID of the DV360 advertiser to which the location
25863//   lists belongs.
25864// - locationListId: Output only. The unique ID of the location list.
25865//   Assigned by the system.
25866func (r *AdvertisersLocationListsService) Patch(advertiserId int64, locationListId int64, locationlist *LocationList) *AdvertisersLocationListsPatchCall {
25867	c := &AdvertisersLocationListsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25868	c.advertiserId = advertiserId
25869	c.locationListId = locationListId
25870	c.locationlist = locationlist
25871	return c
25872}
25873
25874// UpdateMask sets the optional parameter "updateMask": Required. The
25875// mask to control which fields to update.
25876func (c *AdvertisersLocationListsPatchCall) UpdateMask(updateMask string) *AdvertisersLocationListsPatchCall {
25877	c.urlParams_.Set("updateMask", updateMask)
25878	return c
25879}
25880
25881// Fields allows partial responses to be retrieved. See
25882// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25883// for more information.
25884func (c *AdvertisersLocationListsPatchCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsPatchCall {
25885	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25886	return c
25887}
25888
25889// Context sets the context to be used in this call's Do method. Any
25890// pending HTTP request will be aborted if the provided context is
25891// canceled.
25892func (c *AdvertisersLocationListsPatchCall) Context(ctx context.Context) *AdvertisersLocationListsPatchCall {
25893	c.ctx_ = ctx
25894	return c
25895}
25896
25897// Header returns an http.Header that can be modified by the caller to
25898// add HTTP headers to the request.
25899func (c *AdvertisersLocationListsPatchCall) Header() http.Header {
25900	if c.header_ == nil {
25901		c.header_ = make(http.Header)
25902	}
25903	return c.header_
25904}
25905
25906func (c *AdvertisersLocationListsPatchCall) doRequest(alt string) (*http.Response, error) {
25907	reqHeaders := make(http.Header)
25908	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
25909	for k, v := range c.header_ {
25910		reqHeaders[k] = v
25911	}
25912	reqHeaders.Set("User-Agent", c.s.userAgent())
25913	var body io.Reader = nil
25914	body, err := googleapi.WithoutDataWrapper.JSONReader(c.locationlist)
25915	if err != nil {
25916		return nil, err
25917	}
25918	reqHeaders.Set("Content-Type", "application/json")
25919	c.urlParams_.Set("alt", alt)
25920	c.urlParams_.Set("prettyPrint", "false")
25921	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/locationLists/{locationListId}")
25922	urls += "?" + c.urlParams_.Encode()
25923	req, err := http.NewRequest("PATCH", urls, body)
25924	if err != nil {
25925		return nil, err
25926	}
25927	req.Header = reqHeaders
25928	googleapi.Expand(req.URL, map[string]string{
25929		"advertiserId":   strconv.FormatInt(c.advertiserId, 10),
25930		"locationListId": strconv.FormatInt(c.locationListId, 10),
25931	})
25932	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25933}
25934
25935// Do executes the "displayvideo.advertisers.locationLists.patch" call.
25936// Exactly one of *LocationList or error will be non-nil. Any non-2xx
25937// status code is an error. Response headers are in either
25938// *LocationList.ServerResponse.Header or (if a response was returned at
25939// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
25940// to check whether the returned error was because
25941// http.StatusNotModified was returned.
25942func (c *AdvertisersLocationListsPatchCall) Do(opts ...googleapi.CallOption) (*LocationList, error) {
25943	gensupport.SetOptions(c.urlParams_, opts...)
25944	res, err := c.doRequest("json")
25945	if res != nil && res.StatusCode == http.StatusNotModified {
25946		if res.Body != nil {
25947			res.Body.Close()
25948		}
25949		return nil, &googleapi.Error{
25950			Code:   res.StatusCode,
25951			Header: res.Header,
25952		}
25953	}
25954	if err != nil {
25955		return nil, err
25956	}
25957	defer googleapi.CloseBody(res)
25958	if err := googleapi.CheckResponse(res); err != nil {
25959		return nil, err
25960	}
25961	ret := &LocationList{
25962		ServerResponse: googleapi.ServerResponse{
25963			Header:         res.Header,
25964			HTTPStatusCode: res.StatusCode,
25965		},
25966	}
25967	target := &ret
25968	if err := gensupport.DecodeResponse(target, res); err != nil {
25969		return nil, err
25970	}
25971	return ret, nil
25972	// {
25973	//   "description": "Updates a location list. Returns the updated location list if successful.",
25974	//   "flatPath": "v1/advertisers/{advertisersId}/locationLists/{locationListId}",
25975	//   "httpMethod": "PATCH",
25976	//   "id": "displayvideo.advertisers.locationLists.patch",
25977	//   "parameterOrder": [
25978	//     "advertiserId",
25979	//     "locationListId"
25980	//   ],
25981	//   "parameters": {
25982	//     "advertiserId": {
25983	//       "description": "Required. The ID of the DV360 advertiser to which the location lists belongs.",
25984	//       "format": "int64",
25985	//       "location": "path",
25986	//       "pattern": "^[^/]+$",
25987	//       "required": true,
25988	//       "type": "string"
25989	//     },
25990	//     "locationListId": {
25991	//       "description": "Output only. The unique ID of the location list. Assigned by the system.",
25992	//       "format": "int64",
25993	//       "location": "path",
25994	//       "required": true,
25995	//       "type": "string"
25996	//     },
25997	//     "updateMask": {
25998	//       "description": "Required. The mask to control which fields to update.",
25999	//       "format": "google-fieldmask",
26000	//       "location": "query",
26001	//       "type": "string"
26002	//     }
26003	//   },
26004	//   "path": "v1/advertisers/{+advertiserId}/locationLists/{locationListId}",
26005	//   "request": {
26006	//     "$ref": "LocationList"
26007	//   },
26008	//   "response": {
26009	//     "$ref": "LocationList"
26010	//   },
26011	//   "scopes": [
26012	//     "https://www.googleapis.com/auth/display-video"
26013	//   ]
26014	// }
26015
26016}
26017
26018// method id "displayvideo.advertisers.locationLists.assignedLocations.bulkEdit":
26019
26020type AdvertisersLocationListsAssignedLocationsBulkEditCall struct {
26021	s                                *Service
26022	advertiserId                     int64
26023	locationListId                   int64
26024	bulkeditassignedlocationsrequest *BulkEditAssignedLocationsRequest
26025	urlParams_                       gensupport.URLParams
26026	ctx_                             context.Context
26027	header_                          http.Header
26028}
26029
26030// BulkEdit: Bulk edits multiple assignments between locations and a
26031// single location list. The operation will delete the assigned
26032// locations provided in
26033// BulkEditAssignedLocationsRequest.deleted_assigned_locations and then
26034// create the assigned locations provided in
26035// BulkEditAssignedLocationsRequest.created_assigned_locations.
26036//
26037// - advertiserId: The ID of the DV360 advertiser to which the location
26038//   list belongs.
26039// - locationListId: The ID of the location list to which these
26040//   assignments are assigned.
26041func (r *AdvertisersLocationListsAssignedLocationsService) BulkEdit(advertiserId int64, locationListId int64, bulkeditassignedlocationsrequest *BulkEditAssignedLocationsRequest) *AdvertisersLocationListsAssignedLocationsBulkEditCall {
26042	c := &AdvertisersLocationListsAssignedLocationsBulkEditCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26043	c.advertiserId = advertiserId
26044	c.locationListId = locationListId
26045	c.bulkeditassignedlocationsrequest = bulkeditassignedlocationsrequest
26046	return c
26047}
26048
26049// Fields allows partial responses to be retrieved. See
26050// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26051// for more information.
26052func (c *AdvertisersLocationListsAssignedLocationsBulkEditCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsAssignedLocationsBulkEditCall {
26053	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26054	return c
26055}
26056
26057// Context sets the context to be used in this call's Do method. Any
26058// pending HTTP request will be aborted if the provided context is
26059// canceled.
26060func (c *AdvertisersLocationListsAssignedLocationsBulkEditCall) Context(ctx context.Context) *AdvertisersLocationListsAssignedLocationsBulkEditCall {
26061	c.ctx_ = ctx
26062	return c
26063}
26064
26065// Header returns an http.Header that can be modified by the caller to
26066// add HTTP headers to the request.
26067func (c *AdvertisersLocationListsAssignedLocationsBulkEditCall) Header() http.Header {
26068	if c.header_ == nil {
26069		c.header_ = make(http.Header)
26070	}
26071	return c.header_
26072}
26073
26074func (c *AdvertisersLocationListsAssignedLocationsBulkEditCall) doRequest(alt string) (*http.Response, error) {
26075	reqHeaders := make(http.Header)
26076	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
26077	for k, v := range c.header_ {
26078		reqHeaders[k] = v
26079	}
26080	reqHeaders.Set("User-Agent", c.s.userAgent())
26081	var body io.Reader = nil
26082	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditassignedlocationsrequest)
26083	if err != nil {
26084		return nil, err
26085	}
26086	reqHeaders.Set("Content-Type", "application/json")
26087	c.urlParams_.Set("alt", alt)
26088	c.urlParams_.Set("prettyPrint", "false")
26089	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/locationLists/{+locationListId}/assignedLocations:bulkEdit")
26090	urls += "?" + c.urlParams_.Encode()
26091	req, err := http.NewRequest("POST", urls, body)
26092	if err != nil {
26093		return nil, err
26094	}
26095	req.Header = reqHeaders
26096	googleapi.Expand(req.URL, map[string]string{
26097		"advertiserId":   strconv.FormatInt(c.advertiserId, 10),
26098		"locationListId": strconv.FormatInt(c.locationListId, 10),
26099	})
26100	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26101}
26102
26103// Do executes the "displayvideo.advertisers.locationLists.assignedLocations.bulkEdit" call.
26104// Exactly one of *BulkEditAssignedLocationsResponse or error will be
26105// non-nil. Any non-2xx status code is an error. Response headers are in
26106// either *BulkEditAssignedLocationsResponse.ServerResponse.Header or
26107// (if a response was returned at all) in
26108// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
26109// whether the returned error was because http.StatusNotModified was
26110// returned.
26111func (c *AdvertisersLocationListsAssignedLocationsBulkEditCall) Do(opts ...googleapi.CallOption) (*BulkEditAssignedLocationsResponse, error) {
26112	gensupport.SetOptions(c.urlParams_, opts...)
26113	res, err := c.doRequest("json")
26114	if res != nil && res.StatusCode == http.StatusNotModified {
26115		if res.Body != nil {
26116			res.Body.Close()
26117		}
26118		return nil, &googleapi.Error{
26119			Code:   res.StatusCode,
26120			Header: res.Header,
26121		}
26122	}
26123	if err != nil {
26124		return nil, err
26125	}
26126	defer googleapi.CloseBody(res)
26127	if err := googleapi.CheckResponse(res); err != nil {
26128		return nil, err
26129	}
26130	ret := &BulkEditAssignedLocationsResponse{
26131		ServerResponse: googleapi.ServerResponse{
26132			Header:         res.Header,
26133			HTTPStatusCode: res.StatusCode,
26134		},
26135	}
26136	target := &ret
26137	if err := gensupport.DecodeResponse(target, res); err != nil {
26138		return nil, err
26139	}
26140	return ret, nil
26141	// {
26142	//   "description": "Bulk edits multiple assignments between locations and a single location list. The operation will delete the assigned locations provided in BulkEditAssignedLocationsRequest.deleted_assigned_locations and then create the assigned locations provided in BulkEditAssignedLocationsRequest.created_assigned_locations.",
26143	//   "flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListsId}/assignedLocations:bulkEdit",
26144	//   "httpMethod": "POST",
26145	//   "id": "displayvideo.advertisers.locationLists.assignedLocations.bulkEdit",
26146	//   "parameterOrder": [
26147	//     "advertiserId",
26148	//     "locationListId"
26149	//   ],
26150	//   "parameters": {
26151	//     "advertiserId": {
26152	//       "description": "Required. The ID of the DV360 advertiser to which the location list belongs.",
26153	//       "format": "int64",
26154	//       "location": "path",
26155	//       "required": true,
26156	//       "type": "string"
26157	//     },
26158	//     "locationListId": {
26159	//       "description": "Required. The ID of the location list to which these assignments are assigned.",
26160	//       "format": "int64",
26161	//       "location": "path",
26162	//       "pattern": "^[^/]+$",
26163	//       "required": true,
26164	//       "type": "string"
26165	//     }
26166	//   },
26167	//   "path": "v1/advertisers/{advertiserId}/locationLists/{+locationListId}/assignedLocations:bulkEdit",
26168	//   "request": {
26169	//     "$ref": "BulkEditAssignedLocationsRequest"
26170	//   },
26171	//   "response": {
26172	//     "$ref": "BulkEditAssignedLocationsResponse"
26173	//   },
26174	//   "scopes": [
26175	//     "https://www.googleapis.com/auth/display-video"
26176	//   ]
26177	// }
26178
26179}
26180
26181// method id "displayvideo.advertisers.locationLists.assignedLocations.create":
26182
26183type AdvertisersLocationListsAssignedLocationsCreateCall struct {
26184	s                *Service
26185	advertiserId     int64
26186	locationListId   int64
26187	assignedlocation *AssignedLocation
26188	urlParams_       gensupport.URLParams
26189	ctx_             context.Context
26190	header_          http.Header
26191}
26192
26193// Create: Creates an assignment between a location and a location list.
26194//
26195// - advertiserId: The ID of the DV360 advertiser to which the location
26196//   list belongs.
26197// - locationListId: The ID of the location list for which the
26198//   assignment will be created.
26199func (r *AdvertisersLocationListsAssignedLocationsService) Create(advertiserId int64, locationListId int64, assignedlocation *AssignedLocation) *AdvertisersLocationListsAssignedLocationsCreateCall {
26200	c := &AdvertisersLocationListsAssignedLocationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26201	c.advertiserId = advertiserId
26202	c.locationListId = locationListId
26203	c.assignedlocation = assignedlocation
26204	return c
26205}
26206
26207// Fields allows partial responses to be retrieved. See
26208// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26209// for more information.
26210func (c *AdvertisersLocationListsAssignedLocationsCreateCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsAssignedLocationsCreateCall {
26211	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26212	return c
26213}
26214
26215// Context sets the context to be used in this call's Do method. Any
26216// pending HTTP request will be aborted if the provided context is
26217// canceled.
26218func (c *AdvertisersLocationListsAssignedLocationsCreateCall) Context(ctx context.Context) *AdvertisersLocationListsAssignedLocationsCreateCall {
26219	c.ctx_ = ctx
26220	return c
26221}
26222
26223// Header returns an http.Header that can be modified by the caller to
26224// add HTTP headers to the request.
26225func (c *AdvertisersLocationListsAssignedLocationsCreateCall) Header() http.Header {
26226	if c.header_ == nil {
26227		c.header_ = make(http.Header)
26228	}
26229	return c.header_
26230}
26231
26232func (c *AdvertisersLocationListsAssignedLocationsCreateCall) doRequest(alt string) (*http.Response, error) {
26233	reqHeaders := make(http.Header)
26234	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
26235	for k, v := range c.header_ {
26236		reqHeaders[k] = v
26237	}
26238	reqHeaders.Set("User-Agent", c.s.userAgent())
26239	var body io.Reader = nil
26240	body, err := googleapi.WithoutDataWrapper.JSONReader(c.assignedlocation)
26241	if err != nil {
26242		return nil, err
26243	}
26244	reqHeaders.Set("Content-Type", "application/json")
26245	c.urlParams_.Set("alt", alt)
26246	c.urlParams_.Set("prettyPrint", "false")
26247	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations")
26248	urls += "?" + c.urlParams_.Encode()
26249	req, err := http.NewRequest("POST", urls, body)
26250	if err != nil {
26251		return nil, err
26252	}
26253	req.Header = reqHeaders
26254	googleapi.Expand(req.URL, map[string]string{
26255		"advertiserId":   strconv.FormatInt(c.advertiserId, 10),
26256		"locationListId": strconv.FormatInt(c.locationListId, 10),
26257	})
26258	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26259}
26260
26261// Do executes the "displayvideo.advertisers.locationLists.assignedLocations.create" call.
26262// Exactly one of *AssignedLocation or error will be non-nil. Any
26263// non-2xx status code is an error. Response headers are in either
26264// *AssignedLocation.ServerResponse.Header or (if a response was
26265// returned at all) in error.(*googleapi.Error).Header. Use
26266// googleapi.IsNotModified to check whether the returned error was
26267// because http.StatusNotModified was returned.
26268func (c *AdvertisersLocationListsAssignedLocationsCreateCall) Do(opts ...googleapi.CallOption) (*AssignedLocation, error) {
26269	gensupport.SetOptions(c.urlParams_, opts...)
26270	res, err := c.doRequest("json")
26271	if res != nil && res.StatusCode == http.StatusNotModified {
26272		if res.Body != nil {
26273			res.Body.Close()
26274		}
26275		return nil, &googleapi.Error{
26276			Code:   res.StatusCode,
26277			Header: res.Header,
26278		}
26279	}
26280	if err != nil {
26281		return nil, err
26282	}
26283	defer googleapi.CloseBody(res)
26284	if err := googleapi.CheckResponse(res); err != nil {
26285		return nil, err
26286	}
26287	ret := &AssignedLocation{
26288		ServerResponse: googleapi.ServerResponse{
26289			Header:         res.Header,
26290			HTTPStatusCode: res.StatusCode,
26291		},
26292	}
26293	target := &ret
26294	if err := gensupport.DecodeResponse(target, res); err != nil {
26295		return nil, err
26296	}
26297	return ret, nil
26298	// {
26299	//   "description": "Creates an assignment between a location and a location list.",
26300	//   "flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations",
26301	//   "httpMethod": "POST",
26302	//   "id": "displayvideo.advertisers.locationLists.assignedLocations.create",
26303	//   "parameterOrder": [
26304	//     "advertiserId",
26305	//     "locationListId"
26306	//   ],
26307	//   "parameters": {
26308	//     "advertiserId": {
26309	//       "description": "Required. The ID of the DV360 advertiser to which the location list belongs.",
26310	//       "format": "int64",
26311	//       "location": "path",
26312	//       "required": true,
26313	//       "type": "string"
26314	//     },
26315	//     "locationListId": {
26316	//       "description": "Required. The ID of the location list for which the assignment will be created.",
26317	//       "format": "int64",
26318	//       "location": "path",
26319	//       "required": true,
26320	//       "type": "string"
26321	//     }
26322	//   },
26323	//   "path": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations",
26324	//   "request": {
26325	//     "$ref": "AssignedLocation"
26326	//   },
26327	//   "response": {
26328	//     "$ref": "AssignedLocation"
26329	//   },
26330	//   "scopes": [
26331	//     "https://www.googleapis.com/auth/display-video"
26332	//   ]
26333	// }
26334
26335}
26336
26337// method id "displayvideo.advertisers.locationLists.assignedLocations.delete":
26338
26339type AdvertisersLocationListsAssignedLocationsDeleteCall struct {
26340	s                  *Service
26341	advertiserId       int64
26342	locationListId     int64
26343	assignedLocationId int64
26344	urlParams_         gensupport.URLParams
26345	ctx_               context.Context
26346	header_            http.Header
26347}
26348
26349// Delete: Deletes the assignment between a location and a location
26350// list.
26351//
26352// - advertiserId: The ID of the DV360 advertiser to which the location
26353//   list belongs.
26354// - assignedLocationId: The ID of the assigned location to delete.
26355// - locationListId: The ID of the location list to which this
26356//   assignment is assigned.
26357func (r *AdvertisersLocationListsAssignedLocationsService) Delete(advertiserId int64, locationListId int64, assignedLocationId int64) *AdvertisersLocationListsAssignedLocationsDeleteCall {
26358	c := &AdvertisersLocationListsAssignedLocationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26359	c.advertiserId = advertiserId
26360	c.locationListId = locationListId
26361	c.assignedLocationId = assignedLocationId
26362	return c
26363}
26364
26365// Fields allows partial responses to be retrieved. See
26366// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26367// for more information.
26368func (c *AdvertisersLocationListsAssignedLocationsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsAssignedLocationsDeleteCall {
26369	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26370	return c
26371}
26372
26373// Context sets the context to be used in this call's Do method. Any
26374// pending HTTP request will be aborted if the provided context is
26375// canceled.
26376func (c *AdvertisersLocationListsAssignedLocationsDeleteCall) Context(ctx context.Context) *AdvertisersLocationListsAssignedLocationsDeleteCall {
26377	c.ctx_ = ctx
26378	return c
26379}
26380
26381// Header returns an http.Header that can be modified by the caller to
26382// add HTTP headers to the request.
26383func (c *AdvertisersLocationListsAssignedLocationsDeleteCall) Header() http.Header {
26384	if c.header_ == nil {
26385		c.header_ = make(http.Header)
26386	}
26387	return c.header_
26388}
26389
26390func (c *AdvertisersLocationListsAssignedLocationsDeleteCall) doRequest(alt string) (*http.Response, error) {
26391	reqHeaders := make(http.Header)
26392	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
26393	for k, v := range c.header_ {
26394		reqHeaders[k] = v
26395	}
26396	reqHeaders.Set("User-Agent", c.s.userAgent())
26397	var body io.Reader = nil
26398	c.urlParams_.Set("alt", alt)
26399	c.urlParams_.Set("prettyPrint", "false")
26400	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations/{+assignedLocationId}")
26401	urls += "?" + c.urlParams_.Encode()
26402	req, err := http.NewRequest("DELETE", urls, body)
26403	if err != nil {
26404		return nil, err
26405	}
26406	req.Header = reqHeaders
26407	googleapi.Expand(req.URL, map[string]string{
26408		"advertiserId":       strconv.FormatInt(c.advertiserId, 10),
26409		"locationListId":     strconv.FormatInt(c.locationListId, 10),
26410		"assignedLocationId": strconv.FormatInt(c.assignedLocationId, 10),
26411	})
26412	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26413}
26414
26415// Do executes the "displayvideo.advertisers.locationLists.assignedLocations.delete" call.
26416// Exactly one of *Empty or error will be non-nil. Any non-2xx status
26417// code is an error. Response headers are in either
26418// *Empty.ServerResponse.Header or (if a response was returned at all)
26419// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
26420// check whether the returned error was because http.StatusNotModified
26421// was returned.
26422func (c *AdvertisersLocationListsAssignedLocationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
26423	gensupport.SetOptions(c.urlParams_, opts...)
26424	res, err := c.doRequest("json")
26425	if res != nil && res.StatusCode == http.StatusNotModified {
26426		if res.Body != nil {
26427			res.Body.Close()
26428		}
26429		return nil, &googleapi.Error{
26430			Code:   res.StatusCode,
26431			Header: res.Header,
26432		}
26433	}
26434	if err != nil {
26435		return nil, err
26436	}
26437	defer googleapi.CloseBody(res)
26438	if err := googleapi.CheckResponse(res); err != nil {
26439		return nil, err
26440	}
26441	ret := &Empty{
26442		ServerResponse: googleapi.ServerResponse{
26443			Header:         res.Header,
26444			HTTPStatusCode: res.StatusCode,
26445		},
26446	}
26447	target := &ret
26448	if err := gensupport.DecodeResponse(target, res); err != nil {
26449		return nil, err
26450	}
26451	return ret, nil
26452	// {
26453	//   "description": "Deletes the assignment between a location and a location list.",
26454	//   "flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations/{assignedLocationsId}",
26455	//   "httpMethod": "DELETE",
26456	//   "id": "displayvideo.advertisers.locationLists.assignedLocations.delete",
26457	//   "parameterOrder": [
26458	//     "advertiserId",
26459	//     "locationListId",
26460	//     "assignedLocationId"
26461	//   ],
26462	//   "parameters": {
26463	//     "advertiserId": {
26464	//       "description": "Required. The ID of the DV360 advertiser to which the location list belongs.",
26465	//       "format": "int64",
26466	//       "location": "path",
26467	//       "required": true,
26468	//       "type": "string"
26469	//     },
26470	//     "assignedLocationId": {
26471	//       "description": "Required. The ID of the assigned location to delete.",
26472	//       "format": "int64",
26473	//       "location": "path",
26474	//       "pattern": "^[^/]+$",
26475	//       "required": true,
26476	//       "type": "string"
26477	//     },
26478	//     "locationListId": {
26479	//       "description": "Required. The ID of the location list to which this assignment is assigned.",
26480	//       "format": "int64",
26481	//       "location": "path",
26482	//       "required": true,
26483	//       "type": "string"
26484	//     }
26485	//   },
26486	//   "path": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations/{+assignedLocationId}",
26487	//   "response": {
26488	//     "$ref": "Empty"
26489	//   },
26490	//   "scopes": [
26491	//     "https://www.googleapis.com/auth/display-video"
26492	//   ]
26493	// }
26494
26495}
26496
26497// method id "displayvideo.advertisers.locationLists.assignedLocations.list":
26498
26499type AdvertisersLocationListsAssignedLocationsListCall struct {
26500	s              *Service
26501	advertiserId   int64
26502	locationListId int64
26503	urlParams_     gensupport.URLParams
26504	ifNoneMatch_   string
26505	ctx_           context.Context
26506	header_        http.Header
26507}
26508
26509// List: Lists locations assigned to a location list.
26510//
26511// - advertiserId: The ID of the DV360 advertiser to which the location
26512//   list belongs.
26513// - locationListId: The ID of the location list to which these
26514//   assignments are assigned.
26515func (r *AdvertisersLocationListsAssignedLocationsService) List(advertiserId int64, locationListId int64) *AdvertisersLocationListsAssignedLocationsListCall {
26516	c := &AdvertisersLocationListsAssignedLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26517	c.advertiserId = advertiserId
26518	c.locationListId = locationListId
26519	return c
26520}
26521
26522// Filter sets the optional parameter "filter": Allows filtering by
26523// location list assignment fields. Supported syntax: * Filter
26524// expressions are made up of one or more restrictions. * Restrictions
26525// can be combined by the logical operator `OR`. * A restriction has the
26526// form of `{field} {operator} {value}`. * The operator must be `EQUALS
26527// (=)`. * Supported fields: - `assignedLocationId` The length of this
26528// field should be no more than 500 characters.
26529func (c *AdvertisersLocationListsAssignedLocationsListCall) Filter(filter string) *AdvertisersLocationListsAssignedLocationsListCall {
26530	c.urlParams_.Set("filter", filter)
26531	return c
26532}
26533
26534// OrderBy sets the optional parameter "orderBy": Field by which to sort
26535// the list. Acceptable values are: * `assignedLocationId` (default) The
26536// default sorting order is ascending. To specify descending order for a
26537// field, a suffix " desc" should be added to the field name. Example:
26538// `assignedLocationId desc`.
26539func (c *AdvertisersLocationListsAssignedLocationsListCall) OrderBy(orderBy string) *AdvertisersLocationListsAssignedLocationsListCall {
26540	c.urlParams_.Set("orderBy", orderBy)
26541	return c
26542}
26543
26544// PageSize sets the optional parameter "pageSize": Requested page size.
26545// Must be between `1` and `100`. If unspecified will default to `100`.
26546// Returns error code `INVALID_ARGUMENT` if an invalid value is
26547// specified.
26548func (c *AdvertisersLocationListsAssignedLocationsListCall) PageSize(pageSize int64) *AdvertisersLocationListsAssignedLocationsListCall {
26549	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
26550	return c
26551}
26552
26553// PageToken sets the optional parameter "pageToken": A token
26554// identifying a page of results the server should return. Typically,
26555// this is the value of next_page_token returned from the previous call
26556// to `ListAssignedLocations` method. If not specified, the first page
26557// of results will be returned.
26558func (c *AdvertisersLocationListsAssignedLocationsListCall) PageToken(pageToken string) *AdvertisersLocationListsAssignedLocationsListCall {
26559	c.urlParams_.Set("pageToken", pageToken)
26560	return c
26561}
26562
26563// Fields allows partial responses to be retrieved. See
26564// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26565// for more information.
26566func (c *AdvertisersLocationListsAssignedLocationsListCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsAssignedLocationsListCall {
26567	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26568	return c
26569}
26570
26571// IfNoneMatch sets the optional parameter which makes the operation
26572// fail if the object's ETag matches the given value. This is useful for
26573// getting updates only after the object has changed since the last
26574// request. Use googleapi.IsNotModified to check whether the response
26575// error from Do is the result of In-None-Match.
26576func (c *AdvertisersLocationListsAssignedLocationsListCall) IfNoneMatch(entityTag string) *AdvertisersLocationListsAssignedLocationsListCall {
26577	c.ifNoneMatch_ = entityTag
26578	return c
26579}
26580
26581// Context sets the context to be used in this call's Do method. Any
26582// pending HTTP request will be aborted if the provided context is
26583// canceled.
26584func (c *AdvertisersLocationListsAssignedLocationsListCall) Context(ctx context.Context) *AdvertisersLocationListsAssignedLocationsListCall {
26585	c.ctx_ = ctx
26586	return c
26587}
26588
26589// Header returns an http.Header that can be modified by the caller to
26590// add HTTP headers to the request.
26591func (c *AdvertisersLocationListsAssignedLocationsListCall) Header() http.Header {
26592	if c.header_ == nil {
26593		c.header_ = make(http.Header)
26594	}
26595	return c.header_
26596}
26597
26598func (c *AdvertisersLocationListsAssignedLocationsListCall) doRequest(alt string) (*http.Response, error) {
26599	reqHeaders := make(http.Header)
26600	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
26601	for k, v := range c.header_ {
26602		reqHeaders[k] = v
26603	}
26604	reqHeaders.Set("User-Agent", c.s.userAgent())
26605	if c.ifNoneMatch_ != "" {
26606		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
26607	}
26608	var body io.Reader = nil
26609	c.urlParams_.Set("alt", alt)
26610	c.urlParams_.Set("prettyPrint", "false")
26611	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations")
26612	urls += "?" + c.urlParams_.Encode()
26613	req, err := http.NewRequest("GET", urls, body)
26614	if err != nil {
26615		return nil, err
26616	}
26617	req.Header = reqHeaders
26618	googleapi.Expand(req.URL, map[string]string{
26619		"advertiserId":   strconv.FormatInt(c.advertiserId, 10),
26620		"locationListId": strconv.FormatInt(c.locationListId, 10),
26621	})
26622	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26623}
26624
26625// Do executes the "displayvideo.advertisers.locationLists.assignedLocations.list" call.
26626// Exactly one of *ListAssignedLocationsResponse or error will be
26627// non-nil. Any non-2xx status code is an error. Response headers are in
26628// either *ListAssignedLocationsResponse.ServerResponse.Header or (if a
26629// response was returned at all) in error.(*googleapi.Error).Header. Use
26630// googleapi.IsNotModified to check whether the returned error was
26631// because http.StatusNotModified was returned.
26632func (c *AdvertisersLocationListsAssignedLocationsListCall) Do(opts ...googleapi.CallOption) (*ListAssignedLocationsResponse, error) {
26633	gensupport.SetOptions(c.urlParams_, opts...)
26634	res, err := c.doRequest("json")
26635	if res != nil && res.StatusCode == http.StatusNotModified {
26636		if res.Body != nil {
26637			res.Body.Close()
26638		}
26639		return nil, &googleapi.Error{
26640			Code:   res.StatusCode,
26641			Header: res.Header,
26642		}
26643	}
26644	if err != nil {
26645		return nil, err
26646	}
26647	defer googleapi.CloseBody(res)
26648	if err := googleapi.CheckResponse(res); err != nil {
26649		return nil, err
26650	}
26651	ret := &ListAssignedLocationsResponse{
26652		ServerResponse: googleapi.ServerResponse{
26653			Header:         res.Header,
26654			HTTPStatusCode: res.StatusCode,
26655		},
26656	}
26657	target := &ret
26658	if err := gensupport.DecodeResponse(target, res); err != nil {
26659		return nil, err
26660	}
26661	return ret, nil
26662	// {
26663	//   "description": "Lists locations assigned to a location list.",
26664	//   "flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations",
26665	//   "httpMethod": "GET",
26666	//   "id": "displayvideo.advertisers.locationLists.assignedLocations.list",
26667	//   "parameterOrder": [
26668	//     "advertiserId",
26669	//     "locationListId"
26670	//   ],
26671	//   "parameters": {
26672	//     "advertiserId": {
26673	//       "description": "Required. The ID of the DV360 advertiser to which the location list belongs.",
26674	//       "format": "int64",
26675	//       "location": "path",
26676	//       "required": true,
26677	//       "type": "string"
26678	//     },
26679	//     "filter": {
26680	//       "description": "Allows filtering by location list assignment fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedLocationId` The length of this field should be no more than 500 characters.",
26681	//       "location": "query",
26682	//       "type": "string"
26683	//     },
26684	//     "locationListId": {
26685	//       "description": "Required. The ID of the location list to which these assignments are assigned.",
26686	//       "format": "int64",
26687	//       "location": "path",
26688	//       "required": true,
26689	//       "type": "string"
26690	//     },
26691	//     "orderBy": {
26692	//       "description": "Field by which to sort the list. Acceptable values are: * `assignedLocationId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `assignedLocationId desc`.",
26693	//       "location": "query",
26694	//       "type": "string"
26695	//     },
26696	//     "pageSize": {
26697	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
26698	//       "format": "int32",
26699	//       "location": "query",
26700	//       "type": "integer"
26701	//     },
26702	//     "pageToken": {
26703	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAssignedLocations` method. If not specified, the first page of results will be returned.",
26704	//       "location": "query",
26705	//       "type": "string"
26706	//     }
26707	//   },
26708	//   "path": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations",
26709	//   "response": {
26710	//     "$ref": "ListAssignedLocationsResponse"
26711	//   },
26712	//   "scopes": [
26713	//     "https://www.googleapis.com/auth/display-video"
26714	//   ]
26715	// }
26716
26717}
26718
26719// Pages invokes f for each page of results.
26720// A non-nil error returned from f will halt the iteration.
26721// The provided context supersedes any context provided to the Context method.
26722func (c *AdvertisersLocationListsAssignedLocationsListCall) Pages(ctx context.Context, f func(*ListAssignedLocationsResponse) error) error {
26723	c.ctx_ = ctx
26724	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
26725	for {
26726		x, err := c.Do()
26727		if err != nil {
26728			return err
26729		}
26730		if err := f(x); err != nil {
26731			return err
26732		}
26733		if x.NextPageToken == "" {
26734			return nil
26735		}
26736		c.PageToken(x.NextPageToken)
26737	}
26738}
26739
26740// method id "displayvideo.advertisers.manualTriggers.activate":
26741
26742type AdvertisersManualTriggersActivateCall struct {
26743	s                            *Service
26744	advertiserId                 int64
26745	triggerId                    int64
26746	activatemanualtriggerrequest *ActivateManualTriggerRequest
26747	urlParams_                   gensupport.URLParams
26748	ctx_                         context.Context
26749	header_                      http.Header
26750}
26751
26752// Activate: Activates a manual trigger. Each activation of the manual
26753// trigger must be at least 5 minutes apart, otherwise an error will be
26754// returned.
26755//
26756// - advertiserId: The ID of the advertiser that the manual trigger
26757//   belongs.
26758// - triggerId: The ID of the manual trigger to activate.
26759func (r *AdvertisersManualTriggersService) Activate(advertiserId int64, triggerId int64, activatemanualtriggerrequest *ActivateManualTriggerRequest) *AdvertisersManualTriggersActivateCall {
26760	c := &AdvertisersManualTriggersActivateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26761	c.advertiserId = advertiserId
26762	c.triggerId = triggerId
26763	c.activatemanualtriggerrequest = activatemanualtriggerrequest
26764	return c
26765}
26766
26767// Fields allows partial responses to be retrieved. See
26768// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26769// for more information.
26770func (c *AdvertisersManualTriggersActivateCall) Fields(s ...googleapi.Field) *AdvertisersManualTriggersActivateCall {
26771	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26772	return c
26773}
26774
26775// Context sets the context to be used in this call's Do method. Any
26776// pending HTTP request will be aborted if the provided context is
26777// canceled.
26778func (c *AdvertisersManualTriggersActivateCall) Context(ctx context.Context) *AdvertisersManualTriggersActivateCall {
26779	c.ctx_ = ctx
26780	return c
26781}
26782
26783// Header returns an http.Header that can be modified by the caller to
26784// add HTTP headers to the request.
26785func (c *AdvertisersManualTriggersActivateCall) Header() http.Header {
26786	if c.header_ == nil {
26787		c.header_ = make(http.Header)
26788	}
26789	return c.header_
26790}
26791
26792func (c *AdvertisersManualTriggersActivateCall) doRequest(alt string) (*http.Response, error) {
26793	reqHeaders := make(http.Header)
26794	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
26795	for k, v := range c.header_ {
26796		reqHeaders[k] = v
26797	}
26798	reqHeaders.Set("User-Agent", c.s.userAgent())
26799	var body io.Reader = nil
26800	body, err := googleapi.WithoutDataWrapper.JSONReader(c.activatemanualtriggerrequest)
26801	if err != nil {
26802		return nil, err
26803	}
26804	reqHeaders.Set("Content-Type", "application/json")
26805	c.urlParams_.Set("alt", alt)
26806	c.urlParams_.Set("prettyPrint", "false")
26807	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:activate")
26808	urls += "?" + c.urlParams_.Encode()
26809	req, err := http.NewRequest("POST", urls, body)
26810	if err != nil {
26811		return nil, err
26812	}
26813	req.Header = reqHeaders
26814	googleapi.Expand(req.URL, map[string]string{
26815		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
26816		"triggerId":    strconv.FormatInt(c.triggerId, 10),
26817	})
26818	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26819}
26820
26821// Do executes the "displayvideo.advertisers.manualTriggers.activate" call.
26822// Exactly one of *ManualTrigger or error will be non-nil. Any non-2xx
26823// status code is an error. Response headers are in either
26824// *ManualTrigger.ServerResponse.Header or (if a response was returned
26825// at all) in error.(*googleapi.Error).Header. Use
26826// googleapi.IsNotModified to check whether the returned error was
26827// because http.StatusNotModified was returned.
26828func (c *AdvertisersManualTriggersActivateCall) Do(opts ...googleapi.CallOption) (*ManualTrigger, error) {
26829	gensupport.SetOptions(c.urlParams_, opts...)
26830	res, err := c.doRequest("json")
26831	if res != nil && res.StatusCode == http.StatusNotModified {
26832		if res.Body != nil {
26833			res.Body.Close()
26834		}
26835		return nil, &googleapi.Error{
26836			Code:   res.StatusCode,
26837			Header: res.Header,
26838		}
26839	}
26840	if err != nil {
26841		return nil, err
26842	}
26843	defer googleapi.CloseBody(res)
26844	if err := googleapi.CheckResponse(res); err != nil {
26845		return nil, err
26846	}
26847	ret := &ManualTrigger{
26848		ServerResponse: googleapi.ServerResponse{
26849			Header:         res.Header,
26850			HTTPStatusCode: res.StatusCode,
26851		},
26852	}
26853	target := &ret
26854	if err := gensupport.DecodeResponse(target, res); err != nil {
26855		return nil, err
26856	}
26857	return ret, nil
26858	// {
26859	//   "description": "Activates a manual trigger. Each activation of the manual trigger must be at least 5 minutes apart, otherwise an error will be returned.",
26860	//   "flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}:activate",
26861	//   "httpMethod": "POST",
26862	//   "id": "displayvideo.advertisers.manualTriggers.activate",
26863	//   "parameterOrder": [
26864	//     "advertiserId",
26865	//     "triggerId"
26866	//   ],
26867	//   "parameters": {
26868	//     "advertiserId": {
26869	//       "description": "Required. The ID of the advertiser that the manual trigger belongs.",
26870	//       "format": "int64",
26871	//       "location": "path",
26872	//       "pattern": "^[^/]+$",
26873	//       "required": true,
26874	//       "type": "string"
26875	//     },
26876	//     "triggerId": {
26877	//       "description": "Required. The ID of the manual trigger to activate.",
26878	//       "format": "int64",
26879	//       "location": "path",
26880	//       "pattern": "^[^/]+$",
26881	//       "required": true,
26882	//       "type": "string"
26883	//     }
26884	//   },
26885	//   "path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:activate",
26886	//   "request": {
26887	//     "$ref": "ActivateManualTriggerRequest"
26888	//   },
26889	//   "response": {
26890	//     "$ref": "ManualTrigger"
26891	//   },
26892	//   "scopes": [
26893	//     "https://www.googleapis.com/auth/display-video"
26894	//   ]
26895	// }
26896
26897}
26898
26899// method id "displayvideo.advertisers.manualTriggers.create":
26900
26901type AdvertisersManualTriggersCreateCall struct {
26902	s             *Service
26903	advertiserId  int64
26904	manualtrigger *ManualTrigger
26905	urlParams_    gensupport.URLParams
26906	ctx_          context.Context
26907	header_       http.Header
26908}
26909
26910// Create: Creates a new manual trigger. Returns the newly created
26911// manual trigger if successful.
26912//
26913// - advertiserId: Immutable. The unique ID of the advertiser that the
26914//   manual trigger belongs to.
26915func (r *AdvertisersManualTriggersService) Create(advertiserId int64, manualtrigger *ManualTrigger) *AdvertisersManualTriggersCreateCall {
26916	c := &AdvertisersManualTriggersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26917	c.advertiserId = advertiserId
26918	c.manualtrigger = manualtrigger
26919	return c
26920}
26921
26922// Fields allows partial responses to be retrieved. See
26923// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26924// for more information.
26925func (c *AdvertisersManualTriggersCreateCall) Fields(s ...googleapi.Field) *AdvertisersManualTriggersCreateCall {
26926	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26927	return c
26928}
26929
26930// Context sets the context to be used in this call's Do method. Any
26931// pending HTTP request will be aborted if the provided context is
26932// canceled.
26933func (c *AdvertisersManualTriggersCreateCall) Context(ctx context.Context) *AdvertisersManualTriggersCreateCall {
26934	c.ctx_ = ctx
26935	return c
26936}
26937
26938// Header returns an http.Header that can be modified by the caller to
26939// add HTTP headers to the request.
26940func (c *AdvertisersManualTriggersCreateCall) Header() http.Header {
26941	if c.header_ == nil {
26942		c.header_ = make(http.Header)
26943	}
26944	return c.header_
26945}
26946
26947func (c *AdvertisersManualTriggersCreateCall) doRequest(alt string) (*http.Response, error) {
26948	reqHeaders := make(http.Header)
26949	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
26950	for k, v := range c.header_ {
26951		reqHeaders[k] = v
26952	}
26953	reqHeaders.Set("User-Agent", c.s.userAgent())
26954	var body io.Reader = nil
26955	body, err := googleapi.WithoutDataWrapper.JSONReader(c.manualtrigger)
26956	if err != nil {
26957		return nil, err
26958	}
26959	reqHeaders.Set("Content-Type", "application/json")
26960	c.urlParams_.Set("alt", alt)
26961	c.urlParams_.Set("prettyPrint", "false")
26962	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/manualTriggers")
26963	urls += "?" + c.urlParams_.Encode()
26964	req, err := http.NewRequest("POST", urls, body)
26965	if err != nil {
26966		return nil, err
26967	}
26968	req.Header = reqHeaders
26969	googleapi.Expand(req.URL, map[string]string{
26970		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
26971	})
26972	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26973}
26974
26975// Do executes the "displayvideo.advertisers.manualTriggers.create" call.
26976// Exactly one of *ManualTrigger or error will be non-nil. Any non-2xx
26977// status code is an error. Response headers are in either
26978// *ManualTrigger.ServerResponse.Header or (if a response was returned
26979// at all) in error.(*googleapi.Error).Header. Use
26980// googleapi.IsNotModified to check whether the returned error was
26981// because http.StatusNotModified was returned.
26982func (c *AdvertisersManualTriggersCreateCall) Do(opts ...googleapi.CallOption) (*ManualTrigger, error) {
26983	gensupport.SetOptions(c.urlParams_, opts...)
26984	res, err := c.doRequest("json")
26985	if res != nil && res.StatusCode == http.StatusNotModified {
26986		if res.Body != nil {
26987			res.Body.Close()
26988		}
26989		return nil, &googleapi.Error{
26990			Code:   res.StatusCode,
26991			Header: res.Header,
26992		}
26993	}
26994	if err != nil {
26995		return nil, err
26996	}
26997	defer googleapi.CloseBody(res)
26998	if err := googleapi.CheckResponse(res); err != nil {
26999		return nil, err
27000	}
27001	ret := &ManualTrigger{
27002		ServerResponse: googleapi.ServerResponse{
27003			Header:         res.Header,
27004			HTTPStatusCode: res.StatusCode,
27005		},
27006	}
27007	target := &ret
27008	if err := gensupport.DecodeResponse(target, res); err != nil {
27009		return nil, err
27010	}
27011	return ret, nil
27012	// {
27013	//   "description": "Creates a new manual trigger. Returns the newly created manual trigger if successful.",
27014	//   "flatPath": "v1/advertisers/{advertisersId}/manualTriggers",
27015	//   "httpMethod": "POST",
27016	//   "id": "displayvideo.advertisers.manualTriggers.create",
27017	//   "parameterOrder": [
27018	//     "advertiserId"
27019	//   ],
27020	//   "parameters": {
27021	//     "advertiserId": {
27022	//       "description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.",
27023	//       "format": "int64",
27024	//       "location": "path",
27025	//       "pattern": "^[^/]+$",
27026	//       "required": true,
27027	//       "type": "string"
27028	//     }
27029	//   },
27030	//   "path": "v1/advertisers/{+advertiserId}/manualTriggers",
27031	//   "request": {
27032	//     "$ref": "ManualTrigger"
27033	//   },
27034	//   "response": {
27035	//     "$ref": "ManualTrigger"
27036	//   },
27037	//   "scopes": [
27038	//     "https://www.googleapis.com/auth/display-video"
27039	//   ]
27040	// }
27041
27042}
27043
27044// method id "displayvideo.advertisers.manualTriggers.deactivate":
27045
27046type AdvertisersManualTriggersDeactivateCall struct {
27047	s                              *Service
27048	advertiserId                   int64
27049	triggerId                      int64
27050	deactivatemanualtriggerrequest *DeactivateManualTriggerRequest
27051	urlParams_                     gensupport.URLParams
27052	ctx_                           context.Context
27053	header_                        http.Header
27054}
27055
27056// Deactivate: Deactivates a manual trigger.
27057//
27058// - advertiserId: The ID of the advertiser that the manual trigger
27059//   belongs.
27060// - triggerId: The ID of the manual trigger to deactivate.
27061func (r *AdvertisersManualTriggersService) Deactivate(advertiserId int64, triggerId int64, deactivatemanualtriggerrequest *DeactivateManualTriggerRequest) *AdvertisersManualTriggersDeactivateCall {
27062	c := &AdvertisersManualTriggersDeactivateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27063	c.advertiserId = advertiserId
27064	c.triggerId = triggerId
27065	c.deactivatemanualtriggerrequest = deactivatemanualtriggerrequest
27066	return c
27067}
27068
27069// Fields allows partial responses to be retrieved. See
27070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27071// for more information.
27072func (c *AdvertisersManualTriggersDeactivateCall) Fields(s ...googleapi.Field) *AdvertisersManualTriggersDeactivateCall {
27073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27074	return c
27075}
27076
27077// Context sets the context to be used in this call's Do method. Any
27078// pending HTTP request will be aborted if the provided context is
27079// canceled.
27080func (c *AdvertisersManualTriggersDeactivateCall) Context(ctx context.Context) *AdvertisersManualTriggersDeactivateCall {
27081	c.ctx_ = ctx
27082	return c
27083}
27084
27085// Header returns an http.Header that can be modified by the caller to
27086// add HTTP headers to the request.
27087func (c *AdvertisersManualTriggersDeactivateCall) Header() http.Header {
27088	if c.header_ == nil {
27089		c.header_ = make(http.Header)
27090	}
27091	return c.header_
27092}
27093
27094func (c *AdvertisersManualTriggersDeactivateCall) doRequest(alt string) (*http.Response, error) {
27095	reqHeaders := make(http.Header)
27096	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
27097	for k, v := range c.header_ {
27098		reqHeaders[k] = v
27099	}
27100	reqHeaders.Set("User-Agent", c.s.userAgent())
27101	var body io.Reader = nil
27102	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deactivatemanualtriggerrequest)
27103	if err != nil {
27104		return nil, err
27105	}
27106	reqHeaders.Set("Content-Type", "application/json")
27107	c.urlParams_.Set("alt", alt)
27108	c.urlParams_.Set("prettyPrint", "false")
27109	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:deactivate")
27110	urls += "?" + c.urlParams_.Encode()
27111	req, err := http.NewRequest("POST", urls, body)
27112	if err != nil {
27113		return nil, err
27114	}
27115	req.Header = reqHeaders
27116	googleapi.Expand(req.URL, map[string]string{
27117		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
27118		"triggerId":    strconv.FormatInt(c.triggerId, 10),
27119	})
27120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27121}
27122
27123// Do executes the "displayvideo.advertisers.manualTriggers.deactivate" call.
27124// Exactly one of *ManualTrigger or error will be non-nil. Any non-2xx
27125// status code is an error. Response headers are in either
27126// *ManualTrigger.ServerResponse.Header or (if a response was returned
27127// at all) in error.(*googleapi.Error).Header. Use
27128// googleapi.IsNotModified to check whether the returned error was
27129// because http.StatusNotModified was returned.
27130func (c *AdvertisersManualTriggersDeactivateCall) Do(opts ...googleapi.CallOption) (*ManualTrigger, error) {
27131	gensupport.SetOptions(c.urlParams_, opts...)
27132	res, err := c.doRequest("json")
27133	if res != nil && res.StatusCode == http.StatusNotModified {
27134		if res.Body != nil {
27135			res.Body.Close()
27136		}
27137		return nil, &googleapi.Error{
27138			Code:   res.StatusCode,
27139			Header: res.Header,
27140		}
27141	}
27142	if err != nil {
27143		return nil, err
27144	}
27145	defer googleapi.CloseBody(res)
27146	if err := googleapi.CheckResponse(res); err != nil {
27147		return nil, err
27148	}
27149	ret := &ManualTrigger{
27150		ServerResponse: googleapi.ServerResponse{
27151			Header:         res.Header,
27152			HTTPStatusCode: res.StatusCode,
27153		},
27154	}
27155	target := &ret
27156	if err := gensupport.DecodeResponse(target, res); err != nil {
27157		return nil, err
27158	}
27159	return ret, nil
27160	// {
27161	//   "description": "Deactivates a manual trigger.",
27162	//   "flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}:deactivate",
27163	//   "httpMethod": "POST",
27164	//   "id": "displayvideo.advertisers.manualTriggers.deactivate",
27165	//   "parameterOrder": [
27166	//     "advertiserId",
27167	//     "triggerId"
27168	//   ],
27169	//   "parameters": {
27170	//     "advertiserId": {
27171	//       "description": "Required. The ID of the advertiser that the manual trigger belongs.",
27172	//       "format": "int64",
27173	//       "location": "path",
27174	//       "pattern": "^[^/]+$",
27175	//       "required": true,
27176	//       "type": "string"
27177	//     },
27178	//     "triggerId": {
27179	//       "description": "Required. The ID of the manual trigger to deactivate.",
27180	//       "format": "int64",
27181	//       "location": "path",
27182	//       "pattern": "^[^/]+$",
27183	//       "required": true,
27184	//       "type": "string"
27185	//     }
27186	//   },
27187	//   "path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:deactivate",
27188	//   "request": {
27189	//     "$ref": "DeactivateManualTriggerRequest"
27190	//   },
27191	//   "response": {
27192	//     "$ref": "ManualTrigger"
27193	//   },
27194	//   "scopes": [
27195	//     "https://www.googleapis.com/auth/display-video"
27196	//   ]
27197	// }
27198
27199}
27200
27201// method id "displayvideo.advertisers.manualTriggers.get":
27202
27203type AdvertisersManualTriggersGetCall struct {
27204	s            *Service
27205	advertiserId int64
27206	triggerId    int64
27207	urlParams_   gensupport.URLParams
27208	ifNoneMatch_ string
27209	ctx_         context.Context
27210	header_      http.Header
27211}
27212
27213// Get: Gets a manual trigger.
27214//
27215// - advertiserId: The ID of the advertiser this manual trigger belongs
27216//   to.
27217// - triggerId: The ID of the manual trigger to fetch.
27218func (r *AdvertisersManualTriggersService) Get(advertiserId int64, triggerId int64) *AdvertisersManualTriggersGetCall {
27219	c := &AdvertisersManualTriggersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27220	c.advertiserId = advertiserId
27221	c.triggerId = triggerId
27222	return c
27223}
27224
27225// Fields allows partial responses to be retrieved. See
27226// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27227// for more information.
27228func (c *AdvertisersManualTriggersGetCall) Fields(s ...googleapi.Field) *AdvertisersManualTriggersGetCall {
27229	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27230	return c
27231}
27232
27233// IfNoneMatch sets the optional parameter which makes the operation
27234// fail if the object's ETag matches the given value. This is useful for
27235// getting updates only after the object has changed since the last
27236// request. Use googleapi.IsNotModified to check whether the response
27237// error from Do is the result of In-None-Match.
27238func (c *AdvertisersManualTriggersGetCall) IfNoneMatch(entityTag string) *AdvertisersManualTriggersGetCall {
27239	c.ifNoneMatch_ = entityTag
27240	return c
27241}
27242
27243// Context sets the context to be used in this call's Do method. Any
27244// pending HTTP request will be aborted if the provided context is
27245// canceled.
27246func (c *AdvertisersManualTriggersGetCall) Context(ctx context.Context) *AdvertisersManualTriggersGetCall {
27247	c.ctx_ = ctx
27248	return c
27249}
27250
27251// Header returns an http.Header that can be modified by the caller to
27252// add HTTP headers to the request.
27253func (c *AdvertisersManualTriggersGetCall) Header() http.Header {
27254	if c.header_ == nil {
27255		c.header_ = make(http.Header)
27256	}
27257	return c.header_
27258}
27259
27260func (c *AdvertisersManualTriggersGetCall) doRequest(alt string) (*http.Response, error) {
27261	reqHeaders := make(http.Header)
27262	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
27263	for k, v := range c.header_ {
27264		reqHeaders[k] = v
27265	}
27266	reqHeaders.Set("User-Agent", c.s.userAgent())
27267	if c.ifNoneMatch_ != "" {
27268		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
27269	}
27270	var body io.Reader = nil
27271	c.urlParams_.Set("alt", alt)
27272	c.urlParams_.Set("prettyPrint", "false")
27273	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}")
27274	urls += "?" + c.urlParams_.Encode()
27275	req, err := http.NewRequest("GET", urls, body)
27276	if err != nil {
27277		return nil, err
27278	}
27279	req.Header = reqHeaders
27280	googleapi.Expand(req.URL, map[string]string{
27281		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
27282		"triggerId":    strconv.FormatInt(c.triggerId, 10),
27283	})
27284	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27285}
27286
27287// Do executes the "displayvideo.advertisers.manualTriggers.get" call.
27288// Exactly one of *ManualTrigger or error will be non-nil. Any non-2xx
27289// status code is an error. Response headers are in either
27290// *ManualTrigger.ServerResponse.Header or (if a response was returned
27291// at all) in error.(*googleapi.Error).Header. Use
27292// googleapi.IsNotModified to check whether the returned error was
27293// because http.StatusNotModified was returned.
27294func (c *AdvertisersManualTriggersGetCall) Do(opts ...googleapi.CallOption) (*ManualTrigger, error) {
27295	gensupport.SetOptions(c.urlParams_, opts...)
27296	res, err := c.doRequest("json")
27297	if res != nil && res.StatusCode == http.StatusNotModified {
27298		if res.Body != nil {
27299			res.Body.Close()
27300		}
27301		return nil, &googleapi.Error{
27302			Code:   res.StatusCode,
27303			Header: res.Header,
27304		}
27305	}
27306	if err != nil {
27307		return nil, err
27308	}
27309	defer googleapi.CloseBody(res)
27310	if err := googleapi.CheckResponse(res); err != nil {
27311		return nil, err
27312	}
27313	ret := &ManualTrigger{
27314		ServerResponse: googleapi.ServerResponse{
27315			Header:         res.Header,
27316			HTTPStatusCode: res.StatusCode,
27317		},
27318	}
27319	target := &ret
27320	if err := gensupport.DecodeResponse(target, res); err != nil {
27321		return nil, err
27322	}
27323	return ret, nil
27324	// {
27325	//   "description": "Gets a manual trigger.",
27326	//   "flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}",
27327	//   "httpMethod": "GET",
27328	//   "id": "displayvideo.advertisers.manualTriggers.get",
27329	//   "parameterOrder": [
27330	//     "advertiserId",
27331	//     "triggerId"
27332	//   ],
27333	//   "parameters": {
27334	//     "advertiserId": {
27335	//       "description": "Required. The ID of the advertiser this manual trigger belongs to.",
27336	//       "format": "int64",
27337	//       "location": "path",
27338	//       "pattern": "^[^/]+$",
27339	//       "required": true,
27340	//       "type": "string"
27341	//     },
27342	//     "triggerId": {
27343	//       "description": "Required. The ID of the manual trigger to fetch.",
27344	//       "format": "int64",
27345	//       "location": "path",
27346	//       "pattern": "^[^/]+$",
27347	//       "required": true,
27348	//       "type": "string"
27349	//     }
27350	//   },
27351	//   "path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}",
27352	//   "response": {
27353	//     "$ref": "ManualTrigger"
27354	//   },
27355	//   "scopes": [
27356	//     "https://www.googleapis.com/auth/display-video"
27357	//   ]
27358	// }
27359
27360}
27361
27362// method id "displayvideo.advertisers.manualTriggers.list":
27363
27364type AdvertisersManualTriggersListCall struct {
27365	s            *Service
27366	advertiserId int64
27367	urlParams_   gensupport.URLParams
27368	ifNoneMatch_ string
27369	ctx_         context.Context
27370	header_      http.Header
27371}
27372
27373// List: Lists manual triggers that are accessible to the current user
27374// for a given advertiser ID. The order is defined by the order_by
27375// parameter. A single advertiser_id is required.
27376//
27377// - advertiserId: The ID of the advertiser that the fetched manual
27378//   triggers belong to.
27379func (r *AdvertisersManualTriggersService) List(advertiserId int64) *AdvertisersManualTriggersListCall {
27380	c := &AdvertisersManualTriggersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27381	c.advertiserId = advertiserId
27382	return c
27383}
27384
27385// Filter sets the optional parameter "filter": Allows filtering by
27386// manual trigger properties. Supported syntax: * Filter expressions are
27387// made up of one or more restrictions. * Restrictions can be combined
27388// by `AND` or `OR` logical operators. A sequence of restrictions
27389// implicitly uses `AND`. * A restriction has the form of `{field}
27390// {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported
27391// fields: - `displayName` - `state` Examples: * All active manual
27392// triggers under an advertiser: `state="ACTIVE" The length of this
27393// field should be no more than 500 characters.
27394func (c *AdvertisersManualTriggersListCall) Filter(filter string) *AdvertisersManualTriggersListCall {
27395	c.urlParams_.Set("filter", filter)
27396	return c
27397}
27398
27399// OrderBy sets the optional parameter "orderBy": Field by which to sort
27400// the list. Acceptable values are: * `displayName` (default) * `state`
27401// The default sorting order is ascending. To specify descending order
27402// for a field, a suffix "desc" should be added to the field name. For
27403// example, `displayName desc`.
27404func (c *AdvertisersManualTriggersListCall) OrderBy(orderBy string) *AdvertisersManualTriggersListCall {
27405	c.urlParams_.Set("orderBy", orderBy)
27406	return c
27407}
27408
27409// PageSize sets the optional parameter "pageSize": Requested page size.
27410// Must be between `1` and `100`. If unspecified will default to `100`.
27411func (c *AdvertisersManualTriggersListCall) PageSize(pageSize int64) *AdvertisersManualTriggersListCall {
27412	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
27413	return c
27414}
27415
27416// PageToken sets the optional parameter "pageToken": A token
27417// identifying a page of results the server should return. Typically,
27418// this is the value of next_page_token returned from the previous call
27419// to `ListManualTriggers` method. If not specified, the first page of
27420// results will be returned.
27421func (c *AdvertisersManualTriggersListCall) PageToken(pageToken string) *AdvertisersManualTriggersListCall {
27422	c.urlParams_.Set("pageToken", pageToken)
27423	return c
27424}
27425
27426// Fields allows partial responses to be retrieved. See
27427// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27428// for more information.
27429func (c *AdvertisersManualTriggersListCall) Fields(s ...googleapi.Field) *AdvertisersManualTriggersListCall {
27430	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27431	return c
27432}
27433
27434// IfNoneMatch sets the optional parameter which makes the operation
27435// fail if the object's ETag matches the given value. This is useful for
27436// getting updates only after the object has changed since the last
27437// request. Use googleapi.IsNotModified to check whether the response
27438// error from Do is the result of In-None-Match.
27439func (c *AdvertisersManualTriggersListCall) IfNoneMatch(entityTag string) *AdvertisersManualTriggersListCall {
27440	c.ifNoneMatch_ = entityTag
27441	return c
27442}
27443
27444// Context sets the context to be used in this call's Do method. Any
27445// pending HTTP request will be aborted if the provided context is
27446// canceled.
27447func (c *AdvertisersManualTriggersListCall) Context(ctx context.Context) *AdvertisersManualTriggersListCall {
27448	c.ctx_ = ctx
27449	return c
27450}
27451
27452// Header returns an http.Header that can be modified by the caller to
27453// add HTTP headers to the request.
27454func (c *AdvertisersManualTriggersListCall) Header() http.Header {
27455	if c.header_ == nil {
27456		c.header_ = make(http.Header)
27457	}
27458	return c.header_
27459}
27460
27461func (c *AdvertisersManualTriggersListCall) doRequest(alt string) (*http.Response, error) {
27462	reqHeaders := make(http.Header)
27463	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
27464	for k, v := range c.header_ {
27465		reqHeaders[k] = v
27466	}
27467	reqHeaders.Set("User-Agent", c.s.userAgent())
27468	if c.ifNoneMatch_ != "" {
27469		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
27470	}
27471	var body io.Reader = nil
27472	c.urlParams_.Set("alt", alt)
27473	c.urlParams_.Set("prettyPrint", "false")
27474	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/manualTriggers")
27475	urls += "?" + c.urlParams_.Encode()
27476	req, err := http.NewRequest("GET", urls, body)
27477	if err != nil {
27478		return nil, err
27479	}
27480	req.Header = reqHeaders
27481	googleapi.Expand(req.URL, map[string]string{
27482		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
27483	})
27484	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27485}
27486
27487// Do executes the "displayvideo.advertisers.manualTriggers.list" call.
27488// Exactly one of *ListManualTriggersResponse or error will be non-nil.
27489// Any non-2xx status code is an error. Response headers are in either
27490// *ListManualTriggersResponse.ServerResponse.Header or (if a response
27491// was returned at all) in error.(*googleapi.Error).Header. Use
27492// googleapi.IsNotModified to check whether the returned error was
27493// because http.StatusNotModified was returned.
27494func (c *AdvertisersManualTriggersListCall) Do(opts ...googleapi.CallOption) (*ListManualTriggersResponse, error) {
27495	gensupport.SetOptions(c.urlParams_, opts...)
27496	res, err := c.doRequest("json")
27497	if res != nil && res.StatusCode == http.StatusNotModified {
27498		if res.Body != nil {
27499			res.Body.Close()
27500		}
27501		return nil, &googleapi.Error{
27502			Code:   res.StatusCode,
27503			Header: res.Header,
27504		}
27505	}
27506	if err != nil {
27507		return nil, err
27508	}
27509	defer googleapi.CloseBody(res)
27510	if err := googleapi.CheckResponse(res); err != nil {
27511		return nil, err
27512	}
27513	ret := &ListManualTriggersResponse{
27514		ServerResponse: googleapi.ServerResponse{
27515			Header:         res.Header,
27516			HTTPStatusCode: res.StatusCode,
27517		},
27518	}
27519	target := &ret
27520	if err := gensupport.DecodeResponse(target, res); err != nil {
27521		return nil, err
27522	}
27523	return ret, nil
27524	// {
27525	//   "description": "Lists manual triggers that are accessible to the current user for a given advertiser ID. The order is defined by the order_by parameter. A single advertiser_id is required.",
27526	//   "flatPath": "v1/advertisers/{advertisersId}/manualTriggers",
27527	//   "httpMethod": "GET",
27528	//   "id": "displayvideo.advertisers.manualTriggers.list",
27529	//   "parameterOrder": [
27530	//     "advertiserId"
27531	//   ],
27532	//   "parameters": {
27533	//     "advertiserId": {
27534	//       "description": "Required. The ID of the advertiser that the fetched manual triggers belong to.",
27535	//       "format": "int64",
27536	//       "location": "path",
27537	//       "pattern": "^[^/]+$",
27538	//       "required": true,
27539	//       "type": "string"
27540	//     },
27541	//     "filter": {
27542	//       "description": "Allows filtering by manual trigger properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `displayName` - `state` Examples: * All active manual triggers under an advertiser: `state=\"ACTIVE\"` The length of this field should be no more than 500 characters.",
27543	//       "location": "query",
27544	//       "type": "string"
27545	//     },
27546	//     "orderBy": {
27547	//       "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `state` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.",
27548	//       "location": "query",
27549	//       "type": "string"
27550	//     },
27551	//     "pageSize": {
27552	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
27553	//       "format": "int32",
27554	//       "location": "query",
27555	//       "type": "integer"
27556	//     },
27557	//     "pageToken": {
27558	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListManualTriggers` method. If not specified, the first page of results will be returned.",
27559	//       "location": "query",
27560	//       "type": "string"
27561	//     }
27562	//   },
27563	//   "path": "v1/advertisers/{+advertiserId}/manualTriggers",
27564	//   "response": {
27565	//     "$ref": "ListManualTriggersResponse"
27566	//   },
27567	//   "scopes": [
27568	//     "https://www.googleapis.com/auth/display-video"
27569	//   ]
27570	// }
27571
27572}
27573
27574// Pages invokes f for each page of results.
27575// A non-nil error returned from f will halt the iteration.
27576// The provided context supersedes any context provided to the Context method.
27577func (c *AdvertisersManualTriggersListCall) Pages(ctx context.Context, f func(*ListManualTriggersResponse) error) error {
27578	c.ctx_ = ctx
27579	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
27580	for {
27581		x, err := c.Do()
27582		if err != nil {
27583			return err
27584		}
27585		if err := f(x); err != nil {
27586			return err
27587		}
27588		if x.NextPageToken == "" {
27589			return nil
27590		}
27591		c.PageToken(x.NextPageToken)
27592	}
27593}
27594
27595// method id "displayvideo.advertisers.manualTriggers.patch":
27596
27597type AdvertisersManualTriggersPatchCall struct {
27598	s             *Service
27599	advertiserId  int64
27600	triggerId     int64
27601	manualtrigger *ManualTrigger
27602	urlParams_    gensupport.URLParams
27603	ctx_          context.Context
27604	header_       http.Header
27605}
27606
27607// Patch: Updates a manual trigger. Returns the updated manual trigger
27608// if successful.
27609//
27610// - advertiserId: Immutable. The unique ID of the advertiser that the
27611//   manual trigger belongs to.
27612// - triggerId: Output only. The unique ID of the manual trigger.
27613func (r *AdvertisersManualTriggersService) Patch(advertiserId int64, triggerId int64, manualtrigger *ManualTrigger) *AdvertisersManualTriggersPatchCall {
27614	c := &AdvertisersManualTriggersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27615	c.advertiserId = advertiserId
27616	c.triggerId = triggerId
27617	c.manualtrigger = manualtrigger
27618	return c
27619}
27620
27621// UpdateMask sets the optional parameter "updateMask": Required. The
27622// mask to control which fields to update.
27623func (c *AdvertisersManualTriggersPatchCall) UpdateMask(updateMask string) *AdvertisersManualTriggersPatchCall {
27624	c.urlParams_.Set("updateMask", updateMask)
27625	return c
27626}
27627
27628// Fields allows partial responses to be retrieved. See
27629// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27630// for more information.
27631func (c *AdvertisersManualTriggersPatchCall) Fields(s ...googleapi.Field) *AdvertisersManualTriggersPatchCall {
27632	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27633	return c
27634}
27635
27636// Context sets the context to be used in this call's Do method. Any
27637// pending HTTP request will be aborted if the provided context is
27638// canceled.
27639func (c *AdvertisersManualTriggersPatchCall) Context(ctx context.Context) *AdvertisersManualTriggersPatchCall {
27640	c.ctx_ = ctx
27641	return c
27642}
27643
27644// Header returns an http.Header that can be modified by the caller to
27645// add HTTP headers to the request.
27646func (c *AdvertisersManualTriggersPatchCall) Header() http.Header {
27647	if c.header_ == nil {
27648		c.header_ = make(http.Header)
27649	}
27650	return c.header_
27651}
27652
27653func (c *AdvertisersManualTriggersPatchCall) doRequest(alt string) (*http.Response, error) {
27654	reqHeaders := make(http.Header)
27655	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
27656	for k, v := range c.header_ {
27657		reqHeaders[k] = v
27658	}
27659	reqHeaders.Set("User-Agent", c.s.userAgent())
27660	var body io.Reader = nil
27661	body, err := googleapi.WithoutDataWrapper.JSONReader(c.manualtrigger)
27662	if err != nil {
27663		return nil, err
27664	}
27665	reqHeaders.Set("Content-Type", "application/json")
27666	c.urlParams_.Set("alt", alt)
27667	c.urlParams_.Set("prettyPrint", "false")
27668	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}")
27669	urls += "?" + c.urlParams_.Encode()
27670	req, err := http.NewRequest("PATCH", urls, body)
27671	if err != nil {
27672		return nil, err
27673	}
27674	req.Header = reqHeaders
27675	googleapi.Expand(req.URL, map[string]string{
27676		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
27677		"triggerId":    strconv.FormatInt(c.triggerId, 10),
27678	})
27679	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27680}
27681
27682// Do executes the "displayvideo.advertisers.manualTriggers.patch" call.
27683// Exactly one of *ManualTrigger or error will be non-nil. Any non-2xx
27684// status code is an error. Response headers are in either
27685// *ManualTrigger.ServerResponse.Header or (if a response was returned
27686// at all) in error.(*googleapi.Error).Header. Use
27687// googleapi.IsNotModified to check whether the returned error was
27688// because http.StatusNotModified was returned.
27689func (c *AdvertisersManualTriggersPatchCall) Do(opts ...googleapi.CallOption) (*ManualTrigger, error) {
27690	gensupport.SetOptions(c.urlParams_, opts...)
27691	res, err := c.doRequest("json")
27692	if res != nil && res.StatusCode == http.StatusNotModified {
27693		if res.Body != nil {
27694			res.Body.Close()
27695		}
27696		return nil, &googleapi.Error{
27697			Code:   res.StatusCode,
27698			Header: res.Header,
27699		}
27700	}
27701	if err != nil {
27702		return nil, err
27703	}
27704	defer googleapi.CloseBody(res)
27705	if err := googleapi.CheckResponse(res); err != nil {
27706		return nil, err
27707	}
27708	ret := &ManualTrigger{
27709		ServerResponse: googleapi.ServerResponse{
27710			Header:         res.Header,
27711			HTTPStatusCode: res.StatusCode,
27712		},
27713	}
27714	target := &ret
27715	if err := gensupport.DecodeResponse(target, res); err != nil {
27716		return nil, err
27717	}
27718	return ret, nil
27719	// {
27720	//   "description": "Updates a manual trigger. Returns the updated manual trigger if successful.",
27721	//   "flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}",
27722	//   "httpMethod": "PATCH",
27723	//   "id": "displayvideo.advertisers.manualTriggers.patch",
27724	//   "parameterOrder": [
27725	//     "advertiserId",
27726	//     "triggerId"
27727	//   ],
27728	//   "parameters": {
27729	//     "advertiserId": {
27730	//       "description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.",
27731	//       "format": "int64",
27732	//       "location": "path",
27733	//       "pattern": "^[^/]+$",
27734	//       "required": true,
27735	//       "type": "string"
27736	//     },
27737	//     "triggerId": {
27738	//       "description": "Output only. The unique ID of the manual trigger.",
27739	//       "format": "int64",
27740	//       "location": "path",
27741	//       "pattern": "^[^/]+$",
27742	//       "required": true,
27743	//       "type": "string"
27744	//     },
27745	//     "updateMask": {
27746	//       "description": "Required. The mask to control which fields to update.",
27747	//       "format": "google-fieldmask",
27748	//       "location": "query",
27749	//       "type": "string"
27750	//     }
27751	//   },
27752	//   "path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}",
27753	//   "request": {
27754	//     "$ref": "ManualTrigger"
27755	//   },
27756	//   "response": {
27757	//     "$ref": "ManualTrigger"
27758	//   },
27759	//   "scopes": [
27760	//     "https://www.googleapis.com/auth/display-video"
27761	//   ]
27762	// }
27763
27764}
27765
27766// method id "displayvideo.advertisers.negativeKeywordLists.create":
27767
27768type AdvertisersNegativeKeywordListsCreateCall struct {
27769	s                   *Service
27770	advertiserId        int64
27771	negativekeywordlist *NegativeKeywordList
27772	urlParams_          gensupport.URLParams
27773	ctx_                context.Context
27774	header_             http.Header
27775}
27776
27777// Create: Creates a new negative keyword list. Returns the newly
27778// created negative keyword list if successful.
27779//
27780// - advertiserId: The ID of the DV360 advertiser to which the negative
27781//   keyword list will belong.
27782func (r *AdvertisersNegativeKeywordListsService) Create(advertiserId int64, negativekeywordlist *NegativeKeywordList) *AdvertisersNegativeKeywordListsCreateCall {
27783	c := &AdvertisersNegativeKeywordListsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27784	c.advertiserId = advertiserId
27785	c.negativekeywordlist = negativekeywordlist
27786	return c
27787}
27788
27789// Fields allows partial responses to be retrieved. See
27790// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27791// for more information.
27792func (c *AdvertisersNegativeKeywordListsCreateCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsCreateCall {
27793	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27794	return c
27795}
27796
27797// Context sets the context to be used in this call's Do method. Any
27798// pending HTTP request will be aborted if the provided context is
27799// canceled.
27800func (c *AdvertisersNegativeKeywordListsCreateCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsCreateCall {
27801	c.ctx_ = ctx
27802	return c
27803}
27804
27805// Header returns an http.Header that can be modified by the caller to
27806// add HTTP headers to the request.
27807func (c *AdvertisersNegativeKeywordListsCreateCall) Header() http.Header {
27808	if c.header_ == nil {
27809		c.header_ = make(http.Header)
27810	}
27811	return c.header_
27812}
27813
27814func (c *AdvertisersNegativeKeywordListsCreateCall) doRequest(alt string) (*http.Response, error) {
27815	reqHeaders := make(http.Header)
27816	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
27817	for k, v := range c.header_ {
27818		reqHeaders[k] = v
27819	}
27820	reqHeaders.Set("User-Agent", c.s.userAgent())
27821	var body io.Reader = nil
27822	body, err := googleapi.WithoutDataWrapper.JSONReader(c.negativekeywordlist)
27823	if err != nil {
27824		return nil, err
27825	}
27826	reqHeaders.Set("Content-Type", "application/json")
27827	c.urlParams_.Set("alt", alt)
27828	c.urlParams_.Set("prettyPrint", "false")
27829	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/negativeKeywordLists")
27830	urls += "?" + c.urlParams_.Encode()
27831	req, err := http.NewRequest("POST", urls, body)
27832	if err != nil {
27833		return nil, err
27834	}
27835	req.Header = reqHeaders
27836	googleapi.Expand(req.URL, map[string]string{
27837		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
27838	})
27839	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27840}
27841
27842// Do executes the "displayvideo.advertisers.negativeKeywordLists.create" call.
27843// Exactly one of *NegativeKeywordList or error will be non-nil. Any
27844// non-2xx status code is an error. Response headers are in either
27845// *NegativeKeywordList.ServerResponse.Header or (if a response was
27846// returned at all) in error.(*googleapi.Error).Header. Use
27847// googleapi.IsNotModified to check whether the returned error was
27848// because http.StatusNotModified was returned.
27849func (c *AdvertisersNegativeKeywordListsCreateCall) Do(opts ...googleapi.CallOption) (*NegativeKeywordList, error) {
27850	gensupport.SetOptions(c.urlParams_, opts...)
27851	res, err := c.doRequest("json")
27852	if res != nil && res.StatusCode == http.StatusNotModified {
27853		if res.Body != nil {
27854			res.Body.Close()
27855		}
27856		return nil, &googleapi.Error{
27857			Code:   res.StatusCode,
27858			Header: res.Header,
27859		}
27860	}
27861	if err != nil {
27862		return nil, err
27863	}
27864	defer googleapi.CloseBody(res)
27865	if err := googleapi.CheckResponse(res); err != nil {
27866		return nil, err
27867	}
27868	ret := &NegativeKeywordList{
27869		ServerResponse: googleapi.ServerResponse{
27870			Header:         res.Header,
27871			HTTPStatusCode: res.StatusCode,
27872		},
27873	}
27874	target := &ret
27875	if err := gensupport.DecodeResponse(target, res); err != nil {
27876		return nil, err
27877	}
27878	return ret, nil
27879	// {
27880	//   "description": "Creates a new negative keyword list. Returns the newly created negative keyword list if successful.",
27881	//   "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists",
27882	//   "httpMethod": "POST",
27883	//   "id": "displayvideo.advertisers.negativeKeywordLists.create",
27884	//   "parameterOrder": [
27885	//     "advertiserId"
27886	//   ],
27887	//   "parameters": {
27888	//     "advertiserId": {
27889	//       "description": "Required. The ID of the DV360 advertiser to which the negative keyword list will belong.",
27890	//       "format": "int64",
27891	//       "location": "path",
27892	//       "pattern": "^[^/]+$",
27893	//       "required": true,
27894	//       "type": "string"
27895	//     }
27896	//   },
27897	//   "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists",
27898	//   "request": {
27899	//     "$ref": "NegativeKeywordList"
27900	//   },
27901	//   "response": {
27902	//     "$ref": "NegativeKeywordList"
27903	//   },
27904	//   "scopes": [
27905	//     "https://www.googleapis.com/auth/display-video"
27906	//   ]
27907	// }
27908
27909}
27910
27911// method id "displayvideo.advertisers.negativeKeywordLists.delete":
27912
27913type AdvertisersNegativeKeywordListsDeleteCall struct {
27914	s                     *Service
27915	advertiserId          int64
27916	negativeKeywordListId int64
27917	urlParams_            gensupport.URLParams
27918	ctx_                  context.Context
27919	header_               http.Header
27920}
27921
27922// Delete: Deletes a negative keyword list given an advertiser ID and a
27923// negative keyword list ID.
27924//
27925// - advertiserId: The ID of the DV360 advertiser to which the negative
27926//   keyword list belongs.
27927// - negativeKeywordListId: The ID of the negative keyword list to
27928//   delete.
27929func (r *AdvertisersNegativeKeywordListsService) Delete(advertiserId int64, negativeKeywordListId int64) *AdvertisersNegativeKeywordListsDeleteCall {
27930	c := &AdvertisersNegativeKeywordListsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27931	c.advertiserId = advertiserId
27932	c.negativeKeywordListId = negativeKeywordListId
27933	return c
27934}
27935
27936// Fields allows partial responses to be retrieved. See
27937// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27938// for more information.
27939func (c *AdvertisersNegativeKeywordListsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsDeleteCall {
27940	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27941	return c
27942}
27943
27944// Context sets the context to be used in this call's Do method. Any
27945// pending HTTP request will be aborted if the provided context is
27946// canceled.
27947func (c *AdvertisersNegativeKeywordListsDeleteCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsDeleteCall {
27948	c.ctx_ = ctx
27949	return c
27950}
27951
27952// Header returns an http.Header that can be modified by the caller to
27953// add HTTP headers to the request.
27954func (c *AdvertisersNegativeKeywordListsDeleteCall) Header() http.Header {
27955	if c.header_ == nil {
27956		c.header_ = make(http.Header)
27957	}
27958	return c.header_
27959}
27960
27961func (c *AdvertisersNegativeKeywordListsDeleteCall) doRequest(alt string) (*http.Response, error) {
27962	reqHeaders := make(http.Header)
27963	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
27964	for k, v := range c.header_ {
27965		reqHeaders[k] = v
27966	}
27967	reqHeaders.Set("User-Agent", c.s.userAgent())
27968	var body io.Reader = nil
27969	c.urlParams_.Set("alt", alt)
27970	c.urlParams_.Set("prettyPrint", "false")
27971	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}")
27972	urls += "?" + c.urlParams_.Encode()
27973	req, err := http.NewRequest("DELETE", urls, body)
27974	if err != nil {
27975		return nil, err
27976	}
27977	req.Header = reqHeaders
27978	googleapi.Expand(req.URL, map[string]string{
27979		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
27980		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
27981	})
27982	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27983}
27984
27985// Do executes the "displayvideo.advertisers.negativeKeywordLists.delete" call.
27986// Exactly one of *Empty or error will be non-nil. Any non-2xx status
27987// code is an error. Response headers are in either
27988// *Empty.ServerResponse.Header or (if a response was returned at all)
27989// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
27990// check whether the returned error was because http.StatusNotModified
27991// was returned.
27992func (c *AdvertisersNegativeKeywordListsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
27993	gensupport.SetOptions(c.urlParams_, opts...)
27994	res, err := c.doRequest("json")
27995	if res != nil && res.StatusCode == http.StatusNotModified {
27996		if res.Body != nil {
27997			res.Body.Close()
27998		}
27999		return nil, &googleapi.Error{
28000			Code:   res.StatusCode,
28001			Header: res.Header,
28002		}
28003	}
28004	if err != nil {
28005		return nil, err
28006	}
28007	defer googleapi.CloseBody(res)
28008	if err := googleapi.CheckResponse(res); err != nil {
28009		return nil, err
28010	}
28011	ret := &Empty{
28012		ServerResponse: googleapi.ServerResponse{
28013			Header:         res.Header,
28014			HTTPStatusCode: res.StatusCode,
28015		},
28016	}
28017	target := &ret
28018	if err := gensupport.DecodeResponse(target, res); err != nil {
28019		return nil, err
28020	}
28021	return ret, nil
28022	// {
28023	//   "description": "Deletes a negative keyword list given an advertiser ID and a negative keyword list ID.",
28024	//   "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}",
28025	//   "httpMethod": "DELETE",
28026	//   "id": "displayvideo.advertisers.negativeKeywordLists.delete",
28027	//   "parameterOrder": [
28028	//     "advertiserId",
28029	//     "negativeKeywordListId"
28030	//   ],
28031	//   "parameters": {
28032	//     "advertiserId": {
28033	//       "description": "Required. The ID of the DV360 advertiser to which the negative keyword list belongs.",
28034	//       "format": "int64",
28035	//       "location": "path",
28036	//       "pattern": "^[^/]+$",
28037	//       "required": true,
28038	//       "type": "string"
28039	//     },
28040	//     "negativeKeywordListId": {
28041	//       "description": "Required. The ID of the negative keyword list to delete.",
28042	//       "format": "int64",
28043	//       "location": "path",
28044	//       "pattern": "^[^/]+$",
28045	//       "required": true,
28046	//       "type": "string"
28047	//     }
28048	//   },
28049	//   "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}",
28050	//   "response": {
28051	//     "$ref": "Empty"
28052	//   },
28053	//   "scopes": [
28054	//     "https://www.googleapis.com/auth/display-video"
28055	//   ]
28056	// }
28057
28058}
28059
28060// method id "displayvideo.advertisers.negativeKeywordLists.get":
28061
28062type AdvertisersNegativeKeywordListsGetCall struct {
28063	s                     *Service
28064	advertiserId          int64
28065	negativeKeywordListId int64
28066	urlParams_            gensupport.URLParams
28067	ifNoneMatch_          string
28068	ctx_                  context.Context
28069	header_               http.Header
28070}
28071
28072// Get: Gets a negative keyword list given an advertiser ID and a
28073// negative keyword list ID.
28074//
28075// - advertiserId: The ID of the DV360 advertiser to which the fetched
28076//   negative keyword list belongs.
28077// - negativeKeywordListId: The ID of the negative keyword list to
28078//   fetch.
28079func (r *AdvertisersNegativeKeywordListsService) Get(advertiserId int64, negativeKeywordListId int64) *AdvertisersNegativeKeywordListsGetCall {
28080	c := &AdvertisersNegativeKeywordListsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28081	c.advertiserId = advertiserId
28082	c.negativeKeywordListId = negativeKeywordListId
28083	return c
28084}
28085
28086// Fields allows partial responses to be retrieved. See
28087// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28088// for more information.
28089func (c *AdvertisersNegativeKeywordListsGetCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsGetCall {
28090	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28091	return c
28092}
28093
28094// IfNoneMatch sets the optional parameter which makes the operation
28095// fail if the object's ETag matches the given value. This is useful for
28096// getting updates only after the object has changed since the last
28097// request. Use googleapi.IsNotModified to check whether the response
28098// error from Do is the result of In-None-Match.
28099func (c *AdvertisersNegativeKeywordListsGetCall) IfNoneMatch(entityTag string) *AdvertisersNegativeKeywordListsGetCall {
28100	c.ifNoneMatch_ = entityTag
28101	return c
28102}
28103
28104// Context sets the context to be used in this call's Do method. Any
28105// pending HTTP request will be aborted if the provided context is
28106// canceled.
28107func (c *AdvertisersNegativeKeywordListsGetCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsGetCall {
28108	c.ctx_ = ctx
28109	return c
28110}
28111
28112// Header returns an http.Header that can be modified by the caller to
28113// add HTTP headers to the request.
28114func (c *AdvertisersNegativeKeywordListsGetCall) Header() http.Header {
28115	if c.header_ == nil {
28116		c.header_ = make(http.Header)
28117	}
28118	return c.header_
28119}
28120
28121func (c *AdvertisersNegativeKeywordListsGetCall) doRequest(alt string) (*http.Response, error) {
28122	reqHeaders := make(http.Header)
28123	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
28124	for k, v := range c.header_ {
28125		reqHeaders[k] = v
28126	}
28127	reqHeaders.Set("User-Agent", c.s.userAgent())
28128	if c.ifNoneMatch_ != "" {
28129		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
28130	}
28131	var body io.Reader = nil
28132	c.urlParams_.Set("alt", alt)
28133	c.urlParams_.Set("prettyPrint", "false")
28134	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}")
28135	urls += "?" + c.urlParams_.Encode()
28136	req, err := http.NewRequest("GET", urls, body)
28137	if err != nil {
28138		return nil, err
28139	}
28140	req.Header = reqHeaders
28141	googleapi.Expand(req.URL, map[string]string{
28142		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
28143		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
28144	})
28145	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28146}
28147
28148// Do executes the "displayvideo.advertisers.negativeKeywordLists.get" call.
28149// Exactly one of *NegativeKeywordList or error will be non-nil. Any
28150// non-2xx status code is an error. Response headers are in either
28151// *NegativeKeywordList.ServerResponse.Header or (if a response was
28152// returned at all) in error.(*googleapi.Error).Header. Use
28153// googleapi.IsNotModified to check whether the returned error was
28154// because http.StatusNotModified was returned.
28155func (c *AdvertisersNegativeKeywordListsGetCall) Do(opts ...googleapi.CallOption) (*NegativeKeywordList, error) {
28156	gensupport.SetOptions(c.urlParams_, opts...)
28157	res, err := c.doRequest("json")
28158	if res != nil && res.StatusCode == http.StatusNotModified {
28159		if res.Body != nil {
28160			res.Body.Close()
28161		}
28162		return nil, &googleapi.Error{
28163			Code:   res.StatusCode,
28164			Header: res.Header,
28165		}
28166	}
28167	if err != nil {
28168		return nil, err
28169	}
28170	defer googleapi.CloseBody(res)
28171	if err := googleapi.CheckResponse(res); err != nil {
28172		return nil, err
28173	}
28174	ret := &NegativeKeywordList{
28175		ServerResponse: googleapi.ServerResponse{
28176			Header:         res.Header,
28177			HTTPStatusCode: res.StatusCode,
28178		},
28179	}
28180	target := &ret
28181	if err := gensupport.DecodeResponse(target, res); err != nil {
28182		return nil, err
28183	}
28184	return ret, nil
28185	// {
28186	//   "description": "Gets a negative keyword list given an advertiser ID and a negative keyword list ID.",
28187	//   "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}",
28188	//   "httpMethod": "GET",
28189	//   "id": "displayvideo.advertisers.negativeKeywordLists.get",
28190	//   "parameterOrder": [
28191	//     "advertiserId",
28192	//     "negativeKeywordListId"
28193	//   ],
28194	//   "parameters": {
28195	//     "advertiserId": {
28196	//       "description": "Required. The ID of the DV360 advertiser to which the fetched negative keyword list belongs.",
28197	//       "format": "int64",
28198	//       "location": "path",
28199	//       "pattern": "^[^/]+$",
28200	//       "required": true,
28201	//       "type": "string"
28202	//     },
28203	//     "negativeKeywordListId": {
28204	//       "description": "Required. The ID of the negative keyword list to fetch.",
28205	//       "format": "int64",
28206	//       "location": "path",
28207	//       "pattern": "^[^/]+$",
28208	//       "required": true,
28209	//       "type": "string"
28210	//     }
28211	//   },
28212	//   "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}",
28213	//   "response": {
28214	//     "$ref": "NegativeKeywordList"
28215	//   },
28216	//   "scopes": [
28217	//     "https://www.googleapis.com/auth/display-video"
28218	//   ]
28219	// }
28220
28221}
28222
28223// method id "displayvideo.advertisers.negativeKeywordLists.list":
28224
28225type AdvertisersNegativeKeywordListsListCall struct {
28226	s            *Service
28227	advertiserId int64
28228	urlParams_   gensupport.URLParams
28229	ifNoneMatch_ string
28230	ctx_         context.Context
28231	header_      http.Header
28232}
28233
28234// List: Lists negative keyword lists based on a given advertiser id.
28235//
28236// - advertiserId: The ID of the DV360 advertiser to which the fetched
28237//   negative keyword lists belong.
28238func (r *AdvertisersNegativeKeywordListsService) List(advertiserId int64) *AdvertisersNegativeKeywordListsListCall {
28239	c := &AdvertisersNegativeKeywordListsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28240	c.advertiserId = advertiserId
28241	return c
28242}
28243
28244// PageSize sets the optional parameter "pageSize": Requested page size.
28245// Must be between `1` and `100`. Defaults to `100` if not set. Returns
28246// error code `INVALID_ARGUMENT` if an invalid value is specified.
28247func (c *AdvertisersNegativeKeywordListsListCall) PageSize(pageSize int64) *AdvertisersNegativeKeywordListsListCall {
28248	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
28249	return c
28250}
28251
28252// PageToken sets the optional parameter "pageToken": A token
28253// identifying a page of results the server should return. Typically,
28254// this is the value of next_page_token returned from the previous call
28255// to `ListNegativeKeywordLists` method. If not specified, the first
28256// page of results will be returned.
28257func (c *AdvertisersNegativeKeywordListsListCall) PageToken(pageToken string) *AdvertisersNegativeKeywordListsListCall {
28258	c.urlParams_.Set("pageToken", pageToken)
28259	return c
28260}
28261
28262// Fields allows partial responses to be retrieved. See
28263// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28264// for more information.
28265func (c *AdvertisersNegativeKeywordListsListCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsListCall {
28266	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28267	return c
28268}
28269
28270// IfNoneMatch sets the optional parameter which makes the operation
28271// fail if the object's ETag matches the given value. This is useful for
28272// getting updates only after the object has changed since the last
28273// request. Use googleapi.IsNotModified to check whether the response
28274// error from Do is the result of In-None-Match.
28275func (c *AdvertisersNegativeKeywordListsListCall) IfNoneMatch(entityTag string) *AdvertisersNegativeKeywordListsListCall {
28276	c.ifNoneMatch_ = entityTag
28277	return c
28278}
28279
28280// Context sets the context to be used in this call's Do method. Any
28281// pending HTTP request will be aborted if the provided context is
28282// canceled.
28283func (c *AdvertisersNegativeKeywordListsListCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsListCall {
28284	c.ctx_ = ctx
28285	return c
28286}
28287
28288// Header returns an http.Header that can be modified by the caller to
28289// add HTTP headers to the request.
28290func (c *AdvertisersNegativeKeywordListsListCall) Header() http.Header {
28291	if c.header_ == nil {
28292		c.header_ = make(http.Header)
28293	}
28294	return c.header_
28295}
28296
28297func (c *AdvertisersNegativeKeywordListsListCall) doRequest(alt string) (*http.Response, error) {
28298	reqHeaders := make(http.Header)
28299	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
28300	for k, v := range c.header_ {
28301		reqHeaders[k] = v
28302	}
28303	reqHeaders.Set("User-Agent", c.s.userAgent())
28304	if c.ifNoneMatch_ != "" {
28305		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
28306	}
28307	var body io.Reader = nil
28308	c.urlParams_.Set("alt", alt)
28309	c.urlParams_.Set("prettyPrint", "false")
28310	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/negativeKeywordLists")
28311	urls += "?" + c.urlParams_.Encode()
28312	req, err := http.NewRequest("GET", urls, body)
28313	if err != nil {
28314		return nil, err
28315	}
28316	req.Header = reqHeaders
28317	googleapi.Expand(req.URL, map[string]string{
28318		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
28319	})
28320	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28321}
28322
28323// Do executes the "displayvideo.advertisers.negativeKeywordLists.list" call.
28324// Exactly one of *ListNegativeKeywordListsResponse or error will be
28325// non-nil. Any non-2xx status code is an error. Response headers are in
28326// either *ListNegativeKeywordListsResponse.ServerResponse.Header or (if
28327// a response was returned at all) in error.(*googleapi.Error).Header.
28328// Use googleapi.IsNotModified to check whether the returned error was
28329// because http.StatusNotModified was returned.
28330func (c *AdvertisersNegativeKeywordListsListCall) Do(opts ...googleapi.CallOption) (*ListNegativeKeywordListsResponse, error) {
28331	gensupport.SetOptions(c.urlParams_, opts...)
28332	res, err := c.doRequest("json")
28333	if res != nil && res.StatusCode == http.StatusNotModified {
28334		if res.Body != nil {
28335			res.Body.Close()
28336		}
28337		return nil, &googleapi.Error{
28338			Code:   res.StatusCode,
28339			Header: res.Header,
28340		}
28341	}
28342	if err != nil {
28343		return nil, err
28344	}
28345	defer googleapi.CloseBody(res)
28346	if err := googleapi.CheckResponse(res); err != nil {
28347		return nil, err
28348	}
28349	ret := &ListNegativeKeywordListsResponse{
28350		ServerResponse: googleapi.ServerResponse{
28351			Header:         res.Header,
28352			HTTPStatusCode: res.StatusCode,
28353		},
28354	}
28355	target := &ret
28356	if err := gensupport.DecodeResponse(target, res); err != nil {
28357		return nil, err
28358	}
28359	return ret, nil
28360	// {
28361	//   "description": "Lists negative keyword lists based on a given advertiser id.",
28362	//   "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists",
28363	//   "httpMethod": "GET",
28364	//   "id": "displayvideo.advertisers.negativeKeywordLists.list",
28365	//   "parameterOrder": [
28366	//     "advertiserId"
28367	//   ],
28368	//   "parameters": {
28369	//     "advertiserId": {
28370	//       "description": "Required. The ID of the DV360 advertiser to which the fetched negative keyword lists belong.",
28371	//       "format": "int64",
28372	//       "location": "path",
28373	//       "pattern": "^[^/]+$",
28374	//       "required": true,
28375	//       "type": "string"
28376	//     },
28377	//     "pageSize": {
28378	//       "description": "Requested page size. Must be between `1` and `100`. Defaults to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
28379	//       "format": "int32",
28380	//       "location": "query",
28381	//       "type": "integer"
28382	//     },
28383	//     "pageToken": {
28384	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListNegativeKeywordLists` method. If not specified, the first page of results will be returned.",
28385	//       "location": "query",
28386	//       "type": "string"
28387	//     }
28388	//   },
28389	//   "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists",
28390	//   "response": {
28391	//     "$ref": "ListNegativeKeywordListsResponse"
28392	//   },
28393	//   "scopes": [
28394	//     "https://www.googleapis.com/auth/display-video"
28395	//   ]
28396	// }
28397
28398}
28399
28400// Pages invokes f for each page of results.
28401// A non-nil error returned from f will halt the iteration.
28402// The provided context supersedes any context provided to the Context method.
28403func (c *AdvertisersNegativeKeywordListsListCall) Pages(ctx context.Context, f func(*ListNegativeKeywordListsResponse) error) error {
28404	c.ctx_ = ctx
28405	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
28406	for {
28407		x, err := c.Do()
28408		if err != nil {
28409			return err
28410		}
28411		if err := f(x); err != nil {
28412			return err
28413		}
28414		if x.NextPageToken == "" {
28415			return nil
28416		}
28417		c.PageToken(x.NextPageToken)
28418	}
28419}
28420
28421// method id "displayvideo.advertisers.negativeKeywordLists.patch":
28422
28423type AdvertisersNegativeKeywordListsPatchCall struct {
28424	s                     *Service
28425	advertiserId          int64
28426	negativeKeywordListId int64
28427	negativekeywordlist   *NegativeKeywordList
28428	urlParams_            gensupport.URLParams
28429	ctx_                  context.Context
28430	header_               http.Header
28431}
28432
28433// Patch: Updates a negative keyword list. Returns the updated negative
28434// keyword list if successful.
28435//
28436// - advertiserId: The ID of the DV360 advertiser to which the negative
28437//   keyword list belongs.
28438// - negativeKeywordListId: Output only. The unique ID of the negative
28439//   keyword list. Assigned by the system.
28440func (r *AdvertisersNegativeKeywordListsService) Patch(advertiserId int64, negativeKeywordListId int64, negativekeywordlist *NegativeKeywordList) *AdvertisersNegativeKeywordListsPatchCall {
28441	c := &AdvertisersNegativeKeywordListsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28442	c.advertiserId = advertiserId
28443	c.negativeKeywordListId = negativeKeywordListId
28444	c.negativekeywordlist = negativekeywordlist
28445	return c
28446}
28447
28448// UpdateMask sets the optional parameter "updateMask": Required. The
28449// mask to control which fields to update.
28450func (c *AdvertisersNegativeKeywordListsPatchCall) UpdateMask(updateMask string) *AdvertisersNegativeKeywordListsPatchCall {
28451	c.urlParams_.Set("updateMask", updateMask)
28452	return c
28453}
28454
28455// Fields allows partial responses to be retrieved. See
28456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28457// for more information.
28458func (c *AdvertisersNegativeKeywordListsPatchCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsPatchCall {
28459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28460	return c
28461}
28462
28463// Context sets the context to be used in this call's Do method. Any
28464// pending HTTP request will be aborted if the provided context is
28465// canceled.
28466func (c *AdvertisersNegativeKeywordListsPatchCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsPatchCall {
28467	c.ctx_ = ctx
28468	return c
28469}
28470
28471// Header returns an http.Header that can be modified by the caller to
28472// add HTTP headers to the request.
28473func (c *AdvertisersNegativeKeywordListsPatchCall) Header() http.Header {
28474	if c.header_ == nil {
28475		c.header_ = make(http.Header)
28476	}
28477	return c.header_
28478}
28479
28480func (c *AdvertisersNegativeKeywordListsPatchCall) doRequest(alt string) (*http.Response, error) {
28481	reqHeaders := make(http.Header)
28482	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
28483	for k, v := range c.header_ {
28484		reqHeaders[k] = v
28485	}
28486	reqHeaders.Set("User-Agent", c.s.userAgent())
28487	var body io.Reader = nil
28488	body, err := googleapi.WithoutDataWrapper.JSONReader(c.negativekeywordlist)
28489	if err != nil {
28490		return nil, err
28491	}
28492	reqHeaders.Set("Content-Type", "application/json")
28493	c.urlParams_.Set("alt", alt)
28494	c.urlParams_.Set("prettyPrint", "false")
28495	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/negativeKeywordLists/{negativeKeywordListId}")
28496	urls += "?" + c.urlParams_.Encode()
28497	req, err := http.NewRequest("PATCH", urls, body)
28498	if err != nil {
28499		return nil, err
28500	}
28501	req.Header = reqHeaders
28502	googleapi.Expand(req.URL, map[string]string{
28503		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
28504		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
28505	})
28506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28507}
28508
28509// Do executes the "displayvideo.advertisers.negativeKeywordLists.patch" call.
28510// Exactly one of *NegativeKeywordList or error will be non-nil. Any
28511// non-2xx status code is an error. Response headers are in either
28512// *NegativeKeywordList.ServerResponse.Header or (if a response was
28513// returned at all) in error.(*googleapi.Error).Header. Use
28514// googleapi.IsNotModified to check whether the returned error was
28515// because http.StatusNotModified was returned.
28516func (c *AdvertisersNegativeKeywordListsPatchCall) Do(opts ...googleapi.CallOption) (*NegativeKeywordList, error) {
28517	gensupport.SetOptions(c.urlParams_, opts...)
28518	res, err := c.doRequest("json")
28519	if res != nil && res.StatusCode == http.StatusNotModified {
28520		if res.Body != nil {
28521			res.Body.Close()
28522		}
28523		return nil, &googleapi.Error{
28524			Code:   res.StatusCode,
28525			Header: res.Header,
28526		}
28527	}
28528	if err != nil {
28529		return nil, err
28530	}
28531	defer googleapi.CloseBody(res)
28532	if err := googleapi.CheckResponse(res); err != nil {
28533		return nil, err
28534	}
28535	ret := &NegativeKeywordList{
28536		ServerResponse: googleapi.ServerResponse{
28537			Header:         res.Header,
28538			HTTPStatusCode: res.StatusCode,
28539		},
28540	}
28541	target := &ret
28542	if err := gensupport.DecodeResponse(target, res); err != nil {
28543		return nil, err
28544	}
28545	return ret, nil
28546	// {
28547	//   "description": "Updates a negative keyword list. Returns the updated negative keyword list if successful.",
28548	//   "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListId}",
28549	//   "httpMethod": "PATCH",
28550	//   "id": "displayvideo.advertisers.negativeKeywordLists.patch",
28551	//   "parameterOrder": [
28552	//     "advertiserId",
28553	//     "negativeKeywordListId"
28554	//   ],
28555	//   "parameters": {
28556	//     "advertiserId": {
28557	//       "description": "Required. The ID of the DV360 advertiser to which the negative keyword list belongs.",
28558	//       "format": "int64",
28559	//       "location": "path",
28560	//       "pattern": "^[^/]+$",
28561	//       "required": true,
28562	//       "type": "string"
28563	//     },
28564	//     "negativeKeywordListId": {
28565	//       "description": "Output only. The unique ID of the negative keyword list. Assigned by the system.",
28566	//       "format": "int64",
28567	//       "location": "path",
28568	//       "required": true,
28569	//       "type": "string"
28570	//     },
28571	//     "updateMask": {
28572	//       "description": "Required. The mask to control which fields to update.",
28573	//       "format": "google-fieldmask",
28574	//       "location": "query",
28575	//       "type": "string"
28576	//     }
28577	//   },
28578	//   "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{negativeKeywordListId}",
28579	//   "request": {
28580	//     "$ref": "NegativeKeywordList"
28581	//   },
28582	//   "response": {
28583	//     "$ref": "NegativeKeywordList"
28584	//   },
28585	//   "scopes": [
28586	//     "https://www.googleapis.com/auth/display-video"
28587	//   ]
28588	// }
28589
28590}
28591
28592// method id "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.bulkEdit":
28593
28594type AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall struct {
28595	s                               *Service
28596	advertiserId                    int64
28597	negativeKeywordListId           int64
28598	bulkeditnegativekeywordsrequest *BulkEditNegativeKeywordsRequest
28599	urlParams_                      gensupport.URLParams
28600	ctx_                            context.Context
28601	header_                         http.Header
28602}
28603
28604// BulkEdit: Bulk edits negative keywords in a single negative keyword
28605// list. The operation will delete the negative keywords provided in
28606// BulkEditNegativeKeywordsRequest.deleted_negative_keywords and then
28607// create the negative keywords provided in
28608// BulkEditNegativeKeywordsRequest.created_negative_keywords. This
28609// operation is guaranteed to be atomic and will never result in a
28610// partial success or partial failure.
28611//
28612// - advertiserId: The ID of the DV360 advertiser to which the parent
28613//   negative keyword list belongs.
28614// - negativeKeywordListId: The ID of the parent negative keyword list
28615//   to which the negative keywords belong.
28616func (r *AdvertisersNegativeKeywordListsNegativeKeywordsService) BulkEdit(advertiserId int64, negativeKeywordListId int64, bulkeditnegativekeywordsrequest *BulkEditNegativeKeywordsRequest) *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall {
28617	c := &AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28618	c.advertiserId = advertiserId
28619	c.negativeKeywordListId = negativeKeywordListId
28620	c.bulkeditnegativekeywordsrequest = bulkeditnegativekeywordsrequest
28621	return c
28622}
28623
28624// Fields allows partial responses to be retrieved. See
28625// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28626// for more information.
28627func (c *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall {
28628	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28629	return c
28630}
28631
28632// Context sets the context to be used in this call's Do method. Any
28633// pending HTTP request will be aborted if the provided context is
28634// canceled.
28635func (c *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall {
28636	c.ctx_ = ctx
28637	return c
28638}
28639
28640// Header returns an http.Header that can be modified by the caller to
28641// add HTTP headers to the request.
28642func (c *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall) Header() http.Header {
28643	if c.header_ == nil {
28644		c.header_ = make(http.Header)
28645	}
28646	return c.header_
28647}
28648
28649func (c *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall) doRequest(alt string) (*http.Response, error) {
28650	reqHeaders := make(http.Header)
28651	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
28652	for k, v := range c.header_ {
28653		reqHeaders[k] = v
28654	}
28655	reqHeaders.Set("User-Agent", c.s.userAgent())
28656	var body io.Reader = nil
28657	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditnegativekeywordsrequest)
28658	if err != nil {
28659		return nil, err
28660	}
28661	reqHeaders.Set("Content-Type", "application/json")
28662	c.urlParams_.Set("alt", alt)
28663	c.urlParams_.Set("prettyPrint", "false")
28664	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:bulkEdit")
28665	urls += "?" + c.urlParams_.Encode()
28666	req, err := http.NewRequest("POST", urls, body)
28667	if err != nil {
28668		return nil, err
28669	}
28670	req.Header = reqHeaders
28671	googleapi.Expand(req.URL, map[string]string{
28672		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
28673		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
28674	})
28675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28676}
28677
28678// Do executes the "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.bulkEdit" call.
28679// Exactly one of *BulkEditNegativeKeywordsResponse or error will be
28680// non-nil. Any non-2xx status code is an error. Response headers are in
28681// either *BulkEditNegativeKeywordsResponse.ServerResponse.Header or (if
28682// a response was returned at all) in error.(*googleapi.Error).Header.
28683// Use googleapi.IsNotModified to check whether the returned error was
28684// because http.StatusNotModified was returned.
28685func (c *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall) Do(opts ...googleapi.CallOption) (*BulkEditNegativeKeywordsResponse, error) {
28686	gensupport.SetOptions(c.urlParams_, opts...)
28687	res, err := c.doRequest("json")
28688	if res != nil && res.StatusCode == http.StatusNotModified {
28689		if res.Body != nil {
28690			res.Body.Close()
28691		}
28692		return nil, &googleapi.Error{
28693			Code:   res.StatusCode,
28694			Header: res.Header,
28695		}
28696	}
28697	if err != nil {
28698		return nil, err
28699	}
28700	defer googleapi.CloseBody(res)
28701	if err := googleapi.CheckResponse(res); err != nil {
28702		return nil, err
28703	}
28704	ret := &BulkEditNegativeKeywordsResponse{
28705		ServerResponse: googleapi.ServerResponse{
28706			Header:         res.Header,
28707			HTTPStatusCode: res.StatusCode,
28708		},
28709	}
28710	target := &ret
28711	if err := gensupport.DecodeResponse(target, res); err != nil {
28712		return nil, err
28713	}
28714	return ret, nil
28715	// {
28716	//   "description": "Bulk edits negative keywords in a single negative keyword list. The operation will delete the negative keywords provided in BulkEditNegativeKeywordsRequest.deleted_negative_keywords and then create the negative keywords provided in BulkEditNegativeKeywordsRequest.created_negative_keywords. This operation is guaranteed to be atomic and will never result in a partial success or partial failure.",
28717	//   "flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords:bulkEdit",
28718	//   "httpMethod": "POST",
28719	//   "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.bulkEdit",
28720	//   "parameterOrder": [
28721	//     "advertiserId",
28722	//     "negativeKeywordListId"
28723	//   ],
28724	//   "parameters": {
28725	//     "advertiserId": {
28726	//       "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.",
28727	//       "format": "int64",
28728	//       "location": "path",
28729	//       "required": true,
28730	//       "type": "string"
28731	//     },
28732	//     "negativeKeywordListId": {
28733	//       "description": "Required. The ID of the parent negative keyword list to which the negative keywords belong.",
28734	//       "format": "int64",
28735	//       "location": "path",
28736	//       "pattern": "^[^/]+$",
28737	//       "required": true,
28738	//       "type": "string"
28739	//     }
28740	//   },
28741	//   "path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:bulkEdit",
28742	//   "request": {
28743	//     "$ref": "BulkEditNegativeKeywordsRequest"
28744	//   },
28745	//   "response": {
28746	//     "$ref": "BulkEditNegativeKeywordsResponse"
28747	//   },
28748	//   "scopes": [
28749	//     "https://www.googleapis.com/auth/display-video"
28750	//   ]
28751	// }
28752
28753}
28754
28755// method id "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.create":
28756
28757type AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall struct {
28758	s                     *Service
28759	advertiserId          int64
28760	negativeKeywordListId int64
28761	negativekeyword       *NegativeKeyword
28762	urlParams_            gensupport.URLParams
28763	ctx_                  context.Context
28764	header_               http.Header
28765}
28766
28767// Create: Creates a negative keyword in a negative keyword list.
28768//
28769// - advertiserId: The ID of the DV360 advertiser to which the parent
28770//   negative keyword list belongs.
28771// - negativeKeywordListId: The ID of the parent negative keyword list
28772//   in which the negative keyword will be created.
28773func (r *AdvertisersNegativeKeywordListsNegativeKeywordsService) Create(advertiserId int64, negativeKeywordListId int64, negativekeyword *NegativeKeyword) *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall {
28774	c := &AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28775	c.advertiserId = advertiserId
28776	c.negativeKeywordListId = negativeKeywordListId
28777	c.negativekeyword = negativekeyword
28778	return c
28779}
28780
28781// Fields allows partial responses to be retrieved. See
28782// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28783// for more information.
28784func (c *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall {
28785	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28786	return c
28787}
28788
28789// Context sets the context to be used in this call's Do method. Any
28790// pending HTTP request will be aborted if the provided context is
28791// canceled.
28792func (c *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall {
28793	c.ctx_ = ctx
28794	return c
28795}
28796
28797// Header returns an http.Header that can be modified by the caller to
28798// add HTTP headers to the request.
28799func (c *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall) Header() http.Header {
28800	if c.header_ == nil {
28801		c.header_ = make(http.Header)
28802	}
28803	return c.header_
28804}
28805
28806func (c *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall) doRequest(alt string) (*http.Response, error) {
28807	reqHeaders := make(http.Header)
28808	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
28809	for k, v := range c.header_ {
28810		reqHeaders[k] = v
28811	}
28812	reqHeaders.Set("User-Agent", c.s.userAgent())
28813	var body io.Reader = nil
28814	body, err := googleapi.WithoutDataWrapper.JSONReader(c.negativekeyword)
28815	if err != nil {
28816		return nil, err
28817	}
28818	reqHeaders.Set("Content-Type", "application/json")
28819	c.urlParams_.Set("alt", alt)
28820	c.urlParams_.Set("prettyPrint", "false")
28821	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords")
28822	urls += "?" + c.urlParams_.Encode()
28823	req, err := http.NewRequest("POST", urls, body)
28824	if err != nil {
28825		return nil, err
28826	}
28827	req.Header = reqHeaders
28828	googleapi.Expand(req.URL, map[string]string{
28829		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
28830		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
28831	})
28832	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28833}
28834
28835// Do executes the "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.create" call.
28836// Exactly one of *NegativeKeyword or error will be non-nil. Any non-2xx
28837// status code is an error. Response headers are in either
28838// *NegativeKeyword.ServerResponse.Header or (if a response was returned
28839// at all) in error.(*googleapi.Error).Header. Use
28840// googleapi.IsNotModified to check whether the returned error was
28841// because http.StatusNotModified was returned.
28842func (c *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall) Do(opts ...googleapi.CallOption) (*NegativeKeyword, error) {
28843	gensupport.SetOptions(c.urlParams_, opts...)
28844	res, err := c.doRequest("json")
28845	if res != nil && res.StatusCode == http.StatusNotModified {
28846		if res.Body != nil {
28847			res.Body.Close()
28848		}
28849		return nil, &googleapi.Error{
28850			Code:   res.StatusCode,
28851			Header: res.Header,
28852		}
28853	}
28854	if err != nil {
28855		return nil, err
28856	}
28857	defer googleapi.CloseBody(res)
28858	if err := googleapi.CheckResponse(res); err != nil {
28859		return nil, err
28860	}
28861	ret := &NegativeKeyword{
28862		ServerResponse: googleapi.ServerResponse{
28863			Header:         res.Header,
28864			HTTPStatusCode: res.StatusCode,
28865		},
28866	}
28867	target := &ret
28868	if err := gensupport.DecodeResponse(target, res); err != nil {
28869		return nil, err
28870	}
28871	return ret, nil
28872	// {
28873	//   "description": "Creates a negative keyword in a negative keyword list.",
28874	//   "flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords",
28875	//   "httpMethod": "POST",
28876	//   "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.create",
28877	//   "parameterOrder": [
28878	//     "advertiserId",
28879	//     "negativeKeywordListId"
28880	//   ],
28881	//   "parameters": {
28882	//     "advertiserId": {
28883	//       "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.",
28884	//       "format": "int64",
28885	//       "location": "path",
28886	//       "required": true,
28887	//       "type": "string"
28888	//     },
28889	//     "negativeKeywordListId": {
28890	//       "description": "Required. The ID of the parent negative keyword list in which the negative keyword will be created.",
28891	//       "format": "int64",
28892	//       "location": "path",
28893	//       "pattern": "^[^/]+$",
28894	//       "required": true,
28895	//       "type": "string"
28896	//     }
28897	//   },
28898	//   "path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords",
28899	//   "request": {
28900	//     "$ref": "NegativeKeyword"
28901	//   },
28902	//   "response": {
28903	//     "$ref": "NegativeKeyword"
28904	//   },
28905	//   "scopes": [
28906	//     "https://www.googleapis.com/auth/display-video"
28907	//   ]
28908	// }
28909
28910}
28911
28912// method id "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.delete":
28913
28914type AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall struct {
28915	s                     *Service
28916	advertiserId          int64
28917	negativeKeywordListId int64
28918	keywordValue          string
28919	urlParams_            gensupport.URLParams
28920	ctx_                  context.Context
28921	header_               http.Header
28922}
28923
28924// Delete: Deletes a negative keyword from a negative keyword list.
28925//
28926// - advertiserId: The ID of the DV360 advertiser to which the parent
28927//   negative keyword list belongs.
28928// - keywordValue: The keyword value of the negative keyword to delete.
28929// - negativeKeywordListId: The ID of the parent negative keyword list
28930//   to which the negative keyword belongs.
28931func (r *AdvertisersNegativeKeywordListsNegativeKeywordsService) Delete(advertiserId int64, negativeKeywordListId int64, keywordValue string) *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall {
28932	c := &AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28933	c.advertiserId = advertiserId
28934	c.negativeKeywordListId = negativeKeywordListId
28935	c.keywordValue = keywordValue
28936	return c
28937}
28938
28939// Fields allows partial responses to be retrieved. See
28940// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28941// for more information.
28942func (c *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall {
28943	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28944	return c
28945}
28946
28947// Context sets the context to be used in this call's Do method. Any
28948// pending HTTP request will be aborted if the provided context is
28949// canceled.
28950func (c *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall {
28951	c.ctx_ = ctx
28952	return c
28953}
28954
28955// Header returns an http.Header that can be modified by the caller to
28956// add HTTP headers to the request.
28957func (c *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall) Header() http.Header {
28958	if c.header_ == nil {
28959		c.header_ = make(http.Header)
28960	}
28961	return c.header_
28962}
28963
28964func (c *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall) doRequest(alt string) (*http.Response, error) {
28965	reqHeaders := make(http.Header)
28966	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
28967	for k, v := range c.header_ {
28968		reqHeaders[k] = v
28969	}
28970	reqHeaders.Set("User-Agent", c.s.userAgent())
28971	var body io.Reader = nil
28972	c.urlParams_.Set("alt", alt)
28973	c.urlParams_.Set("prettyPrint", "false")
28974	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords/{+keywordValue}")
28975	urls += "?" + c.urlParams_.Encode()
28976	req, err := http.NewRequest("DELETE", urls, body)
28977	if err != nil {
28978		return nil, err
28979	}
28980	req.Header = reqHeaders
28981	googleapi.Expand(req.URL, map[string]string{
28982		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
28983		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
28984		"keywordValue":          c.keywordValue,
28985	})
28986	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28987}
28988
28989// Do executes the "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.delete" call.
28990// Exactly one of *Empty or error will be non-nil. Any non-2xx status
28991// code is an error. Response headers are in either
28992// *Empty.ServerResponse.Header or (if a response was returned at all)
28993// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
28994// check whether the returned error was because http.StatusNotModified
28995// was returned.
28996func (c *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
28997	gensupport.SetOptions(c.urlParams_, opts...)
28998	res, err := c.doRequest("json")
28999	if res != nil && res.StatusCode == http.StatusNotModified {
29000		if res.Body != nil {
29001			res.Body.Close()
29002		}
29003		return nil, &googleapi.Error{
29004			Code:   res.StatusCode,
29005			Header: res.Header,
29006		}
29007	}
29008	if err != nil {
29009		return nil, err
29010	}
29011	defer googleapi.CloseBody(res)
29012	if err := googleapi.CheckResponse(res); err != nil {
29013		return nil, err
29014	}
29015	ret := &Empty{
29016		ServerResponse: googleapi.ServerResponse{
29017			Header:         res.Header,
29018			HTTPStatusCode: res.StatusCode,
29019		},
29020	}
29021	target := &ret
29022	if err := gensupport.DecodeResponse(target, res); err != nil {
29023		return nil, err
29024	}
29025	return ret, nil
29026	// {
29027	//   "description": "Deletes a negative keyword from a negative keyword list.",
29028	//   "flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords/{negativeKeywordsId}",
29029	//   "httpMethod": "DELETE",
29030	//   "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.delete",
29031	//   "parameterOrder": [
29032	//     "advertiserId",
29033	//     "negativeKeywordListId",
29034	//     "keywordValue"
29035	//   ],
29036	//   "parameters": {
29037	//     "advertiserId": {
29038	//       "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.",
29039	//       "format": "int64",
29040	//       "location": "path",
29041	//       "required": true,
29042	//       "type": "string"
29043	//     },
29044	//     "keywordValue": {
29045	//       "description": "Required. The keyword value of the negative keyword to delete.",
29046	//       "location": "path",
29047	//       "pattern": "^[^/]+$",
29048	//       "required": true,
29049	//       "type": "string"
29050	//     },
29051	//     "negativeKeywordListId": {
29052	//       "description": "Required. The ID of the parent negative keyword list to which the negative keyword belongs.",
29053	//       "format": "int64",
29054	//       "location": "path",
29055	//       "pattern": "^[^/]+$",
29056	//       "required": true,
29057	//       "type": "string"
29058	//     }
29059	//   },
29060	//   "path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords/{+keywordValue}",
29061	//   "response": {
29062	//     "$ref": "Empty"
29063	//   },
29064	//   "scopes": [
29065	//     "https://www.googleapis.com/auth/display-video"
29066	//   ]
29067	// }
29068
29069}
29070
29071// method id "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.list":
29072
29073type AdvertisersNegativeKeywordListsNegativeKeywordsListCall struct {
29074	s                     *Service
29075	advertiserId          int64
29076	negativeKeywordListId int64
29077	urlParams_            gensupport.URLParams
29078	ifNoneMatch_          string
29079	ctx_                  context.Context
29080	header_               http.Header
29081}
29082
29083// List: Lists negative keywords in a negative keyword list.
29084//
29085// - advertiserId: The ID of the DV360 advertiser to which the parent
29086//   negative keyword list belongs.
29087// - negativeKeywordListId: The ID of the parent negative keyword list
29088//   to which the requested negative keywords belong.
29089func (r *AdvertisersNegativeKeywordListsNegativeKeywordsService) List(advertiserId int64, negativeKeywordListId int64) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
29090	c := &AdvertisersNegativeKeywordListsNegativeKeywordsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29091	c.advertiserId = advertiserId
29092	c.negativeKeywordListId = negativeKeywordListId
29093	return c
29094}
29095
29096// Filter sets the optional parameter "filter": Allows filtering by
29097// negative keyword fields. Supported syntax: * Filter expressions for
29098// negative keyword currently can only contain at most one *
29099// restriction. * A restriction has the form of `{field} {operator}
29100// {value}`. * The operator must be `CONTAINS (:)`. * Supported fields:
29101// - `keywordValue` Examples: * All negative keywords for which the
29102// keyword value contains "google": `keywordValue : "google"
29103func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) Filter(filter string) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
29104	c.urlParams_.Set("filter", filter)
29105	return c
29106}
29107
29108// OrderBy sets the optional parameter "orderBy": Field by which to sort
29109// the list. Acceptable values are: * `keywordValue` (default) The
29110// default sorting order is ascending. To specify descending order for a
29111// field, a suffix " desc" should be added to the field name. Example:
29112// `keywordValue desc`.
29113func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) OrderBy(orderBy string) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
29114	c.urlParams_.Set("orderBy", orderBy)
29115	return c
29116}
29117
29118// PageSize sets the optional parameter "pageSize": Requested page size.
29119// Must be between `1` and `1000`. If unspecified will default to `100`.
29120// Returns error code `INVALID_ARGUMENT` if an invalid value is
29121// specified.
29122func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) PageSize(pageSize int64) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
29123	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
29124	return c
29125}
29126
29127// PageToken sets the optional parameter "pageToken": A token
29128// identifying a page of results the server should return. Typically,
29129// this is the value of next_page_token returned from the previous call
29130// to `ListNegativeKeywords` method. If not specified, the first page of
29131// results will be returned.
29132func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) PageToken(pageToken string) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
29133	c.urlParams_.Set("pageToken", pageToken)
29134	return c
29135}
29136
29137// Fields allows partial responses to be retrieved. See
29138// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29139// for more information.
29140func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
29141	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29142	return c
29143}
29144
29145// IfNoneMatch sets the optional parameter which makes the operation
29146// fail if the object's ETag matches the given value. This is useful for
29147// getting updates only after the object has changed since the last
29148// request. Use googleapi.IsNotModified to check whether the response
29149// error from Do is the result of In-None-Match.
29150func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) IfNoneMatch(entityTag string) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
29151	c.ifNoneMatch_ = entityTag
29152	return c
29153}
29154
29155// Context sets the context to be used in this call's Do method. Any
29156// pending HTTP request will be aborted if the provided context is
29157// canceled.
29158func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
29159	c.ctx_ = ctx
29160	return c
29161}
29162
29163// Header returns an http.Header that can be modified by the caller to
29164// add HTTP headers to the request.
29165func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) Header() http.Header {
29166	if c.header_ == nil {
29167		c.header_ = make(http.Header)
29168	}
29169	return c.header_
29170}
29171
29172func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) doRequest(alt string) (*http.Response, error) {
29173	reqHeaders := make(http.Header)
29174	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
29175	for k, v := range c.header_ {
29176		reqHeaders[k] = v
29177	}
29178	reqHeaders.Set("User-Agent", c.s.userAgent())
29179	if c.ifNoneMatch_ != "" {
29180		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
29181	}
29182	var body io.Reader = nil
29183	c.urlParams_.Set("alt", alt)
29184	c.urlParams_.Set("prettyPrint", "false")
29185	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords")
29186	urls += "?" + c.urlParams_.Encode()
29187	req, err := http.NewRequest("GET", urls, body)
29188	if err != nil {
29189		return nil, err
29190	}
29191	req.Header = reqHeaders
29192	googleapi.Expand(req.URL, map[string]string{
29193		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
29194		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
29195	})
29196	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29197}
29198
29199// Do executes the "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.list" call.
29200// Exactly one of *ListNegativeKeywordsResponse or error will be
29201// non-nil. Any non-2xx status code is an error. Response headers are in
29202// either *ListNegativeKeywordsResponse.ServerResponse.Header or (if a
29203// response was returned at all) in error.(*googleapi.Error).Header. Use
29204// googleapi.IsNotModified to check whether the returned error was
29205// because http.StatusNotModified was returned.
29206func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) Do(opts ...googleapi.CallOption) (*ListNegativeKeywordsResponse, error) {
29207	gensupport.SetOptions(c.urlParams_, opts...)
29208	res, err := c.doRequest("json")
29209	if res != nil && res.StatusCode == http.StatusNotModified {
29210		if res.Body != nil {
29211			res.Body.Close()
29212		}
29213		return nil, &googleapi.Error{
29214			Code:   res.StatusCode,
29215			Header: res.Header,
29216		}
29217	}
29218	if err != nil {
29219		return nil, err
29220	}
29221	defer googleapi.CloseBody(res)
29222	if err := googleapi.CheckResponse(res); err != nil {
29223		return nil, err
29224	}
29225	ret := &ListNegativeKeywordsResponse{
29226		ServerResponse: googleapi.ServerResponse{
29227			Header:         res.Header,
29228			HTTPStatusCode: res.StatusCode,
29229		},
29230	}
29231	target := &ret
29232	if err := gensupport.DecodeResponse(target, res); err != nil {
29233		return nil, err
29234	}
29235	return ret, nil
29236	// {
29237	//   "description": "Lists negative keywords in a negative keyword list.",
29238	//   "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords",
29239	//   "httpMethod": "GET",
29240	//   "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.list",
29241	//   "parameterOrder": [
29242	//     "advertiserId",
29243	//     "negativeKeywordListId"
29244	//   ],
29245	//   "parameters": {
29246	//     "advertiserId": {
29247	//       "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.",
29248	//       "format": "int64",
29249	//       "location": "path",
29250	//       "pattern": "^[^/]+$",
29251	//       "required": true,
29252	//       "type": "string"
29253	//     },
29254	//     "filter": {
29255	//       "description": "Allows filtering by negative keyword fields. Supported syntax: * Filter expressions for negative keyword currently can only contain at most one * restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * Supported fields: - `keywordValue` Examples: * All negative keywords for which the keyword value contains \"google\": `keywordValue : \"google\"`",
29256	//       "location": "query",
29257	//       "type": "string"
29258	//     },
29259	//     "negativeKeywordListId": {
29260	//       "description": "Required. The ID of the parent negative keyword list to which the requested negative keywords belong.",
29261	//       "format": "int64",
29262	//       "location": "path",
29263	//       "pattern": "^[^/]+$",
29264	//       "required": true,
29265	//       "type": "string"
29266	//     },
29267	//     "orderBy": {
29268	//       "description": "Field by which to sort the list. Acceptable values are: * `keywordValue` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `keywordValue desc`.",
29269	//       "location": "query",
29270	//       "type": "string"
29271	//     },
29272	//     "pageSize": {
29273	//       "description": "Requested page size. Must be between `1` and `1000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
29274	//       "format": "int32",
29275	//       "location": "query",
29276	//       "type": "integer"
29277	//     },
29278	//     "pageToken": {
29279	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListNegativeKeywords` method. If not specified, the first page of results will be returned.",
29280	//       "location": "query",
29281	//       "type": "string"
29282	//     }
29283	//   },
29284	//   "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords",
29285	//   "response": {
29286	//     "$ref": "ListNegativeKeywordsResponse"
29287	//   },
29288	//   "scopes": [
29289	//     "https://www.googleapis.com/auth/display-video"
29290	//   ]
29291	// }
29292
29293}
29294
29295// Pages invokes f for each page of results.
29296// A non-nil error returned from f will halt the iteration.
29297// The provided context supersedes any context provided to the Context method.
29298func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) Pages(ctx context.Context, f func(*ListNegativeKeywordsResponse) error) error {
29299	c.ctx_ = ctx
29300	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
29301	for {
29302		x, err := c.Do()
29303		if err != nil {
29304			return err
29305		}
29306		if err := f(x); err != nil {
29307			return err
29308		}
29309		if x.NextPageToken == "" {
29310			return nil
29311		}
29312		c.PageToken(x.NextPageToken)
29313	}
29314}
29315
29316// method id "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.replace":
29317
29318type AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall struct {
29319	s                              *Service
29320	advertiserId                   int64
29321	negativeKeywordListId          int64
29322	replacenegativekeywordsrequest *ReplaceNegativeKeywordsRequest
29323	urlParams_                     gensupport.URLParams
29324	ctx_                           context.Context
29325	header_                        http.Header
29326}
29327
29328// Replace: Replaces all negative keywords in a single negative keyword
29329// list. The operation will replace the keywords in a negative keyword
29330// list with keywords provided in
29331// ReplaceNegativeKeywordsRequest.new_negative_keywords.
29332//
29333// - advertiserId: The ID of the DV360 advertiser to which the parent
29334//   negative keyword list belongs.
29335// - negativeKeywordListId: The ID of the parent negative keyword list
29336//   to which the negative keywords belong.
29337func (r *AdvertisersNegativeKeywordListsNegativeKeywordsService) Replace(advertiserId int64, negativeKeywordListId int64, replacenegativekeywordsrequest *ReplaceNegativeKeywordsRequest) *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall {
29338	c := &AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29339	c.advertiserId = advertiserId
29340	c.negativeKeywordListId = negativeKeywordListId
29341	c.replacenegativekeywordsrequest = replacenegativekeywordsrequest
29342	return c
29343}
29344
29345// Fields allows partial responses to be retrieved. See
29346// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29347// for more information.
29348func (c *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall {
29349	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29350	return c
29351}
29352
29353// Context sets the context to be used in this call's Do method. Any
29354// pending HTTP request will be aborted if the provided context is
29355// canceled.
29356func (c *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall {
29357	c.ctx_ = ctx
29358	return c
29359}
29360
29361// Header returns an http.Header that can be modified by the caller to
29362// add HTTP headers to the request.
29363func (c *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall) Header() http.Header {
29364	if c.header_ == nil {
29365		c.header_ = make(http.Header)
29366	}
29367	return c.header_
29368}
29369
29370func (c *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall) doRequest(alt string) (*http.Response, error) {
29371	reqHeaders := make(http.Header)
29372	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
29373	for k, v := range c.header_ {
29374		reqHeaders[k] = v
29375	}
29376	reqHeaders.Set("User-Agent", c.s.userAgent())
29377	var body io.Reader = nil
29378	body, err := googleapi.WithoutDataWrapper.JSONReader(c.replacenegativekeywordsrequest)
29379	if err != nil {
29380		return nil, err
29381	}
29382	reqHeaders.Set("Content-Type", "application/json")
29383	c.urlParams_.Set("alt", alt)
29384	c.urlParams_.Set("prettyPrint", "false")
29385	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:replace")
29386	urls += "?" + c.urlParams_.Encode()
29387	req, err := http.NewRequest("POST", urls, body)
29388	if err != nil {
29389		return nil, err
29390	}
29391	req.Header = reqHeaders
29392	googleapi.Expand(req.URL, map[string]string{
29393		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
29394		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
29395	})
29396	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29397}
29398
29399// Do executes the "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.replace" call.
29400// Exactly one of *ReplaceNegativeKeywordsResponse or error will be
29401// non-nil. Any non-2xx status code is an error. Response headers are in
29402// either *ReplaceNegativeKeywordsResponse.ServerResponse.Header or (if
29403// a response was returned at all) in error.(*googleapi.Error).Header.
29404// Use googleapi.IsNotModified to check whether the returned error was
29405// because http.StatusNotModified was returned.
29406func (c *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall) Do(opts ...googleapi.CallOption) (*ReplaceNegativeKeywordsResponse, error) {
29407	gensupport.SetOptions(c.urlParams_, opts...)
29408	res, err := c.doRequest("json")
29409	if res != nil && res.StatusCode == http.StatusNotModified {
29410		if res.Body != nil {
29411			res.Body.Close()
29412		}
29413		return nil, &googleapi.Error{
29414			Code:   res.StatusCode,
29415			Header: res.Header,
29416		}
29417	}
29418	if err != nil {
29419		return nil, err
29420	}
29421	defer googleapi.CloseBody(res)
29422	if err := googleapi.CheckResponse(res); err != nil {
29423		return nil, err
29424	}
29425	ret := &ReplaceNegativeKeywordsResponse{
29426		ServerResponse: googleapi.ServerResponse{
29427			Header:         res.Header,
29428			HTTPStatusCode: res.StatusCode,
29429		},
29430	}
29431	target := &ret
29432	if err := gensupport.DecodeResponse(target, res); err != nil {
29433		return nil, err
29434	}
29435	return ret, nil
29436	// {
29437	//   "description": "Replaces all negative keywords in a single negative keyword list. The operation will replace the keywords in a negative keyword list with keywords provided in ReplaceNegativeKeywordsRequest.new_negative_keywords.",
29438	//   "flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords:replace",
29439	//   "httpMethod": "POST",
29440	//   "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.replace",
29441	//   "parameterOrder": [
29442	//     "advertiserId",
29443	//     "negativeKeywordListId"
29444	//   ],
29445	//   "parameters": {
29446	//     "advertiserId": {
29447	//       "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.",
29448	//       "format": "int64",
29449	//       "location": "path",
29450	//       "required": true,
29451	//       "type": "string"
29452	//     },
29453	//     "negativeKeywordListId": {
29454	//       "description": "Required. The ID of the parent negative keyword list to which the negative keywords belong.",
29455	//       "format": "int64",
29456	//       "location": "path",
29457	//       "pattern": "^[^/]+$",
29458	//       "required": true,
29459	//       "type": "string"
29460	//     }
29461	//   },
29462	//   "path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:replace",
29463	//   "request": {
29464	//     "$ref": "ReplaceNegativeKeywordsRequest"
29465	//   },
29466	//   "response": {
29467	//     "$ref": "ReplaceNegativeKeywordsResponse"
29468	//   },
29469	//   "scopes": [
29470	//     "https://www.googleapis.com/auth/display-video"
29471	//   ]
29472	// }
29473
29474}
29475
29476// method id "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.create":
29477
29478type AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall struct {
29479	s                       *Service
29480	advertiserId            int64
29481	targetingType           string
29482	assignedtargetingoption *AssignedTargetingOption
29483	urlParams_              gensupport.URLParams
29484	ctx_                    context.Context
29485	header_                 http.Header
29486}
29487
29488// Create: Assigns a targeting option to an advertiser. Returns the
29489// assigned targeting option if successful.
29490//
29491// - advertiserId: The ID of the advertiser.
29492// - targetingType: Identifies the type of this assigned targeting
29493//   option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` *
29494//   `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
29495//   `TARGETING_TYPE_OMID` *
29496//   `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
29497func (r *AdvertisersTargetingTypesAssignedTargetingOptionsService) Create(advertiserId int64, targetingType string, assignedtargetingoption *AssignedTargetingOption) *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall {
29498	c := &AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29499	c.advertiserId = advertiserId
29500	c.targetingType = targetingType
29501	c.assignedtargetingoption = assignedtargetingoption
29502	return c
29503}
29504
29505// Fields allows partial responses to be retrieved. See
29506// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29507// for more information.
29508func (c *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall) Fields(s ...googleapi.Field) *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall {
29509	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29510	return c
29511}
29512
29513// Context sets the context to be used in this call's Do method. Any
29514// pending HTTP request will be aborted if the provided context is
29515// canceled.
29516func (c *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall) Context(ctx context.Context) *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall {
29517	c.ctx_ = ctx
29518	return c
29519}
29520
29521// Header returns an http.Header that can be modified by the caller to
29522// add HTTP headers to the request.
29523func (c *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall) Header() http.Header {
29524	if c.header_ == nil {
29525		c.header_ = make(http.Header)
29526	}
29527	return c.header_
29528}
29529
29530func (c *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall) doRequest(alt string) (*http.Response, error) {
29531	reqHeaders := make(http.Header)
29532	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
29533	for k, v := range c.header_ {
29534		reqHeaders[k] = v
29535	}
29536	reqHeaders.Set("User-Agent", c.s.userAgent())
29537	var body io.Reader = nil
29538	body, err := googleapi.WithoutDataWrapper.JSONReader(c.assignedtargetingoption)
29539	if err != nil {
29540		return nil, err
29541	}
29542	reqHeaders.Set("Content-Type", "application/json")
29543	c.urlParams_.Set("alt", alt)
29544	c.urlParams_.Set("prettyPrint", "false")
29545	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
29546	urls += "?" + c.urlParams_.Encode()
29547	req, err := http.NewRequest("POST", urls, body)
29548	if err != nil {
29549		return nil, err
29550	}
29551	req.Header = reqHeaders
29552	googleapi.Expand(req.URL, map[string]string{
29553		"advertiserId":  strconv.FormatInt(c.advertiserId, 10),
29554		"targetingType": c.targetingType,
29555	})
29556	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29557}
29558
29559// Do executes the "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.create" call.
29560// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
29561// non-2xx status code is an error. Response headers are in either
29562// *AssignedTargetingOption.ServerResponse.Header or (if a response was
29563// returned at all) in error.(*googleapi.Error).Header. Use
29564// googleapi.IsNotModified to check whether the returned error was
29565// because http.StatusNotModified was returned.
29566func (c *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
29567	gensupport.SetOptions(c.urlParams_, opts...)
29568	res, err := c.doRequest("json")
29569	if res != nil && res.StatusCode == http.StatusNotModified {
29570		if res.Body != nil {
29571			res.Body.Close()
29572		}
29573		return nil, &googleapi.Error{
29574			Code:   res.StatusCode,
29575			Header: res.Header,
29576		}
29577	}
29578	if err != nil {
29579		return nil, err
29580	}
29581	defer googleapi.CloseBody(res)
29582	if err := googleapi.CheckResponse(res); err != nil {
29583		return nil, err
29584	}
29585	ret := &AssignedTargetingOption{
29586		ServerResponse: googleapi.ServerResponse{
29587			Header:         res.Header,
29588			HTTPStatusCode: res.StatusCode,
29589		},
29590	}
29591	target := &ret
29592	if err := gensupport.DecodeResponse(target, res); err != nil {
29593		return nil, err
29594	}
29595	return ret, nil
29596	// {
29597	//   "description": "Assigns a targeting option to an advertiser. Returns the assigned targeting option if successful.",
29598	//   "flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
29599	//   "httpMethod": "POST",
29600	//   "id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.create",
29601	//   "parameterOrder": [
29602	//     "advertiserId",
29603	//     "targetingType"
29604	//   ],
29605	//   "parameters": {
29606	//     "advertiserId": {
29607	//       "description": "Required. The ID of the advertiser.",
29608	//       "format": "int64",
29609	//       "location": "path",
29610	//       "pattern": "^[^/]+$",
29611	//       "required": true,
29612	//       "type": "string"
29613	//     },
29614	//     "targetingType": {
29615	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`",
29616	//       "enum": [
29617	//         "TARGETING_TYPE_UNSPECIFIED",
29618	//         "TARGETING_TYPE_CHANNEL",
29619	//         "TARGETING_TYPE_APP_CATEGORY",
29620	//         "TARGETING_TYPE_APP",
29621	//         "TARGETING_TYPE_URL",
29622	//         "TARGETING_TYPE_DAY_AND_TIME",
29623	//         "TARGETING_TYPE_AGE_RANGE",
29624	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
29625	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
29626	//         "TARGETING_TYPE_GENDER",
29627	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
29628	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
29629	//         "TARGETING_TYPE_PARENTAL_STATUS",
29630	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
29631	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
29632	//         "TARGETING_TYPE_DEVICE_TYPE",
29633	//         "TARGETING_TYPE_AUDIENCE_GROUP",
29634	//         "TARGETING_TYPE_BROWSER",
29635	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
29636	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
29637	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
29638	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
29639	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
29640	//         "TARGETING_TYPE_ENVIRONMENT",
29641	//         "TARGETING_TYPE_CARRIER_AND_ISP",
29642	//         "TARGETING_TYPE_OPERATING_SYSTEM",
29643	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
29644	//         "TARGETING_TYPE_KEYWORD",
29645	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
29646	//         "TARGETING_TYPE_VIEWABILITY",
29647	//         "TARGETING_TYPE_CATEGORY",
29648	//         "TARGETING_TYPE_INVENTORY_SOURCE",
29649	//         "TARGETING_TYPE_LANGUAGE",
29650	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
29651	//         "TARGETING_TYPE_GEO_REGION",
29652	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
29653	//         "TARGETING_TYPE_EXCHANGE",
29654	//         "TARGETING_TYPE_SUB_EXCHANGE",
29655	//         "TARGETING_TYPE_POI",
29656	//         "TARGETING_TYPE_BUSINESS_CHAIN",
29657	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
29658	//         "TARGETING_TYPE_OMID"
29659	//       ],
29660	//       "enumDescriptions": [
29661	//         "Default value when type is not specified or is unknown in this version.",
29662	//         "Target a channel (a custom group of related websites or apps).",
29663	//         "Target an app category (for example, education or puzzle games).",
29664	//         "Target a specific app (for example, Angry Birds).",
29665	//         "Target a specific url (for example, quora.com).",
29666	//         "Target ads during a chosen time period on a specific day.",
29667	//         "Target ads to a specific age range (for example, 18-24).",
29668	//         "Target ads to the specified regions on a regional location list.",
29669	//         "Target ads to the specified points of interest on a proximity location list.",
29670	//         "Target ads to a specific gender (for example, female or male).",
29671	//         "Target a specific video player size for video ads.",
29672	//         "Target user rewarded content for video ads.",
29673	//         "Target ads to a specific parental status (for example, parent or not a parent).",
29674	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
29675	//         "Target ads in a specific content outstream position.",
29676	//         "Target ads to a specific device type (for example, tablet or connected TV).",
29677	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
29678	//         "Target ads to specific web browsers (for example, Chrome).",
29679	//         "Target ads to a specific household income range (for example, top 10%).",
29680	//         "Target ads in a specific on screen position.",
29681	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
29682	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
29683	//         "Filter website content by sensitive categories (for example, adult).",
29684	//         "Target ads to a specific environment (for example, web or app).",
29685	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
29686	//         "Target ads to a specific operating system (for example, macOS).",
29687	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
29688	//         "Target ads to a specific keyword (for example, dog or retriever).",
29689	//         "Target ads to a specific negative keyword list.",
29690	//         "Target ads to a specific viewability (for example, 80% viewable).",
29691	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
29692	//         "Purchase impressions from specific deals and auction packages.",
29693	//         "Target ads to a specific language (for example, English or Japanese).",
29694	//         "Target ads to ads.txt authorized sellers.",
29695	//         "Target ads to a specific regional location (for example, a city or state).",
29696	//         "Purchase impressions from a group of deals and auction packages.",
29697	//         "Purchase impressions from specific exchanges.",
29698	//         "Purchase impressions from specific sub-exchanges.",
29699	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
29700	//         "Target ads around locations of a business chain within a specific geo region.",
29701	//         "Target ads to a specific native content position.",
29702	//         "Target ads in an Open Measurement enabled inventory."
29703	//       ],
29704	//       "location": "path",
29705	//       "pattern": "^[^/]+$",
29706	//       "required": true,
29707	//       "type": "string"
29708	//     }
29709	//   },
29710	//   "path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
29711	//   "request": {
29712	//     "$ref": "AssignedTargetingOption"
29713	//   },
29714	//   "response": {
29715	//     "$ref": "AssignedTargetingOption"
29716	//   },
29717	//   "scopes": [
29718	//     "https://www.googleapis.com/auth/display-video"
29719	//   ]
29720	// }
29721
29722}
29723
29724// method id "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.delete":
29725
29726type AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall struct {
29727	s                         *Service
29728	advertiserId              int64
29729	targetingType             string
29730	assignedTargetingOptionId string
29731	urlParams_                gensupport.URLParams
29732	ctx_                      context.Context
29733	header_                   http.Header
29734}
29735
29736// Delete: Deletes an assigned targeting option from an advertiser.
29737//
29738// - advertiserId: The ID of the advertiser.
29739// - assignedTargetingOptionId: The ID of the assigned targeting option
29740//   to delete.
29741// - targetingType: Identifies the type of this assigned targeting
29742//   option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` *
29743//   `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
29744//   `TARGETING_TYPE_OMID` *
29745//   `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
29746func (r *AdvertisersTargetingTypesAssignedTargetingOptionsService) Delete(advertiserId int64, targetingType string, assignedTargetingOptionId string) *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall {
29747	c := &AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29748	c.advertiserId = advertiserId
29749	c.targetingType = targetingType
29750	c.assignedTargetingOptionId = assignedTargetingOptionId
29751	return c
29752}
29753
29754// Fields allows partial responses to be retrieved. See
29755// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29756// for more information.
29757func (c *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall {
29758	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29759	return c
29760}
29761
29762// Context sets the context to be used in this call's Do method. Any
29763// pending HTTP request will be aborted if the provided context is
29764// canceled.
29765func (c *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall) Context(ctx context.Context) *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall {
29766	c.ctx_ = ctx
29767	return c
29768}
29769
29770// Header returns an http.Header that can be modified by the caller to
29771// add HTTP headers to the request.
29772func (c *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall) Header() http.Header {
29773	if c.header_ == nil {
29774		c.header_ = make(http.Header)
29775	}
29776	return c.header_
29777}
29778
29779func (c *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall) doRequest(alt string) (*http.Response, error) {
29780	reqHeaders := make(http.Header)
29781	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
29782	for k, v := range c.header_ {
29783		reqHeaders[k] = v
29784	}
29785	reqHeaders.Set("User-Agent", c.s.userAgent())
29786	var body io.Reader = nil
29787	c.urlParams_.Set("alt", alt)
29788	c.urlParams_.Set("prettyPrint", "false")
29789	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
29790	urls += "?" + c.urlParams_.Encode()
29791	req, err := http.NewRequest("DELETE", urls, body)
29792	if err != nil {
29793		return nil, err
29794	}
29795	req.Header = reqHeaders
29796	googleapi.Expand(req.URL, map[string]string{
29797		"advertiserId":              strconv.FormatInt(c.advertiserId, 10),
29798		"targetingType":             c.targetingType,
29799		"assignedTargetingOptionId": c.assignedTargetingOptionId,
29800	})
29801	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29802}
29803
29804// Do executes the "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.delete" call.
29805// Exactly one of *Empty or error will be non-nil. Any non-2xx status
29806// code is an error. Response headers are in either
29807// *Empty.ServerResponse.Header or (if a response was returned at all)
29808// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
29809// check whether the returned error was because http.StatusNotModified
29810// was returned.
29811func (c *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
29812	gensupport.SetOptions(c.urlParams_, opts...)
29813	res, err := c.doRequest("json")
29814	if res != nil && res.StatusCode == http.StatusNotModified {
29815		if res.Body != nil {
29816			res.Body.Close()
29817		}
29818		return nil, &googleapi.Error{
29819			Code:   res.StatusCode,
29820			Header: res.Header,
29821		}
29822	}
29823	if err != nil {
29824		return nil, err
29825	}
29826	defer googleapi.CloseBody(res)
29827	if err := googleapi.CheckResponse(res); err != nil {
29828		return nil, err
29829	}
29830	ret := &Empty{
29831		ServerResponse: googleapi.ServerResponse{
29832			Header:         res.Header,
29833			HTTPStatusCode: res.StatusCode,
29834		},
29835	}
29836	target := &ret
29837	if err := gensupport.DecodeResponse(target, res); err != nil {
29838		return nil, err
29839	}
29840	return ret, nil
29841	// {
29842	//   "description": "Deletes an assigned targeting option from an advertiser.",
29843	//   "flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
29844	//   "httpMethod": "DELETE",
29845	//   "id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.delete",
29846	//   "parameterOrder": [
29847	//     "advertiserId",
29848	//     "targetingType",
29849	//     "assignedTargetingOptionId"
29850	//   ],
29851	//   "parameters": {
29852	//     "advertiserId": {
29853	//       "description": "Required. The ID of the advertiser.",
29854	//       "format": "int64",
29855	//       "location": "path",
29856	//       "pattern": "^[^/]+$",
29857	//       "required": true,
29858	//       "type": "string"
29859	//     },
29860	//     "assignedTargetingOptionId": {
29861	//       "description": "Required. The ID of the assigned targeting option to delete.",
29862	//       "location": "path",
29863	//       "pattern": "^[^/]+$",
29864	//       "required": true,
29865	//       "type": "string"
29866	//     },
29867	//     "targetingType": {
29868	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`",
29869	//       "enum": [
29870	//         "TARGETING_TYPE_UNSPECIFIED",
29871	//         "TARGETING_TYPE_CHANNEL",
29872	//         "TARGETING_TYPE_APP_CATEGORY",
29873	//         "TARGETING_TYPE_APP",
29874	//         "TARGETING_TYPE_URL",
29875	//         "TARGETING_TYPE_DAY_AND_TIME",
29876	//         "TARGETING_TYPE_AGE_RANGE",
29877	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
29878	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
29879	//         "TARGETING_TYPE_GENDER",
29880	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
29881	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
29882	//         "TARGETING_TYPE_PARENTAL_STATUS",
29883	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
29884	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
29885	//         "TARGETING_TYPE_DEVICE_TYPE",
29886	//         "TARGETING_TYPE_AUDIENCE_GROUP",
29887	//         "TARGETING_TYPE_BROWSER",
29888	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
29889	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
29890	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
29891	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
29892	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
29893	//         "TARGETING_TYPE_ENVIRONMENT",
29894	//         "TARGETING_TYPE_CARRIER_AND_ISP",
29895	//         "TARGETING_TYPE_OPERATING_SYSTEM",
29896	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
29897	//         "TARGETING_TYPE_KEYWORD",
29898	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
29899	//         "TARGETING_TYPE_VIEWABILITY",
29900	//         "TARGETING_TYPE_CATEGORY",
29901	//         "TARGETING_TYPE_INVENTORY_SOURCE",
29902	//         "TARGETING_TYPE_LANGUAGE",
29903	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
29904	//         "TARGETING_TYPE_GEO_REGION",
29905	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
29906	//         "TARGETING_TYPE_EXCHANGE",
29907	//         "TARGETING_TYPE_SUB_EXCHANGE",
29908	//         "TARGETING_TYPE_POI",
29909	//         "TARGETING_TYPE_BUSINESS_CHAIN",
29910	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
29911	//         "TARGETING_TYPE_OMID"
29912	//       ],
29913	//       "enumDescriptions": [
29914	//         "Default value when type is not specified or is unknown in this version.",
29915	//         "Target a channel (a custom group of related websites or apps).",
29916	//         "Target an app category (for example, education or puzzle games).",
29917	//         "Target a specific app (for example, Angry Birds).",
29918	//         "Target a specific url (for example, quora.com).",
29919	//         "Target ads during a chosen time period on a specific day.",
29920	//         "Target ads to a specific age range (for example, 18-24).",
29921	//         "Target ads to the specified regions on a regional location list.",
29922	//         "Target ads to the specified points of interest on a proximity location list.",
29923	//         "Target ads to a specific gender (for example, female or male).",
29924	//         "Target a specific video player size for video ads.",
29925	//         "Target user rewarded content for video ads.",
29926	//         "Target ads to a specific parental status (for example, parent or not a parent).",
29927	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
29928	//         "Target ads in a specific content outstream position.",
29929	//         "Target ads to a specific device type (for example, tablet or connected TV).",
29930	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
29931	//         "Target ads to specific web browsers (for example, Chrome).",
29932	//         "Target ads to a specific household income range (for example, top 10%).",
29933	//         "Target ads in a specific on screen position.",
29934	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
29935	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
29936	//         "Filter website content by sensitive categories (for example, adult).",
29937	//         "Target ads to a specific environment (for example, web or app).",
29938	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
29939	//         "Target ads to a specific operating system (for example, macOS).",
29940	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
29941	//         "Target ads to a specific keyword (for example, dog or retriever).",
29942	//         "Target ads to a specific negative keyword list.",
29943	//         "Target ads to a specific viewability (for example, 80% viewable).",
29944	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
29945	//         "Purchase impressions from specific deals and auction packages.",
29946	//         "Target ads to a specific language (for example, English or Japanese).",
29947	//         "Target ads to ads.txt authorized sellers.",
29948	//         "Target ads to a specific regional location (for example, a city or state).",
29949	//         "Purchase impressions from a group of deals and auction packages.",
29950	//         "Purchase impressions from specific exchanges.",
29951	//         "Purchase impressions from specific sub-exchanges.",
29952	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
29953	//         "Target ads around locations of a business chain within a specific geo region.",
29954	//         "Target ads to a specific native content position.",
29955	//         "Target ads in an Open Measurement enabled inventory."
29956	//       ],
29957	//       "location": "path",
29958	//       "pattern": "^[^/]+$",
29959	//       "required": true,
29960	//       "type": "string"
29961	//     }
29962	//   },
29963	//   "path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
29964	//   "response": {
29965	//     "$ref": "Empty"
29966	//   },
29967	//   "scopes": [
29968	//     "https://www.googleapis.com/auth/display-video"
29969	//   ]
29970	// }
29971
29972}
29973
29974// method id "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.get":
29975
29976type AdvertisersTargetingTypesAssignedTargetingOptionsGetCall struct {
29977	s                         *Service
29978	advertiserId              int64
29979	targetingType             string
29980	assignedTargetingOptionId string
29981	urlParams_                gensupport.URLParams
29982	ifNoneMatch_              string
29983	ctx_                      context.Context
29984	header_                   http.Header
29985}
29986
29987// Get: Gets a single targeting option assigned to an advertiser.
29988//
29989// - advertiserId: The ID of the advertiser.
29990// - assignedTargetingOptionId: An identifier unique to the targeting
29991//   type in this advertiser that identifies the assigned targeting
29992//   option being requested.
29993// - targetingType: Identifies the type of this assigned targeting
29994//   option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` *
29995//   `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
29996//   `TARGETING_TYPE_OMID` *
29997//   `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
29998func (r *AdvertisersTargetingTypesAssignedTargetingOptionsService) Get(advertiserId int64, targetingType string, assignedTargetingOptionId string) *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall {
29999	c := &AdvertisersTargetingTypesAssignedTargetingOptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30000	c.advertiserId = advertiserId
30001	c.targetingType = targetingType
30002	c.assignedTargetingOptionId = assignedTargetingOptionId
30003	return c
30004}
30005
30006// Fields allows partial responses to be retrieved. See
30007// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30008// for more information.
30009func (c *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall) Fields(s ...googleapi.Field) *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall {
30010	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30011	return c
30012}
30013
30014// IfNoneMatch sets the optional parameter which makes the operation
30015// fail if the object's ETag matches the given value. This is useful for
30016// getting updates only after the object has changed since the last
30017// request. Use googleapi.IsNotModified to check whether the response
30018// error from Do is the result of In-None-Match.
30019func (c *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall) IfNoneMatch(entityTag string) *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall {
30020	c.ifNoneMatch_ = entityTag
30021	return c
30022}
30023
30024// Context sets the context to be used in this call's Do method. Any
30025// pending HTTP request will be aborted if the provided context is
30026// canceled.
30027func (c *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall) Context(ctx context.Context) *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall {
30028	c.ctx_ = ctx
30029	return c
30030}
30031
30032// Header returns an http.Header that can be modified by the caller to
30033// add HTTP headers to the request.
30034func (c *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall) Header() http.Header {
30035	if c.header_ == nil {
30036		c.header_ = make(http.Header)
30037	}
30038	return c.header_
30039}
30040
30041func (c *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall) doRequest(alt string) (*http.Response, error) {
30042	reqHeaders := make(http.Header)
30043	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
30044	for k, v := range c.header_ {
30045		reqHeaders[k] = v
30046	}
30047	reqHeaders.Set("User-Agent", c.s.userAgent())
30048	if c.ifNoneMatch_ != "" {
30049		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30050	}
30051	var body io.Reader = nil
30052	c.urlParams_.Set("alt", alt)
30053	c.urlParams_.Set("prettyPrint", "false")
30054	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
30055	urls += "?" + c.urlParams_.Encode()
30056	req, err := http.NewRequest("GET", urls, body)
30057	if err != nil {
30058		return nil, err
30059	}
30060	req.Header = reqHeaders
30061	googleapi.Expand(req.URL, map[string]string{
30062		"advertiserId":              strconv.FormatInt(c.advertiserId, 10),
30063		"targetingType":             c.targetingType,
30064		"assignedTargetingOptionId": c.assignedTargetingOptionId,
30065	})
30066	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30067}
30068
30069// Do executes the "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.get" call.
30070// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
30071// non-2xx status code is an error. Response headers are in either
30072// *AssignedTargetingOption.ServerResponse.Header or (if a response was
30073// returned at all) in error.(*googleapi.Error).Header. Use
30074// googleapi.IsNotModified to check whether the returned error was
30075// because http.StatusNotModified was returned.
30076func (c *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
30077	gensupport.SetOptions(c.urlParams_, opts...)
30078	res, err := c.doRequest("json")
30079	if res != nil && res.StatusCode == http.StatusNotModified {
30080		if res.Body != nil {
30081			res.Body.Close()
30082		}
30083		return nil, &googleapi.Error{
30084			Code:   res.StatusCode,
30085			Header: res.Header,
30086		}
30087	}
30088	if err != nil {
30089		return nil, err
30090	}
30091	defer googleapi.CloseBody(res)
30092	if err := googleapi.CheckResponse(res); err != nil {
30093		return nil, err
30094	}
30095	ret := &AssignedTargetingOption{
30096		ServerResponse: googleapi.ServerResponse{
30097			Header:         res.Header,
30098			HTTPStatusCode: res.StatusCode,
30099		},
30100	}
30101	target := &ret
30102	if err := gensupport.DecodeResponse(target, res); err != nil {
30103		return nil, err
30104	}
30105	return ret, nil
30106	// {
30107	//   "description": "Gets a single targeting option assigned to an advertiser.",
30108	//   "flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
30109	//   "httpMethod": "GET",
30110	//   "id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.get",
30111	//   "parameterOrder": [
30112	//     "advertiserId",
30113	//     "targetingType",
30114	//     "assignedTargetingOptionId"
30115	//   ],
30116	//   "parameters": {
30117	//     "advertiserId": {
30118	//       "description": "Required. The ID of the advertiser.",
30119	//       "format": "int64",
30120	//       "location": "path",
30121	//       "pattern": "^[^/]+$",
30122	//       "required": true,
30123	//       "type": "string"
30124	//     },
30125	//     "assignedTargetingOptionId": {
30126	//       "description": "Required. An identifier unique to the targeting type in this advertiser that identifies the assigned targeting option being requested.",
30127	//       "location": "path",
30128	//       "pattern": "^[^/]+$",
30129	//       "required": true,
30130	//       "type": "string"
30131	//     },
30132	//     "targetingType": {
30133	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`",
30134	//       "enum": [
30135	//         "TARGETING_TYPE_UNSPECIFIED",
30136	//         "TARGETING_TYPE_CHANNEL",
30137	//         "TARGETING_TYPE_APP_CATEGORY",
30138	//         "TARGETING_TYPE_APP",
30139	//         "TARGETING_TYPE_URL",
30140	//         "TARGETING_TYPE_DAY_AND_TIME",
30141	//         "TARGETING_TYPE_AGE_RANGE",
30142	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
30143	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
30144	//         "TARGETING_TYPE_GENDER",
30145	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
30146	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
30147	//         "TARGETING_TYPE_PARENTAL_STATUS",
30148	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
30149	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
30150	//         "TARGETING_TYPE_DEVICE_TYPE",
30151	//         "TARGETING_TYPE_AUDIENCE_GROUP",
30152	//         "TARGETING_TYPE_BROWSER",
30153	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
30154	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
30155	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
30156	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
30157	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
30158	//         "TARGETING_TYPE_ENVIRONMENT",
30159	//         "TARGETING_TYPE_CARRIER_AND_ISP",
30160	//         "TARGETING_TYPE_OPERATING_SYSTEM",
30161	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
30162	//         "TARGETING_TYPE_KEYWORD",
30163	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
30164	//         "TARGETING_TYPE_VIEWABILITY",
30165	//         "TARGETING_TYPE_CATEGORY",
30166	//         "TARGETING_TYPE_INVENTORY_SOURCE",
30167	//         "TARGETING_TYPE_LANGUAGE",
30168	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
30169	//         "TARGETING_TYPE_GEO_REGION",
30170	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
30171	//         "TARGETING_TYPE_EXCHANGE",
30172	//         "TARGETING_TYPE_SUB_EXCHANGE",
30173	//         "TARGETING_TYPE_POI",
30174	//         "TARGETING_TYPE_BUSINESS_CHAIN",
30175	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
30176	//         "TARGETING_TYPE_OMID"
30177	//       ],
30178	//       "enumDescriptions": [
30179	//         "Default value when type is not specified or is unknown in this version.",
30180	//         "Target a channel (a custom group of related websites or apps).",
30181	//         "Target an app category (for example, education or puzzle games).",
30182	//         "Target a specific app (for example, Angry Birds).",
30183	//         "Target a specific url (for example, quora.com).",
30184	//         "Target ads during a chosen time period on a specific day.",
30185	//         "Target ads to a specific age range (for example, 18-24).",
30186	//         "Target ads to the specified regions on a regional location list.",
30187	//         "Target ads to the specified points of interest on a proximity location list.",
30188	//         "Target ads to a specific gender (for example, female or male).",
30189	//         "Target a specific video player size for video ads.",
30190	//         "Target user rewarded content for video ads.",
30191	//         "Target ads to a specific parental status (for example, parent or not a parent).",
30192	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
30193	//         "Target ads in a specific content outstream position.",
30194	//         "Target ads to a specific device type (for example, tablet or connected TV).",
30195	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
30196	//         "Target ads to specific web browsers (for example, Chrome).",
30197	//         "Target ads to a specific household income range (for example, top 10%).",
30198	//         "Target ads in a specific on screen position.",
30199	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
30200	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
30201	//         "Filter website content by sensitive categories (for example, adult).",
30202	//         "Target ads to a specific environment (for example, web or app).",
30203	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
30204	//         "Target ads to a specific operating system (for example, macOS).",
30205	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
30206	//         "Target ads to a specific keyword (for example, dog or retriever).",
30207	//         "Target ads to a specific negative keyword list.",
30208	//         "Target ads to a specific viewability (for example, 80% viewable).",
30209	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
30210	//         "Purchase impressions from specific deals and auction packages.",
30211	//         "Target ads to a specific language (for example, English or Japanese).",
30212	//         "Target ads to ads.txt authorized sellers.",
30213	//         "Target ads to a specific regional location (for example, a city or state).",
30214	//         "Purchase impressions from a group of deals and auction packages.",
30215	//         "Purchase impressions from specific exchanges.",
30216	//         "Purchase impressions from specific sub-exchanges.",
30217	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
30218	//         "Target ads around locations of a business chain within a specific geo region.",
30219	//         "Target ads to a specific native content position.",
30220	//         "Target ads in an Open Measurement enabled inventory."
30221	//       ],
30222	//       "location": "path",
30223	//       "pattern": "^[^/]+$",
30224	//       "required": true,
30225	//       "type": "string"
30226	//     }
30227	//   },
30228	//   "path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
30229	//   "response": {
30230	//     "$ref": "AssignedTargetingOption"
30231	//   },
30232	//   "scopes": [
30233	//     "https://www.googleapis.com/auth/display-video"
30234	//   ]
30235	// }
30236
30237}
30238
30239// method id "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.list":
30240
30241type AdvertisersTargetingTypesAssignedTargetingOptionsListCall struct {
30242	s             *Service
30243	advertiserId  int64
30244	targetingType string
30245	urlParams_    gensupport.URLParams
30246	ifNoneMatch_  string
30247	ctx_          context.Context
30248	header_       http.Header
30249}
30250
30251// List: Lists the targeting options assigned to an advertiser.
30252//
30253// - advertiserId: The ID of the advertiser.
30254// - targetingType: Identifies the type of assigned targeting options to
30255//   list. Supported targeting types: * `TARGETING_TYPE_CHANNEL` *
30256//   `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
30257//   `TARGETING_TYPE_OMID` *
30258//   `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
30259func (r *AdvertisersTargetingTypesAssignedTargetingOptionsService) List(advertiserId int64, targetingType string) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
30260	c := &AdvertisersTargetingTypesAssignedTargetingOptionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30261	c.advertiserId = advertiserId
30262	c.targetingType = targetingType
30263	return c
30264}
30265
30266// Filter sets the optional parameter "filter": Allows filtering by
30267// assigned targeting option properties. Supported syntax: * Filter
30268// expressions are made up of one or more restrictions. * Restrictions
30269// can be combined by the logical operator `OR`. * A restriction has the
30270// form of `{field} {operator} {value}`. * The operator must be `EQUALS
30271// (=)`. * Supported fields: - `assignedTargetingOptionId` Examples: *
30272// AssignedTargetingOption with ID 123456
30273// `assignedTargetingOptionId="123456" The length of this field should
30274// be no more than 500 characters.
30275func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) Filter(filter string) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
30276	c.urlParams_.Set("filter", filter)
30277	return c
30278}
30279
30280// OrderBy sets the optional parameter "orderBy": Field by which to sort
30281// the list. Acceptable values are: * `assignedTargetingOptionId`
30282// (default) The default sorting order is ascending. To specify
30283// descending order for a field, a suffix "desc" should be added to the
30284// field name. Example: `assignedTargetingOptionId desc`.
30285func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) OrderBy(orderBy string) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
30286	c.urlParams_.Set("orderBy", orderBy)
30287	return c
30288}
30289
30290// PageSize sets the optional parameter "pageSize": Requested page size.
30291// Must be between `1` and `5000`. If unspecified will default to `100`.
30292// Returns error code `INVALID_ARGUMENT` if an invalid value is
30293// specified.
30294func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) PageSize(pageSize int64) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
30295	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
30296	return c
30297}
30298
30299// PageToken sets the optional parameter "pageToken": A token
30300// identifying a page of results the server should return. Typically,
30301// this is the value of next_page_token returned from the previous call
30302// to `ListAdvertiserAssignedTargetingOptions` method. If not specified,
30303// the first page of results will be returned.
30304func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) PageToken(pageToken string) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
30305	c.urlParams_.Set("pageToken", pageToken)
30306	return c
30307}
30308
30309// Fields allows partial responses to be retrieved. See
30310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30311// for more information.
30312func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) Fields(s ...googleapi.Field) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
30313	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30314	return c
30315}
30316
30317// IfNoneMatch sets the optional parameter which makes the operation
30318// fail if the object's ETag matches the given value. This is useful for
30319// getting updates only after the object has changed since the last
30320// request. Use googleapi.IsNotModified to check whether the response
30321// error from Do is the result of In-None-Match.
30322func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) IfNoneMatch(entityTag string) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
30323	c.ifNoneMatch_ = entityTag
30324	return c
30325}
30326
30327// Context sets the context to be used in this call's Do method. Any
30328// pending HTTP request will be aborted if the provided context is
30329// canceled.
30330func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) Context(ctx context.Context) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
30331	c.ctx_ = ctx
30332	return c
30333}
30334
30335// Header returns an http.Header that can be modified by the caller to
30336// add HTTP headers to the request.
30337func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) Header() http.Header {
30338	if c.header_ == nil {
30339		c.header_ = make(http.Header)
30340	}
30341	return c.header_
30342}
30343
30344func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) doRequest(alt string) (*http.Response, error) {
30345	reqHeaders := make(http.Header)
30346	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
30347	for k, v := range c.header_ {
30348		reqHeaders[k] = v
30349	}
30350	reqHeaders.Set("User-Agent", c.s.userAgent())
30351	if c.ifNoneMatch_ != "" {
30352		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30353	}
30354	var body io.Reader = nil
30355	c.urlParams_.Set("alt", alt)
30356	c.urlParams_.Set("prettyPrint", "false")
30357	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
30358	urls += "?" + c.urlParams_.Encode()
30359	req, err := http.NewRequest("GET", urls, body)
30360	if err != nil {
30361		return nil, err
30362	}
30363	req.Header = reqHeaders
30364	googleapi.Expand(req.URL, map[string]string{
30365		"advertiserId":  strconv.FormatInt(c.advertiserId, 10),
30366		"targetingType": c.targetingType,
30367	})
30368	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30369}
30370
30371// Do executes the "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.list" call.
30372// Exactly one of *ListAdvertiserAssignedTargetingOptionsResponse or
30373// error will be non-nil. Any non-2xx status code is an error. Response
30374// headers are in either
30375// *ListAdvertiserAssignedTargetingOptionsResponse.ServerResponse.Header
30376// or (if a response was returned at all) in
30377// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
30378// whether the returned error was because http.StatusNotModified was
30379// returned.
30380func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) Do(opts ...googleapi.CallOption) (*ListAdvertiserAssignedTargetingOptionsResponse, error) {
30381	gensupport.SetOptions(c.urlParams_, opts...)
30382	res, err := c.doRequest("json")
30383	if res != nil && res.StatusCode == http.StatusNotModified {
30384		if res.Body != nil {
30385			res.Body.Close()
30386		}
30387		return nil, &googleapi.Error{
30388			Code:   res.StatusCode,
30389			Header: res.Header,
30390		}
30391	}
30392	if err != nil {
30393		return nil, err
30394	}
30395	defer googleapi.CloseBody(res)
30396	if err := googleapi.CheckResponse(res); err != nil {
30397		return nil, err
30398	}
30399	ret := &ListAdvertiserAssignedTargetingOptionsResponse{
30400		ServerResponse: googleapi.ServerResponse{
30401			Header:         res.Header,
30402			HTTPStatusCode: res.StatusCode,
30403		},
30404	}
30405	target := &ret
30406	if err := gensupport.DecodeResponse(target, res); err != nil {
30407		return nil, err
30408	}
30409	return ret, nil
30410	// {
30411	//   "description": "Lists the targeting options assigned to an advertiser.",
30412	//   "flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
30413	//   "httpMethod": "GET",
30414	//   "id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.list",
30415	//   "parameterOrder": [
30416	//     "advertiserId",
30417	//     "targetingType"
30418	//   ],
30419	//   "parameters": {
30420	//     "advertiserId": {
30421	//       "description": "Required. The ID of the advertiser.",
30422	//       "format": "int64",
30423	//       "location": "path",
30424	//       "pattern": "^[^/]+$",
30425	//       "required": true,
30426	//       "type": "string"
30427	//     },
30428	//     "filter": {
30429	//       "description": "Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` Examples: * AssignedTargetingOption with ID 123456 `assignedTargetingOptionId=\"123456\"` The length of this field should be no more than 500 characters.",
30430	//       "location": "query",
30431	//       "type": "string"
30432	//     },
30433	//     "orderBy": {
30434	//       "description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.",
30435	//       "location": "query",
30436	//       "type": "string"
30437	//     },
30438	//     "pageSize": {
30439	//       "description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
30440	//       "format": "int32",
30441	//       "location": "query",
30442	//       "type": "integer"
30443	//     },
30444	//     "pageToken": {
30445	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAdvertiserAssignedTargetingOptions` method. If not specified, the first page of results will be returned.",
30446	//       "location": "query",
30447	//       "type": "string"
30448	//     },
30449	//     "targetingType": {
30450	//       "description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`",
30451	//       "enum": [
30452	//         "TARGETING_TYPE_UNSPECIFIED",
30453	//         "TARGETING_TYPE_CHANNEL",
30454	//         "TARGETING_TYPE_APP_CATEGORY",
30455	//         "TARGETING_TYPE_APP",
30456	//         "TARGETING_TYPE_URL",
30457	//         "TARGETING_TYPE_DAY_AND_TIME",
30458	//         "TARGETING_TYPE_AGE_RANGE",
30459	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
30460	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
30461	//         "TARGETING_TYPE_GENDER",
30462	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
30463	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
30464	//         "TARGETING_TYPE_PARENTAL_STATUS",
30465	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
30466	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
30467	//         "TARGETING_TYPE_DEVICE_TYPE",
30468	//         "TARGETING_TYPE_AUDIENCE_GROUP",
30469	//         "TARGETING_TYPE_BROWSER",
30470	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
30471	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
30472	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
30473	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
30474	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
30475	//         "TARGETING_TYPE_ENVIRONMENT",
30476	//         "TARGETING_TYPE_CARRIER_AND_ISP",
30477	//         "TARGETING_TYPE_OPERATING_SYSTEM",
30478	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
30479	//         "TARGETING_TYPE_KEYWORD",
30480	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
30481	//         "TARGETING_TYPE_VIEWABILITY",
30482	//         "TARGETING_TYPE_CATEGORY",
30483	//         "TARGETING_TYPE_INVENTORY_SOURCE",
30484	//         "TARGETING_TYPE_LANGUAGE",
30485	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
30486	//         "TARGETING_TYPE_GEO_REGION",
30487	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
30488	//         "TARGETING_TYPE_EXCHANGE",
30489	//         "TARGETING_TYPE_SUB_EXCHANGE",
30490	//         "TARGETING_TYPE_POI",
30491	//         "TARGETING_TYPE_BUSINESS_CHAIN",
30492	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
30493	//         "TARGETING_TYPE_OMID"
30494	//       ],
30495	//       "enumDescriptions": [
30496	//         "Default value when type is not specified or is unknown in this version.",
30497	//         "Target a channel (a custom group of related websites or apps).",
30498	//         "Target an app category (for example, education or puzzle games).",
30499	//         "Target a specific app (for example, Angry Birds).",
30500	//         "Target a specific url (for example, quora.com).",
30501	//         "Target ads during a chosen time period on a specific day.",
30502	//         "Target ads to a specific age range (for example, 18-24).",
30503	//         "Target ads to the specified regions on a regional location list.",
30504	//         "Target ads to the specified points of interest on a proximity location list.",
30505	//         "Target ads to a specific gender (for example, female or male).",
30506	//         "Target a specific video player size for video ads.",
30507	//         "Target user rewarded content for video ads.",
30508	//         "Target ads to a specific parental status (for example, parent or not a parent).",
30509	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
30510	//         "Target ads in a specific content outstream position.",
30511	//         "Target ads to a specific device type (for example, tablet or connected TV).",
30512	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
30513	//         "Target ads to specific web browsers (for example, Chrome).",
30514	//         "Target ads to a specific household income range (for example, top 10%).",
30515	//         "Target ads in a specific on screen position.",
30516	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
30517	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
30518	//         "Filter website content by sensitive categories (for example, adult).",
30519	//         "Target ads to a specific environment (for example, web or app).",
30520	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
30521	//         "Target ads to a specific operating system (for example, macOS).",
30522	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
30523	//         "Target ads to a specific keyword (for example, dog or retriever).",
30524	//         "Target ads to a specific negative keyword list.",
30525	//         "Target ads to a specific viewability (for example, 80% viewable).",
30526	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
30527	//         "Purchase impressions from specific deals and auction packages.",
30528	//         "Target ads to a specific language (for example, English or Japanese).",
30529	//         "Target ads to ads.txt authorized sellers.",
30530	//         "Target ads to a specific regional location (for example, a city or state).",
30531	//         "Purchase impressions from a group of deals and auction packages.",
30532	//         "Purchase impressions from specific exchanges.",
30533	//         "Purchase impressions from specific sub-exchanges.",
30534	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
30535	//         "Target ads around locations of a business chain within a specific geo region.",
30536	//         "Target ads to a specific native content position.",
30537	//         "Target ads in an Open Measurement enabled inventory."
30538	//       ],
30539	//       "location": "path",
30540	//       "pattern": "^[^/]+$",
30541	//       "required": true,
30542	//       "type": "string"
30543	//     }
30544	//   },
30545	//   "path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
30546	//   "response": {
30547	//     "$ref": "ListAdvertiserAssignedTargetingOptionsResponse"
30548	//   },
30549	//   "scopes": [
30550	//     "https://www.googleapis.com/auth/display-video"
30551	//   ]
30552	// }
30553
30554}
30555
30556// Pages invokes f for each page of results.
30557// A non-nil error returned from f will halt the iteration.
30558// The provided context supersedes any context provided to the Context method.
30559func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) Pages(ctx context.Context, f func(*ListAdvertiserAssignedTargetingOptionsResponse) error) error {
30560	c.ctx_ = ctx
30561	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
30562	for {
30563		x, err := c.Do()
30564		if err != nil {
30565			return err
30566		}
30567		if err := f(x); err != nil {
30568			return err
30569		}
30570		if x.NextPageToken == "" {
30571			return nil
30572		}
30573		c.PageToken(x.NextPageToken)
30574	}
30575}
30576
30577// method id "displayvideo.combinedAudiences.get":
30578
30579type CombinedAudiencesGetCall struct {
30580	s                  *Service
30581	combinedAudienceId int64
30582	urlParams_         gensupport.URLParams
30583	ifNoneMatch_       string
30584	ctx_               context.Context
30585	header_            http.Header
30586}
30587
30588// Get: Gets a combined audience.
30589//
30590// - combinedAudienceId: The ID of the combined audience to fetch.
30591func (r *CombinedAudiencesService) Get(combinedAudienceId int64) *CombinedAudiencesGetCall {
30592	c := &CombinedAudiencesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30593	c.combinedAudienceId = combinedAudienceId
30594	return c
30595}
30596
30597// AdvertiserId sets the optional parameter "advertiserId": The ID of
30598// the advertiser that has access to the fetched combined audience.
30599func (c *CombinedAudiencesGetCall) AdvertiserId(advertiserId int64) *CombinedAudiencesGetCall {
30600	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
30601	return c
30602}
30603
30604// PartnerId sets the optional parameter "partnerId": The ID of the
30605// partner that has access to the fetched combined audience.
30606func (c *CombinedAudiencesGetCall) PartnerId(partnerId int64) *CombinedAudiencesGetCall {
30607	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
30608	return c
30609}
30610
30611// Fields allows partial responses to be retrieved. See
30612// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30613// for more information.
30614func (c *CombinedAudiencesGetCall) Fields(s ...googleapi.Field) *CombinedAudiencesGetCall {
30615	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30616	return c
30617}
30618
30619// IfNoneMatch sets the optional parameter which makes the operation
30620// fail if the object's ETag matches the given value. This is useful for
30621// getting updates only after the object has changed since the last
30622// request. Use googleapi.IsNotModified to check whether the response
30623// error from Do is the result of In-None-Match.
30624func (c *CombinedAudiencesGetCall) IfNoneMatch(entityTag string) *CombinedAudiencesGetCall {
30625	c.ifNoneMatch_ = entityTag
30626	return c
30627}
30628
30629// Context sets the context to be used in this call's Do method. Any
30630// pending HTTP request will be aborted if the provided context is
30631// canceled.
30632func (c *CombinedAudiencesGetCall) Context(ctx context.Context) *CombinedAudiencesGetCall {
30633	c.ctx_ = ctx
30634	return c
30635}
30636
30637// Header returns an http.Header that can be modified by the caller to
30638// add HTTP headers to the request.
30639func (c *CombinedAudiencesGetCall) Header() http.Header {
30640	if c.header_ == nil {
30641		c.header_ = make(http.Header)
30642	}
30643	return c.header_
30644}
30645
30646func (c *CombinedAudiencesGetCall) doRequest(alt string) (*http.Response, error) {
30647	reqHeaders := make(http.Header)
30648	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
30649	for k, v := range c.header_ {
30650		reqHeaders[k] = v
30651	}
30652	reqHeaders.Set("User-Agent", c.s.userAgent())
30653	if c.ifNoneMatch_ != "" {
30654		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30655	}
30656	var body io.Reader = nil
30657	c.urlParams_.Set("alt", alt)
30658	c.urlParams_.Set("prettyPrint", "false")
30659	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/combinedAudiences/{+combinedAudienceId}")
30660	urls += "?" + c.urlParams_.Encode()
30661	req, err := http.NewRequest("GET", urls, body)
30662	if err != nil {
30663		return nil, err
30664	}
30665	req.Header = reqHeaders
30666	googleapi.Expand(req.URL, map[string]string{
30667		"combinedAudienceId": strconv.FormatInt(c.combinedAudienceId, 10),
30668	})
30669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30670}
30671
30672// Do executes the "displayvideo.combinedAudiences.get" call.
30673// Exactly one of *CombinedAudience or error will be non-nil. Any
30674// non-2xx status code is an error. Response headers are in either
30675// *CombinedAudience.ServerResponse.Header or (if a response was
30676// returned at all) in error.(*googleapi.Error).Header. Use
30677// googleapi.IsNotModified to check whether the returned error was
30678// because http.StatusNotModified was returned.
30679func (c *CombinedAudiencesGetCall) Do(opts ...googleapi.CallOption) (*CombinedAudience, error) {
30680	gensupport.SetOptions(c.urlParams_, opts...)
30681	res, err := c.doRequest("json")
30682	if res != nil && res.StatusCode == http.StatusNotModified {
30683		if res.Body != nil {
30684			res.Body.Close()
30685		}
30686		return nil, &googleapi.Error{
30687			Code:   res.StatusCode,
30688			Header: res.Header,
30689		}
30690	}
30691	if err != nil {
30692		return nil, err
30693	}
30694	defer googleapi.CloseBody(res)
30695	if err := googleapi.CheckResponse(res); err != nil {
30696		return nil, err
30697	}
30698	ret := &CombinedAudience{
30699		ServerResponse: googleapi.ServerResponse{
30700			Header:         res.Header,
30701			HTTPStatusCode: res.StatusCode,
30702		},
30703	}
30704	target := &ret
30705	if err := gensupport.DecodeResponse(target, res); err != nil {
30706		return nil, err
30707	}
30708	return ret, nil
30709	// {
30710	//   "description": "Gets a combined audience.",
30711	//   "flatPath": "v1/combinedAudiences/{combinedAudiencesId}",
30712	//   "httpMethod": "GET",
30713	//   "id": "displayvideo.combinedAudiences.get",
30714	//   "parameterOrder": [
30715	//     "combinedAudienceId"
30716	//   ],
30717	//   "parameters": {
30718	//     "advertiserId": {
30719	//       "description": "The ID of the advertiser that has access to the fetched combined audience.",
30720	//       "format": "int64",
30721	//       "location": "query",
30722	//       "type": "string"
30723	//     },
30724	//     "combinedAudienceId": {
30725	//       "description": "Required. The ID of the combined audience to fetch.",
30726	//       "format": "int64",
30727	//       "location": "path",
30728	//       "pattern": "^[^/]+$",
30729	//       "required": true,
30730	//       "type": "string"
30731	//     },
30732	//     "partnerId": {
30733	//       "description": "The ID of the partner that has access to the fetched combined audience.",
30734	//       "format": "int64",
30735	//       "location": "query",
30736	//       "type": "string"
30737	//     }
30738	//   },
30739	//   "path": "v1/combinedAudiences/{+combinedAudienceId}",
30740	//   "response": {
30741	//     "$ref": "CombinedAudience"
30742	//   },
30743	//   "scopes": [
30744	//     "https://www.googleapis.com/auth/display-video"
30745	//   ]
30746	// }
30747
30748}
30749
30750// method id "displayvideo.combinedAudiences.list":
30751
30752type CombinedAudiencesListCall struct {
30753	s            *Service
30754	urlParams_   gensupport.URLParams
30755	ifNoneMatch_ string
30756	ctx_         context.Context
30757	header_      http.Header
30758}
30759
30760// List: Lists combined audiences. The order is defined by the order_by
30761// parameter.
30762func (r *CombinedAudiencesService) List() *CombinedAudiencesListCall {
30763	c := &CombinedAudiencesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30764	return c
30765}
30766
30767// AdvertiserId sets the optional parameter "advertiserId": The ID of
30768// the advertiser that has access to the fetched combined audiences.
30769func (c *CombinedAudiencesListCall) AdvertiserId(advertiserId int64) *CombinedAudiencesListCall {
30770	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
30771	return c
30772}
30773
30774// Filter sets the optional parameter "filter": Allows filtering by
30775// combined audience fields. Supported syntax: * Filter expressions for
30776// combined audiences currently can only contain at most one
30777// restriction. * A restriction has the form of `{field} {operator}
30778// {value}`. * The operator must be `CONTAINS (:)`. * Supported fields:
30779// - `displayName` Examples: * All combined audiences for which the
30780// display name contains "Google": `displayName : "Google". The length
30781// of this field should be no more than 500 characters.
30782func (c *CombinedAudiencesListCall) Filter(filter string) *CombinedAudiencesListCall {
30783	c.urlParams_.Set("filter", filter)
30784	return c
30785}
30786
30787// OrderBy sets the optional parameter "orderBy": Field by which to sort
30788// the list. Acceptable values are: * `combinedAudienceId` (default) *
30789// `displayName` The default sorting order is ascending. To specify
30790// descending order for a field, a suffix "desc" should be added to the
30791// field name. Example: `displayName desc`.
30792func (c *CombinedAudiencesListCall) OrderBy(orderBy string) *CombinedAudiencesListCall {
30793	c.urlParams_.Set("orderBy", orderBy)
30794	return c
30795}
30796
30797// PageSize sets the optional parameter "pageSize": Requested page size.
30798// Must be between `1` and `100`. If unspecified will default to `100`.
30799// Returns error code `INVALID_ARGUMENT` if an invalid value is
30800// specified.
30801func (c *CombinedAudiencesListCall) PageSize(pageSize int64) *CombinedAudiencesListCall {
30802	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
30803	return c
30804}
30805
30806// PageToken sets the optional parameter "pageToken": A token
30807// identifying a page of results the server should return. Typically,
30808// this is the value of next_page_token returned from the previous call
30809// to `ListCombinedAudiences` method. If not specified, the first page
30810// of results will be returned.
30811func (c *CombinedAudiencesListCall) PageToken(pageToken string) *CombinedAudiencesListCall {
30812	c.urlParams_.Set("pageToken", pageToken)
30813	return c
30814}
30815
30816// PartnerId sets the optional parameter "partnerId": The ID of the
30817// partner that has access to the fetched combined audiences.
30818func (c *CombinedAudiencesListCall) PartnerId(partnerId int64) *CombinedAudiencesListCall {
30819	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
30820	return c
30821}
30822
30823// Fields allows partial responses to be retrieved. See
30824// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30825// for more information.
30826func (c *CombinedAudiencesListCall) Fields(s ...googleapi.Field) *CombinedAudiencesListCall {
30827	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30828	return c
30829}
30830
30831// IfNoneMatch sets the optional parameter which makes the operation
30832// fail if the object's ETag matches the given value. This is useful for
30833// getting updates only after the object has changed since the last
30834// request. Use googleapi.IsNotModified to check whether the response
30835// error from Do is the result of In-None-Match.
30836func (c *CombinedAudiencesListCall) IfNoneMatch(entityTag string) *CombinedAudiencesListCall {
30837	c.ifNoneMatch_ = entityTag
30838	return c
30839}
30840
30841// Context sets the context to be used in this call's Do method. Any
30842// pending HTTP request will be aborted if the provided context is
30843// canceled.
30844func (c *CombinedAudiencesListCall) Context(ctx context.Context) *CombinedAudiencesListCall {
30845	c.ctx_ = ctx
30846	return c
30847}
30848
30849// Header returns an http.Header that can be modified by the caller to
30850// add HTTP headers to the request.
30851func (c *CombinedAudiencesListCall) Header() http.Header {
30852	if c.header_ == nil {
30853		c.header_ = make(http.Header)
30854	}
30855	return c.header_
30856}
30857
30858func (c *CombinedAudiencesListCall) doRequest(alt string) (*http.Response, error) {
30859	reqHeaders := make(http.Header)
30860	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
30861	for k, v := range c.header_ {
30862		reqHeaders[k] = v
30863	}
30864	reqHeaders.Set("User-Agent", c.s.userAgent())
30865	if c.ifNoneMatch_ != "" {
30866		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30867	}
30868	var body io.Reader = nil
30869	c.urlParams_.Set("alt", alt)
30870	c.urlParams_.Set("prettyPrint", "false")
30871	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/combinedAudiences")
30872	urls += "?" + c.urlParams_.Encode()
30873	req, err := http.NewRequest("GET", urls, body)
30874	if err != nil {
30875		return nil, err
30876	}
30877	req.Header = reqHeaders
30878	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30879}
30880
30881// Do executes the "displayvideo.combinedAudiences.list" call.
30882// Exactly one of *ListCombinedAudiencesResponse or error will be
30883// non-nil. Any non-2xx status code is an error. Response headers are in
30884// either *ListCombinedAudiencesResponse.ServerResponse.Header or (if a
30885// response was returned at all) in error.(*googleapi.Error).Header. Use
30886// googleapi.IsNotModified to check whether the returned error was
30887// because http.StatusNotModified was returned.
30888func (c *CombinedAudiencesListCall) Do(opts ...googleapi.CallOption) (*ListCombinedAudiencesResponse, error) {
30889	gensupport.SetOptions(c.urlParams_, opts...)
30890	res, err := c.doRequest("json")
30891	if res != nil && res.StatusCode == http.StatusNotModified {
30892		if res.Body != nil {
30893			res.Body.Close()
30894		}
30895		return nil, &googleapi.Error{
30896			Code:   res.StatusCode,
30897			Header: res.Header,
30898		}
30899	}
30900	if err != nil {
30901		return nil, err
30902	}
30903	defer googleapi.CloseBody(res)
30904	if err := googleapi.CheckResponse(res); err != nil {
30905		return nil, err
30906	}
30907	ret := &ListCombinedAudiencesResponse{
30908		ServerResponse: googleapi.ServerResponse{
30909			Header:         res.Header,
30910			HTTPStatusCode: res.StatusCode,
30911		},
30912	}
30913	target := &ret
30914	if err := gensupport.DecodeResponse(target, res); err != nil {
30915		return nil, err
30916	}
30917	return ret, nil
30918	// {
30919	//   "description": "Lists combined audiences. The order is defined by the order_by parameter.",
30920	//   "flatPath": "v1/combinedAudiences",
30921	//   "httpMethod": "GET",
30922	//   "id": "displayvideo.combinedAudiences.list",
30923	//   "parameterOrder": [],
30924	//   "parameters": {
30925	//     "advertiserId": {
30926	//       "description": "The ID of the advertiser that has access to the fetched combined audiences.",
30927	//       "format": "int64",
30928	//       "location": "query",
30929	//       "type": "string"
30930	//     },
30931	//     "filter": {
30932	//       "description": "Allows filtering by combined audience fields. Supported syntax: * Filter expressions for combined audiences currently can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * Supported fields: - `displayName` Examples: * All combined audiences for which the display name contains \"Google\": `displayName : \"Google\"`. The length of this field should be no more than 500 characters.",
30933	//       "location": "query",
30934	//       "type": "string"
30935	//     },
30936	//     "orderBy": {
30937	//       "description": "Field by which to sort the list. Acceptable values are: * `combinedAudienceId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.",
30938	//       "location": "query",
30939	//       "type": "string"
30940	//     },
30941	//     "pageSize": {
30942	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
30943	//       "format": "int32",
30944	//       "location": "query",
30945	//       "type": "integer"
30946	//     },
30947	//     "pageToken": {
30948	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCombinedAudiences` method. If not specified, the first page of results will be returned.",
30949	//       "location": "query",
30950	//       "type": "string"
30951	//     },
30952	//     "partnerId": {
30953	//       "description": "The ID of the partner that has access to the fetched combined audiences.",
30954	//       "format": "int64",
30955	//       "location": "query",
30956	//       "type": "string"
30957	//     }
30958	//   },
30959	//   "path": "v1/combinedAudiences",
30960	//   "response": {
30961	//     "$ref": "ListCombinedAudiencesResponse"
30962	//   },
30963	//   "scopes": [
30964	//     "https://www.googleapis.com/auth/display-video"
30965	//   ]
30966	// }
30967
30968}
30969
30970// Pages invokes f for each page of results.
30971// A non-nil error returned from f will halt the iteration.
30972// The provided context supersedes any context provided to the Context method.
30973func (c *CombinedAudiencesListCall) Pages(ctx context.Context, f func(*ListCombinedAudiencesResponse) error) error {
30974	c.ctx_ = ctx
30975	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
30976	for {
30977		x, err := c.Do()
30978		if err != nil {
30979			return err
30980		}
30981		if err := f(x); err != nil {
30982			return err
30983		}
30984		if x.NextPageToken == "" {
30985			return nil
30986		}
30987		c.PageToken(x.NextPageToken)
30988	}
30989}
30990
30991// method id "displayvideo.customBiddingAlgorithms.create":
30992
30993type CustomBiddingAlgorithmsCreateCall struct {
30994	s                      *Service
30995	custombiddingalgorithm *CustomBiddingAlgorithm
30996	urlParams_             gensupport.URLParams
30997	ctx_                   context.Context
30998	header_                http.Header
30999}
31000
31001// Create: Creates a new custom bidding algorithm. Returns the newly
31002// created custom bidding algorithm if successful.
31003func (r *CustomBiddingAlgorithmsService) Create(custombiddingalgorithm *CustomBiddingAlgorithm) *CustomBiddingAlgorithmsCreateCall {
31004	c := &CustomBiddingAlgorithmsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31005	c.custombiddingalgorithm = custombiddingalgorithm
31006	return c
31007}
31008
31009// Fields allows partial responses to be retrieved. See
31010// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31011// for more information.
31012func (c *CustomBiddingAlgorithmsCreateCall) Fields(s ...googleapi.Field) *CustomBiddingAlgorithmsCreateCall {
31013	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31014	return c
31015}
31016
31017// Context sets the context to be used in this call's Do method. Any
31018// pending HTTP request will be aborted if the provided context is
31019// canceled.
31020func (c *CustomBiddingAlgorithmsCreateCall) Context(ctx context.Context) *CustomBiddingAlgorithmsCreateCall {
31021	c.ctx_ = ctx
31022	return c
31023}
31024
31025// Header returns an http.Header that can be modified by the caller to
31026// add HTTP headers to the request.
31027func (c *CustomBiddingAlgorithmsCreateCall) Header() http.Header {
31028	if c.header_ == nil {
31029		c.header_ = make(http.Header)
31030	}
31031	return c.header_
31032}
31033
31034func (c *CustomBiddingAlgorithmsCreateCall) doRequest(alt string) (*http.Response, error) {
31035	reqHeaders := make(http.Header)
31036	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
31037	for k, v := range c.header_ {
31038		reqHeaders[k] = v
31039	}
31040	reqHeaders.Set("User-Agent", c.s.userAgent())
31041	var body io.Reader = nil
31042	body, err := googleapi.WithoutDataWrapper.JSONReader(c.custombiddingalgorithm)
31043	if err != nil {
31044		return nil, err
31045	}
31046	reqHeaders.Set("Content-Type", "application/json")
31047	c.urlParams_.Set("alt", alt)
31048	c.urlParams_.Set("prettyPrint", "false")
31049	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/customBiddingAlgorithms")
31050	urls += "?" + c.urlParams_.Encode()
31051	req, err := http.NewRequest("POST", urls, body)
31052	if err != nil {
31053		return nil, err
31054	}
31055	req.Header = reqHeaders
31056	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31057}
31058
31059// Do executes the "displayvideo.customBiddingAlgorithms.create" call.
31060// Exactly one of *CustomBiddingAlgorithm or error will be non-nil. Any
31061// non-2xx status code is an error. Response headers are in either
31062// *CustomBiddingAlgorithm.ServerResponse.Header or (if a response was
31063// returned at all) in error.(*googleapi.Error).Header. Use
31064// googleapi.IsNotModified to check whether the returned error was
31065// because http.StatusNotModified was returned.
31066func (c *CustomBiddingAlgorithmsCreateCall) Do(opts ...googleapi.CallOption) (*CustomBiddingAlgorithm, error) {
31067	gensupport.SetOptions(c.urlParams_, opts...)
31068	res, err := c.doRequest("json")
31069	if res != nil && res.StatusCode == http.StatusNotModified {
31070		if res.Body != nil {
31071			res.Body.Close()
31072		}
31073		return nil, &googleapi.Error{
31074			Code:   res.StatusCode,
31075			Header: res.Header,
31076		}
31077	}
31078	if err != nil {
31079		return nil, err
31080	}
31081	defer googleapi.CloseBody(res)
31082	if err := googleapi.CheckResponse(res); err != nil {
31083		return nil, err
31084	}
31085	ret := &CustomBiddingAlgorithm{
31086		ServerResponse: googleapi.ServerResponse{
31087			Header:         res.Header,
31088			HTTPStatusCode: res.StatusCode,
31089		},
31090	}
31091	target := &ret
31092	if err := gensupport.DecodeResponse(target, res); err != nil {
31093		return nil, err
31094	}
31095	return ret, nil
31096	// {
31097	//   "description": "Creates a new custom bidding algorithm. Returns the newly created custom bidding algorithm if successful.",
31098	//   "flatPath": "v1/customBiddingAlgorithms",
31099	//   "httpMethod": "POST",
31100	//   "id": "displayvideo.customBiddingAlgorithms.create",
31101	//   "parameterOrder": [],
31102	//   "parameters": {},
31103	//   "path": "v1/customBiddingAlgorithms",
31104	//   "request": {
31105	//     "$ref": "CustomBiddingAlgorithm"
31106	//   },
31107	//   "response": {
31108	//     "$ref": "CustomBiddingAlgorithm"
31109	//   },
31110	//   "scopes": [
31111	//     "https://www.googleapis.com/auth/display-video"
31112	//   ]
31113	// }
31114
31115}
31116
31117// method id "displayvideo.customBiddingAlgorithms.get":
31118
31119type CustomBiddingAlgorithmsGetCall struct {
31120	s                        *Service
31121	customBiddingAlgorithmId int64
31122	urlParams_               gensupport.URLParams
31123	ifNoneMatch_             string
31124	ctx_                     context.Context
31125	header_                  http.Header
31126}
31127
31128// Get: Gets a custom bidding algorithm.
31129//
31130// - customBiddingAlgorithmId: The ID of the custom bidding algorithm to
31131//   fetch.
31132func (r *CustomBiddingAlgorithmsService) Get(customBiddingAlgorithmId int64) *CustomBiddingAlgorithmsGetCall {
31133	c := &CustomBiddingAlgorithmsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31134	c.customBiddingAlgorithmId = customBiddingAlgorithmId
31135	return c
31136}
31137
31138// AdvertiserId sets the optional parameter "advertiserId": The ID of
31139// the DV360 partner that has access to the custom bidding algorithm.
31140func (c *CustomBiddingAlgorithmsGetCall) AdvertiserId(advertiserId int64) *CustomBiddingAlgorithmsGetCall {
31141	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
31142	return c
31143}
31144
31145// PartnerId sets the optional parameter "partnerId": The ID of the
31146// DV360 partner that has access to the custom bidding algorithm.
31147func (c *CustomBiddingAlgorithmsGetCall) PartnerId(partnerId int64) *CustomBiddingAlgorithmsGetCall {
31148	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
31149	return c
31150}
31151
31152// Fields allows partial responses to be retrieved. See
31153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31154// for more information.
31155func (c *CustomBiddingAlgorithmsGetCall) Fields(s ...googleapi.Field) *CustomBiddingAlgorithmsGetCall {
31156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31157	return c
31158}
31159
31160// IfNoneMatch sets the optional parameter which makes the operation
31161// fail if the object's ETag matches the given value. This is useful for
31162// getting updates only after the object has changed since the last
31163// request. Use googleapi.IsNotModified to check whether the response
31164// error from Do is the result of In-None-Match.
31165func (c *CustomBiddingAlgorithmsGetCall) IfNoneMatch(entityTag string) *CustomBiddingAlgorithmsGetCall {
31166	c.ifNoneMatch_ = entityTag
31167	return c
31168}
31169
31170// Context sets the context to be used in this call's Do method. Any
31171// pending HTTP request will be aborted if the provided context is
31172// canceled.
31173func (c *CustomBiddingAlgorithmsGetCall) Context(ctx context.Context) *CustomBiddingAlgorithmsGetCall {
31174	c.ctx_ = ctx
31175	return c
31176}
31177
31178// Header returns an http.Header that can be modified by the caller to
31179// add HTTP headers to the request.
31180func (c *CustomBiddingAlgorithmsGetCall) Header() http.Header {
31181	if c.header_ == nil {
31182		c.header_ = make(http.Header)
31183	}
31184	return c.header_
31185}
31186
31187func (c *CustomBiddingAlgorithmsGetCall) doRequest(alt string) (*http.Response, error) {
31188	reqHeaders := make(http.Header)
31189	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
31190	for k, v := range c.header_ {
31191		reqHeaders[k] = v
31192	}
31193	reqHeaders.Set("User-Agent", c.s.userAgent())
31194	if c.ifNoneMatch_ != "" {
31195		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31196	}
31197	var body io.Reader = nil
31198	c.urlParams_.Set("alt", alt)
31199	c.urlParams_.Set("prettyPrint", "false")
31200	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}")
31201	urls += "?" + c.urlParams_.Encode()
31202	req, err := http.NewRequest("GET", urls, body)
31203	if err != nil {
31204		return nil, err
31205	}
31206	req.Header = reqHeaders
31207	googleapi.Expand(req.URL, map[string]string{
31208		"customBiddingAlgorithmId": strconv.FormatInt(c.customBiddingAlgorithmId, 10),
31209	})
31210	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31211}
31212
31213// Do executes the "displayvideo.customBiddingAlgorithms.get" call.
31214// Exactly one of *CustomBiddingAlgorithm or error will be non-nil. Any
31215// non-2xx status code is an error. Response headers are in either
31216// *CustomBiddingAlgorithm.ServerResponse.Header or (if a response was
31217// returned at all) in error.(*googleapi.Error).Header. Use
31218// googleapi.IsNotModified to check whether the returned error was
31219// because http.StatusNotModified was returned.
31220func (c *CustomBiddingAlgorithmsGetCall) Do(opts ...googleapi.CallOption) (*CustomBiddingAlgorithm, error) {
31221	gensupport.SetOptions(c.urlParams_, opts...)
31222	res, err := c.doRequest("json")
31223	if res != nil && res.StatusCode == http.StatusNotModified {
31224		if res.Body != nil {
31225			res.Body.Close()
31226		}
31227		return nil, &googleapi.Error{
31228			Code:   res.StatusCode,
31229			Header: res.Header,
31230		}
31231	}
31232	if err != nil {
31233		return nil, err
31234	}
31235	defer googleapi.CloseBody(res)
31236	if err := googleapi.CheckResponse(res); err != nil {
31237		return nil, err
31238	}
31239	ret := &CustomBiddingAlgorithm{
31240		ServerResponse: googleapi.ServerResponse{
31241			Header:         res.Header,
31242			HTTPStatusCode: res.StatusCode,
31243		},
31244	}
31245	target := &ret
31246	if err := gensupport.DecodeResponse(target, res); err != nil {
31247		return nil, err
31248	}
31249	return ret, nil
31250	// {
31251	//   "description": "Gets a custom bidding algorithm.",
31252	//   "flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}",
31253	//   "httpMethod": "GET",
31254	//   "id": "displayvideo.customBiddingAlgorithms.get",
31255	//   "parameterOrder": [
31256	//     "customBiddingAlgorithmId"
31257	//   ],
31258	//   "parameters": {
31259	//     "advertiserId": {
31260	//       "description": "The ID of the DV360 partner that has access to the custom bidding algorithm.",
31261	//       "format": "int64",
31262	//       "location": "query",
31263	//       "type": "string"
31264	//     },
31265	//     "customBiddingAlgorithmId": {
31266	//       "description": "Required. The ID of the custom bidding algorithm to fetch.",
31267	//       "format": "int64",
31268	//       "location": "path",
31269	//       "pattern": "^[^/]+$",
31270	//       "required": true,
31271	//       "type": "string"
31272	//     },
31273	//     "partnerId": {
31274	//       "description": "The ID of the DV360 partner that has access to the custom bidding algorithm.",
31275	//       "format": "int64",
31276	//       "location": "query",
31277	//       "type": "string"
31278	//     }
31279	//   },
31280	//   "path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}",
31281	//   "response": {
31282	//     "$ref": "CustomBiddingAlgorithm"
31283	//   },
31284	//   "scopes": [
31285	//     "https://www.googleapis.com/auth/display-video"
31286	//   ]
31287	// }
31288
31289}
31290
31291// method id "displayvideo.customBiddingAlgorithms.list":
31292
31293type CustomBiddingAlgorithmsListCall struct {
31294	s            *Service
31295	urlParams_   gensupport.URLParams
31296	ifNoneMatch_ string
31297	ctx_         context.Context
31298	header_      http.Header
31299}
31300
31301// List: Lists custom bidding algorithms that are accessible to the
31302// current user and can be used in bidding stratgies. The order is
31303// defined by the order_by parameter.
31304func (r *CustomBiddingAlgorithmsService) List() *CustomBiddingAlgorithmsListCall {
31305	c := &CustomBiddingAlgorithmsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31306	return c
31307}
31308
31309// AdvertiserId sets the optional parameter "advertiserId": The ID of
31310// the DV360 advertiser that has access to the custom bidding algorithm.
31311func (c *CustomBiddingAlgorithmsListCall) AdvertiserId(advertiserId int64) *CustomBiddingAlgorithmsListCall {
31312	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
31313	return c
31314}
31315
31316// Filter sets the optional parameter "filter": Allows filtering by
31317// custom bidding algorithm fields. Supported syntax: * Filter
31318// expressions are made up of one or more restrictions. * Restrictions
31319// can be combined by `AND`. A sequence of restrictions * implicitly
31320// uses `AND`. * A restriction has the form of `{field} {operator}
31321// {value}`. * The operator must be `CONTAINS (:)` or `EQUALS (=)`. *
31322// The operator must be `CONTAINS (:)` for the following field: -
31323// `displayName` * The operator must be `EQUALS (=)` for the following
31324// field: - `customBiddingAlgorithmType` - `customBiddingAlgorithmState`
31325// * For `displayName`, the value is a string. We return all custom
31326// bidding algorithms whose display_name contains such string. * For
31327// `customBiddingAlgorithmType`, the value is a string. We return all
31328// algorithms whose custom_bidding_algorithm_type is equal to the given
31329// type. * For `customBiddingAlgorithmState`, the value is a string. We
31330// return all algorithms whose custom_bidding_algorithm_state is equal
31331// to the given type. Examples: * All custom bidding algorithms for
31332// which the display name contains "politics": `displayName:politics`. *
31333// All custom bidding algorithms for which the type is "SCRIPT_BASED":
31334// `customBiddingAlgorithmType=SCRIPT_BASED` * All custom bidding
31335// algorithms for which the state is "ENABLED":
31336// `customBiddingAlgorithmState=ENABLED` The length of this field should
31337// be no more than 500 characters.
31338func (c *CustomBiddingAlgorithmsListCall) Filter(filter string) *CustomBiddingAlgorithmsListCall {
31339	c.urlParams_.Set("filter", filter)
31340	return c
31341}
31342
31343// OrderBy sets the optional parameter "orderBy": Field by which to sort
31344// the list. Acceptable values are: * `displayName` (default) The
31345// default sorting order is ascending. To specify descending order for a
31346// field, a suffix "desc" should be added to the field name. Example:
31347// `displayName desc`.
31348func (c *CustomBiddingAlgorithmsListCall) OrderBy(orderBy string) *CustomBiddingAlgorithmsListCall {
31349	c.urlParams_.Set("orderBy", orderBy)
31350	return c
31351}
31352
31353// PageSize sets the optional parameter "pageSize": Requested page size.
31354// Must be between `1` and `100`. If unspecified will default to `100`.
31355// Returns error code `INVALID_ARGUMENT` if an invalid value is
31356// specified.
31357func (c *CustomBiddingAlgorithmsListCall) PageSize(pageSize int64) *CustomBiddingAlgorithmsListCall {
31358	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
31359	return c
31360}
31361
31362// PageToken sets the optional parameter "pageToken": A token
31363// identifying a page of results the server should return. Typically,
31364// this is the value of next_page_token returned from the previous call
31365// to `ListCustomBiddingAlgorithms` method. If not specified, the first
31366// page of results will be returned.
31367func (c *CustomBiddingAlgorithmsListCall) PageToken(pageToken string) *CustomBiddingAlgorithmsListCall {
31368	c.urlParams_.Set("pageToken", pageToken)
31369	return c
31370}
31371
31372// PartnerId sets the optional parameter "partnerId": The ID of the
31373// DV360 partner that has access to the custom bidding algorithm.
31374func (c *CustomBiddingAlgorithmsListCall) PartnerId(partnerId int64) *CustomBiddingAlgorithmsListCall {
31375	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
31376	return c
31377}
31378
31379// Fields allows partial responses to be retrieved. See
31380// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31381// for more information.
31382func (c *CustomBiddingAlgorithmsListCall) Fields(s ...googleapi.Field) *CustomBiddingAlgorithmsListCall {
31383	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31384	return c
31385}
31386
31387// IfNoneMatch sets the optional parameter which makes the operation
31388// fail if the object's ETag matches the given value. This is useful for
31389// getting updates only after the object has changed since the last
31390// request. Use googleapi.IsNotModified to check whether the response
31391// error from Do is the result of In-None-Match.
31392func (c *CustomBiddingAlgorithmsListCall) IfNoneMatch(entityTag string) *CustomBiddingAlgorithmsListCall {
31393	c.ifNoneMatch_ = entityTag
31394	return c
31395}
31396
31397// Context sets the context to be used in this call's Do method. Any
31398// pending HTTP request will be aborted if the provided context is
31399// canceled.
31400func (c *CustomBiddingAlgorithmsListCall) Context(ctx context.Context) *CustomBiddingAlgorithmsListCall {
31401	c.ctx_ = ctx
31402	return c
31403}
31404
31405// Header returns an http.Header that can be modified by the caller to
31406// add HTTP headers to the request.
31407func (c *CustomBiddingAlgorithmsListCall) Header() http.Header {
31408	if c.header_ == nil {
31409		c.header_ = make(http.Header)
31410	}
31411	return c.header_
31412}
31413
31414func (c *CustomBiddingAlgorithmsListCall) doRequest(alt string) (*http.Response, error) {
31415	reqHeaders := make(http.Header)
31416	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
31417	for k, v := range c.header_ {
31418		reqHeaders[k] = v
31419	}
31420	reqHeaders.Set("User-Agent", c.s.userAgent())
31421	if c.ifNoneMatch_ != "" {
31422		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31423	}
31424	var body io.Reader = nil
31425	c.urlParams_.Set("alt", alt)
31426	c.urlParams_.Set("prettyPrint", "false")
31427	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/customBiddingAlgorithms")
31428	urls += "?" + c.urlParams_.Encode()
31429	req, err := http.NewRequest("GET", urls, body)
31430	if err != nil {
31431		return nil, err
31432	}
31433	req.Header = reqHeaders
31434	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31435}
31436
31437// Do executes the "displayvideo.customBiddingAlgorithms.list" call.
31438// Exactly one of *ListCustomBiddingAlgorithmsResponse or error will be
31439// non-nil. Any non-2xx status code is an error. Response headers are in
31440// either *ListCustomBiddingAlgorithmsResponse.ServerResponse.Header or
31441// (if a response was returned at all) in
31442// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
31443// whether the returned error was because http.StatusNotModified was
31444// returned.
31445func (c *CustomBiddingAlgorithmsListCall) Do(opts ...googleapi.CallOption) (*ListCustomBiddingAlgorithmsResponse, error) {
31446	gensupport.SetOptions(c.urlParams_, opts...)
31447	res, err := c.doRequest("json")
31448	if res != nil && res.StatusCode == http.StatusNotModified {
31449		if res.Body != nil {
31450			res.Body.Close()
31451		}
31452		return nil, &googleapi.Error{
31453			Code:   res.StatusCode,
31454			Header: res.Header,
31455		}
31456	}
31457	if err != nil {
31458		return nil, err
31459	}
31460	defer googleapi.CloseBody(res)
31461	if err := googleapi.CheckResponse(res); err != nil {
31462		return nil, err
31463	}
31464	ret := &ListCustomBiddingAlgorithmsResponse{
31465		ServerResponse: googleapi.ServerResponse{
31466			Header:         res.Header,
31467			HTTPStatusCode: res.StatusCode,
31468		},
31469	}
31470	target := &ret
31471	if err := gensupport.DecodeResponse(target, res); err != nil {
31472		return nil, err
31473	}
31474	return ret, nil
31475	// {
31476	//   "description": "Lists custom bidding algorithms that are accessible to the current user and can be used in bidding stratgies. The order is defined by the order_by parameter.",
31477	//   "flatPath": "v1/customBiddingAlgorithms",
31478	//   "httpMethod": "GET",
31479	//   "id": "displayvideo.customBiddingAlgorithms.list",
31480	//   "parameterOrder": [],
31481	//   "parameters": {
31482	//     "advertiserId": {
31483	//       "description": "The ID of the DV360 advertiser that has access to the custom bidding algorithm.",
31484	//       "format": "int64",
31485	//       "location": "query",
31486	//       "type": "string"
31487	//     },
31488	//     "filter": {
31489	//       "description": "Allows filtering by custom bidding algorithm fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND`. A sequence of restrictions * implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)` or `EQUALS (=)`. * The operator must be `CONTAINS (:)` for the following field: - `displayName` * The operator must be `EQUALS (=)` for the following field: - `customBiddingAlgorithmType` - `customBiddingAlgorithmState` * For `displayName`, the value is a string. We return all custom bidding algorithms whose display_name contains such string. * For `customBiddingAlgorithmType`, the value is a string. We return all algorithms whose custom_bidding_algorithm_type is equal to the given type. * For `customBiddingAlgorithmState`, the value is a string. We return all algorithms whose custom_bidding_algorithm_state is equal to the given type. Examples: * All custom bidding algorithms for which the display name contains \"politics\": `displayName:politics`. * All custom bidding algorithms for which the type is \"SCRIPT_BASED\": `customBiddingAlgorithmType=SCRIPT_BASED` * All custom bidding algorithms for which the state is \"ENABLED\": `customBiddingAlgorithmState=ENABLED` The length of this field should be no more than 500 characters.",
31490	//       "location": "query",
31491	//       "type": "string"
31492	//     },
31493	//     "orderBy": {
31494	//       "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.",
31495	//       "location": "query",
31496	//       "type": "string"
31497	//     },
31498	//     "pageSize": {
31499	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
31500	//       "format": "int32",
31501	//       "location": "query",
31502	//       "type": "integer"
31503	//     },
31504	//     "pageToken": {
31505	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCustomBiddingAlgorithms` method. If not specified, the first page of results will be returned.",
31506	//       "location": "query",
31507	//       "type": "string"
31508	//     },
31509	//     "partnerId": {
31510	//       "description": "The ID of the DV360 partner that has access to the custom bidding algorithm.",
31511	//       "format": "int64",
31512	//       "location": "query",
31513	//       "type": "string"
31514	//     }
31515	//   },
31516	//   "path": "v1/customBiddingAlgorithms",
31517	//   "response": {
31518	//     "$ref": "ListCustomBiddingAlgorithmsResponse"
31519	//   },
31520	//   "scopes": [
31521	//     "https://www.googleapis.com/auth/display-video"
31522	//   ]
31523	// }
31524
31525}
31526
31527// Pages invokes f for each page of results.
31528// A non-nil error returned from f will halt the iteration.
31529// The provided context supersedes any context provided to the Context method.
31530func (c *CustomBiddingAlgorithmsListCall) Pages(ctx context.Context, f func(*ListCustomBiddingAlgorithmsResponse) error) error {
31531	c.ctx_ = ctx
31532	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
31533	for {
31534		x, err := c.Do()
31535		if err != nil {
31536			return err
31537		}
31538		if err := f(x); err != nil {
31539			return err
31540		}
31541		if x.NextPageToken == "" {
31542			return nil
31543		}
31544		c.PageToken(x.NextPageToken)
31545	}
31546}
31547
31548// method id "displayvideo.customBiddingAlgorithms.patch":
31549
31550type CustomBiddingAlgorithmsPatchCall struct {
31551	s                        *Service
31552	customBiddingAlgorithmId int64
31553	custombiddingalgorithm   *CustomBiddingAlgorithm
31554	urlParams_               gensupport.URLParams
31555	ctx_                     context.Context
31556	header_                  http.Header
31557}
31558
31559// Patch: Updates an existing custom bidding algorithm. Returns the
31560// updated custom bidding algorithm if successful.
31561//
31562// - customBiddingAlgorithmId: Output only. The unique ID of the custom
31563//   bidding algorithm. Assigned by the system.
31564func (r *CustomBiddingAlgorithmsService) Patch(customBiddingAlgorithmId int64, custombiddingalgorithm *CustomBiddingAlgorithm) *CustomBiddingAlgorithmsPatchCall {
31565	c := &CustomBiddingAlgorithmsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31566	c.customBiddingAlgorithmId = customBiddingAlgorithmId
31567	c.custombiddingalgorithm = custombiddingalgorithm
31568	return c
31569}
31570
31571// UpdateMask sets the optional parameter "updateMask": Required. The
31572// mask to control which fields to update.
31573func (c *CustomBiddingAlgorithmsPatchCall) UpdateMask(updateMask string) *CustomBiddingAlgorithmsPatchCall {
31574	c.urlParams_.Set("updateMask", updateMask)
31575	return c
31576}
31577
31578// Fields allows partial responses to be retrieved. See
31579// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31580// for more information.
31581func (c *CustomBiddingAlgorithmsPatchCall) Fields(s ...googleapi.Field) *CustomBiddingAlgorithmsPatchCall {
31582	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31583	return c
31584}
31585
31586// Context sets the context to be used in this call's Do method. Any
31587// pending HTTP request will be aborted if the provided context is
31588// canceled.
31589func (c *CustomBiddingAlgorithmsPatchCall) Context(ctx context.Context) *CustomBiddingAlgorithmsPatchCall {
31590	c.ctx_ = ctx
31591	return c
31592}
31593
31594// Header returns an http.Header that can be modified by the caller to
31595// add HTTP headers to the request.
31596func (c *CustomBiddingAlgorithmsPatchCall) Header() http.Header {
31597	if c.header_ == nil {
31598		c.header_ = make(http.Header)
31599	}
31600	return c.header_
31601}
31602
31603func (c *CustomBiddingAlgorithmsPatchCall) doRequest(alt string) (*http.Response, error) {
31604	reqHeaders := make(http.Header)
31605	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
31606	for k, v := range c.header_ {
31607		reqHeaders[k] = v
31608	}
31609	reqHeaders.Set("User-Agent", c.s.userAgent())
31610	var body io.Reader = nil
31611	body, err := googleapi.WithoutDataWrapper.JSONReader(c.custombiddingalgorithm)
31612	if err != nil {
31613		return nil, err
31614	}
31615	reqHeaders.Set("Content-Type", "application/json")
31616	c.urlParams_.Set("alt", alt)
31617	c.urlParams_.Set("prettyPrint", "false")
31618	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}")
31619	urls += "?" + c.urlParams_.Encode()
31620	req, err := http.NewRequest("PATCH", urls, body)
31621	if err != nil {
31622		return nil, err
31623	}
31624	req.Header = reqHeaders
31625	googleapi.Expand(req.URL, map[string]string{
31626		"customBiddingAlgorithmId": strconv.FormatInt(c.customBiddingAlgorithmId, 10),
31627	})
31628	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31629}
31630
31631// Do executes the "displayvideo.customBiddingAlgorithms.patch" call.
31632// Exactly one of *CustomBiddingAlgorithm or error will be non-nil. Any
31633// non-2xx status code is an error. Response headers are in either
31634// *CustomBiddingAlgorithm.ServerResponse.Header or (if a response was
31635// returned at all) in error.(*googleapi.Error).Header. Use
31636// googleapi.IsNotModified to check whether the returned error was
31637// because http.StatusNotModified was returned.
31638func (c *CustomBiddingAlgorithmsPatchCall) Do(opts ...googleapi.CallOption) (*CustomBiddingAlgorithm, error) {
31639	gensupport.SetOptions(c.urlParams_, opts...)
31640	res, err := c.doRequest("json")
31641	if res != nil && res.StatusCode == http.StatusNotModified {
31642		if res.Body != nil {
31643			res.Body.Close()
31644		}
31645		return nil, &googleapi.Error{
31646			Code:   res.StatusCode,
31647			Header: res.Header,
31648		}
31649	}
31650	if err != nil {
31651		return nil, err
31652	}
31653	defer googleapi.CloseBody(res)
31654	if err := googleapi.CheckResponse(res); err != nil {
31655		return nil, err
31656	}
31657	ret := &CustomBiddingAlgorithm{
31658		ServerResponse: googleapi.ServerResponse{
31659			Header:         res.Header,
31660			HTTPStatusCode: res.StatusCode,
31661		},
31662	}
31663	target := &ret
31664	if err := gensupport.DecodeResponse(target, res); err != nil {
31665		return nil, err
31666	}
31667	return ret, nil
31668	// {
31669	//   "description": "Updates an existing custom bidding algorithm. Returns the updated custom bidding algorithm if successful.",
31670	//   "flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}",
31671	//   "httpMethod": "PATCH",
31672	//   "id": "displayvideo.customBiddingAlgorithms.patch",
31673	//   "parameterOrder": [
31674	//     "customBiddingAlgorithmId"
31675	//   ],
31676	//   "parameters": {
31677	//     "customBiddingAlgorithmId": {
31678	//       "description": "Output only. The unique ID of the custom bidding algorithm. Assigned by the system.",
31679	//       "format": "int64",
31680	//       "location": "path",
31681	//       "pattern": "^[^/]+$",
31682	//       "required": true,
31683	//       "type": "string"
31684	//     },
31685	//     "updateMask": {
31686	//       "description": "Required. The mask to control which fields to update.",
31687	//       "format": "google-fieldmask",
31688	//       "location": "query",
31689	//       "type": "string"
31690	//     }
31691	//   },
31692	//   "path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}",
31693	//   "request": {
31694	//     "$ref": "CustomBiddingAlgorithm"
31695	//   },
31696	//   "response": {
31697	//     "$ref": "CustomBiddingAlgorithm"
31698	//   },
31699	//   "scopes": [
31700	//     "https://www.googleapis.com/auth/display-video"
31701	//   ]
31702	// }
31703
31704}
31705
31706// method id "displayvideo.customLists.get":
31707
31708type CustomListsGetCall struct {
31709	s            *Service
31710	customListId int64
31711	urlParams_   gensupport.URLParams
31712	ifNoneMatch_ string
31713	ctx_         context.Context
31714	header_      http.Header
31715}
31716
31717// Get: Gets a custom list.
31718//
31719// - customListId: The ID of the custom list to fetch.
31720func (r *CustomListsService) Get(customListId int64) *CustomListsGetCall {
31721	c := &CustomListsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31722	c.customListId = customListId
31723	return c
31724}
31725
31726// AdvertiserId sets the optional parameter "advertiserId": The ID of
31727// the DV360 advertiser that has access to the fetched custom lists.
31728func (c *CustomListsGetCall) AdvertiserId(advertiserId int64) *CustomListsGetCall {
31729	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
31730	return c
31731}
31732
31733// Fields allows partial responses to be retrieved. See
31734// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31735// for more information.
31736func (c *CustomListsGetCall) Fields(s ...googleapi.Field) *CustomListsGetCall {
31737	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31738	return c
31739}
31740
31741// IfNoneMatch sets the optional parameter which makes the operation
31742// fail if the object's ETag matches the given value. This is useful for
31743// getting updates only after the object has changed since the last
31744// request. Use googleapi.IsNotModified to check whether the response
31745// error from Do is the result of In-None-Match.
31746func (c *CustomListsGetCall) IfNoneMatch(entityTag string) *CustomListsGetCall {
31747	c.ifNoneMatch_ = entityTag
31748	return c
31749}
31750
31751// Context sets the context to be used in this call's Do method. Any
31752// pending HTTP request will be aborted if the provided context is
31753// canceled.
31754func (c *CustomListsGetCall) Context(ctx context.Context) *CustomListsGetCall {
31755	c.ctx_ = ctx
31756	return c
31757}
31758
31759// Header returns an http.Header that can be modified by the caller to
31760// add HTTP headers to the request.
31761func (c *CustomListsGetCall) Header() http.Header {
31762	if c.header_ == nil {
31763		c.header_ = make(http.Header)
31764	}
31765	return c.header_
31766}
31767
31768func (c *CustomListsGetCall) doRequest(alt string) (*http.Response, error) {
31769	reqHeaders := make(http.Header)
31770	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
31771	for k, v := range c.header_ {
31772		reqHeaders[k] = v
31773	}
31774	reqHeaders.Set("User-Agent", c.s.userAgent())
31775	if c.ifNoneMatch_ != "" {
31776		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31777	}
31778	var body io.Reader = nil
31779	c.urlParams_.Set("alt", alt)
31780	c.urlParams_.Set("prettyPrint", "false")
31781	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/customLists/{+customListId}")
31782	urls += "?" + c.urlParams_.Encode()
31783	req, err := http.NewRequest("GET", urls, body)
31784	if err != nil {
31785		return nil, err
31786	}
31787	req.Header = reqHeaders
31788	googleapi.Expand(req.URL, map[string]string{
31789		"customListId": strconv.FormatInt(c.customListId, 10),
31790	})
31791	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31792}
31793
31794// Do executes the "displayvideo.customLists.get" call.
31795// Exactly one of *CustomList or error will be non-nil. Any non-2xx
31796// status code is an error. Response headers are in either
31797// *CustomList.ServerResponse.Header or (if a response was returned at
31798// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
31799// to check whether the returned error was because
31800// http.StatusNotModified was returned.
31801func (c *CustomListsGetCall) Do(opts ...googleapi.CallOption) (*CustomList, error) {
31802	gensupport.SetOptions(c.urlParams_, opts...)
31803	res, err := c.doRequest("json")
31804	if res != nil && res.StatusCode == http.StatusNotModified {
31805		if res.Body != nil {
31806			res.Body.Close()
31807		}
31808		return nil, &googleapi.Error{
31809			Code:   res.StatusCode,
31810			Header: res.Header,
31811		}
31812	}
31813	if err != nil {
31814		return nil, err
31815	}
31816	defer googleapi.CloseBody(res)
31817	if err := googleapi.CheckResponse(res); err != nil {
31818		return nil, err
31819	}
31820	ret := &CustomList{
31821		ServerResponse: googleapi.ServerResponse{
31822			Header:         res.Header,
31823			HTTPStatusCode: res.StatusCode,
31824		},
31825	}
31826	target := &ret
31827	if err := gensupport.DecodeResponse(target, res); err != nil {
31828		return nil, err
31829	}
31830	return ret, nil
31831	// {
31832	//   "description": "Gets a custom list.",
31833	//   "flatPath": "v1/customLists/{customListsId}",
31834	//   "httpMethod": "GET",
31835	//   "id": "displayvideo.customLists.get",
31836	//   "parameterOrder": [
31837	//     "customListId"
31838	//   ],
31839	//   "parameters": {
31840	//     "advertiserId": {
31841	//       "description": "The ID of the DV360 advertiser that has access to the fetched custom lists.",
31842	//       "format": "int64",
31843	//       "location": "query",
31844	//       "type": "string"
31845	//     },
31846	//     "customListId": {
31847	//       "description": "Required. The ID of the custom list to fetch.",
31848	//       "format": "int64",
31849	//       "location": "path",
31850	//       "pattern": "^[^/]+$",
31851	//       "required": true,
31852	//       "type": "string"
31853	//     }
31854	//   },
31855	//   "path": "v1/customLists/{+customListId}",
31856	//   "response": {
31857	//     "$ref": "CustomList"
31858	//   },
31859	//   "scopes": [
31860	//     "https://www.googleapis.com/auth/display-video"
31861	//   ]
31862	// }
31863
31864}
31865
31866// method id "displayvideo.customLists.list":
31867
31868type CustomListsListCall struct {
31869	s            *Service
31870	urlParams_   gensupport.URLParams
31871	ifNoneMatch_ string
31872	ctx_         context.Context
31873	header_      http.Header
31874}
31875
31876// List: Lists custom lists. The order is defined by the order_by
31877// parameter.
31878func (r *CustomListsService) List() *CustomListsListCall {
31879	c := &CustomListsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31880	return c
31881}
31882
31883// AdvertiserId sets the optional parameter "advertiserId": The ID of
31884// the DV360 advertiser that has access to the fetched custom lists.
31885func (c *CustomListsListCall) AdvertiserId(advertiserId int64) *CustomListsListCall {
31886	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
31887	return c
31888}
31889
31890// Filter sets the optional parameter "filter": Allows filtering by
31891// custom list fields. Supported syntax: * Filter expressions for custom
31892// lists currently can only contain at most one restriction. * A
31893// restriction has the form of `{field} {operator} {value}`. * The
31894// operator must be `CONTAINS (:)`. * Supported fields: - `displayName`
31895// Examples: * All custom lists for which the display name contains
31896// "Google": `displayName : "Google". The length of this field should
31897// be no more than 500 characters.
31898func (c *CustomListsListCall) Filter(filter string) *CustomListsListCall {
31899	c.urlParams_.Set("filter", filter)
31900	return c
31901}
31902
31903// OrderBy sets the optional parameter "orderBy": Field by which to sort
31904// the list. Acceptable values are: * `customListId` (default) *
31905// `displayName` The default sorting order is ascending. To specify
31906// descending order for a field, a suffix "desc" should be added to the
31907// field name. Example: `displayName desc`.
31908func (c *CustomListsListCall) OrderBy(orderBy string) *CustomListsListCall {
31909	c.urlParams_.Set("orderBy", orderBy)
31910	return c
31911}
31912
31913// PageSize sets the optional parameter "pageSize": Requested page size.
31914// Must be between `1` and `100`. If unspecified will default to `100`.
31915// Returns error code `INVALID_ARGUMENT` if an invalid value is
31916// specified.
31917func (c *CustomListsListCall) PageSize(pageSize int64) *CustomListsListCall {
31918	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
31919	return c
31920}
31921
31922// PageToken sets the optional parameter "pageToken": A token
31923// identifying a page of results the server should return. Typically,
31924// this is the value of next_page_token returned from the previous call
31925// to `ListCustomLists` method. If not specified, the first page of
31926// results will be returned.
31927func (c *CustomListsListCall) PageToken(pageToken string) *CustomListsListCall {
31928	c.urlParams_.Set("pageToken", pageToken)
31929	return c
31930}
31931
31932// Fields allows partial responses to be retrieved. See
31933// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31934// for more information.
31935func (c *CustomListsListCall) Fields(s ...googleapi.Field) *CustomListsListCall {
31936	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31937	return c
31938}
31939
31940// IfNoneMatch sets the optional parameter which makes the operation
31941// fail if the object's ETag matches the given value. This is useful for
31942// getting updates only after the object has changed since the last
31943// request. Use googleapi.IsNotModified to check whether the response
31944// error from Do is the result of In-None-Match.
31945func (c *CustomListsListCall) IfNoneMatch(entityTag string) *CustomListsListCall {
31946	c.ifNoneMatch_ = entityTag
31947	return c
31948}
31949
31950// Context sets the context to be used in this call's Do method. Any
31951// pending HTTP request will be aborted if the provided context is
31952// canceled.
31953func (c *CustomListsListCall) Context(ctx context.Context) *CustomListsListCall {
31954	c.ctx_ = ctx
31955	return c
31956}
31957
31958// Header returns an http.Header that can be modified by the caller to
31959// add HTTP headers to the request.
31960func (c *CustomListsListCall) Header() http.Header {
31961	if c.header_ == nil {
31962		c.header_ = make(http.Header)
31963	}
31964	return c.header_
31965}
31966
31967func (c *CustomListsListCall) doRequest(alt string) (*http.Response, error) {
31968	reqHeaders := make(http.Header)
31969	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
31970	for k, v := range c.header_ {
31971		reqHeaders[k] = v
31972	}
31973	reqHeaders.Set("User-Agent", c.s.userAgent())
31974	if c.ifNoneMatch_ != "" {
31975		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31976	}
31977	var body io.Reader = nil
31978	c.urlParams_.Set("alt", alt)
31979	c.urlParams_.Set("prettyPrint", "false")
31980	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/customLists")
31981	urls += "?" + c.urlParams_.Encode()
31982	req, err := http.NewRequest("GET", urls, body)
31983	if err != nil {
31984		return nil, err
31985	}
31986	req.Header = reqHeaders
31987	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31988}
31989
31990// Do executes the "displayvideo.customLists.list" call.
31991// Exactly one of *ListCustomListsResponse or error will be non-nil. Any
31992// non-2xx status code is an error. Response headers are in either
31993// *ListCustomListsResponse.ServerResponse.Header or (if a response was
31994// returned at all) in error.(*googleapi.Error).Header. Use
31995// googleapi.IsNotModified to check whether the returned error was
31996// because http.StatusNotModified was returned.
31997func (c *CustomListsListCall) Do(opts ...googleapi.CallOption) (*ListCustomListsResponse, error) {
31998	gensupport.SetOptions(c.urlParams_, opts...)
31999	res, err := c.doRequest("json")
32000	if res != nil && res.StatusCode == http.StatusNotModified {
32001		if res.Body != nil {
32002			res.Body.Close()
32003		}
32004		return nil, &googleapi.Error{
32005			Code:   res.StatusCode,
32006			Header: res.Header,
32007		}
32008	}
32009	if err != nil {
32010		return nil, err
32011	}
32012	defer googleapi.CloseBody(res)
32013	if err := googleapi.CheckResponse(res); err != nil {
32014		return nil, err
32015	}
32016	ret := &ListCustomListsResponse{
32017		ServerResponse: googleapi.ServerResponse{
32018			Header:         res.Header,
32019			HTTPStatusCode: res.StatusCode,
32020		},
32021	}
32022	target := &ret
32023	if err := gensupport.DecodeResponse(target, res); err != nil {
32024		return nil, err
32025	}
32026	return ret, nil
32027	// {
32028	//   "description": "Lists custom lists. The order is defined by the order_by parameter.",
32029	//   "flatPath": "v1/customLists",
32030	//   "httpMethod": "GET",
32031	//   "id": "displayvideo.customLists.list",
32032	//   "parameterOrder": [],
32033	//   "parameters": {
32034	//     "advertiserId": {
32035	//       "description": "The ID of the DV360 advertiser that has access to the fetched custom lists.",
32036	//       "format": "int64",
32037	//       "location": "query",
32038	//       "type": "string"
32039	//     },
32040	//     "filter": {
32041	//       "description": "Allows filtering by custom list fields. Supported syntax: * Filter expressions for custom lists currently can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * Supported fields: - `displayName` Examples: * All custom lists for which the display name contains \"Google\": `displayName : \"Google\"`. The length of this field should be no more than 500 characters.",
32042	//       "location": "query",
32043	//       "type": "string"
32044	//     },
32045	//     "orderBy": {
32046	//       "description": "Field by which to sort the list. Acceptable values are: * `customListId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.",
32047	//       "location": "query",
32048	//       "type": "string"
32049	//     },
32050	//     "pageSize": {
32051	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
32052	//       "format": "int32",
32053	//       "location": "query",
32054	//       "type": "integer"
32055	//     },
32056	//     "pageToken": {
32057	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCustomLists` method. If not specified, the first page of results will be returned.",
32058	//       "location": "query",
32059	//       "type": "string"
32060	//     }
32061	//   },
32062	//   "path": "v1/customLists",
32063	//   "response": {
32064	//     "$ref": "ListCustomListsResponse"
32065	//   },
32066	//   "scopes": [
32067	//     "https://www.googleapis.com/auth/display-video"
32068	//   ]
32069	// }
32070
32071}
32072
32073// Pages invokes f for each page of results.
32074// A non-nil error returned from f will halt the iteration.
32075// The provided context supersedes any context provided to the Context method.
32076func (c *CustomListsListCall) Pages(ctx context.Context, f func(*ListCustomListsResponse) error) error {
32077	c.ctx_ = ctx
32078	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
32079	for {
32080		x, err := c.Do()
32081		if err != nil {
32082			return err
32083		}
32084		if err := f(x); err != nil {
32085			return err
32086		}
32087		if x.NextPageToken == "" {
32088			return nil
32089		}
32090		c.PageToken(x.NextPageToken)
32091	}
32092}
32093
32094// method id "displayvideo.firstAndThirdPartyAudiences.get":
32095
32096type FirstAndThirdPartyAudiencesGetCall struct {
32097	s                            *Service
32098	firstAndThirdPartyAudienceId int64
32099	urlParams_                   gensupport.URLParams
32100	ifNoneMatch_                 string
32101	ctx_                         context.Context
32102	header_                      http.Header
32103}
32104
32105// Get: Gets a first and third party audience.
32106//
32107// - firstAndThirdPartyAudienceId: The ID of the first and third party
32108//   audience to fetch.
32109func (r *FirstAndThirdPartyAudiencesService) Get(firstAndThirdPartyAudienceId int64) *FirstAndThirdPartyAudiencesGetCall {
32110	c := &FirstAndThirdPartyAudiencesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32111	c.firstAndThirdPartyAudienceId = firstAndThirdPartyAudienceId
32112	return c
32113}
32114
32115// AdvertiserId sets the optional parameter "advertiserId": The ID of
32116// the advertiser that has access to the fetched first and third party
32117// audience.
32118func (c *FirstAndThirdPartyAudiencesGetCall) AdvertiserId(advertiserId int64) *FirstAndThirdPartyAudiencesGetCall {
32119	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
32120	return c
32121}
32122
32123// PartnerId sets the optional parameter "partnerId": The ID of the
32124// partner that has access to the fetched first and third party
32125// audience.
32126func (c *FirstAndThirdPartyAudiencesGetCall) PartnerId(partnerId int64) *FirstAndThirdPartyAudiencesGetCall {
32127	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
32128	return c
32129}
32130
32131// Fields allows partial responses to be retrieved. See
32132// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32133// for more information.
32134func (c *FirstAndThirdPartyAudiencesGetCall) Fields(s ...googleapi.Field) *FirstAndThirdPartyAudiencesGetCall {
32135	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32136	return c
32137}
32138
32139// IfNoneMatch sets the optional parameter which makes the operation
32140// fail if the object's ETag matches the given value. This is useful for
32141// getting updates only after the object has changed since the last
32142// request. Use googleapi.IsNotModified to check whether the response
32143// error from Do is the result of In-None-Match.
32144func (c *FirstAndThirdPartyAudiencesGetCall) IfNoneMatch(entityTag string) *FirstAndThirdPartyAudiencesGetCall {
32145	c.ifNoneMatch_ = entityTag
32146	return c
32147}
32148
32149// Context sets the context to be used in this call's Do method. Any
32150// pending HTTP request will be aborted if the provided context is
32151// canceled.
32152func (c *FirstAndThirdPartyAudiencesGetCall) Context(ctx context.Context) *FirstAndThirdPartyAudiencesGetCall {
32153	c.ctx_ = ctx
32154	return c
32155}
32156
32157// Header returns an http.Header that can be modified by the caller to
32158// add HTTP headers to the request.
32159func (c *FirstAndThirdPartyAudiencesGetCall) Header() http.Header {
32160	if c.header_ == nil {
32161		c.header_ = make(http.Header)
32162	}
32163	return c.header_
32164}
32165
32166func (c *FirstAndThirdPartyAudiencesGetCall) doRequest(alt string) (*http.Response, error) {
32167	reqHeaders := make(http.Header)
32168	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
32169	for k, v := range c.header_ {
32170		reqHeaders[k] = v
32171	}
32172	reqHeaders.Set("User-Agent", c.s.userAgent())
32173	if c.ifNoneMatch_ != "" {
32174		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
32175	}
32176	var body io.Reader = nil
32177	c.urlParams_.Set("alt", alt)
32178	c.urlParams_.Set("prettyPrint", "false")
32179	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}")
32180	urls += "?" + c.urlParams_.Encode()
32181	req, err := http.NewRequest("GET", urls, body)
32182	if err != nil {
32183		return nil, err
32184	}
32185	req.Header = reqHeaders
32186	googleapi.Expand(req.URL, map[string]string{
32187		"firstAndThirdPartyAudienceId": strconv.FormatInt(c.firstAndThirdPartyAudienceId, 10),
32188	})
32189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32190}
32191
32192// Do executes the "displayvideo.firstAndThirdPartyAudiences.get" call.
32193// Exactly one of *FirstAndThirdPartyAudience or error will be non-nil.
32194// Any non-2xx status code is an error. Response headers are in either
32195// *FirstAndThirdPartyAudience.ServerResponse.Header or (if a response
32196// was returned at all) in error.(*googleapi.Error).Header. Use
32197// googleapi.IsNotModified to check whether the returned error was
32198// because http.StatusNotModified was returned.
32199func (c *FirstAndThirdPartyAudiencesGetCall) Do(opts ...googleapi.CallOption) (*FirstAndThirdPartyAudience, error) {
32200	gensupport.SetOptions(c.urlParams_, opts...)
32201	res, err := c.doRequest("json")
32202	if res != nil && res.StatusCode == http.StatusNotModified {
32203		if res.Body != nil {
32204			res.Body.Close()
32205		}
32206		return nil, &googleapi.Error{
32207			Code:   res.StatusCode,
32208			Header: res.Header,
32209		}
32210	}
32211	if err != nil {
32212		return nil, err
32213	}
32214	defer googleapi.CloseBody(res)
32215	if err := googleapi.CheckResponse(res); err != nil {
32216		return nil, err
32217	}
32218	ret := &FirstAndThirdPartyAudience{
32219		ServerResponse: googleapi.ServerResponse{
32220			Header:         res.Header,
32221			HTTPStatusCode: res.StatusCode,
32222		},
32223	}
32224	target := &ret
32225	if err := gensupport.DecodeResponse(target, res); err != nil {
32226		return nil, err
32227	}
32228	return ret, nil
32229	// {
32230	//   "description": "Gets a first and third party audience.",
32231	//   "flatPath": "v1/firstAndThirdPartyAudiences/{firstAndThirdPartyAudiencesId}",
32232	//   "httpMethod": "GET",
32233	//   "id": "displayvideo.firstAndThirdPartyAudiences.get",
32234	//   "parameterOrder": [
32235	//     "firstAndThirdPartyAudienceId"
32236	//   ],
32237	//   "parameters": {
32238	//     "advertiserId": {
32239	//       "description": "The ID of the advertiser that has access to the fetched first and third party audience.",
32240	//       "format": "int64",
32241	//       "location": "query",
32242	//       "type": "string"
32243	//     },
32244	//     "firstAndThirdPartyAudienceId": {
32245	//       "description": "Required. The ID of the first and third party audience to fetch.",
32246	//       "format": "int64",
32247	//       "location": "path",
32248	//       "pattern": "^[^/]+$",
32249	//       "required": true,
32250	//       "type": "string"
32251	//     },
32252	//     "partnerId": {
32253	//       "description": "The ID of the partner that has access to the fetched first and third party audience.",
32254	//       "format": "int64",
32255	//       "location": "query",
32256	//       "type": "string"
32257	//     }
32258	//   },
32259	//   "path": "v1/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}",
32260	//   "response": {
32261	//     "$ref": "FirstAndThirdPartyAudience"
32262	//   },
32263	//   "scopes": [
32264	//     "https://www.googleapis.com/auth/display-video"
32265	//   ]
32266	// }
32267
32268}
32269
32270// method id "displayvideo.firstAndThirdPartyAudiences.list":
32271
32272type FirstAndThirdPartyAudiencesListCall struct {
32273	s            *Service
32274	urlParams_   gensupport.URLParams
32275	ifNoneMatch_ string
32276	ctx_         context.Context
32277	header_      http.Header
32278}
32279
32280// List: Lists first and third party audiences. The order is defined by
32281// the order_by parameter.
32282func (r *FirstAndThirdPartyAudiencesService) List() *FirstAndThirdPartyAudiencesListCall {
32283	c := &FirstAndThirdPartyAudiencesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32284	return c
32285}
32286
32287// AdvertiserId sets the optional parameter "advertiserId": The ID of
32288// the advertiser that has access to the fetched first and third party
32289// audiences.
32290func (c *FirstAndThirdPartyAudiencesListCall) AdvertiserId(advertiserId int64) *FirstAndThirdPartyAudiencesListCall {
32291	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
32292	return c
32293}
32294
32295// Filter sets the optional parameter "filter": Allows filtering by
32296// first and third party audience fields. Supported syntax: * Filter
32297// expressions for first and third party audiences currently can only
32298// contain at most one restriction. * A restriction has the form of
32299// `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`.
32300// * Supported fields: - `displayName` Examples: * All first and third
32301// party audiences for which the display name contains "Google":
32302// `displayName : "Google". The length of this field should be no more
32303// than 500 characters.
32304func (c *FirstAndThirdPartyAudiencesListCall) Filter(filter string) *FirstAndThirdPartyAudiencesListCall {
32305	c.urlParams_.Set("filter", filter)
32306	return c
32307}
32308
32309// OrderBy sets the optional parameter "orderBy": Field by which to sort
32310// the list. Acceptable values are: * `firstAndThirdPartyAudienceId`
32311// (default) * `displayName` The default sorting order is ascending. To
32312// specify descending order for a field, a suffix "desc" should be added
32313// to the field name. Example: `displayName desc`.
32314func (c *FirstAndThirdPartyAudiencesListCall) OrderBy(orderBy string) *FirstAndThirdPartyAudiencesListCall {
32315	c.urlParams_.Set("orderBy", orderBy)
32316	return c
32317}
32318
32319// PageSize sets the optional parameter "pageSize": Requested page size.
32320// Must be between `1` and `100`. If unspecified will default to `100`.
32321// Returns error code `INVALID_ARGUMENT` if an invalid value is
32322// specified.
32323func (c *FirstAndThirdPartyAudiencesListCall) PageSize(pageSize int64) *FirstAndThirdPartyAudiencesListCall {
32324	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
32325	return c
32326}
32327
32328// PageToken sets the optional parameter "pageToken": A token
32329// identifying a page of results the server should return. Typically,
32330// this is the value of next_page_token returned from the previous call
32331// to `ListFirstAndThirdPartyAudiences` method. If not specified, the
32332// first page of results will be returned.
32333func (c *FirstAndThirdPartyAudiencesListCall) PageToken(pageToken string) *FirstAndThirdPartyAudiencesListCall {
32334	c.urlParams_.Set("pageToken", pageToken)
32335	return c
32336}
32337
32338// PartnerId sets the optional parameter "partnerId": The ID of the
32339// partner that has access to the fetched first and third party
32340// audiences.
32341func (c *FirstAndThirdPartyAudiencesListCall) PartnerId(partnerId int64) *FirstAndThirdPartyAudiencesListCall {
32342	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
32343	return c
32344}
32345
32346// Fields allows partial responses to be retrieved. See
32347// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32348// for more information.
32349func (c *FirstAndThirdPartyAudiencesListCall) Fields(s ...googleapi.Field) *FirstAndThirdPartyAudiencesListCall {
32350	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32351	return c
32352}
32353
32354// IfNoneMatch sets the optional parameter which makes the operation
32355// fail if the object's ETag matches the given value. This is useful for
32356// getting updates only after the object has changed since the last
32357// request. Use googleapi.IsNotModified to check whether the response
32358// error from Do is the result of In-None-Match.
32359func (c *FirstAndThirdPartyAudiencesListCall) IfNoneMatch(entityTag string) *FirstAndThirdPartyAudiencesListCall {
32360	c.ifNoneMatch_ = entityTag
32361	return c
32362}
32363
32364// Context sets the context to be used in this call's Do method. Any
32365// pending HTTP request will be aborted if the provided context is
32366// canceled.
32367func (c *FirstAndThirdPartyAudiencesListCall) Context(ctx context.Context) *FirstAndThirdPartyAudiencesListCall {
32368	c.ctx_ = ctx
32369	return c
32370}
32371
32372// Header returns an http.Header that can be modified by the caller to
32373// add HTTP headers to the request.
32374func (c *FirstAndThirdPartyAudiencesListCall) Header() http.Header {
32375	if c.header_ == nil {
32376		c.header_ = make(http.Header)
32377	}
32378	return c.header_
32379}
32380
32381func (c *FirstAndThirdPartyAudiencesListCall) doRequest(alt string) (*http.Response, error) {
32382	reqHeaders := make(http.Header)
32383	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
32384	for k, v := range c.header_ {
32385		reqHeaders[k] = v
32386	}
32387	reqHeaders.Set("User-Agent", c.s.userAgent())
32388	if c.ifNoneMatch_ != "" {
32389		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
32390	}
32391	var body io.Reader = nil
32392	c.urlParams_.Set("alt", alt)
32393	c.urlParams_.Set("prettyPrint", "false")
32394	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/firstAndThirdPartyAudiences")
32395	urls += "?" + c.urlParams_.Encode()
32396	req, err := http.NewRequest("GET", urls, body)
32397	if err != nil {
32398		return nil, err
32399	}
32400	req.Header = reqHeaders
32401	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32402}
32403
32404// Do executes the "displayvideo.firstAndThirdPartyAudiences.list" call.
32405// Exactly one of *ListFirstAndThirdPartyAudiencesResponse or error will
32406// be non-nil. Any non-2xx status code is an error. Response headers are
32407// in either
32408// *ListFirstAndThirdPartyAudiencesResponse.ServerResponse.Header or (if
32409// a response was returned at all) in error.(*googleapi.Error).Header.
32410// Use googleapi.IsNotModified to check whether the returned error was
32411// because http.StatusNotModified was returned.
32412func (c *FirstAndThirdPartyAudiencesListCall) Do(opts ...googleapi.CallOption) (*ListFirstAndThirdPartyAudiencesResponse, error) {
32413	gensupport.SetOptions(c.urlParams_, opts...)
32414	res, err := c.doRequest("json")
32415	if res != nil && res.StatusCode == http.StatusNotModified {
32416		if res.Body != nil {
32417			res.Body.Close()
32418		}
32419		return nil, &googleapi.Error{
32420			Code:   res.StatusCode,
32421			Header: res.Header,
32422		}
32423	}
32424	if err != nil {
32425		return nil, err
32426	}
32427	defer googleapi.CloseBody(res)
32428	if err := googleapi.CheckResponse(res); err != nil {
32429		return nil, err
32430	}
32431	ret := &ListFirstAndThirdPartyAudiencesResponse{
32432		ServerResponse: googleapi.ServerResponse{
32433			Header:         res.Header,
32434			HTTPStatusCode: res.StatusCode,
32435		},
32436	}
32437	target := &ret
32438	if err := gensupport.DecodeResponse(target, res); err != nil {
32439		return nil, err
32440	}
32441	return ret, nil
32442	// {
32443	//   "description": "Lists first and third party audiences. The order is defined by the order_by parameter.",
32444	//   "flatPath": "v1/firstAndThirdPartyAudiences",
32445	//   "httpMethod": "GET",
32446	//   "id": "displayvideo.firstAndThirdPartyAudiences.list",
32447	//   "parameterOrder": [],
32448	//   "parameters": {
32449	//     "advertiserId": {
32450	//       "description": "The ID of the advertiser that has access to the fetched first and third party audiences.",
32451	//       "format": "int64",
32452	//       "location": "query",
32453	//       "type": "string"
32454	//     },
32455	//     "filter": {
32456	//       "description": "Allows filtering by first and third party audience fields. Supported syntax: * Filter expressions for first and third party audiences currently can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * Supported fields: - `displayName` Examples: * All first and third party audiences for which the display name contains \"Google\": `displayName : \"Google\"`. The length of this field should be no more than 500 characters.",
32457	//       "location": "query",
32458	//       "type": "string"
32459	//     },
32460	//     "orderBy": {
32461	//       "description": "Field by which to sort the list. Acceptable values are: * `firstAndThirdPartyAudienceId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.",
32462	//       "location": "query",
32463	//       "type": "string"
32464	//     },
32465	//     "pageSize": {
32466	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
32467	//       "format": "int32",
32468	//       "location": "query",
32469	//       "type": "integer"
32470	//     },
32471	//     "pageToken": {
32472	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListFirstAndThirdPartyAudiences` method. If not specified, the first page of results will be returned.",
32473	//       "location": "query",
32474	//       "type": "string"
32475	//     },
32476	//     "partnerId": {
32477	//       "description": "The ID of the partner that has access to the fetched first and third party audiences.",
32478	//       "format": "int64",
32479	//       "location": "query",
32480	//       "type": "string"
32481	//     }
32482	//   },
32483	//   "path": "v1/firstAndThirdPartyAudiences",
32484	//   "response": {
32485	//     "$ref": "ListFirstAndThirdPartyAudiencesResponse"
32486	//   },
32487	//   "scopes": [
32488	//     "https://www.googleapis.com/auth/display-video"
32489	//   ]
32490	// }
32491
32492}
32493
32494// Pages invokes f for each page of results.
32495// A non-nil error returned from f will halt the iteration.
32496// The provided context supersedes any context provided to the Context method.
32497func (c *FirstAndThirdPartyAudiencesListCall) Pages(ctx context.Context, f func(*ListFirstAndThirdPartyAudiencesResponse) error) error {
32498	c.ctx_ = ctx
32499	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
32500	for {
32501		x, err := c.Do()
32502		if err != nil {
32503			return err
32504		}
32505		if err := f(x); err != nil {
32506			return err
32507		}
32508		if x.NextPageToken == "" {
32509			return nil
32510		}
32511		c.PageToken(x.NextPageToken)
32512	}
32513}
32514
32515// method id "displayvideo.floodlightGroups.get":
32516
32517type FloodlightGroupsGetCall struct {
32518	s                 *Service
32519	floodlightGroupId int64
32520	urlParams_        gensupport.URLParams
32521	ifNoneMatch_      string
32522	ctx_              context.Context
32523	header_           http.Header
32524}
32525
32526// Get: Gets a Floodlight group.
32527//
32528// - floodlightGroupId: The ID of the Floodlight group to fetch.
32529func (r *FloodlightGroupsService) Get(floodlightGroupId int64) *FloodlightGroupsGetCall {
32530	c := &FloodlightGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32531	c.floodlightGroupId = floodlightGroupId
32532	return c
32533}
32534
32535// PartnerId sets the optional parameter "partnerId": Required. The
32536// partner context by which the Floodlight group is being accessed.
32537func (c *FloodlightGroupsGetCall) PartnerId(partnerId int64) *FloodlightGroupsGetCall {
32538	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
32539	return c
32540}
32541
32542// Fields allows partial responses to be retrieved. See
32543// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32544// for more information.
32545func (c *FloodlightGroupsGetCall) Fields(s ...googleapi.Field) *FloodlightGroupsGetCall {
32546	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32547	return c
32548}
32549
32550// IfNoneMatch sets the optional parameter which makes the operation
32551// fail if the object's ETag matches the given value. This is useful for
32552// getting updates only after the object has changed since the last
32553// request. Use googleapi.IsNotModified to check whether the response
32554// error from Do is the result of In-None-Match.
32555func (c *FloodlightGroupsGetCall) IfNoneMatch(entityTag string) *FloodlightGroupsGetCall {
32556	c.ifNoneMatch_ = entityTag
32557	return c
32558}
32559
32560// Context sets the context to be used in this call's Do method. Any
32561// pending HTTP request will be aborted if the provided context is
32562// canceled.
32563func (c *FloodlightGroupsGetCall) Context(ctx context.Context) *FloodlightGroupsGetCall {
32564	c.ctx_ = ctx
32565	return c
32566}
32567
32568// Header returns an http.Header that can be modified by the caller to
32569// add HTTP headers to the request.
32570func (c *FloodlightGroupsGetCall) Header() http.Header {
32571	if c.header_ == nil {
32572		c.header_ = make(http.Header)
32573	}
32574	return c.header_
32575}
32576
32577func (c *FloodlightGroupsGetCall) doRequest(alt string) (*http.Response, error) {
32578	reqHeaders := make(http.Header)
32579	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
32580	for k, v := range c.header_ {
32581		reqHeaders[k] = v
32582	}
32583	reqHeaders.Set("User-Agent", c.s.userAgent())
32584	if c.ifNoneMatch_ != "" {
32585		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
32586	}
32587	var body io.Reader = nil
32588	c.urlParams_.Set("alt", alt)
32589	c.urlParams_.Set("prettyPrint", "false")
32590	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/floodlightGroups/{+floodlightGroupId}")
32591	urls += "?" + c.urlParams_.Encode()
32592	req, err := http.NewRequest("GET", urls, body)
32593	if err != nil {
32594		return nil, err
32595	}
32596	req.Header = reqHeaders
32597	googleapi.Expand(req.URL, map[string]string{
32598		"floodlightGroupId": strconv.FormatInt(c.floodlightGroupId, 10),
32599	})
32600	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32601}
32602
32603// Do executes the "displayvideo.floodlightGroups.get" call.
32604// Exactly one of *FloodlightGroup or error will be non-nil. Any non-2xx
32605// status code is an error. Response headers are in either
32606// *FloodlightGroup.ServerResponse.Header or (if a response was returned
32607// at all) in error.(*googleapi.Error).Header. Use
32608// googleapi.IsNotModified to check whether the returned error was
32609// because http.StatusNotModified was returned.
32610func (c *FloodlightGroupsGetCall) Do(opts ...googleapi.CallOption) (*FloodlightGroup, error) {
32611	gensupport.SetOptions(c.urlParams_, opts...)
32612	res, err := c.doRequest("json")
32613	if res != nil && res.StatusCode == http.StatusNotModified {
32614		if res.Body != nil {
32615			res.Body.Close()
32616		}
32617		return nil, &googleapi.Error{
32618			Code:   res.StatusCode,
32619			Header: res.Header,
32620		}
32621	}
32622	if err != nil {
32623		return nil, err
32624	}
32625	defer googleapi.CloseBody(res)
32626	if err := googleapi.CheckResponse(res); err != nil {
32627		return nil, err
32628	}
32629	ret := &FloodlightGroup{
32630		ServerResponse: googleapi.ServerResponse{
32631			Header:         res.Header,
32632			HTTPStatusCode: res.StatusCode,
32633		},
32634	}
32635	target := &ret
32636	if err := gensupport.DecodeResponse(target, res); err != nil {
32637		return nil, err
32638	}
32639	return ret, nil
32640	// {
32641	//   "description": "Gets a Floodlight group.",
32642	//   "flatPath": "v1/floodlightGroups/{floodlightGroupsId}",
32643	//   "httpMethod": "GET",
32644	//   "id": "displayvideo.floodlightGroups.get",
32645	//   "parameterOrder": [
32646	//     "floodlightGroupId"
32647	//   ],
32648	//   "parameters": {
32649	//     "floodlightGroupId": {
32650	//       "description": "Required. The ID of the Floodlight group to fetch.",
32651	//       "format": "int64",
32652	//       "location": "path",
32653	//       "pattern": "^[^/]+$",
32654	//       "required": true,
32655	//       "type": "string"
32656	//     },
32657	//     "partnerId": {
32658	//       "description": "Required. The partner context by which the Floodlight group is being accessed.",
32659	//       "format": "int64",
32660	//       "location": "query",
32661	//       "type": "string"
32662	//     }
32663	//   },
32664	//   "path": "v1/floodlightGroups/{+floodlightGroupId}",
32665	//   "response": {
32666	//     "$ref": "FloodlightGroup"
32667	//   },
32668	//   "scopes": [
32669	//     "https://www.googleapis.com/auth/display-video"
32670	//   ]
32671	// }
32672
32673}
32674
32675// method id "displayvideo.floodlightGroups.patch":
32676
32677type FloodlightGroupsPatchCall struct {
32678	s                 *Service
32679	floodlightGroupId int64
32680	floodlightgroup   *FloodlightGroup
32681	urlParams_        gensupport.URLParams
32682	ctx_              context.Context
32683	header_           http.Header
32684}
32685
32686// Patch: Updates an existing Floodlight group. Returns the updated
32687// Floodlight group if successful.
32688//
32689// - floodlightGroupId: Output only. The unique ID of the Floodlight
32690//   group. Assigned by the system.
32691func (r *FloodlightGroupsService) Patch(floodlightGroupId int64, floodlightgroup *FloodlightGroup) *FloodlightGroupsPatchCall {
32692	c := &FloodlightGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32693	c.floodlightGroupId = floodlightGroupId
32694	c.floodlightgroup = floodlightgroup
32695	return c
32696}
32697
32698// PartnerId sets the optional parameter "partnerId": Required. The
32699// partner context by which the Floodlight group is being accessed.
32700func (c *FloodlightGroupsPatchCall) PartnerId(partnerId int64) *FloodlightGroupsPatchCall {
32701	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
32702	return c
32703}
32704
32705// UpdateMask sets the optional parameter "updateMask": Required. The
32706// mask to control which fields to update.
32707func (c *FloodlightGroupsPatchCall) UpdateMask(updateMask string) *FloodlightGroupsPatchCall {
32708	c.urlParams_.Set("updateMask", updateMask)
32709	return c
32710}
32711
32712// Fields allows partial responses to be retrieved. See
32713// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32714// for more information.
32715func (c *FloodlightGroupsPatchCall) Fields(s ...googleapi.Field) *FloodlightGroupsPatchCall {
32716	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32717	return c
32718}
32719
32720// Context sets the context to be used in this call's Do method. Any
32721// pending HTTP request will be aborted if the provided context is
32722// canceled.
32723func (c *FloodlightGroupsPatchCall) Context(ctx context.Context) *FloodlightGroupsPatchCall {
32724	c.ctx_ = ctx
32725	return c
32726}
32727
32728// Header returns an http.Header that can be modified by the caller to
32729// add HTTP headers to the request.
32730func (c *FloodlightGroupsPatchCall) Header() http.Header {
32731	if c.header_ == nil {
32732		c.header_ = make(http.Header)
32733	}
32734	return c.header_
32735}
32736
32737func (c *FloodlightGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
32738	reqHeaders := make(http.Header)
32739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
32740	for k, v := range c.header_ {
32741		reqHeaders[k] = v
32742	}
32743	reqHeaders.Set("User-Agent", c.s.userAgent())
32744	var body io.Reader = nil
32745	body, err := googleapi.WithoutDataWrapper.JSONReader(c.floodlightgroup)
32746	if err != nil {
32747		return nil, err
32748	}
32749	reqHeaders.Set("Content-Type", "application/json")
32750	c.urlParams_.Set("alt", alt)
32751	c.urlParams_.Set("prettyPrint", "false")
32752	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/floodlightGroups/{floodlightGroupId}")
32753	urls += "?" + c.urlParams_.Encode()
32754	req, err := http.NewRequest("PATCH", urls, body)
32755	if err != nil {
32756		return nil, err
32757	}
32758	req.Header = reqHeaders
32759	googleapi.Expand(req.URL, map[string]string{
32760		"floodlightGroupId": strconv.FormatInt(c.floodlightGroupId, 10),
32761	})
32762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32763}
32764
32765// Do executes the "displayvideo.floodlightGroups.patch" call.
32766// Exactly one of *FloodlightGroup or error will be non-nil. Any non-2xx
32767// status code is an error. Response headers are in either
32768// *FloodlightGroup.ServerResponse.Header or (if a response was returned
32769// at all) in error.(*googleapi.Error).Header. Use
32770// googleapi.IsNotModified to check whether the returned error was
32771// because http.StatusNotModified was returned.
32772func (c *FloodlightGroupsPatchCall) Do(opts ...googleapi.CallOption) (*FloodlightGroup, error) {
32773	gensupport.SetOptions(c.urlParams_, opts...)
32774	res, err := c.doRequest("json")
32775	if res != nil && res.StatusCode == http.StatusNotModified {
32776		if res.Body != nil {
32777			res.Body.Close()
32778		}
32779		return nil, &googleapi.Error{
32780			Code:   res.StatusCode,
32781			Header: res.Header,
32782		}
32783	}
32784	if err != nil {
32785		return nil, err
32786	}
32787	defer googleapi.CloseBody(res)
32788	if err := googleapi.CheckResponse(res); err != nil {
32789		return nil, err
32790	}
32791	ret := &FloodlightGroup{
32792		ServerResponse: googleapi.ServerResponse{
32793			Header:         res.Header,
32794			HTTPStatusCode: res.StatusCode,
32795		},
32796	}
32797	target := &ret
32798	if err := gensupport.DecodeResponse(target, res); err != nil {
32799		return nil, err
32800	}
32801	return ret, nil
32802	// {
32803	//   "description": "Updates an existing Floodlight group. Returns the updated Floodlight group if successful.",
32804	//   "flatPath": "v1/floodlightGroups/{floodlightGroupId}",
32805	//   "httpMethod": "PATCH",
32806	//   "id": "displayvideo.floodlightGroups.patch",
32807	//   "parameterOrder": [
32808	//     "floodlightGroupId"
32809	//   ],
32810	//   "parameters": {
32811	//     "floodlightGroupId": {
32812	//       "description": "Output only. The unique ID of the Floodlight group. Assigned by the system.",
32813	//       "format": "int64",
32814	//       "location": "path",
32815	//       "required": true,
32816	//       "type": "string"
32817	//     },
32818	//     "partnerId": {
32819	//       "description": "Required. The partner context by which the Floodlight group is being accessed.",
32820	//       "format": "int64",
32821	//       "location": "query",
32822	//       "type": "string"
32823	//     },
32824	//     "updateMask": {
32825	//       "description": "Required. The mask to control which fields to update.",
32826	//       "format": "google-fieldmask",
32827	//       "location": "query",
32828	//       "type": "string"
32829	//     }
32830	//   },
32831	//   "path": "v1/floodlightGroups/{floodlightGroupId}",
32832	//   "request": {
32833	//     "$ref": "FloodlightGroup"
32834	//   },
32835	//   "response": {
32836	//     "$ref": "FloodlightGroup"
32837	//   },
32838	//   "scopes": [
32839	//     "https://www.googleapis.com/auth/display-video"
32840	//   ]
32841	// }
32842
32843}
32844
32845// method id "displayvideo.googleAudiences.get":
32846
32847type GoogleAudiencesGetCall struct {
32848	s                *Service
32849	googleAudienceId int64
32850	urlParams_       gensupport.URLParams
32851	ifNoneMatch_     string
32852	ctx_             context.Context
32853	header_          http.Header
32854}
32855
32856// Get: Gets a Google audience.
32857//
32858// - googleAudienceId: The ID of the Google audience to fetch.
32859func (r *GoogleAudiencesService) Get(googleAudienceId int64) *GoogleAudiencesGetCall {
32860	c := &GoogleAudiencesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32861	c.googleAudienceId = googleAudienceId
32862	return c
32863}
32864
32865// AdvertiserId sets the optional parameter "advertiserId": The ID of
32866// the advertiser that has access to the fetched Google audience.
32867func (c *GoogleAudiencesGetCall) AdvertiserId(advertiserId int64) *GoogleAudiencesGetCall {
32868	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
32869	return c
32870}
32871
32872// PartnerId sets the optional parameter "partnerId": The ID of the
32873// partner that has access to the fetched Google audience.
32874func (c *GoogleAudiencesGetCall) PartnerId(partnerId int64) *GoogleAudiencesGetCall {
32875	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
32876	return c
32877}
32878
32879// Fields allows partial responses to be retrieved. See
32880// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32881// for more information.
32882func (c *GoogleAudiencesGetCall) Fields(s ...googleapi.Field) *GoogleAudiencesGetCall {
32883	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32884	return c
32885}
32886
32887// IfNoneMatch sets the optional parameter which makes the operation
32888// fail if the object's ETag matches the given value. This is useful for
32889// getting updates only after the object has changed since the last
32890// request. Use googleapi.IsNotModified to check whether the response
32891// error from Do is the result of In-None-Match.
32892func (c *GoogleAudiencesGetCall) IfNoneMatch(entityTag string) *GoogleAudiencesGetCall {
32893	c.ifNoneMatch_ = entityTag
32894	return c
32895}
32896
32897// Context sets the context to be used in this call's Do method. Any
32898// pending HTTP request will be aborted if the provided context is
32899// canceled.
32900func (c *GoogleAudiencesGetCall) Context(ctx context.Context) *GoogleAudiencesGetCall {
32901	c.ctx_ = ctx
32902	return c
32903}
32904
32905// Header returns an http.Header that can be modified by the caller to
32906// add HTTP headers to the request.
32907func (c *GoogleAudiencesGetCall) Header() http.Header {
32908	if c.header_ == nil {
32909		c.header_ = make(http.Header)
32910	}
32911	return c.header_
32912}
32913
32914func (c *GoogleAudiencesGetCall) doRequest(alt string) (*http.Response, error) {
32915	reqHeaders := make(http.Header)
32916	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
32917	for k, v := range c.header_ {
32918		reqHeaders[k] = v
32919	}
32920	reqHeaders.Set("User-Agent", c.s.userAgent())
32921	if c.ifNoneMatch_ != "" {
32922		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
32923	}
32924	var body io.Reader = nil
32925	c.urlParams_.Set("alt", alt)
32926	c.urlParams_.Set("prettyPrint", "false")
32927	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/googleAudiences/{+googleAudienceId}")
32928	urls += "?" + c.urlParams_.Encode()
32929	req, err := http.NewRequest("GET", urls, body)
32930	if err != nil {
32931		return nil, err
32932	}
32933	req.Header = reqHeaders
32934	googleapi.Expand(req.URL, map[string]string{
32935		"googleAudienceId": strconv.FormatInt(c.googleAudienceId, 10),
32936	})
32937	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32938}
32939
32940// Do executes the "displayvideo.googleAudiences.get" call.
32941// Exactly one of *GoogleAudience or error will be non-nil. Any non-2xx
32942// status code is an error. Response headers are in either
32943// *GoogleAudience.ServerResponse.Header or (if a response was returned
32944// at all) in error.(*googleapi.Error).Header. Use
32945// googleapi.IsNotModified to check whether the returned error was
32946// because http.StatusNotModified was returned.
32947func (c *GoogleAudiencesGetCall) Do(opts ...googleapi.CallOption) (*GoogleAudience, error) {
32948	gensupport.SetOptions(c.urlParams_, opts...)
32949	res, err := c.doRequest("json")
32950	if res != nil && res.StatusCode == http.StatusNotModified {
32951		if res.Body != nil {
32952			res.Body.Close()
32953		}
32954		return nil, &googleapi.Error{
32955			Code:   res.StatusCode,
32956			Header: res.Header,
32957		}
32958	}
32959	if err != nil {
32960		return nil, err
32961	}
32962	defer googleapi.CloseBody(res)
32963	if err := googleapi.CheckResponse(res); err != nil {
32964		return nil, err
32965	}
32966	ret := &GoogleAudience{
32967		ServerResponse: googleapi.ServerResponse{
32968			Header:         res.Header,
32969			HTTPStatusCode: res.StatusCode,
32970		},
32971	}
32972	target := &ret
32973	if err := gensupport.DecodeResponse(target, res); err != nil {
32974		return nil, err
32975	}
32976	return ret, nil
32977	// {
32978	//   "description": "Gets a Google audience.",
32979	//   "flatPath": "v1/googleAudiences/{googleAudiencesId}",
32980	//   "httpMethod": "GET",
32981	//   "id": "displayvideo.googleAudiences.get",
32982	//   "parameterOrder": [
32983	//     "googleAudienceId"
32984	//   ],
32985	//   "parameters": {
32986	//     "advertiserId": {
32987	//       "description": "The ID of the advertiser that has access to the fetched Google audience.",
32988	//       "format": "int64",
32989	//       "location": "query",
32990	//       "type": "string"
32991	//     },
32992	//     "googleAudienceId": {
32993	//       "description": "Required. The ID of the Google audience to fetch.",
32994	//       "format": "int64",
32995	//       "location": "path",
32996	//       "pattern": "^[^/]+$",
32997	//       "required": true,
32998	//       "type": "string"
32999	//     },
33000	//     "partnerId": {
33001	//       "description": "The ID of the partner that has access to the fetched Google audience.",
33002	//       "format": "int64",
33003	//       "location": "query",
33004	//       "type": "string"
33005	//     }
33006	//   },
33007	//   "path": "v1/googleAudiences/{+googleAudienceId}",
33008	//   "response": {
33009	//     "$ref": "GoogleAudience"
33010	//   },
33011	//   "scopes": [
33012	//     "https://www.googleapis.com/auth/display-video"
33013	//   ]
33014	// }
33015
33016}
33017
33018// method id "displayvideo.googleAudiences.list":
33019
33020type GoogleAudiencesListCall struct {
33021	s            *Service
33022	urlParams_   gensupport.URLParams
33023	ifNoneMatch_ string
33024	ctx_         context.Context
33025	header_      http.Header
33026}
33027
33028// List: Lists Google audiences. The order is defined by the order_by
33029// parameter.
33030func (r *GoogleAudiencesService) List() *GoogleAudiencesListCall {
33031	c := &GoogleAudiencesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33032	return c
33033}
33034
33035// AdvertiserId sets the optional parameter "advertiserId": The ID of
33036// the advertiser that has access to the fetched Google audiences.
33037func (c *GoogleAudiencesListCall) AdvertiserId(advertiserId int64) *GoogleAudiencesListCall {
33038	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
33039	return c
33040}
33041
33042// Filter sets the optional parameter "filter": Allows filtering by
33043// Google audience fields. Supported syntax: * Filter expressions for
33044// Google audiences currently can only contain at most one restriction.
33045// * A restriction has the form of `{field} {operator} {value}`. * The
33046// operator must be `CONTAINS (:)`. * Supported fields: - `displayName`
33047// Examples: * All Google audiences for which the display name contains
33048// "Google": `displayName : "Google". The length of this field should
33049// be no more than 500 characters.
33050func (c *GoogleAudiencesListCall) Filter(filter string) *GoogleAudiencesListCall {
33051	c.urlParams_.Set("filter", filter)
33052	return c
33053}
33054
33055// OrderBy sets the optional parameter "orderBy": Field by which to sort
33056// the list. Acceptable values are: * `googleAudienceId` (default) *
33057// `displayName` The default sorting order is ascending. To specify
33058// descending order for a field, a suffix "desc" should be added to the
33059// field name. Example: `displayName desc`.
33060func (c *GoogleAudiencesListCall) OrderBy(orderBy string) *GoogleAudiencesListCall {
33061	c.urlParams_.Set("orderBy", orderBy)
33062	return c
33063}
33064
33065// PageSize sets the optional parameter "pageSize": Requested page size.
33066// Must be between `1` and `100`. If unspecified will default to `100`.
33067// Returns error code `INVALID_ARGUMENT` if an invalid value is
33068// specified.
33069func (c *GoogleAudiencesListCall) PageSize(pageSize int64) *GoogleAudiencesListCall {
33070	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
33071	return c
33072}
33073
33074// PageToken sets the optional parameter "pageToken": A token
33075// identifying a page of results the server should return. Typically,
33076// this is the value of next_page_token returned from the previous call
33077// to `ListGoogleAudiences` method. If not specified, the first page of
33078// results will be returned.
33079func (c *GoogleAudiencesListCall) PageToken(pageToken string) *GoogleAudiencesListCall {
33080	c.urlParams_.Set("pageToken", pageToken)
33081	return c
33082}
33083
33084// PartnerId sets the optional parameter "partnerId": The ID of the
33085// partner that has access to the fetched Google audiences.
33086func (c *GoogleAudiencesListCall) PartnerId(partnerId int64) *GoogleAudiencesListCall {
33087	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
33088	return c
33089}
33090
33091// Fields allows partial responses to be retrieved. See
33092// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33093// for more information.
33094func (c *GoogleAudiencesListCall) Fields(s ...googleapi.Field) *GoogleAudiencesListCall {
33095	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33096	return c
33097}
33098
33099// IfNoneMatch sets the optional parameter which makes the operation
33100// fail if the object's ETag matches the given value. This is useful for
33101// getting updates only after the object has changed since the last
33102// request. Use googleapi.IsNotModified to check whether the response
33103// error from Do is the result of In-None-Match.
33104func (c *GoogleAudiencesListCall) IfNoneMatch(entityTag string) *GoogleAudiencesListCall {
33105	c.ifNoneMatch_ = entityTag
33106	return c
33107}
33108
33109// Context sets the context to be used in this call's Do method. Any
33110// pending HTTP request will be aborted if the provided context is
33111// canceled.
33112func (c *GoogleAudiencesListCall) Context(ctx context.Context) *GoogleAudiencesListCall {
33113	c.ctx_ = ctx
33114	return c
33115}
33116
33117// Header returns an http.Header that can be modified by the caller to
33118// add HTTP headers to the request.
33119func (c *GoogleAudiencesListCall) Header() http.Header {
33120	if c.header_ == nil {
33121		c.header_ = make(http.Header)
33122	}
33123	return c.header_
33124}
33125
33126func (c *GoogleAudiencesListCall) doRequest(alt string) (*http.Response, error) {
33127	reqHeaders := make(http.Header)
33128	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
33129	for k, v := range c.header_ {
33130		reqHeaders[k] = v
33131	}
33132	reqHeaders.Set("User-Agent", c.s.userAgent())
33133	if c.ifNoneMatch_ != "" {
33134		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33135	}
33136	var body io.Reader = nil
33137	c.urlParams_.Set("alt", alt)
33138	c.urlParams_.Set("prettyPrint", "false")
33139	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/googleAudiences")
33140	urls += "?" + c.urlParams_.Encode()
33141	req, err := http.NewRequest("GET", urls, body)
33142	if err != nil {
33143		return nil, err
33144	}
33145	req.Header = reqHeaders
33146	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33147}
33148
33149// Do executes the "displayvideo.googleAudiences.list" call.
33150// Exactly one of *ListGoogleAudiencesResponse or error will be non-nil.
33151// Any non-2xx status code is an error. Response headers are in either
33152// *ListGoogleAudiencesResponse.ServerResponse.Header or (if a response
33153// was returned at all) in error.(*googleapi.Error).Header. Use
33154// googleapi.IsNotModified to check whether the returned error was
33155// because http.StatusNotModified was returned.
33156func (c *GoogleAudiencesListCall) Do(opts ...googleapi.CallOption) (*ListGoogleAudiencesResponse, error) {
33157	gensupport.SetOptions(c.urlParams_, opts...)
33158	res, err := c.doRequest("json")
33159	if res != nil && res.StatusCode == http.StatusNotModified {
33160		if res.Body != nil {
33161			res.Body.Close()
33162		}
33163		return nil, &googleapi.Error{
33164			Code:   res.StatusCode,
33165			Header: res.Header,
33166		}
33167	}
33168	if err != nil {
33169		return nil, err
33170	}
33171	defer googleapi.CloseBody(res)
33172	if err := googleapi.CheckResponse(res); err != nil {
33173		return nil, err
33174	}
33175	ret := &ListGoogleAudiencesResponse{
33176		ServerResponse: googleapi.ServerResponse{
33177			Header:         res.Header,
33178			HTTPStatusCode: res.StatusCode,
33179		},
33180	}
33181	target := &ret
33182	if err := gensupport.DecodeResponse(target, res); err != nil {
33183		return nil, err
33184	}
33185	return ret, nil
33186	// {
33187	//   "description": "Lists Google audiences. The order is defined by the order_by parameter.",
33188	//   "flatPath": "v1/googleAudiences",
33189	//   "httpMethod": "GET",
33190	//   "id": "displayvideo.googleAudiences.list",
33191	//   "parameterOrder": [],
33192	//   "parameters": {
33193	//     "advertiserId": {
33194	//       "description": "The ID of the advertiser that has access to the fetched Google audiences.",
33195	//       "format": "int64",
33196	//       "location": "query",
33197	//       "type": "string"
33198	//     },
33199	//     "filter": {
33200	//       "description": "Allows filtering by Google audience fields. Supported syntax: * Filter expressions for Google audiences currently can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * Supported fields: - `displayName` Examples: * All Google audiences for which the display name contains \"Google\": `displayName : \"Google\"`. The length of this field should be no more than 500 characters.",
33201	//       "location": "query",
33202	//       "type": "string"
33203	//     },
33204	//     "orderBy": {
33205	//       "description": "Field by which to sort the list. Acceptable values are: * `googleAudienceId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.",
33206	//       "location": "query",
33207	//       "type": "string"
33208	//     },
33209	//     "pageSize": {
33210	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
33211	//       "format": "int32",
33212	//       "location": "query",
33213	//       "type": "integer"
33214	//     },
33215	//     "pageToken": {
33216	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListGoogleAudiences` method. If not specified, the first page of results will be returned.",
33217	//       "location": "query",
33218	//       "type": "string"
33219	//     },
33220	//     "partnerId": {
33221	//       "description": "The ID of the partner that has access to the fetched Google audiences.",
33222	//       "format": "int64",
33223	//       "location": "query",
33224	//       "type": "string"
33225	//     }
33226	//   },
33227	//   "path": "v1/googleAudiences",
33228	//   "response": {
33229	//     "$ref": "ListGoogleAudiencesResponse"
33230	//   },
33231	//   "scopes": [
33232	//     "https://www.googleapis.com/auth/display-video"
33233	//   ]
33234	// }
33235
33236}
33237
33238// Pages invokes f for each page of results.
33239// A non-nil error returned from f will halt the iteration.
33240// The provided context supersedes any context provided to the Context method.
33241func (c *GoogleAudiencesListCall) Pages(ctx context.Context, f func(*ListGoogleAudiencesResponse) error) error {
33242	c.ctx_ = ctx
33243	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
33244	for {
33245		x, err := c.Do()
33246		if err != nil {
33247			return err
33248		}
33249		if err := f(x); err != nil {
33250			return err
33251		}
33252		if x.NextPageToken == "" {
33253			return nil
33254		}
33255		c.PageToken(x.NextPageToken)
33256	}
33257}
33258
33259// method id "displayvideo.inventorySourceGroups.create":
33260
33261type InventorySourceGroupsCreateCall struct {
33262	s                    *Service
33263	inventorysourcegroup *InventorySourceGroup
33264	urlParams_           gensupport.URLParams
33265	ctx_                 context.Context
33266	header_              http.Header
33267}
33268
33269// Create: Creates a new inventory source group. Returns the newly
33270// created inventory source group if successful.
33271func (r *InventorySourceGroupsService) Create(inventorysourcegroup *InventorySourceGroup) *InventorySourceGroupsCreateCall {
33272	c := &InventorySourceGroupsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33273	c.inventorysourcegroup = inventorysourcegroup
33274	return c
33275}
33276
33277// AdvertiserId sets the optional parameter "advertiserId": The ID of
33278// the advertiser that owns the inventory source group. The parent
33279// partner will not have access to this group.
33280func (c *InventorySourceGroupsCreateCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsCreateCall {
33281	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
33282	return c
33283}
33284
33285// PartnerId sets the optional parameter "partnerId": The ID of the
33286// partner that owns the inventory source group. Only this partner will
33287// have write access to this group. Only advertisers to which this group
33288// is explicitly shared will have read access to this group.
33289func (c *InventorySourceGroupsCreateCall) PartnerId(partnerId int64) *InventorySourceGroupsCreateCall {
33290	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
33291	return c
33292}
33293
33294// Fields allows partial responses to be retrieved. See
33295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33296// for more information.
33297func (c *InventorySourceGroupsCreateCall) Fields(s ...googleapi.Field) *InventorySourceGroupsCreateCall {
33298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33299	return c
33300}
33301
33302// Context sets the context to be used in this call's Do method. Any
33303// pending HTTP request will be aborted if the provided context is
33304// canceled.
33305func (c *InventorySourceGroupsCreateCall) Context(ctx context.Context) *InventorySourceGroupsCreateCall {
33306	c.ctx_ = ctx
33307	return c
33308}
33309
33310// Header returns an http.Header that can be modified by the caller to
33311// add HTTP headers to the request.
33312func (c *InventorySourceGroupsCreateCall) Header() http.Header {
33313	if c.header_ == nil {
33314		c.header_ = make(http.Header)
33315	}
33316	return c.header_
33317}
33318
33319func (c *InventorySourceGroupsCreateCall) doRequest(alt string) (*http.Response, error) {
33320	reqHeaders := make(http.Header)
33321	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
33322	for k, v := range c.header_ {
33323		reqHeaders[k] = v
33324	}
33325	reqHeaders.Set("User-Agent", c.s.userAgent())
33326	var body io.Reader = nil
33327	body, err := googleapi.WithoutDataWrapper.JSONReader(c.inventorysourcegroup)
33328	if err != nil {
33329		return nil, err
33330	}
33331	reqHeaders.Set("Content-Type", "application/json")
33332	c.urlParams_.Set("alt", alt)
33333	c.urlParams_.Set("prettyPrint", "false")
33334	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups")
33335	urls += "?" + c.urlParams_.Encode()
33336	req, err := http.NewRequest("POST", urls, body)
33337	if err != nil {
33338		return nil, err
33339	}
33340	req.Header = reqHeaders
33341	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33342}
33343
33344// Do executes the "displayvideo.inventorySourceGroups.create" call.
33345// Exactly one of *InventorySourceGroup or error will be non-nil. Any
33346// non-2xx status code is an error. Response headers are in either
33347// *InventorySourceGroup.ServerResponse.Header or (if a response was
33348// returned at all) in error.(*googleapi.Error).Header. Use
33349// googleapi.IsNotModified to check whether the returned error was
33350// because http.StatusNotModified was returned.
33351func (c *InventorySourceGroupsCreateCall) Do(opts ...googleapi.CallOption) (*InventorySourceGroup, error) {
33352	gensupport.SetOptions(c.urlParams_, opts...)
33353	res, err := c.doRequest("json")
33354	if res != nil && res.StatusCode == http.StatusNotModified {
33355		if res.Body != nil {
33356			res.Body.Close()
33357		}
33358		return nil, &googleapi.Error{
33359			Code:   res.StatusCode,
33360			Header: res.Header,
33361		}
33362	}
33363	if err != nil {
33364		return nil, err
33365	}
33366	defer googleapi.CloseBody(res)
33367	if err := googleapi.CheckResponse(res); err != nil {
33368		return nil, err
33369	}
33370	ret := &InventorySourceGroup{
33371		ServerResponse: googleapi.ServerResponse{
33372			Header:         res.Header,
33373			HTTPStatusCode: res.StatusCode,
33374		},
33375	}
33376	target := &ret
33377	if err := gensupport.DecodeResponse(target, res); err != nil {
33378		return nil, err
33379	}
33380	return ret, nil
33381	// {
33382	//   "description": "Creates a new inventory source group. Returns the newly created inventory source group if successful.",
33383	//   "flatPath": "v1/inventorySourceGroups",
33384	//   "httpMethod": "POST",
33385	//   "id": "displayvideo.inventorySourceGroups.create",
33386	//   "parameterOrder": [],
33387	//   "parameters": {
33388	//     "advertiserId": {
33389	//       "description": "The ID of the advertiser that owns the inventory source group. The parent partner will not have access to this group.",
33390	//       "format": "int64",
33391	//       "location": "query",
33392	//       "type": "string"
33393	//     },
33394	//     "partnerId": {
33395	//       "description": "The ID of the partner that owns the inventory source group. Only this partner will have write access to this group. Only advertisers to which this group is explicitly shared will have read access to this group.",
33396	//       "format": "int64",
33397	//       "location": "query",
33398	//       "type": "string"
33399	//     }
33400	//   },
33401	//   "path": "v1/inventorySourceGroups",
33402	//   "request": {
33403	//     "$ref": "InventorySourceGroup"
33404	//   },
33405	//   "response": {
33406	//     "$ref": "InventorySourceGroup"
33407	//   },
33408	//   "scopes": [
33409	//     "https://www.googleapis.com/auth/display-video"
33410	//   ]
33411	// }
33412
33413}
33414
33415// method id "displayvideo.inventorySourceGroups.delete":
33416
33417type InventorySourceGroupsDeleteCall struct {
33418	s                      *Service
33419	inventorySourceGroupId int64
33420	urlParams_             gensupport.URLParams
33421	ctx_                   context.Context
33422	header_                http.Header
33423}
33424
33425// Delete: Deletes an inventory source group.
33426//
33427// - inventorySourceGroupId: The ID of the inventory source group to
33428//   delete.
33429func (r *InventorySourceGroupsService) Delete(inventorySourceGroupId int64) *InventorySourceGroupsDeleteCall {
33430	c := &InventorySourceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33431	c.inventorySourceGroupId = inventorySourceGroupId
33432	return c
33433}
33434
33435// AdvertiserId sets the optional parameter "advertiserId": The ID of
33436// the advertiser that owns the inventory source group. The parent
33437// partner does not have access to this group.
33438func (c *InventorySourceGroupsDeleteCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsDeleteCall {
33439	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
33440	return c
33441}
33442
33443// PartnerId sets the optional parameter "partnerId": The ID of the
33444// partner that owns the inventory source group. Only this partner has
33445// write access to this group.
33446func (c *InventorySourceGroupsDeleteCall) PartnerId(partnerId int64) *InventorySourceGroupsDeleteCall {
33447	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
33448	return c
33449}
33450
33451// Fields allows partial responses to be retrieved. See
33452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33453// for more information.
33454func (c *InventorySourceGroupsDeleteCall) Fields(s ...googleapi.Field) *InventorySourceGroupsDeleteCall {
33455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33456	return c
33457}
33458
33459// Context sets the context to be used in this call's Do method. Any
33460// pending HTTP request will be aborted if the provided context is
33461// canceled.
33462func (c *InventorySourceGroupsDeleteCall) Context(ctx context.Context) *InventorySourceGroupsDeleteCall {
33463	c.ctx_ = ctx
33464	return c
33465}
33466
33467// Header returns an http.Header that can be modified by the caller to
33468// add HTTP headers to the request.
33469func (c *InventorySourceGroupsDeleteCall) Header() http.Header {
33470	if c.header_ == nil {
33471		c.header_ = make(http.Header)
33472	}
33473	return c.header_
33474}
33475
33476func (c *InventorySourceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
33477	reqHeaders := make(http.Header)
33478	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
33479	for k, v := range c.header_ {
33480		reqHeaders[k] = v
33481	}
33482	reqHeaders.Set("User-Agent", c.s.userAgent())
33483	var body io.Reader = nil
33484	c.urlParams_.Set("alt", alt)
33485	c.urlParams_.Set("prettyPrint", "false")
33486	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{+inventorySourceGroupId}")
33487	urls += "?" + c.urlParams_.Encode()
33488	req, err := http.NewRequest("DELETE", urls, body)
33489	if err != nil {
33490		return nil, err
33491	}
33492	req.Header = reqHeaders
33493	googleapi.Expand(req.URL, map[string]string{
33494		"inventorySourceGroupId": strconv.FormatInt(c.inventorySourceGroupId, 10),
33495	})
33496	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33497}
33498
33499// Do executes the "displayvideo.inventorySourceGroups.delete" call.
33500// Exactly one of *Empty or error will be non-nil. Any non-2xx status
33501// code is an error. Response headers are in either
33502// *Empty.ServerResponse.Header or (if a response was returned at all)
33503// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
33504// check whether the returned error was because http.StatusNotModified
33505// was returned.
33506func (c *InventorySourceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
33507	gensupport.SetOptions(c.urlParams_, opts...)
33508	res, err := c.doRequest("json")
33509	if res != nil && res.StatusCode == http.StatusNotModified {
33510		if res.Body != nil {
33511			res.Body.Close()
33512		}
33513		return nil, &googleapi.Error{
33514			Code:   res.StatusCode,
33515			Header: res.Header,
33516		}
33517	}
33518	if err != nil {
33519		return nil, err
33520	}
33521	defer googleapi.CloseBody(res)
33522	if err := googleapi.CheckResponse(res); err != nil {
33523		return nil, err
33524	}
33525	ret := &Empty{
33526		ServerResponse: googleapi.ServerResponse{
33527			Header:         res.Header,
33528			HTTPStatusCode: res.StatusCode,
33529		},
33530	}
33531	target := &ret
33532	if err := gensupport.DecodeResponse(target, res); err != nil {
33533		return nil, err
33534	}
33535	return ret, nil
33536	// {
33537	//   "description": "Deletes an inventory source group.",
33538	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}",
33539	//   "httpMethod": "DELETE",
33540	//   "id": "displayvideo.inventorySourceGroups.delete",
33541	//   "parameterOrder": [
33542	//     "inventorySourceGroupId"
33543	//   ],
33544	//   "parameters": {
33545	//     "advertiserId": {
33546	//       "description": "The ID of the advertiser that owns the inventory source group. The parent partner does not have access to this group.",
33547	//       "format": "int64",
33548	//       "location": "query",
33549	//       "type": "string"
33550	//     },
33551	//     "inventorySourceGroupId": {
33552	//       "description": "Required. The ID of the inventory source group to delete.",
33553	//       "format": "int64",
33554	//       "location": "path",
33555	//       "pattern": "^[^/]+$",
33556	//       "required": true,
33557	//       "type": "string"
33558	//     },
33559	//     "partnerId": {
33560	//       "description": "The ID of the partner that owns the inventory source group. Only this partner has write access to this group.",
33561	//       "format": "int64",
33562	//       "location": "query",
33563	//       "type": "string"
33564	//     }
33565	//   },
33566	//   "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}",
33567	//   "response": {
33568	//     "$ref": "Empty"
33569	//   },
33570	//   "scopes": [
33571	//     "https://www.googleapis.com/auth/display-video"
33572	//   ]
33573	// }
33574
33575}
33576
33577// method id "displayvideo.inventorySourceGroups.get":
33578
33579type InventorySourceGroupsGetCall struct {
33580	s                      *Service
33581	inventorySourceGroupId int64
33582	urlParams_             gensupport.URLParams
33583	ifNoneMatch_           string
33584	ctx_                   context.Context
33585	header_                http.Header
33586}
33587
33588// Get: Gets an inventory source group.
33589//
33590// - inventorySourceGroupId: The ID of the inventory source group to
33591//   fetch.
33592func (r *InventorySourceGroupsService) Get(inventorySourceGroupId int64) *InventorySourceGroupsGetCall {
33593	c := &InventorySourceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33594	c.inventorySourceGroupId = inventorySourceGroupId
33595	return c
33596}
33597
33598// AdvertiserId sets the optional parameter "advertiserId": The ID of
33599// the advertiser that has access to the inventory source group. If an
33600// inventory source group is partner-owned, only advertisers to which
33601// the group is explicitly shared can access the group.
33602func (c *InventorySourceGroupsGetCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsGetCall {
33603	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
33604	return c
33605}
33606
33607// PartnerId sets the optional parameter "partnerId": The ID of the
33608// partner that has access to the inventory source group. A partner
33609// cannot access an advertiser-owned inventory source group.
33610func (c *InventorySourceGroupsGetCall) PartnerId(partnerId int64) *InventorySourceGroupsGetCall {
33611	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
33612	return c
33613}
33614
33615// Fields allows partial responses to be retrieved. See
33616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33617// for more information.
33618func (c *InventorySourceGroupsGetCall) Fields(s ...googleapi.Field) *InventorySourceGroupsGetCall {
33619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33620	return c
33621}
33622
33623// IfNoneMatch sets the optional parameter which makes the operation
33624// fail if the object's ETag matches the given value. This is useful for
33625// getting updates only after the object has changed since the last
33626// request. Use googleapi.IsNotModified to check whether the response
33627// error from Do is the result of In-None-Match.
33628func (c *InventorySourceGroupsGetCall) IfNoneMatch(entityTag string) *InventorySourceGroupsGetCall {
33629	c.ifNoneMatch_ = entityTag
33630	return c
33631}
33632
33633// Context sets the context to be used in this call's Do method. Any
33634// pending HTTP request will be aborted if the provided context is
33635// canceled.
33636func (c *InventorySourceGroupsGetCall) Context(ctx context.Context) *InventorySourceGroupsGetCall {
33637	c.ctx_ = ctx
33638	return c
33639}
33640
33641// Header returns an http.Header that can be modified by the caller to
33642// add HTTP headers to the request.
33643func (c *InventorySourceGroupsGetCall) Header() http.Header {
33644	if c.header_ == nil {
33645		c.header_ = make(http.Header)
33646	}
33647	return c.header_
33648}
33649
33650func (c *InventorySourceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
33651	reqHeaders := make(http.Header)
33652	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
33653	for k, v := range c.header_ {
33654		reqHeaders[k] = v
33655	}
33656	reqHeaders.Set("User-Agent", c.s.userAgent())
33657	if c.ifNoneMatch_ != "" {
33658		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33659	}
33660	var body io.Reader = nil
33661	c.urlParams_.Set("alt", alt)
33662	c.urlParams_.Set("prettyPrint", "false")
33663	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{+inventorySourceGroupId}")
33664	urls += "?" + c.urlParams_.Encode()
33665	req, err := http.NewRequest("GET", urls, body)
33666	if err != nil {
33667		return nil, err
33668	}
33669	req.Header = reqHeaders
33670	googleapi.Expand(req.URL, map[string]string{
33671		"inventorySourceGroupId": strconv.FormatInt(c.inventorySourceGroupId, 10),
33672	})
33673	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33674}
33675
33676// Do executes the "displayvideo.inventorySourceGroups.get" call.
33677// Exactly one of *InventorySourceGroup or error will be non-nil. Any
33678// non-2xx status code is an error. Response headers are in either
33679// *InventorySourceGroup.ServerResponse.Header or (if a response was
33680// returned at all) in error.(*googleapi.Error).Header. Use
33681// googleapi.IsNotModified to check whether the returned error was
33682// because http.StatusNotModified was returned.
33683func (c *InventorySourceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InventorySourceGroup, error) {
33684	gensupport.SetOptions(c.urlParams_, opts...)
33685	res, err := c.doRequest("json")
33686	if res != nil && res.StatusCode == http.StatusNotModified {
33687		if res.Body != nil {
33688			res.Body.Close()
33689		}
33690		return nil, &googleapi.Error{
33691			Code:   res.StatusCode,
33692			Header: res.Header,
33693		}
33694	}
33695	if err != nil {
33696		return nil, err
33697	}
33698	defer googleapi.CloseBody(res)
33699	if err := googleapi.CheckResponse(res); err != nil {
33700		return nil, err
33701	}
33702	ret := &InventorySourceGroup{
33703		ServerResponse: googleapi.ServerResponse{
33704			Header:         res.Header,
33705			HTTPStatusCode: res.StatusCode,
33706		},
33707	}
33708	target := &ret
33709	if err := gensupport.DecodeResponse(target, res); err != nil {
33710		return nil, err
33711	}
33712	return ret, nil
33713	// {
33714	//   "description": "Gets an inventory source group.",
33715	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}",
33716	//   "httpMethod": "GET",
33717	//   "id": "displayvideo.inventorySourceGroups.get",
33718	//   "parameterOrder": [
33719	//     "inventorySourceGroupId"
33720	//   ],
33721	//   "parameters": {
33722	//     "advertiserId": {
33723	//       "description": "The ID of the advertiser that has access to the inventory source group. If an inventory source group is partner-owned, only advertisers to which the group is explicitly shared can access the group.",
33724	//       "format": "int64",
33725	//       "location": "query",
33726	//       "type": "string"
33727	//     },
33728	//     "inventorySourceGroupId": {
33729	//       "description": "Required. The ID of the inventory source group to fetch.",
33730	//       "format": "int64",
33731	//       "location": "path",
33732	//       "pattern": "^[^/]+$",
33733	//       "required": true,
33734	//       "type": "string"
33735	//     },
33736	//     "partnerId": {
33737	//       "description": "The ID of the partner that has access to the inventory source group. A partner cannot access an advertiser-owned inventory source group.",
33738	//       "format": "int64",
33739	//       "location": "query",
33740	//       "type": "string"
33741	//     }
33742	//   },
33743	//   "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}",
33744	//   "response": {
33745	//     "$ref": "InventorySourceGroup"
33746	//   },
33747	//   "scopes": [
33748	//     "https://www.googleapis.com/auth/display-video"
33749	//   ]
33750	// }
33751
33752}
33753
33754// method id "displayvideo.inventorySourceGroups.list":
33755
33756type InventorySourceGroupsListCall struct {
33757	s            *Service
33758	urlParams_   gensupport.URLParams
33759	ifNoneMatch_ string
33760	ctx_         context.Context
33761	header_      http.Header
33762}
33763
33764// List: Lists inventory source groups that are accessible to the
33765// current user. The order is defined by the order_by parameter.
33766func (r *InventorySourceGroupsService) List() *InventorySourceGroupsListCall {
33767	c := &InventorySourceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33768	return c
33769}
33770
33771// AdvertiserId sets the optional parameter "advertiserId": The ID of
33772// the advertiser that has access to the inventory source group. If an
33773// inventory source group is partner-owned, only advertisers to which
33774// the group is explicitly shared can access the group.
33775func (c *InventorySourceGroupsListCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsListCall {
33776	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
33777	return c
33778}
33779
33780// Filter sets the optional parameter "filter": Allows filtering by
33781// inventory source group properties. Supported syntax: * Filter
33782// expressions are made up of one or more restrictions. * Restrictions
33783// can be combined by the logical operator `OR`. * A restriction has the
33784// form of `{field} {operator} {value}`. * The operator must be `EQUALS
33785// (=)`. * Supported fields: - `inventorySourceGroupId` The length of
33786// this field should be no more than 500 characters.
33787func (c *InventorySourceGroupsListCall) Filter(filter string) *InventorySourceGroupsListCall {
33788	c.urlParams_.Set("filter", filter)
33789	return c
33790}
33791
33792// OrderBy sets the optional parameter "orderBy": Field by which to sort
33793// the list. Acceptable values are: * `displayName` (default) *
33794// `inventorySourceGroupId` The default sorting order is ascending. To
33795// specify descending order for a field, a suffix "desc" should be added
33796// to the field name. For example, `displayName desc`.
33797func (c *InventorySourceGroupsListCall) OrderBy(orderBy string) *InventorySourceGroupsListCall {
33798	c.urlParams_.Set("orderBy", orderBy)
33799	return c
33800}
33801
33802// PageSize sets the optional parameter "pageSize": Requested page size.
33803// Must be between `1` and `100`. If unspecified will default to `100`.
33804func (c *InventorySourceGroupsListCall) PageSize(pageSize int64) *InventorySourceGroupsListCall {
33805	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
33806	return c
33807}
33808
33809// PageToken sets the optional parameter "pageToken": A token
33810// identifying a page of results the server should return. Typically,
33811// this is the value of next_page_token returned from the previous call
33812// to `ListInventorySources` method. If not specified, the first page of
33813// results will be returned.
33814func (c *InventorySourceGroupsListCall) PageToken(pageToken string) *InventorySourceGroupsListCall {
33815	c.urlParams_.Set("pageToken", pageToken)
33816	return c
33817}
33818
33819// PartnerId sets the optional parameter "partnerId": The ID of the
33820// partner that has access to the inventory source group. A partner
33821// cannot access advertiser-owned inventory source groups.
33822func (c *InventorySourceGroupsListCall) PartnerId(partnerId int64) *InventorySourceGroupsListCall {
33823	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
33824	return c
33825}
33826
33827// Fields allows partial responses to be retrieved. See
33828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33829// for more information.
33830func (c *InventorySourceGroupsListCall) Fields(s ...googleapi.Field) *InventorySourceGroupsListCall {
33831	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33832	return c
33833}
33834
33835// IfNoneMatch sets the optional parameter which makes the operation
33836// fail if the object's ETag matches the given value. This is useful for
33837// getting updates only after the object has changed since the last
33838// request. Use googleapi.IsNotModified to check whether the response
33839// error from Do is the result of In-None-Match.
33840func (c *InventorySourceGroupsListCall) IfNoneMatch(entityTag string) *InventorySourceGroupsListCall {
33841	c.ifNoneMatch_ = entityTag
33842	return c
33843}
33844
33845// Context sets the context to be used in this call's Do method. Any
33846// pending HTTP request will be aborted if the provided context is
33847// canceled.
33848func (c *InventorySourceGroupsListCall) Context(ctx context.Context) *InventorySourceGroupsListCall {
33849	c.ctx_ = ctx
33850	return c
33851}
33852
33853// Header returns an http.Header that can be modified by the caller to
33854// add HTTP headers to the request.
33855func (c *InventorySourceGroupsListCall) Header() http.Header {
33856	if c.header_ == nil {
33857		c.header_ = make(http.Header)
33858	}
33859	return c.header_
33860}
33861
33862func (c *InventorySourceGroupsListCall) doRequest(alt string) (*http.Response, error) {
33863	reqHeaders := make(http.Header)
33864	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
33865	for k, v := range c.header_ {
33866		reqHeaders[k] = v
33867	}
33868	reqHeaders.Set("User-Agent", c.s.userAgent())
33869	if c.ifNoneMatch_ != "" {
33870		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33871	}
33872	var body io.Reader = nil
33873	c.urlParams_.Set("alt", alt)
33874	c.urlParams_.Set("prettyPrint", "false")
33875	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups")
33876	urls += "?" + c.urlParams_.Encode()
33877	req, err := http.NewRequest("GET", urls, body)
33878	if err != nil {
33879		return nil, err
33880	}
33881	req.Header = reqHeaders
33882	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33883}
33884
33885// Do executes the "displayvideo.inventorySourceGroups.list" call.
33886// Exactly one of *ListInventorySourceGroupsResponse or error will be
33887// non-nil. Any non-2xx status code is an error. Response headers are in
33888// either *ListInventorySourceGroupsResponse.ServerResponse.Header or
33889// (if a response was returned at all) in
33890// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
33891// whether the returned error was because http.StatusNotModified was
33892// returned.
33893func (c *InventorySourceGroupsListCall) Do(opts ...googleapi.CallOption) (*ListInventorySourceGroupsResponse, error) {
33894	gensupport.SetOptions(c.urlParams_, opts...)
33895	res, err := c.doRequest("json")
33896	if res != nil && res.StatusCode == http.StatusNotModified {
33897		if res.Body != nil {
33898			res.Body.Close()
33899		}
33900		return nil, &googleapi.Error{
33901			Code:   res.StatusCode,
33902			Header: res.Header,
33903		}
33904	}
33905	if err != nil {
33906		return nil, err
33907	}
33908	defer googleapi.CloseBody(res)
33909	if err := googleapi.CheckResponse(res); err != nil {
33910		return nil, err
33911	}
33912	ret := &ListInventorySourceGroupsResponse{
33913		ServerResponse: googleapi.ServerResponse{
33914			Header:         res.Header,
33915			HTTPStatusCode: res.StatusCode,
33916		},
33917	}
33918	target := &ret
33919	if err := gensupport.DecodeResponse(target, res); err != nil {
33920		return nil, err
33921	}
33922	return ret, nil
33923	// {
33924	//   "description": "Lists inventory source groups that are accessible to the current user. The order is defined by the order_by parameter.",
33925	//   "flatPath": "v1/inventorySourceGroups",
33926	//   "httpMethod": "GET",
33927	//   "id": "displayvideo.inventorySourceGroups.list",
33928	//   "parameterOrder": [],
33929	//   "parameters": {
33930	//     "advertiserId": {
33931	//       "description": "The ID of the advertiser that has access to the inventory source group. If an inventory source group is partner-owned, only advertisers to which the group is explicitly shared can access the group.",
33932	//       "format": "int64",
33933	//       "location": "query",
33934	//       "type": "string"
33935	//     },
33936	//     "filter": {
33937	//       "description": "Allows filtering by inventory source group properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `inventorySourceGroupId` The length of this field should be no more than 500 characters.",
33938	//       "location": "query",
33939	//       "type": "string"
33940	//     },
33941	//     "orderBy": {
33942	//       "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `inventorySourceGroupId` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.",
33943	//       "location": "query",
33944	//       "type": "string"
33945	//     },
33946	//     "pageSize": {
33947	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
33948	//       "format": "int32",
33949	//       "location": "query",
33950	//       "type": "integer"
33951	//     },
33952	//     "pageToken": {
33953	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInventorySources` method. If not specified, the first page of results will be returned.",
33954	//       "location": "query",
33955	//       "type": "string"
33956	//     },
33957	//     "partnerId": {
33958	//       "description": "The ID of the partner that has access to the inventory source group. A partner cannot access advertiser-owned inventory source groups.",
33959	//       "format": "int64",
33960	//       "location": "query",
33961	//       "type": "string"
33962	//     }
33963	//   },
33964	//   "path": "v1/inventorySourceGroups",
33965	//   "response": {
33966	//     "$ref": "ListInventorySourceGroupsResponse"
33967	//   },
33968	//   "scopes": [
33969	//     "https://www.googleapis.com/auth/display-video"
33970	//   ]
33971	// }
33972
33973}
33974
33975// Pages invokes f for each page of results.
33976// A non-nil error returned from f will halt the iteration.
33977// The provided context supersedes any context provided to the Context method.
33978func (c *InventorySourceGroupsListCall) Pages(ctx context.Context, f func(*ListInventorySourceGroupsResponse) error) error {
33979	c.ctx_ = ctx
33980	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
33981	for {
33982		x, err := c.Do()
33983		if err != nil {
33984			return err
33985		}
33986		if err := f(x); err != nil {
33987			return err
33988		}
33989		if x.NextPageToken == "" {
33990			return nil
33991		}
33992		c.PageToken(x.NextPageToken)
33993	}
33994}
33995
33996// method id "displayvideo.inventorySourceGroups.patch":
33997
33998type InventorySourceGroupsPatchCall struct {
33999	s                      *Service
34000	inventorySourceGroupId int64
34001	inventorysourcegroup   *InventorySourceGroup
34002	urlParams_             gensupport.URLParams
34003	ctx_                   context.Context
34004	header_                http.Header
34005}
34006
34007// Patch: Updates an inventory source group. Returns the updated
34008// inventory source group if successful.
34009//
34010// - inventorySourceGroupId: Output only. The unique ID of the inventory
34011//   source group. Assigned by the system.
34012func (r *InventorySourceGroupsService) Patch(inventorySourceGroupId int64, inventorysourcegroup *InventorySourceGroup) *InventorySourceGroupsPatchCall {
34013	c := &InventorySourceGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34014	c.inventorySourceGroupId = inventorySourceGroupId
34015	c.inventorysourcegroup = inventorysourcegroup
34016	return c
34017}
34018
34019// AdvertiserId sets the optional parameter "advertiserId": The ID of
34020// the advertiser that owns the inventory source group. The parent
34021// partner does not have access to this group.
34022func (c *InventorySourceGroupsPatchCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsPatchCall {
34023	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
34024	return c
34025}
34026
34027// PartnerId sets the optional parameter "partnerId": The ID of the
34028// partner that owns the inventory source group. Only this partner has
34029// write access to this group.
34030func (c *InventorySourceGroupsPatchCall) PartnerId(partnerId int64) *InventorySourceGroupsPatchCall {
34031	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
34032	return c
34033}
34034
34035// UpdateMask sets the optional parameter "updateMask": Required. The
34036// mask to control which fields to update.
34037func (c *InventorySourceGroupsPatchCall) UpdateMask(updateMask string) *InventorySourceGroupsPatchCall {
34038	c.urlParams_.Set("updateMask", updateMask)
34039	return c
34040}
34041
34042// Fields allows partial responses to be retrieved. See
34043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34044// for more information.
34045func (c *InventorySourceGroupsPatchCall) Fields(s ...googleapi.Field) *InventorySourceGroupsPatchCall {
34046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34047	return c
34048}
34049
34050// Context sets the context to be used in this call's Do method. Any
34051// pending HTTP request will be aborted if the provided context is
34052// canceled.
34053func (c *InventorySourceGroupsPatchCall) Context(ctx context.Context) *InventorySourceGroupsPatchCall {
34054	c.ctx_ = ctx
34055	return c
34056}
34057
34058// Header returns an http.Header that can be modified by the caller to
34059// add HTTP headers to the request.
34060func (c *InventorySourceGroupsPatchCall) Header() http.Header {
34061	if c.header_ == nil {
34062		c.header_ = make(http.Header)
34063	}
34064	return c.header_
34065}
34066
34067func (c *InventorySourceGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
34068	reqHeaders := make(http.Header)
34069	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
34070	for k, v := range c.header_ {
34071		reqHeaders[k] = v
34072	}
34073	reqHeaders.Set("User-Agent", c.s.userAgent())
34074	var body io.Reader = nil
34075	body, err := googleapi.WithoutDataWrapper.JSONReader(c.inventorysourcegroup)
34076	if err != nil {
34077		return nil, err
34078	}
34079	reqHeaders.Set("Content-Type", "application/json")
34080	c.urlParams_.Set("alt", alt)
34081	c.urlParams_.Set("prettyPrint", "false")
34082	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{inventorySourceGroupId}")
34083	urls += "?" + c.urlParams_.Encode()
34084	req, err := http.NewRequest("PATCH", urls, body)
34085	if err != nil {
34086		return nil, err
34087	}
34088	req.Header = reqHeaders
34089	googleapi.Expand(req.URL, map[string]string{
34090		"inventorySourceGroupId": strconv.FormatInt(c.inventorySourceGroupId, 10),
34091	})
34092	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34093}
34094
34095// Do executes the "displayvideo.inventorySourceGroups.patch" call.
34096// Exactly one of *InventorySourceGroup or error will be non-nil. Any
34097// non-2xx status code is an error. Response headers are in either
34098// *InventorySourceGroup.ServerResponse.Header or (if a response was
34099// returned at all) in error.(*googleapi.Error).Header. Use
34100// googleapi.IsNotModified to check whether the returned error was
34101// because http.StatusNotModified was returned.
34102func (c *InventorySourceGroupsPatchCall) Do(opts ...googleapi.CallOption) (*InventorySourceGroup, error) {
34103	gensupport.SetOptions(c.urlParams_, opts...)
34104	res, err := c.doRequest("json")
34105	if res != nil && res.StatusCode == http.StatusNotModified {
34106		if res.Body != nil {
34107			res.Body.Close()
34108		}
34109		return nil, &googleapi.Error{
34110			Code:   res.StatusCode,
34111			Header: res.Header,
34112		}
34113	}
34114	if err != nil {
34115		return nil, err
34116	}
34117	defer googleapi.CloseBody(res)
34118	if err := googleapi.CheckResponse(res); err != nil {
34119		return nil, err
34120	}
34121	ret := &InventorySourceGroup{
34122		ServerResponse: googleapi.ServerResponse{
34123			Header:         res.Header,
34124			HTTPStatusCode: res.StatusCode,
34125		},
34126	}
34127	target := &ret
34128	if err := gensupport.DecodeResponse(target, res); err != nil {
34129		return nil, err
34130	}
34131	return ret, nil
34132	// {
34133	//   "description": "Updates an inventory source group. Returns the updated inventory source group if successful.",
34134	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupId}",
34135	//   "httpMethod": "PATCH",
34136	//   "id": "displayvideo.inventorySourceGroups.patch",
34137	//   "parameterOrder": [
34138	//     "inventorySourceGroupId"
34139	//   ],
34140	//   "parameters": {
34141	//     "advertiserId": {
34142	//       "description": "The ID of the advertiser that owns the inventory source group. The parent partner does not have access to this group.",
34143	//       "format": "int64",
34144	//       "location": "query",
34145	//       "type": "string"
34146	//     },
34147	//     "inventorySourceGroupId": {
34148	//       "description": "Output only. The unique ID of the inventory source group. Assigned by the system.",
34149	//       "format": "int64",
34150	//       "location": "path",
34151	//       "required": true,
34152	//       "type": "string"
34153	//     },
34154	//     "partnerId": {
34155	//       "description": "The ID of the partner that owns the inventory source group. Only this partner has write access to this group.",
34156	//       "format": "int64",
34157	//       "location": "query",
34158	//       "type": "string"
34159	//     },
34160	//     "updateMask": {
34161	//       "description": "Required. The mask to control which fields to update.",
34162	//       "format": "google-fieldmask",
34163	//       "location": "query",
34164	//       "type": "string"
34165	//     }
34166	//   },
34167	//   "path": "v1/inventorySourceGroups/{inventorySourceGroupId}",
34168	//   "request": {
34169	//     "$ref": "InventorySourceGroup"
34170	//   },
34171	//   "response": {
34172	//     "$ref": "InventorySourceGroup"
34173	//   },
34174	//   "scopes": [
34175	//     "https://www.googleapis.com/auth/display-video"
34176	//   ]
34177	// }
34178
34179}
34180
34181// method id "displayvideo.inventorySourceGroups.assignedInventorySources.bulkEdit":
34182
34183type InventorySourceGroupsAssignedInventorySourcesBulkEditCall struct {
34184	s                                       *Service
34185	inventorySourceGroupId                  int64
34186	bulkeditassignedinventorysourcesrequest *BulkEditAssignedInventorySourcesRequest
34187	urlParams_                              gensupport.URLParams
34188	ctx_                                    context.Context
34189	header_                                 http.Header
34190}
34191
34192// BulkEdit: Bulk edits multiple assignments between inventory sources
34193// and a single inventory source group. The operation will delete the
34194// assigned inventory sources provided in
34195// BulkEditAssignedInventorySourcesRequest.deleted_assigned_inventory_sou
34196// rces and then create the assigned inventory sources provided in
34197// BulkEditAssignedInventorySourcesRequest.created_assigned_inventory_sou
34198// rces.
34199//
34200// - inventorySourceGroupId: The ID of the inventory source group to
34201//   which the assignments are assigned.
34202func (r *InventorySourceGroupsAssignedInventorySourcesService) BulkEdit(inventorySourceGroupId int64, bulkeditassignedinventorysourcesrequest *BulkEditAssignedInventorySourcesRequest) *InventorySourceGroupsAssignedInventorySourcesBulkEditCall {
34203	c := &InventorySourceGroupsAssignedInventorySourcesBulkEditCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34204	c.inventorySourceGroupId = inventorySourceGroupId
34205	c.bulkeditassignedinventorysourcesrequest = bulkeditassignedinventorysourcesrequest
34206	return c
34207}
34208
34209// Fields allows partial responses to be retrieved. See
34210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34211// for more information.
34212func (c *InventorySourceGroupsAssignedInventorySourcesBulkEditCall) Fields(s ...googleapi.Field) *InventorySourceGroupsAssignedInventorySourcesBulkEditCall {
34213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34214	return c
34215}
34216
34217// Context sets the context to be used in this call's Do method. Any
34218// pending HTTP request will be aborted if the provided context is
34219// canceled.
34220func (c *InventorySourceGroupsAssignedInventorySourcesBulkEditCall) Context(ctx context.Context) *InventorySourceGroupsAssignedInventorySourcesBulkEditCall {
34221	c.ctx_ = ctx
34222	return c
34223}
34224
34225// Header returns an http.Header that can be modified by the caller to
34226// add HTTP headers to the request.
34227func (c *InventorySourceGroupsAssignedInventorySourcesBulkEditCall) Header() http.Header {
34228	if c.header_ == nil {
34229		c.header_ = make(http.Header)
34230	}
34231	return c.header_
34232}
34233
34234func (c *InventorySourceGroupsAssignedInventorySourcesBulkEditCall) doRequest(alt string) (*http.Response, error) {
34235	reqHeaders := make(http.Header)
34236	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
34237	for k, v := range c.header_ {
34238		reqHeaders[k] = v
34239	}
34240	reqHeaders.Set("User-Agent", c.s.userAgent())
34241	var body io.Reader = nil
34242	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditassignedinventorysourcesrequest)
34243	if err != nil {
34244		return nil, err
34245	}
34246	reqHeaders.Set("Content-Type", "application/json")
34247	c.urlParams_.Set("alt", alt)
34248	c.urlParams_.Set("prettyPrint", "false")
34249	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources:bulkEdit")
34250	urls += "?" + c.urlParams_.Encode()
34251	req, err := http.NewRequest("POST", urls, body)
34252	if err != nil {
34253		return nil, err
34254	}
34255	req.Header = reqHeaders
34256	googleapi.Expand(req.URL, map[string]string{
34257		"inventorySourceGroupId": strconv.FormatInt(c.inventorySourceGroupId, 10),
34258	})
34259	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34260}
34261
34262// Do executes the "displayvideo.inventorySourceGroups.assignedInventorySources.bulkEdit" call.
34263// Exactly one of *BulkEditAssignedInventorySourcesResponse or error
34264// will be non-nil. Any non-2xx status code is an error. Response
34265// headers are in either
34266// *BulkEditAssignedInventorySourcesResponse.ServerResponse.Header or
34267// (if a response was returned at all) in
34268// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
34269// whether the returned error was because http.StatusNotModified was
34270// returned.
34271func (c *InventorySourceGroupsAssignedInventorySourcesBulkEditCall) Do(opts ...googleapi.CallOption) (*BulkEditAssignedInventorySourcesResponse, error) {
34272	gensupport.SetOptions(c.urlParams_, opts...)
34273	res, err := c.doRequest("json")
34274	if res != nil && res.StatusCode == http.StatusNotModified {
34275		if res.Body != nil {
34276			res.Body.Close()
34277		}
34278		return nil, &googleapi.Error{
34279			Code:   res.StatusCode,
34280			Header: res.Header,
34281		}
34282	}
34283	if err != nil {
34284		return nil, err
34285	}
34286	defer googleapi.CloseBody(res)
34287	if err := googleapi.CheckResponse(res); err != nil {
34288		return nil, err
34289	}
34290	ret := &BulkEditAssignedInventorySourcesResponse{
34291		ServerResponse: googleapi.ServerResponse{
34292			Header:         res.Header,
34293			HTTPStatusCode: res.StatusCode,
34294		},
34295	}
34296	target := &ret
34297	if err := gensupport.DecodeResponse(target, res); err != nil {
34298		return nil, err
34299	}
34300	return ret, nil
34301	// {
34302	//   "description": "Bulk edits multiple assignments between inventory sources and a single inventory source group. The operation will delete the assigned inventory sources provided in BulkEditAssignedInventorySourcesRequest.deleted_assigned_inventory_sources and then create the assigned inventory sources provided in BulkEditAssignedInventorySourcesRequest.created_assigned_inventory_sources.",
34303	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources:bulkEdit",
34304	//   "httpMethod": "POST",
34305	//   "id": "displayvideo.inventorySourceGroups.assignedInventorySources.bulkEdit",
34306	//   "parameterOrder": [
34307	//     "inventorySourceGroupId"
34308	//   ],
34309	//   "parameters": {
34310	//     "inventorySourceGroupId": {
34311	//       "description": "Required. The ID of the inventory source group to which the assignments are assigned.",
34312	//       "format": "int64",
34313	//       "location": "path",
34314	//       "pattern": "^[^/]+$",
34315	//       "required": true,
34316	//       "type": "string"
34317	//     }
34318	//   },
34319	//   "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources:bulkEdit",
34320	//   "request": {
34321	//     "$ref": "BulkEditAssignedInventorySourcesRequest"
34322	//   },
34323	//   "response": {
34324	//     "$ref": "BulkEditAssignedInventorySourcesResponse"
34325	//   },
34326	//   "scopes": [
34327	//     "https://www.googleapis.com/auth/display-video"
34328	//   ]
34329	// }
34330
34331}
34332
34333// method id "displayvideo.inventorySourceGroups.assignedInventorySources.create":
34334
34335type InventorySourceGroupsAssignedInventorySourcesCreateCall struct {
34336	s                       *Service
34337	inventorySourceGroupId  int64
34338	assignedinventorysource *AssignedInventorySource
34339	urlParams_              gensupport.URLParams
34340	ctx_                    context.Context
34341	header_                 http.Header
34342}
34343
34344// Create: Creates an assignment between an inventory source and an
34345// inventory source group.
34346//
34347// - inventorySourceGroupId: The ID of the inventory source group to
34348//   which the assignment will be assigned.
34349func (r *InventorySourceGroupsAssignedInventorySourcesService) Create(inventorySourceGroupId int64, assignedinventorysource *AssignedInventorySource) *InventorySourceGroupsAssignedInventorySourcesCreateCall {
34350	c := &InventorySourceGroupsAssignedInventorySourcesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34351	c.inventorySourceGroupId = inventorySourceGroupId
34352	c.assignedinventorysource = assignedinventorysource
34353	return c
34354}
34355
34356// AdvertiserId sets the optional parameter "advertiserId": The ID of
34357// the advertiser that owns the parent inventory source group. The
34358// parent partner will not have access to this assigned inventory
34359// source.
34360func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsAssignedInventorySourcesCreateCall {
34361	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
34362	return c
34363}
34364
34365// PartnerId sets the optional parameter "partnerId": The ID of the
34366// partner that owns the parent inventory source group. Only this
34367// partner will have write access to this assigned inventory source.
34368func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) PartnerId(partnerId int64) *InventorySourceGroupsAssignedInventorySourcesCreateCall {
34369	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
34370	return c
34371}
34372
34373// Fields allows partial responses to be retrieved. See
34374// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34375// for more information.
34376func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) Fields(s ...googleapi.Field) *InventorySourceGroupsAssignedInventorySourcesCreateCall {
34377	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34378	return c
34379}
34380
34381// Context sets the context to be used in this call's Do method. Any
34382// pending HTTP request will be aborted if the provided context is
34383// canceled.
34384func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) Context(ctx context.Context) *InventorySourceGroupsAssignedInventorySourcesCreateCall {
34385	c.ctx_ = ctx
34386	return c
34387}
34388
34389// Header returns an http.Header that can be modified by the caller to
34390// add HTTP headers to the request.
34391func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) Header() http.Header {
34392	if c.header_ == nil {
34393		c.header_ = make(http.Header)
34394	}
34395	return c.header_
34396}
34397
34398func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) doRequest(alt string) (*http.Response, error) {
34399	reqHeaders := make(http.Header)
34400	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
34401	for k, v := range c.header_ {
34402		reqHeaders[k] = v
34403	}
34404	reqHeaders.Set("User-Agent", c.s.userAgent())
34405	var body io.Reader = nil
34406	body, err := googleapi.WithoutDataWrapper.JSONReader(c.assignedinventorysource)
34407	if err != nil {
34408		return nil, err
34409	}
34410	reqHeaders.Set("Content-Type", "application/json")
34411	c.urlParams_.Set("alt", alt)
34412	c.urlParams_.Set("prettyPrint", "false")
34413	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources")
34414	urls += "?" + c.urlParams_.Encode()
34415	req, err := http.NewRequest("POST", urls, body)
34416	if err != nil {
34417		return nil, err
34418	}
34419	req.Header = reqHeaders
34420	googleapi.Expand(req.URL, map[string]string{
34421		"inventorySourceGroupId": strconv.FormatInt(c.inventorySourceGroupId, 10),
34422	})
34423	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34424}
34425
34426// Do executes the "displayvideo.inventorySourceGroups.assignedInventorySources.create" call.
34427// Exactly one of *AssignedInventorySource or error will be non-nil. Any
34428// non-2xx status code is an error. Response headers are in either
34429// *AssignedInventorySource.ServerResponse.Header or (if a response was
34430// returned at all) in error.(*googleapi.Error).Header. Use
34431// googleapi.IsNotModified to check whether the returned error was
34432// because http.StatusNotModified was returned.
34433func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) Do(opts ...googleapi.CallOption) (*AssignedInventorySource, error) {
34434	gensupport.SetOptions(c.urlParams_, opts...)
34435	res, err := c.doRequest("json")
34436	if res != nil && res.StatusCode == http.StatusNotModified {
34437		if res.Body != nil {
34438			res.Body.Close()
34439		}
34440		return nil, &googleapi.Error{
34441			Code:   res.StatusCode,
34442			Header: res.Header,
34443		}
34444	}
34445	if err != nil {
34446		return nil, err
34447	}
34448	defer googleapi.CloseBody(res)
34449	if err := googleapi.CheckResponse(res); err != nil {
34450		return nil, err
34451	}
34452	ret := &AssignedInventorySource{
34453		ServerResponse: googleapi.ServerResponse{
34454			Header:         res.Header,
34455			HTTPStatusCode: res.StatusCode,
34456		},
34457	}
34458	target := &ret
34459	if err := gensupport.DecodeResponse(target, res); err != nil {
34460		return nil, err
34461	}
34462	return ret, nil
34463	// {
34464	//   "description": "Creates an assignment between an inventory source and an inventory source group.",
34465	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources",
34466	//   "httpMethod": "POST",
34467	//   "id": "displayvideo.inventorySourceGroups.assignedInventorySources.create",
34468	//   "parameterOrder": [
34469	//     "inventorySourceGroupId"
34470	//   ],
34471	//   "parameters": {
34472	//     "advertiserId": {
34473	//       "description": "The ID of the advertiser that owns the parent inventory source group. The parent partner will not have access to this assigned inventory source.",
34474	//       "format": "int64",
34475	//       "location": "query",
34476	//       "type": "string"
34477	//     },
34478	//     "inventorySourceGroupId": {
34479	//       "description": "Required. The ID of the inventory source group to which the assignment will be assigned.",
34480	//       "format": "int64",
34481	//       "location": "path",
34482	//       "pattern": "^[^/]+$",
34483	//       "required": true,
34484	//       "type": "string"
34485	//     },
34486	//     "partnerId": {
34487	//       "description": "The ID of the partner that owns the parent inventory source group. Only this partner will have write access to this assigned inventory source.",
34488	//       "format": "int64",
34489	//       "location": "query",
34490	//       "type": "string"
34491	//     }
34492	//   },
34493	//   "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources",
34494	//   "request": {
34495	//     "$ref": "AssignedInventorySource"
34496	//   },
34497	//   "response": {
34498	//     "$ref": "AssignedInventorySource"
34499	//   },
34500	//   "scopes": [
34501	//     "https://www.googleapis.com/auth/display-video"
34502	//   ]
34503	// }
34504
34505}
34506
34507// method id "displayvideo.inventorySourceGroups.assignedInventorySources.delete":
34508
34509type InventorySourceGroupsAssignedInventorySourcesDeleteCall struct {
34510	s                         *Service
34511	inventorySourceGroupId    int64
34512	assignedInventorySourceId int64
34513	urlParams_                gensupport.URLParams
34514	ctx_                      context.Context
34515	header_                   http.Header
34516}
34517
34518// Delete: Deletes the assignment between an inventory source and an
34519// inventory source group.
34520//
34521// - assignedInventorySourceId: The ID of the assigned inventory source
34522//   to delete.
34523// - inventorySourceGroupId: The ID of the inventory source group to
34524//   which this assignment is assigned.
34525func (r *InventorySourceGroupsAssignedInventorySourcesService) Delete(inventorySourceGroupId int64, assignedInventorySourceId int64) *InventorySourceGroupsAssignedInventorySourcesDeleteCall {
34526	c := &InventorySourceGroupsAssignedInventorySourcesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34527	c.inventorySourceGroupId = inventorySourceGroupId
34528	c.assignedInventorySourceId = assignedInventorySourceId
34529	return c
34530}
34531
34532// AdvertiserId sets the optional parameter "advertiserId": The ID of
34533// the advertiser that owns the parent inventory source group. The
34534// parent partner does not have access to this assigned inventory
34535// source.
34536func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsAssignedInventorySourcesDeleteCall {
34537	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
34538	return c
34539}
34540
34541// PartnerId sets the optional parameter "partnerId": The ID of the
34542// partner that owns the parent inventory source group. Only this
34543// partner has write access to this assigned inventory source.
34544func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) PartnerId(partnerId int64) *InventorySourceGroupsAssignedInventorySourcesDeleteCall {
34545	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
34546	return c
34547}
34548
34549// Fields allows partial responses to be retrieved. See
34550// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34551// for more information.
34552func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) Fields(s ...googleapi.Field) *InventorySourceGroupsAssignedInventorySourcesDeleteCall {
34553	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34554	return c
34555}
34556
34557// Context sets the context to be used in this call's Do method. Any
34558// pending HTTP request will be aborted if the provided context is
34559// canceled.
34560func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) Context(ctx context.Context) *InventorySourceGroupsAssignedInventorySourcesDeleteCall {
34561	c.ctx_ = ctx
34562	return c
34563}
34564
34565// Header returns an http.Header that can be modified by the caller to
34566// add HTTP headers to the request.
34567func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) Header() http.Header {
34568	if c.header_ == nil {
34569		c.header_ = make(http.Header)
34570	}
34571	return c.header_
34572}
34573
34574func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) doRequest(alt string) (*http.Response, error) {
34575	reqHeaders := make(http.Header)
34576	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
34577	for k, v := range c.header_ {
34578		reqHeaders[k] = v
34579	}
34580	reqHeaders.Set("User-Agent", c.s.userAgent())
34581	var body io.Reader = nil
34582	c.urlParams_.Set("alt", alt)
34583	c.urlParams_.Set("prettyPrint", "false")
34584	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources/{+assignedInventorySourceId}")
34585	urls += "?" + c.urlParams_.Encode()
34586	req, err := http.NewRequest("DELETE", urls, body)
34587	if err != nil {
34588		return nil, err
34589	}
34590	req.Header = reqHeaders
34591	googleapi.Expand(req.URL, map[string]string{
34592		"inventorySourceGroupId":    strconv.FormatInt(c.inventorySourceGroupId, 10),
34593		"assignedInventorySourceId": strconv.FormatInt(c.assignedInventorySourceId, 10),
34594	})
34595	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34596}
34597
34598// Do executes the "displayvideo.inventorySourceGroups.assignedInventorySources.delete" call.
34599// Exactly one of *Empty or error will be non-nil. Any non-2xx status
34600// code is an error. Response headers are in either
34601// *Empty.ServerResponse.Header or (if a response was returned at all)
34602// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
34603// check whether the returned error was because http.StatusNotModified
34604// was returned.
34605func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
34606	gensupport.SetOptions(c.urlParams_, opts...)
34607	res, err := c.doRequest("json")
34608	if res != nil && res.StatusCode == http.StatusNotModified {
34609		if res.Body != nil {
34610			res.Body.Close()
34611		}
34612		return nil, &googleapi.Error{
34613			Code:   res.StatusCode,
34614			Header: res.Header,
34615		}
34616	}
34617	if err != nil {
34618		return nil, err
34619	}
34620	defer googleapi.CloseBody(res)
34621	if err := googleapi.CheckResponse(res); err != nil {
34622		return nil, err
34623	}
34624	ret := &Empty{
34625		ServerResponse: googleapi.ServerResponse{
34626			Header:         res.Header,
34627			HTTPStatusCode: res.StatusCode,
34628		},
34629	}
34630	target := &ret
34631	if err := gensupport.DecodeResponse(target, res); err != nil {
34632		return nil, err
34633	}
34634	return ret, nil
34635	// {
34636	//   "description": "Deletes the assignment between an inventory source and an inventory source group.",
34637	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources/{assignedInventorySourcesId}",
34638	//   "httpMethod": "DELETE",
34639	//   "id": "displayvideo.inventorySourceGroups.assignedInventorySources.delete",
34640	//   "parameterOrder": [
34641	//     "inventorySourceGroupId",
34642	//     "assignedInventorySourceId"
34643	//   ],
34644	//   "parameters": {
34645	//     "advertiserId": {
34646	//       "description": "The ID of the advertiser that owns the parent inventory source group. The parent partner does not have access to this assigned inventory source.",
34647	//       "format": "int64",
34648	//       "location": "query",
34649	//       "type": "string"
34650	//     },
34651	//     "assignedInventorySourceId": {
34652	//       "description": "Required. The ID of the assigned inventory source to delete.",
34653	//       "format": "int64",
34654	//       "location": "path",
34655	//       "pattern": "^[^/]+$",
34656	//       "required": true,
34657	//       "type": "string"
34658	//     },
34659	//     "inventorySourceGroupId": {
34660	//       "description": "Required. The ID of the inventory source group to which this assignment is assigned.",
34661	//       "format": "int64",
34662	//       "location": "path",
34663	//       "pattern": "^[^/]+$",
34664	//       "required": true,
34665	//       "type": "string"
34666	//     },
34667	//     "partnerId": {
34668	//       "description": "The ID of the partner that owns the parent inventory source group. Only this partner has write access to this assigned inventory source.",
34669	//       "format": "int64",
34670	//       "location": "query",
34671	//       "type": "string"
34672	//     }
34673	//   },
34674	//   "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources/{+assignedInventorySourceId}",
34675	//   "response": {
34676	//     "$ref": "Empty"
34677	//   },
34678	//   "scopes": [
34679	//     "https://www.googleapis.com/auth/display-video"
34680	//   ]
34681	// }
34682
34683}
34684
34685// method id "displayvideo.inventorySourceGroups.assignedInventorySources.list":
34686
34687type InventorySourceGroupsAssignedInventorySourcesListCall struct {
34688	s                      *Service
34689	inventorySourceGroupId int64
34690	urlParams_             gensupport.URLParams
34691	ifNoneMatch_           string
34692	ctx_                   context.Context
34693	header_                http.Header
34694}
34695
34696// List: Lists inventory sources assigned to an inventory source group.
34697//
34698// - inventorySourceGroupId: The ID of the inventory source group to
34699//   which these assignments are assigned.
34700func (r *InventorySourceGroupsAssignedInventorySourcesService) List(inventorySourceGroupId int64) *InventorySourceGroupsAssignedInventorySourcesListCall {
34701	c := &InventorySourceGroupsAssignedInventorySourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34702	c.inventorySourceGroupId = inventorySourceGroupId
34703	return c
34704}
34705
34706// AdvertiserId sets the optional parameter "advertiserId": The ID of
34707// the advertiser that has access to the assignment. If the parent
34708// inventory source group is partner-owned, only advertisers to which
34709// the parent group is explicitly shared can access the assigned
34710// inventory source.
34711func (c *InventorySourceGroupsAssignedInventorySourcesListCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsAssignedInventorySourcesListCall {
34712	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
34713	return c
34714}
34715
34716// Filter sets the optional parameter "filter": Allows filtering by
34717// assigned inventory source fields. Supported syntax: * Filter
34718// expressions are made up of one or more restrictions. * Restrictions
34719// can be combined by the logical operator `OR`. * A restriction has the
34720// form of `{field} {operator} {value}`. * The operator must be `EQUALS
34721// (=)`. * Supported fields: - `assignedInventorySourceId` The length of
34722// this field should be no more than 500 characters.
34723func (c *InventorySourceGroupsAssignedInventorySourcesListCall) Filter(filter string) *InventorySourceGroupsAssignedInventorySourcesListCall {
34724	c.urlParams_.Set("filter", filter)
34725	return c
34726}
34727
34728// OrderBy sets the optional parameter "orderBy": Field by which to sort
34729// the list. Acceptable values are: * `assignedInventorySourceId`
34730// (default) The default sorting order is ascending. To specify
34731// descending order for a field, a suffix " desc" should be added to the
34732// field name. Example: `assignedInventorySourceId desc`.
34733func (c *InventorySourceGroupsAssignedInventorySourcesListCall) OrderBy(orderBy string) *InventorySourceGroupsAssignedInventorySourcesListCall {
34734	c.urlParams_.Set("orderBy", orderBy)
34735	return c
34736}
34737
34738// PageSize sets the optional parameter "pageSize": Requested page size.
34739// Must be between `1` and `100`. If unspecified will default to `100`.
34740// Returns error code `INVALID_ARGUMENT` if an invalid value is
34741// specified.
34742func (c *InventorySourceGroupsAssignedInventorySourcesListCall) PageSize(pageSize int64) *InventorySourceGroupsAssignedInventorySourcesListCall {
34743	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
34744	return c
34745}
34746
34747// PageToken sets the optional parameter "pageToken": A token
34748// identifying a page of results the server should return. Typically,
34749// this is the value of next_page_token returned from the previous call
34750// to `ListAssignedInventorySources` method. If not specified, the first
34751// page of results will be returned.
34752func (c *InventorySourceGroupsAssignedInventorySourcesListCall) PageToken(pageToken string) *InventorySourceGroupsAssignedInventorySourcesListCall {
34753	c.urlParams_.Set("pageToken", pageToken)
34754	return c
34755}
34756
34757// PartnerId sets the optional parameter "partnerId": The ID of the
34758// partner that has access to the assignment. If the parent inventory
34759// source group is advertiser-owned, the assignment cannot be accessed
34760// via a partner.
34761func (c *InventorySourceGroupsAssignedInventorySourcesListCall) PartnerId(partnerId int64) *InventorySourceGroupsAssignedInventorySourcesListCall {
34762	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
34763	return c
34764}
34765
34766// Fields allows partial responses to be retrieved. See
34767// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34768// for more information.
34769func (c *InventorySourceGroupsAssignedInventorySourcesListCall) Fields(s ...googleapi.Field) *InventorySourceGroupsAssignedInventorySourcesListCall {
34770	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34771	return c
34772}
34773
34774// IfNoneMatch sets the optional parameter which makes the operation
34775// fail if the object's ETag matches the given value. This is useful for
34776// getting updates only after the object has changed since the last
34777// request. Use googleapi.IsNotModified to check whether the response
34778// error from Do is the result of In-None-Match.
34779func (c *InventorySourceGroupsAssignedInventorySourcesListCall) IfNoneMatch(entityTag string) *InventorySourceGroupsAssignedInventorySourcesListCall {
34780	c.ifNoneMatch_ = entityTag
34781	return c
34782}
34783
34784// Context sets the context to be used in this call's Do method. Any
34785// pending HTTP request will be aborted if the provided context is
34786// canceled.
34787func (c *InventorySourceGroupsAssignedInventorySourcesListCall) Context(ctx context.Context) *InventorySourceGroupsAssignedInventorySourcesListCall {
34788	c.ctx_ = ctx
34789	return c
34790}
34791
34792// Header returns an http.Header that can be modified by the caller to
34793// add HTTP headers to the request.
34794func (c *InventorySourceGroupsAssignedInventorySourcesListCall) Header() http.Header {
34795	if c.header_ == nil {
34796		c.header_ = make(http.Header)
34797	}
34798	return c.header_
34799}
34800
34801func (c *InventorySourceGroupsAssignedInventorySourcesListCall) doRequest(alt string) (*http.Response, error) {
34802	reqHeaders := make(http.Header)
34803	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
34804	for k, v := range c.header_ {
34805		reqHeaders[k] = v
34806	}
34807	reqHeaders.Set("User-Agent", c.s.userAgent())
34808	if c.ifNoneMatch_ != "" {
34809		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
34810	}
34811	var body io.Reader = nil
34812	c.urlParams_.Set("alt", alt)
34813	c.urlParams_.Set("prettyPrint", "false")
34814	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources")
34815	urls += "?" + c.urlParams_.Encode()
34816	req, err := http.NewRequest("GET", urls, body)
34817	if err != nil {
34818		return nil, err
34819	}
34820	req.Header = reqHeaders
34821	googleapi.Expand(req.URL, map[string]string{
34822		"inventorySourceGroupId": strconv.FormatInt(c.inventorySourceGroupId, 10),
34823	})
34824	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34825}
34826
34827// Do executes the "displayvideo.inventorySourceGroups.assignedInventorySources.list" call.
34828// Exactly one of *ListAssignedInventorySourcesResponse or error will be
34829// non-nil. Any non-2xx status code is an error. Response headers are in
34830// either *ListAssignedInventorySourcesResponse.ServerResponse.Header or
34831// (if a response was returned at all) in
34832// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
34833// whether the returned error was because http.StatusNotModified was
34834// returned.
34835func (c *InventorySourceGroupsAssignedInventorySourcesListCall) Do(opts ...googleapi.CallOption) (*ListAssignedInventorySourcesResponse, error) {
34836	gensupport.SetOptions(c.urlParams_, opts...)
34837	res, err := c.doRequest("json")
34838	if res != nil && res.StatusCode == http.StatusNotModified {
34839		if res.Body != nil {
34840			res.Body.Close()
34841		}
34842		return nil, &googleapi.Error{
34843			Code:   res.StatusCode,
34844			Header: res.Header,
34845		}
34846	}
34847	if err != nil {
34848		return nil, err
34849	}
34850	defer googleapi.CloseBody(res)
34851	if err := googleapi.CheckResponse(res); err != nil {
34852		return nil, err
34853	}
34854	ret := &ListAssignedInventorySourcesResponse{
34855		ServerResponse: googleapi.ServerResponse{
34856			Header:         res.Header,
34857			HTTPStatusCode: res.StatusCode,
34858		},
34859	}
34860	target := &ret
34861	if err := gensupport.DecodeResponse(target, res); err != nil {
34862		return nil, err
34863	}
34864	return ret, nil
34865	// {
34866	//   "description": "Lists inventory sources assigned to an inventory source group.",
34867	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources",
34868	//   "httpMethod": "GET",
34869	//   "id": "displayvideo.inventorySourceGroups.assignedInventorySources.list",
34870	//   "parameterOrder": [
34871	//     "inventorySourceGroupId"
34872	//   ],
34873	//   "parameters": {
34874	//     "advertiserId": {
34875	//       "description": "The ID of the advertiser that has access to the assignment. If the parent inventory source group is partner-owned, only advertisers to which the parent group is explicitly shared can access the assigned inventory source.",
34876	//       "format": "int64",
34877	//       "location": "query",
34878	//       "type": "string"
34879	//     },
34880	//     "filter": {
34881	//       "description": "Allows filtering by assigned inventory source fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedInventorySourceId` The length of this field should be no more than 500 characters.",
34882	//       "location": "query",
34883	//       "type": "string"
34884	//     },
34885	//     "inventorySourceGroupId": {
34886	//       "description": "Required. The ID of the inventory source group to which these assignments are assigned.",
34887	//       "format": "int64",
34888	//       "location": "path",
34889	//       "pattern": "^[^/]+$",
34890	//       "required": true,
34891	//       "type": "string"
34892	//     },
34893	//     "orderBy": {
34894	//       "description": "Field by which to sort the list. Acceptable values are: * `assignedInventorySourceId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `assignedInventorySourceId desc`.",
34895	//       "location": "query",
34896	//       "type": "string"
34897	//     },
34898	//     "pageSize": {
34899	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
34900	//       "format": "int32",
34901	//       "location": "query",
34902	//       "type": "integer"
34903	//     },
34904	//     "pageToken": {
34905	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAssignedInventorySources` method. If not specified, the first page of results will be returned.",
34906	//       "location": "query",
34907	//       "type": "string"
34908	//     },
34909	//     "partnerId": {
34910	//       "description": "The ID of the partner that has access to the assignment. If the parent inventory source group is advertiser-owned, the assignment cannot be accessed via a partner.",
34911	//       "format": "int64",
34912	//       "location": "query",
34913	//       "type": "string"
34914	//     }
34915	//   },
34916	//   "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources",
34917	//   "response": {
34918	//     "$ref": "ListAssignedInventorySourcesResponse"
34919	//   },
34920	//   "scopes": [
34921	//     "https://www.googleapis.com/auth/display-video"
34922	//   ]
34923	// }
34924
34925}
34926
34927// Pages invokes f for each page of results.
34928// A non-nil error returned from f will halt the iteration.
34929// The provided context supersedes any context provided to the Context method.
34930func (c *InventorySourceGroupsAssignedInventorySourcesListCall) Pages(ctx context.Context, f func(*ListAssignedInventorySourcesResponse) error) error {
34931	c.ctx_ = ctx
34932	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
34933	for {
34934		x, err := c.Do()
34935		if err != nil {
34936			return err
34937		}
34938		if err := f(x); err != nil {
34939			return err
34940		}
34941		if x.NextPageToken == "" {
34942			return nil
34943		}
34944		c.PageToken(x.NextPageToken)
34945	}
34946}
34947
34948// method id "displayvideo.inventorySources.get":
34949
34950type InventorySourcesGetCall struct {
34951	s                 *Service
34952	inventorySourceId int64
34953	urlParams_        gensupport.URLParams
34954	ifNoneMatch_      string
34955	ctx_              context.Context
34956	header_           http.Header
34957}
34958
34959// Get: Gets an inventory source.
34960//
34961// - inventorySourceId: The ID of the inventory source to fetch.
34962func (r *InventorySourcesService) Get(inventorySourceId int64) *InventorySourcesGetCall {
34963	c := &InventorySourcesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34964	c.inventorySourceId = inventorySourceId
34965	return c
34966}
34967
34968// PartnerId sets the optional parameter "partnerId": Required. The ID
34969// of the DV360 partner to which the fetched inventory source is
34970// permissioned.
34971func (c *InventorySourcesGetCall) PartnerId(partnerId int64) *InventorySourcesGetCall {
34972	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
34973	return c
34974}
34975
34976// Fields allows partial responses to be retrieved. See
34977// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34978// for more information.
34979func (c *InventorySourcesGetCall) Fields(s ...googleapi.Field) *InventorySourcesGetCall {
34980	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34981	return c
34982}
34983
34984// IfNoneMatch sets the optional parameter which makes the operation
34985// fail if the object's ETag matches the given value. This is useful for
34986// getting updates only after the object has changed since the last
34987// request. Use googleapi.IsNotModified to check whether the response
34988// error from Do is the result of In-None-Match.
34989func (c *InventorySourcesGetCall) IfNoneMatch(entityTag string) *InventorySourcesGetCall {
34990	c.ifNoneMatch_ = entityTag
34991	return c
34992}
34993
34994// Context sets the context to be used in this call's Do method. Any
34995// pending HTTP request will be aborted if the provided context is
34996// canceled.
34997func (c *InventorySourcesGetCall) Context(ctx context.Context) *InventorySourcesGetCall {
34998	c.ctx_ = ctx
34999	return c
35000}
35001
35002// Header returns an http.Header that can be modified by the caller to
35003// add HTTP headers to the request.
35004func (c *InventorySourcesGetCall) Header() http.Header {
35005	if c.header_ == nil {
35006		c.header_ = make(http.Header)
35007	}
35008	return c.header_
35009}
35010
35011func (c *InventorySourcesGetCall) doRequest(alt string) (*http.Response, error) {
35012	reqHeaders := make(http.Header)
35013	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
35014	for k, v := range c.header_ {
35015		reqHeaders[k] = v
35016	}
35017	reqHeaders.Set("User-Agent", c.s.userAgent())
35018	if c.ifNoneMatch_ != "" {
35019		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35020	}
35021	var body io.Reader = nil
35022	c.urlParams_.Set("alt", alt)
35023	c.urlParams_.Set("prettyPrint", "false")
35024	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySources/{+inventorySourceId}")
35025	urls += "?" + c.urlParams_.Encode()
35026	req, err := http.NewRequest("GET", urls, body)
35027	if err != nil {
35028		return nil, err
35029	}
35030	req.Header = reqHeaders
35031	googleapi.Expand(req.URL, map[string]string{
35032		"inventorySourceId": strconv.FormatInt(c.inventorySourceId, 10),
35033	})
35034	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35035}
35036
35037// Do executes the "displayvideo.inventorySources.get" call.
35038// Exactly one of *InventorySource or error will be non-nil. Any non-2xx
35039// status code is an error. Response headers are in either
35040// *InventorySource.ServerResponse.Header or (if a response was returned
35041// at all) in error.(*googleapi.Error).Header. Use
35042// googleapi.IsNotModified to check whether the returned error was
35043// because http.StatusNotModified was returned.
35044func (c *InventorySourcesGetCall) Do(opts ...googleapi.CallOption) (*InventorySource, error) {
35045	gensupport.SetOptions(c.urlParams_, opts...)
35046	res, err := c.doRequest("json")
35047	if res != nil && res.StatusCode == http.StatusNotModified {
35048		if res.Body != nil {
35049			res.Body.Close()
35050		}
35051		return nil, &googleapi.Error{
35052			Code:   res.StatusCode,
35053			Header: res.Header,
35054		}
35055	}
35056	if err != nil {
35057		return nil, err
35058	}
35059	defer googleapi.CloseBody(res)
35060	if err := googleapi.CheckResponse(res); err != nil {
35061		return nil, err
35062	}
35063	ret := &InventorySource{
35064		ServerResponse: googleapi.ServerResponse{
35065			Header:         res.Header,
35066			HTTPStatusCode: res.StatusCode,
35067		},
35068	}
35069	target := &ret
35070	if err := gensupport.DecodeResponse(target, res); err != nil {
35071		return nil, err
35072	}
35073	return ret, nil
35074	// {
35075	//   "description": "Gets an inventory source.",
35076	//   "flatPath": "v1/inventorySources/{inventorySourcesId}",
35077	//   "httpMethod": "GET",
35078	//   "id": "displayvideo.inventorySources.get",
35079	//   "parameterOrder": [
35080	//     "inventorySourceId"
35081	//   ],
35082	//   "parameters": {
35083	//     "inventorySourceId": {
35084	//       "description": "Required. The ID of the inventory source to fetch.",
35085	//       "format": "int64",
35086	//       "location": "path",
35087	//       "pattern": "^[^/]+$",
35088	//       "required": true,
35089	//       "type": "string"
35090	//     },
35091	//     "partnerId": {
35092	//       "description": "Required. The ID of the DV360 partner to which the fetched inventory source is permissioned.",
35093	//       "format": "int64",
35094	//       "location": "query",
35095	//       "type": "string"
35096	//     }
35097	//   },
35098	//   "path": "v1/inventorySources/{+inventorySourceId}",
35099	//   "response": {
35100	//     "$ref": "InventorySource"
35101	//   },
35102	//   "scopes": [
35103	//     "https://www.googleapis.com/auth/display-video"
35104	//   ]
35105	// }
35106
35107}
35108
35109// method id "displayvideo.inventorySources.list":
35110
35111type InventorySourcesListCall struct {
35112	s            *Service
35113	urlParams_   gensupport.URLParams
35114	ifNoneMatch_ string
35115	ctx_         context.Context
35116	header_      http.Header
35117}
35118
35119// List: Lists inventory sources that are accessible to the current
35120// user. The order is defined by the order_by parameter. If a filter by
35121// entity_status is not specified, inventory sources with entity status
35122// `ENTITY_STATUS_ARCHIVED` will not be included in the results.
35123func (r *InventorySourcesService) List() *InventorySourcesListCall {
35124	c := &InventorySourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35125	return c
35126}
35127
35128// AdvertiserId sets the optional parameter "advertiserId": The ID of
35129// the advertiser that has access to the inventory source.
35130func (c *InventorySourcesListCall) AdvertiserId(advertiserId int64) *InventorySourcesListCall {
35131	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
35132	return c
35133}
35134
35135// Filter sets the optional parameter "filter": Allows filtering by
35136// inventory source properties. Supported syntax: * Filter expressions
35137// are made up of one or more restrictions. * Restrictions can be
35138// combined by `AND` or `OR` logical operators. A sequence of
35139// restrictions implicitly uses `AND`. * A restriction has the form of
35140// `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. *
35141// Supported fields: - `status.entityStatus` - `commitment` -
35142// `deliveryMethod` - `rateDetails.rateType` - `exchange` Examples: *
35143// All active inventory sources:
35144// `status.entityStatus="ENTITY_STATUS_ACTIVE" * Inventory sources
35145// belonging to Google Ad Manager or Rubicon exchanges:
35146// `exchange="EXCHANGE_GOOGLE_AD_MANAGER" OR
35147// exchange="EXCHANGE_RUBICON" The length of this field should be no
35148// more than 500 characters.
35149func (c *InventorySourcesListCall) Filter(filter string) *InventorySourcesListCall {
35150	c.urlParams_.Set("filter", filter)
35151	return c
35152}
35153
35154// OrderBy sets the optional parameter "orderBy": Field by which to sort
35155// the list. Acceptable values are: * `displayName` (default) The
35156// default sorting order is ascending. To specify descending order for a
35157// field, a suffix "desc" should be added to the field name. For
35158// example, `displayName desc`.
35159func (c *InventorySourcesListCall) OrderBy(orderBy string) *InventorySourcesListCall {
35160	c.urlParams_.Set("orderBy", orderBy)
35161	return c
35162}
35163
35164// PageSize sets the optional parameter "pageSize": Requested page size.
35165// Must be between `1` and `100`. If unspecified will default to `100`.
35166func (c *InventorySourcesListCall) PageSize(pageSize int64) *InventorySourcesListCall {
35167	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
35168	return c
35169}
35170
35171// PageToken sets the optional parameter "pageToken": A token
35172// identifying a page of results the server should return. Typically,
35173// this is the value of next_page_token returned from the previous call
35174// to `ListInventorySources` method. If not specified, the first page of
35175// results will be returned.
35176func (c *InventorySourcesListCall) PageToken(pageToken string) *InventorySourcesListCall {
35177	c.urlParams_.Set("pageToken", pageToken)
35178	return c
35179}
35180
35181// PartnerId sets the optional parameter "partnerId": The ID of the
35182// partner that has access to the inventory source.
35183func (c *InventorySourcesListCall) PartnerId(partnerId int64) *InventorySourcesListCall {
35184	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
35185	return c
35186}
35187
35188// Fields allows partial responses to be retrieved. See
35189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35190// for more information.
35191func (c *InventorySourcesListCall) Fields(s ...googleapi.Field) *InventorySourcesListCall {
35192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35193	return c
35194}
35195
35196// IfNoneMatch sets the optional parameter which makes the operation
35197// fail if the object's ETag matches the given value. This is useful for
35198// getting updates only after the object has changed since the last
35199// request. Use googleapi.IsNotModified to check whether the response
35200// error from Do is the result of In-None-Match.
35201func (c *InventorySourcesListCall) IfNoneMatch(entityTag string) *InventorySourcesListCall {
35202	c.ifNoneMatch_ = entityTag
35203	return c
35204}
35205
35206// Context sets the context to be used in this call's Do method. Any
35207// pending HTTP request will be aborted if the provided context is
35208// canceled.
35209func (c *InventorySourcesListCall) Context(ctx context.Context) *InventorySourcesListCall {
35210	c.ctx_ = ctx
35211	return c
35212}
35213
35214// Header returns an http.Header that can be modified by the caller to
35215// add HTTP headers to the request.
35216func (c *InventorySourcesListCall) Header() http.Header {
35217	if c.header_ == nil {
35218		c.header_ = make(http.Header)
35219	}
35220	return c.header_
35221}
35222
35223func (c *InventorySourcesListCall) doRequest(alt string) (*http.Response, error) {
35224	reqHeaders := make(http.Header)
35225	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
35226	for k, v := range c.header_ {
35227		reqHeaders[k] = v
35228	}
35229	reqHeaders.Set("User-Agent", c.s.userAgent())
35230	if c.ifNoneMatch_ != "" {
35231		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35232	}
35233	var body io.Reader = nil
35234	c.urlParams_.Set("alt", alt)
35235	c.urlParams_.Set("prettyPrint", "false")
35236	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySources")
35237	urls += "?" + c.urlParams_.Encode()
35238	req, err := http.NewRequest("GET", urls, body)
35239	if err != nil {
35240		return nil, err
35241	}
35242	req.Header = reqHeaders
35243	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35244}
35245
35246// Do executes the "displayvideo.inventorySources.list" call.
35247// Exactly one of *ListInventorySourcesResponse or error will be
35248// non-nil. Any non-2xx status code is an error. Response headers are in
35249// either *ListInventorySourcesResponse.ServerResponse.Header or (if a
35250// response was returned at all) in error.(*googleapi.Error).Header. Use
35251// googleapi.IsNotModified to check whether the returned error was
35252// because http.StatusNotModified was returned.
35253func (c *InventorySourcesListCall) Do(opts ...googleapi.CallOption) (*ListInventorySourcesResponse, error) {
35254	gensupport.SetOptions(c.urlParams_, opts...)
35255	res, err := c.doRequest("json")
35256	if res != nil && res.StatusCode == http.StatusNotModified {
35257		if res.Body != nil {
35258			res.Body.Close()
35259		}
35260		return nil, &googleapi.Error{
35261			Code:   res.StatusCode,
35262			Header: res.Header,
35263		}
35264	}
35265	if err != nil {
35266		return nil, err
35267	}
35268	defer googleapi.CloseBody(res)
35269	if err := googleapi.CheckResponse(res); err != nil {
35270		return nil, err
35271	}
35272	ret := &ListInventorySourcesResponse{
35273		ServerResponse: googleapi.ServerResponse{
35274			Header:         res.Header,
35275			HTTPStatusCode: res.StatusCode,
35276		},
35277	}
35278	target := &ret
35279	if err := gensupport.DecodeResponse(target, res); err != nil {
35280		return nil, err
35281	}
35282	return ret, nil
35283	// {
35284	//   "description": "Lists inventory sources that are accessible to the current user. The order is defined by the order_by parameter. If a filter by entity_status is not specified, inventory sources with entity status `ENTITY_STATUS_ARCHIVED` will not be included in the results.",
35285	//   "flatPath": "v1/inventorySources",
35286	//   "httpMethod": "GET",
35287	//   "id": "displayvideo.inventorySources.list",
35288	//   "parameterOrder": [],
35289	//   "parameters": {
35290	//     "advertiserId": {
35291	//       "description": "The ID of the advertiser that has access to the inventory source.",
35292	//       "format": "int64",
35293	//       "location": "query",
35294	//       "type": "string"
35295	//     },
35296	//     "filter": {
35297	//       "description": "Allows filtering by inventory source properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `status.entityStatus` - `commitment` - `deliveryMethod` - `rateDetails.rateType` - `exchange` Examples: * All active inventory sources: `status.entityStatus=\"ENTITY_STATUS_ACTIVE\"` * Inventory sources belonging to Google Ad Manager or Rubicon exchanges: `exchange=\"EXCHANGE_GOOGLE_AD_MANAGER\" OR exchange=\"EXCHANGE_RUBICON\"` The length of this field should be no more than 500 characters.",
35298	//       "location": "query",
35299	//       "type": "string"
35300	//     },
35301	//     "orderBy": {
35302	//       "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.",
35303	//       "location": "query",
35304	//       "type": "string"
35305	//     },
35306	//     "pageSize": {
35307	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
35308	//       "format": "int32",
35309	//       "location": "query",
35310	//       "type": "integer"
35311	//     },
35312	//     "pageToken": {
35313	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInventorySources` method. If not specified, the first page of results will be returned.",
35314	//       "location": "query",
35315	//       "type": "string"
35316	//     },
35317	//     "partnerId": {
35318	//       "description": "The ID of the partner that has access to the inventory source.",
35319	//       "format": "int64",
35320	//       "location": "query",
35321	//       "type": "string"
35322	//     }
35323	//   },
35324	//   "path": "v1/inventorySources",
35325	//   "response": {
35326	//     "$ref": "ListInventorySourcesResponse"
35327	//   },
35328	//   "scopes": [
35329	//     "https://www.googleapis.com/auth/display-video"
35330	//   ]
35331	// }
35332
35333}
35334
35335// Pages invokes f for each page of results.
35336// A non-nil error returned from f will halt the iteration.
35337// The provided context supersedes any context provided to the Context method.
35338func (c *InventorySourcesListCall) Pages(ctx context.Context, f func(*ListInventorySourcesResponse) error) error {
35339	c.ctx_ = ctx
35340	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
35341	for {
35342		x, err := c.Do()
35343		if err != nil {
35344			return err
35345		}
35346		if err := f(x); err != nil {
35347			return err
35348		}
35349		if x.NextPageToken == "" {
35350			return nil
35351		}
35352		c.PageToken(x.NextPageToken)
35353	}
35354}
35355
35356// method id "displayvideo.media.download":
35357
35358type MediaDownloadCall struct {
35359	s            *Service
35360	resourceName string
35361	urlParams_   gensupport.URLParams
35362	ifNoneMatch_ string
35363	ctx_         context.Context
35364	header_      http.Header
35365}
35366
35367// Download: Downloads media. Download is supported on the URI
35368// `/download/{resource_name=**}?alt=media.` **Note**: Download requests
35369// will not be successful without including `alt=media` query string.
35370//
35371// - resourceName: Name of the media that is being downloaded. See
35372//   ReadRequest.resource_name.
35373func (r *MediaService) Download(resourceName string) *MediaDownloadCall {
35374	c := &MediaDownloadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35375	c.resourceName = resourceName
35376	return c
35377}
35378
35379// Fields allows partial responses to be retrieved. See
35380// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35381// for more information.
35382func (c *MediaDownloadCall) Fields(s ...googleapi.Field) *MediaDownloadCall {
35383	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35384	return c
35385}
35386
35387// IfNoneMatch sets the optional parameter which makes the operation
35388// fail if the object's ETag matches the given value. This is useful for
35389// getting updates only after the object has changed since the last
35390// request. Use googleapi.IsNotModified to check whether the response
35391// error from Do is the result of In-None-Match.
35392func (c *MediaDownloadCall) IfNoneMatch(entityTag string) *MediaDownloadCall {
35393	c.ifNoneMatch_ = entityTag
35394	return c
35395}
35396
35397// Context sets the context to be used in this call's Do and Download
35398// methods. Any pending HTTP request will be aborted if the provided
35399// context is canceled.
35400func (c *MediaDownloadCall) Context(ctx context.Context) *MediaDownloadCall {
35401	c.ctx_ = ctx
35402	return c
35403}
35404
35405// Header returns an http.Header that can be modified by the caller to
35406// add HTTP headers to the request.
35407func (c *MediaDownloadCall) Header() http.Header {
35408	if c.header_ == nil {
35409		c.header_ = make(http.Header)
35410	}
35411	return c.header_
35412}
35413
35414func (c *MediaDownloadCall) doRequest(alt string) (*http.Response, error) {
35415	reqHeaders := make(http.Header)
35416	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
35417	for k, v := range c.header_ {
35418		reqHeaders[k] = v
35419	}
35420	reqHeaders.Set("User-Agent", c.s.userAgent())
35421	if c.ifNoneMatch_ != "" {
35422		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35423	}
35424	var body io.Reader = nil
35425	c.urlParams_.Set("alt", alt)
35426	c.urlParams_.Set("prettyPrint", "false")
35427	urls := googleapi.ResolveRelative(c.s.BasePath, "download/{+resourceName}")
35428	urls += "?" + c.urlParams_.Encode()
35429	req, err := http.NewRequest("GET", urls, body)
35430	if err != nil {
35431		return nil, err
35432	}
35433	req.Header = reqHeaders
35434	googleapi.Expand(req.URL, map[string]string{
35435		"resourceName": c.resourceName,
35436	})
35437	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35438}
35439
35440// Download fetches the API endpoint's "media" value, instead of the normal
35441// API response value. If the returned error is nil, the Response is guaranteed to
35442// have a 2xx status code. Callers must close the Response.Body as usual.
35443func (c *MediaDownloadCall) Download(opts ...googleapi.CallOption) (*http.Response, error) {
35444	gensupport.SetOptions(c.urlParams_, opts...)
35445	res, err := c.doRequest("media")
35446	if err != nil {
35447		return nil, err
35448	}
35449	if err := googleapi.CheckResponse(res); err != nil {
35450		res.Body.Close()
35451		return nil, err
35452	}
35453	return res, nil
35454}
35455
35456// Do executes the "displayvideo.media.download" call.
35457// Exactly one of *GoogleBytestreamMedia or error will be non-nil. Any
35458// non-2xx status code is an error. Response headers are in either
35459// *GoogleBytestreamMedia.ServerResponse.Header or (if a response was
35460// returned at all) in error.(*googleapi.Error).Header. Use
35461// googleapi.IsNotModified to check whether the returned error was
35462// because http.StatusNotModified was returned.
35463func (c *MediaDownloadCall) Do(opts ...googleapi.CallOption) (*GoogleBytestreamMedia, error) {
35464	gensupport.SetOptions(c.urlParams_, opts...)
35465	res, err := c.doRequest("json")
35466	if res != nil && res.StatusCode == http.StatusNotModified {
35467		if res.Body != nil {
35468			res.Body.Close()
35469		}
35470		return nil, &googleapi.Error{
35471			Code:   res.StatusCode,
35472			Header: res.Header,
35473		}
35474	}
35475	if err != nil {
35476		return nil, err
35477	}
35478	defer googleapi.CloseBody(res)
35479	if err := googleapi.CheckResponse(res); err != nil {
35480		return nil, err
35481	}
35482	ret := &GoogleBytestreamMedia{
35483		ServerResponse: googleapi.ServerResponse{
35484			Header:         res.Header,
35485			HTTPStatusCode: res.StatusCode,
35486		},
35487	}
35488	target := &ret
35489	if err := gensupport.DecodeResponse(target, res); err != nil {
35490		return nil, err
35491	}
35492	return ret, nil
35493	// {
35494	//   "description": "Downloads media. Download is supported on the URI `/download/{resource_name=**}?alt=media.` **Note**: Download requests will not be successful without including `alt=media` query string.",
35495	//   "flatPath": "download/{downloadId}",
35496	//   "httpMethod": "GET",
35497	//   "id": "displayvideo.media.download",
35498	//   "parameterOrder": [
35499	//     "resourceName"
35500	//   ],
35501	//   "parameters": {
35502	//     "resourceName": {
35503	//       "description": "Name of the media that is being downloaded. See ReadRequest.resource_name.",
35504	//       "location": "path",
35505	//       "pattern": "^.*$",
35506	//       "required": true,
35507	//       "type": "string"
35508	//     }
35509	//   },
35510	//   "path": "download/{+resourceName}",
35511	//   "response": {
35512	//     "$ref": "GoogleBytestreamMedia"
35513	//   },
35514	//   "scopes": [
35515	//     "https://www.googleapis.com/auth/display-video",
35516	//     "https://www.googleapis.com/auth/doubleclickbidmanager"
35517	//   ],
35518	//   "supportsMediaDownload": true
35519	// }
35520
35521}
35522
35523// method id "displayvideo.media.upload":
35524
35525type MediaUploadCall struct {
35526	s                     *Service
35527	resourceName          string
35528	googlebytestreammedia *GoogleBytestreamMedia
35529	urlParams_            gensupport.URLParams
35530	mediaInfo_            *gensupport.MediaInfo
35531	ctx_                  context.Context
35532	header_               http.Header
35533}
35534
35535// Upload: Uploads media. Upload is supported on the URI
35536// `/upload/media/{resource_name=**}?upload_type=media.` **Note**:
35537// Upload requests will not be successful without including
35538// `upload_type=media` query string.
35539//
35540// - resourceName: Name of the media that is being downloaded. See
35541//   ReadRequest.resource_name.
35542func (r *MediaService) Upload(resourceName string, googlebytestreammedia *GoogleBytestreamMedia) *MediaUploadCall {
35543	c := &MediaUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35544	c.resourceName = resourceName
35545	c.googlebytestreammedia = googlebytestreammedia
35546	return c
35547}
35548
35549// Media specifies the media to upload in one or more chunks. The chunk
35550// size may be controlled by supplying a MediaOption generated by
35551// googleapi.ChunkSize. The chunk size defaults to
35552// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
35553// upload request will be determined by sniffing the contents of r,
35554// unless a MediaOption generated by googleapi.ContentType is
35555// supplied.
35556// At most one of Media and ResumableMedia may be set.
35557func (c *MediaUploadCall) Media(r io.Reader, options ...googleapi.MediaOption) *MediaUploadCall {
35558	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
35559	return c
35560}
35561
35562// ResumableMedia specifies the media to upload in chunks and can be
35563// canceled with ctx.
35564//
35565// Deprecated: use Media instead.
35566//
35567// At most one of Media and ResumableMedia may be set. mediaType
35568// identifies the MIME media type of the upload, such as "image/png". If
35569// mediaType is "", it will be auto-detected. The provided ctx will
35570// supersede any context previously provided to the Context method.
35571func (c *MediaUploadCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *MediaUploadCall {
35572	c.ctx_ = ctx
35573	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
35574	return c
35575}
35576
35577// ProgressUpdater provides a callback function that will be called
35578// after every chunk. It should be a low-latency function in order to
35579// not slow down the upload operation. This should only be called when
35580// using ResumableMedia (as opposed to Media).
35581func (c *MediaUploadCall) ProgressUpdater(pu googleapi.ProgressUpdater) *MediaUploadCall {
35582	c.mediaInfo_.SetProgressUpdater(pu)
35583	return c
35584}
35585
35586// Fields allows partial responses to be retrieved. See
35587// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35588// for more information.
35589func (c *MediaUploadCall) Fields(s ...googleapi.Field) *MediaUploadCall {
35590	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35591	return c
35592}
35593
35594// Context sets the context to be used in this call's Do method. Any
35595// pending HTTP request will be aborted if the provided context is
35596// canceled.
35597// This context will supersede any context previously provided to the
35598// ResumableMedia method.
35599func (c *MediaUploadCall) Context(ctx context.Context) *MediaUploadCall {
35600	c.ctx_ = ctx
35601	return c
35602}
35603
35604// Header returns an http.Header that can be modified by the caller to
35605// add HTTP headers to the request.
35606func (c *MediaUploadCall) Header() http.Header {
35607	if c.header_ == nil {
35608		c.header_ = make(http.Header)
35609	}
35610	return c.header_
35611}
35612
35613func (c *MediaUploadCall) doRequest(alt string) (*http.Response, error) {
35614	reqHeaders := make(http.Header)
35615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
35616	for k, v := range c.header_ {
35617		reqHeaders[k] = v
35618	}
35619	reqHeaders.Set("User-Agent", c.s.userAgent())
35620	var body io.Reader = nil
35621	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlebytestreammedia)
35622	if err != nil {
35623		return nil, err
35624	}
35625	reqHeaders.Set("Content-Type", "application/json")
35626	c.urlParams_.Set("alt", alt)
35627	c.urlParams_.Set("prettyPrint", "false")
35628	urls := googleapi.ResolveRelative(c.s.BasePath, "media/{+resourceName}")
35629	if c.mediaInfo_ != nil {
35630		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/media/{+resourceName}")
35631		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
35632	}
35633	if body == nil {
35634		body = new(bytes.Buffer)
35635		reqHeaders.Set("Content-Type", "application/json")
35636	}
35637	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
35638	defer cleanup()
35639	urls += "?" + c.urlParams_.Encode()
35640	req, err := http.NewRequest("POST", urls, body)
35641	if err != nil {
35642		return nil, err
35643	}
35644	req.Header = reqHeaders
35645	req.GetBody = getBody
35646	googleapi.Expand(req.URL, map[string]string{
35647		"resourceName": c.resourceName,
35648	})
35649	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35650}
35651
35652// Do executes the "displayvideo.media.upload" call.
35653// Exactly one of *GoogleBytestreamMedia or error will be non-nil. Any
35654// non-2xx status code is an error. Response headers are in either
35655// *GoogleBytestreamMedia.ServerResponse.Header or (if a response was
35656// returned at all) in error.(*googleapi.Error).Header. Use
35657// googleapi.IsNotModified to check whether the returned error was
35658// because http.StatusNotModified was returned.
35659func (c *MediaUploadCall) Do(opts ...googleapi.CallOption) (*GoogleBytestreamMedia, error) {
35660	gensupport.SetOptions(c.urlParams_, opts...)
35661	res, err := c.doRequest("json")
35662	if res != nil && res.StatusCode == http.StatusNotModified {
35663		if res.Body != nil {
35664			res.Body.Close()
35665		}
35666		return nil, &googleapi.Error{
35667			Code:   res.StatusCode,
35668			Header: res.Header,
35669		}
35670	}
35671	if err != nil {
35672		return nil, err
35673	}
35674	defer googleapi.CloseBody(res)
35675	if err := googleapi.CheckResponse(res); err != nil {
35676		return nil, err
35677	}
35678	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
35679	if rx != nil {
35680		rx.Client = c.s.client
35681		rx.UserAgent = c.s.userAgent()
35682		ctx := c.ctx_
35683		if ctx == nil {
35684			ctx = context.TODO()
35685		}
35686		res, err = rx.Upload(ctx)
35687		if err != nil {
35688			return nil, err
35689		}
35690		defer res.Body.Close()
35691		if err := googleapi.CheckResponse(res); err != nil {
35692			return nil, err
35693		}
35694	}
35695	ret := &GoogleBytestreamMedia{
35696		ServerResponse: googleapi.ServerResponse{
35697			Header:         res.Header,
35698			HTTPStatusCode: res.StatusCode,
35699		},
35700	}
35701	target := &ret
35702	if err := gensupport.DecodeResponse(target, res); err != nil {
35703		return nil, err
35704	}
35705	return ret, nil
35706	// {
35707	//   "description": "Uploads media. Upload is supported on the URI `/upload/media/{resource_name=**}?upload_type=media.` **Note**: Upload requests will not be successful without including `upload_type=media` query string.",
35708	//   "flatPath": "media/{mediaId}",
35709	//   "httpMethod": "POST",
35710	//   "id": "displayvideo.media.upload",
35711	//   "mediaUpload": {
35712	//     "accept": [
35713	//       "*/*"
35714	//     ],
35715	//     "protocols": {
35716	//       "simple": {
35717	//         "multipart": true,
35718	//         "path": "/upload/media/{+resourceName}"
35719	//       }
35720	//     }
35721	//   },
35722	//   "parameterOrder": [
35723	//     "resourceName"
35724	//   ],
35725	//   "parameters": {
35726	//     "resourceName": {
35727	//       "description": "Name of the media that is being downloaded. See ReadRequest.resource_name.",
35728	//       "location": "path",
35729	//       "pattern": "^.*$",
35730	//       "required": true,
35731	//       "type": "string"
35732	//     }
35733	//   },
35734	//   "path": "media/{+resourceName}",
35735	//   "request": {
35736	//     "$ref": "GoogleBytestreamMedia"
35737	//   },
35738	//   "response": {
35739	//     "$ref": "GoogleBytestreamMedia"
35740	//   },
35741	//   "scopes": [
35742	//     "https://www.googleapis.com/auth/display-video",
35743	//     "https://www.googleapis.com/auth/doubleclickbidmanager"
35744	//   ],
35745	//   "supportsMediaUpload": true
35746	// }
35747
35748}
35749
35750// method id "displayvideo.partners.bulkEditPartnerAssignedTargetingOptions":
35751
35752type PartnersBulkEditPartnerAssignedTargetingOptionsCall struct {
35753	s                                              *Service
35754	partnerId                                      int64
35755	bulkeditpartnerassignedtargetingoptionsrequest *BulkEditPartnerAssignedTargetingOptionsRequest
35756	urlParams_                                     gensupport.URLParams
35757	ctx_                                           context.Context
35758	header_                                        http.Header
35759}
35760
35761// BulkEditPartnerAssignedTargetingOptions: Bulk edits targeting options
35762// under a single partner. The operation will delete the assigned
35763// targeting options provided in
35764// BulkEditPartnerAssignedTargetingOptionsRequest.deleteRequests and
35765// then create the assigned targeting options provided in
35766// BulkEditPartnerAssignedTargetingOptionsRequest.createRequests .
35767//
35768// - partnerId: The ID of the partner.
35769func (r *PartnersService) BulkEditPartnerAssignedTargetingOptions(partnerId int64, bulkeditpartnerassignedtargetingoptionsrequest *BulkEditPartnerAssignedTargetingOptionsRequest) *PartnersBulkEditPartnerAssignedTargetingOptionsCall {
35770	c := &PartnersBulkEditPartnerAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35771	c.partnerId = partnerId
35772	c.bulkeditpartnerassignedtargetingoptionsrequest = bulkeditpartnerassignedtargetingoptionsrequest
35773	return c
35774}
35775
35776// Fields allows partial responses to be retrieved. See
35777// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35778// for more information.
35779func (c *PartnersBulkEditPartnerAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *PartnersBulkEditPartnerAssignedTargetingOptionsCall {
35780	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35781	return c
35782}
35783
35784// Context sets the context to be used in this call's Do method. Any
35785// pending HTTP request will be aborted if the provided context is
35786// canceled.
35787func (c *PartnersBulkEditPartnerAssignedTargetingOptionsCall) Context(ctx context.Context) *PartnersBulkEditPartnerAssignedTargetingOptionsCall {
35788	c.ctx_ = ctx
35789	return c
35790}
35791
35792// Header returns an http.Header that can be modified by the caller to
35793// add HTTP headers to the request.
35794func (c *PartnersBulkEditPartnerAssignedTargetingOptionsCall) Header() http.Header {
35795	if c.header_ == nil {
35796		c.header_ = make(http.Header)
35797	}
35798	return c.header_
35799}
35800
35801func (c *PartnersBulkEditPartnerAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
35802	reqHeaders := make(http.Header)
35803	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
35804	for k, v := range c.header_ {
35805		reqHeaders[k] = v
35806	}
35807	reqHeaders.Set("User-Agent", c.s.userAgent())
35808	var body io.Reader = nil
35809	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditpartnerassignedtargetingoptionsrequest)
35810	if err != nil {
35811		return nil, err
35812	}
35813	reqHeaders.Set("Content-Type", "application/json")
35814	c.urlParams_.Set("alt", alt)
35815	c.urlParams_.Set("prettyPrint", "false")
35816	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}:bulkEditPartnerAssignedTargetingOptions")
35817	urls += "?" + c.urlParams_.Encode()
35818	req, err := http.NewRequest("POST", urls, body)
35819	if err != nil {
35820		return nil, err
35821	}
35822	req.Header = reqHeaders
35823	googleapi.Expand(req.URL, map[string]string{
35824		"partnerId": strconv.FormatInt(c.partnerId, 10),
35825	})
35826	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35827}
35828
35829// Do executes the "displayvideo.partners.bulkEditPartnerAssignedTargetingOptions" call.
35830// Exactly one of *BulkEditPartnerAssignedTargetingOptionsResponse or
35831// error will be non-nil. Any non-2xx status code is an error. Response
35832// headers are in either
35833// *BulkEditPartnerAssignedTargetingOptionsResponse.ServerResponse.Header
35834//  or (if a response was returned at all) in
35835// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
35836// whether the returned error was because http.StatusNotModified was
35837// returned.
35838func (c *PartnersBulkEditPartnerAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkEditPartnerAssignedTargetingOptionsResponse, error) {
35839	gensupport.SetOptions(c.urlParams_, opts...)
35840	res, err := c.doRequest("json")
35841	if res != nil && res.StatusCode == http.StatusNotModified {
35842		if res.Body != nil {
35843			res.Body.Close()
35844		}
35845		return nil, &googleapi.Error{
35846			Code:   res.StatusCode,
35847			Header: res.Header,
35848		}
35849	}
35850	if err != nil {
35851		return nil, err
35852	}
35853	defer googleapi.CloseBody(res)
35854	if err := googleapi.CheckResponse(res); err != nil {
35855		return nil, err
35856	}
35857	ret := &BulkEditPartnerAssignedTargetingOptionsResponse{
35858		ServerResponse: googleapi.ServerResponse{
35859			Header:         res.Header,
35860			HTTPStatusCode: res.StatusCode,
35861		},
35862	}
35863	target := &ret
35864	if err := gensupport.DecodeResponse(target, res); err != nil {
35865		return nil, err
35866	}
35867	return ret, nil
35868	// {
35869	//   "description": "Bulk edits targeting options under a single partner. The operation will delete the assigned targeting options provided in BulkEditPartnerAssignedTargetingOptionsRequest.deleteRequests and then create the assigned targeting options provided in BulkEditPartnerAssignedTargetingOptionsRequest.createRequests .",
35870	//   "flatPath": "v1/partners/{partnersId}:bulkEditPartnerAssignedTargetingOptions",
35871	//   "httpMethod": "POST",
35872	//   "id": "displayvideo.partners.bulkEditPartnerAssignedTargetingOptions",
35873	//   "parameterOrder": [
35874	//     "partnerId"
35875	//   ],
35876	//   "parameters": {
35877	//     "partnerId": {
35878	//       "description": "Required. The ID of the partner.",
35879	//       "format": "int64",
35880	//       "location": "path",
35881	//       "pattern": "^[^/]+$",
35882	//       "required": true,
35883	//       "type": "string"
35884	//     }
35885	//   },
35886	//   "path": "v1/partners/{+partnerId}:bulkEditPartnerAssignedTargetingOptions",
35887	//   "request": {
35888	//     "$ref": "BulkEditPartnerAssignedTargetingOptionsRequest"
35889	//   },
35890	//   "response": {
35891	//     "$ref": "BulkEditPartnerAssignedTargetingOptionsResponse"
35892	//   },
35893	//   "scopes": [
35894	//     "https://www.googleapis.com/auth/display-video"
35895	//   ]
35896	// }
35897
35898}
35899
35900// method id "displayvideo.partners.get":
35901
35902type PartnersGetCall struct {
35903	s            *Service
35904	partnerId    int64
35905	urlParams_   gensupport.URLParams
35906	ifNoneMatch_ string
35907	ctx_         context.Context
35908	header_      http.Header
35909}
35910
35911// Get: Gets a partner.
35912//
35913// - partnerId: The ID of the partner to fetch.
35914func (r *PartnersService) Get(partnerId int64) *PartnersGetCall {
35915	c := &PartnersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35916	c.partnerId = partnerId
35917	return c
35918}
35919
35920// Fields allows partial responses to be retrieved. See
35921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35922// for more information.
35923func (c *PartnersGetCall) Fields(s ...googleapi.Field) *PartnersGetCall {
35924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35925	return c
35926}
35927
35928// IfNoneMatch sets the optional parameter which makes the operation
35929// fail if the object's ETag matches the given value. This is useful for
35930// getting updates only after the object has changed since the last
35931// request. Use googleapi.IsNotModified to check whether the response
35932// error from Do is the result of In-None-Match.
35933func (c *PartnersGetCall) IfNoneMatch(entityTag string) *PartnersGetCall {
35934	c.ifNoneMatch_ = entityTag
35935	return c
35936}
35937
35938// Context sets the context to be used in this call's Do method. Any
35939// pending HTTP request will be aborted if the provided context is
35940// canceled.
35941func (c *PartnersGetCall) Context(ctx context.Context) *PartnersGetCall {
35942	c.ctx_ = ctx
35943	return c
35944}
35945
35946// Header returns an http.Header that can be modified by the caller to
35947// add HTTP headers to the request.
35948func (c *PartnersGetCall) Header() http.Header {
35949	if c.header_ == nil {
35950		c.header_ = make(http.Header)
35951	}
35952	return c.header_
35953}
35954
35955func (c *PartnersGetCall) doRequest(alt string) (*http.Response, error) {
35956	reqHeaders := make(http.Header)
35957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
35958	for k, v := range c.header_ {
35959		reqHeaders[k] = v
35960	}
35961	reqHeaders.Set("User-Agent", c.s.userAgent())
35962	if c.ifNoneMatch_ != "" {
35963		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35964	}
35965	var body io.Reader = nil
35966	c.urlParams_.Set("alt", alt)
35967	c.urlParams_.Set("prettyPrint", "false")
35968	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}")
35969	urls += "?" + c.urlParams_.Encode()
35970	req, err := http.NewRequest("GET", urls, body)
35971	if err != nil {
35972		return nil, err
35973	}
35974	req.Header = reqHeaders
35975	googleapi.Expand(req.URL, map[string]string{
35976		"partnerId": strconv.FormatInt(c.partnerId, 10),
35977	})
35978	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35979}
35980
35981// Do executes the "displayvideo.partners.get" call.
35982// Exactly one of *Partner or error will be non-nil. Any non-2xx status
35983// code is an error. Response headers are in either
35984// *Partner.ServerResponse.Header or (if a response was returned at all)
35985// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
35986// check whether the returned error was because http.StatusNotModified
35987// was returned.
35988func (c *PartnersGetCall) Do(opts ...googleapi.CallOption) (*Partner, error) {
35989	gensupport.SetOptions(c.urlParams_, opts...)
35990	res, err := c.doRequest("json")
35991	if res != nil && res.StatusCode == http.StatusNotModified {
35992		if res.Body != nil {
35993			res.Body.Close()
35994		}
35995		return nil, &googleapi.Error{
35996			Code:   res.StatusCode,
35997			Header: res.Header,
35998		}
35999	}
36000	if err != nil {
36001		return nil, err
36002	}
36003	defer googleapi.CloseBody(res)
36004	if err := googleapi.CheckResponse(res); err != nil {
36005		return nil, err
36006	}
36007	ret := &Partner{
36008		ServerResponse: googleapi.ServerResponse{
36009			Header:         res.Header,
36010			HTTPStatusCode: res.StatusCode,
36011		},
36012	}
36013	target := &ret
36014	if err := gensupport.DecodeResponse(target, res); err != nil {
36015		return nil, err
36016	}
36017	return ret, nil
36018	// {
36019	//   "description": "Gets a partner.",
36020	//   "flatPath": "v1/partners/{partnersId}",
36021	//   "httpMethod": "GET",
36022	//   "id": "displayvideo.partners.get",
36023	//   "parameterOrder": [
36024	//     "partnerId"
36025	//   ],
36026	//   "parameters": {
36027	//     "partnerId": {
36028	//       "description": "Required. The ID of the partner to fetch.",
36029	//       "format": "int64",
36030	//       "location": "path",
36031	//       "pattern": "^[^/]+$",
36032	//       "required": true,
36033	//       "type": "string"
36034	//     }
36035	//   },
36036	//   "path": "v1/partners/{+partnerId}",
36037	//   "response": {
36038	//     "$ref": "Partner"
36039	//   },
36040	//   "scopes": [
36041	//     "https://www.googleapis.com/auth/display-video"
36042	//   ]
36043	// }
36044
36045}
36046
36047// method id "displayvideo.partners.list":
36048
36049type PartnersListCall struct {
36050	s            *Service
36051	urlParams_   gensupport.URLParams
36052	ifNoneMatch_ string
36053	ctx_         context.Context
36054	header_      http.Header
36055}
36056
36057// List: Lists partners that are accessible to the current user. The
36058// order is defined by the order_by parameter.
36059func (r *PartnersService) List() *PartnersListCall {
36060	c := &PartnersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36061	return c
36062}
36063
36064// Filter sets the optional parameter "filter": Allows filtering by
36065// partner properties. Supported syntax: * Filter expressions are made
36066// up of one or more restrictions. * Restrictions can be combined by
36067// `AND` or `OR` logical operators. A sequence of restrictions
36068// implicitly uses `AND`. * A restriction has the form of `{field}
36069// {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported
36070// fields: - `entityStatus` Examples: * All active partners:
36071// `entityStatus="ENTITY_STATUS_ACTIVE" The length of this field should
36072// be no more than 500 characters.
36073func (c *PartnersListCall) Filter(filter string) *PartnersListCall {
36074	c.urlParams_.Set("filter", filter)
36075	return c
36076}
36077
36078// OrderBy sets the optional parameter "orderBy": Field by which to sort
36079// the list. Acceptable values are: * `displayName` The default sorting
36080// order is ascending. To specify descending order for a field, a suffix
36081// "desc" should be added to the field name. For example, `displayName
36082// desc`.
36083func (c *PartnersListCall) OrderBy(orderBy string) *PartnersListCall {
36084	c.urlParams_.Set("orderBy", orderBy)
36085	return c
36086}
36087
36088// PageSize sets the optional parameter "pageSize": Requested page size.
36089// Must be between `1` and `100`. If unspecified will default to `100`.
36090func (c *PartnersListCall) PageSize(pageSize int64) *PartnersListCall {
36091	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
36092	return c
36093}
36094
36095// PageToken sets the optional parameter "pageToken": A token
36096// identifying a page of results the server should return. Typically,
36097// this is the value of next_page_token returned from the previous call
36098// to `ListPartners` method. If not specified, the first page of results
36099// will be returned.
36100func (c *PartnersListCall) PageToken(pageToken string) *PartnersListCall {
36101	c.urlParams_.Set("pageToken", pageToken)
36102	return c
36103}
36104
36105// Fields allows partial responses to be retrieved. See
36106// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36107// for more information.
36108func (c *PartnersListCall) Fields(s ...googleapi.Field) *PartnersListCall {
36109	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36110	return c
36111}
36112
36113// IfNoneMatch sets the optional parameter which makes the operation
36114// fail if the object's ETag matches the given value. This is useful for
36115// getting updates only after the object has changed since the last
36116// request. Use googleapi.IsNotModified to check whether the response
36117// error from Do is the result of In-None-Match.
36118func (c *PartnersListCall) IfNoneMatch(entityTag string) *PartnersListCall {
36119	c.ifNoneMatch_ = entityTag
36120	return c
36121}
36122
36123// Context sets the context to be used in this call's Do method. Any
36124// pending HTTP request will be aborted if the provided context is
36125// canceled.
36126func (c *PartnersListCall) Context(ctx context.Context) *PartnersListCall {
36127	c.ctx_ = ctx
36128	return c
36129}
36130
36131// Header returns an http.Header that can be modified by the caller to
36132// add HTTP headers to the request.
36133func (c *PartnersListCall) Header() http.Header {
36134	if c.header_ == nil {
36135		c.header_ = make(http.Header)
36136	}
36137	return c.header_
36138}
36139
36140func (c *PartnersListCall) doRequest(alt string) (*http.Response, error) {
36141	reqHeaders := make(http.Header)
36142	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
36143	for k, v := range c.header_ {
36144		reqHeaders[k] = v
36145	}
36146	reqHeaders.Set("User-Agent", c.s.userAgent())
36147	if c.ifNoneMatch_ != "" {
36148		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36149	}
36150	var body io.Reader = nil
36151	c.urlParams_.Set("alt", alt)
36152	c.urlParams_.Set("prettyPrint", "false")
36153	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners")
36154	urls += "?" + c.urlParams_.Encode()
36155	req, err := http.NewRequest("GET", urls, body)
36156	if err != nil {
36157		return nil, err
36158	}
36159	req.Header = reqHeaders
36160	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36161}
36162
36163// Do executes the "displayvideo.partners.list" call.
36164// Exactly one of *ListPartnersResponse or error will be non-nil. Any
36165// non-2xx status code is an error. Response headers are in either
36166// *ListPartnersResponse.ServerResponse.Header or (if a response was
36167// returned at all) in error.(*googleapi.Error).Header. Use
36168// googleapi.IsNotModified to check whether the returned error was
36169// because http.StatusNotModified was returned.
36170func (c *PartnersListCall) Do(opts ...googleapi.CallOption) (*ListPartnersResponse, error) {
36171	gensupport.SetOptions(c.urlParams_, opts...)
36172	res, err := c.doRequest("json")
36173	if res != nil && res.StatusCode == http.StatusNotModified {
36174		if res.Body != nil {
36175			res.Body.Close()
36176		}
36177		return nil, &googleapi.Error{
36178			Code:   res.StatusCode,
36179			Header: res.Header,
36180		}
36181	}
36182	if err != nil {
36183		return nil, err
36184	}
36185	defer googleapi.CloseBody(res)
36186	if err := googleapi.CheckResponse(res); err != nil {
36187		return nil, err
36188	}
36189	ret := &ListPartnersResponse{
36190		ServerResponse: googleapi.ServerResponse{
36191			Header:         res.Header,
36192			HTTPStatusCode: res.StatusCode,
36193		},
36194	}
36195	target := &ret
36196	if err := gensupport.DecodeResponse(target, res); err != nil {
36197		return nil, err
36198	}
36199	return ret, nil
36200	// {
36201	//   "description": "Lists partners that are accessible to the current user. The order is defined by the order_by parameter.",
36202	//   "flatPath": "v1/partners",
36203	//   "httpMethod": "GET",
36204	//   "id": "displayvideo.partners.list",
36205	//   "parameterOrder": [],
36206	//   "parameters": {
36207	//     "filter": {
36208	//       "description": "Allows filtering by partner properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `entityStatus` Examples: * All active partners: `entityStatus=\"ENTITY_STATUS_ACTIVE\"` The length of this field should be no more than 500 characters.",
36209	//       "location": "query",
36210	//       "type": "string"
36211	//     },
36212	//     "orderBy": {
36213	//       "description": "Field by which to sort the list. Acceptable values are: * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.",
36214	//       "location": "query",
36215	//       "type": "string"
36216	//     },
36217	//     "pageSize": {
36218	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
36219	//       "format": "int32",
36220	//       "location": "query",
36221	//       "type": "integer"
36222	//     },
36223	//     "pageToken": {
36224	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListPartners` method. If not specified, the first page of results will be returned.",
36225	//       "location": "query",
36226	//       "type": "string"
36227	//     }
36228	//   },
36229	//   "path": "v1/partners",
36230	//   "response": {
36231	//     "$ref": "ListPartnersResponse"
36232	//   },
36233	//   "scopes": [
36234	//     "https://www.googleapis.com/auth/display-video"
36235	//   ]
36236	// }
36237
36238}
36239
36240// Pages invokes f for each page of results.
36241// A non-nil error returned from f will halt the iteration.
36242// The provided context supersedes any context provided to the Context method.
36243func (c *PartnersListCall) Pages(ctx context.Context, f func(*ListPartnersResponse) error) error {
36244	c.ctx_ = ctx
36245	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
36246	for {
36247		x, err := c.Do()
36248		if err != nil {
36249			return err
36250		}
36251		if err := f(x); err != nil {
36252			return err
36253		}
36254		if x.NextPageToken == "" {
36255			return nil
36256		}
36257		c.PageToken(x.NextPageToken)
36258	}
36259}
36260
36261// method id "displayvideo.partners.channels.create":
36262
36263type PartnersChannelsCreateCall struct {
36264	s          *Service
36265	partnerId  int64
36266	channel    *Channel
36267	urlParams_ gensupport.URLParams
36268	ctx_       context.Context
36269	header_    http.Header
36270}
36271
36272// Create: Creates a new channel. Returns the newly created channel if
36273// successful.
36274//
36275// - partnerId: The ID of the partner that owns the created channel.
36276func (r *PartnersChannelsService) Create(partnerId int64, channel *Channel) *PartnersChannelsCreateCall {
36277	c := &PartnersChannelsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36278	c.partnerId = partnerId
36279	c.channel = channel
36280	return c
36281}
36282
36283// AdvertiserId sets the optional parameter "advertiserId": The ID of
36284// the advertiser that owns the created channel.
36285func (c *PartnersChannelsCreateCall) AdvertiserId(advertiserId int64) *PartnersChannelsCreateCall {
36286	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
36287	return c
36288}
36289
36290// Fields allows partial responses to be retrieved. See
36291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36292// for more information.
36293func (c *PartnersChannelsCreateCall) Fields(s ...googleapi.Field) *PartnersChannelsCreateCall {
36294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36295	return c
36296}
36297
36298// Context sets the context to be used in this call's Do method. Any
36299// pending HTTP request will be aborted if the provided context is
36300// canceled.
36301func (c *PartnersChannelsCreateCall) Context(ctx context.Context) *PartnersChannelsCreateCall {
36302	c.ctx_ = ctx
36303	return c
36304}
36305
36306// Header returns an http.Header that can be modified by the caller to
36307// add HTTP headers to the request.
36308func (c *PartnersChannelsCreateCall) Header() http.Header {
36309	if c.header_ == nil {
36310		c.header_ = make(http.Header)
36311	}
36312	return c.header_
36313}
36314
36315func (c *PartnersChannelsCreateCall) doRequest(alt string) (*http.Response, error) {
36316	reqHeaders := make(http.Header)
36317	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
36318	for k, v := range c.header_ {
36319		reqHeaders[k] = v
36320	}
36321	reqHeaders.Set("User-Agent", c.s.userAgent())
36322	var body io.Reader = nil
36323	body, err := googleapi.WithoutDataWrapper.JSONReader(c.channel)
36324	if err != nil {
36325		return nil, err
36326	}
36327	reqHeaders.Set("Content-Type", "application/json")
36328	c.urlParams_.Set("alt", alt)
36329	c.urlParams_.Set("prettyPrint", "false")
36330	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/channels")
36331	urls += "?" + c.urlParams_.Encode()
36332	req, err := http.NewRequest("POST", urls, body)
36333	if err != nil {
36334		return nil, err
36335	}
36336	req.Header = reqHeaders
36337	googleapi.Expand(req.URL, map[string]string{
36338		"partnerId": strconv.FormatInt(c.partnerId, 10),
36339	})
36340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36341}
36342
36343// Do executes the "displayvideo.partners.channels.create" call.
36344// Exactly one of *Channel or error will be non-nil. Any non-2xx status
36345// code is an error. Response headers are in either
36346// *Channel.ServerResponse.Header or (if a response was returned at all)
36347// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
36348// check whether the returned error was because http.StatusNotModified
36349// was returned.
36350func (c *PartnersChannelsCreateCall) Do(opts ...googleapi.CallOption) (*Channel, error) {
36351	gensupport.SetOptions(c.urlParams_, opts...)
36352	res, err := c.doRequest("json")
36353	if res != nil && res.StatusCode == http.StatusNotModified {
36354		if res.Body != nil {
36355			res.Body.Close()
36356		}
36357		return nil, &googleapi.Error{
36358			Code:   res.StatusCode,
36359			Header: res.Header,
36360		}
36361	}
36362	if err != nil {
36363		return nil, err
36364	}
36365	defer googleapi.CloseBody(res)
36366	if err := googleapi.CheckResponse(res); err != nil {
36367		return nil, err
36368	}
36369	ret := &Channel{
36370		ServerResponse: googleapi.ServerResponse{
36371			Header:         res.Header,
36372			HTTPStatusCode: res.StatusCode,
36373		},
36374	}
36375	target := &ret
36376	if err := gensupport.DecodeResponse(target, res); err != nil {
36377		return nil, err
36378	}
36379	return ret, nil
36380	// {
36381	//   "description": "Creates a new channel. Returns the newly created channel if successful.",
36382	//   "flatPath": "v1/partners/{partnersId}/channels",
36383	//   "httpMethod": "POST",
36384	//   "id": "displayvideo.partners.channels.create",
36385	//   "parameterOrder": [
36386	//     "partnerId"
36387	//   ],
36388	//   "parameters": {
36389	//     "advertiserId": {
36390	//       "description": "The ID of the advertiser that owns the created channel.",
36391	//       "format": "int64",
36392	//       "location": "query",
36393	//       "type": "string"
36394	//     },
36395	//     "partnerId": {
36396	//       "description": "The ID of the partner that owns the created channel.",
36397	//       "format": "int64",
36398	//       "location": "path",
36399	//       "pattern": "^[^/]+$",
36400	//       "required": true,
36401	//       "type": "string"
36402	//     }
36403	//   },
36404	//   "path": "v1/partners/{+partnerId}/channels",
36405	//   "request": {
36406	//     "$ref": "Channel"
36407	//   },
36408	//   "response": {
36409	//     "$ref": "Channel"
36410	//   },
36411	//   "scopes": [
36412	//     "https://www.googleapis.com/auth/display-video"
36413	//   ]
36414	// }
36415
36416}
36417
36418// method id "displayvideo.partners.channels.get":
36419
36420type PartnersChannelsGetCall struct {
36421	s            *Service
36422	partnerId    int64
36423	channelId    int64
36424	urlParams_   gensupport.URLParams
36425	ifNoneMatch_ string
36426	ctx_         context.Context
36427	header_      http.Header
36428}
36429
36430// Get: Gets a channel for a partner or advertiser.
36431//
36432// - channelId: The ID of the channel to fetch.
36433// - partnerId: The ID of the partner that owns the fetched channel.
36434func (r *PartnersChannelsService) Get(partnerId int64, channelId int64) *PartnersChannelsGetCall {
36435	c := &PartnersChannelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36436	c.partnerId = partnerId
36437	c.channelId = channelId
36438	return c
36439}
36440
36441// AdvertiserId sets the optional parameter "advertiserId": The ID of
36442// the advertiser that owns the fetched channel.
36443func (c *PartnersChannelsGetCall) AdvertiserId(advertiserId int64) *PartnersChannelsGetCall {
36444	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
36445	return c
36446}
36447
36448// Fields allows partial responses to be retrieved. See
36449// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36450// for more information.
36451func (c *PartnersChannelsGetCall) Fields(s ...googleapi.Field) *PartnersChannelsGetCall {
36452	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36453	return c
36454}
36455
36456// IfNoneMatch sets the optional parameter which makes the operation
36457// fail if the object's ETag matches the given value. This is useful for
36458// getting updates only after the object has changed since the last
36459// request. Use googleapi.IsNotModified to check whether the response
36460// error from Do is the result of In-None-Match.
36461func (c *PartnersChannelsGetCall) IfNoneMatch(entityTag string) *PartnersChannelsGetCall {
36462	c.ifNoneMatch_ = entityTag
36463	return c
36464}
36465
36466// Context sets the context to be used in this call's Do method. Any
36467// pending HTTP request will be aborted if the provided context is
36468// canceled.
36469func (c *PartnersChannelsGetCall) Context(ctx context.Context) *PartnersChannelsGetCall {
36470	c.ctx_ = ctx
36471	return c
36472}
36473
36474// Header returns an http.Header that can be modified by the caller to
36475// add HTTP headers to the request.
36476func (c *PartnersChannelsGetCall) Header() http.Header {
36477	if c.header_ == nil {
36478		c.header_ = make(http.Header)
36479	}
36480	return c.header_
36481}
36482
36483func (c *PartnersChannelsGetCall) doRequest(alt string) (*http.Response, error) {
36484	reqHeaders := make(http.Header)
36485	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
36486	for k, v := range c.header_ {
36487		reqHeaders[k] = v
36488	}
36489	reqHeaders.Set("User-Agent", c.s.userAgent())
36490	if c.ifNoneMatch_ != "" {
36491		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36492	}
36493	var body io.Reader = nil
36494	c.urlParams_.Set("alt", alt)
36495	c.urlParams_.Set("prettyPrint", "false")
36496	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/channels/{+channelId}")
36497	urls += "?" + c.urlParams_.Encode()
36498	req, err := http.NewRequest("GET", urls, body)
36499	if err != nil {
36500		return nil, err
36501	}
36502	req.Header = reqHeaders
36503	googleapi.Expand(req.URL, map[string]string{
36504		"partnerId": strconv.FormatInt(c.partnerId, 10),
36505		"channelId": strconv.FormatInt(c.channelId, 10),
36506	})
36507	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36508}
36509
36510// Do executes the "displayvideo.partners.channels.get" call.
36511// Exactly one of *Channel or error will be non-nil. Any non-2xx status
36512// code is an error. Response headers are in either
36513// *Channel.ServerResponse.Header or (if a response was returned at all)
36514// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
36515// check whether the returned error was because http.StatusNotModified
36516// was returned.
36517func (c *PartnersChannelsGetCall) Do(opts ...googleapi.CallOption) (*Channel, error) {
36518	gensupport.SetOptions(c.urlParams_, opts...)
36519	res, err := c.doRequest("json")
36520	if res != nil && res.StatusCode == http.StatusNotModified {
36521		if res.Body != nil {
36522			res.Body.Close()
36523		}
36524		return nil, &googleapi.Error{
36525			Code:   res.StatusCode,
36526			Header: res.Header,
36527		}
36528	}
36529	if err != nil {
36530		return nil, err
36531	}
36532	defer googleapi.CloseBody(res)
36533	if err := googleapi.CheckResponse(res); err != nil {
36534		return nil, err
36535	}
36536	ret := &Channel{
36537		ServerResponse: googleapi.ServerResponse{
36538			Header:         res.Header,
36539			HTTPStatusCode: res.StatusCode,
36540		},
36541	}
36542	target := &ret
36543	if err := gensupport.DecodeResponse(target, res); err != nil {
36544		return nil, err
36545	}
36546	return ret, nil
36547	// {
36548	//   "description": "Gets a channel for a partner or advertiser.",
36549	//   "flatPath": "v1/partners/{partnersId}/channels/{channelsId}",
36550	//   "httpMethod": "GET",
36551	//   "id": "displayvideo.partners.channels.get",
36552	//   "parameterOrder": [
36553	//     "partnerId",
36554	//     "channelId"
36555	//   ],
36556	//   "parameters": {
36557	//     "advertiserId": {
36558	//       "description": "The ID of the advertiser that owns the fetched channel.",
36559	//       "format": "int64",
36560	//       "location": "query",
36561	//       "type": "string"
36562	//     },
36563	//     "channelId": {
36564	//       "description": "Required. The ID of the channel to fetch.",
36565	//       "format": "int64",
36566	//       "location": "path",
36567	//       "pattern": "^[^/]+$",
36568	//       "required": true,
36569	//       "type": "string"
36570	//     },
36571	//     "partnerId": {
36572	//       "description": "The ID of the partner that owns the fetched channel.",
36573	//       "format": "int64",
36574	//       "location": "path",
36575	//       "pattern": "^[^/]+$",
36576	//       "required": true,
36577	//       "type": "string"
36578	//     }
36579	//   },
36580	//   "path": "v1/partners/{+partnerId}/channels/{+channelId}",
36581	//   "response": {
36582	//     "$ref": "Channel"
36583	//   },
36584	//   "scopes": [
36585	//     "https://www.googleapis.com/auth/display-video"
36586	//   ]
36587	// }
36588
36589}
36590
36591// method id "displayvideo.partners.channels.list":
36592
36593type PartnersChannelsListCall struct {
36594	s            *Service
36595	partnerId    int64
36596	urlParams_   gensupport.URLParams
36597	ifNoneMatch_ string
36598	ctx_         context.Context
36599	header_      http.Header
36600}
36601
36602// List: Lists channels for a partner or advertiser.
36603//
36604// - partnerId: The ID of the partner that owns the channels.
36605func (r *PartnersChannelsService) List(partnerId int64) *PartnersChannelsListCall {
36606	c := &PartnersChannelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36607	c.partnerId = partnerId
36608	return c
36609}
36610
36611// AdvertiserId sets the optional parameter "advertiserId": The ID of
36612// the advertiser that owns the channels.
36613func (c *PartnersChannelsListCall) AdvertiserId(advertiserId int64) *PartnersChannelsListCall {
36614	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
36615	return c
36616}
36617
36618// Filter sets the optional parameter "filter": Allows filtering by
36619// channel fields. Supported syntax: * Filter expressions for channel
36620// currently can only contain at most one * restriction. * A restriction
36621// has the form of `{field} {operator} {value}`. * The operator must be
36622// `CONTAINS (:)`. * Supported fields: - `displayName` Examples: * All
36623// channels for which the display name contains "google": `displayName :
36624// "google". The length of this field should be no more than 500
36625// characters.
36626func (c *PartnersChannelsListCall) Filter(filter string) *PartnersChannelsListCall {
36627	c.urlParams_.Set("filter", filter)
36628	return c
36629}
36630
36631// OrderBy sets the optional parameter "orderBy": Field by which to sort
36632// the list. Acceptable values are: * `displayName` (default) *
36633// `channelId` The default sorting order is ascending. To specify
36634// descending order for a field, a suffix " desc" should be added to the
36635// field name. Example: `displayName desc`.
36636func (c *PartnersChannelsListCall) OrderBy(orderBy string) *PartnersChannelsListCall {
36637	c.urlParams_.Set("orderBy", orderBy)
36638	return c
36639}
36640
36641// PageSize sets the optional parameter "pageSize": Requested page size.
36642// Must be between `1` and `100`. If unspecified will default to `100`.
36643// Returns error code `INVALID_ARGUMENT` if an invalid value is
36644// specified.
36645func (c *PartnersChannelsListCall) PageSize(pageSize int64) *PartnersChannelsListCall {
36646	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
36647	return c
36648}
36649
36650// PageToken sets the optional parameter "pageToken": A token
36651// identifying a page of results the server should return. Typically,
36652// this is the value of next_page_token returned from the previous call
36653// to `ListChannels` method. If not specified, the first page of results
36654// will be returned.
36655func (c *PartnersChannelsListCall) PageToken(pageToken string) *PartnersChannelsListCall {
36656	c.urlParams_.Set("pageToken", pageToken)
36657	return c
36658}
36659
36660// Fields allows partial responses to be retrieved. See
36661// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36662// for more information.
36663func (c *PartnersChannelsListCall) Fields(s ...googleapi.Field) *PartnersChannelsListCall {
36664	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36665	return c
36666}
36667
36668// IfNoneMatch sets the optional parameter which makes the operation
36669// fail if the object's ETag matches the given value. This is useful for
36670// getting updates only after the object has changed since the last
36671// request. Use googleapi.IsNotModified to check whether the response
36672// error from Do is the result of In-None-Match.
36673func (c *PartnersChannelsListCall) IfNoneMatch(entityTag string) *PartnersChannelsListCall {
36674	c.ifNoneMatch_ = entityTag
36675	return c
36676}
36677
36678// Context sets the context to be used in this call's Do method. Any
36679// pending HTTP request will be aborted if the provided context is
36680// canceled.
36681func (c *PartnersChannelsListCall) Context(ctx context.Context) *PartnersChannelsListCall {
36682	c.ctx_ = ctx
36683	return c
36684}
36685
36686// Header returns an http.Header that can be modified by the caller to
36687// add HTTP headers to the request.
36688func (c *PartnersChannelsListCall) Header() http.Header {
36689	if c.header_ == nil {
36690		c.header_ = make(http.Header)
36691	}
36692	return c.header_
36693}
36694
36695func (c *PartnersChannelsListCall) doRequest(alt string) (*http.Response, error) {
36696	reqHeaders := make(http.Header)
36697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
36698	for k, v := range c.header_ {
36699		reqHeaders[k] = v
36700	}
36701	reqHeaders.Set("User-Agent", c.s.userAgent())
36702	if c.ifNoneMatch_ != "" {
36703		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36704	}
36705	var body io.Reader = nil
36706	c.urlParams_.Set("alt", alt)
36707	c.urlParams_.Set("prettyPrint", "false")
36708	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/channels")
36709	urls += "?" + c.urlParams_.Encode()
36710	req, err := http.NewRequest("GET", urls, body)
36711	if err != nil {
36712		return nil, err
36713	}
36714	req.Header = reqHeaders
36715	googleapi.Expand(req.URL, map[string]string{
36716		"partnerId": strconv.FormatInt(c.partnerId, 10),
36717	})
36718	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36719}
36720
36721// Do executes the "displayvideo.partners.channels.list" call.
36722// Exactly one of *ListChannelsResponse or error will be non-nil. Any
36723// non-2xx status code is an error. Response headers are in either
36724// *ListChannelsResponse.ServerResponse.Header or (if a response was
36725// returned at all) in error.(*googleapi.Error).Header. Use
36726// googleapi.IsNotModified to check whether the returned error was
36727// because http.StatusNotModified was returned.
36728func (c *PartnersChannelsListCall) Do(opts ...googleapi.CallOption) (*ListChannelsResponse, error) {
36729	gensupport.SetOptions(c.urlParams_, opts...)
36730	res, err := c.doRequest("json")
36731	if res != nil && res.StatusCode == http.StatusNotModified {
36732		if res.Body != nil {
36733			res.Body.Close()
36734		}
36735		return nil, &googleapi.Error{
36736			Code:   res.StatusCode,
36737			Header: res.Header,
36738		}
36739	}
36740	if err != nil {
36741		return nil, err
36742	}
36743	defer googleapi.CloseBody(res)
36744	if err := googleapi.CheckResponse(res); err != nil {
36745		return nil, err
36746	}
36747	ret := &ListChannelsResponse{
36748		ServerResponse: googleapi.ServerResponse{
36749			Header:         res.Header,
36750			HTTPStatusCode: res.StatusCode,
36751		},
36752	}
36753	target := &ret
36754	if err := gensupport.DecodeResponse(target, res); err != nil {
36755		return nil, err
36756	}
36757	return ret, nil
36758	// {
36759	//   "description": "Lists channels for a partner or advertiser.",
36760	//   "flatPath": "v1/partners/{partnersId}/channels",
36761	//   "httpMethod": "GET",
36762	//   "id": "displayvideo.partners.channels.list",
36763	//   "parameterOrder": [
36764	//     "partnerId"
36765	//   ],
36766	//   "parameters": {
36767	//     "advertiserId": {
36768	//       "description": "The ID of the advertiser that owns the channels.",
36769	//       "format": "int64",
36770	//       "location": "query",
36771	//       "type": "string"
36772	//     },
36773	//     "filter": {
36774	//       "description": "Allows filtering by channel fields. Supported syntax: * Filter expressions for channel currently can only contain at most one * restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * Supported fields: - `displayName` Examples: * All channels for which the display name contains \"google\": `displayName : \"google\"`. The length of this field should be no more than 500 characters.",
36775	//       "location": "query",
36776	//       "type": "string"
36777	//     },
36778	//     "orderBy": {
36779	//       "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `channelId` The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `displayName desc`.",
36780	//       "location": "query",
36781	//       "type": "string"
36782	//     },
36783	//     "pageSize": {
36784	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
36785	//       "format": "int32",
36786	//       "location": "query",
36787	//       "type": "integer"
36788	//     },
36789	//     "pageToken": {
36790	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListChannels` method. If not specified, the first page of results will be returned.",
36791	//       "location": "query",
36792	//       "type": "string"
36793	//     },
36794	//     "partnerId": {
36795	//       "description": "The ID of the partner that owns the channels.",
36796	//       "format": "int64",
36797	//       "location": "path",
36798	//       "pattern": "^[^/]+$",
36799	//       "required": true,
36800	//       "type": "string"
36801	//     }
36802	//   },
36803	//   "path": "v1/partners/{+partnerId}/channels",
36804	//   "response": {
36805	//     "$ref": "ListChannelsResponse"
36806	//   },
36807	//   "scopes": [
36808	//     "https://www.googleapis.com/auth/display-video"
36809	//   ]
36810	// }
36811
36812}
36813
36814// Pages invokes f for each page of results.
36815// A non-nil error returned from f will halt the iteration.
36816// The provided context supersedes any context provided to the Context method.
36817func (c *PartnersChannelsListCall) Pages(ctx context.Context, f func(*ListChannelsResponse) error) error {
36818	c.ctx_ = ctx
36819	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
36820	for {
36821		x, err := c.Do()
36822		if err != nil {
36823			return err
36824		}
36825		if err := f(x); err != nil {
36826			return err
36827		}
36828		if x.NextPageToken == "" {
36829			return nil
36830		}
36831		c.PageToken(x.NextPageToken)
36832	}
36833}
36834
36835// method id "displayvideo.partners.channels.patch":
36836
36837type PartnersChannelsPatchCall struct {
36838	s          *Service
36839	partnerId  int64
36840	channelId  int64
36841	channel    *Channel
36842	urlParams_ gensupport.URLParams
36843	ctx_       context.Context
36844	header_    http.Header
36845}
36846
36847// Patch: Updates a channel. Returns the updated channel if successful.
36848//
36849// - channelId: Output only. The unique ID of the channel. Assigned by
36850//   the system.
36851// - partnerId: The ID of the partner that owns the created channel.
36852func (r *PartnersChannelsService) Patch(partnerId int64, channelId int64, channel *Channel) *PartnersChannelsPatchCall {
36853	c := &PartnersChannelsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36854	c.partnerId = partnerId
36855	c.channelId = channelId
36856	c.channel = channel
36857	return c
36858}
36859
36860// AdvertiserId sets the optional parameter "advertiserId": The ID of
36861// the advertiser that owns the created channel.
36862func (c *PartnersChannelsPatchCall) AdvertiserId(advertiserId int64) *PartnersChannelsPatchCall {
36863	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
36864	return c
36865}
36866
36867// UpdateMask sets the optional parameter "updateMask": Required. The
36868// mask to control which fields to update.
36869func (c *PartnersChannelsPatchCall) UpdateMask(updateMask string) *PartnersChannelsPatchCall {
36870	c.urlParams_.Set("updateMask", updateMask)
36871	return c
36872}
36873
36874// Fields allows partial responses to be retrieved. See
36875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36876// for more information.
36877func (c *PartnersChannelsPatchCall) Fields(s ...googleapi.Field) *PartnersChannelsPatchCall {
36878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36879	return c
36880}
36881
36882// Context sets the context to be used in this call's Do method. Any
36883// pending HTTP request will be aborted if the provided context is
36884// canceled.
36885func (c *PartnersChannelsPatchCall) Context(ctx context.Context) *PartnersChannelsPatchCall {
36886	c.ctx_ = ctx
36887	return c
36888}
36889
36890// Header returns an http.Header that can be modified by the caller to
36891// add HTTP headers to the request.
36892func (c *PartnersChannelsPatchCall) Header() http.Header {
36893	if c.header_ == nil {
36894		c.header_ = make(http.Header)
36895	}
36896	return c.header_
36897}
36898
36899func (c *PartnersChannelsPatchCall) doRequest(alt string) (*http.Response, error) {
36900	reqHeaders := make(http.Header)
36901	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
36902	for k, v := range c.header_ {
36903		reqHeaders[k] = v
36904	}
36905	reqHeaders.Set("User-Agent", c.s.userAgent())
36906	var body io.Reader = nil
36907	body, err := googleapi.WithoutDataWrapper.JSONReader(c.channel)
36908	if err != nil {
36909		return nil, err
36910	}
36911	reqHeaders.Set("Content-Type", "application/json")
36912	c.urlParams_.Set("alt", alt)
36913	c.urlParams_.Set("prettyPrint", "false")
36914	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/channels/{channelId}")
36915	urls += "?" + c.urlParams_.Encode()
36916	req, err := http.NewRequest("PATCH", urls, body)
36917	if err != nil {
36918		return nil, err
36919	}
36920	req.Header = reqHeaders
36921	googleapi.Expand(req.URL, map[string]string{
36922		"partnerId": strconv.FormatInt(c.partnerId, 10),
36923		"channelId": strconv.FormatInt(c.channelId, 10),
36924	})
36925	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36926}
36927
36928// Do executes the "displayvideo.partners.channels.patch" call.
36929// Exactly one of *Channel or error will be non-nil. Any non-2xx status
36930// code is an error. Response headers are in either
36931// *Channel.ServerResponse.Header or (if a response was returned at all)
36932// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
36933// check whether the returned error was because http.StatusNotModified
36934// was returned.
36935func (c *PartnersChannelsPatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) {
36936	gensupport.SetOptions(c.urlParams_, opts...)
36937	res, err := c.doRequest("json")
36938	if res != nil && res.StatusCode == http.StatusNotModified {
36939		if res.Body != nil {
36940			res.Body.Close()
36941		}
36942		return nil, &googleapi.Error{
36943			Code:   res.StatusCode,
36944			Header: res.Header,
36945		}
36946	}
36947	if err != nil {
36948		return nil, err
36949	}
36950	defer googleapi.CloseBody(res)
36951	if err := googleapi.CheckResponse(res); err != nil {
36952		return nil, err
36953	}
36954	ret := &Channel{
36955		ServerResponse: googleapi.ServerResponse{
36956			Header:         res.Header,
36957			HTTPStatusCode: res.StatusCode,
36958		},
36959	}
36960	target := &ret
36961	if err := gensupport.DecodeResponse(target, res); err != nil {
36962		return nil, err
36963	}
36964	return ret, nil
36965	// {
36966	//   "description": "Updates a channel. Returns the updated channel if successful.",
36967	//   "flatPath": "v1/partners/{partnersId}/channels/{channelId}",
36968	//   "httpMethod": "PATCH",
36969	//   "id": "displayvideo.partners.channels.patch",
36970	//   "parameterOrder": [
36971	//     "partnerId",
36972	//     "channelId"
36973	//   ],
36974	//   "parameters": {
36975	//     "advertiserId": {
36976	//       "description": "The ID of the advertiser that owns the created channel.",
36977	//       "format": "int64",
36978	//       "location": "query",
36979	//       "type": "string"
36980	//     },
36981	//     "channelId": {
36982	//       "description": "Output only. The unique ID of the channel. Assigned by the system.",
36983	//       "format": "int64",
36984	//       "location": "path",
36985	//       "required": true,
36986	//       "type": "string"
36987	//     },
36988	//     "partnerId": {
36989	//       "description": "The ID of the partner that owns the created channel.",
36990	//       "format": "int64",
36991	//       "location": "path",
36992	//       "pattern": "^[^/]+$",
36993	//       "required": true,
36994	//       "type": "string"
36995	//     },
36996	//     "updateMask": {
36997	//       "description": "Required. The mask to control which fields to update.",
36998	//       "format": "google-fieldmask",
36999	//       "location": "query",
37000	//       "type": "string"
37001	//     }
37002	//   },
37003	//   "path": "v1/partners/{+partnerId}/channels/{channelId}",
37004	//   "request": {
37005	//     "$ref": "Channel"
37006	//   },
37007	//   "response": {
37008	//     "$ref": "Channel"
37009	//   },
37010	//   "scopes": [
37011	//     "https://www.googleapis.com/auth/display-video"
37012	//   ]
37013	// }
37014
37015}
37016
37017// method id "displayvideo.partners.channels.sites.bulkEdit":
37018
37019type PartnersChannelsSitesBulkEditCall struct {
37020	s                    *Service
37021	partnerId            int64
37022	channelId            int64
37023	bulkeditsitesrequest *BulkEditSitesRequest
37024	urlParams_           gensupport.URLParams
37025	ctx_                 context.Context
37026	header_              http.Header
37027}
37028
37029// BulkEdit: Bulk edits sites under a single channel. The operation will
37030// delete the sites provided in BulkEditSitesRequest.deleted_sites and
37031// then create the sites provided in BulkEditSitesRequest.created_sites.
37032//
37033// - channelId: The ID of the parent channel to which the sites belong.
37034// - partnerId: The ID of the partner that owns the parent channel.
37035func (r *PartnersChannelsSitesService) BulkEdit(partnerId int64, channelId int64, bulkeditsitesrequest *BulkEditSitesRequest) *PartnersChannelsSitesBulkEditCall {
37036	c := &PartnersChannelsSitesBulkEditCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37037	c.partnerId = partnerId
37038	c.channelId = channelId
37039	c.bulkeditsitesrequest = bulkeditsitesrequest
37040	return c
37041}
37042
37043// Fields allows partial responses to be retrieved. See
37044// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37045// for more information.
37046func (c *PartnersChannelsSitesBulkEditCall) Fields(s ...googleapi.Field) *PartnersChannelsSitesBulkEditCall {
37047	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37048	return c
37049}
37050
37051// Context sets the context to be used in this call's Do method. Any
37052// pending HTTP request will be aborted if the provided context is
37053// canceled.
37054func (c *PartnersChannelsSitesBulkEditCall) Context(ctx context.Context) *PartnersChannelsSitesBulkEditCall {
37055	c.ctx_ = ctx
37056	return c
37057}
37058
37059// Header returns an http.Header that can be modified by the caller to
37060// add HTTP headers to the request.
37061func (c *PartnersChannelsSitesBulkEditCall) Header() http.Header {
37062	if c.header_ == nil {
37063		c.header_ = make(http.Header)
37064	}
37065	return c.header_
37066}
37067
37068func (c *PartnersChannelsSitesBulkEditCall) doRequest(alt string) (*http.Response, error) {
37069	reqHeaders := make(http.Header)
37070	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
37071	for k, v := range c.header_ {
37072		reqHeaders[k] = v
37073	}
37074	reqHeaders.Set("User-Agent", c.s.userAgent())
37075	var body io.Reader = nil
37076	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditsitesrequest)
37077	if err != nil {
37078		return nil, err
37079	}
37080	reqHeaders.Set("Content-Type", "application/json")
37081	c.urlParams_.Set("alt", alt)
37082	c.urlParams_.Set("prettyPrint", "false")
37083	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{partnerId}/channels/{+channelId}/sites:bulkEdit")
37084	urls += "?" + c.urlParams_.Encode()
37085	req, err := http.NewRequest("POST", urls, body)
37086	if err != nil {
37087		return nil, err
37088	}
37089	req.Header = reqHeaders
37090	googleapi.Expand(req.URL, map[string]string{
37091		"partnerId": strconv.FormatInt(c.partnerId, 10),
37092		"channelId": strconv.FormatInt(c.channelId, 10),
37093	})
37094	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37095}
37096
37097// Do executes the "displayvideo.partners.channels.sites.bulkEdit" call.
37098// Exactly one of *BulkEditSitesResponse or error will be non-nil. Any
37099// non-2xx status code is an error. Response headers are in either
37100// *BulkEditSitesResponse.ServerResponse.Header or (if a response was
37101// returned at all) in error.(*googleapi.Error).Header. Use
37102// googleapi.IsNotModified to check whether the returned error was
37103// because http.StatusNotModified was returned.
37104func (c *PartnersChannelsSitesBulkEditCall) Do(opts ...googleapi.CallOption) (*BulkEditSitesResponse, error) {
37105	gensupport.SetOptions(c.urlParams_, opts...)
37106	res, err := c.doRequest("json")
37107	if res != nil && res.StatusCode == http.StatusNotModified {
37108		if res.Body != nil {
37109			res.Body.Close()
37110		}
37111		return nil, &googleapi.Error{
37112			Code:   res.StatusCode,
37113			Header: res.Header,
37114		}
37115	}
37116	if err != nil {
37117		return nil, err
37118	}
37119	defer googleapi.CloseBody(res)
37120	if err := googleapi.CheckResponse(res); err != nil {
37121		return nil, err
37122	}
37123	ret := &BulkEditSitesResponse{
37124		ServerResponse: googleapi.ServerResponse{
37125			Header:         res.Header,
37126			HTTPStatusCode: res.StatusCode,
37127		},
37128	}
37129	target := &ret
37130	if err := gensupport.DecodeResponse(target, res); err != nil {
37131		return nil, err
37132	}
37133	return ret, nil
37134	// {
37135	//   "description": "Bulk edits sites under a single channel. The operation will delete the sites provided in BulkEditSitesRequest.deleted_sites and then create the sites provided in BulkEditSitesRequest.created_sites.",
37136	//   "flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites:bulkEdit",
37137	//   "httpMethod": "POST",
37138	//   "id": "displayvideo.partners.channels.sites.bulkEdit",
37139	//   "parameterOrder": [
37140	//     "partnerId",
37141	//     "channelId"
37142	//   ],
37143	//   "parameters": {
37144	//     "channelId": {
37145	//       "description": "Required. The ID of the parent channel to which the sites belong.",
37146	//       "format": "int64",
37147	//       "location": "path",
37148	//       "pattern": "^[^/]+$",
37149	//       "required": true,
37150	//       "type": "string"
37151	//     },
37152	//     "partnerId": {
37153	//       "description": "The ID of the partner that owns the parent channel.",
37154	//       "format": "int64",
37155	//       "location": "path",
37156	//       "required": true,
37157	//       "type": "string"
37158	//     }
37159	//   },
37160	//   "path": "v1/partners/{partnerId}/channels/{+channelId}/sites:bulkEdit",
37161	//   "request": {
37162	//     "$ref": "BulkEditSitesRequest"
37163	//   },
37164	//   "response": {
37165	//     "$ref": "BulkEditSitesResponse"
37166	//   },
37167	//   "scopes": [
37168	//     "https://www.googleapis.com/auth/display-video"
37169	//   ]
37170	// }
37171
37172}
37173
37174// method id "displayvideo.partners.channels.sites.create":
37175
37176type PartnersChannelsSitesCreateCall struct {
37177	s          *Service
37178	partnerId  int64
37179	channelId  int64
37180	site       *Site
37181	urlParams_ gensupport.URLParams
37182	ctx_       context.Context
37183	header_    http.Header
37184}
37185
37186// Create: Creates a site in a channel.
37187//
37188// - channelId: The ID of the parent channel in which the site will be
37189//   created.
37190// - partnerId: The ID of the partner that owns the parent channel.
37191func (r *PartnersChannelsSitesService) Create(partnerId int64, channelId int64, site *Site) *PartnersChannelsSitesCreateCall {
37192	c := &PartnersChannelsSitesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37193	c.partnerId = partnerId
37194	c.channelId = channelId
37195	c.site = site
37196	return c
37197}
37198
37199// AdvertiserId sets the optional parameter "advertiserId": The ID of
37200// the advertiser that owns the parent channel.
37201func (c *PartnersChannelsSitesCreateCall) AdvertiserId(advertiserId int64) *PartnersChannelsSitesCreateCall {
37202	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
37203	return c
37204}
37205
37206// Fields allows partial responses to be retrieved. See
37207// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37208// for more information.
37209func (c *PartnersChannelsSitesCreateCall) Fields(s ...googleapi.Field) *PartnersChannelsSitesCreateCall {
37210	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37211	return c
37212}
37213
37214// Context sets the context to be used in this call's Do method. Any
37215// pending HTTP request will be aborted if the provided context is
37216// canceled.
37217func (c *PartnersChannelsSitesCreateCall) Context(ctx context.Context) *PartnersChannelsSitesCreateCall {
37218	c.ctx_ = ctx
37219	return c
37220}
37221
37222// Header returns an http.Header that can be modified by the caller to
37223// add HTTP headers to the request.
37224func (c *PartnersChannelsSitesCreateCall) Header() http.Header {
37225	if c.header_ == nil {
37226		c.header_ = make(http.Header)
37227	}
37228	return c.header_
37229}
37230
37231func (c *PartnersChannelsSitesCreateCall) doRequest(alt string) (*http.Response, error) {
37232	reqHeaders := make(http.Header)
37233	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
37234	for k, v := range c.header_ {
37235		reqHeaders[k] = v
37236	}
37237	reqHeaders.Set("User-Agent", c.s.userAgent())
37238	var body io.Reader = nil
37239	body, err := googleapi.WithoutDataWrapper.JSONReader(c.site)
37240	if err != nil {
37241		return nil, err
37242	}
37243	reqHeaders.Set("Content-Type", "application/json")
37244	c.urlParams_.Set("alt", alt)
37245	c.urlParams_.Set("prettyPrint", "false")
37246	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{partnerId}/channels/{+channelId}/sites")
37247	urls += "?" + c.urlParams_.Encode()
37248	req, err := http.NewRequest("POST", urls, body)
37249	if err != nil {
37250		return nil, err
37251	}
37252	req.Header = reqHeaders
37253	googleapi.Expand(req.URL, map[string]string{
37254		"partnerId": strconv.FormatInt(c.partnerId, 10),
37255		"channelId": strconv.FormatInt(c.channelId, 10),
37256	})
37257	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37258}
37259
37260// Do executes the "displayvideo.partners.channels.sites.create" call.
37261// Exactly one of *Site or error will be non-nil. Any non-2xx status
37262// code is an error. Response headers are in either
37263// *Site.ServerResponse.Header or (if a response was returned at all) in
37264// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
37265// whether the returned error was because http.StatusNotModified was
37266// returned.
37267func (c *PartnersChannelsSitesCreateCall) Do(opts ...googleapi.CallOption) (*Site, error) {
37268	gensupport.SetOptions(c.urlParams_, opts...)
37269	res, err := c.doRequest("json")
37270	if res != nil && res.StatusCode == http.StatusNotModified {
37271		if res.Body != nil {
37272			res.Body.Close()
37273		}
37274		return nil, &googleapi.Error{
37275			Code:   res.StatusCode,
37276			Header: res.Header,
37277		}
37278	}
37279	if err != nil {
37280		return nil, err
37281	}
37282	defer googleapi.CloseBody(res)
37283	if err := googleapi.CheckResponse(res); err != nil {
37284		return nil, err
37285	}
37286	ret := &Site{
37287		ServerResponse: googleapi.ServerResponse{
37288			Header:         res.Header,
37289			HTTPStatusCode: res.StatusCode,
37290		},
37291	}
37292	target := &ret
37293	if err := gensupport.DecodeResponse(target, res); err != nil {
37294		return nil, err
37295	}
37296	return ret, nil
37297	// {
37298	//   "description": "Creates a site in a channel.",
37299	//   "flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites",
37300	//   "httpMethod": "POST",
37301	//   "id": "displayvideo.partners.channels.sites.create",
37302	//   "parameterOrder": [
37303	//     "partnerId",
37304	//     "channelId"
37305	//   ],
37306	//   "parameters": {
37307	//     "advertiserId": {
37308	//       "description": "The ID of the advertiser that owns the parent channel.",
37309	//       "format": "int64",
37310	//       "location": "query",
37311	//       "type": "string"
37312	//     },
37313	//     "channelId": {
37314	//       "description": "Required. The ID of the parent channel in which the site will be created.",
37315	//       "format": "int64",
37316	//       "location": "path",
37317	//       "pattern": "^[^/]+$",
37318	//       "required": true,
37319	//       "type": "string"
37320	//     },
37321	//     "partnerId": {
37322	//       "description": "The ID of the partner that owns the parent channel.",
37323	//       "format": "int64",
37324	//       "location": "path",
37325	//       "required": true,
37326	//       "type": "string"
37327	//     }
37328	//   },
37329	//   "path": "v1/partners/{partnerId}/channels/{+channelId}/sites",
37330	//   "request": {
37331	//     "$ref": "Site"
37332	//   },
37333	//   "response": {
37334	//     "$ref": "Site"
37335	//   },
37336	//   "scopes": [
37337	//     "https://www.googleapis.com/auth/display-video"
37338	//   ]
37339	// }
37340
37341}
37342
37343// method id "displayvideo.partners.channels.sites.delete":
37344
37345type PartnersChannelsSitesDeleteCall struct {
37346	s          *Service
37347	partnerId  int64
37348	channelId  int64
37349	urlOrAppId string
37350	urlParams_ gensupport.URLParams
37351	ctx_       context.Context
37352	header_    http.Header
37353}
37354
37355// Delete: Deletes a site from a channel.
37356//
37357// - channelId: The ID of the parent channel to which the site belongs.
37358// - partnerId: The ID of the partner that owns the parent channel.
37359// - urlOrAppId: The URL or app ID of the site to delete.
37360func (r *PartnersChannelsSitesService) Delete(partnerId int64, channelId int64, urlOrAppId string) *PartnersChannelsSitesDeleteCall {
37361	c := &PartnersChannelsSitesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37362	c.partnerId = partnerId
37363	c.channelId = channelId
37364	c.urlOrAppId = urlOrAppId
37365	return c
37366}
37367
37368// AdvertiserId sets the optional parameter "advertiserId": The ID of
37369// the advertiser that owns the parent channel.
37370func (c *PartnersChannelsSitesDeleteCall) AdvertiserId(advertiserId int64) *PartnersChannelsSitesDeleteCall {
37371	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
37372	return c
37373}
37374
37375// Fields allows partial responses to be retrieved. See
37376// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37377// for more information.
37378func (c *PartnersChannelsSitesDeleteCall) Fields(s ...googleapi.Field) *PartnersChannelsSitesDeleteCall {
37379	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37380	return c
37381}
37382
37383// Context sets the context to be used in this call's Do method. Any
37384// pending HTTP request will be aborted if the provided context is
37385// canceled.
37386func (c *PartnersChannelsSitesDeleteCall) Context(ctx context.Context) *PartnersChannelsSitesDeleteCall {
37387	c.ctx_ = ctx
37388	return c
37389}
37390
37391// Header returns an http.Header that can be modified by the caller to
37392// add HTTP headers to the request.
37393func (c *PartnersChannelsSitesDeleteCall) Header() http.Header {
37394	if c.header_ == nil {
37395		c.header_ = make(http.Header)
37396	}
37397	return c.header_
37398}
37399
37400func (c *PartnersChannelsSitesDeleteCall) doRequest(alt string) (*http.Response, error) {
37401	reqHeaders := make(http.Header)
37402	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
37403	for k, v := range c.header_ {
37404		reqHeaders[k] = v
37405	}
37406	reqHeaders.Set("User-Agent", c.s.userAgent())
37407	var body io.Reader = nil
37408	c.urlParams_.Set("alt", alt)
37409	c.urlParams_.Set("prettyPrint", "false")
37410	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{partnerId}/channels/{+channelId}/sites/{+urlOrAppId}")
37411	urls += "?" + c.urlParams_.Encode()
37412	req, err := http.NewRequest("DELETE", urls, body)
37413	if err != nil {
37414		return nil, err
37415	}
37416	req.Header = reqHeaders
37417	googleapi.Expand(req.URL, map[string]string{
37418		"partnerId":  strconv.FormatInt(c.partnerId, 10),
37419		"channelId":  strconv.FormatInt(c.channelId, 10),
37420		"urlOrAppId": c.urlOrAppId,
37421	})
37422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37423}
37424
37425// Do executes the "displayvideo.partners.channels.sites.delete" call.
37426// Exactly one of *Empty or error will be non-nil. Any non-2xx status
37427// code is an error. Response headers are in either
37428// *Empty.ServerResponse.Header or (if a response was returned at all)
37429// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
37430// check whether the returned error was because http.StatusNotModified
37431// was returned.
37432func (c *PartnersChannelsSitesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
37433	gensupport.SetOptions(c.urlParams_, opts...)
37434	res, err := c.doRequest("json")
37435	if res != nil && res.StatusCode == http.StatusNotModified {
37436		if res.Body != nil {
37437			res.Body.Close()
37438		}
37439		return nil, &googleapi.Error{
37440			Code:   res.StatusCode,
37441			Header: res.Header,
37442		}
37443	}
37444	if err != nil {
37445		return nil, err
37446	}
37447	defer googleapi.CloseBody(res)
37448	if err := googleapi.CheckResponse(res); err != nil {
37449		return nil, err
37450	}
37451	ret := &Empty{
37452		ServerResponse: googleapi.ServerResponse{
37453			Header:         res.Header,
37454			HTTPStatusCode: res.StatusCode,
37455		},
37456	}
37457	target := &ret
37458	if err := gensupport.DecodeResponse(target, res); err != nil {
37459		return nil, err
37460	}
37461	return ret, nil
37462	// {
37463	//   "description": "Deletes a site from a channel.",
37464	//   "flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites/{sitesId}",
37465	//   "httpMethod": "DELETE",
37466	//   "id": "displayvideo.partners.channels.sites.delete",
37467	//   "parameterOrder": [
37468	//     "partnerId",
37469	//     "channelId",
37470	//     "urlOrAppId"
37471	//   ],
37472	//   "parameters": {
37473	//     "advertiserId": {
37474	//       "description": "The ID of the advertiser that owns the parent channel.",
37475	//       "format": "int64",
37476	//       "location": "query",
37477	//       "type": "string"
37478	//     },
37479	//     "channelId": {
37480	//       "description": "Required. The ID of the parent channel to which the site belongs.",
37481	//       "format": "int64",
37482	//       "location": "path",
37483	//       "pattern": "^[^/]+$",
37484	//       "required": true,
37485	//       "type": "string"
37486	//     },
37487	//     "partnerId": {
37488	//       "description": "The ID of the partner that owns the parent channel.",
37489	//       "format": "int64",
37490	//       "location": "path",
37491	//       "required": true,
37492	//       "type": "string"
37493	//     },
37494	//     "urlOrAppId": {
37495	//       "description": "Required. The URL or app ID of the site to delete.",
37496	//       "location": "path",
37497	//       "pattern": "^[^/]+$",
37498	//       "required": true,
37499	//       "type": "string"
37500	//     }
37501	//   },
37502	//   "path": "v1/partners/{partnerId}/channels/{+channelId}/sites/{+urlOrAppId}",
37503	//   "response": {
37504	//     "$ref": "Empty"
37505	//   },
37506	//   "scopes": [
37507	//     "https://www.googleapis.com/auth/display-video"
37508	//   ]
37509	// }
37510
37511}
37512
37513// method id "displayvideo.partners.channels.sites.list":
37514
37515type PartnersChannelsSitesListCall struct {
37516	s            *Service
37517	partnerId    int64
37518	channelId    int64
37519	urlParams_   gensupport.URLParams
37520	ifNoneMatch_ string
37521	ctx_         context.Context
37522	header_      http.Header
37523}
37524
37525// List: Lists sites in a channel.
37526//
37527// - channelId: The ID of the parent channel to which the requested
37528//   sites belong.
37529// - partnerId: The ID of the partner that owns the parent channel.
37530func (r *PartnersChannelsSitesService) List(partnerId int64, channelId int64) *PartnersChannelsSitesListCall {
37531	c := &PartnersChannelsSitesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37532	c.partnerId = partnerId
37533	c.channelId = channelId
37534	return c
37535}
37536
37537// AdvertiserId sets the optional parameter "advertiserId": The ID of
37538// the advertiser that owns the parent channel.
37539func (c *PartnersChannelsSitesListCall) AdvertiserId(advertiserId int64) *PartnersChannelsSitesListCall {
37540	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
37541	return c
37542}
37543
37544// Filter sets the optional parameter "filter": Allows filtering by site
37545// fields. Supported syntax: * Filter expressions for site currently can
37546// only contain at most one * restriction. * A restriction has the form
37547// of `{field} {operator} {value}`. * The operator must be `CONTAINS
37548// (:)`. * Supported fields: - `urlOrAppId` Examples: * All sites for
37549// which the URL or app ID contains "google": `urlOrAppId : "google"
37550func (c *PartnersChannelsSitesListCall) Filter(filter string) *PartnersChannelsSitesListCall {
37551	c.urlParams_.Set("filter", filter)
37552	return c
37553}
37554
37555// OrderBy sets the optional parameter "orderBy": Field by which to sort
37556// the list. Acceptable values are: * `urlOrAppId` (default) The default
37557// sorting order is ascending. To specify descending order for a field,
37558// a suffix " desc" should be added to the field name. Example:
37559// `urlOrAppId desc`.
37560func (c *PartnersChannelsSitesListCall) OrderBy(orderBy string) *PartnersChannelsSitesListCall {
37561	c.urlParams_.Set("orderBy", orderBy)
37562	return c
37563}
37564
37565// PageSize sets the optional parameter "pageSize": Requested page size.
37566// Must be between `1` and `10000`. If unspecified will default to
37567// `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is
37568// specified.
37569func (c *PartnersChannelsSitesListCall) PageSize(pageSize int64) *PartnersChannelsSitesListCall {
37570	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
37571	return c
37572}
37573
37574// PageToken sets the optional parameter "pageToken": A token
37575// identifying a page of results the server should return. Typically,
37576// this is the value of next_page_token returned from the previous call
37577// to `ListSites` method. If not specified, the first page of results
37578// will be returned.
37579func (c *PartnersChannelsSitesListCall) PageToken(pageToken string) *PartnersChannelsSitesListCall {
37580	c.urlParams_.Set("pageToken", pageToken)
37581	return c
37582}
37583
37584// Fields allows partial responses to be retrieved. See
37585// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37586// for more information.
37587func (c *PartnersChannelsSitesListCall) Fields(s ...googleapi.Field) *PartnersChannelsSitesListCall {
37588	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37589	return c
37590}
37591
37592// IfNoneMatch sets the optional parameter which makes the operation
37593// fail if the object's ETag matches the given value. This is useful for
37594// getting updates only after the object has changed since the last
37595// request. Use googleapi.IsNotModified to check whether the response
37596// error from Do is the result of In-None-Match.
37597func (c *PartnersChannelsSitesListCall) IfNoneMatch(entityTag string) *PartnersChannelsSitesListCall {
37598	c.ifNoneMatch_ = entityTag
37599	return c
37600}
37601
37602// Context sets the context to be used in this call's Do method. Any
37603// pending HTTP request will be aborted if the provided context is
37604// canceled.
37605func (c *PartnersChannelsSitesListCall) Context(ctx context.Context) *PartnersChannelsSitesListCall {
37606	c.ctx_ = ctx
37607	return c
37608}
37609
37610// Header returns an http.Header that can be modified by the caller to
37611// add HTTP headers to the request.
37612func (c *PartnersChannelsSitesListCall) Header() http.Header {
37613	if c.header_ == nil {
37614		c.header_ = make(http.Header)
37615	}
37616	return c.header_
37617}
37618
37619func (c *PartnersChannelsSitesListCall) doRequest(alt string) (*http.Response, error) {
37620	reqHeaders := make(http.Header)
37621	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
37622	for k, v := range c.header_ {
37623		reqHeaders[k] = v
37624	}
37625	reqHeaders.Set("User-Agent", c.s.userAgent())
37626	if c.ifNoneMatch_ != "" {
37627		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
37628	}
37629	var body io.Reader = nil
37630	c.urlParams_.Set("alt", alt)
37631	c.urlParams_.Set("prettyPrint", "false")
37632	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/channels/{+channelId}/sites")
37633	urls += "?" + c.urlParams_.Encode()
37634	req, err := http.NewRequest("GET", urls, body)
37635	if err != nil {
37636		return nil, err
37637	}
37638	req.Header = reqHeaders
37639	googleapi.Expand(req.URL, map[string]string{
37640		"partnerId": strconv.FormatInt(c.partnerId, 10),
37641		"channelId": strconv.FormatInt(c.channelId, 10),
37642	})
37643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37644}
37645
37646// Do executes the "displayvideo.partners.channels.sites.list" call.
37647// Exactly one of *ListSitesResponse or error will be non-nil. Any
37648// non-2xx status code is an error. Response headers are in either
37649// *ListSitesResponse.ServerResponse.Header or (if a response was
37650// returned at all) in error.(*googleapi.Error).Header. Use
37651// googleapi.IsNotModified to check whether the returned error was
37652// because http.StatusNotModified was returned.
37653func (c *PartnersChannelsSitesListCall) Do(opts ...googleapi.CallOption) (*ListSitesResponse, error) {
37654	gensupport.SetOptions(c.urlParams_, opts...)
37655	res, err := c.doRequest("json")
37656	if res != nil && res.StatusCode == http.StatusNotModified {
37657		if res.Body != nil {
37658			res.Body.Close()
37659		}
37660		return nil, &googleapi.Error{
37661			Code:   res.StatusCode,
37662			Header: res.Header,
37663		}
37664	}
37665	if err != nil {
37666		return nil, err
37667	}
37668	defer googleapi.CloseBody(res)
37669	if err := googleapi.CheckResponse(res); err != nil {
37670		return nil, err
37671	}
37672	ret := &ListSitesResponse{
37673		ServerResponse: googleapi.ServerResponse{
37674			Header:         res.Header,
37675			HTTPStatusCode: res.StatusCode,
37676		},
37677	}
37678	target := &ret
37679	if err := gensupport.DecodeResponse(target, res); err != nil {
37680		return nil, err
37681	}
37682	return ret, nil
37683	// {
37684	//   "description": "Lists sites in a channel.",
37685	//   "flatPath": "v1/partners/{partnersId}/channels/{channelsId}/sites",
37686	//   "httpMethod": "GET",
37687	//   "id": "displayvideo.partners.channels.sites.list",
37688	//   "parameterOrder": [
37689	//     "partnerId",
37690	//     "channelId"
37691	//   ],
37692	//   "parameters": {
37693	//     "advertiserId": {
37694	//       "description": "The ID of the advertiser that owns the parent channel.",
37695	//       "format": "int64",
37696	//       "location": "query",
37697	//       "type": "string"
37698	//     },
37699	//     "channelId": {
37700	//       "description": "Required. The ID of the parent channel to which the requested sites belong.",
37701	//       "format": "int64",
37702	//       "location": "path",
37703	//       "pattern": "^[^/]+$",
37704	//       "required": true,
37705	//       "type": "string"
37706	//     },
37707	//     "filter": {
37708	//       "description": "Allows filtering by site fields. Supported syntax: * Filter expressions for site currently can only contain at most one * restriction. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`. * Supported fields: - `urlOrAppId` Examples: * All sites for which the URL or app ID contains \"google\": `urlOrAppId : \"google\"`",
37709	//       "location": "query",
37710	//       "type": "string"
37711	//     },
37712	//     "orderBy": {
37713	//       "description": "Field by which to sort the list. Acceptable values are: * `urlOrAppId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `urlOrAppId desc`.",
37714	//       "location": "query",
37715	//       "type": "string"
37716	//     },
37717	//     "pageSize": {
37718	//       "description": "Requested page size. Must be between `1` and `10000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
37719	//       "format": "int32",
37720	//       "location": "query",
37721	//       "type": "integer"
37722	//     },
37723	//     "pageToken": {
37724	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListSites` method. If not specified, the first page of results will be returned.",
37725	//       "location": "query",
37726	//       "type": "string"
37727	//     },
37728	//     "partnerId": {
37729	//       "description": "The ID of the partner that owns the parent channel.",
37730	//       "format": "int64",
37731	//       "location": "path",
37732	//       "pattern": "^[^/]+$",
37733	//       "required": true,
37734	//       "type": "string"
37735	//     }
37736	//   },
37737	//   "path": "v1/partners/{+partnerId}/channels/{+channelId}/sites",
37738	//   "response": {
37739	//     "$ref": "ListSitesResponse"
37740	//   },
37741	//   "scopes": [
37742	//     "https://www.googleapis.com/auth/display-video"
37743	//   ]
37744	// }
37745
37746}
37747
37748// Pages invokes f for each page of results.
37749// A non-nil error returned from f will halt the iteration.
37750// The provided context supersedes any context provided to the Context method.
37751func (c *PartnersChannelsSitesListCall) Pages(ctx context.Context, f func(*ListSitesResponse) error) error {
37752	c.ctx_ = ctx
37753	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
37754	for {
37755		x, err := c.Do()
37756		if err != nil {
37757			return err
37758		}
37759		if err := f(x); err != nil {
37760			return err
37761		}
37762		if x.NextPageToken == "" {
37763			return nil
37764		}
37765		c.PageToken(x.NextPageToken)
37766	}
37767}
37768
37769// method id "displayvideo.partners.channels.sites.replace":
37770
37771type PartnersChannelsSitesReplaceCall struct {
37772	s                   *Service
37773	partnerId           int64
37774	channelId           int64
37775	replacesitesrequest *ReplaceSitesRequest
37776	urlParams_          gensupport.URLParams
37777	ctx_                context.Context
37778	header_             http.Header
37779}
37780
37781// Replace: Replaces all of the sites under a single channel. The
37782// operation will replace the sites under a channel with the sites
37783// provided in ReplaceSitesRequest.new_sites.
37784//
37785// - channelId: The ID of the parent channel whose sites will be
37786//   replaced.
37787// - partnerId: The ID of the partner that owns the parent channel.
37788func (r *PartnersChannelsSitesService) Replace(partnerId int64, channelId int64, replacesitesrequest *ReplaceSitesRequest) *PartnersChannelsSitesReplaceCall {
37789	c := &PartnersChannelsSitesReplaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37790	c.partnerId = partnerId
37791	c.channelId = channelId
37792	c.replacesitesrequest = replacesitesrequest
37793	return c
37794}
37795
37796// Fields allows partial responses to be retrieved. See
37797// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37798// for more information.
37799func (c *PartnersChannelsSitesReplaceCall) Fields(s ...googleapi.Field) *PartnersChannelsSitesReplaceCall {
37800	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37801	return c
37802}
37803
37804// Context sets the context to be used in this call's Do method. Any
37805// pending HTTP request will be aborted if the provided context is
37806// canceled.
37807func (c *PartnersChannelsSitesReplaceCall) Context(ctx context.Context) *PartnersChannelsSitesReplaceCall {
37808	c.ctx_ = ctx
37809	return c
37810}
37811
37812// Header returns an http.Header that can be modified by the caller to
37813// add HTTP headers to the request.
37814func (c *PartnersChannelsSitesReplaceCall) Header() http.Header {
37815	if c.header_ == nil {
37816		c.header_ = make(http.Header)
37817	}
37818	return c.header_
37819}
37820
37821func (c *PartnersChannelsSitesReplaceCall) doRequest(alt string) (*http.Response, error) {
37822	reqHeaders := make(http.Header)
37823	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
37824	for k, v := range c.header_ {
37825		reqHeaders[k] = v
37826	}
37827	reqHeaders.Set("User-Agent", c.s.userAgent())
37828	var body io.Reader = nil
37829	body, err := googleapi.WithoutDataWrapper.JSONReader(c.replacesitesrequest)
37830	if err != nil {
37831		return nil, err
37832	}
37833	reqHeaders.Set("Content-Type", "application/json")
37834	c.urlParams_.Set("alt", alt)
37835	c.urlParams_.Set("prettyPrint", "false")
37836	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{partnerId}/channels/{+channelId}/sites:replace")
37837	urls += "?" + c.urlParams_.Encode()
37838	req, err := http.NewRequest("POST", urls, body)
37839	if err != nil {
37840		return nil, err
37841	}
37842	req.Header = reqHeaders
37843	googleapi.Expand(req.URL, map[string]string{
37844		"partnerId": strconv.FormatInt(c.partnerId, 10),
37845		"channelId": strconv.FormatInt(c.channelId, 10),
37846	})
37847	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37848}
37849
37850// Do executes the "displayvideo.partners.channels.sites.replace" call.
37851// Exactly one of *ReplaceSitesResponse or error will be non-nil. Any
37852// non-2xx status code is an error. Response headers are in either
37853// *ReplaceSitesResponse.ServerResponse.Header or (if a response was
37854// returned at all) in error.(*googleapi.Error).Header. Use
37855// googleapi.IsNotModified to check whether the returned error was
37856// because http.StatusNotModified was returned.
37857func (c *PartnersChannelsSitesReplaceCall) Do(opts ...googleapi.CallOption) (*ReplaceSitesResponse, error) {
37858	gensupport.SetOptions(c.urlParams_, opts...)
37859	res, err := c.doRequest("json")
37860	if res != nil && res.StatusCode == http.StatusNotModified {
37861		if res.Body != nil {
37862			res.Body.Close()
37863		}
37864		return nil, &googleapi.Error{
37865			Code:   res.StatusCode,
37866			Header: res.Header,
37867		}
37868	}
37869	if err != nil {
37870		return nil, err
37871	}
37872	defer googleapi.CloseBody(res)
37873	if err := googleapi.CheckResponse(res); err != nil {
37874		return nil, err
37875	}
37876	ret := &ReplaceSitesResponse{
37877		ServerResponse: googleapi.ServerResponse{
37878			Header:         res.Header,
37879			HTTPStatusCode: res.StatusCode,
37880		},
37881	}
37882	target := &ret
37883	if err := gensupport.DecodeResponse(target, res); err != nil {
37884		return nil, err
37885	}
37886	return ret, nil
37887	// {
37888	//   "description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites.",
37889	//   "flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites:replace",
37890	//   "httpMethod": "POST",
37891	//   "id": "displayvideo.partners.channels.sites.replace",
37892	//   "parameterOrder": [
37893	//     "partnerId",
37894	//     "channelId"
37895	//   ],
37896	//   "parameters": {
37897	//     "channelId": {
37898	//       "description": "Required. The ID of the parent channel whose sites will be replaced.",
37899	//       "format": "int64",
37900	//       "location": "path",
37901	//       "pattern": "^[^/]+$",
37902	//       "required": true,
37903	//       "type": "string"
37904	//     },
37905	//     "partnerId": {
37906	//       "description": "The ID of the partner that owns the parent channel.",
37907	//       "format": "int64",
37908	//       "location": "path",
37909	//       "required": true,
37910	//       "type": "string"
37911	//     }
37912	//   },
37913	//   "path": "v1/partners/{partnerId}/channels/{+channelId}/sites:replace",
37914	//   "request": {
37915	//     "$ref": "ReplaceSitesRequest"
37916	//   },
37917	//   "response": {
37918	//     "$ref": "ReplaceSitesResponse"
37919	//   },
37920	//   "scopes": [
37921	//     "https://www.googleapis.com/auth/display-video"
37922	//   ]
37923	// }
37924
37925}
37926
37927// method id "displayvideo.partners.targetingTypes.assignedTargetingOptions.create":
37928
37929type PartnersTargetingTypesAssignedTargetingOptionsCreateCall struct {
37930	s                       *Service
37931	partnerId               int64
37932	targetingType           string
37933	assignedtargetingoption *AssignedTargetingOption
37934	urlParams_              gensupport.URLParams
37935	ctx_                    context.Context
37936	header_                 http.Header
37937}
37938
37939// Create: Assigns a targeting option to a partner. Returns the assigned
37940// targeting option if successful.
37941//
37942// - partnerId: The ID of the partner.
37943// - targetingType: Identifies the type of this assigned targeting
37944//   option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`.
37945func (r *PartnersTargetingTypesAssignedTargetingOptionsService) Create(partnerId int64, targetingType string, assignedtargetingoption *AssignedTargetingOption) *PartnersTargetingTypesAssignedTargetingOptionsCreateCall {
37946	c := &PartnersTargetingTypesAssignedTargetingOptionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37947	c.partnerId = partnerId
37948	c.targetingType = targetingType
37949	c.assignedtargetingoption = assignedtargetingoption
37950	return c
37951}
37952
37953// Fields allows partial responses to be retrieved. See
37954// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37955// for more information.
37956func (c *PartnersTargetingTypesAssignedTargetingOptionsCreateCall) Fields(s ...googleapi.Field) *PartnersTargetingTypesAssignedTargetingOptionsCreateCall {
37957	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37958	return c
37959}
37960
37961// Context sets the context to be used in this call's Do method. Any
37962// pending HTTP request will be aborted if the provided context is
37963// canceled.
37964func (c *PartnersTargetingTypesAssignedTargetingOptionsCreateCall) Context(ctx context.Context) *PartnersTargetingTypesAssignedTargetingOptionsCreateCall {
37965	c.ctx_ = ctx
37966	return c
37967}
37968
37969// Header returns an http.Header that can be modified by the caller to
37970// add HTTP headers to the request.
37971func (c *PartnersTargetingTypesAssignedTargetingOptionsCreateCall) Header() http.Header {
37972	if c.header_ == nil {
37973		c.header_ = make(http.Header)
37974	}
37975	return c.header_
37976}
37977
37978func (c *PartnersTargetingTypesAssignedTargetingOptionsCreateCall) doRequest(alt string) (*http.Response, error) {
37979	reqHeaders := make(http.Header)
37980	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
37981	for k, v := range c.header_ {
37982		reqHeaders[k] = v
37983	}
37984	reqHeaders.Set("User-Agent", c.s.userAgent())
37985	var body io.Reader = nil
37986	body, err := googleapi.WithoutDataWrapper.JSONReader(c.assignedtargetingoption)
37987	if err != nil {
37988		return nil, err
37989	}
37990	reqHeaders.Set("Content-Type", "application/json")
37991	c.urlParams_.Set("alt", alt)
37992	c.urlParams_.Set("prettyPrint", "false")
37993	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
37994	urls += "?" + c.urlParams_.Encode()
37995	req, err := http.NewRequest("POST", urls, body)
37996	if err != nil {
37997		return nil, err
37998	}
37999	req.Header = reqHeaders
38000	googleapi.Expand(req.URL, map[string]string{
38001		"partnerId":     strconv.FormatInt(c.partnerId, 10),
38002		"targetingType": c.targetingType,
38003	})
38004	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38005}
38006
38007// Do executes the "displayvideo.partners.targetingTypes.assignedTargetingOptions.create" call.
38008// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
38009// non-2xx status code is an error. Response headers are in either
38010// *AssignedTargetingOption.ServerResponse.Header or (if a response was
38011// returned at all) in error.(*googleapi.Error).Header. Use
38012// googleapi.IsNotModified to check whether the returned error was
38013// because http.StatusNotModified was returned.
38014func (c *PartnersTargetingTypesAssignedTargetingOptionsCreateCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
38015	gensupport.SetOptions(c.urlParams_, opts...)
38016	res, err := c.doRequest("json")
38017	if res != nil && res.StatusCode == http.StatusNotModified {
38018		if res.Body != nil {
38019			res.Body.Close()
38020		}
38021		return nil, &googleapi.Error{
38022			Code:   res.StatusCode,
38023			Header: res.Header,
38024		}
38025	}
38026	if err != nil {
38027		return nil, err
38028	}
38029	defer googleapi.CloseBody(res)
38030	if err := googleapi.CheckResponse(res); err != nil {
38031		return nil, err
38032	}
38033	ret := &AssignedTargetingOption{
38034		ServerResponse: googleapi.ServerResponse{
38035			Header:         res.Header,
38036			HTTPStatusCode: res.StatusCode,
38037		},
38038	}
38039	target := &ret
38040	if err := gensupport.DecodeResponse(target, res); err != nil {
38041		return nil, err
38042	}
38043	return ret, nil
38044	// {
38045	//   "description": "Assigns a targeting option to a partner. Returns the assigned targeting option if successful.",
38046	//   "flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
38047	//   "httpMethod": "POST",
38048	//   "id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.create",
38049	//   "parameterOrder": [
38050	//     "partnerId",
38051	//     "targetingType"
38052	//   ],
38053	//   "parameters": {
38054	//     "partnerId": {
38055	//       "description": "Required. The ID of the partner.",
38056	//       "format": "int64",
38057	//       "location": "path",
38058	//       "pattern": "^[^/]+$",
38059	//       "required": true,
38060	//       "type": "string"
38061	//     },
38062	//     "targetingType": {
38063	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`",
38064	//       "enum": [
38065	//         "TARGETING_TYPE_UNSPECIFIED",
38066	//         "TARGETING_TYPE_CHANNEL",
38067	//         "TARGETING_TYPE_APP_CATEGORY",
38068	//         "TARGETING_TYPE_APP",
38069	//         "TARGETING_TYPE_URL",
38070	//         "TARGETING_TYPE_DAY_AND_TIME",
38071	//         "TARGETING_TYPE_AGE_RANGE",
38072	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
38073	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
38074	//         "TARGETING_TYPE_GENDER",
38075	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
38076	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
38077	//         "TARGETING_TYPE_PARENTAL_STATUS",
38078	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
38079	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
38080	//         "TARGETING_TYPE_DEVICE_TYPE",
38081	//         "TARGETING_TYPE_AUDIENCE_GROUP",
38082	//         "TARGETING_TYPE_BROWSER",
38083	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
38084	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
38085	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
38086	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
38087	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
38088	//         "TARGETING_TYPE_ENVIRONMENT",
38089	//         "TARGETING_TYPE_CARRIER_AND_ISP",
38090	//         "TARGETING_TYPE_OPERATING_SYSTEM",
38091	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
38092	//         "TARGETING_TYPE_KEYWORD",
38093	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
38094	//         "TARGETING_TYPE_VIEWABILITY",
38095	//         "TARGETING_TYPE_CATEGORY",
38096	//         "TARGETING_TYPE_INVENTORY_SOURCE",
38097	//         "TARGETING_TYPE_LANGUAGE",
38098	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
38099	//         "TARGETING_TYPE_GEO_REGION",
38100	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
38101	//         "TARGETING_TYPE_EXCHANGE",
38102	//         "TARGETING_TYPE_SUB_EXCHANGE",
38103	//         "TARGETING_TYPE_POI",
38104	//         "TARGETING_TYPE_BUSINESS_CHAIN",
38105	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
38106	//         "TARGETING_TYPE_OMID"
38107	//       ],
38108	//       "enumDescriptions": [
38109	//         "Default value when type is not specified or is unknown in this version.",
38110	//         "Target a channel (a custom group of related websites or apps).",
38111	//         "Target an app category (for example, education or puzzle games).",
38112	//         "Target a specific app (for example, Angry Birds).",
38113	//         "Target a specific url (for example, quora.com).",
38114	//         "Target ads during a chosen time period on a specific day.",
38115	//         "Target ads to a specific age range (for example, 18-24).",
38116	//         "Target ads to the specified regions on a regional location list.",
38117	//         "Target ads to the specified points of interest on a proximity location list.",
38118	//         "Target ads to a specific gender (for example, female or male).",
38119	//         "Target a specific video player size for video ads.",
38120	//         "Target user rewarded content for video ads.",
38121	//         "Target ads to a specific parental status (for example, parent or not a parent).",
38122	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
38123	//         "Target ads in a specific content outstream position.",
38124	//         "Target ads to a specific device type (for example, tablet or connected TV).",
38125	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
38126	//         "Target ads to specific web browsers (for example, Chrome).",
38127	//         "Target ads to a specific household income range (for example, top 10%).",
38128	//         "Target ads in a specific on screen position.",
38129	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
38130	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
38131	//         "Filter website content by sensitive categories (for example, adult).",
38132	//         "Target ads to a specific environment (for example, web or app).",
38133	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
38134	//         "Target ads to a specific operating system (for example, macOS).",
38135	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
38136	//         "Target ads to a specific keyword (for example, dog or retriever).",
38137	//         "Target ads to a specific negative keyword list.",
38138	//         "Target ads to a specific viewability (for example, 80% viewable).",
38139	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
38140	//         "Purchase impressions from specific deals and auction packages.",
38141	//         "Target ads to a specific language (for example, English or Japanese).",
38142	//         "Target ads to ads.txt authorized sellers.",
38143	//         "Target ads to a specific regional location (for example, a city or state).",
38144	//         "Purchase impressions from a group of deals and auction packages.",
38145	//         "Purchase impressions from specific exchanges.",
38146	//         "Purchase impressions from specific sub-exchanges.",
38147	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
38148	//         "Target ads around locations of a business chain within a specific geo region.",
38149	//         "Target ads to a specific native content position.",
38150	//         "Target ads in an Open Measurement enabled inventory."
38151	//       ],
38152	//       "location": "path",
38153	//       "pattern": "^[^/]+$",
38154	//       "required": true,
38155	//       "type": "string"
38156	//     }
38157	//   },
38158	//   "path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
38159	//   "request": {
38160	//     "$ref": "AssignedTargetingOption"
38161	//   },
38162	//   "response": {
38163	//     "$ref": "AssignedTargetingOption"
38164	//   },
38165	//   "scopes": [
38166	//     "https://www.googleapis.com/auth/display-video"
38167	//   ]
38168	// }
38169
38170}
38171
38172// method id "displayvideo.partners.targetingTypes.assignedTargetingOptions.delete":
38173
38174type PartnersTargetingTypesAssignedTargetingOptionsDeleteCall struct {
38175	s                         *Service
38176	partnerId                 int64
38177	targetingType             string
38178	assignedTargetingOptionId string
38179	urlParams_                gensupport.URLParams
38180	ctx_                      context.Context
38181	header_                   http.Header
38182}
38183
38184// Delete: Deletes an assigned targeting option from a partner.
38185//
38186// - assignedTargetingOptionId: The ID of the assigned targeting option
38187//   to delete.
38188// - partnerId: The ID of the partner.
38189// - targetingType: Identifies the type of this assigned targeting
38190//   option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`.
38191func (r *PartnersTargetingTypesAssignedTargetingOptionsService) Delete(partnerId int64, targetingType string, assignedTargetingOptionId string) *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall {
38192	c := &PartnersTargetingTypesAssignedTargetingOptionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38193	c.partnerId = partnerId
38194	c.targetingType = targetingType
38195	c.assignedTargetingOptionId = assignedTargetingOptionId
38196	return c
38197}
38198
38199// Fields allows partial responses to be retrieved. See
38200// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38201// for more information.
38202func (c *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall) Fields(s ...googleapi.Field) *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall {
38203	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38204	return c
38205}
38206
38207// Context sets the context to be used in this call's Do method. Any
38208// pending HTTP request will be aborted if the provided context is
38209// canceled.
38210func (c *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall) Context(ctx context.Context) *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall {
38211	c.ctx_ = ctx
38212	return c
38213}
38214
38215// Header returns an http.Header that can be modified by the caller to
38216// add HTTP headers to the request.
38217func (c *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall) Header() http.Header {
38218	if c.header_ == nil {
38219		c.header_ = make(http.Header)
38220	}
38221	return c.header_
38222}
38223
38224func (c *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall) doRequest(alt string) (*http.Response, error) {
38225	reqHeaders := make(http.Header)
38226	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
38227	for k, v := range c.header_ {
38228		reqHeaders[k] = v
38229	}
38230	reqHeaders.Set("User-Agent", c.s.userAgent())
38231	var body io.Reader = nil
38232	c.urlParams_.Set("alt", alt)
38233	c.urlParams_.Set("prettyPrint", "false")
38234	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
38235	urls += "?" + c.urlParams_.Encode()
38236	req, err := http.NewRequest("DELETE", urls, body)
38237	if err != nil {
38238		return nil, err
38239	}
38240	req.Header = reqHeaders
38241	googleapi.Expand(req.URL, map[string]string{
38242		"partnerId":                 strconv.FormatInt(c.partnerId, 10),
38243		"targetingType":             c.targetingType,
38244		"assignedTargetingOptionId": c.assignedTargetingOptionId,
38245	})
38246	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38247}
38248
38249// Do executes the "displayvideo.partners.targetingTypes.assignedTargetingOptions.delete" call.
38250// Exactly one of *Empty or error will be non-nil. Any non-2xx status
38251// code is an error. Response headers are in either
38252// *Empty.ServerResponse.Header or (if a response was returned at all)
38253// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
38254// check whether the returned error was because http.StatusNotModified
38255// was returned.
38256func (c *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
38257	gensupport.SetOptions(c.urlParams_, opts...)
38258	res, err := c.doRequest("json")
38259	if res != nil && res.StatusCode == http.StatusNotModified {
38260		if res.Body != nil {
38261			res.Body.Close()
38262		}
38263		return nil, &googleapi.Error{
38264			Code:   res.StatusCode,
38265			Header: res.Header,
38266		}
38267	}
38268	if err != nil {
38269		return nil, err
38270	}
38271	defer googleapi.CloseBody(res)
38272	if err := googleapi.CheckResponse(res); err != nil {
38273		return nil, err
38274	}
38275	ret := &Empty{
38276		ServerResponse: googleapi.ServerResponse{
38277			Header:         res.Header,
38278			HTTPStatusCode: res.StatusCode,
38279		},
38280	}
38281	target := &ret
38282	if err := gensupport.DecodeResponse(target, res); err != nil {
38283		return nil, err
38284	}
38285	return ret, nil
38286	// {
38287	//   "description": "Deletes an assigned targeting option from a partner.",
38288	//   "flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
38289	//   "httpMethod": "DELETE",
38290	//   "id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.delete",
38291	//   "parameterOrder": [
38292	//     "partnerId",
38293	//     "targetingType",
38294	//     "assignedTargetingOptionId"
38295	//   ],
38296	//   "parameters": {
38297	//     "assignedTargetingOptionId": {
38298	//       "description": "Required. The ID of the assigned targeting option to delete.",
38299	//       "location": "path",
38300	//       "pattern": "^[^/]+$",
38301	//       "required": true,
38302	//       "type": "string"
38303	//     },
38304	//     "partnerId": {
38305	//       "description": "Required. The ID of the partner.",
38306	//       "format": "int64",
38307	//       "location": "path",
38308	//       "pattern": "^[^/]+$",
38309	//       "required": true,
38310	//       "type": "string"
38311	//     },
38312	//     "targetingType": {
38313	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`",
38314	//       "enum": [
38315	//         "TARGETING_TYPE_UNSPECIFIED",
38316	//         "TARGETING_TYPE_CHANNEL",
38317	//         "TARGETING_TYPE_APP_CATEGORY",
38318	//         "TARGETING_TYPE_APP",
38319	//         "TARGETING_TYPE_URL",
38320	//         "TARGETING_TYPE_DAY_AND_TIME",
38321	//         "TARGETING_TYPE_AGE_RANGE",
38322	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
38323	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
38324	//         "TARGETING_TYPE_GENDER",
38325	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
38326	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
38327	//         "TARGETING_TYPE_PARENTAL_STATUS",
38328	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
38329	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
38330	//         "TARGETING_TYPE_DEVICE_TYPE",
38331	//         "TARGETING_TYPE_AUDIENCE_GROUP",
38332	//         "TARGETING_TYPE_BROWSER",
38333	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
38334	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
38335	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
38336	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
38337	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
38338	//         "TARGETING_TYPE_ENVIRONMENT",
38339	//         "TARGETING_TYPE_CARRIER_AND_ISP",
38340	//         "TARGETING_TYPE_OPERATING_SYSTEM",
38341	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
38342	//         "TARGETING_TYPE_KEYWORD",
38343	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
38344	//         "TARGETING_TYPE_VIEWABILITY",
38345	//         "TARGETING_TYPE_CATEGORY",
38346	//         "TARGETING_TYPE_INVENTORY_SOURCE",
38347	//         "TARGETING_TYPE_LANGUAGE",
38348	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
38349	//         "TARGETING_TYPE_GEO_REGION",
38350	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
38351	//         "TARGETING_TYPE_EXCHANGE",
38352	//         "TARGETING_TYPE_SUB_EXCHANGE",
38353	//         "TARGETING_TYPE_POI",
38354	//         "TARGETING_TYPE_BUSINESS_CHAIN",
38355	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
38356	//         "TARGETING_TYPE_OMID"
38357	//       ],
38358	//       "enumDescriptions": [
38359	//         "Default value when type is not specified or is unknown in this version.",
38360	//         "Target a channel (a custom group of related websites or apps).",
38361	//         "Target an app category (for example, education or puzzle games).",
38362	//         "Target a specific app (for example, Angry Birds).",
38363	//         "Target a specific url (for example, quora.com).",
38364	//         "Target ads during a chosen time period on a specific day.",
38365	//         "Target ads to a specific age range (for example, 18-24).",
38366	//         "Target ads to the specified regions on a regional location list.",
38367	//         "Target ads to the specified points of interest on a proximity location list.",
38368	//         "Target ads to a specific gender (for example, female or male).",
38369	//         "Target a specific video player size for video ads.",
38370	//         "Target user rewarded content for video ads.",
38371	//         "Target ads to a specific parental status (for example, parent or not a parent).",
38372	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
38373	//         "Target ads in a specific content outstream position.",
38374	//         "Target ads to a specific device type (for example, tablet or connected TV).",
38375	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
38376	//         "Target ads to specific web browsers (for example, Chrome).",
38377	//         "Target ads to a specific household income range (for example, top 10%).",
38378	//         "Target ads in a specific on screen position.",
38379	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
38380	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
38381	//         "Filter website content by sensitive categories (for example, adult).",
38382	//         "Target ads to a specific environment (for example, web or app).",
38383	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
38384	//         "Target ads to a specific operating system (for example, macOS).",
38385	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
38386	//         "Target ads to a specific keyword (for example, dog or retriever).",
38387	//         "Target ads to a specific negative keyword list.",
38388	//         "Target ads to a specific viewability (for example, 80% viewable).",
38389	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
38390	//         "Purchase impressions from specific deals and auction packages.",
38391	//         "Target ads to a specific language (for example, English or Japanese).",
38392	//         "Target ads to ads.txt authorized sellers.",
38393	//         "Target ads to a specific regional location (for example, a city or state).",
38394	//         "Purchase impressions from a group of deals and auction packages.",
38395	//         "Purchase impressions from specific exchanges.",
38396	//         "Purchase impressions from specific sub-exchanges.",
38397	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
38398	//         "Target ads around locations of a business chain within a specific geo region.",
38399	//         "Target ads to a specific native content position.",
38400	//         "Target ads in an Open Measurement enabled inventory."
38401	//       ],
38402	//       "location": "path",
38403	//       "pattern": "^[^/]+$",
38404	//       "required": true,
38405	//       "type": "string"
38406	//     }
38407	//   },
38408	//   "path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
38409	//   "response": {
38410	//     "$ref": "Empty"
38411	//   },
38412	//   "scopes": [
38413	//     "https://www.googleapis.com/auth/display-video"
38414	//   ]
38415	// }
38416
38417}
38418
38419// method id "displayvideo.partners.targetingTypes.assignedTargetingOptions.get":
38420
38421type PartnersTargetingTypesAssignedTargetingOptionsGetCall struct {
38422	s                         *Service
38423	partnerId                 int64
38424	targetingType             string
38425	assignedTargetingOptionId string
38426	urlParams_                gensupport.URLParams
38427	ifNoneMatch_              string
38428	ctx_                      context.Context
38429	header_                   http.Header
38430}
38431
38432// Get: Gets a single targeting option assigned to a partner.
38433//
38434// - assignedTargetingOptionId: An identifier unique to the targeting
38435//   type in this partner that identifies the assigned targeting option
38436//   being requested.
38437// - partnerId: The ID of the partner.
38438// - targetingType: Identifies the type of this assigned targeting
38439//   option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`.
38440func (r *PartnersTargetingTypesAssignedTargetingOptionsService) Get(partnerId int64, targetingType string, assignedTargetingOptionId string) *PartnersTargetingTypesAssignedTargetingOptionsGetCall {
38441	c := &PartnersTargetingTypesAssignedTargetingOptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38442	c.partnerId = partnerId
38443	c.targetingType = targetingType
38444	c.assignedTargetingOptionId = assignedTargetingOptionId
38445	return c
38446}
38447
38448// Fields allows partial responses to be retrieved. See
38449// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38450// for more information.
38451func (c *PartnersTargetingTypesAssignedTargetingOptionsGetCall) Fields(s ...googleapi.Field) *PartnersTargetingTypesAssignedTargetingOptionsGetCall {
38452	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38453	return c
38454}
38455
38456// IfNoneMatch sets the optional parameter which makes the operation
38457// fail if the object's ETag matches the given value. This is useful for
38458// getting updates only after the object has changed since the last
38459// request. Use googleapi.IsNotModified to check whether the response
38460// error from Do is the result of In-None-Match.
38461func (c *PartnersTargetingTypesAssignedTargetingOptionsGetCall) IfNoneMatch(entityTag string) *PartnersTargetingTypesAssignedTargetingOptionsGetCall {
38462	c.ifNoneMatch_ = entityTag
38463	return c
38464}
38465
38466// Context sets the context to be used in this call's Do method. Any
38467// pending HTTP request will be aborted if the provided context is
38468// canceled.
38469func (c *PartnersTargetingTypesAssignedTargetingOptionsGetCall) Context(ctx context.Context) *PartnersTargetingTypesAssignedTargetingOptionsGetCall {
38470	c.ctx_ = ctx
38471	return c
38472}
38473
38474// Header returns an http.Header that can be modified by the caller to
38475// add HTTP headers to the request.
38476func (c *PartnersTargetingTypesAssignedTargetingOptionsGetCall) Header() http.Header {
38477	if c.header_ == nil {
38478		c.header_ = make(http.Header)
38479	}
38480	return c.header_
38481}
38482
38483func (c *PartnersTargetingTypesAssignedTargetingOptionsGetCall) doRequest(alt string) (*http.Response, error) {
38484	reqHeaders := make(http.Header)
38485	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
38486	for k, v := range c.header_ {
38487		reqHeaders[k] = v
38488	}
38489	reqHeaders.Set("User-Agent", c.s.userAgent())
38490	if c.ifNoneMatch_ != "" {
38491		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
38492	}
38493	var body io.Reader = nil
38494	c.urlParams_.Set("alt", alt)
38495	c.urlParams_.Set("prettyPrint", "false")
38496	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
38497	urls += "?" + c.urlParams_.Encode()
38498	req, err := http.NewRequest("GET", urls, body)
38499	if err != nil {
38500		return nil, err
38501	}
38502	req.Header = reqHeaders
38503	googleapi.Expand(req.URL, map[string]string{
38504		"partnerId":                 strconv.FormatInt(c.partnerId, 10),
38505		"targetingType":             c.targetingType,
38506		"assignedTargetingOptionId": c.assignedTargetingOptionId,
38507	})
38508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38509}
38510
38511// Do executes the "displayvideo.partners.targetingTypes.assignedTargetingOptions.get" call.
38512// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
38513// non-2xx status code is an error. Response headers are in either
38514// *AssignedTargetingOption.ServerResponse.Header or (if a response was
38515// returned at all) in error.(*googleapi.Error).Header. Use
38516// googleapi.IsNotModified to check whether the returned error was
38517// because http.StatusNotModified was returned.
38518func (c *PartnersTargetingTypesAssignedTargetingOptionsGetCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
38519	gensupport.SetOptions(c.urlParams_, opts...)
38520	res, err := c.doRequest("json")
38521	if res != nil && res.StatusCode == http.StatusNotModified {
38522		if res.Body != nil {
38523			res.Body.Close()
38524		}
38525		return nil, &googleapi.Error{
38526			Code:   res.StatusCode,
38527			Header: res.Header,
38528		}
38529	}
38530	if err != nil {
38531		return nil, err
38532	}
38533	defer googleapi.CloseBody(res)
38534	if err := googleapi.CheckResponse(res); err != nil {
38535		return nil, err
38536	}
38537	ret := &AssignedTargetingOption{
38538		ServerResponse: googleapi.ServerResponse{
38539			Header:         res.Header,
38540			HTTPStatusCode: res.StatusCode,
38541		},
38542	}
38543	target := &ret
38544	if err := gensupport.DecodeResponse(target, res); err != nil {
38545		return nil, err
38546	}
38547	return ret, nil
38548	// {
38549	//   "description": "Gets a single targeting option assigned to a partner.",
38550	//   "flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
38551	//   "httpMethod": "GET",
38552	//   "id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.get",
38553	//   "parameterOrder": [
38554	//     "partnerId",
38555	//     "targetingType",
38556	//     "assignedTargetingOptionId"
38557	//   ],
38558	//   "parameters": {
38559	//     "assignedTargetingOptionId": {
38560	//       "description": "Required. An identifier unique to the targeting type in this partner that identifies the assigned targeting option being requested.",
38561	//       "location": "path",
38562	//       "pattern": "^[^/]+$",
38563	//       "required": true,
38564	//       "type": "string"
38565	//     },
38566	//     "partnerId": {
38567	//       "description": "Required. The ID of the partner.",
38568	//       "format": "int64",
38569	//       "location": "path",
38570	//       "pattern": "^[^/]+$",
38571	//       "required": true,
38572	//       "type": "string"
38573	//     },
38574	//     "targetingType": {
38575	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`",
38576	//       "enum": [
38577	//         "TARGETING_TYPE_UNSPECIFIED",
38578	//         "TARGETING_TYPE_CHANNEL",
38579	//         "TARGETING_TYPE_APP_CATEGORY",
38580	//         "TARGETING_TYPE_APP",
38581	//         "TARGETING_TYPE_URL",
38582	//         "TARGETING_TYPE_DAY_AND_TIME",
38583	//         "TARGETING_TYPE_AGE_RANGE",
38584	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
38585	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
38586	//         "TARGETING_TYPE_GENDER",
38587	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
38588	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
38589	//         "TARGETING_TYPE_PARENTAL_STATUS",
38590	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
38591	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
38592	//         "TARGETING_TYPE_DEVICE_TYPE",
38593	//         "TARGETING_TYPE_AUDIENCE_GROUP",
38594	//         "TARGETING_TYPE_BROWSER",
38595	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
38596	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
38597	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
38598	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
38599	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
38600	//         "TARGETING_TYPE_ENVIRONMENT",
38601	//         "TARGETING_TYPE_CARRIER_AND_ISP",
38602	//         "TARGETING_TYPE_OPERATING_SYSTEM",
38603	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
38604	//         "TARGETING_TYPE_KEYWORD",
38605	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
38606	//         "TARGETING_TYPE_VIEWABILITY",
38607	//         "TARGETING_TYPE_CATEGORY",
38608	//         "TARGETING_TYPE_INVENTORY_SOURCE",
38609	//         "TARGETING_TYPE_LANGUAGE",
38610	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
38611	//         "TARGETING_TYPE_GEO_REGION",
38612	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
38613	//         "TARGETING_TYPE_EXCHANGE",
38614	//         "TARGETING_TYPE_SUB_EXCHANGE",
38615	//         "TARGETING_TYPE_POI",
38616	//         "TARGETING_TYPE_BUSINESS_CHAIN",
38617	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
38618	//         "TARGETING_TYPE_OMID"
38619	//       ],
38620	//       "enumDescriptions": [
38621	//         "Default value when type is not specified or is unknown in this version.",
38622	//         "Target a channel (a custom group of related websites or apps).",
38623	//         "Target an app category (for example, education or puzzle games).",
38624	//         "Target a specific app (for example, Angry Birds).",
38625	//         "Target a specific url (for example, quora.com).",
38626	//         "Target ads during a chosen time period on a specific day.",
38627	//         "Target ads to a specific age range (for example, 18-24).",
38628	//         "Target ads to the specified regions on a regional location list.",
38629	//         "Target ads to the specified points of interest on a proximity location list.",
38630	//         "Target ads to a specific gender (for example, female or male).",
38631	//         "Target a specific video player size for video ads.",
38632	//         "Target user rewarded content for video ads.",
38633	//         "Target ads to a specific parental status (for example, parent or not a parent).",
38634	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
38635	//         "Target ads in a specific content outstream position.",
38636	//         "Target ads to a specific device type (for example, tablet or connected TV).",
38637	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
38638	//         "Target ads to specific web browsers (for example, Chrome).",
38639	//         "Target ads to a specific household income range (for example, top 10%).",
38640	//         "Target ads in a specific on screen position.",
38641	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
38642	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
38643	//         "Filter website content by sensitive categories (for example, adult).",
38644	//         "Target ads to a specific environment (for example, web or app).",
38645	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
38646	//         "Target ads to a specific operating system (for example, macOS).",
38647	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
38648	//         "Target ads to a specific keyword (for example, dog or retriever).",
38649	//         "Target ads to a specific negative keyword list.",
38650	//         "Target ads to a specific viewability (for example, 80% viewable).",
38651	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
38652	//         "Purchase impressions from specific deals and auction packages.",
38653	//         "Target ads to a specific language (for example, English or Japanese).",
38654	//         "Target ads to ads.txt authorized sellers.",
38655	//         "Target ads to a specific regional location (for example, a city or state).",
38656	//         "Purchase impressions from a group of deals and auction packages.",
38657	//         "Purchase impressions from specific exchanges.",
38658	//         "Purchase impressions from specific sub-exchanges.",
38659	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
38660	//         "Target ads around locations of a business chain within a specific geo region.",
38661	//         "Target ads to a specific native content position.",
38662	//         "Target ads in an Open Measurement enabled inventory."
38663	//       ],
38664	//       "location": "path",
38665	//       "pattern": "^[^/]+$",
38666	//       "required": true,
38667	//       "type": "string"
38668	//     }
38669	//   },
38670	//   "path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
38671	//   "response": {
38672	//     "$ref": "AssignedTargetingOption"
38673	//   },
38674	//   "scopes": [
38675	//     "https://www.googleapis.com/auth/display-video"
38676	//   ]
38677	// }
38678
38679}
38680
38681// method id "displayvideo.partners.targetingTypes.assignedTargetingOptions.list":
38682
38683type PartnersTargetingTypesAssignedTargetingOptionsListCall struct {
38684	s             *Service
38685	partnerId     int64
38686	targetingType string
38687	urlParams_    gensupport.URLParams
38688	ifNoneMatch_  string
38689	ctx_          context.Context
38690	header_       http.Header
38691}
38692
38693// List: Lists the targeting options assigned to a partner.
38694//
38695// - partnerId: The ID of the partner.
38696// - targetingType: Identifies the type of assigned targeting options to
38697//   list. Supported targeting types: * `TARGETING_TYPE_CHANNEL`.
38698func (r *PartnersTargetingTypesAssignedTargetingOptionsService) List(partnerId int64, targetingType string) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
38699	c := &PartnersTargetingTypesAssignedTargetingOptionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38700	c.partnerId = partnerId
38701	c.targetingType = targetingType
38702	return c
38703}
38704
38705// Filter sets the optional parameter "filter": Allows filtering by
38706// assigned targeting option properties. Supported syntax: * Filter
38707// expressions are made up of one or more restrictions. * Restrictions
38708// can be combined by the logical operator `OR`. * A restriction has the
38709// form of `{field} {operator} {value}`. * The operator must be `EQUALS
38710// (=)`. * Supported fields: - `assignedTargetingOptionId` Examples: *
38711// AssignedTargetingOption with ID 123456
38712// `assignedTargetingOptionId="123456" The length of this field should
38713// be no more than 500 characters.
38714func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) Filter(filter string) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
38715	c.urlParams_.Set("filter", filter)
38716	return c
38717}
38718
38719// OrderBy sets the optional parameter "orderBy": Field by which to sort
38720// the list. Acceptable values are: * `assignedTargetingOptionId`
38721// (default) The default sorting order is ascending. To specify
38722// descending order for a field, a suffix "desc" should be added to the
38723// field name. Example: `assignedTargetingOptionId desc`.
38724func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) OrderBy(orderBy string) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
38725	c.urlParams_.Set("orderBy", orderBy)
38726	return c
38727}
38728
38729// PageSize sets the optional parameter "pageSize": Requested page size.
38730// Must be between `1` and `100`. If unspecified will default to `100`.
38731// Returns error code `INVALID_ARGUMENT` if an invalid value is
38732// specified.
38733func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) PageSize(pageSize int64) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
38734	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
38735	return c
38736}
38737
38738// PageToken sets the optional parameter "pageToken": A token
38739// identifying a page of results the server should return. Typically,
38740// this is the value of next_page_token returned from the previous call
38741// to `ListPartnerAssignedTargetingOptions` method. If not specified,
38742// the first page of results will be returned.
38743func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) PageToken(pageToken string) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
38744	c.urlParams_.Set("pageToken", pageToken)
38745	return c
38746}
38747
38748// Fields allows partial responses to be retrieved. See
38749// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38750// for more information.
38751func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) Fields(s ...googleapi.Field) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
38752	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38753	return c
38754}
38755
38756// IfNoneMatch sets the optional parameter which makes the operation
38757// fail if the object's ETag matches the given value. This is useful for
38758// getting updates only after the object has changed since the last
38759// request. Use googleapi.IsNotModified to check whether the response
38760// error from Do is the result of In-None-Match.
38761func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) IfNoneMatch(entityTag string) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
38762	c.ifNoneMatch_ = entityTag
38763	return c
38764}
38765
38766// Context sets the context to be used in this call's Do method. Any
38767// pending HTTP request will be aborted if the provided context is
38768// canceled.
38769func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) Context(ctx context.Context) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
38770	c.ctx_ = ctx
38771	return c
38772}
38773
38774// Header returns an http.Header that can be modified by the caller to
38775// add HTTP headers to the request.
38776func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) Header() http.Header {
38777	if c.header_ == nil {
38778		c.header_ = make(http.Header)
38779	}
38780	return c.header_
38781}
38782
38783func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) doRequest(alt string) (*http.Response, error) {
38784	reqHeaders := make(http.Header)
38785	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
38786	for k, v := range c.header_ {
38787		reqHeaders[k] = v
38788	}
38789	reqHeaders.Set("User-Agent", c.s.userAgent())
38790	if c.ifNoneMatch_ != "" {
38791		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
38792	}
38793	var body io.Reader = nil
38794	c.urlParams_.Set("alt", alt)
38795	c.urlParams_.Set("prettyPrint", "false")
38796	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
38797	urls += "?" + c.urlParams_.Encode()
38798	req, err := http.NewRequest("GET", urls, body)
38799	if err != nil {
38800		return nil, err
38801	}
38802	req.Header = reqHeaders
38803	googleapi.Expand(req.URL, map[string]string{
38804		"partnerId":     strconv.FormatInt(c.partnerId, 10),
38805		"targetingType": c.targetingType,
38806	})
38807	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38808}
38809
38810// Do executes the "displayvideo.partners.targetingTypes.assignedTargetingOptions.list" call.
38811// Exactly one of *ListPartnerAssignedTargetingOptionsResponse or error
38812// will be non-nil. Any non-2xx status code is an error. Response
38813// headers are in either
38814// *ListPartnerAssignedTargetingOptionsResponse.ServerResponse.Header or
38815// (if a response was returned at all) in
38816// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
38817// whether the returned error was because http.StatusNotModified was
38818// returned.
38819func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) Do(opts ...googleapi.CallOption) (*ListPartnerAssignedTargetingOptionsResponse, error) {
38820	gensupport.SetOptions(c.urlParams_, opts...)
38821	res, err := c.doRequest("json")
38822	if res != nil && res.StatusCode == http.StatusNotModified {
38823		if res.Body != nil {
38824			res.Body.Close()
38825		}
38826		return nil, &googleapi.Error{
38827			Code:   res.StatusCode,
38828			Header: res.Header,
38829		}
38830	}
38831	if err != nil {
38832		return nil, err
38833	}
38834	defer googleapi.CloseBody(res)
38835	if err := googleapi.CheckResponse(res); err != nil {
38836		return nil, err
38837	}
38838	ret := &ListPartnerAssignedTargetingOptionsResponse{
38839		ServerResponse: googleapi.ServerResponse{
38840			Header:         res.Header,
38841			HTTPStatusCode: res.StatusCode,
38842		},
38843	}
38844	target := &ret
38845	if err := gensupport.DecodeResponse(target, res); err != nil {
38846		return nil, err
38847	}
38848	return ret, nil
38849	// {
38850	//   "description": "Lists the targeting options assigned to a partner.",
38851	//   "flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
38852	//   "httpMethod": "GET",
38853	//   "id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.list",
38854	//   "parameterOrder": [
38855	//     "partnerId",
38856	//     "targetingType"
38857	//   ],
38858	//   "parameters": {
38859	//     "filter": {
38860	//       "description": "Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` Examples: * AssignedTargetingOption with ID 123456 `assignedTargetingOptionId=\"123456\"` The length of this field should be no more than 500 characters.",
38861	//       "location": "query",
38862	//       "type": "string"
38863	//     },
38864	//     "orderBy": {
38865	//       "description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.",
38866	//       "location": "query",
38867	//       "type": "string"
38868	//     },
38869	//     "pageSize": {
38870	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
38871	//       "format": "int32",
38872	//       "location": "query",
38873	//       "type": "integer"
38874	//     },
38875	//     "pageToken": {
38876	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListPartnerAssignedTargetingOptions` method. If not specified, the first page of results will be returned.",
38877	//       "location": "query",
38878	//       "type": "string"
38879	//     },
38880	//     "partnerId": {
38881	//       "description": "Required. The ID of the partner.",
38882	//       "format": "int64",
38883	//       "location": "path",
38884	//       "pattern": "^[^/]+$",
38885	//       "required": true,
38886	//       "type": "string"
38887	//     },
38888	//     "targetingType": {
38889	//       "description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL`",
38890	//       "enum": [
38891	//         "TARGETING_TYPE_UNSPECIFIED",
38892	//         "TARGETING_TYPE_CHANNEL",
38893	//         "TARGETING_TYPE_APP_CATEGORY",
38894	//         "TARGETING_TYPE_APP",
38895	//         "TARGETING_TYPE_URL",
38896	//         "TARGETING_TYPE_DAY_AND_TIME",
38897	//         "TARGETING_TYPE_AGE_RANGE",
38898	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
38899	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
38900	//         "TARGETING_TYPE_GENDER",
38901	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
38902	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
38903	//         "TARGETING_TYPE_PARENTAL_STATUS",
38904	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
38905	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
38906	//         "TARGETING_TYPE_DEVICE_TYPE",
38907	//         "TARGETING_TYPE_AUDIENCE_GROUP",
38908	//         "TARGETING_TYPE_BROWSER",
38909	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
38910	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
38911	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
38912	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
38913	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
38914	//         "TARGETING_TYPE_ENVIRONMENT",
38915	//         "TARGETING_TYPE_CARRIER_AND_ISP",
38916	//         "TARGETING_TYPE_OPERATING_SYSTEM",
38917	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
38918	//         "TARGETING_TYPE_KEYWORD",
38919	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
38920	//         "TARGETING_TYPE_VIEWABILITY",
38921	//         "TARGETING_TYPE_CATEGORY",
38922	//         "TARGETING_TYPE_INVENTORY_SOURCE",
38923	//         "TARGETING_TYPE_LANGUAGE",
38924	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
38925	//         "TARGETING_TYPE_GEO_REGION",
38926	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
38927	//         "TARGETING_TYPE_EXCHANGE",
38928	//         "TARGETING_TYPE_SUB_EXCHANGE",
38929	//         "TARGETING_TYPE_POI",
38930	//         "TARGETING_TYPE_BUSINESS_CHAIN",
38931	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
38932	//         "TARGETING_TYPE_OMID"
38933	//       ],
38934	//       "enumDescriptions": [
38935	//         "Default value when type is not specified or is unknown in this version.",
38936	//         "Target a channel (a custom group of related websites or apps).",
38937	//         "Target an app category (for example, education or puzzle games).",
38938	//         "Target a specific app (for example, Angry Birds).",
38939	//         "Target a specific url (for example, quora.com).",
38940	//         "Target ads during a chosen time period on a specific day.",
38941	//         "Target ads to a specific age range (for example, 18-24).",
38942	//         "Target ads to the specified regions on a regional location list.",
38943	//         "Target ads to the specified points of interest on a proximity location list.",
38944	//         "Target ads to a specific gender (for example, female or male).",
38945	//         "Target a specific video player size for video ads.",
38946	//         "Target user rewarded content for video ads.",
38947	//         "Target ads to a specific parental status (for example, parent or not a parent).",
38948	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
38949	//         "Target ads in a specific content outstream position.",
38950	//         "Target ads to a specific device type (for example, tablet or connected TV).",
38951	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
38952	//         "Target ads to specific web browsers (for example, Chrome).",
38953	//         "Target ads to a specific household income range (for example, top 10%).",
38954	//         "Target ads in a specific on screen position.",
38955	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
38956	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
38957	//         "Filter website content by sensitive categories (for example, adult).",
38958	//         "Target ads to a specific environment (for example, web or app).",
38959	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
38960	//         "Target ads to a specific operating system (for example, macOS).",
38961	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
38962	//         "Target ads to a specific keyword (for example, dog or retriever).",
38963	//         "Target ads to a specific negative keyword list.",
38964	//         "Target ads to a specific viewability (for example, 80% viewable).",
38965	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
38966	//         "Purchase impressions from specific deals and auction packages.",
38967	//         "Target ads to a specific language (for example, English or Japanese).",
38968	//         "Target ads to ads.txt authorized sellers.",
38969	//         "Target ads to a specific regional location (for example, a city or state).",
38970	//         "Purchase impressions from a group of deals and auction packages.",
38971	//         "Purchase impressions from specific exchanges.",
38972	//         "Purchase impressions from specific sub-exchanges.",
38973	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
38974	//         "Target ads around locations of a business chain within a specific geo region.",
38975	//         "Target ads to a specific native content position.",
38976	//         "Target ads in an Open Measurement enabled inventory."
38977	//       ],
38978	//       "location": "path",
38979	//       "pattern": "^[^/]+$",
38980	//       "required": true,
38981	//       "type": "string"
38982	//     }
38983	//   },
38984	//   "path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
38985	//   "response": {
38986	//     "$ref": "ListPartnerAssignedTargetingOptionsResponse"
38987	//   },
38988	//   "scopes": [
38989	//     "https://www.googleapis.com/auth/display-video"
38990	//   ]
38991	// }
38992
38993}
38994
38995// Pages invokes f for each page of results.
38996// A non-nil error returned from f will halt the iteration.
38997// The provided context supersedes any context provided to the Context method.
38998func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) Pages(ctx context.Context, f func(*ListPartnerAssignedTargetingOptionsResponse) error) error {
38999	c.ctx_ = ctx
39000	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
39001	for {
39002		x, err := c.Do()
39003		if err != nil {
39004			return err
39005		}
39006		if err := f(x); err != nil {
39007			return err
39008		}
39009		if x.NextPageToken == "" {
39010			return nil
39011		}
39012		c.PageToken(x.NextPageToken)
39013	}
39014}
39015
39016// method id "displayvideo.sdfdownloadtasks.create":
39017
39018type SdfdownloadtasksCreateCall struct {
39019	s                            *Service
39020	createsdfdownloadtaskrequest *CreateSdfDownloadTaskRequest
39021	urlParams_                   gensupport.URLParams
39022	ctx_                         context.Context
39023	header_                      http.Header
39024}
39025
39026// Create: Creates an SDF Download Task. Returns an Operation. An SDF
39027// Download Task is a long-running, asynchronous operation. The metadata
39028// type of this operation is SdfDownloadTaskMetadata. If the request is
39029// successful, the response type of the operation is SdfDownloadTask.
39030// The response will not include the download files, which must be
39031// retrieved with media.download. The state of operation can be
39032// retrieved with sdfdownloadtask.operations.get. Any errors can be
39033// found in the error.message. Note that error.details is expected to be
39034// empty.
39035func (r *SdfdownloadtasksService) Create(createsdfdownloadtaskrequest *CreateSdfDownloadTaskRequest) *SdfdownloadtasksCreateCall {
39036	c := &SdfdownloadtasksCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39037	c.createsdfdownloadtaskrequest = createsdfdownloadtaskrequest
39038	return c
39039}
39040
39041// Fields allows partial responses to be retrieved. See
39042// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39043// for more information.
39044func (c *SdfdownloadtasksCreateCall) Fields(s ...googleapi.Field) *SdfdownloadtasksCreateCall {
39045	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39046	return c
39047}
39048
39049// Context sets the context to be used in this call's Do method. Any
39050// pending HTTP request will be aborted if the provided context is
39051// canceled.
39052func (c *SdfdownloadtasksCreateCall) Context(ctx context.Context) *SdfdownloadtasksCreateCall {
39053	c.ctx_ = ctx
39054	return c
39055}
39056
39057// Header returns an http.Header that can be modified by the caller to
39058// add HTTP headers to the request.
39059func (c *SdfdownloadtasksCreateCall) Header() http.Header {
39060	if c.header_ == nil {
39061		c.header_ = make(http.Header)
39062	}
39063	return c.header_
39064}
39065
39066func (c *SdfdownloadtasksCreateCall) doRequest(alt string) (*http.Response, error) {
39067	reqHeaders := make(http.Header)
39068	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
39069	for k, v := range c.header_ {
39070		reqHeaders[k] = v
39071	}
39072	reqHeaders.Set("User-Agent", c.s.userAgent())
39073	var body io.Reader = nil
39074	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createsdfdownloadtaskrequest)
39075	if err != nil {
39076		return nil, err
39077	}
39078	reqHeaders.Set("Content-Type", "application/json")
39079	c.urlParams_.Set("alt", alt)
39080	c.urlParams_.Set("prettyPrint", "false")
39081	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/sdfdownloadtasks")
39082	urls += "?" + c.urlParams_.Encode()
39083	req, err := http.NewRequest("POST", urls, body)
39084	if err != nil {
39085		return nil, err
39086	}
39087	req.Header = reqHeaders
39088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39089}
39090
39091// Do executes the "displayvideo.sdfdownloadtasks.create" call.
39092// Exactly one of *Operation or error will be non-nil. Any non-2xx
39093// status code is an error. Response headers are in either
39094// *Operation.ServerResponse.Header or (if a response was returned at
39095// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39096// to check whether the returned error was because
39097// http.StatusNotModified was returned.
39098func (c *SdfdownloadtasksCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39099	gensupport.SetOptions(c.urlParams_, opts...)
39100	res, err := c.doRequest("json")
39101	if res != nil && res.StatusCode == http.StatusNotModified {
39102		if res.Body != nil {
39103			res.Body.Close()
39104		}
39105		return nil, &googleapi.Error{
39106			Code:   res.StatusCode,
39107			Header: res.Header,
39108		}
39109	}
39110	if err != nil {
39111		return nil, err
39112	}
39113	defer googleapi.CloseBody(res)
39114	if err := googleapi.CheckResponse(res); err != nil {
39115		return nil, err
39116	}
39117	ret := &Operation{
39118		ServerResponse: googleapi.ServerResponse{
39119			Header:         res.Header,
39120			HTTPStatusCode: res.StatusCode,
39121		},
39122	}
39123	target := &ret
39124	if err := gensupport.DecodeResponse(target, res); err != nil {
39125		return nil, err
39126	}
39127	return ret, nil
39128	// {
39129	//   "description": "Creates an SDF Download Task. Returns an Operation. An SDF Download Task is a long-running, asynchronous operation. The metadata type of this operation is SdfDownloadTaskMetadata. If the request is successful, the response type of the operation is SdfDownloadTask. The response will not include the download files, which must be retrieved with media.download. The state of operation can be retrieved with sdfdownloadtask.operations.get. Any errors can be found in the error.message. Note that error.details is expected to be empty.",
39130	//   "flatPath": "v1/sdfdownloadtasks",
39131	//   "httpMethod": "POST",
39132	//   "id": "displayvideo.sdfdownloadtasks.create",
39133	//   "parameterOrder": [],
39134	//   "parameters": {},
39135	//   "path": "v1/sdfdownloadtasks",
39136	//   "request": {
39137	//     "$ref": "CreateSdfDownloadTaskRequest"
39138	//   },
39139	//   "response": {
39140	//     "$ref": "Operation"
39141	//   },
39142	//   "scopes": [
39143	//     "https://www.googleapis.com/auth/display-video"
39144	//   ]
39145	// }
39146
39147}
39148
39149// method id "displayvideo.sdfdownloadtasks.operations.get":
39150
39151type SdfdownloadtasksOperationsGetCall struct {
39152	s            *Service
39153	name         string
39154	urlParams_   gensupport.URLParams
39155	ifNoneMatch_ string
39156	ctx_         context.Context
39157	header_      http.Header
39158}
39159
39160// Get: Gets the latest state of an asynchronous SDF download task
39161// operation. Clients should poll this method at intervals of 30
39162// seconds.
39163//
39164// - name: The name of the operation resource.
39165func (r *SdfdownloadtasksOperationsService) Get(name string) *SdfdownloadtasksOperationsGetCall {
39166	c := &SdfdownloadtasksOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39167	c.name = name
39168	return c
39169}
39170
39171// Fields allows partial responses to be retrieved. See
39172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39173// for more information.
39174func (c *SdfdownloadtasksOperationsGetCall) Fields(s ...googleapi.Field) *SdfdownloadtasksOperationsGetCall {
39175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39176	return c
39177}
39178
39179// IfNoneMatch sets the optional parameter which makes the operation
39180// fail if the object's ETag matches the given value. This is useful for
39181// getting updates only after the object has changed since the last
39182// request. Use googleapi.IsNotModified to check whether the response
39183// error from Do is the result of In-None-Match.
39184func (c *SdfdownloadtasksOperationsGetCall) IfNoneMatch(entityTag string) *SdfdownloadtasksOperationsGetCall {
39185	c.ifNoneMatch_ = entityTag
39186	return c
39187}
39188
39189// Context sets the context to be used in this call's Do method. Any
39190// pending HTTP request will be aborted if the provided context is
39191// canceled.
39192func (c *SdfdownloadtasksOperationsGetCall) Context(ctx context.Context) *SdfdownloadtasksOperationsGetCall {
39193	c.ctx_ = ctx
39194	return c
39195}
39196
39197// Header returns an http.Header that can be modified by the caller to
39198// add HTTP headers to the request.
39199func (c *SdfdownloadtasksOperationsGetCall) Header() http.Header {
39200	if c.header_ == nil {
39201		c.header_ = make(http.Header)
39202	}
39203	return c.header_
39204}
39205
39206func (c *SdfdownloadtasksOperationsGetCall) doRequest(alt string) (*http.Response, error) {
39207	reqHeaders := make(http.Header)
39208	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
39209	for k, v := range c.header_ {
39210		reqHeaders[k] = v
39211	}
39212	reqHeaders.Set("User-Agent", c.s.userAgent())
39213	if c.ifNoneMatch_ != "" {
39214		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
39215	}
39216	var body io.Reader = nil
39217	c.urlParams_.Set("alt", alt)
39218	c.urlParams_.Set("prettyPrint", "false")
39219	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
39220	urls += "?" + c.urlParams_.Encode()
39221	req, err := http.NewRequest("GET", urls, body)
39222	if err != nil {
39223		return nil, err
39224	}
39225	req.Header = reqHeaders
39226	googleapi.Expand(req.URL, map[string]string{
39227		"name": c.name,
39228	})
39229	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39230}
39231
39232// Do executes the "displayvideo.sdfdownloadtasks.operations.get" call.
39233// Exactly one of *Operation or error will be non-nil. Any non-2xx
39234// status code is an error. Response headers are in either
39235// *Operation.ServerResponse.Header or (if a response was returned at
39236// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39237// to check whether the returned error was because
39238// http.StatusNotModified was returned.
39239func (c *SdfdownloadtasksOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39240	gensupport.SetOptions(c.urlParams_, opts...)
39241	res, err := c.doRequest("json")
39242	if res != nil && res.StatusCode == http.StatusNotModified {
39243		if res.Body != nil {
39244			res.Body.Close()
39245		}
39246		return nil, &googleapi.Error{
39247			Code:   res.StatusCode,
39248			Header: res.Header,
39249		}
39250	}
39251	if err != nil {
39252		return nil, err
39253	}
39254	defer googleapi.CloseBody(res)
39255	if err := googleapi.CheckResponse(res); err != nil {
39256		return nil, err
39257	}
39258	ret := &Operation{
39259		ServerResponse: googleapi.ServerResponse{
39260			Header:         res.Header,
39261			HTTPStatusCode: res.StatusCode,
39262		},
39263	}
39264	target := &ret
39265	if err := gensupport.DecodeResponse(target, res); err != nil {
39266		return nil, err
39267	}
39268	return ret, nil
39269	// {
39270	//   "description": "Gets the latest state of an asynchronous SDF download task operation. Clients should poll this method at intervals of 30 seconds.",
39271	//   "flatPath": "v1/sdfdownloadtasks/operations/{operationsId}",
39272	//   "httpMethod": "GET",
39273	//   "id": "displayvideo.sdfdownloadtasks.operations.get",
39274	//   "parameterOrder": [
39275	//     "name"
39276	//   ],
39277	//   "parameters": {
39278	//     "name": {
39279	//       "description": "The name of the operation resource.",
39280	//       "location": "path",
39281	//       "pattern": "^sdfdownloadtasks/operations/[^/]+$",
39282	//       "required": true,
39283	//       "type": "string"
39284	//     }
39285	//   },
39286	//   "path": "v1/{+name}",
39287	//   "response": {
39288	//     "$ref": "Operation"
39289	//   },
39290	//   "scopes": [
39291	//     "https://www.googleapis.com/auth/display-video",
39292	//     "https://www.googleapis.com/auth/doubleclickbidmanager"
39293	//   ]
39294	// }
39295
39296}
39297
39298// method id "displayvideo.targetingTypes.targetingOptions.get":
39299
39300type TargetingTypesTargetingOptionsGetCall struct {
39301	s                 *Service
39302	targetingType     string
39303	targetingOptionId string
39304	urlParams_        gensupport.URLParams
39305	ifNoneMatch_      string
39306	ctx_              context.Context
39307	header_           http.Header
39308}
39309
39310// Get: Gets a single targeting option.
39311//
39312// - targetingOptionId: The ID of the of targeting option to retrieve.
39313// - targetingType: The type of targeting option to retrieve.
39314func (r *TargetingTypesTargetingOptionsService) Get(targetingType string, targetingOptionId string) *TargetingTypesTargetingOptionsGetCall {
39315	c := &TargetingTypesTargetingOptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39316	c.targetingType = targetingType
39317	c.targetingOptionId = targetingOptionId
39318	return c
39319}
39320
39321// AdvertiserId sets the optional parameter "advertiserId": Required.
39322// The Advertiser this request is being made in the context of.
39323func (c *TargetingTypesTargetingOptionsGetCall) AdvertiserId(advertiserId int64) *TargetingTypesTargetingOptionsGetCall {
39324	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
39325	return c
39326}
39327
39328// Fields allows partial responses to be retrieved. See
39329// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39330// for more information.
39331func (c *TargetingTypesTargetingOptionsGetCall) Fields(s ...googleapi.Field) *TargetingTypesTargetingOptionsGetCall {
39332	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39333	return c
39334}
39335
39336// IfNoneMatch sets the optional parameter which makes the operation
39337// fail if the object's ETag matches the given value. This is useful for
39338// getting updates only after the object has changed since the last
39339// request. Use googleapi.IsNotModified to check whether the response
39340// error from Do is the result of In-None-Match.
39341func (c *TargetingTypesTargetingOptionsGetCall) IfNoneMatch(entityTag string) *TargetingTypesTargetingOptionsGetCall {
39342	c.ifNoneMatch_ = entityTag
39343	return c
39344}
39345
39346// Context sets the context to be used in this call's Do method. Any
39347// pending HTTP request will be aborted if the provided context is
39348// canceled.
39349func (c *TargetingTypesTargetingOptionsGetCall) Context(ctx context.Context) *TargetingTypesTargetingOptionsGetCall {
39350	c.ctx_ = ctx
39351	return c
39352}
39353
39354// Header returns an http.Header that can be modified by the caller to
39355// add HTTP headers to the request.
39356func (c *TargetingTypesTargetingOptionsGetCall) Header() http.Header {
39357	if c.header_ == nil {
39358		c.header_ = make(http.Header)
39359	}
39360	return c.header_
39361}
39362
39363func (c *TargetingTypesTargetingOptionsGetCall) doRequest(alt string) (*http.Response, error) {
39364	reqHeaders := make(http.Header)
39365	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
39366	for k, v := range c.header_ {
39367		reqHeaders[k] = v
39368	}
39369	reqHeaders.Set("User-Agent", c.s.userAgent())
39370	if c.ifNoneMatch_ != "" {
39371		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
39372	}
39373	var body io.Reader = nil
39374	c.urlParams_.Set("alt", alt)
39375	c.urlParams_.Set("prettyPrint", "false")
39376	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/targetingTypes/{+targetingType}/targetingOptions/{+targetingOptionId}")
39377	urls += "?" + c.urlParams_.Encode()
39378	req, err := http.NewRequest("GET", urls, body)
39379	if err != nil {
39380		return nil, err
39381	}
39382	req.Header = reqHeaders
39383	googleapi.Expand(req.URL, map[string]string{
39384		"targetingType":     c.targetingType,
39385		"targetingOptionId": c.targetingOptionId,
39386	})
39387	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39388}
39389
39390// Do executes the "displayvideo.targetingTypes.targetingOptions.get" call.
39391// Exactly one of *TargetingOption or error will be non-nil. Any non-2xx
39392// status code is an error. Response headers are in either
39393// *TargetingOption.ServerResponse.Header or (if a response was returned
39394// at all) in error.(*googleapi.Error).Header. Use
39395// googleapi.IsNotModified to check whether the returned error was
39396// because http.StatusNotModified was returned.
39397func (c *TargetingTypesTargetingOptionsGetCall) Do(opts ...googleapi.CallOption) (*TargetingOption, error) {
39398	gensupport.SetOptions(c.urlParams_, opts...)
39399	res, err := c.doRequest("json")
39400	if res != nil && res.StatusCode == http.StatusNotModified {
39401		if res.Body != nil {
39402			res.Body.Close()
39403		}
39404		return nil, &googleapi.Error{
39405			Code:   res.StatusCode,
39406			Header: res.Header,
39407		}
39408	}
39409	if err != nil {
39410		return nil, err
39411	}
39412	defer googleapi.CloseBody(res)
39413	if err := googleapi.CheckResponse(res); err != nil {
39414		return nil, err
39415	}
39416	ret := &TargetingOption{
39417		ServerResponse: googleapi.ServerResponse{
39418			Header:         res.Header,
39419			HTTPStatusCode: res.StatusCode,
39420		},
39421	}
39422	target := &ret
39423	if err := gensupport.DecodeResponse(target, res); err != nil {
39424		return nil, err
39425	}
39426	return ret, nil
39427	// {
39428	//   "description": "Gets a single targeting option.",
39429	//   "flatPath": "v1/targetingTypes/{targetingTypesId}/targetingOptions/{targetingOptionsId}",
39430	//   "httpMethod": "GET",
39431	//   "id": "displayvideo.targetingTypes.targetingOptions.get",
39432	//   "parameterOrder": [
39433	//     "targetingType",
39434	//     "targetingOptionId"
39435	//   ],
39436	//   "parameters": {
39437	//     "advertiserId": {
39438	//       "description": "Required. The Advertiser this request is being made in the context of.",
39439	//       "format": "int64",
39440	//       "location": "query",
39441	//       "type": "string"
39442	//     },
39443	//     "targetingOptionId": {
39444	//       "description": "Required. The ID of the of targeting option to retrieve.",
39445	//       "location": "path",
39446	//       "pattern": "^[^/]+$",
39447	//       "required": true,
39448	//       "type": "string"
39449	//     },
39450	//     "targetingType": {
39451	//       "description": "Required. The type of targeting option to retrieve.",
39452	//       "enum": [
39453	//         "TARGETING_TYPE_UNSPECIFIED",
39454	//         "TARGETING_TYPE_CHANNEL",
39455	//         "TARGETING_TYPE_APP_CATEGORY",
39456	//         "TARGETING_TYPE_APP",
39457	//         "TARGETING_TYPE_URL",
39458	//         "TARGETING_TYPE_DAY_AND_TIME",
39459	//         "TARGETING_TYPE_AGE_RANGE",
39460	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
39461	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
39462	//         "TARGETING_TYPE_GENDER",
39463	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
39464	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
39465	//         "TARGETING_TYPE_PARENTAL_STATUS",
39466	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
39467	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
39468	//         "TARGETING_TYPE_DEVICE_TYPE",
39469	//         "TARGETING_TYPE_AUDIENCE_GROUP",
39470	//         "TARGETING_TYPE_BROWSER",
39471	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
39472	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
39473	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
39474	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
39475	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
39476	//         "TARGETING_TYPE_ENVIRONMENT",
39477	//         "TARGETING_TYPE_CARRIER_AND_ISP",
39478	//         "TARGETING_TYPE_OPERATING_SYSTEM",
39479	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
39480	//         "TARGETING_TYPE_KEYWORD",
39481	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
39482	//         "TARGETING_TYPE_VIEWABILITY",
39483	//         "TARGETING_TYPE_CATEGORY",
39484	//         "TARGETING_TYPE_INVENTORY_SOURCE",
39485	//         "TARGETING_TYPE_LANGUAGE",
39486	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
39487	//         "TARGETING_TYPE_GEO_REGION",
39488	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
39489	//         "TARGETING_TYPE_EXCHANGE",
39490	//         "TARGETING_TYPE_SUB_EXCHANGE",
39491	//         "TARGETING_TYPE_POI",
39492	//         "TARGETING_TYPE_BUSINESS_CHAIN",
39493	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
39494	//         "TARGETING_TYPE_OMID"
39495	//       ],
39496	//       "enumDescriptions": [
39497	//         "Default value when type is not specified or is unknown in this version.",
39498	//         "Target a channel (a custom group of related websites or apps).",
39499	//         "Target an app category (for example, education or puzzle games).",
39500	//         "Target a specific app (for example, Angry Birds).",
39501	//         "Target a specific url (for example, quora.com).",
39502	//         "Target ads during a chosen time period on a specific day.",
39503	//         "Target ads to a specific age range (for example, 18-24).",
39504	//         "Target ads to the specified regions on a regional location list.",
39505	//         "Target ads to the specified points of interest on a proximity location list.",
39506	//         "Target ads to a specific gender (for example, female or male).",
39507	//         "Target a specific video player size for video ads.",
39508	//         "Target user rewarded content for video ads.",
39509	//         "Target ads to a specific parental status (for example, parent or not a parent).",
39510	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
39511	//         "Target ads in a specific content outstream position.",
39512	//         "Target ads to a specific device type (for example, tablet or connected TV).",
39513	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
39514	//         "Target ads to specific web browsers (for example, Chrome).",
39515	//         "Target ads to a specific household income range (for example, top 10%).",
39516	//         "Target ads in a specific on screen position.",
39517	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
39518	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
39519	//         "Filter website content by sensitive categories (for example, adult).",
39520	//         "Target ads to a specific environment (for example, web or app).",
39521	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
39522	//         "Target ads to a specific operating system (for example, macOS).",
39523	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
39524	//         "Target ads to a specific keyword (for example, dog or retriever).",
39525	//         "Target ads to a specific negative keyword list.",
39526	//         "Target ads to a specific viewability (for example, 80% viewable).",
39527	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
39528	//         "Purchase impressions from specific deals and auction packages.",
39529	//         "Target ads to a specific language (for example, English or Japanese).",
39530	//         "Target ads to ads.txt authorized sellers.",
39531	//         "Target ads to a specific regional location (for example, a city or state).",
39532	//         "Purchase impressions from a group of deals and auction packages.",
39533	//         "Purchase impressions from specific exchanges.",
39534	//         "Purchase impressions from specific sub-exchanges.",
39535	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
39536	//         "Target ads around locations of a business chain within a specific geo region.",
39537	//         "Target ads to a specific native content position.",
39538	//         "Target ads in an Open Measurement enabled inventory."
39539	//       ],
39540	//       "location": "path",
39541	//       "pattern": "^[^/]+$",
39542	//       "required": true,
39543	//       "type": "string"
39544	//     }
39545	//   },
39546	//   "path": "v1/targetingTypes/{+targetingType}/targetingOptions/{+targetingOptionId}",
39547	//   "response": {
39548	//     "$ref": "TargetingOption"
39549	//   },
39550	//   "scopes": [
39551	//     "https://www.googleapis.com/auth/display-video"
39552	//   ]
39553	// }
39554
39555}
39556
39557// method id "displayvideo.targetingTypes.targetingOptions.list":
39558
39559type TargetingTypesTargetingOptionsListCall struct {
39560	s             *Service
39561	targetingType string
39562	urlParams_    gensupport.URLParams
39563	ifNoneMatch_  string
39564	ctx_          context.Context
39565	header_       http.Header
39566}
39567
39568// List: Lists targeting options of a given type.
39569//
39570// - targetingType: The type of targeting option to be listed.
39571func (r *TargetingTypesTargetingOptionsService) List(targetingType string) *TargetingTypesTargetingOptionsListCall {
39572	c := &TargetingTypesTargetingOptionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39573	c.targetingType = targetingType
39574	return c
39575}
39576
39577// AdvertiserId sets the optional parameter "advertiserId": Required.
39578// The Advertiser this request is being made in the context of.
39579func (c *TargetingTypesTargetingOptionsListCall) AdvertiserId(advertiserId int64) *TargetingTypesTargetingOptionsListCall {
39580	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
39581	return c
39582}
39583
39584// Filter sets the optional parameter "filter": Allows filtering by
39585// targeting option properties. Supported syntax: * Filter expressions
39586// are made up of one or more restrictions. * Restrictions can be
39587// combined by `OR` logical operators. * A restriction has the form of
39588// `{field} {operator} {value}`. * The operator must be "=" (equal
39589// sign). * Supported fields: - `carrierAndIspDetails.type` -
39590// `geoRegionDetails.geoRegionType` - `targetingOptionId` Examples: *
39591// All `GEO REGION` targeting options that belong to sub type
39592// `GEO_REGION_TYPE_COUNTRY` or `GEO_REGION_TYPE_STATE`:
39593// `geoRegionDetails.geoRegionType="GEO_REGION_TYPE_COUNTRY" OR
39594// geoRegionDetails.geoRegionType="GEO_REGION_TYPE_STATE" * All
39595// `CARRIER AND ISP` targeting options that belong to sub type
39596// `CARRIER_AND_ISP_TYPE_CARRIER`:
39597// `carrierAndIspDetails.type="CARRIER_AND_ISP_TYPE_CARRIER". The
39598// length of this field should be no more than 500 characters.
39599func (c *TargetingTypesTargetingOptionsListCall) Filter(filter string) *TargetingTypesTargetingOptionsListCall {
39600	c.urlParams_.Set("filter", filter)
39601	return c
39602}
39603
39604// OrderBy sets the optional parameter "orderBy": Field by which to sort
39605// the list. Acceptable values are: * `targetingOptionId` (default) The
39606// default sorting order is ascending. To specify descending order for a
39607// field, a suffix "desc" should be added to the field name. Example:
39608// `targetingOptionId desc`.
39609func (c *TargetingTypesTargetingOptionsListCall) OrderBy(orderBy string) *TargetingTypesTargetingOptionsListCall {
39610	c.urlParams_.Set("orderBy", orderBy)
39611	return c
39612}
39613
39614// PageSize sets the optional parameter "pageSize": Requested page size.
39615// Must be between `1` and `100`. If unspecified will default to `100`.
39616// Returns error code `INVALID_ARGUMENT` if an invalid value is
39617// specified.
39618func (c *TargetingTypesTargetingOptionsListCall) PageSize(pageSize int64) *TargetingTypesTargetingOptionsListCall {
39619	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
39620	return c
39621}
39622
39623// PageToken sets the optional parameter "pageToken": A token
39624// identifying a page of results the server should return. Typically,
39625// this is the value of next_page_token returned from the previous call
39626// to `ListTargetingOptions` method. If not specified, the first page of
39627// results will be returned.
39628func (c *TargetingTypesTargetingOptionsListCall) PageToken(pageToken string) *TargetingTypesTargetingOptionsListCall {
39629	c.urlParams_.Set("pageToken", pageToken)
39630	return c
39631}
39632
39633// Fields allows partial responses to be retrieved. See
39634// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39635// for more information.
39636func (c *TargetingTypesTargetingOptionsListCall) Fields(s ...googleapi.Field) *TargetingTypesTargetingOptionsListCall {
39637	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39638	return c
39639}
39640
39641// IfNoneMatch sets the optional parameter which makes the operation
39642// fail if the object's ETag matches the given value. This is useful for
39643// getting updates only after the object has changed since the last
39644// request. Use googleapi.IsNotModified to check whether the response
39645// error from Do is the result of In-None-Match.
39646func (c *TargetingTypesTargetingOptionsListCall) IfNoneMatch(entityTag string) *TargetingTypesTargetingOptionsListCall {
39647	c.ifNoneMatch_ = entityTag
39648	return c
39649}
39650
39651// Context sets the context to be used in this call's Do method. Any
39652// pending HTTP request will be aborted if the provided context is
39653// canceled.
39654func (c *TargetingTypesTargetingOptionsListCall) Context(ctx context.Context) *TargetingTypesTargetingOptionsListCall {
39655	c.ctx_ = ctx
39656	return c
39657}
39658
39659// Header returns an http.Header that can be modified by the caller to
39660// add HTTP headers to the request.
39661func (c *TargetingTypesTargetingOptionsListCall) Header() http.Header {
39662	if c.header_ == nil {
39663		c.header_ = make(http.Header)
39664	}
39665	return c.header_
39666}
39667
39668func (c *TargetingTypesTargetingOptionsListCall) doRequest(alt string) (*http.Response, error) {
39669	reqHeaders := make(http.Header)
39670	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
39671	for k, v := range c.header_ {
39672		reqHeaders[k] = v
39673	}
39674	reqHeaders.Set("User-Agent", c.s.userAgent())
39675	if c.ifNoneMatch_ != "" {
39676		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
39677	}
39678	var body io.Reader = nil
39679	c.urlParams_.Set("alt", alt)
39680	c.urlParams_.Set("prettyPrint", "false")
39681	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/targetingTypes/{+targetingType}/targetingOptions")
39682	urls += "?" + c.urlParams_.Encode()
39683	req, err := http.NewRequest("GET", urls, body)
39684	if err != nil {
39685		return nil, err
39686	}
39687	req.Header = reqHeaders
39688	googleapi.Expand(req.URL, map[string]string{
39689		"targetingType": c.targetingType,
39690	})
39691	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39692}
39693
39694// Do executes the "displayvideo.targetingTypes.targetingOptions.list" call.
39695// Exactly one of *ListTargetingOptionsResponse or error will be
39696// non-nil. Any non-2xx status code is an error. Response headers are in
39697// either *ListTargetingOptionsResponse.ServerResponse.Header or (if a
39698// response was returned at all) in error.(*googleapi.Error).Header. Use
39699// googleapi.IsNotModified to check whether the returned error was
39700// because http.StatusNotModified was returned.
39701func (c *TargetingTypesTargetingOptionsListCall) Do(opts ...googleapi.CallOption) (*ListTargetingOptionsResponse, error) {
39702	gensupport.SetOptions(c.urlParams_, opts...)
39703	res, err := c.doRequest("json")
39704	if res != nil && res.StatusCode == http.StatusNotModified {
39705		if res.Body != nil {
39706			res.Body.Close()
39707		}
39708		return nil, &googleapi.Error{
39709			Code:   res.StatusCode,
39710			Header: res.Header,
39711		}
39712	}
39713	if err != nil {
39714		return nil, err
39715	}
39716	defer googleapi.CloseBody(res)
39717	if err := googleapi.CheckResponse(res); err != nil {
39718		return nil, err
39719	}
39720	ret := &ListTargetingOptionsResponse{
39721		ServerResponse: googleapi.ServerResponse{
39722			Header:         res.Header,
39723			HTTPStatusCode: res.StatusCode,
39724		},
39725	}
39726	target := &ret
39727	if err := gensupport.DecodeResponse(target, res); err != nil {
39728		return nil, err
39729	}
39730	return ret, nil
39731	// {
39732	//   "description": "Lists targeting options of a given type.",
39733	//   "flatPath": "v1/targetingTypes/{targetingTypesId}/targetingOptions",
39734	//   "httpMethod": "GET",
39735	//   "id": "displayvideo.targetingTypes.targetingOptions.list",
39736	//   "parameterOrder": [
39737	//     "targetingType"
39738	//   ],
39739	//   "parameters": {
39740	//     "advertiserId": {
39741	//       "description": "Required. The Advertiser this request is being made in the context of.",
39742	//       "format": "int64",
39743	//       "location": "query",
39744	//       "type": "string"
39745	//     },
39746	//     "filter": {
39747	//       "description": "Allows filtering by targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `OR` logical operators. * A restriction has the form of `{field} {operator} {value}`. * The operator must be \"=\" (equal sign). * Supported fields: - `carrierAndIspDetails.type` - `geoRegionDetails.geoRegionType` - `targetingOptionId` Examples: * All `GEO REGION` targeting options that belong to sub type `GEO_REGION_TYPE_COUNTRY` or `GEO_REGION_TYPE_STATE`: `geoRegionDetails.geoRegionType=\"GEO_REGION_TYPE_COUNTRY\" OR geoRegionDetails.geoRegionType=\"GEO_REGION_TYPE_STATE\"` * All `CARRIER AND ISP` targeting options that belong to sub type `CARRIER_AND_ISP_TYPE_CARRIER`: `carrierAndIspDetails.type=\"CARRIER_AND_ISP_TYPE_CARRIER\"`. The length of this field should be no more than 500 characters.",
39748	//       "location": "query",
39749	//       "type": "string"
39750	//     },
39751	//     "orderBy": {
39752	//       "description": "Field by which to sort the list. Acceptable values are: * `targetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingOptionId desc`.",
39753	//       "location": "query",
39754	//       "type": "string"
39755	//     },
39756	//     "pageSize": {
39757	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.",
39758	//       "format": "int32",
39759	//       "location": "query",
39760	//       "type": "integer"
39761	//     },
39762	//     "pageToken": {
39763	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListTargetingOptions` method. If not specified, the first page of results will be returned.",
39764	//       "location": "query",
39765	//       "type": "string"
39766	//     },
39767	//     "targetingType": {
39768	//       "description": "Required. The type of targeting option to be listed.",
39769	//       "enum": [
39770	//         "TARGETING_TYPE_UNSPECIFIED",
39771	//         "TARGETING_TYPE_CHANNEL",
39772	//         "TARGETING_TYPE_APP_CATEGORY",
39773	//         "TARGETING_TYPE_APP",
39774	//         "TARGETING_TYPE_URL",
39775	//         "TARGETING_TYPE_DAY_AND_TIME",
39776	//         "TARGETING_TYPE_AGE_RANGE",
39777	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
39778	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
39779	//         "TARGETING_TYPE_GENDER",
39780	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
39781	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
39782	//         "TARGETING_TYPE_PARENTAL_STATUS",
39783	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
39784	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
39785	//         "TARGETING_TYPE_DEVICE_TYPE",
39786	//         "TARGETING_TYPE_AUDIENCE_GROUP",
39787	//         "TARGETING_TYPE_BROWSER",
39788	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
39789	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
39790	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
39791	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
39792	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
39793	//         "TARGETING_TYPE_ENVIRONMENT",
39794	//         "TARGETING_TYPE_CARRIER_AND_ISP",
39795	//         "TARGETING_TYPE_OPERATING_SYSTEM",
39796	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
39797	//         "TARGETING_TYPE_KEYWORD",
39798	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
39799	//         "TARGETING_TYPE_VIEWABILITY",
39800	//         "TARGETING_TYPE_CATEGORY",
39801	//         "TARGETING_TYPE_INVENTORY_SOURCE",
39802	//         "TARGETING_TYPE_LANGUAGE",
39803	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
39804	//         "TARGETING_TYPE_GEO_REGION",
39805	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
39806	//         "TARGETING_TYPE_EXCHANGE",
39807	//         "TARGETING_TYPE_SUB_EXCHANGE",
39808	//         "TARGETING_TYPE_POI",
39809	//         "TARGETING_TYPE_BUSINESS_CHAIN",
39810	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
39811	//         "TARGETING_TYPE_OMID"
39812	//       ],
39813	//       "enumDescriptions": [
39814	//         "Default value when type is not specified or is unknown in this version.",
39815	//         "Target a channel (a custom group of related websites or apps).",
39816	//         "Target an app category (for example, education or puzzle games).",
39817	//         "Target a specific app (for example, Angry Birds).",
39818	//         "Target a specific url (for example, quora.com).",
39819	//         "Target ads during a chosen time period on a specific day.",
39820	//         "Target ads to a specific age range (for example, 18-24).",
39821	//         "Target ads to the specified regions on a regional location list.",
39822	//         "Target ads to the specified points of interest on a proximity location list.",
39823	//         "Target ads to a specific gender (for example, female or male).",
39824	//         "Target a specific video player size for video ads.",
39825	//         "Target user rewarded content for video ads.",
39826	//         "Target ads to a specific parental status (for example, parent or not a parent).",
39827	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
39828	//         "Target ads in a specific content outstream position.",
39829	//         "Target ads to a specific device type (for example, tablet or connected TV).",
39830	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
39831	//         "Target ads to specific web browsers (for example, Chrome).",
39832	//         "Target ads to a specific household income range (for example, top 10%).",
39833	//         "Target ads in a specific on screen position.",
39834	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
39835	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
39836	//         "Filter website content by sensitive categories (for example, adult).",
39837	//         "Target ads to a specific environment (for example, web or app).",
39838	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
39839	//         "Target ads to a specific operating system (for example, macOS).",
39840	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
39841	//         "Target ads to a specific keyword (for example, dog or retriever).",
39842	//         "Target ads to a specific negative keyword list.",
39843	//         "Target ads to a specific viewability (for example, 80% viewable).",
39844	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
39845	//         "Purchase impressions from specific deals and auction packages.",
39846	//         "Target ads to a specific language (for example, English or Japanese).",
39847	//         "Target ads to ads.txt authorized sellers.",
39848	//         "Target ads to a specific regional location (for example, a city or state).",
39849	//         "Purchase impressions from a group of deals and auction packages.",
39850	//         "Purchase impressions from specific exchanges.",
39851	//         "Purchase impressions from specific sub-exchanges.",
39852	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
39853	//         "Target ads around locations of a business chain within a specific geo region.",
39854	//         "Target ads to a specific native content position.",
39855	//         "Target ads in an Open Measurement enabled inventory."
39856	//       ],
39857	//       "location": "path",
39858	//       "pattern": "^[^/]+$",
39859	//       "required": true,
39860	//       "type": "string"
39861	//     }
39862	//   },
39863	//   "path": "v1/targetingTypes/{+targetingType}/targetingOptions",
39864	//   "response": {
39865	//     "$ref": "ListTargetingOptionsResponse"
39866	//   },
39867	//   "scopes": [
39868	//     "https://www.googleapis.com/auth/display-video"
39869	//   ]
39870	// }
39871
39872}
39873
39874// Pages invokes f for each page of results.
39875// A non-nil error returned from f will halt the iteration.
39876// The provided context supersedes any context provided to the Context method.
39877func (c *TargetingTypesTargetingOptionsListCall) Pages(ctx context.Context, f func(*ListTargetingOptionsResponse) error) error {
39878	c.ctx_ = ctx
39879	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
39880	for {
39881		x, err := c.Do()
39882		if err != nil {
39883			return err
39884		}
39885		if err := f(x); err != nil {
39886			return err
39887		}
39888		if x.NextPageToken == "" {
39889			return nil
39890		}
39891		c.PageToken(x.NextPageToken)
39892	}
39893}
39894
39895// method id "displayvideo.targetingTypes.targetingOptions.search":
39896
39897type TargetingTypesTargetingOptionsSearchCall struct {
39898	s                             *Service
39899	targetingType                 string
39900	searchtargetingoptionsrequest *SearchTargetingOptionsRequest
39901	urlParams_                    gensupport.URLParams
39902	ctx_                          context.Context
39903	header_                       http.Header
39904}
39905
39906// Search: Searches for targeting options of a given type based on the
39907// given search terms.
39908//
39909// - targetingType: The type of targeting options to retrieve. Accepted
39910//   values are: * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_POI` *
39911//   `TARGETING_TYPE_BUSINESS_CHAIN`.
39912func (r *TargetingTypesTargetingOptionsService) Search(targetingType string, searchtargetingoptionsrequest *SearchTargetingOptionsRequest) *TargetingTypesTargetingOptionsSearchCall {
39913	c := &TargetingTypesTargetingOptionsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39914	c.targetingType = targetingType
39915	c.searchtargetingoptionsrequest = searchtargetingoptionsrequest
39916	return c
39917}
39918
39919// Fields allows partial responses to be retrieved. See
39920// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39921// for more information.
39922func (c *TargetingTypesTargetingOptionsSearchCall) Fields(s ...googleapi.Field) *TargetingTypesTargetingOptionsSearchCall {
39923	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39924	return c
39925}
39926
39927// Context sets the context to be used in this call's Do method. Any
39928// pending HTTP request will be aborted if the provided context is
39929// canceled.
39930func (c *TargetingTypesTargetingOptionsSearchCall) Context(ctx context.Context) *TargetingTypesTargetingOptionsSearchCall {
39931	c.ctx_ = ctx
39932	return c
39933}
39934
39935// Header returns an http.Header that can be modified by the caller to
39936// add HTTP headers to the request.
39937func (c *TargetingTypesTargetingOptionsSearchCall) Header() http.Header {
39938	if c.header_ == nil {
39939		c.header_ = make(http.Header)
39940	}
39941	return c.header_
39942}
39943
39944func (c *TargetingTypesTargetingOptionsSearchCall) doRequest(alt string) (*http.Response, error) {
39945	reqHeaders := make(http.Header)
39946	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
39947	for k, v := range c.header_ {
39948		reqHeaders[k] = v
39949	}
39950	reqHeaders.Set("User-Agent", c.s.userAgent())
39951	var body io.Reader = nil
39952	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchtargetingoptionsrequest)
39953	if err != nil {
39954		return nil, err
39955	}
39956	reqHeaders.Set("Content-Type", "application/json")
39957	c.urlParams_.Set("alt", alt)
39958	c.urlParams_.Set("prettyPrint", "false")
39959	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/targetingTypes/{+targetingType}/targetingOptions:search")
39960	urls += "?" + c.urlParams_.Encode()
39961	req, err := http.NewRequest("POST", urls, body)
39962	if err != nil {
39963		return nil, err
39964	}
39965	req.Header = reqHeaders
39966	googleapi.Expand(req.URL, map[string]string{
39967		"targetingType": c.targetingType,
39968	})
39969	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39970}
39971
39972// Do executes the "displayvideo.targetingTypes.targetingOptions.search" call.
39973// Exactly one of *SearchTargetingOptionsResponse or error will be
39974// non-nil. Any non-2xx status code is an error. Response headers are in
39975// either *SearchTargetingOptionsResponse.ServerResponse.Header or (if a
39976// response was returned at all) in error.(*googleapi.Error).Header. Use
39977// googleapi.IsNotModified to check whether the returned error was
39978// because http.StatusNotModified was returned.
39979func (c *TargetingTypesTargetingOptionsSearchCall) Do(opts ...googleapi.CallOption) (*SearchTargetingOptionsResponse, error) {
39980	gensupport.SetOptions(c.urlParams_, opts...)
39981	res, err := c.doRequest("json")
39982	if res != nil && res.StatusCode == http.StatusNotModified {
39983		if res.Body != nil {
39984			res.Body.Close()
39985		}
39986		return nil, &googleapi.Error{
39987			Code:   res.StatusCode,
39988			Header: res.Header,
39989		}
39990	}
39991	if err != nil {
39992		return nil, err
39993	}
39994	defer googleapi.CloseBody(res)
39995	if err := googleapi.CheckResponse(res); err != nil {
39996		return nil, err
39997	}
39998	ret := &SearchTargetingOptionsResponse{
39999		ServerResponse: googleapi.ServerResponse{
40000			Header:         res.Header,
40001			HTTPStatusCode: res.StatusCode,
40002		},
40003	}
40004	target := &ret
40005	if err := gensupport.DecodeResponse(target, res); err != nil {
40006		return nil, err
40007	}
40008	return ret, nil
40009	// {
40010	//   "description": "Searches for targeting options of a given type based on the given search terms.",
40011	//   "flatPath": "v1/targetingTypes/{targetingTypesId}/targetingOptions:search",
40012	//   "httpMethod": "POST",
40013	//   "id": "displayvideo.targetingTypes.targetingOptions.search",
40014	//   "parameterOrder": [
40015	//     "targetingType"
40016	//   ],
40017	//   "parameters": {
40018	//     "targetingType": {
40019	//       "description": "Required. The type of targeting options to retrieve. Accepted values are: * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_BUSINESS_CHAIN`",
40020	//       "enum": [
40021	//         "TARGETING_TYPE_UNSPECIFIED",
40022	//         "TARGETING_TYPE_CHANNEL",
40023	//         "TARGETING_TYPE_APP_CATEGORY",
40024	//         "TARGETING_TYPE_APP",
40025	//         "TARGETING_TYPE_URL",
40026	//         "TARGETING_TYPE_DAY_AND_TIME",
40027	//         "TARGETING_TYPE_AGE_RANGE",
40028	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
40029	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
40030	//         "TARGETING_TYPE_GENDER",
40031	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
40032	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
40033	//         "TARGETING_TYPE_PARENTAL_STATUS",
40034	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
40035	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
40036	//         "TARGETING_TYPE_DEVICE_TYPE",
40037	//         "TARGETING_TYPE_AUDIENCE_GROUP",
40038	//         "TARGETING_TYPE_BROWSER",
40039	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
40040	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
40041	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
40042	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
40043	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
40044	//         "TARGETING_TYPE_ENVIRONMENT",
40045	//         "TARGETING_TYPE_CARRIER_AND_ISP",
40046	//         "TARGETING_TYPE_OPERATING_SYSTEM",
40047	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
40048	//         "TARGETING_TYPE_KEYWORD",
40049	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
40050	//         "TARGETING_TYPE_VIEWABILITY",
40051	//         "TARGETING_TYPE_CATEGORY",
40052	//         "TARGETING_TYPE_INVENTORY_SOURCE",
40053	//         "TARGETING_TYPE_LANGUAGE",
40054	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
40055	//         "TARGETING_TYPE_GEO_REGION",
40056	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
40057	//         "TARGETING_TYPE_EXCHANGE",
40058	//         "TARGETING_TYPE_SUB_EXCHANGE",
40059	//         "TARGETING_TYPE_POI",
40060	//         "TARGETING_TYPE_BUSINESS_CHAIN",
40061	//         "TARGETING_TYPE_NATIVE_CONTENT_POSITION",
40062	//         "TARGETING_TYPE_OMID"
40063	//       ],
40064	//       "enumDescriptions": [
40065	//         "Default value when type is not specified or is unknown in this version.",
40066	//         "Target a channel (a custom group of related websites or apps).",
40067	//         "Target an app category (for example, education or puzzle games).",
40068	//         "Target a specific app (for example, Angry Birds).",
40069	//         "Target a specific url (for example, quora.com).",
40070	//         "Target ads during a chosen time period on a specific day.",
40071	//         "Target ads to a specific age range (for example, 18-24).",
40072	//         "Target ads to the specified regions on a regional location list.",
40073	//         "Target ads to the specified points of interest on a proximity location list.",
40074	//         "Target ads to a specific gender (for example, female or male).",
40075	//         "Target a specific video player size for video ads.",
40076	//         "Target user rewarded content for video ads.",
40077	//         "Target ads to a specific parental status (for example, parent or not a parent).",
40078	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
40079	//         "Target ads in a specific content outstream position.",
40080	//         "Target ads to a specific device type (for example, tablet or connected TV).",
40081	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
40082	//         "Target ads to specific web browsers (for example, Chrome).",
40083	//         "Target ads to a specific household income range (for example, top 10%).",
40084	//         "Target ads in a specific on screen position.",
40085	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
40086	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
40087	//         "Filter website content by sensitive categories (for example, adult).",
40088	//         "Target ads to a specific environment (for example, web or app).",
40089	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
40090	//         "Target ads to a specific operating system (for example, macOS).",
40091	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
40092	//         "Target ads to a specific keyword (for example, dog or retriever).",
40093	//         "Target ads to a specific negative keyword list.",
40094	//         "Target ads to a specific viewability (for example, 80% viewable).",
40095	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
40096	//         "Purchase impressions from specific deals and auction packages.",
40097	//         "Target ads to a specific language (for example, English or Japanese).",
40098	//         "Target ads to ads.txt authorized sellers.",
40099	//         "Target ads to a specific regional location (for example, a city or state).",
40100	//         "Purchase impressions from a group of deals and auction packages.",
40101	//         "Purchase impressions from specific exchanges.",
40102	//         "Purchase impressions from specific sub-exchanges.",
40103	//         "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.",
40104	//         "Target ads around locations of a business chain within a specific geo region.",
40105	//         "Target ads to a specific native content position.",
40106	//         "Target ads in an Open Measurement enabled inventory."
40107	//       ],
40108	//       "location": "path",
40109	//       "pattern": "^[^/]+$",
40110	//       "required": true,
40111	//       "type": "string"
40112	//     }
40113	//   },
40114	//   "path": "v1/targetingTypes/{+targetingType}/targetingOptions:search",
40115	//   "request": {
40116	//     "$ref": "SearchTargetingOptionsRequest"
40117	//   },
40118	//   "response": {
40119	//     "$ref": "SearchTargetingOptionsResponse"
40120	//   },
40121	//   "scopes": [
40122	//     "https://www.googleapis.com/auth/display-video"
40123	//   ]
40124	// }
40125
40126}
40127
40128// Pages invokes f for each page of results.
40129// A non-nil error returned from f will halt the iteration.
40130// The provided context supersedes any context provided to the Context method.
40131func (c *TargetingTypesTargetingOptionsSearchCall) Pages(ctx context.Context, f func(*SearchTargetingOptionsResponse) error) error {
40132	c.ctx_ = ctx
40133	defer func(pt string) { c.searchtargetingoptionsrequest.PageToken = pt }(c.searchtargetingoptionsrequest.PageToken) // reset paging to original point
40134	for {
40135		x, err := c.Do()
40136		if err != nil {
40137			return err
40138		}
40139		if err := f(x); err != nil {
40140			return err
40141		}
40142		if x.NextPageToken == "" {
40143			return nil
40144		}
40145		c.searchtargetingoptionsrequest.PageToken = x.NextPageToken
40146	}
40147}
40148
40149// method id "displayvideo.users.bulkEditAssignedUserRoles":
40150
40151type UsersBulkEditAssignedUserRolesCall struct {
40152	s                                *Service
40153	userId                           int64
40154	bulkeditassigneduserrolesrequest *BulkEditAssignedUserRolesRequest
40155	urlParams_                       gensupport.URLParams
40156	ctx_                             context.Context
40157	header_                          http.Header
40158}
40159
40160// BulkEditAssignedUserRoles: Bulk edits user roles for a user. The
40161// operation will delete the assigned user roles provided in
40162// BulkEditAssignedUserRolesRequest.deletedAssignedUserRoles and then
40163// assign the user roles provided in
40164// BulkEditAssignedUserRolesRequest.createdAssignedUserRoles.
40165//
40166// - userId: The ID of the user to which the assigned user roles belong.
40167func (r *UsersService) BulkEditAssignedUserRoles(userId int64, bulkeditassigneduserrolesrequest *BulkEditAssignedUserRolesRequest) *UsersBulkEditAssignedUserRolesCall {
40168	c := &UsersBulkEditAssignedUserRolesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40169	c.userId = userId
40170	c.bulkeditassigneduserrolesrequest = bulkeditassigneduserrolesrequest
40171	return c
40172}
40173
40174// Fields allows partial responses to be retrieved. See
40175// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40176// for more information.
40177func (c *UsersBulkEditAssignedUserRolesCall) Fields(s ...googleapi.Field) *UsersBulkEditAssignedUserRolesCall {
40178	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40179	return c
40180}
40181
40182// Context sets the context to be used in this call's Do method. Any
40183// pending HTTP request will be aborted if the provided context is
40184// canceled.
40185func (c *UsersBulkEditAssignedUserRolesCall) Context(ctx context.Context) *UsersBulkEditAssignedUserRolesCall {
40186	c.ctx_ = ctx
40187	return c
40188}
40189
40190// Header returns an http.Header that can be modified by the caller to
40191// add HTTP headers to the request.
40192func (c *UsersBulkEditAssignedUserRolesCall) Header() http.Header {
40193	if c.header_ == nil {
40194		c.header_ = make(http.Header)
40195	}
40196	return c.header_
40197}
40198
40199func (c *UsersBulkEditAssignedUserRolesCall) doRequest(alt string) (*http.Response, error) {
40200	reqHeaders := make(http.Header)
40201	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
40202	for k, v := range c.header_ {
40203		reqHeaders[k] = v
40204	}
40205	reqHeaders.Set("User-Agent", c.s.userAgent())
40206	var body io.Reader = nil
40207	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditassigneduserrolesrequest)
40208	if err != nil {
40209		return nil, err
40210	}
40211	reqHeaders.Set("Content-Type", "application/json")
40212	c.urlParams_.Set("alt", alt)
40213	c.urlParams_.Set("prettyPrint", "false")
40214	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/users/{+userId}:bulkEditAssignedUserRoles")
40215	urls += "?" + c.urlParams_.Encode()
40216	req, err := http.NewRequest("POST", urls, body)
40217	if err != nil {
40218		return nil, err
40219	}
40220	req.Header = reqHeaders
40221	googleapi.Expand(req.URL, map[string]string{
40222		"userId": strconv.FormatInt(c.userId, 10),
40223	})
40224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40225}
40226
40227// Do executes the "displayvideo.users.bulkEditAssignedUserRoles" call.
40228// Exactly one of *BulkEditAssignedUserRolesResponse or error will be
40229// non-nil. Any non-2xx status code is an error. Response headers are in
40230// either *BulkEditAssignedUserRolesResponse.ServerResponse.Header or
40231// (if a response was returned at all) in
40232// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
40233// whether the returned error was because http.StatusNotModified was
40234// returned.
40235func (c *UsersBulkEditAssignedUserRolesCall) Do(opts ...googleapi.CallOption) (*BulkEditAssignedUserRolesResponse, error) {
40236	gensupport.SetOptions(c.urlParams_, opts...)
40237	res, err := c.doRequest("json")
40238	if res != nil && res.StatusCode == http.StatusNotModified {
40239		if res.Body != nil {
40240			res.Body.Close()
40241		}
40242		return nil, &googleapi.Error{
40243			Code:   res.StatusCode,
40244			Header: res.Header,
40245		}
40246	}
40247	if err != nil {
40248		return nil, err
40249	}
40250	defer googleapi.CloseBody(res)
40251	if err := googleapi.CheckResponse(res); err != nil {
40252		return nil, err
40253	}
40254	ret := &BulkEditAssignedUserRolesResponse{
40255		ServerResponse: googleapi.ServerResponse{
40256			Header:         res.Header,
40257			HTTPStatusCode: res.StatusCode,
40258		},
40259	}
40260	target := &ret
40261	if err := gensupport.DecodeResponse(target, res); err != nil {
40262		return nil, err
40263	}
40264	return ret, nil
40265	// {
40266	//   "description": "Bulk edits user roles for a user. The operation will delete the assigned user roles provided in BulkEditAssignedUserRolesRequest.deletedAssignedUserRoles and then assign the user roles provided in BulkEditAssignedUserRolesRequest.createdAssignedUserRoles.",
40267	//   "flatPath": "v1/users/{usersId}:bulkEditAssignedUserRoles",
40268	//   "httpMethod": "POST",
40269	//   "id": "displayvideo.users.bulkEditAssignedUserRoles",
40270	//   "parameterOrder": [
40271	//     "userId"
40272	//   ],
40273	//   "parameters": {
40274	//     "userId": {
40275	//       "description": "Required. The ID of the user to which the assigned user roles belong.",
40276	//       "format": "int64",
40277	//       "location": "path",
40278	//       "pattern": "^[^/]+$",
40279	//       "required": true,
40280	//       "type": "string"
40281	//     }
40282	//   },
40283	//   "path": "v1/users/{+userId}:bulkEditAssignedUserRoles",
40284	//   "request": {
40285	//     "$ref": "BulkEditAssignedUserRolesRequest"
40286	//   },
40287	//   "response": {
40288	//     "$ref": "BulkEditAssignedUserRolesResponse"
40289	//   },
40290	//   "scopes": [
40291	//     "https://www.googleapis.com/auth/display-video-user-management"
40292	//   ]
40293	// }
40294
40295}
40296
40297// method id "displayvideo.users.create":
40298
40299type UsersCreateCall struct {
40300	s          *Service
40301	user       *User
40302	urlParams_ gensupport.URLParams
40303	ctx_       context.Context
40304	header_    http.Header
40305}
40306
40307// Create: Creates a new user. Returns the newly created user if
40308// successful.
40309func (r *UsersService) Create(user *User) *UsersCreateCall {
40310	c := &UsersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40311	c.user = user
40312	return c
40313}
40314
40315// Fields allows partial responses to be retrieved. See
40316// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40317// for more information.
40318func (c *UsersCreateCall) Fields(s ...googleapi.Field) *UsersCreateCall {
40319	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40320	return c
40321}
40322
40323// Context sets the context to be used in this call's Do method. Any
40324// pending HTTP request will be aborted if the provided context is
40325// canceled.
40326func (c *UsersCreateCall) Context(ctx context.Context) *UsersCreateCall {
40327	c.ctx_ = ctx
40328	return c
40329}
40330
40331// Header returns an http.Header that can be modified by the caller to
40332// add HTTP headers to the request.
40333func (c *UsersCreateCall) Header() http.Header {
40334	if c.header_ == nil {
40335		c.header_ = make(http.Header)
40336	}
40337	return c.header_
40338}
40339
40340func (c *UsersCreateCall) doRequest(alt string) (*http.Response, error) {
40341	reqHeaders := make(http.Header)
40342	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
40343	for k, v := range c.header_ {
40344		reqHeaders[k] = v
40345	}
40346	reqHeaders.Set("User-Agent", c.s.userAgent())
40347	var body io.Reader = nil
40348	body, err := googleapi.WithoutDataWrapper.JSONReader(c.user)
40349	if err != nil {
40350		return nil, err
40351	}
40352	reqHeaders.Set("Content-Type", "application/json")
40353	c.urlParams_.Set("alt", alt)
40354	c.urlParams_.Set("prettyPrint", "false")
40355	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/users")
40356	urls += "?" + c.urlParams_.Encode()
40357	req, err := http.NewRequest("POST", urls, body)
40358	if err != nil {
40359		return nil, err
40360	}
40361	req.Header = reqHeaders
40362	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40363}
40364
40365// Do executes the "displayvideo.users.create" call.
40366// Exactly one of *User or error will be non-nil. Any non-2xx status
40367// code is an error. Response headers are in either
40368// *User.ServerResponse.Header or (if a response was returned at all) in
40369// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
40370// whether the returned error was because http.StatusNotModified was
40371// returned.
40372func (c *UsersCreateCall) Do(opts ...googleapi.CallOption) (*User, error) {
40373	gensupport.SetOptions(c.urlParams_, opts...)
40374	res, err := c.doRequest("json")
40375	if res != nil && res.StatusCode == http.StatusNotModified {
40376		if res.Body != nil {
40377			res.Body.Close()
40378		}
40379		return nil, &googleapi.Error{
40380			Code:   res.StatusCode,
40381			Header: res.Header,
40382		}
40383	}
40384	if err != nil {
40385		return nil, err
40386	}
40387	defer googleapi.CloseBody(res)
40388	if err := googleapi.CheckResponse(res); err != nil {
40389		return nil, err
40390	}
40391	ret := &User{
40392		ServerResponse: googleapi.ServerResponse{
40393			Header:         res.Header,
40394			HTTPStatusCode: res.StatusCode,
40395		},
40396	}
40397	target := &ret
40398	if err := gensupport.DecodeResponse(target, res); err != nil {
40399		return nil, err
40400	}
40401	return ret, nil
40402	// {
40403	//   "description": "Creates a new user. Returns the newly created user if successful.",
40404	//   "flatPath": "v1/users",
40405	//   "httpMethod": "POST",
40406	//   "id": "displayvideo.users.create",
40407	//   "parameterOrder": [],
40408	//   "parameters": {},
40409	//   "path": "v1/users",
40410	//   "request": {
40411	//     "$ref": "User"
40412	//   },
40413	//   "response": {
40414	//     "$ref": "User"
40415	//   },
40416	//   "scopes": [
40417	//     "https://www.googleapis.com/auth/display-video-user-management"
40418	//   ]
40419	// }
40420
40421}
40422
40423// method id "displayvideo.users.delete":
40424
40425type UsersDeleteCall struct {
40426	s          *Service
40427	userId     int64
40428	urlParams_ gensupport.URLParams
40429	ctx_       context.Context
40430	header_    http.Header
40431}
40432
40433// Delete: Deletes a user.
40434//
40435// - userId: The ID of the user to delete.
40436func (r *UsersService) Delete(userId int64) *UsersDeleteCall {
40437	c := &UsersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40438	c.userId = userId
40439	return c
40440}
40441
40442// Fields allows partial responses to be retrieved. See
40443// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40444// for more information.
40445func (c *UsersDeleteCall) Fields(s ...googleapi.Field) *UsersDeleteCall {
40446	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40447	return c
40448}
40449
40450// Context sets the context to be used in this call's Do method. Any
40451// pending HTTP request will be aborted if the provided context is
40452// canceled.
40453func (c *UsersDeleteCall) Context(ctx context.Context) *UsersDeleteCall {
40454	c.ctx_ = ctx
40455	return c
40456}
40457
40458// Header returns an http.Header that can be modified by the caller to
40459// add HTTP headers to the request.
40460func (c *UsersDeleteCall) Header() http.Header {
40461	if c.header_ == nil {
40462		c.header_ = make(http.Header)
40463	}
40464	return c.header_
40465}
40466
40467func (c *UsersDeleteCall) doRequest(alt string) (*http.Response, error) {
40468	reqHeaders := make(http.Header)
40469	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
40470	for k, v := range c.header_ {
40471		reqHeaders[k] = v
40472	}
40473	reqHeaders.Set("User-Agent", c.s.userAgent())
40474	var body io.Reader = nil
40475	c.urlParams_.Set("alt", alt)
40476	c.urlParams_.Set("prettyPrint", "false")
40477	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/users/{+userId}")
40478	urls += "?" + c.urlParams_.Encode()
40479	req, err := http.NewRequest("DELETE", urls, body)
40480	if err != nil {
40481		return nil, err
40482	}
40483	req.Header = reqHeaders
40484	googleapi.Expand(req.URL, map[string]string{
40485		"userId": strconv.FormatInt(c.userId, 10),
40486	})
40487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40488}
40489
40490// Do executes the "displayvideo.users.delete" call.
40491// Exactly one of *Empty or error will be non-nil. Any non-2xx status
40492// code is an error. Response headers are in either
40493// *Empty.ServerResponse.Header or (if a response was returned at all)
40494// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
40495// check whether the returned error was because http.StatusNotModified
40496// was returned.
40497func (c *UsersDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
40498	gensupport.SetOptions(c.urlParams_, opts...)
40499	res, err := c.doRequest("json")
40500	if res != nil && res.StatusCode == http.StatusNotModified {
40501		if res.Body != nil {
40502			res.Body.Close()
40503		}
40504		return nil, &googleapi.Error{
40505			Code:   res.StatusCode,
40506			Header: res.Header,
40507		}
40508	}
40509	if err != nil {
40510		return nil, err
40511	}
40512	defer googleapi.CloseBody(res)
40513	if err := googleapi.CheckResponse(res); err != nil {
40514		return nil, err
40515	}
40516	ret := &Empty{
40517		ServerResponse: googleapi.ServerResponse{
40518			Header:         res.Header,
40519			HTTPStatusCode: res.StatusCode,
40520		},
40521	}
40522	target := &ret
40523	if err := gensupport.DecodeResponse(target, res); err != nil {
40524		return nil, err
40525	}
40526	return ret, nil
40527	// {
40528	//   "description": "Deletes a user.",
40529	//   "flatPath": "v1/users/{usersId}",
40530	//   "httpMethod": "DELETE",
40531	//   "id": "displayvideo.users.delete",
40532	//   "parameterOrder": [
40533	//     "userId"
40534	//   ],
40535	//   "parameters": {
40536	//     "userId": {
40537	//       "description": "Required. The ID of the user to delete.",
40538	//       "format": "int64",
40539	//       "location": "path",
40540	//       "pattern": "^[^/]+$",
40541	//       "required": true,
40542	//       "type": "string"
40543	//     }
40544	//   },
40545	//   "path": "v1/users/{+userId}",
40546	//   "response": {
40547	//     "$ref": "Empty"
40548	//   },
40549	//   "scopes": [
40550	//     "https://www.googleapis.com/auth/display-video-user-management"
40551	//   ]
40552	// }
40553
40554}
40555
40556// method id "displayvideo.users.get":
40557
40558type UsersGetCall struct {
40559	s            *Service
40560	userId       int64
40561	urlParams_   gensupport.URLParams
40562	ifNoneMatch_ string
40563	ctx_         context.Context
40564	header_      http.Header
40565}
40566
40567// Get: Gets a user.
40568//
40569// - userId: The ID of the user to fetch.
40570func (r *UsersService) Get(userId int64) *UsersGetCall {
40571	c := &UsersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40572	c.userId = userId
40573	return c
40574}
40575
40576// Fields allows partial responses to be retrieved. See
40577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40578// for more information.
40579func (c *UsersGetCall) Fields(s ...googleapi.Field) *UsersGetCall {
40580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40581	return c
40582}
40583
40584// IfNoneMatch sets the optional parameter which makes the operation
40585// fail if the object's ETag matches the given value. This is useful for
40586// getting updates only after the object has changed since the last
40587// request. Use googleapi.IsNotModified to check whether the response
40588// error from Do is the result of In-None-Match.
40589func (c *UsersGetCall) IfNoneMatch(entityTag string) *UsersGetCall {
40590	c.ifNoneMatch_ = entityTag
40591	return c
40592}
40593
40594// Context sets the context to be used in this call's Do method. Any
40595// pending HTTP request will be aborted if the provided context is
40596// canceled.
40597func (c *UsersGetCall) Context(ctx context.Context) *UsersGetCall {
40598	c.ctx_ = ctx
40599	return c
40600}
40601
40602// Header returns an http.Header that can be modified by the caller to
40603// add HTTP headers to the request.
40604func (c *UsersGetCall) Header() http.Header {
40605	if c.header_ == nil {
40606		c.header_ = make(http.Header)
40607	}
40608	return c.header_
40609}
40610
40611func (c *UsersGetCall) doRequest(alt string) (*http.Response, error) {
40612	reqHeaders := make(http.Header)
40613	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
40614	for k, v := range c.header_ {
40615		reqHeaders[k] = v
40616	}
40617	reqHeaders.Set("User-Agent", c.s.userAgent())
40618	if c.ifNoneMatch_ != "" {
40619		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
40620	}
40621	var body io.Reader = nil
40622	c.urlParams_.Set("alt", alt)
40623	c.urlParams_.Set("prettyPrint", "false")
40624	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/users/{+userId}")
40625	urls += "?" + c.urlParams_.Encode()
40626	req, err := http.NewRequest("GET", urls, body)
40627	if err != nil {
40628		return nil, err
40629	}
40630	req.Header = reqHeaders
40631	googleapi.Expand(req.URL, map[string]string{
40632		"userId": strconv.FormatInt(c.userId, 10),
40633	})
40634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40635}
40636
40637// Do executes the "displayvideo.users.get" call.
40638// Exactly one of *User or error will be non-nil. Any non-2xx status
40639// code is an error. Response headers are in either
40640// *User.ServerResponse.Header or (if a response was returned at all) in
40641// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
40642// whether the returned error was because http.StatusNotModified was
40643// returned.
40644func (c *UsersGetCall) Do(opts ...googleapi.CallOption) (*User, error) {
40645	gensupport.SetOptions(c.urlParams_, opts...)
40646	res, err := c.doRequest("json")
40647	if res != nil && res.StatusCode == http.StatusNotModified {
40648		if res.Body != nil {
40649			res.Body.Close()
40650		}
40651		return nil, &googleapi.Error{
40652			Code:   res.StatusCode,
40653			Header: res.Header,
40654		}
40655	}
40656	if err != nil {
40657		return nil, err
40658	}
40659	defer googleapi.CloseBody(res)
40660	if err := googleapi.CheckResponse(res); err != nil {
40661		return nil, err
40662	}
40663	ret := &User{
40664		ServerResponse: googleapi.ServerResponse{
40665			Header:         res.Header,
40666			HTTPStatusCode: res.StatusCode,
40667		},
40668	}
40669	target := &ret
40670	if err := gensupport.DecodeResponse(target, res); err != nil {
40671		return nil, err
40672	}
40673	return ret, nil
40674	// {
40675	//   "description": "Gets a user.",
40676	//   "flatPath": "v1/users/{usersId}",
40677	//   "httpMethod": "GET",
40678	//   "id": "displayvideo.users.get",
40679	//   "parameterOrder": [
40680	//     "userId"
40681	//   ],
40682	//   "parameters": {
40683	//     "userId": {
40684	//       "description": "Required. The ID of the user to fetch.",
40685	//       "format": "int64",
40686	//       "location": "path",
40687	//       "pattern": "^[^/]+$",
40688	//       "required": true,
40689	//       "type": "string"
40690	//     }
40691	//   },
40692	//   "path": "v1/users/{+userId}",
40693	//   "response": {
40694	//     "$ref": "User"
40695	//   },
40696	//   "scopes": [
40697	//     "https://www.googleapis.com/auth/display-video-user-management"
40698	//   ]
40699	// }
40700
40701}
40702
40703// method id "displayvideo.users.list":
40704
40705type UsersListCall struct {
40706	s            *Service
40707	urlParams_   gensupport.URLParams
40708	ifNoneMatch_ string
40709	ctx_         context.Context
40710	header_      http.Header
40711}
40712
40713// List: Lists users that are accessible to the current user. If two
40714// users have user roles on the same partner or advertiser, they can
40715// access each other.
40716func (r *UsersService) List() *UsersListCall {
40717	c := &UsersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40718	return c
40719}
40720
40721// Filter sets the optional parameter "filter": Allows filtering by user
40722// properties. Supported syntax: * Filter expressions are made up of one
40723// or more restrictions. * Restrictions can be combined by the logical
40724// operator `AND`. * A restriction has the form of `{field} {operator}
40725// {value}`. * The operator must be `CONTAINS (:)` or `EQUALS (=)`. *
40726// The operator must be `CONTAINS (:)` for the following fields: -
40727// `displayName` - `email` * The operator must be `EQUALS (=)` for the
40728// following fields: - `assignedUserRole.userRole` -
40729// `assignedUserRole.partnerId` - `assignedUserRole.advertiserId` -
40730// `assignedUserRole.entityType`: A synthetic field of AssignedUserRole
40731// used for filtering. Identifies the type of entity to which the user
40732// role is assigned. Valid values are `Partner` and `Advertiser`. -
40733// `assignedUserRole.parentPartnerId`: A synthetic field of
40734// AssignedUserRole used for filtering. Identifies the parent partner of
40735// the entity to which the user role is assigned." Examples: * The user
40736// with displayName containing `foo`: `displayName:"foo" * The user
40737// with email containing `bar`: `email:"bar" * All users with standard
40738// user roles: `assignedUserRole.userRole="STANDARD" * All users with
40739// user roles for partner 123: `assignedUserRole.partnerId="123" * All
40740// users with user roles for advertiser 123:
40741// `assignedUserRole.advertiserId="123" * All users with partner level
40742// user roles: `entityType="PARTNER" * All users with user roles for
40743// partner 123 and advertisers under partner 123:
40744// `parentPartnerId="123" The length of this field should be no more
40745// than 500 characters.
40746func (c *UsersListCall) Filter(filter string) *UsersListCall {
40747	c.urlParams_.Set("filter", filter)
40748	return c
40749}
40750
40751// OrderBy sets the optional parameter "orderBy": Field by which to sort
40752// the list. Acceptable values are: * `displayName` (default) The
40753// default sorting order is ascending. To specify descending order for a
40754// field, a suffix "desc" should be added to the field name. For
40755// example, `displayName desc`.
40756func (c *UsersListCall) OrderBy(orderBy string) *UsersListCall {
40757	c.urlParams_.Set("orderBy", orderBy)
40758	return c
40759}
40760
40761// PageSize sets the optional parameter "pageSize": Requested page size.
40762// Must be between `1` and `100`. If unspecified will default to `100`.
40763func (c *UsersListCall) PageSize(pageSize int64) *UsersListCall {
40764	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
40765	return c
40766}
40767
40768// PageToken sets the optional parameter "pageToken": A token
40769// identifying a page of results the server should return. Typically,
40770// this is the value of next_page_token returned from the previous call
40771// to `ListUsers` method. If not specified, the first page of results
40772// will be returned.
40773func (c *UsersListCall) PageToken(pageToken string) *UsersListCall {
40774	c.urlParams_.Set("pageToken", pageToken)
40775	return c
40776}
40777
40778// Fields allows partial responses to be retrieved. See
40779// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40780// for more information.
40781func (c *UsersListCall) Fields(s ...googleapi.Field) *UsersListCall {
40782	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40783	return c
40784}
40785
40786// IfNoneMatch sets the optional parameter which makes the operation
40787// fail if the object's ETag matches the given value. This is useful for
40788// getting updates only after the object has changed since the last
40789// request. Use googleapi.IsNotModified to check whether the response
40790// error from Do is the result of In-None-Match.
40791func (c *UsersListCall) IfNoneMatch(entityTag string) *UsersListCall {
40792	c.ifNoneMatch_ = entityTag
40793	return c
40794}
40795
40796// Context sets the context to be used in this call's Do method. Any
40797// pending HTTP request will be aborted if the provided context is
40798// canceled.
40799func (c *UsersListCall) Context(ctx context.Context) *UsersListCall {
40800	c.ctx_ = ctx
40801	return c
40802}
40803
40804// Header returns an http.Header that can be modified by the caller to
40805// add HTTP headers to the request.
40806func (c *UsersListCall) Header() http.Header {
40807	if c.header_ == nil {
40808		c.header_ = make(http.Header)
40809	}
40810	return c.header_
40811}
40812
40813func (c *UsersListCall) doRequest(alt string) (*http.Response, error) {
40814	reqHeaders := make(http.Header)
40815	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
40816	for k, v := range c.header_ {
40817		reqHeaders[k] = v
40818	}
40819	reqHeaders.Set("User-Agent", c.s.userAgent())
40820	if c.ifNoneMatch_ != "" {
40821		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
40822	}
40823	var body io.Reader = nil
40824	c.urlParams_.Set("alt", alt)
40825	c.urlParams_.Set("prettyPrint", "false")
40826	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/users")
40827	urls += "?" + c.urlParams_.Encode()
40828	req, err := http.NewRequest("GET", urls, body)
40829	if err != nil {
40830		return nil, err
40831	}
40832	req.Header = reqHeaders
40833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40834}
40835
40836// Do executes the "displayvideo.users.list" call.
40837// Exactly one of *ListUsersResponse or error will be non-nil. Any
40838// non-2xx status code is an error. Response headers are in either
40839// *ListUsersResponse.ServerResponse.Header or (if a response was
40840// returned at all) in error.(*googleapi.Error).Header. Use
40841// googleapi.IsNotModified to check whether the returned error was
40842// because http.StatusNotModified was returned.
40843func (c *UsersListCall) Do(opts ...googleapi.CallOption) (*ListUsersResponse, error) {
40844	gensupport.SetOptions(c.urlParams_, opts...)
40845	res, err := c.doRequest("json")
40846	if res != nil && res.StatusCode == http.StatusNotModified {
40847		if res.Body != nil {
40848			res.Body.Close()
40849		}
40850		return nil, &googleapi.Error{
40851			Code:   res.StatusCode,
40852			Header: res.Header,
40853		}
40854	}
40855	if err != nil {
40856		return nil, err
40857	}
40858	defer googleapi.CloseBody(res)
40859	if err := googleapi.CheckResponse(res); err != nil {
40860		return nil, err
40861	}
40862	ret := &ListUsersResponse{
40863		ServerResponse: googleapi.ServerResponse{
40864			Header:         res.Header,
40865			HTTPStatusCode: res.StatusCode,
40866		},
40867	}
40868	target := &ret
40869	if err := gensupport.DecodeResponse(target, res); err != nil {
40870		return nil, err
40871	}
40872	return ret, nil
40873	// {
40874	//   "description": "Lists users that are accessible to the current user. If two users have user roles on the same partner or advertiser, they can access each other.",
40875	//   "flatPath": "v1/users",
40876	//   "httpMethod": "GET",
40877	//   "id": "displayvideo.users.list",
40878	//   "parameterOrder": [],
40879	//   "parameters": {
40880	//     "filter": {
40881	//       "description": "Allows filtering by user properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `AND`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `CONTAINS (:)` or `EQUALS (=)`. * The operator must be `CONTAINS (:)` for the following fields: - `displayName` - `email` * The operator must be `EQUALS (=)` for the following fields: - `assignedUserRole.userRole` - `assignedUserRole.partnerId` - `assignedUserRole.advertiserId` - `assignedUserRole.entityType`: A synthetic field of AssignedUserRole used for filtering. Identifies the type of entity to which the user role is assigned. Valid values are `Partner` and `Advertiser`. - `assignedUserRole.parentPartnerId`: A synthetic field of AssignedUserRole used for filtering. Identifies the parent partner of the entity to which the user role is assigned.\" Examples: * The user with displayName containing `foo`: `displayName:\"foo\"` * The user with email containing `bar`: `email:\"bar\"` * All users with standard user roles: `assignedUserRole.userRole=\"STANDARD\"` * All users with user roles for partner 123: `assignedUserRole.partnerId=\"123\"` * All users with user roles for advertiser 123: `assignedUserRole.advertiserId=\"123\"` * All users with partner level user roles: `entityType=\"PARTNER\"` * All users with user roles for partner 123 and advertisers under partner 123: `parentPartnerId=\"123\"` The length of this field should be no more than 500 characters.",
40882	//       "location": "query",
40883	//       "type": "string"
40884	//     },
40885	//     "orderBy": {
40886	//       "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.",
40887	//       "location": "query",
40888	//       "type": "string"
40889	//     },
40890	//     "pageSize": {
40891	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
40892	//       "format": "int32",
40893	//       "location": "query",
40894	//       "type": "integer"
40895	//     },
40896	//     "pageToken": {
40897	//       "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListUsers` method. If not specified, the first page of results will be returned.",
40898	//       "location": "query",
40899	//       "type": "string"
40900	//     }
40901	//   },
40902	//   "path": "v1/users",
40903	//   "response": {
40904	//     "$ref": "ListUsersResponse"
40905	//   },
40906	//   "scopes": [
40907	//     "https://www.googleapis.com/auth/display-video-user-management"
40908	//   ]
40909	// }
40910
40911}
40912
40913// Pages invokes f for each page of results.
40914// A non-nil error returned from f will halt the iteration.
40915// The provided context supersedes any context provided to the Context method.
40916func (c *UsersListCall) Pages(ctx context.Context, f func(*ListUsersResponse) error) error {
40917	c.ctx_ = ctx
40918	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
40919	for {
40920		x, err := c.Do()
40921		if err != nil {
40922			return err
40923		}
40924		if err := f(x); err != nil {
40925			return err
40926		}
40927		if x.NextPageToken == "" {
40928			return nil
40929		}
40930		c.PageToken(x.NextPageToken)
40931	}
40932}
40933
40934// method id "displayvideo.users.patch":
40935
40936type UsersPatchCall struct {
40937	s          *Service
40938	userId     int64
40939	user       *User
40940	urlParams_ gensupport.URLParams
40941	ctx_       context.Context
40942	header_    http.Header
40943}
40944
40945// Patch: Updates an existing user. Returns the updated user if
40946// successful.
40947//
40948// - userId: Output only. The unique ID of the user. Assigned by the
40949//   system.
40950func (r *UsersService) Patch(userId int64, user *User) *UsersPatchCall {
40951	c := &UsersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40952	c.userId = userId
40953	c.user = user
40954	return c
40955}
40956
40957// UpdateMask sets the optional parameter "updateMask": Required. The
40958// mask to control which fields to update.
40959func (c *UsersPatchCall) UpdateMask(updateMask string) *UsersPatchCall {
40960	c.urlParams_.Set("updateMask", updateMask)
40961	return c
40962}
40963
40964// Fields allows partial responses to be retrieved. See
40965// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40966// for more information.
40967func (c *UsersPatchCall) Fields(s ...googleapi.Field) *UsersPatchCall {
40968	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40969	return c
40970}
40971
40972// Context sets the context to be used in this call's Do method. Any
40973// pending HTTP request will be aborted if the provided context is
40974// canceled.
40975func (c *UsersPatchCall) Context(ctx context.Context) *UsersPatchCall {
40976	c.ctx_ = ctx
40977	return c
40978}
40979
40980// Header returns an http.Header that can be modified by the caller to
40981// add HTTP headers to the request.
40982func (c *UsersPatchCall) Header() http.Header {
40983	if c.header_ == nil {
40984		c.header_ = make(http.Header)
40985	}
40986	return c.header_
40987}
40988
40989func (c *UsersPatchCall) doRequest(alt string) (*http.Response, error) {
40990	reqHeaders := make(http.Header)
40991	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
40992	for k, v := range c.header_ {
40993		reqHeaders[k] = v
40994	}
40995	reqHeaders.Set("User-Agent", c.s.userAgent())
40996	var body io.Reader = nil
40997	body, err := googleapi.WithoutDataWrapper.JSONReader(c.user)
40998	if err != nil {
40999		return nil, err
41000	}
41001	reqHeaders.Set("Content-Type", "application/json")
41002	c.urlParams_.Set("alt", alt)
41003	c.urlParams_.Set("prettyPrint", "false")
41004	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/users/{+userId}")
41005	urls += "?" + c.urlParams_.Encode()
41006	req, err := http.NewRequest("PATCH", urls, body)
41007	if err != nil {
41008		return nil, err
41009	}
41010	req.Header = reqHeaders
41011	googleapi.Expand(req.URL, map[string]string{
41012		"userId": strconv.FormatInt(c.userId, 10),
41013	})
41014	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41015}
41016
41017// Do executes the "displayvideo.users.patch" call.
41018// Exactly one of *User or error will be non-nil. Any non-2xx status
41019// code is an error. Response headers are in either
41020// *User.ServerResponse.Header or (if a response was returned at all) in
41021// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
41022// whether the returned error was because http.StatusNotModified was
41023// returned.
41024func (c *UsersPatchCall) Do(opts ...googleapi.CallOption) (*User, error) {
41025	gensupport.SetOptions(c.urlParams_, opts...)
41026	res, err := c.doRequest("json")
41027	if res != nil && res.StatusCode == http.StatusNotModified {
41028		if res.Body != nil {
41029			res.Body.Close()
41030		}
41031		return nil, &googleapi.Error{
41032			Code:   res.StatusCode,
41033			Header: res.Header,
41034		}
41035	}
41036	if err != nil {
41037		return nil, err
41038	}
41039	defer googleapi.CloseBody(res)
41040	if err := googleapi.CheckResponse(res); err != nil {
41041		return nil, err
41042	}
41043	ret := &User{
41044		ServerResponse: googleapi.ServerResponse{
41045			Header:         res.Header,
41046			HTTPStatusCode: res.StatusCode,
41047		},
41048	}
41049	target := &ret
41050	if err := gensupport.DecodeResponse(target, res); err != nil {
41051		return nil, err
41052	}
41053	return ret, nil
41054	// {
41055	//   "description": "Updates an existing user. Returns the updated user if successful.",
41056	//   "flatPath": "v1/users/{usersId}",
41057	//   "httpMethod": "PATCH",
41058	//   "id": "displayvideo.users.patch",
41059	//   "parameterOrder": [
41060	//     "userId"
41061	//   ],
41062	//   "parameters": {
41063	//     "updateMask": {
41064	//       "description": "Required. The mask to control which fields to update.",
41065	//       "format": "google-fieldmask",
41066	//       "location": "query",
41067	//       "type": "string"
41068	//     },
41069	//     "userId": {
41070	//       "description": "Output only. The unique ID of the user. Assigned by the system.",
41071	//       "format": "int64",
41072	//       "location": "path",
41073	//       "pattern": "^[^/]+$",
41074	//       "required": true,
41075	//       "type": "string"
41076	//     }
41077	//   },
41078	//   "path": "v1/users/{+userId}",
41079	//   "request": {
41080	//     "$ref": "User"
41081	//   },
41082	//   "response": {
41083	//     "$ref": "User"
41084	//   },
41085	//   "scopes": [
41086	//     "https://www.googleapis.com/auth/display-video-user-management"
41087	//   ]
41088	// }
41089
41090}
41091