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.LineItems = NewAdvertisersLineItemsService(s)
204	rs.LocationLists = NewAdvertisersLocationListsService(s)
205	rs.ManualTriggers = NewAdvertisersManualTriggersService(s)
206	rs.NegativeKeywordLists = NewAdvertisersNegativeKeywordListsService(s)
207	rs.TargetingTypes = NewAdvertisersTargetingTypesService(s)
208	return rs
209}
210
211type AdvertisersService struct {
212	s *Service
213
214	Assets *AdvertisersAssetsService
215
216	Campaigns *AdvertisersCampaignsService
217
218	Channels *AdvertisersChannelsService
219
220	Creatives *AdvertisersCreativesService
221
222	InsertionOrders *AdvertisersInsertionOrdersService
223
224	LineItems *AdvertisersLineItemsService
225
226	LocationLists *AdvertisersLocationListsService
227
228	ManualTriggers *AdvertisersManualTriggersService
229
230	NegativeKeywordLists *AdvertisersNegativeKeywordListsService
231
232	TargetingTypes *AdvertisersTargetingTypesService
233}
234
235func NewAdvertisersAssetsService(s *Service) *AdvertisersAssetsService {
236	rs := &AdvertisersAssetsService{s: s}
237	return rs
238}
239
240type AdvertisersAssetsService struct {
241	s *Service
242}
243
244func NewAdvertisersCampaignsService(s *Service) *AdvertisersCampaignsService {
245	rs := &AdvertisersCampaignsService{s: s}
246	rs.TargetingTypes = NewAdvertisersCampaignsTargetingTypesService(s)
247	return rs
248}
249
250type AdvertisersCampaignsService struct {
251	s *Service
252
253	TargetingTypes *AdvertisersCampaignsTargetingTypesService
254}
255
256func NewAdvertisersCampaignsTargetingTypesService(s *Service) *AdvertisersCampaignsTargetingTypesService {
257	rs := &AdvertisersCampaignsTargetingTypesService{s: s}
258	rs.AssignedTargetingOptions = NewAdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService(s)
259	return rs
260}
261
262type AdvertisersCampaignsTargetingTypesService struct {
263	s *Service
264
265	AssignedTargetingOptions *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService
266}
267
268func NewAdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService(s *Service) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService {
269	rs := &AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService{s: s}
270	return rs
271}
272
273type AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService struct {
274	s *Service
275}
276
277func NewAdvertisersChannelsService(s *Service) *AdvertisersChannelsService {
278	rs := &AdvertisersChannelsService{s: s}
279	rs.Sites = NewAdvertisersChannelsSitesService(s)
280	return rs
281}
282
283type AdvertisersChannelsService struct {
284	s *Service
285
286	Sites *AdvertisersChannelsSitesService
287}
288
289func NewAdvertisersChannelsSitesService(s *Service) *AdvertisersChannelsSitesService {
290	rs := &AdvertisersChannelsSitesService{s: s}
291	return rs
292}
293
294type AdvertisersChannelsSitesService struct {
295	s *Service
296}
297
298func NewAdvertisersCreativesService(s *Service) *AdvertisersCreativesService {
299	rs := &AdvertisersCreativesService{s: s}
300	return rs
301}
302
303type AdvertisersCreativesService struct {
304	s *Service
305}
306
307func NewAdvertisersInsertionOrdersService(s *Service) *AdvertisersInsertionOrdersService {
308	rs := &AdvertisersInsertionOrdersService{s: s}
309	rs.TargetingTypes = NewAdvertisersInsertionOrdersTargetingTypesService(s)
310	return rs
311}
312
313type AdvertisersInsertionOrdersService struct {
314	s *Service
315
316	TargetingTypes *AdvertisersInsertionOrdersTargetingTypesService
317}
318
319func NewAdvertisersInsertionOrdersTargetingTypesService(s *Service) *AdvertisersInsertionOrdersTargetingTypesService {
320	rs := &AdvertisersInsertionOrdersTargetingTypesService{s: s}
321	rs.AssignedTargetingOptions = NewAdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService(s)
322	return rs
323}
324
325type AdvertisersInsertionOrdersTargetingTypesService struct {
326	s *Service
327
328	AssignedTargetingOptions *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService
329}
330
331func NewAdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService(s *Service) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService {
332	rs := &AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService{s: s}
333	return rs
334}
335
336type AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService struct {
337	s *Service
338}
339
340func NewAdvertisersLineItemsService(s *Service) *AdvertisersLineItemsService {
341	rs := &AdvertisersLineItemsService{s: s}
342	rs.TargetingTypes = NewAdvertisersLineItemsTargetingTypesService(s)
343	return rs
344}
345
346type AdvertisersLineItemsService struct {
347	s *Service
348
349	TargetingTypes *AdvertisersLineItemsTargetingTypesService
350}
351
352func NewAdvertisersLineItemsTargetingTypesService(s *Service) *AdvertisersLineItemsTargetingTypesService {
353	rs := &AdvertisersLineItemsTargetingTypesService{s: s}
354	rs.AssignedTargetingOptions = NewAdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService(s)
355	return rs
356}
357
358type AdvertisersLineItemsTargetingTypesService struct {
359	s *Service
360
361	AssignedTargetingOptions *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService
362}
363
364func NewAdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService(s *Service) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService {
365	rs := &AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService{s: s}
366	return rs
367}
368
369type AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService struct {
370	s *Service
371}
372
373func NewAdvertisersLocationListsService(s *Service) *AdvertisersLocationListsService {
374	rs := &AdvertisersLocationListsService{s: s}
375	rs.AssignedLocations = NewAdvertisersLocationListsAssignedLocationsService(s)
376	return rs
377}
378
379type AdvertisersLocationListsService struct {
380	s *Service
381
382	AssignedLocations *AdvertisersLocationListsAssignedLocationsService
383}
384
385func NewAdvertisersLocationListsAssignedLocationsService(s *Service) *AdvertisersLocationListsAssignedLocationsService {
386	rs := &AdvertisersLocationListsAssignedLocationsService{s: s}
387	return rs
388}
389
390type AdvertisersLocationListsAssignedLocationsService struct {
391	s *Service
392}
393
394func NewAdvertisersManualTriggersService(s *Service) *AdvertisersManualTriggersService {
395	rs := &AdvertisersManualTriggersService{s: s}
396	return rs
397}
398
399type AdvertisersManualTriggersService struct {
400	s *Service
401}
402
403func NewAdvertisersNegativeKeywordListsService(s *Service) *AdvertisersNegativeKeywordListsService {
404	rs := &AdvertisersNegativeKeywordListsService{s: s}
405	rs.NegativeKeywords = NewAdvertisersNegativeKeywordListsNegativeKeywordsService(s)
406	return rs
407}
408
409type AdvertisersNegativeKeywordListsService struct {
410	s *Service
411
412	NegativeKeywords *AdvertisersNegativeKeywordListsNegativeKeywordsService
413}
414
415func NewAdvertisersNegativeKeywordListsNegativeKeywordsService(s *Service) *AdvertisersNegativeKeywordListsNegativeKeywordsService {
416	rs := &AdvertisersNegativeKeywordListsNegativeKeywordsService{s: s}
417	return rs
418}
419
420type AdvertisersNegativeKeywordListsNegativeKeywordsService struct {
421	s *Service
422}
423
424func NewAdvertisersTargetingTypesService(s *Service) *AdvertisersTargetingTypesService {
425	rs := &AdvertisersTargetingTypesService{s: s}
426	rs.AssignedTargetingOptions = NewAdvertisersTargetingTypesAssignedTargetingOptionsService(s)
427	return rs
428}
429
430type AdvertisersTargetingTypesService struct {
431	s *Service
432
433	AssignedTargetingOptions *AdvertisersTargetingTypesAssignedTargetingOptionsService
434}
435
436func NewAdvertisersTargetingTypesAssignedTargetingOptionsService(s *Service) *AdvertisersTargetingTypesAssignedTargetingOptionsService {
437	rs := &AdvertisersTargetingTypesAssignedTargetingOptionsService{s: s}
438	return rs
439}
440
441type AdvertisersTargetingTypesAssignedTargetingOptionsService struct {
442	s *Service
443}
444
445func NewCombinedAudiencesService(s *Service) *CombinedAudiencesService {
446	rs := &CombinedAudiencesService{s: s}
447	return rs
448}
449
450type CombinedAudiencesService struct {
451	s *Service
452}
453
454func NewCustomBiddingAlgorithmsService(s *Service) *CustomBiddingAlgorithmsService {
455	rs := &CustomBiddingAlgorithmsService{s: s}
456	return rs
457}
458
459type CustomBiddingAlgorithmsService struct {
460	s *Service
461}
462
463func NewCustomListsService(s *Service) *CustomListsService {
464	rs := &CustomListsService{s: s}
465	return rs
466}
467
468type CustomListsService struct {
469	s *Service
470}
471
472func NewFirstAndThirdPartyAudiencesService(s *Service) *FirstAndThirdPartyAudiencesService {
473	rs := &FirstAndThirdPartyAudiencesService{s: s}
474	return rs
475}
476
477type FirstAndThirdPartyAudiencesService struct {
478	s *Service
479}
480
481func NewFloodlightGroupsService(s *Service) *FloodlightGroupsService {
482	rs := &FloodlightGroupsService{s: s}
483	return rs
484}
485
486type FloodlightGroupsService struct {
487	s *Service
488}
489
490func NewGoogleAudiencesService(s *Service) *GoogleAudiencesService {
491	rs := &GoogleAudiencesService{s: s}
492	return rs
493}
494
495type GoogleAudiencesService struct {
496	s *Service
497}
498
499func NewInventorySourceGroupsService(s *Service) *InventorySourceGroupsService {
500	rs := &InventorySourceGroupsService{s: s}
501	rs.AssignedInventorySources = NewInventorySourceGroupsAssignedInventorySourcesService(s)
502	return rs
503}
504
505type InventorySourceGroupsService struct {
506	s *Service
507
508	AssignedInventorySources *InventorySourceGroupsAssignedInventorySourcesService
509}
510
511func NewInventorySourceGroupsAssignedInventorySourcesService(s *Service) *InventorySourceGroupsAssignedInventorySourcesService {
512	rs := &InventorySourceGroupsAssignedInventorySourcesService{s: s}
513	return rs
514}
515
516type InventorySourceGroupsAssignedInventorySourcesService struct {
517	s *Service
518}
519
520func NewInventorySourcesService(s *Service) *InventorySourcesService {
521	rs := &InventorySourcesService{s: s}
522	return rs
523}
524
525type InventorySourcesService struct {
526	s *Service
527}
528
529func NewMediaService(s *Service) *MediaService {
530	rs := &MediaService{s: s}
531	return rs
532}
533
534type MediaService struct {
535	s *Service
536}
537
538func NewPartnersService(s *Service) *PartnersService {
539	rs := &PartnersService{s: s}
540	rs.Channels = NewPartnersChannelsService(s)
541	rs.TargetingTypes = NewPartnersTargetingTypesService(s)
542	return rs
543}
544
545type PartnersService struct {
546	s *Service
547
548	Channels *PartnersChannelsService
549
550	TargetingTypes *PartnersTargetingTypesService
551}
552
553func NewPartnersChannelsService(s *Service) *PartnersChannelsService {
554	rs := &PartnersChannelsService{s: s}
555	rs.Sites = NewPartnersChannelsSitesService(s)
556	return rs
557}
558
559type PartnersChannelsService struct {
560	s *Service
561
562	Sites *PartnersChannelsSitesService
563}
564
565func NewPartnersChannelsSitesService(s *Service) *PartnersChannelsSitesService {
566	rs := &PartnersChannelsSitesService{s: s}
567	return rs
568}
569
570type PartnersChannelsSitesService struct {
571	s *Service
572}
573
574func NewPartnersTargetingTypesService(s *Service) *PartnersTargetingTypesService {
575	rs := &PartnersTargetingTypesService{s: s}
576	rs.AssignedTargetingOptions = NewPartnersTargetingTypesAssignedTargetingOptionsService(s)
577	return rs
578}
579
580type PartnersTargetingTypesService struct {
581	s *Service
582
583	AssignedTargetingOptions *PartnersTargetingTypesAssignedTargetingOptionsService
584}
585
586func NewPartnersTargetingTypesAssignedTargetingOptionsService(s *Service) *PartnersTargetingTypesAssignedTargetingOptionsService {
587	rs := &PartnersTargetingTypesAssignedTargetingOptionsService{s: s}
588	return rs
589}
590
591type PartnersTargetingTypesAssignedTargetingOptionsService struct {
592	s *Service
593}
594
595func NewSdfdownloadtasksService(s *Service) *SdfdownloadtasksService {
596	rs := &SdfdownloadtasksService{s: s}
597	rs.Operations = NewSdfdownloadtasksOperationsService(s)
598	return rs
599}
600
601type SdfdownloadtasksService struct {
602	s *Service
603
604	Operations *SdfdownloadtasksOperationsService
605}
606
607func NewSdfdownloadtasksOperationsService(s *Service) *SdfdownloadtasksOperationsService {
608	rs := &SdfdownloadtasksOperationsService{s: s}
609	return rs
610}
611
612type SdfdownloadtasksOperationsService struct {
613	s *Service
614}
615
616func NewTargetingTypesService(s *Service) *TargetingTypesService {
617	rs := &TargetingTypesService{s: s}
618	rs.TargetingOptions = NewTargetingTypesTargetingOptionsService(s)
619	return rs
620}
621
622type TargetingTypesService struct {
623	s *Service
624
625	TargetingOptions *TargetingTypesTargetingOptionsService
626}
627
628func NewTargetingTypesTargetingOptionsService(s *Service) *TargetingTypesTargetingOptionsService {
629	rs := &TargetingTypesTargetingOptionsService{s: s}
630	return rs
631}
632
633type TargetingTypesTargetingOptionsService struct {
634	s *Service
635}
636
637func NewUsersService(s *Service) *UsersService {
638	rs := &UsersService{s: s}
639	return rs
640}
641
642type UsersService struct {
643	s *Service
644}
645
646// ActivateManualTriggerRequest: Request message for
647// ManualTriggerService.ActivateManualTrigger.
648type ActivateManualTriggerRequest struct {
649}
650
651// ActiveViewVideoViewabilityMetricConfig: Configuration for custom
652// Active View video viewability metrics.
653type ActiveViewVideoViewabilityMetricConfig struct {
654	// DisplayName: Required. The display name of the custom metric.
655	DisplayName string `json:"displayName,omitempty"`
656
657	// MinimumDuration: The minimum visible video duration required (in
658	// seconds) in order for an impression to be recorded. You must specify
659	// minimum_duration, minimum_quartile or both. If both are specified, an
660	// impression meets the metric criteria if either requirement is met
661	// (whichever happens first).
662	//
663	// Possible values:
664	//   "VIDEO_DURATION_UNSPECIFIED" - Value is not specified or is unknown
665	// in this version.
666	//   "VIDEO_DURATION_SECONDS_NONE" - No duration value.
667	//   "VIDEO_DURATION_SECONDS_0" - 0 seconds.
668	//   "VIDEO_DURATION_SECONDS_1" - 1 second.
669	//   "VIDEO_DURATION_SECONDS_2" - 2 seconds.
670	//   "VIDEO_DURATION_SECONDS_3" - 3 seconds.
671	//   "VIDEO_DURATION_SECONDS_4" - 4 seconds.
672	//   "VIDEO_DURATION_SECONDS_5" - 5 seconds.
673	//   "VIDEO_DURATION_SECONDS_6" - 6 seconds.
674	//   "VIDEO_DURATION_SECONDS_7" - 7 seconds.
675	//   "VIDEO_DURATION_SECONDS_8" - 8 seconds.
676	//   "VIDEO_DURATION_SECONDS_9" - 9 seconds.
677	//   "VIDEO_DURATION_SECONDS_10" - 10 seconds.
678	//   "VIDEO_DURATION_SECONDS_11" - 11 seconds.
679	//   "VIDEO_DURATION_SECONDS_12" - 12 seconds.
680	//   "VIDEO_DURATION_SECONDS_13" - 13 seconds.
681	//   "VIDEO_DURATION_SECONDS_14" - 14 seconds.
682	//   "VIDEO_DURATION_SECONDS_15" - 15 seconds.
683	//   "VIDEO_DURATION_SECONDS_30" - 30 seconds.
684	//   "VIDEO_DURATION_SECONDS_45" - 45 seconds.
685	//   "VIDEO_DURATION_SECONDS_60" - 60 seconds.
686	MinimumDuration string `json:"minimumDuration,omitempty"`
687
688	// MinimumQuartile: The minimum visible video duration required, based
689	// on the video quartiles, in order for an impression to be recorded.
690	// You must specify minimum_duration, minimum_quartile or both. If both
691	// are specified, an impression meets the metric criteria if either
692	// requirement is met (whichever happens first).
693	//
694	// Possible values:
695	//   "VIDEO_DURATION_QUARTILE_UNSPECIFIED" - Value is not specified or
696	// is unknown in this version.
697	//   "VIDEO_DURATION_QUARTILE_NONE" - No quartile value.
698	//   "VIDEO_DURATION_QUARTILE_FIRST" - First quartile.
699	//   "VIDEO_DURATION_QUARTILE_SECOND" - Second quartile (midpoint).
700	//   "VIDEO_DURATION_QUARTILE_THIRD" - Third quartile.
701	//   "VIDEO_DURATION_QUARTILE_FOURTH" - Fourth quartile (completion).
702	MinimumQuartile string `json:"minimumQuartile,omitempty"`
703
704	// MinimumViewability: Required. The minimum percentage of the video
705	// ad's pixels visible on the screen in order for an impression to be
706	// recorded.
707	//
708	// Possible values:
709	//   "VIEWABILITY_PERCENT_UNSPECIFIED" - Value is not specified or is
710	// unknown in this version.
711	//   "VIEWABILITY_PERCENT_0" - 0% viewable.
712	//   "VIEWABILITY_PERCENT_25" - 25% viewable.
713	//   "VIEWABILITY_PERCENT_50" - 50% viewable.
714	//   "VIEWABILITY_PERCENT_75" - 75% viewable.
715	//   "VIEWABILITY_PERCENT_100" - 100% viewable.
716	MinimumViewability string `json:"minimumViewability,omitempty"`
717
718	// MinimumVolume: Required. The minimum percentage of the video ad's
719	// volume required in order for an impression to be recorded.
720	//
721	// Possible values:
722	//   "VIDEO_VOLUME_PERCENT_UNSPECIFIED" - Value is not specified or is
723	// unknown in this version.
724	//   "VIDEO_VOLUME_PERCENT_0" - 0% volume.
725	//   "VIDEO_VOLUME_PERCENT_10" - 10% volume.
726	MinimumVolume string `json:"minimumVolume,omitempty"`
727
728	// ForceSendFields is a list of field names (e.g. "DisplayName") to
729	// unconditionally include in API requests. By default, fields with
730	// empty values are omitted from API requests. However, any non-pointer,
731	// non-interface field appearing in ForceSendFields will be sent to the
732	// server regardless of whether the field is empty or not. This may be
733	// used to include empty fields in Patch requests.
734	ForceSendFields []string `json:"-"`
735
736	// NullFields is a list of field names (e.g. "DisplayName") to include
737	// in API requests with the JSON null value. By default, fields with
738	// empty values are omitted from API requests. However, any field with
739	// an empty value appearing in NullFields will be sent to the server as
740	// null. It is an error if a field in this list has a non-empty value.
741	// This may be used to include null fields in Patch requests.
742	NullFields []string `json:"-"`
743}
744
745func (s *ActiveViewVideoViewabilityMetricConfig) MarshalJSON() ([]byte, error) {
746	type NoMethod ActiveViewVideoViewabilityMetricConfig
747	raw := NoMethod(*s)
748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
749}
750
751// Adloox: Details of Adloox settings.
752type Adloox struct {
753	// ExcludedAdlooxCategories: Adloox's brand safety settings.
754	//
755	// Possible values:
756	//   "ADLOOX_UNSPECIFIED" - This enum is only a placeholder and it
757	// doesn't specify any Adloox option.
758	//   "ADULT_CONTENT_HARD" - Adult content (hard).
759	//   "ADULT_CONTENT_SOFT" - Adult content (soft).
760	//   "ILLEGAL_CONTENT" - Illegal content.
761	//   "BORDERLINE_CONTENT" - Borderline content.
762	//   "DISCRIMINATORY_CONTENT" - Discriminatory content.
763	//   "VIOLENT_CONTENT_WEAPONS" - Violent content & weapons.
764	//   "LOW_VIEWABILITY_DOMAINS" - Low viewability domains.
765	//   "FRAUD" - Fraud.
766	ExcludedAdlooxCategories []string `json:"excludedAdlooxCategories,omitempty"`
767
768	// ForceSendFields is a list of field names (e.g.
769	// "ExcludedAdlooxCategories") to unconditionally include in API
770	// requests. By default, fields with empty values are omitted from API
771	// requests. However, any non-pointer, non-interface field appearing in
772	// ForceSendFields will be sent to the server regardless of whether the
773	// field is empty or not. This may be used to include empty fields in
774	// Patch requests.
775	ForceSendFields []string `json:"-"`
776
777	// NullFields is a list of field names (e.g. "ExcludedAdlooxCategories")
778	// to include in API requests with the JSON null value. By default,
779	// fields with empty values are omitted from API requests. However, any
780	// field with an empty value appearing in NullFields will be sent to the
781	// server as null. It is an error if a field in this list has a
782	// non-empty value. This may be used to include null fields in Patch
783	// requests.
784	NullFields []string `json:"-"`
785}
786
787func (s *Adloox) MarshalJSON() ([]byte, error) {
788	type NoMethod Adloox
789	raw := NoMethod(*s)
790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
791}
792
793// Advertiser: A single advertiser in Display & Video 360 (DV360).
794type Advertiser struct {
795	// AdServerConfig: Required. Immutable. Ad server related settings of
796	// the advertiser.
797	AdServerConfig *AdvertiserAdServerConfig `json:"adServerConfig,omitempty"`
798
799	// AdvertiserId: Output only. The unique ID of the advertiser. Assigned
800	// by the system.
801	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
802
803	// CreativeConfig: Required. Creative related settings of the
804	// advertiser.
805	CreativeConfig *AdvertiserCreativeConfig `json:"creativeConfig,omitempty"`
806
807	// DataAccessConfig: Settings that control how advertiser data may be
808	// accessed.
809	DataAccessConfig *AdvertiserDataAccessConfig `json:"dataAccessConfig,omitempty"`
810
811	// DisplayName: Required. The display name of the advertiser. Must be
812	// UTF-8 encoded with a maximum size of 240 bytes.
813	DisplayName string `json:"displayName,omitempty"`
814
815	// EntityStatus: Required. Controls whether or not insertion orders and
816	// line items of the advertiser can spend their budgets and bid on
817	// inventory. * Accepted values are `ENTITY_STATUS_ACTIVE` and
818	// `ENTITY_STATUS_SCHEDULED_FOR_DELETION`. * If set to
819	// `ENTITY_STATUS_SCHEDULED_FOR_DELETION`, the advertiser will be
820	// deleted 30 days from when it was first scheduled for deletion.
821	//
822	// Possible values:
823	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
824	// specified or is unknown in this version.
825	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
826	// budget.
827	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
828	// budget spending are disabled. An entity can be deleted after
829	// archived. Deleted entities cannot be retrieved.
830	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
831	// budget spending are disabled.
832	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
833	// the entity.
834	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
835	// for deletion.
836	EntityStatus string `json:"entityStatus,omitempty"`
837
838	// GeneralConfig: Required. General settings of the advertiser.
839	GeneralConfig *AdvertiserGeneralConfig `json:"generalConfig,omitempty"`
840
841	// IntegrationDetails: Integration details of the advertiser. Only
842	// integrationCode is currently applicable to advertiser. Other fields
843	// of IntegrationDetails are not supported and will be ignored if
844	// provided.
845	IntegrationDetails *IntegrationDetails `json:"integrationDetails,omitempty"`
846
847	// Name: Output only. The resource name of the advertiser.
848	Name string `json:"name,omitempty"`
849
850	// PartnerId: Required. Immutable. The unique ID of the partner that the
851	// advertiser belongs to.
852	PartnerId int64 `json:"partnerId,omitempty,string"`
853
854	// ServingConfig: Targeting settings related to ad serving of the
855	// advertiser.
856	ServingConfig *AdvertiserTargetingConfig `json:"servingConfig,omitempty"`
857
858	// UpdateTime: Output only. The timestamp when the advertiser was last
859	// updated. Assigned by the system.
860	UpdateTime string `json:"updateTime,omitempty"`
861
862	// ServerResponse contains the HTTP response code and headers from the
863	// server.
864	googleapi.ServerResponse `json:"-"`
865
866	// ForceSendFields is a list of field names (e.g. "AdServerConfig") to
867	// unconditionally include in API requests. By default, fields with
868	// empty values are omitted from API requests. However, any non-pointer,
869	// non-interface field appearing in ForceSendFields will be sent to the
870	// server regardless of whether the field is empty or not. This may be
871	// used to include empty fields in Patch requests.
872	ForceSendFields []string `json:"-"`
873
874	// NullFields is a list of field names (e.g. "AdServerConfig") to
875	// include in API requests with the JSON null value. By default, fields
876	// with empty values are omitted from API requests. However, any field
877	// with an empty value appearing in NullFields will be sent to the
878	// server as null. It is an error if a field in this list has a
879	// non-empty value. This may be used to include null fields in Patch
880	// requests.
881	NullFields []string `json:"-"`
882}
883
884func (s *Advertiser) MarshalJSON() ([]byte, error) {
885	type NoMethod Advertiser
886	raw := NoMethod(*s)
887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
888}
889
890// AdvertiserAdServerConfig: Ad server related settings of an
891// advertiser.
892type AdvertiserAdServerConfig struct {
893	// CmHybridConfig: The configuration for advertisers that use both
894	// Campaign Manager 360 (CM360) and third-party ad servers.
895	CmHybridConfig *CmHybridConfig `json:"cmHybridConfig,omitempty"`
896
897	// ThirdPartyOnlyConfig: The configuration for advertisers that use
898	// third-party ad servers only.
899	ThirdPartyOnlyConfig *ThirdPartyOnlyConfig `json:"thirdPartyOnlyConfig,omitempty"`
900
901	// ForceSendFields is a list of field names (e.g. "CmHybridConfig") to
902	// unconditionally include in API requests. By default, fields with
903	// empty values are omitted from API requests. However, any non-pointer,
904	// non-interface field appearing in ForceSendFields will be sent to the
905	// server regardless of whether the field is empty or not. This may be
906	// used to include empty fields in Patch requests.
907	ForceSendFields []string `json:"-"`
908
909	// NullFields is a list of field names (e.g. "CmHybridConfig") to
910	// include in API requests with the JSON null value. By default, fields
911	// with empty values are omitted from API requests. However, any field
912	// with an empty value appearing in NullFields will be sent to the
913	// server as null. It is an error if a field in this list has a
914	// non-empty value. This may be used to include null fields in Patch
915	// requests.
916	NullFields []string `json:"-"`
917}
918
919func (s *AdvertiserAdServerConfig) MarshalJSON() ([]byte, error) {
920	type NoMethod AdvertiserAdServerConfig
921	raw := NoMethod(*s)
922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
923}
924
925// AdvertiserCreativeConfig: Creatives related settings of an
926// advertiser.
927type AdvertiserCreativeConfig struct {
928	// DynamicCreativeEnabled: Whether or not the advertiser is enabled for
929	// dynamic creatives.
930	DynamicCreativeEnabled bool `json:"dynamicCreativeEnabled,omitempty"`
931
932	// IasClientId: An ID for configuring campaign monitoring provided by
933	// Integral Ad Service (IAS). The DV360 system will append an IAS
934	// "Campaign Monitor" tag containing this ID to the creative tag.
935	IasClientId int64 `json:"iasClientId,omitempty,string"`
936
937	// ObaComplianceDisabled: Whether or not to use DV360's Online
938	// Behavioral Advertising (OBA) compliance. Warning: Changing OBA
939	// settings may cause the audit status of your creatives to be reset by
940	// some ad exchanges, making them ineligible to serve until they are
941	// re-approved.
942	ObaComplianceDisabled bool `json:"obaComplianceDisabled,omitempty"`
943
944	// VideoCreativeDataSharingAuthorized: By setting this field to `true`,
945	// you, on behalf of your company, authorize Google to use video
946	// creatives associated with this Display & Video 360 advertiser to
947	// provide reporting and features related to the advertiser's television
948	// campaigns. Applicable only when the advertiser has a CM360 hybrid ad
949	// server configuration.
950	VideoCreativeDataSharingAuthorized bool `json:"videoCreativeDataSharingAuthorized,omitempty"`
951
952	// ForceSendFields is a list of field names (e.g.
953	// "DynamicCreativeEnabled") to unconditionally include in API requests.
954	// By default, fields with empty values are omitted from API requests.
955	// However, any non-pointer, non-interface field appearing in
956	// ForceSendFields will be sent to the server regardless of whether the
957	// field is empty or not. This may be used to include empty fields in
958	// Patch requests.
959	ForceSendFields []string `json:"-"`
960
961	// NullFields is a list of field names (e.g. "DynamicCreativeEnabled")
962	// to include in API requests with the JSON null value. By default,
963	// fields with empty values are omitted from API requests. However, any
964	// field with an empty value appearing in NullFields will be sent to the
965	// server as null. It is an error if a field in this list has a
966	// non-empty value. This may be used to include null fields in Patch
967	// requests.
968	NullFields []string `json:"-"`
969}
970
971func (s *AdvertiserCreativeConfig) MarshalJSON() ([]byte, error) {
972	type NoMethod AdvertiserCreativeConfig
973	raw := NoMethod(*s)
974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
975}
976
977// AdvertiserDataAccessConfig: Settings that control how advertiser
978// related data may be accessed.
979type AdvertiserDataAccessConfig struct {
980	// SdfConfig: Structured Data Files (SDF) settings for the advertiser.
981	// If not specified, the SDF settings of the parent partner are used.
982	SdfConfig *AdvertiserSdfConfig `json:"sdfConfig,omitempty"`
983
984	// ForceSendFields is a list of field names (e.g. "SdfConfig") to
985	// unconditionally include in API requests. By default, fields with
986	// empty values are omitted from API requests. However, any non-pointer,
987	// non-interface field appearing in ForceSendFields will be sent to the
988	// server regardless of whether the field is empty or not. This may be
989	// used to include empty fields in Patch requests.
990	ForceSendFields []string `json:"-"`
991
992	// NullFields is a list of field names (e.g. "SdfConfig") to include in
993	// API requests with the JSON null value. By default, fields with empty
994	// values are omitted from API requests. However, any field with an
995	// empty value appearing in NullFields will be sent to the server as
996	// null. It is an error if a field in this list has a non-empty value.
997	// This may be used to include null fields in Patch requests.
998	NullFields []string `json:"-"`
999}
1000
1001func (s *AdvertiserDataAccessConfig) MarshalJSON() ([]byte, error) {
1002	type NoMethod AdvertiserDataAccessConfig
1003	raw := NoMethod(*s)
1004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1005}
1006
1007// AdvertiserGeneralConfig: General settings of an advertiser.
1008type AdvertiserGeneralConfig struct {
1009	// CurrencyCode: Required. Immutable. Advertiser's currency in ISO 4217
1010	// format. Accepted codes and the currencies they represent are:
1011	// Currency Code : Currency Name * `ARS` : Argentine Peso * `AUD` :
1012	// Australian Dollar * `BRL` : Brazilian Real * `CAD` : Canadian Dollar
1013	// * `CHF` : Swiss Franc * `CLP` : Chilean Peso * `CNY` : Chinese Yuan *
1014	// `COP` : Colombian Peso * `CZK` : Czech Koruna * `DKK` : Danish Krone
1015	// * `EGP` : Egyption Pound * `EUR` : Euro * `GBP` : British Pound *
1016	// `HKD` : Hong Kong Dollar * `HUF` : Hungarian Forint * `IDR` :
1017	// Indonesian Rupiah * `ILS` : Israeli Shekel * `INR` : Indian Rupee *
1018	// `JPY` : Japanese Yen * `KRW` : South Korean Won * `MXN` : Mexican
1019	// Pesos * `MYR` : Malaysian Ringgit * `NGN` : Nigerian Naira * `NOK` :
1020	// Norwegian Krone * `NZD` : New Zealand Dollar * `PEN` : Peruvian Nuevo
1021	// Sol * `PLN` : Polish Zloty * `RON` : New Romanian Leu * `RUB` :
1022	// Russian Ruble * `SEK` : Swedish Krona * `TRY` : Turkish Lira * `TWD`
1023	// : New Taiwan Dollar * `USD` : US Dollar * `ZAR` : South African Rand
1024	CurrencyCode string `json:"currencyCode,omitempty"`
1025
1026	// DomainUrl: Required. The domain URL of the advertiser's primary
1027	// website. The system will send this information to publishers that
1028	// require website URL to associate a campaign with an advertiser.
1029	// Provide a URL with no path or query string, beginning with `http:` or
1030	// `https:`. For example, http://www.example.com
1031	DomainUrl string `json:"domainUrl,omitempty"`
1032
1033	// TimeZone: Output only. The standard TZ database name of the
1034	// advertiser's time zone. For example, `America/New_York`. See more at:
1035	// https://en.wikipedia.org/wiki/List_of_tz_database_time_zones For
1036	// CM360 hybrid advertisers, the time zone is the same as that of the
1037	// associated CM360 account; for third-party only advertisers, the time
1038	// zone is the same as that of the parent partner.
1039	TimeZone string `json:"timeZone,omitempty"`
1040
1041	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
1042	// unconditionally include in API requests. By default, fields with
1043	// empty values are omitted from API requests. However, any non-pointer,
1044	// non-interface field appearing in ForceSendFields will be sent to the
1045	// server regardless of whether the field is empty or not. This may be
1046	// used to include empty fields in Patch requests.
1047	ForceSendFields []string `json:"-"`
1048
1049	// NullFields is a list of field names (e.g. "CurrencyCode") to include
1050	// in API requests with the JSON null value. By default, fields with
1051	// empty values are omitted from API requests. However, any field with
1052	// an empty value appearing in NullFields will be sent to the server as
1053	// null. It is an error if a field in this list has a non-empty value.
1054	// This may be used to include null fields in Patch requests.
1055	NullFields []string `json:"-"`
1056}
1057
1058func (s *AdvertiserGeneralConfig) MarshalJSON() ([]byte, error) {
1059	type NoMethod AdvertiserGeneralConfig
1060	raw := NoMethod(*s)
1061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1062}
1063
1064// AdvertiserSdfConfig: Structured Data Files (SDF) settings of an
1065// advertiser.
1066type AdvertiserSdfConfig struct {
1067	// OverridePartnerSdfConfig: Whether or not this advertiser overrides
1068	// the SDF configuration of its parent partner. By default, an
1069	// advertiser inherits the SDF configuration from the parent partner. To
1070	// override the partner configuration, set this field to `true` and
1071	// provide the new configuration in sdfConfig.
1072	OverridePartnerSdfConfig bool `json:"overridePartnerSdfConfig,omitempty"`
1073
1074	// SdfConfig: The SDF configuration for the advertiser. * Required when
1075	// overridePartnerSdfConfig is `true`. * Output only when
1076	// overridePartnerSdfConfig is `false`.
1077	SdfConfig *SdfConfig `json:"sdfConfig,omitempty"`
1078
1079	// ForceSendFields is a list of field names (e.g.
1080	// "OverridePartnerSdfConfig") to unconditionally include in API
1081	// requests. By default, fields with empty values are omitted from API
1082	// requests. However, any non-pointer, non-interface field appearing in
1083	// ForceSendFields will be sent to the server regardless of whether the
1084	// field is empty or not. This may be used to include empty fields in
1085	// Patch requests.
1086	ForceSendFields []string `json:"-"`
1087
1088	// NullFields is a list of field names (e.g. "OverridePartnerSdfConfig")
1089	// to include in API requests with the JSON null value. By default,
1090	// fields with empty values are omitted from API requests. However, any
1091	// field with an empty value appearing in NullFields will be sent to the
1092	// server as null. It is an error if a field in this list has a
1093	// non-empty value. This may be used to include null fields in Patch
1094	// requests.
1095	NullFields []string `json:"-"`
1096}
1097
1098func (s *AdvertiserSdfConfig) MarshalJSON() ([]byte, error) {
1099	type NoMethod AdvertiserSdfConfig
1100	raw := NoMethod(*s)
1101	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1102}
1103
1104// AdvertiserTargetingConfig: Targeting settings related to ad serving
1105// of an advertiser.
1106type AdvertiserTargetingConfig struct {
1107	// ExemptTvFromViewabilityTargeting: Whether or not connected TV devices
1108	// are exempt from viewability targeting for all video line items under
1109	// the advertiser.
1110	ExemptTvFromViewabilityTargeting bool `json:"exemptTvFromViewabilityTargeting,omitempty"`
1111
1112	// ForceSendFields is a list of field names (e.g.
1113	// "ExemptTvFromViewabilityTargeting") to unconditionally include in API
1114	// requests. By default, fields with empty values are omitted from API
1115	// requests. However, any non-pointer, non-interface field appearing in
1116	// ForceSendFields will be sent to the server regardless of whether the
1117	// field is empty or not. This may be used to include empty fields in
1118	// Patch requests.
1119	ForceSendFields []string `json:"-"`
1120
1121	// NullFields is a list of field names (e.g.
1122	// "ExemptTvFromViewabilityTargeting") to include in API requests with
1123	// the JSON null value. By default, fields with empty values are omitted
1124	// from API requests. However, any field with an empty value appearing
1125	// in NullFields will be sent to the server as null. It is an error if a
1126	// field in this list has a non-empty value. This may be used to include
1127	// null fields in Patch requests.
1128	NullFields []string `json:"-"`
1129}
1130
1131func (s *AdvertiserTargetingConfig) MarshalJSON() ([]byte, error) {
1132	type NoMethod AdvertiserTargetingConfig
1133	raw := NoMethod(*s)
1134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1135}
1136
1137// AgeRangeAssignedTargetingOptionDetails: Represents a targetable age
1138// range. This will be populated in the details field of an
1139// AssignedTargetingOption when targeting_type is
1140// `TARGETING_TYPE_AGE_RANGE`.
1141type AgeRangeAssignedTargetingOptionDetails struct {
1142	// AgeRange: Output only. The age range of an audience. We only support
1143	// targeting a continuous age range of an audience. Thus, the age range
1144	// represented in this field can be 1) targeted solely, or, 2) part of a
1145	// larger continuous age range. The reach of a continuous age range
1146	// targeting can be expanded by also targeting an audience of an unknown
1147	// age.
1148	//
1149	// Possible values:
1150	//   "AGE_RANGE_UNSPECIFIED" - Default value when age range is not
1151	// specified in this version. This enum is a placeholder for default
1152	// value and does not represent a real age range option.
1153	//   "AGE_RANGE_18_24" - The age range of the audience is 18 to 24.
1154	//   "AGE_RANGE_25_34" - The age range of the audience is 25 to 34.
1155	//   "AGE_RANGE_35_44" - The age range of the audience is 35 to 44.
1156	//   "AGE_RANGE_45_54" - The age range of the audience is 45 to 54.
1157	//   "AGE_RANGE_55_64" - The age range of the audience is 55 to 64.
1158	//   "AGE_RANGE_65_PLUS" - The age range of the audience is 65 and up.
1159	//   "AGE_RANGE_UNKNOWN" - The age range of the audience is unknown.
1160	AgeRange string `json:"ageRange,omitempty"`
1161
1162	// TargetingOptionId: Required. The targeting_option_id of a
1163	// TargetingOption of type `TARGETING_TYPE_AGE_RANGE`.
1164	TargetingOptionId string `json:"targetingOptionId,omitempty"`
1165
1166	// ForceSendFields is a list of field names (e.g. "AgeRange") to
1167	// unconditionally include in API requests. By default, fields with
1168	// empty values are omitted from API requests. However, any non-pointer,
1169	// non-interface field appearing in ForceSendFields will be sent to the
1170	// server regardless of whether the field is empty or not. This may be
1171	// used to include empty fields in Patch requests.
1172	ForceSendFields []string `json:"-"`
1173
1174	// NullFields is a list of field names (e.g. "AgeRange") to include in
1175	// API requests with the JSON null value. By default, fields with empty
1176	// values are omitted from API requests. However, any field with an
1177	// empty value appearing in NullFields will be sent to the server as
1178	// null. It is an error if a field in this list has a non-empty value.
1179	// This may be used to include null fields in Patch requests.
1180	NullFields []string `json:"-"`
1181}
1182
1183func (s *AgeRangeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
1184	type NoMethod AgeRangeAssignedTargetingOptionDetails
1185	raw := NoMethod(*s)
1186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1187}
1188
1189// AgeRangeTargetingOptionDetails: Represents a targetable age range.
1190// This will be populated in the age_range_details field when
1191// targeting_type is `TARGETING_TYPE_AGE_RANGE`.
1192type AgeRangeTargetingOptionDetails struct {
1193	// AgeRange: Output only. The age range of an audience.
1194	//
1195	// Possible values:
1196	//   "AGE_RANGE_UNSPECIFIED" - Default value when age range is not
1197	// specified in this version. This enum is a placeholder for default
1198	// value and does not represent a real age range option.
1199	//   "AGE_RANGE_18_24" - The age range of the audience is 18 to 24.
1200	//   "AGE_RANGE_25_34" - The age range of the audience is 25 to 34.
1201	//   "AGE_RANGE_35_44" - The age range of the audience is 35 to 44.
1202	//   "AGE_RANGE_45_54" - The age range of the audience is 45 to 54.
1203	//   "AGE_RANGE_55_64" - The age range of the audience is 55 to 64.
1204	//   "AGE_RANGE_65_PLUS" - The age range of the audience is 65 and up.
1205	//   "AGE_RANGE_UNKNOWN" - The age range of the audience is unknown.
1206	AgeRange string `json:"ageRange,omitempty"`
1207
1208	// ForceSendFields is a list of field names (e.g. "AgeRange") to
1209	// unconditionally include in API requests. By default, fields with
1210	// empty values are omitted from API requests. However, any non-pointer,
1211	// non-interface field appearing in ForceSendFields will be sent to the
1212	// server regardless of whether the field is empty or not. This may be
1213	// used to include empty fields in Patch requests.
1214	ForceSendFields []string `json:"-"`
1215
1216	// NullFields is a list of field names (e.g. "AgeRange") to include in
1217	// API requests with the JSON null value. By default, fields with empty
1218	// values are omitted from API requests. However, any field with an
1219	// empty value appearing in NullFields will be sent to the server as
1220	// null. It is an error if a field in this list has a non-empty value.
1221	// This may be used to include null fields in Patch requests.
1222	NullFields []string `json:"-"`
1223}
1224
1225func (s *AgeRangeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
1226	type NoMethod AgeRangeTargetingOptionDetails
1227	raw := NoMethod(*s)
1228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1229}
1230
1231// AppAssignedTargetingOptionDetails: Details for assigned app targeting
1232// option. This will be populated in the details field of an
1233// AssignedTargetingOption when targeting_type is `TARGETING_TYPE_APP`.
1234type AppAssignedTargetingOptionDetails struct {
1235	// AppId: Required. The ID of the app. Android's Play store app uses
1236	// bundle ID, for example `com.google.android.gm`. Apple's App store app
1237	// ID uses 9 digit string, for example `422689480`.
1238	AppId string `json:"appId,omitempty"`
1239
1240	// AppPlatform: Indicates the platform of the targeted app. If this
1241	// field is not specified, the app platform will be assumed to be mobile
1242	// (i.e., Android or iOS), and we will derive the appropriate mobile
1243	// platform from the app ID.
1244	//
1245	// Possible values:
1246	//   "APP_PLATFORM_UNSPECIFIED" - Default value when app platform is not
1247	// specified in this version. This enum is a placeholder for default
1248	// value and does not represent a real platform option.
1249	//   "APP_PLATFORM_IOS" - The app platform is iOS.
1250	//   "APP_PLATFORM_ANDROID" - The app platform is Android.
1251	//   "APP_PLATFORM_ROKU" - The app platform is Roku.
1252	//   "APP_PLATFORM_AMAZON_FIRETV" - The app platform is Amazon FireTV.
1253	//   "APP_PLATFORM_PLAYSTATION" - The app platform is Playstation.
1254	//   "APP_PLATFORM_APPLE_TV" - The app platform is Apple TV.
1255	//   "APP_PLATFORM_XBOX" - The app platform is Xbox.
1256	//   "APP_PLATFORM_SAMSUNG_TV" - The app platform is Samsung TV.
1257	//   "APP_PLATFORM_ANDROID_TV" - The app platform is Android TV.
1258	//   "APP_PLATFORM_GENERIC_CTV" - The app platform is a CTV platform
1259	// that is not explicitly listed elsewhere.
1260	AppPlatform string `json:"appPlatform,omitempty"`
1261
1262	// DisplayName: Output only. The display name of the app.
1263	DisplayName string `json:"displayName,omitempty"`
1264
1265	// Negative: Indicates if this option is being negatively targeted.
1266	Negative bool `json:"negative,omitempty"`
1267
1268	// ForceSendFields is a list of field names (e.g. "AppId") to
1269	// unconditionally include in API requests. By default, fields with
1270	// empty values are omitted from API requests. However, any non-pointer,
1271	// non-interface field appearing in ForceSendFields will be sent to the
1272	// server regardless of whether the field is empty or not. This may be
1273	// used to include empty fields in Patch requests.
1274	ForceSendFields []string `json:"-"`
1275
1276	// NullFields is a list of field names (e.g. "AppId") to include in API
1277	// requests with the JSON null value. By default, fields with empty
1278	// values are omitted from API requests. However, any field with an
1279	// empty value appearing in NullFields will be sent to the server as
1280	// null. It is an error if a field in this list has a non-empty value.
1281	// This may be used to include null fields in Patch requests.
1282	NullFields []string `json:"-"`
1283}
1284
1285func (s *AppAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
1286	type NoMethod AppAssignedTargetingOptionDetails
1287	raw := NoMethod(*s)
1288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1289}
1290
1291// AppCategoryAssignedTargetingOptionDetails: Details for assigned app
1292// category targeting option. This will be populated in the
1293// app_category_details field of an AssignedTargetingOption when
1294// targeting_type is `TARGETING_TYPE_APP_CATEGORY`.
1295type AppCategoryAssignedTargetingOptionDetails struct {
1296	// DisplayName: Output only. The display name of the app category.
1297	DisplayName string `json:"displayName,omitempty"`
1298
1299	// Negative: Indicates if this option is being negatively targeted.
1300	Negative bool `json:"negative,omitempty"`
1301
1302	// TargetingOptionId: Required. The targeting_option_id field when
1303	// targeting_type is `TARGETING_TYPE_APP_CATEGORY`.
1304	TargetingOptionId string `json:"targetingOptionId,omitempty"`
1305
1306	// ForceSendFields is a list of field names (e.g. "DisplayName") to
1307	// unconditionally include in API requests. By default, fields with
1308	// empty values are omitted from API requests. However, any non-pointer,
1309	// non-interface field appearing in ForceSendFields will be sent to the
1310	// server regardless of whether the field is empty or not. This may be
1311	// used to include empty fields in Patch requests.
1312	ForceSendFields []string `json:"-"`
1313
1314	// NullFields is a list of field names (e.g. "DisplayName") to include
1315	// in API requests with the JSON null value. By default, fields with
1316	// empty values are omitted from API requests. However, any field with
1317	// an empty value appearing in NullFields will be sent to the server as
1318	// null. It is an error if a field in this list has a non-empty value.
1319	// This may be used to include null fields in Patch requests.
1320	NullFields []string `json:"-"`
1321}
1322
1323func (s *AppCategoryAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
1324	type NoMethod AppCategoryAssignedTargetingOptionDetails
1325	raw := NoMethod(*s)
1326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1327}
1328
1329// AppCategoryTargetingOptionDetails: Represents a targetable collection
1330// of apps. A collection lets you target dynamic groups of related apps
1331// that are maintained by the platform, for example `All Apps/Google
1332// Play/Games`. This will be populated in the app_category_details field
1333// when targeting_type is `TARGETING_TYPE_APP_CATEGORY`.
1334type AppCategoryTargetingOptionDetails struct {
1335	// DisplayName: Output only. The name of the app collection.
1336	DisplayName string `json:"displayName,omitempty"`
1337
1338	// ForceSendFields is a list of field names (e.g. "DisplayName") to
1339	// unconditionally include in API requests. By default, fields with
1340	// empty values are omitted from API requests. However, any non-pointer,
1341	// non-interface field appearing in ForceSendFields will be sent to the
1342	// server regardless of whether the field is empty or not. This may be
1343	// used to include empty fields in Patch requests.
1344	ForceSendFields []string `json:"-"`
1345
1346	// NullFields is a list of field names (e.g. "DisplayName") to include
1347	// in API requests with the JSON null value. By default, fields with
1348	// empty values are omitted from API requests. However, any field with
1349	// an empty value appearing in NullFields will be sent to the server as
1350	// null. It is an error if a field in this list has a non-empty value.
1351	// This may be used to include null fields in Patch requests.
1352	NullFields []string `json:"-"`
1353}
1354
1355func (s *AppCategoryTargetingOptionDetails) MarshalJSON() ([]byte, error) {
1356	type NoMethod AppCategoryTargetingOptionDetails
1357	raw := NoMethod(*s)
1358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1359}
1360
1361// Asset: A single asset.
1362type Asset struct {
1363	// Content: The asset content. For uploaded assets, the content is the
1364	// serving path.
1365	Content string `json:"content,omitempty"`
1366
1367	// MediaId: Media ID of the uploaded asset. This is a unique identifier
1368	// for the asset. This ID can be passed to other API calls, e.g.
1369	// CreateCreative to associate the asset with a creative.
1370	MediaId int64 `json:"mediaId,omitempty,string"`
1371
1372	// ForceSendFields is a list of field names (e.g. "Content") to
1373	// unconditionally include in API requests. By default, fields with
1374	// empty values are omitted from API requests. However, any non-pointer,
1375	// non-interface field appearing in ForceSendFields will be sent to the
1376	// server regardless of whether the field is empty or not. This may be
1377	// used to include empty fields in Patch requests.
1378	ForceSendFields []string `json:"-"`
1379
1380	// NullFields is a list of field names (e.g. "Content") to include in
1381	// API requests with the JSON null value. By default, fields with empty
1382	// values are omitted from API requests. However, any field with an
1383	// empty value appearing in NullFields will be sent to the server as
1384	// null. It is an error if a field in this list has a non-empty value.
1385	// This may be used to include null fields in Patch requests.
1386	NullFields []string `json:"-"`
1387}
1388
1389func (s *Asset) MarshalJSON() ([]byte, error) {
1390	type NoMethod Asset
1391	raw := NoMethod(*s)
1392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1393}
1394
1395// AssetAssociation: Asset association for the creative.
1396type AssetAssociation struct {
1397	// Asset: The associated asset.
1398	Asset *Asset `json:"asset,omitempty"`
1399
1400	// Role: The role of this asset for the creative.
1401	//
1402	// Possible values:
1403	//   "ASSET_ROLE_UNSPECIFIED" - Asset role is not specified or is
1404	// unknown in this version.
1405	//   "ASSET_ROLE_MAIN" - The asset is the main asset of the creative.
1406	//   "ASSET_ROLE_BACKUP" - The asset is a backup asset of the creative.
1407	//   "ASSET_ROLE_POLITE_LOAD" - The asset is a polite load asset of the
1408	// creative.
1409	//   "ASSET_ROLE_HEADLINE" - Headline of a native creative. The content
1410	// must be UTF-8 encoded with a length of no more than 25 characters.
1411	// This role is only supported in following creative_type: *
1412	// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1413	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1414	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1415	// `CREATIVE_TYPE_NATIVE_VIDEO`
1416	//   "ASSET_ROLE_LONG_HEADLINE" - Long headline of a native creative.
1417	// The content must be UTF-8 encoded with a length of no more than 50
1418	// characters. This role is only supported in following creative_type: *
1419	// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1420	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1421	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1422	// `CREATIVE_TYPE_NATIVE_VIDEO`
1423	//   "ASSET_ROLE_BODY" - Body text of a native creative. The content
1424	// must be UTF-8 encoded with a length of no more than 90 characters.
1425	// This role is only supported in following creative_type: *
1426	// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1427	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1428	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1429	// `CREATIVE_TYPE_NATIVE_VIDEO`
1430	//   "ASSET_ROLE_LONG_BODY" - Long body text of a native creative. The
1431	// content must be UTF-8 encoded with a length of no more than 150
1432	// characters. This role is only supported in following creative_type: *
1433	// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1434	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1435	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1436	// `CREATIVE_TYPE_NATIVE_VIDEO`
1437	//   "ASSET_ROLE_CAPTION_URL" - A short, friendly version of the landing
1438	// page URL to show in the creative. This URL gives people an idea of
1439	// where they'll arrive after they click on the creative. The content
1440	// must be UTF-8 encoded with a length of no more than 30 characters.
1441	// For example, if the landing page URL is
1442	// 'http://www.example.com/page', the caption URL can be 'example.com'.
1443	// The protocol (http://) is optional, but the URL can't contain spaces
1444	// or special characters. This role is only supported in following
1445	// creative_type: * `CREATIVE_TYPE_NATIVE` *
1446	// `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_CALL_TO_ACTION" - The text to use on the call-to-action
1451	// button of a native creative. The content must be UTF-8 encoded with a
1452	// length of no more than 15 characters. This role is only supported in
1453	// following creative_type: * `CREATIVE_TYPE_NATIVE` *
1454	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1455	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1456	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1457	// `CREATIVE_TYPE_NATIVE_VIDEO`
1458	//   "ASSET_ROLE_ADVERTISER_NAME" - The text that identifies the
1459	// advertiser or brand name. The content must be UTF-8 encoded with a
1460	// length of no more than 25 characters. This role is only supported in
1461	// following creative_type: * `CREATIVE_TYPE_NATIVE` *
1462	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1463	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1464	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
1465	// `CREATIVE_TYPE_NATIVE_VIDEO`
1466	//   "ASSET_ROLE_PRICE" - The purchase price of your app in the Google
1467	// play store or iOS app store (for example, $5.99). Note that this
1468	// value is not automatically synced with the actual value listed in the
1469	// store. It will always be the one provided when save the creative. The
1470	// content must be UTF-8 encoded with a length of no more than 15
1471	// characters. This role is only supported in following creative_type: *
1472	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1473	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
1474	//   "ASSET_ROLE_ANDROID_APP_ID" - The ID of an Android app in the
1475	// Google play store. You can find this ID in the App’s Google Play
1476	// Store URL after ‘id’. For example, in
1477	// https://play.google.com/store/apps/details?id=com.company.appname the
1478	// identifier is com.company.appname. This role is only supported in
1479	// following creative_type: * `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1480	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
1481	//   "ASSET_ROLE_IOS_APP_ID" - The ID of an iOS app in the Apple app
1482	// store. This ID number can be found in the Apple App Store URL as the
1483	// string of numbers directly after "id". For example, in
1484	// https://apps.apple.com/us/app/gmail-email-by-google/id422689480 the
1485	// ID is 422689480. This role is only supported in following
1486	// creative_type: * `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1487	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
1488	//   "ASSET_ROLE_RATING" - The rating of an app in the Google play store
1489	// or iOS app store. Note that this value is not automatically synced
1490	// with the actual rating in the store. It will always be the one
1491	// provided when save the creative. This role is only supported in
1492	// following creative_type: * `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1493	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
1494	//   "ASSET_ROLE_ICON" - The icon of a creative. This role is only
1495	// supported and required in following creative_type: *
1496	// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
1497	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
1498	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE`
1499	//   "ASSET_ROLE_COVER_IMAGE" - The cover image of a native video
1500	// creative. This role is only supported and required in following
1501	// creative_type: * `CREATIVE_TYPE_VIDEO`
1502	Role string `json:"role,omitempty"`
1503
1504	// ForceSendFields is a list of field names (e.g. "Asset") to
1505	// unconditionally include in API requests. By default, fields with
1506	// empty values are omitted from API requests. However, any non-pointer,
1507	// non-interface field appearing in ForceSendFields will be sent to the
1508	// server regardless of whether the field is empty or not. This may be
1509	// used to include empty fields in Patch requests.
1510	ForceSendFields []string `json:"-"`
1511
1512	// NullFields is a list of field names (e.g. "Asset") to include in API
1513	// requests with the JSON null value. By default, fields with empty
1514	// values are omitted from API requests. However, any field with an
1515	// empty value appearing in NullFields will be sent to the server as
1516	// null. It is an error if a field in this list has a non-empty value.
1517	// This may be used to include null fields in Patch requests.
1518	NullFields []string `json:"-"`
1519}
1520
1521func (s *AssetAssociation) MarshalJSON() ([]byte, error) {
1522	type NoMethod AssetAssociation
1523	raw := NoMethod(*s)
1524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1525}
1526
1527// AssignedInventorySource: An assignment between a targetable inventory
1528// source and an inventory source group.
1529type AssignedInventorySource struct {
1530	// AssignedInventorySourceId: Output only. The unique ID of the assigned
1531	// inventory source. The ID is only unique within a given inventory
1532	// source group. It may be reused in other contexts.
1533	AssignedInventorySourceId int64 `json:"assignedInventorySourceId,omitempty,string"`
1534
1535	// InventorySourceId: Required. The ID of the inventory source entity
1536	// being targeted.
1537	InventorySourceId string `json:"inventorySourceId,omitempty"`
1538
1539	// Name: Output only. The resource name of the assigned inventory
1540	// source.
1541	Name string `json:"name,omitempty"`
1542
1543	// ServerResponse contains the HTTP response code and headers from the
1544	// server.
1545	googleapi.ServerResponse `json:"-"`
1546
1547	// ForceSendFields is a list of field names (e.g.
1548	// "AssignedInventorySourceId") to unconditionally include in API
1549	// requests. By default, fields with empty values are omitted from API
1550	// requests. However, any non-pointer, non-interface field appearing in
1551	// ForceSendFields will be sent to the server regardless of whether the
1552	// field is empty or not. This may be used to include empty fields in
1553	// Patch requests.
1554	ForceSendFields []string `json:"-"`
1555
1556	// NullFields is a list of field names (e.g.
1557	// "AssignedInventorySourceId") to include in API requests with the JSON
1558	// null value. By default, fields with empty values are omitted from API
1559	// requests. However, any field with an empty value appearing in
1560	// NullFields will be sent to the server as null. It is an error if a
1561	// field in this list has a non-empty value. This may be used to include
1562	// null fields in Patch requests.
1563	NullFields []string `json:"-"`
1564}
1565
1566func (s *AssignedInventorySource) MarshalJSON() ([]byte, error) {
1567	type NoMethod AssignedInventorySource
1568	raw := NoMethod(*s)
1569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1570}
1571
1572// AssignedLocation: An assignment between a location list and a
1573// relevant targeting option. Currently, geo region targeting options
1574// are the only supported option for assignment.
1575type AssignedLocation struct {
1576	// AssignedLocationId: Output only. The unique ID of the assigned
1577	// location. The ID is only unique within a location list. It may be
1578	// reused in other contexts.
1579	AssignedLocationId int64 `json:"assignedLocationId,omitempty,string"`
1580
1581	// Name: Output only. The resource name of the assigned location.
1582	Name string `json:"name,omitempty"`
1583
1584	// TargetingOptionId: Required. The ID of the targeting option assigned
1585	// to the location list. Must be of type TARGETING_TYPE_GEO_REGION.
1586	TargetingOptionId string `json:"targetingOptionId,omitempty"`
1587
1588	// ServerResponse contains the HTTP response code and headers from the
1589	// server.
1590	googleapi.ServerResponse `json:"-"`
1591
1592	// ForceSendFields is a list of field names (e.g. "AssignedLocationId")
1593	// to unconditionally include in API requests. By default, fields with
1594	// empty values are omitted from API requests. However, any non-pointer,
1595	// non-interface field appearing in ForceSendFields will be sent to the
1596	// server regardless of whether the field is empty or not. This may be
1597	// used to include empty fields in Patch requests.
1598	ForceSendFields []string `json:"-"`
1599
1600	// NullFields is a list of field names (e.g. "AssignedLocationId") to
1601	// include in API requests with the JSON null value. By default, fields
1602	// with empty values are omitted from API requests. However, any field
1603	// with an empty value appearing in NullFields will be sent to the
1604	// server as null. It is an error if a field in this list has a
1605	// non-empty value. This may be used to include null fields in Patch
1606	// requests.
1607	NullFields []string `json:"-"`
1608}
1609
1610func (s *AssignedLocation) MarshalJSON() ([]byte, error) {
1611	type NoMethod AssignedLocation
1612	raw := NoMethod(*s)
1613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1614}
1615
1616// AssignedTargetingOption: A single assigned targeting option, which
1617// defines the state of a targeting option for an entity with targeting
1618// settings.
1619type AssignedTargetingOption struct {
1620	// AgeRangeDetails: Age range details. This field will be populated when
1621	// the targeting_type is `TARGETING_TYPE_AGE_RANGE`.
1622	AgeRangeDetails *AgeRangeAssignedTargetingOptionDetails `json:"ageRangeDetails,omitempty"`
1623
1624	// AppCategoryDetails: App category details. This field will be
1625	// populated when the targeting_type is `TARGETING_TYPE_APP_CATEGORY`.
1626	AppCategoryDetails *AppCategoryAssignedTargetingOptionDetails `json:"appCategoryDetails,omitempty"`
1627
1628	// AppDetails: App details. This field will be populated when the
1629	// targeting_type is `TARGETING_TYPE_APP`.
1630	AppDetails *AppAssignedTargetingOptionDetails `json:"appDetails,omitempty"`
1631
1632	// AssignedTargetingOptionId: Output only. The unique ID of the assigned
1633	// targeting option. The ID is only unique within a given resource and
1634	// targeting type. It may be reused in other contexts.
1635	AssignedTargetingOptionId string `json:"assignedTargetingOptionId,omitempty"`
1636
1637	// AudienceGroupDetails: Audience targeting details. This field will be
1638	// populated when the targeting_type is `TARGETING_TYPE_AUDIENCE_GROUP`.
1639	// You can only target one audience group option per resource.
1640	AudienceGroupDetails *AudienceGroupAssignedTargetingOptionDetails `json:"audienceGroupDetails,omitempty"`
1641
1642	// AuthorizedSellerStatusDetails: Authorized seller status details. This
1643	// field will be populated when the targeting_type is
1644	// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. You can only target one
1645	// authorized seller status option per resource. If a resource doesn't
1646	// have an authorized seller status option, all authorized sellers
1647	// indicated as DIRECT or RESELLER in the ads.txt file are targeted by
1648	// default.
1649	AuthorizedSellerStatusDetails *AuthorizedSellerStatusAssignedTargetingOptionDetails `json:"authorizedSellerStatusDetails,omitempty"`
1650
1651	// BrowserDetails: Browser details. This field will be populated when
1652	// the targeting_type is `TARGETING_TYPE_BROWSER`.
1653	BrowserDetails *BrowserAssignedTargetingOptionDetails `json:"browserDetails,omitempty"`
1654
1655	// CarrierAndIspDetails: Carrier and ISP details. This field will be
1656	// populated when the targeting_type is
1657	// `TARGETING_TYPE_CARRIER_AND_ISP`.
1658	CarrierAndIspDetails *CarrierAndIspAssignedTargetingOptionDetails `json:"carrierAndIspDetails,omitempty"`
1659
1660	// CategoryDetails: Category details. This field will be populated when
1661	// the targeting_type is `TARGETING_TYPE_CATEGORY`. Targeting a category
1662	// will also target its subcategories. If a category is excluded from
1663	// targeting and a subcategory is included, the exclusion will take
1664	// precedence.
1665	CategoryDetails *CategoryAssignedTargetingOptionDetails `json:"categoryDetails,omitempty"`
1666
1667	// ChannelDetails: Channel details. This field will be populated when
1668	// the targeting_type is `TARGETING_TYPE_CHANNEL`.
1669	ChannelDetails *ChannelAssignedTargetingOptionDetails `json:"channelDetails,omitempty"`
1670
1671	// ContentInstreamPositionDetails: Content instream position details.
1672	// This field will be populated when the targeting_type is
1673	// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
1674	ContentInstreamPositionDetails *ContentInstreamPositionAssignedTargetingOptionDetails `json:"contentInstreamPositionDetails,omitempty"`
1675
1676	// ContentOutstreamPositionDetails: Content outstream position details.
1677	// This field will be populated when the targeting_type is
1678	// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
1679	ContentOutstreamPositionDetails *ContentOutstreamPositionAssignedTargetingOptionDetails `json:"contentOutstreamPositionDetails,omitempty"`
1680
1681	// DayAndTimeDetails: Day and time details. This field will be populated
1682	// when the targeting_type is `TARGETING_TYPE_DAY_AND_TIME`.
1683	DayAndTimeDetails *DayAndTimeAssignedTargetingOptionDetails `json:"dayAndTimeDetails,omitempty"`
1684
1685	// DeviceMakeModelDetails: Device make and model details. This field
1686	// will be populated when the targeting_type is
1687	// `TARGETING_TYPE_DEVICE_MAKE_MODEL`.
1688	DeviceMakeModelDetails *DeviceMakeModelAssignedTargetingOptionDetails `json:"deviceMakeModelDetails,omitempty"`
1689
1690	// DeviceTypeDetails: Device Type details. This field will be populated
1691	// when the targeting_type is `TARGETING_TYPE_DEVICE_TYPE`.
1692	DeviceTypeDetails *DeviceTypeAssignedTargetingOptionDetails `json:"deviceTypeDetails,omitempty"`
1693
1694	// DigitalContentLabelExclusionDetails: Digital content label details.
1695	// This field will be populated when the targeting_type is
1696	// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`. Digital content
1697	// labels are targeting exclusions. Advertiser level digital content
1698	// label exclusions, if set, are always applied in serving (even though
1699	// they aren't visible in resource settings). Resource settings can
1700	// exclude content labels in addition to advertiser exclusions, but
1701	// can't override them. A line item won't serve if all the digital
1702	// content labels are excluded.
1703	DigitalContentLabelExclusionDetails *DigitalContentLabelAssignedTargetingOptionDetails `json:"digitalContentLabelExclusionDetails,omitempty"`
1704
1705	// EnvironmentDetails: Environment details. This field will be populated
1706	// when the targeting_type is `TARGETING_TYPE_ENVIRONMENT`.
1707	EnvironmentDetails *EnvironmentAssignedTargetingOptionDetails `json:"environmentDetails,omitempty"`
1708
1709	// ExchangeDetails: Exchange details. This field will be populated when
1710	// the targeting_type is `TARGETING_TYPE_EXCHANGE`.
1711	ExchangeDetails *ExchangeAssignedTargetingOptionDetails `json:"exchangeDetails,omitempty"`
1712
1713	// GenderDetails: Gender details. This field will be populated when the
1714	// targeting_type is `TARGETING_TYPE_GENDER`.
1715	GenderDetails *GenderAssignedTargetingOptionDetails `json:"genderDetails,omitempty"`
1716
1717	// GeoRegionDetails: Geographic region details. This field will be
1718	// populated when the targeting_type is `TARGETING_TYPE_GEO_REGION`.
1719	GeoRegionDetails *GeoRegionAssignedTargetingOptionDetails `json:"geoRegionDetails,omitempty"`
1720
1721	// HouseholdIncomeDetails: Household income details. This field will be
1722	// populated when the targeting_type is
1723	// `TARGETING_TYPE_HOUSEHOLD_INCOME`.
1724	HouseholdIncomeDetails *HouseholdIncomeAssignedTargetingOptionDetails `json:"householdIncomeDetails,omitempty"`
1725
1726	// Inheritance: Output only. The inheritance status of the assigned
1727	// targeting option.
1728	//
1729	// Possible values:
1730	//   "INHERITANCE_UNSPECIFIED" - The inheritance is unspecified or
1731	// unknown.
1732	//   "NOT_INHERITED" - The assigned targeting option is not inherited
1733	// from higher level entity.
1734	//   "INHERITED_FROM_PARTNER" - The assigned targeting option is
1735	// inherited from partner targeting settings.
1736	//   "INHERITED_FROM_ADVERTISER" - The assigned targeting option is
1737	// inherited from advertiser targeting settings.
1738	Inheritance string `json:"inheritance,omitempty"`
1739
1740	// InventorySourceDetails: Inventory source details. This field will be
1741	// populated when the targeting_type is
1742	// `TARGETING_TYPE_INVENTORY_SOURCE`.
1743	InventorySourceDetails *InventorySourceAssignedTargetingOptionDetails `json:"inventorySourceDetails,omitempty"`
1744
1745	// InventorySourceGroupDetails: Inventory source group details. This
1746	// field will be populated when the targeting_type is
1747	// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`.
1748	InventorySourceGroupDetails *InventorySourceGroupAssignedTargetingOptionDetails `json:"inventorySourceGroupDetails,omitempty"`
1749
1750	// KeywordDetails: Keyword details. This field will be populated when
1751	// the targeting_type is `TARGETING_TYPE_KEYWORD`. A maximum of 5000
1752	// direct negative keywords can be assigned to a resource. No limit on
1753	// number of positive keywords that can be assigned.
1754	KeywordDetails *KeywordAssignedTargetingOptionDetails `json:"keywordDetails,omitempty"`
1755
1756	// LanguageDetails: Language details. This field will be populated when
1757	// the targeting_type is `TARGETING_TYPE_LANGUAGE`.
1758	LanguageDetails *LanguageAssignedTargetingOptionDetails `json:"languageDetails,omitempty"`
1759
1760	// Name: Output only. The resource name for this assigned targeting
1761	// option.
1762	Name string `json:"name,omitempty"`
1763
1764	// NegativeKeywordListDetails: Keyword details. This field will be
1765	// populated when the targeting_type is
1766	// `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative
1767	// keyword lists can be assigned to a resource.
1768	NegativeKeywordListDetails *NegativeKeywordListAssignedTargetingOptionDetails `json:"negativeKeywordListDetails,omitempty"`
1769
1770	// OnScreenPositionDetails: On screen position details. This field will
1771	// be populated when the targeting_type is
1772	// `TARGETING_TYPE_ON_SCREEN_POSITION`.
1773	OnScreenPositionDetails *OnScreenPositionAssignedTargetingOptionDetails `json:"onScreenPositionDetails,omitempty"`
1774
1775	// OperatingSystemDetails: Operating system details. This field will be
1776	// populated when the targeting_type is
1777	// `TARGETING_TYPE_OPERATING_SYSTEM`.
1778	OperatingSystemDetails *OperatingSystemAssignedTargetingOptionDetails `json:"operatingSystemDetails,omitempty"`
1779
1780	// ParentalStatusDetails: Parental status details. This field will be
1781	// populated when the targeting_type is
1782	// `TARGETING_TYPE_PARENTAL_STATUS`.
1783	ParentalStatusDetails *ParentalStatusAssignedTargetingOptionDetails `json:"parentalStatusDetails,omitempty"`
1784
1785	// ProximityLocationListDetails: Proximity location list details. This
1786	// field will be populated when the targeting_type is
1787	// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`.
1788	ProximityLocationListDetails *ProximityLocationListAssignedTargetingOptionDetails `json:"proximityLocationListDetails,omitempty"`
1789
1790	// RegionalLocationListDetails: Regional location list details. This
1791	// field will be populated when the targeting_type is
1792	// `TARGETING_TYPE_REGIONAL_LOCATION_LIST`.
1793	RegionalLocationListDetails *RegionalLocationListAssignedTargetingOptionDetails `json:"regionalLocationListDetails,omitempty"`
1794
1795	// SensitiveCategoryExclusionDetails: Sensitive category details. This
1796	// field will be populated when the targeting_type is
1797	// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. Sensitive categories
1798	// are targeting exclusions. Advertiser level sensitive category
1799	// exclusions, if set, are always applied in serving (even though they
1800	// aren't visible in resource settings). Resource settings can exclude
1801	// sensitive categories in addition to advertiser exclusions, but can't
1802	// override them.
1803	SensitiveCategoryExclusionDetails *SensitiveCategoryAssignedTargetingOptionDetails `json:"sensitiveCategoryExclusionDetails,omitempty"`
1804
1805	// SubExchangeDetails: Sub-exchange details. This field will be
1806	// populated when the targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`.
1807	SubExchangeDetails *SubExchangeAssignedTargetingOptionDetails `json:"subExchangeDetails,omitempty"`
1808
1809	// TargetingType: Output only. Identifies the type of this assigned
1810	// targeting option.
1811	//
1812	// Possible values:
1813	//   "TARGETING_TYPE_UNSPECIFIED" - Default value when type is not
1814	// specified or is unknown in this version.
1815	//   "TARGETING_TYPE_CHANNEL" - Target a channel (a custom group of
1816	// related websites or apps).
1817	//   "TARGETING_TYPE_APP_CATEGORY" - Target an app category (for
1818	// example, education or puzzle games).
1819	//   "TARGETING_TYPE_APP" - Target a specific app (for example, Angry
1820	// Birds).
1821	//   "TARGETING_TYPE_URL" - Target a specific url (for example,
1822	// quora.com).
1823	//   "TARGETING_TYPE_DAY_AND_TIME" - Target ads during a chosen time
1824	// period on a specific day.
1825	//   "TARGETING_TYPE_AGE_RANGE" - Target ads to a specific age range
1826	// (for example, 18-24).
1827	//   "TARGETING_TYPE_REGIONAL_LOCATION_LIST" - Target ads to the
1828	// specified regions on a regional location list.
1829	//   "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" - Target ads to the
1830	// specified points of interest on a proximity location list.
1831	//   "TARGETING_TYPE_GENDER" - Target ads to a specific gender (for
1832	// example, female or male).
1833	//   "TARGETING_TYPE_VIDEO_PLAYER_SIZE" - Target a specific video player
1834	// size for video ads.
1835	//   "TARGETING_TYPE_USER_REWARDED_CONTENT" - Target user rewarded
1836	// content for video ads.
1837	//   "TARGETING_TYPE_PARENTAL_STATUS" - Target ads to a specific
1838	// parental status (for example, parent or not a parent).
1839	//   "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" - Target video or audio
1840	// ads in a specific content instream position (for example, pre-roll,
1841	// mid-roll, or post-roll).
1842	//   "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" - Target ads in a
1843	// specific content outstream position.
1844	//   "TARGETING_TYPE_DEVICE_TYPE" - Target ads to a specific device type
1845	// (for example, tablet or connected TV).
1846	//   "TARGETING_TYPE_AUDIENCE_GROUP" - Target ads to an audience or
1847	// groups of audiences. Singleton field, at most one can exist on a
1848	// single Lineitem at a time.
1849	//   "TARGETING_TYPE_BROWSER" - Target ads to specific web browsers (for
1850	// example, Chrome).
1851	//   "TARGETING_TYPE_HOUSEHOLD_INCOME" - Target ads to a specific
1852	// household income range (for example, top 10%).
1853	//   "TARGETING_TYPE_ON_SCREEN_POSITION" - Target ads in a specific on
1854	// screen position.
1855	//   "TARGETING_TYPE_THIRD_PARTY_VERIFIER" - Filter web sites through
1856	// third party verification (for example, IAS or DoubleVerify).
1857	//   "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" - Filter web sites
1858	// by specific digital content label ratings (for example, DL-MA:
1859	// suitable only for mature audiences).
1860	//   "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" - Filter website
1861	// content by sensitive categories (for example, adult).
1862	//   "TARGETING_TYPE_ENVIRONMENT" - Target ads to a specific environment
1863	// (for example, web or app).
1864	//   "TARGETING_TYPE_CARRIER_AND_ISP" - Target ads to a specific network
1865	// carrier or internet service provider (ISP) (for example, Comcast or
1866	// Orange).
1867	//   "TARGETING_TYPE_OPERATING_SYSTEM" - Target ads to a specific
1868	// operating system (for example, macOS).
1869	//   "TARGETING_TYPE_DEVICE_MAKE_MODEL" - Target ads to a specific
1870	// device make or model (for example, Roku or Samsung).
1871	//   "TARGETING_TYPE_KEYWORD" - Target ads to a specific keyword (for
1872	// example, dog or retriever).
1873	//   "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" - Target ads to a specific
1874	// negative keyword list.
1875	//   "TARGETING_TYPE_VIEWABILITY" - Target ads to a specific viewability
1876	// (for example, 80% viewable).
1877	//   "TARGETING_TYPE_CATEGORY" - Target ads to a specific content
1878	// category (for example, arts & entertainment).
1879	//   "TARGETING_TYPE_INVENTORY_SOURCE" - Purchase impressions from
1880	// specific deals and auction packages.
1881	//   "TARGETING_TYPE_LANGUAGE" - Target ads to a specific language (for
1882	// example, English or Japanese).
1883	//   "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" - Target ads to ads.txt
1884	// authorized sellers.
1885	//   "TARGETING_TYPE_GEO_REGION" - Target ads to a specific regional
1886	// location (for example, a city or state).
1887	//   "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" - Purchase impressions from
1888	// a group of deals and auction packages.
1889	//   "TARGETING_TYPE_EXCHANGE" - Purchase impressions from specific
1890	// exchanges.
1891	//   "TARGETING_TYPE_SUB_EXCHANGE" - Purchase impressions from specific
1892	// sub-exchanges.
1893	TargetingType string `json:"targetingType,omitempty"`
1894
1895	// ThirdPartyVerifierDetails: Third party verification details. This
1896	// field will be populated when the targeting_type is
1897	// `TARGETING_TYPE_THIRD_PARTY_VERIFIER`.
1898	ThirdPartyVerifierDetails *ThirdPartyVerifierAssignedTargetingOptionDetails `json:"thirdPartyVerifierDetails,omitempty"`
1899
1900	// UrlDetails: URL details. This field will be populated when the
1901	// targeting_type is `TARGETING_TYPE_URL`.
1902	UrlDetails *UrlAssignedTargetingOptionDetails `json:"urlDetails,omitempty"`
1903
1904	// UserRewardedContentDetails: User rewarded content details. This field
1905	// will be populated when the targeting_type is
1906	// `TARGETING_TYPE_USER_REWARDED_CONTENT`.
1907	UserRewardedContentDetails *UserRewardedContentAssignedTargetingOptionDetails `json:"userRewardedContentDetails,omitempty"`
1908
1909	// VideoPlayerSizeDetails: Video player size details. This field will be
1910	// populated when the targeting_type is
1911	// `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.
1912	VideoPlayerSizeDetails *VideoPlayerSizeAssignedTargetingOptionDetails `json:"videoPlayerSizeDetails,omitempty"`
1913
1914	// ViewabilityDetails: Viewability details. This field will be populated
1915	// when the targeting_type is `TARGETING_TYPE_VIEWABILITY`. You can only
1916	// target one viewability option per resource.
1917	ViewabilityDetails *ViewabilityAssignedTargetingOptionDetails `json:"viewabilityDetails,omitempty"`
1918
1919	// ServerResponse contains the HTTP response code and headers from the
1920	// server.
1921	googleapi.ServerResponse `json:"-"`
1922
1923	// ForceSendFields is a list of field names (e.g. "AgeRangeDetails") to
1924	// unconditionally include in API requests. By default, fields with
1925	// empty values are omitted from API requests. However, any non-pointer,
1926	// non-interface field appearing in ForceSendFields will be sent to the
1927	// server regardless of whether the field is empty or not. This may be
1928	// used to include empty fields in Patch requests.
1929	ForceSendFields []string `json:"-"`
1930
1931	// NullFields is a list of field names (e.g. "AgeRangeDetails") to
1932	// include in API requests with the JSON null value. By default, fields
1933	// with empty values are omitted from API requests. However, any field
1934	// with an empty value appearing in NullFields will be sent to the
1935	// server as null. It is an error if a field in this list has a
1936	// non-empty value. This may be used to include null fields in Patch
1937	// requests.
1938	NullFields []string `json:"-"`
1939}
1940
1941func (s *AssignedTargetingOption) MarshalJSON() ([]byte, error) {
1942	type NoMethod AssignedTargetingOption
1943	raw := NoMethod(*s)
1944	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1945}
1946
1947// AssignedUserRole: A single assigned user role, which defines a user's
1948// authorized interaction with a specified partner or advertiser.
1949type AssignedUserRole struct {
1950	// AdvertiserId: The ID of the advertiser that the assigend user role
1951	// applies to.
1952	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
1953
1954	// AssignedUserRoleId: Output only. The ID of the assigned user role.
1955	AssignedUserRoleId string `json:"assignedUserRoleId,omitempty"`
1956
1957	// PartnerId: The ID of the partner that the assigned user role applies
1958	// to.
1959	PartnerId int64 `json:"partnerId,omitempty,string"`
1960
1961	// UserRole: Required. The user role to assign to a user for the entity.
1962	//
1963	// Possible values:
1964	//   "USER_ROLE_UNSPECIFIED" - Default value when the user role is not
1965	// specified or is unknown in this version.
1966	//   "ADMIN" - The user can manage campaigns, creatives, insertion
1967	// orders, line items, and reports for the entity. They can view and
1968	// edit billing information, create or modify users, and enable or
1969	// disable exchanges. This role can only be assigned for a partner
1970	// entity.
1971	//   "ADMIN_PARTNER_CLIENT" - The user can manage campaigns, creatives,
1972	// insertion orders, line items, and reports for the entity. They can
1973	// create and modify other `ADMIN_PARTNER_CLIENT` users and view billing
1974	// information. They cannot view revenue models, markups, or any other
1975	// reseller-sensitive fields. This role can only be assigned for a
1976	// partner entity.
1977	//   "STANDARD" - The user can manage campaigns, creatives, insertion
1978	// orders, line items, and reports for the entity. They cannot create
1979	// and modify users or view billing information.
1980	//   "STANDARD_PLANNER" - The user can view all campaigns, creatives,
1981	// insertion orders, line items, and reports for the entity, including
1982	// all cost data. They can create and modify planning-related features,
1983	// including plans and inventory.
1984	//   "STANDARD_PLANNER_LIMITED" - The user can view all campaigns,
1985	// creatives, insertion orders, line items, and reports for the entity.
1986	// They can create or modify planning-related features, including plans
1987	// and inventory. They have no access to cost data and cannot start,
1988	// accept, or negotiate deals.
1989	//   "STANDARD_PARTNER_CLIENT" - The user can manage campaigns,
1990	// creatives, insertion orders, line items, and reports for the entity.
1991	// They cannot create or modify other users or view billing information.
1992	// They cannot view revenue models, markups, or any other
1993	// reseller-sensitive fields. This role can only be assigned for an
1994	// advertiser entity.
1995	//   "READ_ONLY" - The user can only build reports and view data for the
1996	// entity.
1997	//   "REPORTING_ONLY" - The user can only create and manage reports.
1998	//   "LIMITED_REPORTING_ONLY" - The user can only create and manage the
1999	// following client-safe reports: General, Audience Performance,
2000	// Cross-Partner, Keyword, Order ID, Category, and Third-Party Data
2001	// Provider.
2002	//   "CREATIVE" - The user can view media plan information they need to
2003	// collaborate, but can't view cost-related data or Marketplace.
2004	//   "CREATIVE_ADMIN" - The user can view media plan information they
2005	// need to collaborate, but can't view cost-related data or Marketplace.
2006	// In addition, they can add other creative admins or creative users to
2007	// the entity.
2008	UserRole string `json:"userRole,omitempty"`
2009
2010	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
2011	// unconditionally include in API requests. By default, fields with
2012	// empty values are omitted from API requests. However, any non-pointer,
2013	// non-interface field appearing in ForceSendFields will be sent to the
2014	// server regardless of whether the field is empty or not. This may be
2015	// used to include empty fields in Patch requests.
2016	ForceSendFields []string `json:"-"`
2017
2018	// NullFields is a list of field names (e.g. "AdvertiserId") to include
2019	// in API requests with the JSON null value. By default, fields with
2020	// empty values are omitted from API requests. However, any field with
2021	// an empty value appearing in NullFields will be sent to the server as
2022	// null. It is an error if a field in this list has a non-empty value.
2023	// This may be used to include null fields in Patch requests.
2024	NullFields []string `json:"-"`
2025}
2026
2027func (s *AssignedUserRole) MarshalJSON() ([]byte, error) {
2028	type NoMethod AssignedUserRole
2029	raw := NoMethod(*s)
2030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2031}
2032
2033// AudienceGroupAssignedTargetingOptionDetails: Assigned audience group
2034// targeting option details. This will be populated in the details field
2035// of an AssignedTargetingOption when targeting_type is
2036// `TARGETING_TYPE_AUDIENCE_GROUP`. The relation between each group is
2037// UNION, except for excluded_first_and_third_party_audience_group and
2038// excluded_google_audience_group, of which COMPLEMENT is UNION'ed with
2039// other groups.
2040type AudienceGroupAssignedTargetingOptionDetails struct {
2041	// ExcludedFirstAndThirdPartyAudienceGroup: The first and third party
2042	// audience ids and recencies of the excluded first and third party
2043	// audience group. Used for negative targeting. Its COMPLEMENT is used
2044	// to UNION other audience groups.
2045	ExcludedFirstAndThirdPartyAudienceGroup *FirstAndThirdPartyAudienceGroup `json:"excludedFirstAndThirdPartyAudienceGroup,omitempty"`
2046
2047	// ExcludedGoogleAudienceGroup: The Google audience ids of the excluded
2048	// Google audience group. Used for negative targeting. It's COMPLEMENT
2049	// is used to UNION other audience groups. Only contains Affinity,
2050	// In-market and Installed-apps type Google audiences. All items are
2051	// logically ‘OR’ of each other.
2052	ExcludedGoogleAudienceGroup *GoogleAudienceGroup `json:"excludedGoogleAudienceGroup,omitempty"`
2053
2054	// IncludedCombinedAudienceGroup: The combined audience ids of the
2055	// included combined audience group. Contains combined audience ids
2056	// only.
2057	IncludedCombinedAudienceGroup *CombinedAudienceGroup `json:"includedCombinedAudienceGroup,omitempty"`
2058
2059	// IncludedCustomListGroup: The custom list ids of the included custom
2060	// list group. Contains custom list ids only.
2061	IncludedCustomListGroup *CustomListGroup `json:"includedCustomListGroup,omitempty"`
2062
2063	// IncludedFirstAndThirdPartyAudienceGroups: The first and third party
2064	// audience ids and recencies of included first and third party audience
2065	// groups. Each first and third party audience group contains first and
2066	// third party audience ids only. The relation between each first and
2067	// third party audience group is INTERSECTION, and the result is
2068	// UNION'ed with other audience groups. Repeated groups with same
2069	// settings will be ignored.
2070	IncludedFirstAndThirdPartyAudienceGroups []*FirstAndThirdPartyAudienceGroup `json:"includedFirstAndThirdPartyAudienceGroups,omitempty"`
2071
2072	// IncludedGoogleAudienceGroup: The Google audience ids of the included
2073	// Google audience group. Contains Google audience ids only.
2074	IncludedGoogleAudienceGroup *GoogleAudienceGroup `json:"includedGoogleAudienceGroup,omitempty"`
2075
2076	// ForceSendFields is a list of field names (e.g.
2077	// "ExcludedFirstAndThirdPartyAudienceGroup") to unconditionally include
2078	// in API requests. By default, fields with empty values are omitted
2079	// from API requests. However, any non-pointer, non-interface field
2080	// appearing in ForceSendFields will be sent to the server regardless of
2081	// whether the field is empty or not. This may be used to include empty
2082	// fields in Patch requests.
2083	ForceSendFields []string `json:"-"`
2084
2085	// NullFields is a list of field names (e.g.
2086	// "ExcludedFirstAndThirdPartyAudienceGroup") to include in API requests
2087	// with the JSON null value. By default, fields with empty values are
2088	// omitted from API requests. However, any field with an empty value
2089	// appearing in NullFields will be sent to the server as null. It is an
2090	// error if a field in this list has a non-empty value. This may be used
2091	// to include null fields in Patch requests.
2092	NullFields []string `json:"-"`
2093}
2094
2095func (s *AudienceGroupAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
2096	type NoMethod AudienceGroupAssignedTargetingOptionDetails
2097	raw := NoMethod(*s)
2098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2099}
2100
2101// AudioVideoOffset: The length an audio or a video has been played.
2102type AudioVideoOffset struct {
2103	// Percentage: The offset in percentage of the audio or video duration.
2104	Percentage int64 `json:"percentage,omitempty,string"`
2105
2106	// Seconds: The offset in seconds from the start of the audio or video.
2107	Seconds int64 `json:"seconds,omitempty,string"`
2108
2109	// ForceSendFields is a list of field names (e.g. "Percentage") to
2110	// unconditionally include in API requests. By default, fields with
2111	// empty values are omitted from API requests. However, any non-pointer,
2112	// non-interface field appearing in ForceSendFields will be sent to the
2113	// server regardless of whether the field is empty or not. This may be
2114	// used to include empty fields in Patch requests.
2115	ForceSendFields []string `json:"-"`
2116
2117	// NullFields is a list of field names (e.g. "Percentage") to include in
2118	// API requests with the JSON null value. By default, fields with empty
2119	// values are omitted from API requests. However, any field with an
2120	// empty value appearing in NullFields will be sent to the server as
2121	// null. It is an error if a field in this list has a non-empty value.
2122	// This may be used to include null fields in Patch requests.
2123	NullFields []string `json:"-"`
2124}
2125
2126func (s *AudioVideoOffset) MarshalJSON() ([]byte, error) {
2127	type NoMethod AudioVideoOffset
2128	raw := NoMethod(*s)
2129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2130}
2131
2132// AuditAdvertiserResponse: Response message for
2133// AdvertiserService.AuditAdvertiser.
2134type AuditAdvertiserResponse struct {
2135	// AdGroupCriteriaCount: The number of individual targeting options from
2136	// the following targeting types that are assigned to a line item under
2137	// this advertiser. These individual targeting options count towards the
2138	// limit of 4500000 ad group targeting options per advertiser.
2139	// Qualifying Targeting types: * Channels, URLs, apps, and collections *
2140	// Demographic * Google Audiences, including Affinity, Custom Affinity,
2141	// and In-market audiences * Inventory source * Keyword * Mobile app
2142	// category * User lists * Video targeting * Viewability
2143	AdGroupCriteriaCount int64 `json:"adGroupCriteriaCount,omitempty,string"`
2144
2145	// CampaignCriteriaCount: The number of individual targeting options
2146	// from the following targeting types that are assigned to a line item
2147	// under this advertiser. These individual targeting options count
2148	// towards the limit of 900000 campaign targeting options per
2149	// advertiser. Qualifying Targeting types: * Position * Browser *
2150	// Connection speed * Day and time * Device and operating system *
2151	// Digital content label * Sensitive categories * Environment *
2152	// Geography, including business chains and proximity * ISP * Language *
2153	// Third-party verification
2154	CampaignCriteriaCount int64 `json:"campaignCriteriaCount,omitempty,string"`
2155
2156	// ChannelsCount: The number of channels created under this advertiser.
2157	// These channels count towards the limit of 1000 channels per
2158	// advertiser.
2159	ChannelsCount int64 `json:"channelsCount,omitempty,string"`
2160
2161	// NegativeKeywordListsCount: The number of negative keyword lists
2162	// created under this advertiser. These negative keyword lists count
2163	// towards the limit of 20 negative keyword lists per advertiser.
2164	NegativeKeywordListsCount int64 `json:"negativeKeywordListsCount,omitempty,string"`
2165
2166	// NegativelyTargetedChannelsCount: The number of negatively targeted
2167	// channels created under this advertiser. These negatively targeted
2168	// channels count towards the limit of 5 negatively targeted channels
2169	// per advertiser.
2170	NegativelyTargetedChannelsCount int64 `json:"negativelyTargetedChannelsCount,omitempty,string"`
2171
2172	// UsedCampaignsCount: The number of ACTIVE and PAUSED campaigns under
2173	// this advertiser. These campaigns count towards the limit of 9999
2174	// campaigns per advertiser.
2175	UsedCampaignsCount int64 `json:"usedCampaignsCount,omitempty,string"`
2176
2177	// UsedInsertionOrdersCount: The number of ACTIVE, PAUSED and DRAFT
2178	// insertion orders under this advertiser. These insertion orders count
2179	// towards the limit of 9999 insertion orders per advertiser.
2180	UsedInsertionOrdersCount int64 `json:"usedInsertionOrdersCount,omitempty,string"`
2181
2182	// UsedLineItemsCount: The number of ACTIVE, PAUSED, and DRAFT line
2183	// items under this advertiser. These line items count towards the limit
2184	// of 9999 line items per advertiser.
2185	UsedLineItemsCount int64 `json:"usedLineItemsCount,omitempty,string"`
2186
2187	// ServerResponse contains the HTTP response code and headers from the
2188	// server.
2189	googleapi.ServerResponse `json:"-"`
2190
2191	// ForceSendFields is a list of field names (e.g.
2192	// "AdGroupCriteriaCount") to unconditionally include in API requests.
2193	// By default, fields with empty values are omitted from API requests.
2194	// However, any non-pointer, non-interface field appearing in
2195	// ForceSendFields will be sent to the server regardless of whether the
2196	// field is empty or not. This may be used to include empty fields in
2197	// Patch requests.
2198	ForceSendFields []string `json:"-"`
2199
2200	// NullFields is a list of field names (e.g. "AdGroupCriteriaCount") to
2201	// include in API requests with the JSON null value. By default, fields
2202	// with empty values are omitted from API requests. However, any field
2203	// with an empty value appearing in NullFields will be sent to the
2204	// server as null. It is an error if a field in this list has a
2205	// non-empty value. This may be used to include null fields in Patch
2206	// requests.
2207	NullFields []string `json:"-"`
2208}
2209
2210func (s *AuditAdvertiserResponse) MarshalJSON() ([]byte, error) {
2211	type NoMethod AuditAdvertiserResponse
2212	raw := NoMethod(*s)
2213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2214}
2215
2216// AuthorizedSellerStatusAssignedTargetingOptionDetails: Represents an
2217// assigned authorized seller status. This will be populated in the
2218// details field of an AssignedTargetingOption when targeting_type is
2219// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
2220type AuthorizedSellerStatusAssignedTargetingOptionDetails struct {
2221	// AuthorizedSellerStatus: Output only. The authorized seller status to
2222	// target.
2223	//
2224	// Possible values:
2225	//   "AUTHORIZED_SELLER_STATUS_UNSPECIFIED" - Default value when
2226	// authorized seller status is not specified in this version. This enum
2227	// is a placeholder for default value and does not represent a real
2228	// authorized seller status option.
2229	//   "AUTHORIZED_SELLER_STATUS_AUTHORIZED_DIRECT_SELLERS_ONLY" - Only
2230	// authorized sellers that directly own the inventory being monetized,
2231	// as indicated by a DIRECT declaration in the ads.txt file.
2232	//
2233	// "AUTHORIZED_SELLER_STATUS_AUTHORIZED_AND_NON_PARTICIPATING_PUBLISHERS"
2234	//  - All authorized sellers, including publishers that have not posted
2235	// an ads.txt file. Display & Video 360 automatically disallows
2236	// unauthorized sellers.
2237	AuthorizedSellerStatus string `json:"authorizedSellerStatus,omitempty"`
2238
2239	// TargetingOptionId: Required. The targeting_option_id of a
2240	// TargetingOption of type `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
2241	TargetingOptionId string `json:"targetingOptionId,omitempty"`
2242
2243	// ForceSendFields is a list of field names (e.g.
2244	// "AuthorizedSellerStatus") to unconditionally include in API requests.
2245	// By default, fields with empty values are omitted from API requests.
2246	// However, any non-pointer, non-interface field appearing in
2247	// ForceSendFields will be sent to the server regardless of whether the
2248	// field is empty or not. This may be used to include empty fields in
2249	// Patch requests.
2250	ForceSendFields []string `json:"-"`
2251
2252	// NullFields is a list of field names (e.g. "AuthorizedSellerStatus")
2253	// to include in API requests with the JSON null value. By default,
2254	// fields with empty values are omitted from API requests. However, any
2255	// field with an empty value appearing in NullFields will be sent to the
2256	// server as null. It is an error if a field in this list has a
2257	// non-empty value. This may be used to include null fields in Patch
2258	// requests.
2259	NullFields []string `json:"-"`
2260}
2261
2262func (s *AuthorizedSellerStatusAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
2263	type NoMethod AuthorizedSellerStatusAssignedTargetingOptionDetails
2264	raw := NoMethod(*s)
2265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2266}
2267
2268// AuthorizedSellerStatusTargetingOptionDetails: Represents a targetable
2269// authorized seller status. This will be populated in the
2270// authorized_seller_status_details field when targeting_type is
2271// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.
2272type AuthorizedSellerStatusTargetingOptionDetails struct {
2273	// AuthorizedSellerStatus: Output only. The authorized seller status.
2274	//
2275	// Possible values:
2276	//   "AUTHORIZED_SELLER_STATUS_UNSPECIFIED" - Default value when
2277	// authorized seller status is not specified in this version. This enum
2278	// is a placeholder for default value and does not represent a real
2279	// authorized seller status option.
2280	//   "AUTHORIZED_SELLER_STATUS_AUTHORIZED_DIRECT_SELLERS_ONLY" - Only
2281	// authorized sellers that directly own the inventory being monetized,
2282	// as indicated by a DIRECT declaration in the ads.txt file.
2283	//
2284	// "AUTHORIZED_SELLER_STATUS_AUTHORIZED_AND_NON_PARTICIPATING_PUBLISHERS"
2285	//  - All authorized sellers, including publishers that have not posted
2286	// an ads.txt file. Display & Video 360 automatically disallows
2287	// unauthorized sellers.
2288	AuthorizedSellerStatus string `json:"authorizedSellerStatus,omitempty"`
2289
2290	// ForceSendFields is a list of field names (e.g.
2291	// "AuthorizedSellerStatus") to unconditionally include in API requests.
2292	// By default, fields with empty values are omitted from API requests.
2293	// However, any non-pointer, non-interface field appearing in
2294	// ForceSendFields will be sent to the server regardless of whether the
2295	// field is empty or not. This may be used to include empty fields in
2296	// Patch requests.
2297	ForceSendFields []string `json:"-"`
2298
2299	// NullFields is a list of field names (e.g. "AuthorizedSellerStatus")
2300	// to include in API requests with the JSON null value. By default,
2301	// fields with empty values are omitted from API requests. However, any
2302	// field with an empty value appearing in NullFields will be sent to the
2303	// server as null. It is an error if a field in this list has a
2304	// non-empty value. This may be used to include null fields in Patch
2305	// requests.
2306	NullFields []string `json:"-"`
2307}
2308
2309func (s *AuthorizedSellerStatusTargetingOptionDetails) MarshalJSON() ([]byte, error) {
2310	type NoMethod AuthorizedSellerStatusTargetingOptionDetails
2311	raw := NoMethod(*s)
2312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2313}
2314
2315// BiddingStrategy: Settings that control the bid strategy. Bid strategy
2316// determines the bid price.
2317type BiddingStrategy struct {
2318	// FixedBid: A strategy that uses a fixed bid price.
2319	FixedBid *FixedBidStrategy `json:"fixedBid,omitempty"`
2320
2321	// MaximizeSpendAutoBid: A strategy that automatically adjusts the bid
2322	// to optimize to your performance goal while spending the full budget.
2323	// At insertion order level, the markup_type of line items cannot be set
2324	// to `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`. In addition, when
2325	// performance_goal_type is one of: *
2326	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA` *
2327	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC` *
2328	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED` , the
2329	// line_item_type of the insertion order line items must be either: *
2330	// `LINE_ITEM_TYPE_DISPLAY_DEFAULT` * `LINE_ITEM_TYPE_VIDEO_DEFAULT` ,
2331	// and when performance_goal_type is either: *
2332	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA` *
2333	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN` the line_item_type
2334	// of the insertion order line items must be
2335	// `LINE_ITEM_TYPE_VIDEO_DEFAULT`.
2336	MaximizeSpendAutoBid *MaximizeSpendBidStrategy `json:"maximizeSpendAutoBid,omitempty"`
2337
2338	// PerformanceGoalAutoBid: A strategy that automatically adjusts the bid
2339	// to meet or beat a specified performance goal. It is to be used only
2340	// for a line item entity.
2341	PerformanceGoalAutoBid *PerformanceGoalBidStrategy `json:"performanceGoalAutoBid,omitempty"`
2342
2343	// ForceSendFields is a list of field names (e.g. "FixedBid") to
2344	// unconditionally include in API requests. By default, fields with
2345	// empty values are omitted from API requests. However, any non-pointer,
2346	// non-interface field appearing in ForceSendFields will be sent to the
2347	// server regardless of whether the field is empty or not. This may be
2348	// used to include empty fields in Patch requests.
2349	ForceSendFields []string `json:"-"`
2350
2351	// NullFields is a list of field names (e.g. "FixedBid") to include in
2352	// API requests with the JSON null value. By default, fields with empty
2353	// values are omitted from API requests. However, any field with an
2354	// empty value appearing in NullFields will be sent to the server as
2355	// null. It is an error if a field in this list has a non-empty value.
2356	// This may be used to include null fields in Patch requests.
2357	NullFields []string `json:"-"`
2358}
2359
2360func (s *BiddingStrategy) MarshalJSON() ([]byte, error) {
2361	type NoMethod BiddingStrategy
2362	raw := NoMethod(*s)
2363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2364}
2365
2366// BrowserAssignedTargetingOptionDetails: Details for assigned browser
2367// targeting option. This will be populated in the details field of an
2368// AssignedTargetingOption when targeting_type is
2369// `TARGETING_TYPE_BROWSER`.
2370type BrowserAssignedTargetingOptionDetails struct {
2371	// DisplayName: Output only. The display name of the browser.
2372	DisplayName string `json:"displayName,omitempty"`
2373
2374	// Negative: Indicates if this option is being negatively targeted. All
2375	// assigned browser targeting options on the same resource must have the
2376	// same value for this field.
2377	Negative bool `json:"negative,omitempty"`
2378
2379	// TargetingOptionId: Required. The targeting_option_id of a
2380	// TargetingOption of type `TARGETING_TYPE_BROWSER`.
2381	TargetingOptionId string `json:"targetingOptionId,omitempty"`
2382
2383	// ForceSendFields is a list of field names (e.g. "DisplayName") to
2384	// unconditionally include in API requests. By default, fields with
2385	// empty values are omitted from API requests. However, any non-pointer,
2386	// non-interface field appearing in ForceSendFields will be sent to the
2387	// server regardless of whether the field is empty or not. This may be
2388	// used to include empty fields in Patch requests.
2389	ForceSendFields []string `json:"-"`
2390
2391	// NullFields is a list of field names (e.g. "DisplayName") to include
2392	// in API requests with the JSON null value. By default, fields with
2393	// empty values are omitted from API requests. However, any field with
2394	// an empty value appearing in NullFields will be sent to the server as
2395	// null. It is an error if a field in this list has a non-empty value.
2396	// This may be used to include null fields in Patch requests.
2397	NullFields []string `json:"-"`
2398}
2399
2400func (s *BrowserAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
2401	type NoMethod BrowserAssignedTargetingOptionDetails
2402	raw := NoMethod(*s)
2403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2404}
2405
2406// BrowserTargetingOptionDetails: Represents a targetable browser. This
2407// will be populated in the browser_details field when targeting_type is
2408// `TARGETING_TYPE_BROWSER`.
2409type BrowserTargetingOptionDetails struct {
2410	// DisplayName: Output only. The display name of the browser.
2411	DisplayName string `json:"displayName,omitempty"`
2412
2413	// ForceSendFields is a list of field names (e.g. "DisplayName") to
2414	// unconditionally include in API requests. By default, fields with
2415	// empty values are omitted from API requests. However, any non-pointer,
2416	// non-interface field appearing in ForceSendFields will be sent to the
2417	// server regardless of whether the field is empty or not. This may be
2418	// used to include empty fields in Patch requests.
2419	ForceSendFields []string `json:"-"`
2420
2421	// NullFields is a list of field names (e.g. "DisplayName") to include
2422	// in API requests with the JSON null value. By default, fields with
2423	// empty values are omitted from API requests. However, any field with
2424	// an empty value appearing in NullFields will be sent to the server as
2425	// null. It is an error if a field in this list has a non-empty value.
2426	// This may be used to include null fields in Patch requests.
2427	NullFields []string `json:"-"`
2428}
2429
2430func (s *BrowserTargetingOptionDetails) MarshalJSON() ([]byte, error) {
2431	type NoMethod BrowserTargetingOptionDetails
2432	raw := NoMethod(*s)
2433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2434}
2435
2436// BulkEditAdvertiserAssignedTargetingOptionsRequest: Request message
2437// for BulkEditAdvertiserAssignedTargetingOptions.
2438type BulkEditAdvertiserAssignedTargetingOptionsRequest struct {
2439	// CreateRequests: The assigned targeting options to create in batch,
2440	// specified as a list of `CreateAssignedTargetingOptionsRequest`.
2441	// Supported targeting types: * `TARGETING_TYPE_CHANNEL` *
2442	// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
2443	// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`
2444	CreateRequests []*CreateAssignedTargetingOptionsRequest `json:"createRequests,omitempty"`
2445
2446	// DeleteRequests: The assigned targeting options to delete in batch,
2447	// specified as a list of `DeleteAssignedTargetingOptionsRequest`.
2448	// Supported targeting types: * `TARGETING_TYPE_CHANNEL` *
2449	// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
2450	// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`
2451	DeleteRequests []*DeleteAssignedTargetingOptionsRequest `json:"deleteRequests,omitempty"`
2452
2453	// ForceSendFields is a list of field names (e.g. "CreateRequests") to
2454	// unconditionally include in API requests. By default, fields with
2455	// empty values are omitted from API requests. However, any non-pointer,
2456	// non-interface field appearing in ForceSendFields will be sent to the
2457	// server regardless of whether the field is empty or not. This may be
2458	// used to include empty fields in Patch requests.
2459	ForceSendFields []string `json:"-"`
2460
2461	// NullFields is a list of field names (e.g. "CreateRequests") to
2462	// include in API requests with the JSON null value. By default, fields
2463	// with empty values are omitted from API requests. However, any field
2464	// with an empty value appearing in NullFields will be sent to the
2465	// server as null. It is an error if a field in this list has a
2466	// non-empty value. This may be used to include null fields in Patch
2467	// requests.
2468	NullFields []string `json:"-"`
2469}
2470
2471func (s *BulkEditAdvertiserAssignedTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
2472	type NoMethod BulkEditAdvertiserAssignedTargetingOptionsRequest
2473	raw := NoMethod(*s)
2474	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2475}
2476
2477type BulkEditAdvertiserAssignedTargetingOptionsResponse struct {
2478	// CreatedAssignedTargetingOptions: The list of assigned targeting
2479	// options that have been successfully created. This list will be absent
2480	// if empty.
2481	CreatedAssignedTargetingOptions []*AssignedTargetingOption `json:"createdAssignedTargetingOptions,omitempty"`
2482
2483	// ServerResponse contains the HTTP response code and headers from the
2484	// server.
2485	googleapi.ServerResponse `json:"-"`
2486
2487	// ForceSendFields is a list of field names (e.g.
2488	// "CreatedAssignedTargetingOptions") to unconditionally include in API
2489	// requests. By default, fields with empty values are omitted from API
2490	// requests. However, any non-pointer, non-interface field appearing in
2491	// ForceSendFields will be sent to the server regardless of whether the
2492	// field is empty or not. This may be used to include empty fields in
2493	// Patch requests.
2494	ForceSendFields []string `json:"-"`
2495
2496	// NullFields is a list of field names (e.g.
2497	// "CreatedAssignedTargetingOptions") to include in API requests with
2498	// the JSON null value. By default, fields with empty values are omitted
2499	// from API requests. However, any field with an empty value appearing
2500	// in NullFields will be sent to the server as null. It is an error if a
2501	// field in this list has a non-empty value. This may be used to include
2502	// null fields in Patch requests.
2503	NullFields []string `json:"-"`
2504}
2505
2506func (s *BulkEditAdvertiserAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
2507	type NoMethod BulkEditAdvertiserAssignedTargetingOptionsResponse
2508	raw := NoMethod(*s)
2509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2510}
2511
2512// BulkEditAssignedInventorySourcesRequest: Request message for
2513// AssignedInventorySourceService.BulkEdit.
2514type BulkEditAssignedInventorySourcesRequest struct {
2515	// AdvertiserId: The ID of the advertiser that owns the parent inventory
2516	// source group. The parent partner does not have access to these
2517	// assigned inventory sources.
2518	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
2519
2520	// CreatedAssignedInventorySources: The assigned inventory sources to
2521	// create in bulk, specified as a list of AssignedInventorySources.
2522	CreatedAssignedInventorySources []*AssignedInventorySource `json:"createdAssignedInventorySources,omitempty"`
2523
2524	// DeletedAssignedInventorySources: The IDs of the assigned inventory
2525	// sources to delete in bulk, specified as a list of
2526	// assigned_inventory_source_ids.
2527	DeletedAssignedInventorySources googleapi.Int64s `json:"deletedAssignedInventorySources,omitempty"`
2528
2529	// PartnerId: The ID of the partner that owns the inventory source
2530	// group. Only this partner has write access to these assigned inventory
2531	// sources.
2532	PartnerId int64 `json:"partnerId,omitempty,string"`
2533
2534	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
2535	// unconditionally include in API requests. By default, fields with
2536	// empty values are omitted from API requests. However, any non-pointer,
2537	// non-interface field appearing in ForceSendFields will be sent to the
2538	// server regardless of whether the field is empty or not. This may be
2539	// used to include empty fields in Patch requests.
2540	ForceSendFields []string `json:"-"`
2541
2542	// NullFields is a list of field names (e.g. "AdvertiserId") to include
2543	// in API requests with the JSON null value. By default, fields with
2544	// empty values are omitted from API requests. However, any field with
2545	// an empty value appearing in NullFields will be sent to the server as
2546	// null. It is an error if a field in this list has a non-empty value.
2547	// This may be used to include null fields in Patch requests.
2548	NullFields []string `json:"-"`
2549}
2550
2551func (s *BulkEditAssignedInventorySourcesRequest) MarshalJSON() ([]byte, error) {
2552	type NoMethod BulkEditAssignedInventorySourcesRequest
2553	raw := NoMethod(*s)
2554	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2555}
2556
2557// BulkEditAssignedInventorySourcesResponse: Response message for
2558// AssignedInventorySourceService.BulkEdit.
2559type BulkEditAssignedInventorySourcesResponse struct {
2560	// AssignedInventorySources: The list of assigned inventory sources that
2561	// have been successfully created. This list will be absent if empty.
2562	AssignedInventorySources []*AssignedInventorySource `json:"assignedInventorySources,omitempty"`
2563
2564	// ServerResponse contains the HTTP response code and headers from the
2565	// server.
2566	googleapi.ServerResponse `json:"-"`
2567
2568	// ForceSendFields is a list of field names (e.g.
2569	// "AssignedInventorySources") to unconditionally include in API
2570	// requests. By default, fields with empty values are omitted from API
2571	// requests. However, any non-pointer, non-interface field appearing in
2572	// ForceSendFields will be sent to the server regardless of whether the
2573	// field is empty or not. This may be used to include empty fields in
2574	// Patch requests.
2575	ForceSendFields []string `json:"-"`
2576
2577	// NullFields is a list of field names (e.g. "AssignedInventorySources")
2578	// to include in API requests with the JSON null value. By default,
2579	// fields with empty values are omitted from API requests. However, any
2580	// field with an empty value appearing in NullFields will be sent to the
2581	// server as null. It is an error if a field in this list has a
2582	// non-empty value. This may be used to include null fields in Patch
2583	// requests.
2584	NullFields []string `json:"-"`
2585}
2586
2587func (s *BulkEditAssignedInventorySourcesResponse) MarshalJSON() ([]byte, error) {
2588	type NoMethod BulkEditAssignedInventorySourcesResponse
2589	raw := NoMethod(*s)
2590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2591}
2592
2593// BulkEditAssignedLocationsRequest: Request message for
2594// AssignedLocationService.BulkEditAssignedLocations.
2595type BulkEditAssignedLocationsRequest struct {
2596	// CreatedAssignedLocations: The assigned locations to create in bulk,
2597	// specified as a list of AssignedLocations.
2598	CreatedAssignedLocations []*AssignedLocation `json:"createdAssignedLocations,omitempty"`
2599
2600	// DeletedAssignedLocations: The IDs of the assigned locations to delete
2601	// in bulk, specified as a list of assigned_location_ids.
2602	DeletedAssignedLocations googleapi.Int64s `json:"deletedAssignedLocations,omitempty"`
2603
2604	// ForceSendFields is a list of field names (e.g.
2605	// "CreatedAssignedLocations") to unconditionally include in API
2606	// requests. By default, fields with empty values are omitted from API
2607	// requests. However, any non-pointer, non-interface field appearing in
2608	// ForceSendFields will be sent to the server regardless of whether the
2609	// field is empty or not. This may be used to include empty fields in
2610	// Patch requests.
2611	ForceSendFields []string `json:"-"`
2612
2613	// NullFields is a list of field names (e.g. "CreatedAssignedLocations")
2614	// to include in API requests with the JSON null value. By default,
2615	// fields with empty values are omitted from API requests. However, any
2616	// field with an empty value appearing in NullFields will be sent to the
2617	// server as null. It is an error if a field in this list has a
2618	// non-empty value. This may be used to include null fields in Patch
2619	// requests.
2620	NullFields []string `json:"-"`
2621}
2622
2623func (s *BulkEditAssignedLocationsRequest) MarshalJSON() ([]byte, error) {
2624	type NoMethod BulkEditAssignedLocationsRequest
2625	raw := NoMethod(*s)
2626	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2627}
2628
2629// BulkEditAssignedLocationsResponse: Response message for
2630// AssignedLocationService.BulkEditAssignedLocations.
2631type BulkEditAssignedLocationsResponse struct {
2632	// AssignedLocations: The list of assigned locations that have been
2633	// successfully created. This list will be absent if empty.
2634	AssignedLocations []*AssignedLocation `json:"assignedLocations,omitempty"`
2635
2636	// ServerResponse contains the HTTP response code and headers from the
2637	// server.
2638	googleapi.ServerResponse `json:"-"`
2639
2640	// ForceSendFields is a list of field names (e.g. "AssignedLocations")
2641	// to unconditionally include in API requests. By default, fields with
2642	// empty values are omitted from API requests. However, any non-pointer,
2643	// non-interface field appearing in ForceSendFields will be sent to the
2644	// server regardless of whether the field is empty or not. This may be
2645	// used to include empty fields in Patch requests.
2646	ForceSendFields []string `json:"-"`
2647
2648	// NullFields is a list of field names (e.g. "AssignedLocations") to
2649	// include in API requests with the JSON null value. By default, fields
2650	// with empty values are omitted from API requests. However, any field
2651	// with an empty value appearing in NullFields will be sent to the
2652	// server as null. It is an error if a field in this list has a
2653	// non-empty value. This may be used to include null fields in Patch
2654	// requests.
2655	NullFields []string `json:"-"`
2656}
2657
2658func (s *BulkEditAssignedLocationsResponse) MarshalJSON() ([]byte, error) {
2659	type NoMethod BulkEditAssignedLocationsResponse
2660	raw := NoMethod(*s)
2661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2662}
2663
2664// BulkEditAssignedUserRolesRequest: Request message for
2665// BulkEditAssignedUserRoles.
2666type BulkEditAssignedUserRolesRequest struct {
2667	// CreatedAssignedUserRoles: The assigned user roles to create in batch,
2668	// specified as a list of AssignedUserRoles.
2669	CreatedAssignedUserRoles []*AssignedUserRole `json:"createdAssignedUserRoles,omitempty"`
2670
2671	// DeletedAssignedUserRoles: The assigned user roles to delete in batch,
2672	// specified as a list of assigned_user_role_ids. The format of
2673	// assigned_user_role_id is `entityType-entityid`, for example
2674	// `partner-123`.
2675	DeletedAssignedUserRoles []string `json:"deletedAssignedUserRoles,omitempty"`
2676
2677	// ForceSendFields is a list of field names (e.g.
2678	// "CreatedAssignedUserRoles") to unconditionally include in API
2679	// requests. By default, fields with empty values are omitted from API
2680	// requests. However, any non-pointer, non-interface field appearing in
2681	// ForceSendFields will be sent to the server regardless of whether the
2682	// field is empty or not. This may be used to include empty fields in
2683	// Patch requests.
2684	ForceSendFields []string `json:"-"`
2685
2686	// NullFields is a list of field names (e.g. "CreatedAssignedUserRoles")
2687	// to include in API requests with the JSON null value. By default,
2688	// fields with empty values are omitted from API requests. However, any
2689	// field with an empty value appearing in NullFields will be sent to the
2690	// server as null. It is an error if a field in this list has a
2691	// non-empty value. This may be used to include null fields in Patch
2692	// requests.
2693	NullFields []string `json:"-"`
2694}
2695
2696func (s *BulkEditAssignedUserRolesRequest) MarshalJSON() ([]byte, error) {
2697	type NoMethod BulkEditAssignedUserRolesRequest
2698	raw := NoMethod(*s)
2699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2700}
2701
2702type BulkEditAssignedUserRolesResponse struct {
2703	// CreatedAssignedUserRoles: The list of assigned user roles that have
2704	// been successfully created. This list will be absent if empty.
2705	CreatedAssignedUserRoles []*AssignedUserRole `json:"createdAssignedUserRoles,omitempty"`
2706
2707	// ServerResponse contains the HTTP response code and headers from the
2708	// server.
2709	googleapi.ServerResponse `json:"-"`
2710
2711	// ForceSendFields is a list of field names (e.g.
2712	// "CreatedAssignedUserRoles") to unconditionally include in API
2713	// requests. By default, fields with empty values are omitted from API
2714	// requests. However, any non-pointer, non-interface field appearing in
2715	// ForceSendFields will be sent to the server regardless of whether the
2716	// field is empty or not. This may be used to include empty fields in
2717	// Patch requests.
2718	ForceSendFields []string `json:"-"`
2719
2720	// NullFields is a list of field names (e.g. "CreatedAssignedUserRoles")
2721	// to include in API requests with the JSON null value. By default,
2722	// fields with empty values are omitted from API requests. However, any
2723	// field with an empty value appearing in NullFields will be sent to the
2724	// server as null. It is an error if a field in this list has a
2725	// non-empty value. This may be used to include null fields in Patch
2726	// requests.
2727	NullFields []string `json:"-"`
2728}
2729
2730func (s *BulkEditAssignedUserRolesResponse) MarshalJSON() ([]byte, error) {
2731	type NoMethod BulkEditAssignedUserRolesResponse
2732	raw := NoMethod(*s)
2733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2734}
2735
2736// BulkEditLineItemAssignedTargetingOptionsRequest: Request message for
2737// BulkEditLineItemAssignedTargetingOptions.
2738type BulkEditLineItemAssignedTargetingOptionsRequest struct {
2739	// CreateRequests: The assigned targeting options to create in batch,
2740	// specified as a list of `CreateAssignedTargetingOptionsRequest`.
2741	CreateRequests []*CreateAssignedTargetingOptionsRequest `json:"createRequests,omitempty"`
2742
2743	// DeleteRequests: The assigned targeting options to delete in batch,
2744	// specified as a list of `DeleteAssignedTargetingOptionsRequest`.
2745	DeleteRequests []*DeleteAssignedTargetingOptionsRequest `json:"deleteRequests,omitempty"`
2746
2747	// ForceSendFields is a list of field names (e.g. "CreateRequests") to
2748	// unconditionally include in API requests. By default, fields with
2749	// empty values are omitted from API requests. However, any non-pointer,
2750	// non-interface field appearing in ForceSendFields will be sent to the
2751	// server regardless of whether the field is empty or not. This may be
2752	// used to include empty fields in Patch requests.
2753	ForceSendFields []string `json:"-"`
2754
2755	// NullFields is a list of field names (e.g. "CreateRequests") to
2756	// include in API requests with the JSON null value. By default, fields
2757	// with empty values are omitted from API requests. However, any field
2758	// with an empty value appearing in NullFields will be sent to the
2759	// server as null. It is an error if a field in this list has a
2760	// non-empty value. This may be used to include null fields in Patch
2761	// requests.
2762	NullFields []string `json:"-"`
2763}
2764
2765func (s *BulkEditLineItemAssignedTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
2766	type NoMethod BulkEditLineItemAssignedTargetingOptionsRequest
2767	raw := NoMethod(*s)
2768	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2769}
2770
2771type BulkEditLineItemAssignedTargetingOptionsResponse struct {
2772	// CreatedAssignedTargetingOptions: The list of assigned targeting
2773	// options that have been successfully created. This list will be absent
2774	// if empty.
2775	CreatedAssignedTargetingOptions []*AssignedTargetingOption `json:"createdAssignedTargetingOptions,omitempty"`
2776
2777	// ServerResponse contains the HTTP response code and headers from the
2778	// server.
2779	googleapi.ServerResponse `json:"-"`
2780
2781	// ForceSendFields is a list of field names (e.g.
2782	// "CreatedAssignedTargetingOptions") to unconditionally include in API
2783	// requests. By default, fields with empty values are omitted from API
2784	// requests. However, any non-pointer, non-interface field appearing in
2785	// ForceSendFields will be sent to the server regardless of whether the
2786	// field is empty or not. This may be used to include empty fields in
2787	// Patch requests.
2788	ForceSendFields []string `json:"-"`
2789
2790	// NullFields is a list of field names (e.g.
2791	// "CreatedAssignedTargetingOptions") to include in API requests with
2792	// the JSON null value. By default, fields with empty values are omitted
2793	// from API requests. However, any field with an empty value appearing
2794	// in NullFields will be sent to the server as null. It is an error if a
2795	// field in this list has a non-empty value. This may be used to include
2796	// null fields in Patch requests.
2797	NullFields []string `json:"-"`
2798}
2799
2800func (s *BulkEditLineItemAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
2801	type NoMethod BulkEditLineItemAssignedTargetingOptionsResponse
2802	raw := NoMethod(*s)
2803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2804}
2805
2806// BulkEditNegativeKeywordsRequest: Request message for
2807// NegativeKeywordService.BulkEditNegativeKeywords.
2808type BulkEditNegativeKeywordsRequest struct {
2809	// CreatedNegativeKeywords: The negative keywords to create in batch,
2810	// specified as a list of NegativeKeywords.
2811	CreatedNegativeKeywords []*NegativeKeyword `json:"createdNegativeKeywords,omitempty"`
2812
2813	// DeletedNegativeKeywords: The negative keywords to delete in batch,
2814	// specified as a list of keyword_values.
2815	DeletedNegativeKeywords []string `json:"deletedNegativeKeywords,omitempty"`
2816
2817	// ForceSendFields is a list of field names (e.g.
2818	// "CreatedNegativeKeywords") to unconditionally include in API
2819	// requests. By default, fields with empty values are omitted from API
2820	// requests. However, any non-pointer, non-interface field appearing in
2821	// ForceSendFields will be sent to the server regardless of whether the
2822	// field is empty or not. This may be used to include empty fields in
2823	// Patch requests.
2824	ForceSendFields []string `json:"-"`
2825
2826	// NullFields is a list of field names (e.g. "CreatedNegativeKeywords")
2827	// to include in API requests with the JSON null value. By default,
2828	// fields with empty values are omitted from API requests. However, any
2829	// field with an empty value appearing in NullFields will be sent to the
2830	// server as null. It is an error if a field in this list has a
2831	// non-empty value. This may be used to include null fields in Patch
2832	// requests.
2833	NullFields []string `json:"-"`
2834}
2835
2836func (s *BulkEditNegativeKeywordsRequest) MarshalJSON() ([]byte, error) {
2837	type NoMethod BulkEditNegativeKeywordsRequest
2838	raw := NoMethod(*s)
2839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2840}
2841
2842// BulkEditNegativeKeywordsResponse: Response message for
2843// NegativeKeywordService.BulkEditNegativeKeywords.
2844type BulkEditNegativeKeywordsResponse struct {
2845	// NegativeKeywords: The list of negative keywords that have been
2846	// successfully created. This list will be absent if empty.
2847	NegativeKeywords []*NegativeKeyword `json:"negativeKeywords,omitempty"`
2848
2849	// ServerResponse contains the HTTP response code and headers from the
2850	// server.
2851	googleapi.ServerResponse `json:"-"`
2852
2853	// ForceSendFields is a list of field names (e.g. "NegativeKeywords") to
2854	// unconditionally include in API requests. By default, fields with
2855	// empty values are omitted from API requests. However, any non-pointer,
2856	// non-interface field appearing in ForceSendFields will be sent to the
2857	// server regardless of whether the field is empty or not. This may be
2858	// used to include empty fields in Patch requests.
2859	ForceSendFields []string `json:"-"`
2860
2861	// NullFields is a list of field names (e.g. "NegativeKeywords") to
2862	// include in API requests with the JSON null value. By default, fields
2863	// with empty values are omitted from API requests. However, any field
2864	// with an empty value appearing in NullFields will be sent to the
2865	// server as null. It is an error if a field in this list has a
2866	// non-empty value. This may be used to include null fields in Patch
2867	// requests.
2868	NullFields []string `json:"-"`
2869}
2870
2871func (s *BulkEditNegativeKeywordsResponse) MarshalJSON() ([]byte, error) {
2872	type NoMethod BulkEditNegativeKeywordsResponse
2873	raw := NoMethod(*s)
2874	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2875}
2876
2877// BulkEditPartnerAssignedTargetingOptionsRequest: Request message for
2878// BulkEditPartnerAssignedTargetingOptions.
2879type BulkEditPartnerAssignedTargetingOptionsRequest struct {
2880	// CreateRequests: The assigned targeting options to create in batch,
2881	// specified as a list of `CreateAssignedTargetingOptionsRequest`.
2882	// Supported targeting types: * `TARGETING_TYPE_CHANNEL`
2883	CreateRequests []*CreateAssignedTargetingOptionsRequest `json:"createRequests,omitempty"`
2884
2885	// DeleteRequests: The assigned targeting options to delete in batch,
2886	// specified as a list of `DeleteAssignedTargetingOptionsRequest`.
2887	// Supported targeting types: * `TARGETING_TYPE_CHANNEL`
2888	DeleteRequests []*DeleteAssignedTargetingOptionsRequest `json:"deleteRequests,omitempty"`
2889
2890	// ForceSendFields is a list of field names (e.g. "CreateRequests") to
2891	// unconditionally include in API requests. By default, fields with
2892	// empty values are omitted from API requests. However, any non-pointer,
2893	// non-interface field appearing in ForceSendFields will be sent to the
2894	// server regardless of whether the field is empty or not. This may be
2895	// used to include empty fields in Patch requests.
2896	ForceSendFields []string `json:"-"`
2897
2898	// NullFields is a list of field names (e.g. "CreateRequests") to
2899	// include in API requests with the JSON null value. By default, fields
2900	// with empty values are omitted from API requests. However, any field
2901	// with an empty value appearing in NullFields will be sent to the
2902	// server as null. It is an error if a field in this list has a
2903	// non-empty value. This may be used to include null fields in Patch
2904	// requests.
2905	NullFields []string `json:"-"`
2906}
2907
2908func (s *BulkEditPartnerAssignedTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
2909	type NoMethod BulkEditPartnerAssignedTargetingOptionsRequest
2910	raw := NoMethod(*s)
2911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2912}
2913
2914type BulkEditPartnerAssignedTargetingOptionsResponse struct {
2915	// CreatedAssignedTargetingOptions: The list of assigned targeting
2916	// options that have been successfully created. This list will be absent
2917	// if empty.
2918	CreatedAssignedTargetingOptions []*AssignedTargetingOption `json:"createdAssignedTargetingOptions,omitempty"`
2919
2920	// ServerResponse contains the HTTP response code and headers from the
2921	// server.
2922	googleapi.ServerResponse `json:"-"`
2923
2924	// ForceSendFields is a list of field names (e.g.
2925	// "CreatedAssignedTargetingOptions") to unconditionally include in API
2926	// requests. By default, fields with empty values are omitted from API
2927	// requests. However, any non-pointer, non-interface field appearing in
2928	// ForceSendFields will be sent to the server regardless of whether the
2929	// field is empty or not. This may be used to include empty fields in
2930	// Patch requests.
2931	ForceSendFields []string `json:"-"`
2932
2933	// NullFields is a list of field names (e.g.
2934	// "CreatedAssignedTargetingOptions") to include in API requests with
2935	// the JSON null value. By default, fields with empty values are omitted
2936	// from API requests. However, any field with an empty value appearing
2937	// in NullFields will be sent to the server as null. It is an error if a
2938	// field in this list has a non-empty value. This may be used to include
2939	// null fields in Patch requests.
2940	NullFields []string `json:"-"`
2941}
2942
2943func (s *BulkEditPartnerAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
2944	type NoMethod BulkEditPartnerAssignedTargetingOptionsResponse
2945	raw := NoMethod(*s)
2946	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2947}
2948
2949// BulkEditSitesRequest: Request message for SiteService.BulkEditSites.
2950type BulkEditSitesRequest struct {
2951	// AdvertiserId: The ID of the advertiser that owns the parent channel.
2952	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
2953
2954	// CreatedSites: The sites to create in batch, specified as a list of
2955	// Sites.
2956	CreatedSites []*Site `json:"createdSites,omitempty"`
2957
2958	// DeletedSites: The sites to delete in batch, specified as a list of
2959	// site url_or_app_ids.
2960	DeletedSites []string `json:"deletedSites,omitempty"`
2961
2962	// PartnerId: The ID of the partner that owns the parent channel.
2963	PartnerId int64 `json:"partnerId,omitempty,string"`
2964
2965	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
2966	// unconditionally include in API requests. By default, fields with
2967	// empty values are omitted from API requests. However, any non-pointer,
2968	// non-interface field appearing in ForceSendFields will be sent to the
2969	// server regardless of whether the field is empty or not. This may be
2970	// used to include empty fields in Patch requests.
2971	ForceSendFields []string `json:"-"`
2972
2973	// NullFields is a list of field names (e.g. "AdvertiserId") to include
2974	// in API requests with the JSON null value. By default, fields with
2975	// empty values are omitted from API requests. However, any field with
2976	// an empty value appearing in NullFields will be sent to the server as
2977	// null. It is an error if a field in this list has a non-empty value.
2978	// This may be used to include null fields in Patch requests.
2979	NullFields []string `json:"-"`
2980}
2981
2982func (s *BulkEditSitesRequest) MarshalJSON() ([]byte, error) {
2983	type NoMethod BulkEditSitesRequest
2984	raw := NoMethod(*s)
2985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2986}
2987
2988// BulkEditSitesResponse: Response message for
2989// SiteService.BulkEditSites.
2990type BulkEditSitesResponse struct {
2991	// Sites: The list of sites that have been successfully created. This
2992	// list will be absent if empty.
2993	Sites []*Site `json:"sites,omitempty"`
2994
2995	// ServerResponse contains the HTTP response code and headers from the
2996	// server.
2997	googleapi.ServerResponse `json:"-"`
2998
2999	// ForceSendFields is a list of field names (e.g. "Sites") to
3000	// unconditionally include in API requests. By default, fields with
3001	// empty values are omitted from API requests. However, any non-pointer,
3002	// non-interface field appearing in ForceSendFields will be sent to the
3003	// server regardless of whether the field is empty or not. This may be
3004	// used to include empty fields in Patch requests.
3005	ForceSendFields []string `json:"-"`
3006
3007	// NullFields is a list of field names (e.g. "Sites") to include in API
3008	// requests with the JSON null value. By default, fields with empty
3009	// values are omitted from API requests. However, any field with an
3010	// empty value appearing in NullFields will be sent to the server as
3011	// null. It is an error if a field in this list has a non-empty value.
3012	// This may be used to include null fields in Patch requests.
3013	NullFields []string `json:"-"`
3014}
3015
3016func (s *BulkEditSitesResponse) MarshalJSON() ([]byte, error) {
3017	type NoMethod BulkEditSitesResponse
3018	raw := NoMethod(*s)
3019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3020}
3021
3022type BulkListAdvertiserAssignedTargetingOptionsResponse struct {
3023	// AssignedTargetingOptions: The list of assigned targeting options.
3024	// This list will be absent if empty.
3025	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
3026
3027	// NextPageToken: A token identifying the next page of results. This
3028	// value should be specified as the pageToken in a subsequent
3029	// BulkListAdvertiserAssignedTargetingOptionsRequest to fetch the next
3030	// page of results. This token will be absent if there are no more
3031	// assigned_targeting_options to return.
3032	NextPageToken string `json:"nextPageToken,omitempty"`
3033
3034	// ServerResponse contains the HTTP response code and headers from the
3035	// server.
3036	googleapi.ServerResponse `json:"-"`
3037
3038	// ForceSendFields is a list of field names (e.g.
3039	// "AssignedTargetingOptions") to unconditionally include in API
3040	// requests. By default, fields with empty values are omitted from API
3041	// requests. However, any non-pointer, non-interface field appearing in
3042	// ForceSendFields will be sent to the server regardless of whether the
3043	// field is empty or not. This may be used to include empty fields in
3044	// Patch requests.
3045	ForceSendFields []string `json:"-"`
3046
3047	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
3048	// to include in API requests with the JSON null value. By default,
3049	// fields with empty values are omitted from API requests. However, any
3050	// field with an empty value appearing in NullFields will be sent to the
3051	// server as null. It is an error if a field in this list has a
3052	// non-empty value. This may be used to include null fields in Patch
3053	// requests.
3054	NullFields []string `json:"-"`
3055}
3056
3057func (s *BulkListAdvertiserAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
3058	type NoMethod BulkListAdvertiserAssignedTargetingOptionsResponse
3059	raw := NoMethod(*s)
3060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3061}
3062
3063// BulkListCampaignAssignedTargetingOptionsResponse: Response message
3064// for BulkListCampaignAssignedTargetingOptions.
3065type BulkListCampaignAssignedTargetingOptionsResponse struct {
3066	// AssignedTargetingOptions: The list of assigned targeting options.
3067	// This list will be absent if empty.
3068	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
3069
3070	// NextPageToken: A token identifying the next page of results. This
3071	// value should be specified as the pageToken in a subsequent
3072	// BulkListCampaignAssignedTargetingOptionsRequest to fetch the next
3073	// page of results. This token will be absent if there are no more
3074	// assigned_targeting_options to return.
3075	NextPageToken string `json:"nextPageToken,omitempty"`
3076
3077	// ServerResponse contains the HTTP response code and headers from the
3078	// server.
3079	googleapi.ServerResponse `json:"-"`
3080
3081	// ForceSendFields is a list of field names (e.g.
3082	// "AssignedTargetingOptions") to unconditionally include in API
3083	// requests. By default, fields with empty values are omitted from API
3084	// requests. However, any non-pointer, non-interface field appearing in
3085	// ForceSendFields will be sent to the server regardless of whether the
3086	// field is empty or not. This may be used to include empty fields in
3087	// Patch requests.
3088	ForceSendFields []string `json:"-"`
3089
3090	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
3091	// to include in API requests with the JSON null value. By default,
3092	// fields with empty values are omitted from API requests. However, any
3093	// field with an empty value appearing in NullFields will be sent to the
3094	// server as null. It is an error if a field in this list has a
3095	// non-empty value. This may be used to include null fields in Patch
3096	// requests.
3097	NullFields []string `json:"-"`
3098}
3099
3100func (s *BulkListCampaignAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
3101	type NoMethod BulkListCampaignAssignedTargetingOptionsResponse
3102	raw := NoMethod(*s)
3103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3104}
3105
3106// BulkListInsertionOrderAssignedTargetingOptionsResponse: Response
3107// message for BulkListInsertionOrderAssignedTargetingOptions.
3108type BulkListInsertionOrderAssignedTargetingOptionsResponse struct {
3109	// AssignedTargetingOptions: The list of assigned targeting options.
3110	// This list will be absent if empty.
3111	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
3112
3113	// NextPageToken: A token identifying the next page of results. This
3114	// value should be specified as the pageToken in a subsequent
3115	// BulkListInsertionOrderAssignedTargetingOptionsRequest to fetch the
3116	// next page of results. This token will be absent if there are no more
3117	// assigned_targeting_options to return.
3118	NextPageToken string `json:"nextPageToken,omitempty"`
3119
3120	// ServerResponse contains the HTTP response code and headers from the
3121	// server.
3122	googleapi.ServerResponse `json:"-"`
3123
3124	// ForceSendFields is a list of field names (e.g.
3125	// "AssignedTargetingOptions") to unconditionally include in API
3126	// requests. By default, fields with empty values are omitted from API
3127	// requests. However, any non-pointer, non-interface field appearing in
3128	// ForceSendFields will be sent to the server regardless of whether the
3129	// field is empty or not. This may be used to include empty fields in
3130	// Patch requests.
3131	ForceSendFields []string `json:"-"`
3132
3133	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
3134	// to include in API requests with the JSON null value. By default,
3135	// fields with empty values are omitted from API requests. However, any
3136	// field with an empty value appearing in NullFields will be sent to the
3137	// server as null. It is an error if a field in this list has a
3138	// non-empty value. This may be used to include null fields in Patch
3139	// requests.
3140	NullFields []string `json:"-"`
3141}
3142
3143func (s *BulkListInsertionOrderAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
3144	type NoMethod BulkListInsertionOrderAssignedTargetingOptionsResponse
3145	raw := NoMethod(*s)
3146	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3147}
3148
3149type BulkListLineItemAssignedTargetingOptionsResponse struct {
3150	// AssignedTargetingOptions: The list of assigned targeting options.
3151	// This list will be absent if empty.
3152	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
3153
3154	// NextPageToken: A token identifying the next page of results. This
3155	// value should be specified as the pageToken in a subsequent
3156	// BulkListLineItemAssignedTargetingOptionsRequest to fetch the next
3157	// page of results. This token will be absent if there are no more
3158	// assigned_targeting_options to return.
3159	NextPageToken string `json:"nextPageToken,omitempty"`
3160
3161	// ServerResponse contains the HTTP response code and headers from the
3162	// server.
3163	googleapi.ServerResponse `json:"-"`
3164
3165	// ForceSendFields is a list of field names (e.g.
3166	// "AssignedTargetingOptions") to unconditionally include in API
3167	// requests. By default, fields with empty values are omitted from API
3168	// requests. However, any non-pointer, non-interface field appearing in
3169	// ForceSendFields will be sent to the server regardless of whether the
3170	// field is empty or not. This may be used to include empty fields in
3171	// Patch requests.
3172	ForceSendFields []string `json:"-"`
3173
3174	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
3175	// to include in API requests with the JSON null value. By default,
3176	// fields with empty values are omitted from API requests. However, any
3177	// field with an empty value appearing in NullFields will be sent to the
3178	// server as null. It is an error if a field in this list has a
3179	// non-empty value. This may be used to include null fields in Patch
3180	// requests.
3181	NullFields []string `json:"-"`
3182}
3183
3184func (s *BulkListLineItemAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
3185	type NoMethod BulkListLineItemAssignedTargetingOptionsResponse
3186	raw := NoMethod(*s)
3187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3188}
3189
3190// Campaign: A single campaign.
3191type Campaign struct {
3192	// AdvertiserId: Output only. The unique ID of the advertiser the
3193	// campaign belongs to.
3194	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
3195
3196	// CampaignFlight: Required. The planned spend and duration of the
3197	// campaign.
3198	CampaignFlight *CampaignFlight `json:"campaignFlight,omitempty"`
3199
3200	// CampaignGoal: Required. The goal of the campaign.
3201	CampaignGoal *CampaignGoal `json:"campaignGoal,omitempty"`
3202
3203	// CampaignId: Output only. The unique ID of the campaign. Assigned by
3204	// the system.
3205	CampaignId int64 `json:"campaignId,omitempty,string"`
3206
3207	// DisplayName: Required. The display name of the campaign. Must be
3208	// UTF-8 encoded with a maximum size of 240 bytes.
3209	DisplayName string `json:"displayName,omitempty"`
3210
3211	// EntityStatus: Required. Controls whether or not the insertion orders
3212	// under this campaign can spend their budgets and bid on inventory. *
3213	// Accepted values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`,
3214	// and `ENTITY_STATUS_PAUSED`. * For CreateCampaign method,
3215	// `ENTITY_STATUS_ARCHIVED` is not allowed.
3216	//
3217	// Possible values:
3218	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
3219	// specified or is unknown in this version.
3220	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
3221	// budget.
3222	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
3223	// budget spending are disabled. An entity can be deleted after
3224	// archived. Deleted entities cannot be retrieved.
3225	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
3226	// budget spending are disabled.
3227	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
3228	// the entity.
3229	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
3230	// for deletion.
3231	EntityStatus string `json:"entityStatus,omitempty"`
3232
3233	// FrequencyCap: Required. The frequency cap setting of the campaign.
3234	FrequencyCap *FrequencyCap `json:"frequencyCap,omitempty"`
3235
3236	// Name: Output only. The resource name of the campaign.
3237	Name string `json:"name,omitempty"`
3238
3239	// UpdateTime: Output only. The timestamp when the campaign was last
3240	// updated. Assigned by the system.
3241	UpdateTime string `json:"updateTime,omitempty"`
3242
3243	// ServerResponse contains the HTTP response code and headers from the
3244	// server.
3245	googleapi.ServerResponse `json:"-"`
3246
3247	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
3248	// unconditionally include in API requests. By default, fields with
3249	// empty values are omitted from API requests. However, any non-pointer,
3250	// non-interface field appearing in ForceSendFields will be sent to the
3251	// server regardless of whether the field is empty or not. This may be
3252	// used to include empty fields in Patch requests.
3253	ForceSendFields []string `json:"-"`
3254
3255	// NullFields is a list of field names (e.g. "AdvertiserId") to include
3256	// in API requests with the JSON null value. By default, fields with
3257	// empty values are omitted from API requests. However, any field with
3258	// an empty value appearing in NullFields will be sent to the server as
3259	// null. It is an error if a field in this list has a non-empty value.
3260	// This may be used to include null fields in Patch requests.
3261	NullFields []string `json:"-"`
3262}
3263
3264func (s *Campaign) MarshalJSON() ([]byte, error) {
3265	type NoMethod Campaign
3266	raw := NoMethod(*s)
3267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3268}
3269
3270// CampaignFlight: Settings that track the planned spend and duration of
3271// a campaign.
3272type CampaignFlight struct {
3273	// PlannedDates: Required. The dates that the campaign is expected to
3274	// run. They are resolved relative to the parent advertiser's time zone.
3275	// * The dates specified here will not affect serving. They are used to
3276	// generate alerts and warnings. For example, if the flight date of any
3277	// child insertion order is outside the range of these dates, the user
3278	// interface will show a warning. * `start_date` is required and must be
3279	// the current date or later. * `end_date` is optional. If specified, it
3280	// must be the `start_date` or later. * Any specified date must be
3281	// before the year 2037.
3282	PlannedDates *DateRange `json:"plannedDates,omitempty"`
3283
3284	// PlannedSpendAmountMicros: The amount the campaign is expected to
3285	// spend for its given planned_dates. This will not limit serving, but
3286	// will be used for tracking spend in the DV360 UI. The amount is in
3287	// micros. Must be greater than or equal to 0. For example, 500000000
3288	// represents 500 standard units of the currency.
3289	PlannedSpendAmountMicros int64 `json:"plannedSpendAmountMicros,omitempty,string"`
3290
3291	// ForceSendFields is a list of field names (e.g. "PlannedDates") to
3292	// unconditionally include in API requests. By default, fields with
3293	// empty values are omitted from API requests. However, any non-pointer,
3294	// non-interface field appearing in ForceSendFields will be sent to the
3295	// server regardless of whether the field is empty or not. This may be
3296	// used to include empty fields in Patch requests.
3297	ForceSendFields []string `json:"-"`
3298
3299	// NullFields is a list of field names (e.g. "PlannedDates") to include
3300	// in API requests with the JSON null value. By default, fields with
3301	// empty values are omitted from API requests. However, any field with
3302	// an empty value appearing in NullFields will be sent to the server as
3303	// null. It is an error if a field in this list has a non-empty value.
3304	// This may be used to include null fields in Patch requests.
3305	NullFields []string `json:"-"`
3306}
3307
3308func (s *CampaignFlight) MarshalJSON() ([]byte, error) {
3309	type NoMethod CampaignFlight
3310	raw := NoMethod(*s)
3311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3312}
3313
3314// CampaignGoal: Settings that control the goal of a campaign.
3315type CampaignGoal struct {
3316	// CampaignGoalType: Required. The type of the campaign goal.
3317	//
3318	// Possible values:
3319	//   "CAMPAIGN_GOAL_TYPE_UNSPECIFIED" - Goal value is not specified or
3320	// unknown in this version.
3321	//   "CAMPAIGN_GOAL_TYPE_APP_INSTALL" - Drive app installs or
3322	// engagements.
3323	//   "CAMPAIGN_GOAL_TYPE_BRAND_AWARENESS" - Raise awareness of a brand
3324	// or product.
3325	//   "CAMPAIGN_GOAL_TYPE_OFFLINE_ACTION" - Drive offline or in-store
3326	// sales.
3327	//   "CAMPAIGN_GOAL_TYPE_ONLINE_ACTION" - Drive online action or visits.
3328	CampaignGoalType string `json:"campaignGoalType,omitempty"`
3329
3330	// PerformanceGoal: Required. The performance goal of the campaign.
3331	// Acceptable values for performance_goal_type are: *
3332	// `PERFORMANCE_GOAL_TYPE_CPM` * `PERFORMANCE_GOAL_TYPE_CPC` *
3333	// `PERFORMANCE_GOAL_TYPE_CPA` * `PERFORMANCE_GOAL_TYPE_CPIAVC` *
3334	// `PERFORMANCE_GOAL_TYPE_CTR` * `PERFORMANCE_GOAL_TYPE_VIEWABILITY` *
3335	// `PERFORMANCE_GOAL_TYPE_OTHER`
3336	PerformanceGoal *PerformanceGoal `json:"performanceGoal,omitempty"`
3337
3338	// ForceSendFields is a list of field names (e.g. "CampaignGoalType") to
3339	// unconditionally include in API requests. By default, fields with
3340	// empty values are omitted from API requests. However, any non-pointer,
3341	// non-interface field appearing in ForceSendFields will be sent to the
3342	// server regardless of whether the field is empty or not. This may be
3343	// used to include empty fields in Patch requests.
3344	ForceSendFields []string `json:"-"`
3345
3346	// NullFields is a list of field names (e.g. "CampaignGoalType") to
3347	// include in API requests with the JSON null value. By default, fields
3348	// with empty values are omitted from API requests. However, any field
3349	// with an empty value appearing in NullFields will be sent to the
3350	// server as null. It is an error if a field in this list has a
3351	// non-empty value. This may be used to include null fields in Patch
3352	// requests.
3353	NullFields []string `json:"-"`
3354}
3355
3356func (s *CampaignGoal) MarshalJSON() ([]byte, error) {
3357	type NoMethod CampaignGoal
3358	raw := NoMethod(*s)
3359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3360}
3361
3362// CarrierAndIspAssignedTargetingOptionDetails: Details for assigned
3363// carrier and ISP targeting option. This will be populated in the
3364// details field of an AssignedTargetingOption when targeting_type is
3365// `TARGETING_TYPE_CARRIER_AND_ISP`.
3366type CarrierAndIspAssignedTargetingOptionDetails struct {
3367	// DisplayName: Output only. The display name of the carrier or ISP.
3368	DisplayName string `json:"displayName,omitempty"`
3369
3370	// Negative: Indicates if this option is being negatively targeted. All
3371	// assigned carrier and ISP targeting options on the same resource must
3372	// have the same value for this field.
3373	Negative bool `json:"negative,omitempty"`
3374
3375	// TargetingOptionId: Required. The targeting_option_id of a
3376	// TargetingOption of type `TARGETING_TYPE_CARRIER_AND_ISP`.
3377	TargetingOptionId string `json:"targetingOptionId,omitempty"`
3378
3379	// ForceSendFields is a list of field names (e.g. "DisplayName") to
3380	// unconditionally include in API requests. By default, fields with
3381	// empty values are omitted from API requests. However, any non-pointer,
3382	// non-interface field appearing in ForceSendFields will be sent to the
3383	// server regardless of whether the field is empty or not. This may be
3384	// used to include empty fields in Patch requests.
3385	ForceSendFields []string `json:"-"`
3386
3387	// NullFields is a list of field names (e.g. "DisplayName") to include
3388	// in API requests with the JSON null value. By default, fields with
3389	// empty values are omitted from API requests. However, any field with
3390	// an empty value appearing in NullFields will be sent to the server as
3391	// null. It is an error if a field in this list has a non-empty value.
3392	// This may be used to include null fields in Patch requests.
3393	NullFields []string `json:"-"`
3394}
3395
3396func (s *CarrierAndIspAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3397	type NoMethod CarrierAndIspAssignedTargetingOptionDetails
3398	raw := NoMethod(*s)
3399	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3400}
3401
3402// CarrierAndIspTargetingOptionDetails: Represents a targetable carrier
3403// or ISP. This will be populated in the carrier_and_isp_details field
3404// of a TargetingOption when targeting_type is
3405// `TARGETING_TYPE_CARRIER_AND_ISP`.
3406type CarrierAndIspTargetingOptionDetails struct {
3407	// DisplayName: Output only. The display name of the carrier or ISP.
3408	DisplayName string `json:"displayName,omitempty"`
3409
3410	// Type: Output only. The type indicating if it's carrier or ISP.
3411	//
3412	// Possible values:
3413	//   "CARRIER_AND_ISP_TYPE_UNSPECIFIED" - Default value when type is not
3414	// specified or is unknown in this version.
3415	//   "CARRIER_AND_ISP_TYPE_ISP" - Indicates this targeting resource
3416	// refers to an ISP.
3417	//   "CARRIER_AND_ISP_TYPE_CARRIER" - Indicates this targeting resource
3418	// refers to a mobile carrier.
3419	Type string `json:"type,omitempty"`
3420
3421	// ForceSendFields is a list of field names (e.g. "DisplayName") to
3422	// unconditionally include in API requests. By default, fields with
3423	// empty values are omitted from API requests. However, any non-pointer,
3424	// non-interface field appearing in ForceSendFields will be sent to the
3425	// server regardless of whether the field is empty or not. This may be
3426	// used to include empty fields in Patch requests.
3427	ForceSendFields []string `json:"-"`
3428
3429	// NullFields is a list of field names (e.g. "DisplayName") to include
3430	// in API requests with the JSON null value. By default, fields with
3431	// empty values are omitted from API requests. However, any field with
3432	// an empty value appearing in NullFields will be sent to the server as
3433	// null. It is an error if a field in this list has a non-empty value.
3434	// This may be used to include null fields in Patch requests.
3435	NullFields []string `json:"-"`
3436}
3437
3438func (s *CarrierAndIspTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3439	type NoMethod CarrierAndIspTargetingOptionDetails
3440	raw := NoMethod(*s)
3441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3442}
3443
3444// CategoryAssignedTargetingOptionDetails: Assigned category targeting
3445// option details. This will be populated in the category_details field
3446// when targeting_type is `TARGETING_TYPE_CATEGORY`.
3447type CategoryAssignedTargetingOptionDetails struct {
3448	// DisplayName: Output only. The display name of the category.
3449	DisplayName string `json:"displayName,omitempty"`
3450
3451	// Negative: Indicates if this option is being negatively targeted.
3452	Negative bool `json:"negative,omitempty"`
3453
3454	// TargetingOptionId: Required. The targeting_option_id field when
3455	// targeting_type is `TARGETING_TYPE_CATEGORY`.
3456	TargetingOptionId string `json:"targetingOptionId,omitempty"`
3457
3458	// ForceSendFields is a list of field names (e.g. "DisplayName") to
3459	// unconditionally include in API requests. By default, fields with
3460	// empty values are omitted from API requests. However, any non-pointer,
3461	// non-interface field appearing in ForceSendFields will be sent to the
3462	// server regardless of whether the field is empty or not. This may be
3463	// used to include empty fields in Patch requests.
3464	ForceSendFields []string `json:"-"`
3465
3466	// NullFields is a list of field names (e.g. "DisplayName") to include
3467	// in API requests with the JSON null value. By default, fields with
3468	// empty values are omitted from API requests. However, any field with
3469	// an empty value appearing in NullFields will be sent to the server as
3470	// null. It is an error if a field in this list has a non-empty value.
3471	// This may be used to include null fields in Patch requests.
3472	NullFields []string `json:"-"`
3473}
3474
3475func (s *CategoryAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3476	type NoMethod CategoryAssignedTargetingOptionDetails
3477	raw := NoMethod(*s)
3478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3479}
3480
3481// CategoryTargetingOptionDetails: Represents a targetable category.
3482// This will be populated in the category_details field of a
3483// TargetingOption when targeting_type is `TARGETING_TYPE_CATEGORY`.
3484type CategoryTargetingOptionDetails struct {
3485	// DisplayName: Output only. The display name of the category.
3486	DisplayName string `json:"displayName,omitempty"`
3487
3488	// ForceSendFields is a list of field names (e.g. "DisplayName") to
3489	// unconditionally include in API requests. By default, fields with
3490	// empty values are omitted from API requests. However, any non-pointer,
3491	// non-interface field appearing in ForceSendFields will be sent to the
3492	// server regardless of whether the field is empty or not. This may be
3493	// used to include empty fields in Patch requests.
3494	ForceSendFields []string `json:"-"`
3495
3496	// NullFields is a list of field names (e.g. "DisplayName") to include
3497	// in API requests with the JSON null value. By default, fields with
3498	// empty values are omitted from API requests. However, any field with
3499	// an empty value appearing in NullFields will be sent to the server as
3500	// null. It is an error if a field in this list has a non-empty value.
3501	// This may be used to include null fields in Patch requests.
3502	NullFields []string `json:"-"`
3503}
3504
3505func (s *CategoryTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3506	type NoMethod CategoryTargetingOptionDetails
3507	raw := NoMethod(*s)
3508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3509}
3510
3511// Channel: A single channel. Channels are custom groups of related
3512// websites and apps.
3513type Channel struct {
3514	// AdvertiserId: The ID of the advertiser that owns the channel.
3515	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
3516
3517	// ChannelId: Output only. The unique ID of the channel. Assigned by the
3518	// system.
3519	ChannelId int64 `json:"channelId,omitempty,string"`
3520
3521	// DisplayName: Required. The display name of the channel. Must be UTF-8
3522	// encoded with a maximum length of 240 bytes.
3523	DisplayName string `json:"displayName,omitempty"`
3524
3525	// Name: Output only. The resource name of the channel.
3526	Name string `json:"name,omitempty"`
3527
3528	// PartnerId: The ID of the partner that owns the channel.
3529	PartnerId int64 `json:"partnerId,omitempty,string"`
3530
3531	// ServerResponse contains the HTTP response code and headers from the
3532	// server.
3533	googleapi.ServerResponse `json:"-"`
3534
3535	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
3536	// unconditionally include in API requests. By default, fields with
3537	// empty values are omitted from API requests. However, any non-pointer,
3538	// non-interface field appearing in ForceSendFields will be sent to the
3539	// server regardless of whether the field is empty or not. This may be
3540	// used to include empty fields in Patch requests.
3541	ForceSendFields []string `json:"-"`
3542
3543	// NullFields is a list of field names (e.g. "AdvertiserId") to include
3544	// in API requests with the JSON null value. By default, fields with
3545	// empty values are omitted from API requests. However, any field with
3546	// an empty value appearing in NullFields will be sent to the server as
3547	// null. It is an error if a field in this list has a non-empty value.
3548	// This may be used to include null fields in Patch requests.
3549	NullFields []string `json:"-"`
3550}
3551
3552func (s *Channel) MarshalJSON() ([]byte, error) {
3553	type NoMethod Channel
3554	raw := NoMethod(*s)
3555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3556}
3557
3558// ChannelAssignedTargetingOptionDetails: Details for assigned channel
3559// targeting option. This will be populated in the details field of an
3560// AssignedTargetingOption when targeting_type is
3561// `TARGETING_TYPE_CHANNEL`.
3562type ChannelAssignedTargetingOptionDetails struct {
3563	// ChannelId: Required. ID of the channel. Should refer to the channel
3564	// ID field on a Partner-owned channel
3565	// (partners.channels#Channel.FIELDS.channel_id) or advertiser-owned
3566	// channel (advertisers.channels#Channel.FIELDS.channel_id) resource.
3567	ChannelId int64 `json:"channelId,omitempty,string"`
3568
3569	// Negative: Indicates if this option is being negatively targeted. For
3570	// advertiser level assigned targeting option, this field must be true.
3571	Negative bool `json:"negative,omitempty"`
3572
3573	// ForceSendFields is a list of field names (e.g. "ChannelId") to
3574	// unconditionally include in API requests. By default, fields with
3575	// empty values are omitted from API requests. However, any non-pointer,
3576	// non-interface field appearing in ForceSendFields will be sent to the
3577	// server regardless of whether the field is empty or not. This may be
3578	// used to include empty fields in Patch requests.
3579	ForceSendFields []string `json:"-"`
3580
3581	// NullFields is a list of field names (e.g. "ChannelId") to include in
3582	// API requests with the JSON null value. By default, fields with empty
3583	// values are omitted from API requests. However, any field with an
3584	// empty value appearing in NullFields will be sent to the server as
3585	// null. It is an error if a field in this list has a non-empty value.
3586	// This may be used to include null fields in Patch requests.
3587	NullFields []string `json:"-"`
3588}
3589
3590func (s *ChannelAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3591	type NoMethod ChannelAssignedTargetingOptionDetails
3592	raw := NoMethod(*s)
3593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3594}
3595
3596// CmHybridConfig: Settings for advertisers that use both Campaign
3597// Manager 360 (CM360) and third-party ad servers.
3598type CmHybridConfig struct {
3599	// CmAccountId: Required. Immutable. Account ID of the CM360 Floodlight
3600	// configuration linked with the DV360 advertiser.
3601	CmAccountId int64 `json:"cmAccountId,omitempty,string"`
3602
3603	// CmFloodlightConfigId: Required. Immutable. ID of the CM360 Floodlight
3604	// configuration linked with the DV360 advertiser.
3605	CmFloodlightConfigId int64 `json:"cmFloodlightConfigId,omitempty,string"`
3606
3607	// CmFloodlightLinkingAuthorized: Required. Immutable. By setting this
3608	// field to `true`, you, on behalf of your company, authorize the
3609	// sharing of information from the given Floodlight configuration to
3610	// this Display & Video 360 advertiser.
3611	CmFloodlightLinkingAuthorized bool `json:"cmFloodlightLinkingAuthorized,omitempty"`
3612
3613	// CmSyncableSiteIds: A list of CM360 sites whose placements will be
3614	// synced to DV360 as creatives. If absent or empty in CreateAdvertiser
3615	// method, the system will automatically create a CM360 site. Removing
3616	// sites from this list may cause DV360 creatives synced from CM360 to
3617	// be deleted. At least one site must be specified.
3618	CmSyncableSiteIds googleapi.Int64s `json:"cmSyncableSiteIds,omitempty"`
3619
3620	// Dv360ToCmCostReportingEnabled: Whether or not to report DV360 cost to
3621	// CM360.
3622	Dv360ToCmCostReportingEnabled bool `json:"dv360ToCmCostReportingEnabled,omitempty"`
3623
3624	// Dv360ToCmDataSharingEnabled: Whether or not to include DV360 data in
3625	// CM360 data transfer reports.
3626	Dv360ToCmDataSharingEnabled bool `json:"dv360ToCmDataSharingEnabled,omitempty"`
3627
3628	// ForceSendFields is a list of field names (e.g. "CmAccountId") to
3629	// unconditionally include in API requests. By default, fields with
3630	// empty values are omitted from API requests. However, any non-pointer,
3631	// non-interface field appearing in ForceSendFields will be sent to the
3632	// server regardless of whether the field is empty or not. This may be
3633	// used to include empty fields in Patch requests.
3634	ForceSendFields []string `json:"-"`
3635
3636	// NullFields is a list of field names (e.g. "CmAccountId") to include
3637	// in API requests with the JSON null value. By default, fields with
3638	// empty values are omitted from API requests. However, any field with
3639	// an empty value appearing in NullFields will be sent to the server as
3640	// null. It is an error if a field in this list has a non-empty value.
3641	// This may be used to include null fields in Patch requests.
3642	NullFields []string `json:"-"`
3643}
3644
3645func (s *CmHybridConfig) MarshalJSON() ([]byte, error) {
3646	type NoMethod CmHybridConfig
3647	raw := NoMethod(*s)
3648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3649}
3650
3651// CmTrackingAd: A Campaign Manager 360 tracking ad.
3652type CmTrackingAd struct {
3653	// CmAdId: The ad ID of the campaign manager 360 tracking Ad.
3654	CmAdId int64 `json:"cmAdId,omitempty,string"`
3655
3656	// CmCreativeId: The creative ID of the campaign manager 360 tracking
3657	// Ad.
3658	CmCreativeId int64 `json:"cmCreativeId,omitempty,string"`
3659
3660	// CmPlacementId: The placement ID of the campaign manager 360 tracking
3661	// Ad.
3662	CmPlacementId int64 `json:"cmPlacementId,omitempty,string"`
3663
3664	// ForceSendFields is a list of field names (e.g. "CmAdId") to
3665	// unconditionally include in API requests. By default, fields with
3666	// empty values are omitted from API requests. However, any non-pointer,
3667	// non-interface field appearing in ForceSendFields will be sent to the
3668	// server regardless of whether the field is empty or not. This may be
3669	// used to include empty fields in Patch requests.
3670	ForceSendFields []string `json:"-"`
3671
3672	// NullFields is a list of field names (e.g. "CmAdId") to include in API
3673	// requests with the JSON null value. By default, fields with empty
3674	// values are omitted from API requests. However, any field with an
3675	// empty value appearing in NullFields will be sent to the server as
3676	// null. It is an error if a field in this list has a non-empty value.
3677	// This may be used to include null fields in Patch requests.
3678	NullFields []string `json:"-"`
3679}
3680
3681func (s *CmTrackingAd) MarshalJSON() ([]byte, error) {
3682	type NoMethod CmTrackingAd
3683	raw := NoMethod(*s)
3684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3685}
3686
3687// CombinedAudience: Describes a combined audience resource.
3688type CombinedAudience struct {
3689	// CombinedAudienceId: Output only. The unique ID of the combined
3690	// audience. Assigned by the system.
3691	CombinedAudienceId int64 `json:"combinedAudienceId,omitempty,string"`
3692
3693	// DisplayName: Output only. The display name of the combined audience.
3694	// .
3695	DisplayName string `json:"displayName,omitempty"`
3696
3697	// Name: Output only. The resource name of the combined audience.
3698	Name string `json:"name,omitempty"`
3699
3700	// ServerResponse contains the HTTP response code and headers from the
3701	// server.
3702	googleapi.ServerResponse `json:"-"`
3703
3704	// ForceSendFields is a list of field names (e.g. "CombinedAudienceId")
3705	// to unconditionally include in API requests. By default, fields with
3706	// empty values are omitted from API requests. However, any non-pointer,
3707	// non-interface field appearing in ForceSendFields will be sent to the
3708	// server regardless of whether the field is empty or not. This may be
3709	// used to include empty fields in Patch requests.
3710	ForceSendFields []string `json:"-"`
3711
3712	// NullFields is a list of field names (e.g. "CombinedAudienceId") to
3713	// include in API requests with the JSON null value. By default, fields
3714	// with empty values are omitted from API requests. However, any field
3715	// with an empty value appearing in NullFields will be sent to the
3716	// server as null. It is an error if a field in this list has a
3717	// non-empty value. This may be used to include null fields in Patch
3718	// requests.
3719	NullFields []string `json:"-"`
3720}
3721
3722func (s *CombinedAudience) MarshalJSON() ([]byte, error) {
3723	type NoMethod CombinedAudience
3724	raw := NoMethod(*s)
3725	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3726}
3727
3728// CombinedAudienceGroup: Details of combined audience group. All
3729// combined audience targeting settings are logically ‘OR’ of each
3730// other.
3731type CombinedAudienceGroup struct {
3732	// Settings: Required. All combined audience targeting settings in
3733	// combined audience group. Repeated settings with same id will be
3734	// ignored. The number of combined audience settings should be no more
3735	// than five, error will be thrown otherwise.
3736	Settings []*CombinedAudienceTargetingSetting `json:"settings,omitempty"`
3737
3738	// ForceSendFields is a list of field names (e.g. "Settings") to
3739	// unconditionally include in API requests. By default, fields with
3740	// empty values are omitted from API requests. However, any non-pointer,
3741	// non-interface field appearing in ForceSendFields will be sent to the
3742	// server regardless of whether the field is empty or not. This may be
3743	// used to include empty fields in Patch requests.
3744	ForceSendFields []string `json:"-"`
3745
3746	// NullFields is a list of field names (e.g. "Settings") to include in
3747	// API requests with the JSON null value. By default, fields with empty
3748	// values are omitted from API requests. However, any field with an
3749	// empty value appearing in NullFields will be sent to the server as
3750	// null. It is an error if a field in this list has a non-empty value.
3751	// This may be used to include null fields in Patch requests.
3752	NullFields []string `json:"-"`
3753}
3754
3755func (s *CombinedAudienceGroup) MarshalJSON() ([]byte, error) {
3756	type NoMethod CombinedAudienceGroup
3757	raw := NoMethod(*s)
3758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3759}
3760
3761// CombinedAudienceTargetingSetting: Details of combined audience
3762// targeting setting.
3763type CombinedAudienceTargetingSetting struct {
3764	// CombinedAudienceId: Required. Combined audience id of combined
3765	// audience targeting setting. This id is combined_audience_id.
3766	CombinedAudienceId int64 `json:"combinedAudienceId,omitempty,string"`
3767
3768	// ForceSendFields is a list of field names (e.g. "CombinedAudienceId")
3769	// to unconditionally include in API requests. By default, fields with
3770	// empty values are omitted from API requests. However, any non-pointer,
3771	// non-interface field appearing in ForceSendFields will be sent to the
3772	// server regardless of whether the field is empty or not. This may be
3773	// used to include empty fields in Patch requests.
3774	ForceSendFields []string `json:"-"`
3775
3776	// NullFields is a list of field names (e.g. "CombinedAudienceId") to
3777	// include in API requests with the JSON null value. By default, fields
3778	// with empty values are omitted from API requests. However, any field
3779	// with an empty value appearing in NullFields will be sent to the
3780	// server as null. It is an error if a field in this list has a
3781	// non-empty value. This may be used to include null fields in Patch
3782	// requests.
3783	NullFields []string `json:"-"`
3784}
3785
3786func (s *CombinedAudienceTargetingSetting) MarshalJSON() ([]byte, error) {
3787	type NoMethod CombinedAudienceTargetingSetting
3788	raw := NoMethod(*s)
3789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3790}
3791
3792// ContentInstreamPositionAssignedTargetingOptionDetails: Assigned
3793// content instream position targeting option details. This will be
3794// populated in the content_instream_position_details field when
3795// targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
3796type ContentInstreamPositionAssignedTargetingOptionDetails struct {
3797	// AdType: Output only. The ad type to target. Only applicable to
3798	// insertion order targeting and new line items supporting the specified
3799	// ad type will inherit this targeting option by default. Possible
3800	// values are: * `AD_TYPE_VIDEO`, the setting will be inherited by new
3801	// line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. *
3802	// `AD_TYPE_AUDIO`, the setting will be inherited by new line item when
3803	// line_item_type is `LINE_ITEM_TYPE_AUDIO_DEFAULT`.
3804	//
3805	// Possible values:
3806	//   "AD_TYPE_UNSPECIFIED" - Ad type is not specified or is unknown in
3807	// this version.
3808	//   "AD_TYPE_DISPLAY" - Display creatives, e.g. image and HTML5.
3809	//   "AD_TYPE_VIDEO" - Video creatives, e.g. video ads that play during
3810	// streaming content in video players.
3811	//   "AD_TYPE_AUDIO" - Audio creatives, e.g. audio ads that play during
3812	// audio content.
3813	AdType string `json:"adType,omitempty"`
3814
3815	// ContentInstreamPosition: Output only. The content instream position
3816	// for video or audio ads.
3817	//
3818	// Possible values:
3819	//   "CONTENT_INSTREAM_POSITION_UNSPECIFIED" - Content instream position
3820	// is not specified in this version. This enum is a place holder for a
3821	// default value and does not represent a real in stream ad position.
3822	//   "CONTENT_INSTREAM_POSITION_PRE_ROLL" - Ads that play before
3823	// streaming content.
3824	//   "CONTENT_INSTREAM_POSITION_MID_ROLL" - Ads that play between the
3825	// beginning and end of streaming content.
3826	//   "CONTENT_INSTREAM_POSITION_POST_ROLL" - Ads that play at the end of
3827	// streaming content.
3828	//   "CONTENT_INSTREAM_POSITION_UNKNOWN" - Ads instream position is
3829	// unknown.
3830	ContentInstreamPosition string `json:"contentInstreamPosition,omitempty"`
3831
3832	// TargetingOptionId: Required. The targeting_option_id field when
3833	// targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
3834	TargetingOptionId string `json:"targetingOptionId,omitempty"`
3835
3836	// ForceSendFields is a list of field names (e.g. "AdType") to
3837	// unconditionally include in API requests. By default, fields with
3838	// empty values are omitted from API requests. However, any non-pointer,
3839	// non-interface field appearing in ForceSendFields will be sent to the
3840	// server regardless of whether the field is empty or not. This may be
3841	// used to include empty fields in Patch requests.
3842	ForceSendFields []string `json:"-"`
3843
3844	// NullFields is a list of field names (e.g. "AdType") to include in API
3845	// requests with the JSON null value. By default, fields with empty
3846	// values are omitted from API requests. However, any field with an
3847	// empty value appearing in NullFields will be sent to the server as
3848	// null. It is an error if a field in this list has a non-empty value.
3849	// This may be used to include null fields in Patch requests.
3850	NullFields []string `json:"-"`
3851}
3852
3853func (s *ContentInstreamPositionAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3854	type NoMethod ContentInstreamPositionAssignedTargetingOptionDetails
3855	raw := NoMethod(*s)
3856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3857}
3858
3859// ContentInstreamPositionTargetingOptionDetails: Represents a
3860// targetable content instream position, which could be used by video
3861// and audio ads. This will be populated in the
3862// content_instream_position_details field when targeting_type is
3863// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.
3864type ContentInstreamPositionTargetingOptionDetails struct {
3865	// ContentInstreamPosition: Output only. The content instream position.
3866	//
3867	// Possible values:
3868	//   "CONTENT_INSTREAM_POSITION_UNSPECIFIED" - Content instream position
3869	// is not specified in this version. This enum is a place holder for a
3870	// default value and does not represent a real in stream ad position.
3871	//   "CONTENT_INSTREAM_POSITION_PRE_ROLL" - Ads that play before
3872	// streaming content.
3873	//   "CONTENT_INSTREAM_POSITION_MID_ROLL" - Ads that play between the
3874	// beginning and end of streaming content.
3875	//   "CONTENT_INSTREAM_POSITION_POST_ROLL" - Ads that play at the end of
3876	// streaming content.
3877	//   "CONTENT_INSTREAM_POSITION_UNKNOWN" - Ads instream position is
3878	// unknown.
3879	ContentInstreamPosition string `json:"contentInstreamPosition,omitempty"`
3880
3881	// ForceSendFields is a list of field names (e.g.
3882	// "ContentInstreamPosition") to unconditionally include in API
3883	// requests. By default, fields with empty values are omitted from API
3884	// requests. However, any non-pointer, non-interface field appearing in
3885	// ForceSendFields will be sent to the server regardless of whether the
3886	// field is empty or not. This may be used to include empty fields in
3887	// Patch requests.
3888	ForceSendFields []string `json:"-"`
3889
3890	// NullFields is a list of field names (e.g. "ContentInstreamPosition")
3891	// to include in API requests with the JSON null value. By default,
3892	// fields with empty values are omitted from API requests. However, any
3893	// field with an empty value appearing in NullFields will be sent to the
3894	// server as null. It is an error if a field in this list has a
3895	// non-empty value. This may be used to include null fields in Patch
3896	// requests.
3897	NullFields []string `json:"-"`
3898}
3899
3900func (s *ContentInstreamPositionTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3901	type NoMethod ContentInstreamPositionTargetingOptionDetails
3902	raw := NoMethod(*s)
3903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3904}
3905
3906// ContentOutstreamPositionAssignedTargetingOptionDetails: Assigned
3907// content outstream position targeting option details. This will be
3908// populated in the content_outstream_position_details field when
3909// targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
3910type ContentOutstreamPositionAssignedTargetingOptionDetails struct {
3911	// AdType: Output only. The ad type to target. Only applicable to
3912	// insertion order targeting and new line items supporting the specified
3913	// ad type will inherit this targeting option by default. Possible
3914	// values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new
3915	// line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. *
3916	// `AD_TYPE_VIDEO`, the setting will be inherited by new line item when
3917	// line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`.
3918	//
3919	// Possible values:
3920	//   "AD_TYPE_UNSPECIFIED" - Ad type is not specified or is unknown in
3921	// this version.
3922	//   "AD_TYPE_DISPLAY" - Display creatives, e.g. image and HTML5.
3923	//   "AD_TYPE_VIDEO" - Video creatives, e.g. video ads that play during
3924	// streaming content in video players.
3925	//   "AD_TYPE_AUDIO" - Audio creatives, e.g. audio ads that play during
3926	// audio content.
3927	AdType string `json:"adType,omitempty"`
3928
3929	// ContentOutstreamPosition: Output only. The content outstream
3930	// position.
3931	//
3932	// Possible values:
3933	//   "CONTENT_OUTSTREAM_POSITION_UNSPECIFIED" - Content outstream
3934	// position is not specified in this version. This enum is a place
3935	// holder for a default value and does not represent a real content
3936	// outstream position.
3937	//   "CONTENT_OUTSTREAM_POSITION_UNKNOWN" - The ad position is unknown
3938	// in the content outstream.
3939	//   "CONTENT_OUTSTREAM_POSITION_IN_ARTICLE" - Ads that appear between
3940	// the paragraphs of your pages.
3941	//   "CONTENT_OUTSTREAM_POSITION_IN_BANNER" - Ads that display on the
3942	// top and the sides of a page.
3943	//   "CONTENT_OUTSTREAM_POSITION_IN_FEED" - Ads that appear in a
3944	// scrollable stream of content. A feed is typically editorial (e.g. a
3945	// list of articles or news) or listings (e.g. a list of products or
3946	// services).
3947	//   "CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" - Ads shown before or
3948	// between content loads.
3949	ContentOutstreamPosition string `json:"contentOutstreamPosition,omitempty"`
3950
3951	// TargetingOptionId: Required. The targeting_option_id field when
3952	// targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
3953	TargetingOptionId string `json:"targetingOptionId,omitempty"`
3954
3955	// ForceSendFields is a list of field names (e.g. "AdType") to
3956	// unconditionally include in API requests. By default, fields with
3957	// empty values are omitted from API requests. However, any non-pointer,
3958	// non-interface field appearing in ForceSendFields will be sent to the
3959	// server regardless of whether the field is empty or not. This may be
3960	// used to include empty fields in Patch requests.
3961	ForceSendFields []string `json:"-"`
3962
3963	// NullFields is a list of field names (e.g. "AdType") to include in API
3964	// requests with the JSON null value. By default, fields with empty
3965	// values are omitted from API requests. However, any field with an
3966	// empty value appearing in NullFields will be sent to the server as
3967	// null. It is an error if a field in this list has a non-empty value.
3968	// This may be used to include null fields in Patch requests.
3969	NullFields []string `json:"-"`
3970}
3971
3972func (s *ContentOutstreamPositionAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
3973	type NoMethod ContentOutstreamPositionAssignedTargetingOptionDetails
3974	raw := NoMethod(*s)
3975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3976}
3977
3978// ContentOutstreamPositionTargetingOptionDetails: Represents a
3979// targetable content outstream position, which could be used by display
3980// and video ads. This will be populated in the
3981// content_outstream_position_details field when targeting_type is
3982// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.
3983type ContentOutstreamPositionTargetingOptionDetails struct {
3984	// ContentOutstreamPosition: Output only. The content outstream
3985	// position.
3986	//
3987	// Possible values:
3988	//   "CONTENT_OUTSTREAM_POSITION_UNSPECIFIED" - Content outstream
3989	// position is not specified in this version. This enum is a place
3990	// holder for a default value and does not represent a real content
3991	// outstream position.
3992	//   "CONTENT_OUTSTREAM_POSITION_UNKNOWN" - The ad position is unknown
3993	// in the content outstream.
3994	//   "CONTENT_OUTSTREAM_POSITION_IN_ARTICLE" - Ads that appear between
3995	// the paragraphs of your pages.
3996	//   "CONTENT_OUTSTREAM_POSITION_IN_BANNER" - Ads that display on the
3997	// top and the sides of a page.
3998	//   "CONTENT_OUTSTREAM_POSITION_IN_FEED" - Ads that appear in a
3999	// scrollable stream of content. A feed is typically editorial (e.g. a
4000	// list of articles or news) or listings (e.g. a list of products or
4001	// services).
4002	//   "CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" - Ads shown before or
4003	// between content loads.
4004	ContentOutstreamPosition string `json:"contentOutstreamPosition,omitempty"`
4005
4006	// ForceSendFields is a list of field names (e.g.
4007	// "ContentOutstreamPosition") to unconditionally include in API
4008	// requests. By default, fields with empty values are omitted from API
4009	// requests. However, any non-pointer, non-interface field appearing in
4010	// ForceSendFields will be sent to the server regardless of whether the
4011	// field is empty or not. This may be used to include empty fields in
4012	// Patch requests.
4013	ForceSendFields []string `json:"-"`
4014
4015	// NullFields is a list of field names (e.g. "ContentOutstreamPosition")
4016	// to include in API requests with the JSON null value. By default,
4017	// fields with empty values are omitted from API requests. However, any
4018	// field with an empty value appearing in NullFields will be sent to the
4019	// server as null. It is an error if a field in this list has a
4020	// non-empty value. This may be used to include null fields in Patch
4021	// requests.
4022	NullFields []string `json:"-"`
4023}
4024
4025func (s *ContentOutstreamPositionTargetingOptionDetails) MarshalJSON() ([]byte, error) {
4026	type NoMethod ContentOutstreamPositionTargetingOptionDetails
4027	raw := NoMethod(*s)
4028	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4029}
4030
4031// ConversionCountingConfig: Settings that control how conversions are
4032// counted. All post-click conversions will be counted. A percentage
4033// value can be set for post-view conversions counting.
4034type ConversionCountingConfig struct {
4035	// FloodlightActivityConfigs: The Floodlight activity configs used to
4036	// track conversions. The number of conversions counted is the sum of
4037	// all of the conversions counted by all of the Floodlight activity IDs
4038	// specified in this field.
4039	FloodlightActivityConfigs []*TrackingFloodlightActivityConfig `json:"floodlightActivityConfigs,omitempty"`
4040
4041	// PostViewCountPercentageMillis: The percentage of post-view
4042	// conversions to count, in millis (1/1000 of a percent). Must be
4043	// between 0 and 100000 inclusive. For example, to track 50% of the
4044	// post-click conversions, set a value of 50000.
4045	PostViewCountPercentageMillis int64 `json:"postViewCountPercentageMillis,omitempty,string"`
4046
4047	// ForceSendFields is a list of field names (e.g.
4048	// "FloodlightActivityConfigs") to unconditionally include in API
4049	// requests. By default, fields with empty values are omitted from API
4050	// requests. However, any non-pointer, non-interface field appearing in
4051	// ForceSendFields will be sent to the server regardless of whether the
4052	// field is empty or not. This may be used to include empty fields in
4053	// Patch requests.
4054	ForceSendFields []string `json:"-"`
4055
4056	// NullFields is a list of field names (e.g.
4057	// "FloodlightActivityConfigs") to include in API requests with the JSON
4058	// null value. By default, fields with empty values are omitted from API
4059	// requests. However, any field with an empty value appearing in
4060	// NullFields will be sent to the server as null. It is an error if a
4061	// field in this list has a non-empty value. This may be used to include
4062	// null fields in Patch requests.
4063	NullFields []string `json:"-"`
4064}
4065
4066func (s *ConversionCountingConfig) MarshalJSON() ([]byte, error) {
4067	type NoMethod ConversionCountingConfig
4068	raw := NoMethod(*s)
4069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4070}
4071
4072// CounterEvent: Counter event of the creative.
4073type CounterEvent struct {
4074	// Name: Required. The name of the counter event.
4075	Name string `json:"name,omitempty"`
4076
4077	// ReportingName: Required. The name used to identify this counter event
4078	// in reports.
4079	ReportingName string `json:"reportingName,omitempty"`
4080
4081	// ForceSendFields is a list of field names (e.g. "Name") to
4082	// unconditionally include in API requests. By default, fields with
4083	// empty values are omitted from API requests. However, any non-pointer,
4084	// non-interface field appearing in ForceSendFields will be sent to the
4085	// server regardless of whether the field is empty or not. This may be
4086	// used to include empty fields in Patch requests.
4087	ForceSendFields []string `json:"-"`
4088
4089	// NullFields is a list of field names (e.g. "Name") to include in API
4090	// requests with the JSON null value. By default, fields with empty
4091	// values are omitted from API requests. However, any field with an
4092	// empty value appearing in NullFields will be sent to the server as
4093	// null. It is an error if a field in this list has a non-empty value.
4094	// This may be used to include null fields in Patch requests.
4095	NullFields []string `json:"-"`
4096}
4097
4098func (s *CounterEvent) MarshalJSON() ([]byte, error) {
4099	type NoMethod CounterEvent
4100	raw := NoMethod(*s)
4101	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4102}
4103
4104// CreateAssetRequest: A request message for CreateAsset.
4105type CreateAssetRequest struct {
4106	// Filename: Required. The filename of the asset, including the file
4107	// extension. The filename must be UTF-8 encoded with a maximum size of
4108	// 240 bytes.
4109	Filename string `json:"filename,omitempty"`
4110
4111	// ForceSendFields is a list of field names (e.g. "Filename") to
4112	// unconditionally include in API requests. By default, fields with
4113	// empty values are omitted from API requests. However, any non-pointer,
4114	// non-interface field appearing in ForceSendFields will be sent to the
4115	// server regardless of whether the field is empty or not. This may be
4116	// used to include empty fields in Patch requests.
4117	ForceSendFields []string `json:"-"`
4118
4119	// NullFields is a list of field names (e.g. "Filename") to include in
4120	// API requests with the JSON null value. By default, fields with empty
4121	// values are omitted from API requests. However, any field with an
4122	// empty value appearing in NullFields will be sent to the server as
4123	// null. It is an error if a field in this list has a non-empty value.
4124	// This may be used to include null fields in Patch requests.
4125	NullFields []string `json:"-"`
4126}
4127
4128func (s *CreateAssetRequest) MarshalJSON() ([]byte, error) {
4129	type NoMethod CreateAssetRequest
4130	raw := NoMethod(*s)
4131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4132}
4133
4134// CreateAssetResponse: A response message for CreateAsset.
4135type CreateAssetResponse struct {
4136	// Asset: The uploaded asset, if successful.
4137	Asset *Asset `json:"asset,omitempty"`
4138
4139	// ServerResponse contains the HTTP response code and headers from the
4140	// server.
4141	googleapi.ServerResponse `json:"-"`
4142
4143	// ForceSendFields is a list of field names (e.g. "Asset") to
4144	// unconditionally include in API requests. By default, fields with
4145	// empty values are omitted from API requests. However, any non-pointer,
4146	// non-interface field appearing in ForceSendFields will be sent to the
4147	// server regardless of whether the field is empty or not. This may be
4148	// used to include empty fields in Patch requests.
4149	ForceSendFields []string `json:"-"`
4150
4151	// NullFields is a list of field names (e.g. "Asset") to include in API
4152	// requests with the JSON null value. By default, fields with empty
4153	// values are omitted from API requests. However, any field with an
4154	// empty value appearing in NullFields will be sent to the server as
4155	// null. It is an error if a field in this list has a non-empty value.
4156	// This may be used to include null fields in Patch requests.
4157	NullFields []string `json:"-"`
4158}
4159
4160func (s *CreateAssetResponse) MarshalJSON() ([]byte, error) {
4161	type NoMethod CreateAssetResponse
4162	raw := NoMethod(*s)
4163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4164}
4165
4166// CreateAssignedTargetingOptionsRequest: A request listing which
4167// assigned targeting options of a given targeting type should be
4168// created and added.
4169type CreateAssignedTargetingOptionsRequest struct {
4170	// AssignedTargetingOptions: Required. The assigned targeting options to
4171	// create and add.
4172	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
4173
4174	// TargetingType: Required. Identifies the type of this assigned
4175	// targeting option.
4176	//
4177	// Possible values:
4178	//   "TARGETING_TYPE_UNSPECIFIED" - Default value when type is not
4179	// specified or is unknown in this version.
4180	//   "TARGETING_TYPE_CHANNEL" - Target a channel (a custom group of
4181	// related websites or apps).
4182	//   "TARGETING_TYPE_APP_CATEGORY" - Target an app category (for
4183	// example, education or puzzle games).
4184	//   "TARGETING_TYPE_APP" - Target a specific app (for example, Angry
4185	// Birds).
4186	//   "TARGETING_TYPE_URL" - Target a specific url (for example,
4187	// quora.com).
4188	//   "TARGETING_TYPE_DAY_AND_TIME" - Target ads during a chosen time
4189	// period on a specific day.
4190	//   "TARGETING_TYPE_AGE_RANGE" - Target ads to a specific age range
4191	// (for example, 18-24).
4192	//   "TARGETING_TYPE_REGIONAL_LOCATION_LIST" - Target ads to the
4193	// specified regions on a regional location list.
4194	//   "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" - Target ads to the
4195	// specified points of interest on a proximity location list.
4196	//   "TARGETING_TYPE_GENDER" - Target ads to a specific gender (for
4197	// example, female or male).
4198	//   "TARGETING_TYPE_VIDEO_PLAYER_SIZE" - Target a specific video player
4199	// size for video ads.
4200	//   "TARGETING_TYPE_USER_REWARDED_CONTENT" - Target user rewarded
4201	// content for video ads.
4202	//   "TARGETING_TYPE_PARENTAL_STATUS" - Target ads to a specific
4203	// parental status (for example, parent or not a parent).
4204	//   "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" - Target video or audio
4205	// ads in a specific content instream position (for example, pre-roll,
4206	// mid-roll, or post-roll).
4207	//   "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" - Target ads in a
4208	// specific content outstream position.
4209	//   "TARGETING_TYPE_DEVICE_TYPE" - Target ads to a specific device type
4210	// (for example, tablet or connected TV).
4211	//   "TARGETING_TYPE_AUDIENCE_GROUP" - Target ads to an audience or
4212	// groups of audiences. Singleton field, at most one can exist on a
4213	// single Lineitem at a time.
4214	//   "TARGETING_TYPE_BROWSER" - Target ads to specific web browsers (for
4215	// example, Chrome).
4216	//   "TARGETING_TYPE_HOUSEHOLD_INCOME" - Target ads to a specific
4217	// household income range (for example, top 10%).
4218	//   "TARGETING_TYPE_ON_SCREEN_POSITION" - Target ads in a specific on
4219	// screen position.
4220	//   "TARGETING_TYPE_THIRD_PARTY_VERIFIER" - Filter web sites through
4221	// third party verification (for example, IAS or DoubleVerify).
4222	//   "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" - Filter web sites
4223	// by specific digital content label ratings (for example, DL-MA:
4224	// suitable only for mature audiences).
4225	//   "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" - Filter website
4226	// content by sensitive categories (for example, adult).
4227	//   "TARGETING_TYPE_ENVIRONMENT" - Target ads to a specific environment
4228	// (for example, web or app).
4229	//   "TARGETING_TYPE_CARRIER_AND_ISP" - Target ads to a specific network
4230	// carrier or internet service provider (ISP) (for example, Comcast or
4231	// Orange).
4232	//   "TARGETING_TYPE_OPERATING_SYSTEM" - Target ads to a specific
4233	// operating system (for example, macOS).
4234	//   "TARGETING_TYPE_DEVICE_MAKE_MODEL" - Target ads to a specific
4235	// device make or model (for example, Roku or Samsung).
4236	//   "TARGETING_TYPE_KEYWORD" - Target ads to a specific keyword (for
4237	// example, dog or retriever).
4238	//   "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" - Target ads to a specific
4239	// negative keyword list.
4240	//   "TARGETING_TYPE_VIEWABILITY" - Target ads to a specific viewability
4241	// (for example, 80% viewable).
4242	//   "TARGETING_TYPE_CATEGORY" - Target ads to a specific content
4243	// category (for example, arts & entertainment).
4244	//   "TARGETING_TYPE_INVENTORY_SOURCE" - Purchase impressions from
4245	// specific deals and auction packages.
4246	//   "TARGETING_TYPE_LANGUAGE" - Target ads to a specific language (for
4247	// example, English or Japanese).
4248	//   "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" - Target ads to ads.txt
4249	// authorized sellers.
4250	//   "TARGETING_TYPE_GEO_REGION" - Target ads to a specific regional
4251	// location (for example, a city or state).
4252	//   "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" - Purchase impressions from
4253	// a group of deals and auction packages.
4254	//   "TARGETING_TYPE_EXCHANGE" - Purchase impressions from specific
4255	// exchanges.
4256	//   "TARGETING_TYPE_SUB_EXCHANGE" - Purchase impressions from specific
4257	// sub-exchanges.
4258	TargetingType string `json:"targetingType,omitempty"`
4259
4260	// ForceSendFields is a list of field names (e.g.
4261	// "AssignedTargetingOptions") to unconditionally include in API
4262	// requests. By default, fields with empty values are omitted from API
4263	// requests. However, any non-pointer, non-interface field appearing in
4264	// ForceSendFields will be sent to the server regardless of whether the
4265	// field is empty or not. This may be used to include empty fields in
4266	// Patch requests.
4267	ForceSendFields []string `json:"-"`
4268
4269	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
4270	// to include in API requests with the JSON null value. By default,
4271	// fields with empty values are omitted from API requests. However, any
4272	// field with an empty value appearing in NullFields will be sent to the
4273	// server as null. It is an error if a field in this list has a
4274	// non-empty value. This may be used to include null fields in Patch
4275	// requests.
4276	NullFields []string `json:"-"`
4277}
4278
4279func (s *CreateAssignedTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
4280	type NoMethod CreateAssignedTargetingOptionsRequest
4281	raw := NoMethod(*s)
4282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4283}
4284
4285// CreateSdfDownloadTaskRequest: Request message for
4286// [SdfDownloadTaskService.CreateSdfDownloadTask].
4287type CreateSdfDownloadTaskRequest struct {
4288	// AdvertiserId: The ID of the advertiser to download SDF for.
4289	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
4290
4291	// IdFilter: Filters on entities by their entity IDs.
4292	IdFilter *IdFilter `json:"idFilter,omitempty"`
4293
4294	// InventorySourceFilter: Filters on Inventory Sources by their IDs.
4295	InventorySourceFilter *InventorySourceFilter `json:"inventorySourceFilter,omitempty"`
4296
4297	// ParentEntityFilter: Filters on selected file types. The entities in
4298	// each file are filtered by a chosen set of filter entities. The filter
4299	// entities must be the same type as, or a parent type of, the selected
4300	// file types.
4301	ParentEntityFilter *ParentEntityFilter `json:"parentEntityFilter,omitempty"`
4302
4303	// PartnerId: The ID of the partner to download SDF for.
4304	PartnerId int64 `json:"partnerId,omitempty,string"`
4305
4306	// Version: Required. The SDF version of the downloaded file. If set to
4307	// `SDF_VERSION_UNSPECIFIED`, this will default to the version specified
4308	// by the advertiser or partner identified by `root_id`. An advertiser
4309	// inherits its SDF version from its partner unless configured
4310	// otherwise.
4311	//
4312	// Possible values:
4313	//   "SDF_VERSION_UNSPECIFIED" - SDF version value is not specified or
4314	// is unknown in this version.
4315	//   "SDF_VERSION_3_1" - SDF version 3.1
4316	//   "SDF_VERSION_4" - SDF version 4
4317	//   "SDF_VERSION_4_1" - SDF version 4.1
4318	//   "SDF_VERSION_4_2" - SDF version 4.2
4319	//   "SDF_VERSION_5" - SDF version 5.
4320	//   "SDF_VERSION_5_1" - SDF version 5.1
4321	//   "SDF_VERSION_5_2" - SDF version 5.2
4322	//   "SDF_VERSION_5_3" - SDF version 5.3
4323	Version string `json:"version,omitempty"`
4324
4325	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
4326	// unconditionally include in API requests. By default, fields with
4327	// empty values are omitted from API requests. However, any non-pointer,
4328	// non-interface field appearing in ForceSendFields will be sent to the
4329	// server regardless of whether the field is empty or not. This may be
4330	// used to include empty fields in Patch requests.
4331	ForceSendFields []string `json:"-"`
4332
4333	// NullFields is a list of field names (e.g. "AdvertiserId") to include
4334	// in API requests with the JSON null value. By default, fields with
4335	// empty values are omitted from API requests. However, any field with
4336	// an empty value appearing in NullFields will be sent to the server as
4337	// null. It is an error if a field in this list has a non-empty value.
4338	// This may be used to include null fields in Patch requests.
4339	NullFields []string `json:"-"`
4340}
4341
4342func (s *CreateSdfDownloadTaskRequest) MarshalJSON() ([]byte, error) {
4343	type NoMethod CreateSdfDownloadTaskRequest
4344	raw := NoMethod(*s)
4345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4346}
4347
4348// Creative: A single Creative.
4349type Creative struct {
4350	// AdditionalDimensions: Additional dimensions. Applicable when
4351	// creative_type is one of: * `CREATIVE_TYPE_STANDARD` *
4352	// `CREATIVE_TYPE_EXPANDABLE` * `CREATIVE_TYPE_NATIVE` *
4353	// `CREATIVE_TYPE_TEMPLATED_APP_INSTALL` *
4354	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_LIGHTBOX` *
4355	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
4356	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
4357	// `CREATIVE_TYPE_PUBLISHER_HOSTED` If this field is specified,
4358	// width_pixels and height_pixels are both required and must be greater
4359	// than or equal to 0.
4360	AdditionalDimensions []*Dimensions `json:"additionalDimensions,omitempty"`
4361
4362	// AdvertiserId: Output only. The unique ID of the advertiser the
4363	// creative belongs to.
4364	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
4365
4366	// AppendedTag: Third-party HTML tracking tag to be appended to the
4367	// creative tag.
4368	AppendedTag string `json:"appendedTag,omitempty"`
4369
4370	// Assets: Required. Assets associated to this creative. Assets can be
4371	// associated to the creative in one of following roles: *
4372	// `ASSET_ROLE_UNSPECIFIED` * `ASSET_ROLE_MAIN` * `ASSET_ROLE_BACKUP` *
4373	// `ASSET_ROLE_POLITE_LOAD`
4374	Assets []*AssetAssociation `json:"assets,omitempty"`
4375
4376	// CmPlacementId: Output only. The unique ID of the Campaign Manager 360
4377	// placement associated with the creative. This field is only applicable
4378	// for creatives that are synced from Campaign Manager.
4379	CmPlacementId int64 `json:"cmPlacementId,omitempty,string"`
4380
4381	// CmTrackingAd: The Campaign Manager 360 tracking ad associated with
4382	// the creative. Optional for the following creative_type when created
4383	// by an advertiser that uses both Campaign Manager 360 and third-party
4384	// ad serving: * `CREATIVE_TYPE_NATIVE` *
4385	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
4386	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
4387	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` Output only for other
4388	// cases.
4389	CmTrackingAd *CmTrackingAd `json:"cmTrackingAd,omitempty"`
4390
4391	// CompanionCreativeIds: The IDs of companion creatives for a video
4392	// creative. You can assign existing display creatives (with image or
4393	// HTML5 assets) to serve surrounding the publisher's video player.
4394	// Companions display around the video player while the video is playing
4395	// and remain after the video has completed. Creatives contain
4396	// additional dimensions can not be companion creatives. This field is
4397	// only supported for following creative_type: * `CREATIVE_TYPE_AUDIO` *
4398	// `CREATIVE_TYPE_VIDEO`
4399	CompanionCreativeIds googleapi.Int64s `json:"companionCreativeIds,omitempty"`
4400
4401	// CounterEvents: Counter events for a rich media creative. Counters
4402	// track the number of times that a user interacts with any part of a
4403	// rich media creative in a specified way (mouse-overs, mouse-outs,
4404	// clicks, taps, data loading, keyboard entries, etc.). Any event that
4405	// can be captured in the creative can be recorded as a counter. Leave
4406	// it empty or unset for creatives containing image assets only.
4407	CounterEvents []*CounterEvent `json:"counterEvents,omitempty"`
4408
4409	// CreateTime: Output only. The timestamp when the creative was created.
4410	// Assigned by the system.
4411	CreateTime string `json:"createTime,omitempty"`
4412
4413	// CreativeAttributes: Output only. A list of attributes of the creative
4414	// that is generated by the system.
4415	//
4416	// Possible values:
4417	//   "CREATIVE_ATTRIBUTE_UNSPECIFIED" - The creative attribute is not
4418	// specified or is unknown in this version.
4419	//   "CREATIVE_ATTRIBUTE_VAST" - The creative is a VAST creative.
4420	//   "CREATIVE_ATTRIBUTE_VPAID_LINEAR" - The creative is a linear VPAID
4421	// creative.
4422	//   "CREATIVE_ATTRIBUTE_VPAID_NON_LINEAR" - The creative is a
4423	// non-linear VPAID creative.
4424	CreativeAttributes []string `json:"creativeAttributes,omitempty"`
4425
4426	// CreativeId: Output only. The unique ID of the creative. Assigned by
4427	// the system.
4428	CreativeId int64 `json:"creativeId,omitempty,string"`
4429
4430	// CreativeType: Required. Immutable. The type of the creative.
4431	//
4432	// Possible values:
4433	//   "CREATIVE_TYPE_UNSPECIFIED" - Type value is not specified or is
4434	// unknown in this version.
4435	//   "CREATIVE_TYPE_STANDARD" - Standard display creative. Create and
4436	// update methods are supported for this creative type if the
4437	// hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` *
4438	// `HOSTING_SOURCE_THIRD_PARTY`
4439	//   "CREATIVE_TYPE_EXPANDABLE" - Expandable creative. Create and update
4440	// methods are supported for this creative type if the hosting_source is
4441	// `HOSTING_SOURCE_THIRD_PARTY`
4442	//   "CREATIVE_TYPE_VIDEO" - Video creative. Create and update methods
4443	// are supported for this creative type if the hosting_source is one of
4444	// the following: * `HOSTING_SOURCE_HOSTED` *
4445	// `HOSTING_SOURCE_THIRD_PARTY`
4446	//   "CREATIVE_TYPE_NATIVE" - Native creative rendered by publishers
4447	// with assets from advertiser. Create and update methods are supported
4448	// for this creative type if the hosting_source is
4449	// `HOSTING_SOURCE_HOSTED`
4450	//   "CREATIVE_TYPE_TEMPLATED_APP_INSTALL" - Templated app install
4451	// mobile creative (banner). Create and update methods are **not**
4452	// supported for this creative type.
4453	//   "CREATIVE_TYPE_NATIVE_SITE_SQUARE" - Square native creative. Create
4454	// and update methods are supported for this creative type if the
4455	// hosting_source is `HOSTING_SOURCE_HOSTED`
4456	//   "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL" - Interstitial
4457	// creative including both display and video. Create and update methods
4458	// are **not** supported for this creative type.
4459	//   "CREATIVE_TYPE_LIGHTBOX" - Responsive and expandable Lightbox
4460	// creative. Create and update methods are **not** supported for this
4461	// creative type.
4462	//   "CREATIVE_TYPE_NATIVE_APP_INSTALL" - Native app install creative.
4463	// Create and update methods are supported for this creative type if the
4464	// hosting_source is `HOSTING_SOURCE_HOSTED`
4465	//   "CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE" - Square native app
4466	// install creative. Create and update methods are supported for this
4467	// creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`
4468	//   "CREATIVE_TYPE_AUDIO" - Audio creative. Create and update methods
4469	// are supported for this creative type if the hosting_source is
4470	// `HOSTING_SOURCE_HOSTED`
4471	//   "CREATIVE_TYPE_PUBLISHER_HOSTED" - Publisher hosted creative.
4472	// Create and update methods are **not** supported for this creative
4473	// type.
4474	//   "CREATIVE_TYPE_NATIVE_VIDEO" - Native video creative. Create and
4475	// update methods are supported for this creative type if the
4476	// hosting_source is `HOSTING_SOURCE_HOSTED`
4477	//   "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO" - Templated app install
4478	// mobile video creative. Create and update methods are **not**
4479	// supported for this creative type.
4480	CreativeType string `json:"creativeType,omitempty"`
4481
4482	// Dimensions: Required. Primary dimensions of the creative. Applicable
4483	// to all creative types. The value of width_pixels and height_pixels
4484	// defaults to `0` when creative_type is one of: * `CREATIVE_TYPE_VIDEO`
4485	// * `CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL` *
4486	// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE_VIDEO` *
4487	// `CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO`
4488	Dimensions *Dimensions `json:"dimensions,omitempty"`
4489
4490	// DisplayName: Required. The display name of the creative. Must be
4491	// UTF-8 encoded with a maximum size of 240 bytes.
4492	DisplayName string `json:"displayName,omitempty"`
4493
4494	// Dynamic: Output only. Indicates whether the creative is dynamic.
4495	Dynamic bool `json:"dynamic,omitempty"`
4496
4497	// EntityStatus: Required. Controls whether or not the creative can
4498	// serve. Accepted values are: * `ENTITY_STATUS_ACTIVE` *
4499	// `ENTITY_STATUS_ARCHIVED` * `ENTITY_STATUS_PAUSED`
4500	//
4501	// Possible values:
4502	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
4503	// specified or is unknown in this version.
4504	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
4505	// budget.
4506	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
4507	// budget spending are disabled. An entity can be deleted after
4508	// archived. Deleted entities cannot be retrieved.
4509	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
4510	// budget spending are disabled.
4511	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
4512	// the entity.
4513	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
4514	// for deletion.
4515	EntityStatus string `json:"entityStatus,omitempty"`
4516
4517	// ExitEvents: Required. Exit events for this creative. An exit (also
4518	// known as a click tag) is any area in your creative that someone can
4519	// click or tap to open an advertiser's landing page. Every creative
4520	// must include at least one exit. You can add an exit to your creative
4521	// in any of the following ways: * Use Google Web Designer's tap area. *
4522	// Define a JavaScript variable called "clickTag". * Use the Enabler
4523	// (Enabler.exit()) to track exits in rich media formats.
4524	ExitEvents []*ExitEvent `json:"exitEvents,omitempty"`
4525
4526	// ExpandOnHover: Optional. Indicates the creative will automatically
4527	// expand on hover. Optional and only valid for third-party expandable
4528	// creatives. Third-party expandable creatives are creatives with
4529	// following hosting source: * `HOSTING_SOURCE_THIRD_PARTY` combined
4530	// with following creative_type: * `CREATIVE_TYPE_EXPANDABLE`
4531	ExpandOnHover bool `json:"expandOnHover,omitempty"`
4532
4533	// ExpandingDirection: Optional. Specifies the expanding direction of
4534	// the creative. Required and only valid for third-party expandable
4535	// creatives. Third-party expandable creatives are creatives with
4536	// following hosting source: * `HOSTING_SOURCE_THIRD_PARTY` combined
4537	// with following creative_type: * `CREATIVE_TYPE_EXPANDABLE`
4538	//
4539	// Possible values:
4540	//   "EXPANDING_DIRECTION_UNSPECIFIED" - The expanding direction is not
4541	// specified.
4542	//   "EXPANDING_DIRECTION_NONE" - Does not expand in any direction.
4543	//   "EXPANDING_DIRECTION_UP" - Expands up.
4544	//   "EXPANDING_DIRECTION_DOWN" - Expands down.
4545	//   "EXPANDING_DIRECTION_LEFT" - Expands left.
4546	//   "EXPANDING_DIRECTION_RIGHT" - Expands right.
4547	//   "EXPANDING_DIRECTION_UP_AND_LEFT" - Expands up and to the left
4548	// side.
4549	//   "EXPANDING_DIRECTION_UP_AND_RIGHT" - Expands up and to the right
4550	// side.
4551	//   "EXPANDING_DIRECTION_DOWN_AND_LEFT" - Expands down and to the left
4552	// side.
4553	//   "EXPANDING_DIRECTION_DOWN_AND_RIGHT" - Expands down and to the
4554	// right side.
4555	//   "EXPANDING_DIRECTION_UP_OR_DOWN" - Expands either up or down.
4556	//   "EXPANDING_DIRECTION_LEFT_OR_RIGHT" - Expands to either the left or
4557	// the right side.
4558	//   "EXPANDING_DIRECTION_ANY_DIAGONAL" - Can expand in any diagonal
4559	// direction.
4560	ExpandingDirection string `json:"expandingDirection,omitempty"`
4561
4562	// HostingSource: Required. Indicates where the creative is hosted.
4563	//
4564	// Possible values:
4565	//   "HOSTING_SOURCE_UNSPECIFIED" - Hosting source is not specified or
4566	// is unknown in this version.
4567	//   "HOSTING_SOURCE_CM" - A creative synced from Campaign Manager 360.
4568	// Create and update methods are **not** supported for this hosting
4569	// type.
4570	//   "HOSTING_SOURCE_THIRD_PARTY" - A creative hosted by a third-party
4571	// ad server (3PAS). Create and update methods are supported for this
4572	// hosting type if the creative_type is one of the following: *
4573	// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_EXPANDABLE` *
4574	// `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`
4575	//   "HOSTING_SOURCE_HOSTED" - A creative created in DV360 and hosted by
4576	// Campaign Manager 360. Create and update methods are supported for
4577	// this hosting type if the creative_type is one of the following: *
4578	// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE` *
4579	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
4580	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
4581	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` *
4582	// `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`
4583	//   "HOSTING_SOURCE_RICH_MEDIA" - A rich media creative created in
4584	// Studio and hosted by Campaign Manager 360. Create and update methods
4585	// are **not** supported for this hosting type.
4586	HostingSource string `json:"hostingSource,omitempty"`
4587
4588	// Html5Video: Output only. Indicates the third-party VAST tag creative
4589	// requires HTML5 Video support. Output only and only valid for
4590	// third-party VAST tag creatives. Third-party VAST tag creatives are
4591	// creatives with following hosting_source: *
4592	// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: *
4593	// `CREATIVE_TYPE_VIDEO`
4594	Html5Video bool `json:"html5Video,omitempty"`
4595
4596	// IasCampaignMonitoring: Indicates whether Integral Ad Science (IAS)
4597	// campaign monitoring is enabled. To enable this for the creative, make
4598	// sure the Advertiser.creative_config.ias_client_id has been set to
4599	// your IAS client ID.
4600	IasCampaignMonitoring bool `json:"iasCampaignMonitoring,omitempty"`
4601
4602	// IntegrationCode: ID information used to link this creative to an
4603	// external system. Must be UTF-8 encoded with a length of no more than
4604	// 10,000 characters.
4605	IntegrationCode string `json:"integrationCode,omitempty"`
4606
4607	// JsTrackerUrl: JavaScript measurement URL from supported third-party
4608	// verification providers (ComScore, DoubleVerify, IAS, Moat). HTML
4609	// script tags are not supported. This field is only supported in
4610	// following creative_type: * `CREATIVE_TYPE_NATIVE` *
4611	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
4612	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
4613	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
4614	// `CREATIVE_TYPE_NATIVE_VIDEO`
4615	JsTrackerUrl string `json:"jsTrackerUrl,omitempty"`
4616
4617	// LineItemIds: Output only. The IDs of the line items this creative is
4618	// associated with. To associate a creative to a line item, use
4619	// LineItem.creative_ids instead.
4620	LineItemIds googleapi.Int64s `json:"lineItemIds,omitempty"`
4621
4622	// MediaDuration: Output only. Media duration of the creative.
4623	// Applicable when creative_type is one of: * `CREATIVE_TYPE_VIDEO` *
4624	// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE_VIDEO` *
4625	// `CREATIVE_TYPE_PUBLISHER_HOSTED`
4626	MediaDuration string `json:"mediaDuration,omitempty"`
4627
4628	// Mp3Audio: Output only. Indicates the third-party audio creative
4629	// supports MP3. Output only and only valid for third-party audio
4630	// creatives. Third-party audio creatives are creatives with following
4631	// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with
4632	// following creative_type: * `CREATIVE_TYPE_AUDIO`
4633	Mp3Audio bool `json:"mp3Audio,omitempty"`
4634
4635	// Name: Output only. The resource name of the creative.
4636	Name string `json:"name,omitempty"`
4637
4638	// Notes: User notes for this creative. Must be UTF-8 encoded with a
4639	// length of no more than 20,000 characters.
4640	Notes string `json:"notes,omitempty"`
4641
4642	// ObaIcon: Specifies the OBA icon for a video creative. This field is
4643	// only supported in following creative_type: * `CREATIVE_TYPE_VIDEO`
4644	ObaIcon *ObaIcon `json:"obaIcon,omitempty"`
4645
4646	// OggAudio: Output only. Indicates the third-party audio creative
4647	// supports OGG. Output only and only valid for third-party audio
4648	// creatives. Third-party audio creatives are creatives with following
4649	// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with
4650	// following creative_type: * `CREATIVE_TYPE_AUDIO`
4651	OggAudio bool `json:"oggAudio,omitempty"`
4652
4653	// ProgressOffset: Amount of time to play the video before counting a
4654	// view. This field is required when skippable is true. This field is
4655	// only supported for the following creative_type: *
4656	// `CREATIVE_TYPE_VIDEO`
4657	ProgressOffset *AudioVideoOffset `json:"progressOffset,omitempty"`
4658
4659	// RequireHtml5: Optional. Indicates that the creative relies on HTML5
4660	// to render properly. Optional and only valid for third-party tag
4661	// creatives. Third-party tag creatives are creatives with following
4662	// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with
4663	// following creative_type: * `CREATIVE_TYPE_STANDARD` *
4664	// `CREATIVE_TYPE_EXPANDABLE`
4665	RequireHtml5 bool `json:"requireHtml5,omitempty"`
4666
4667	// RequireMraid: Optional. Indicates that the creative requires MRAID
4668	// (Mobile Rich Media Ad Interface Definitions system). Set this if the
4669	// creative relies on mobile gestures for interactivity, such as swiping
4670	// or tapping. Optional and only valid for third-party tag creatives.
4671	// Third-party tag creatives are creatives with following
4672	// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with
4673	// following creative_type: * `CREATIVE_TYPE_STANDARD` *
4674	// `CREATIVE_TYPE_EXPANDABLE`
4675	RequireMraid bool `json:"requireMraid,omitempty"`
4676
4677	// RequirePingForAttribution: Optional. Indicates that the creative will
4678	// wait for a return ping for attribution. Only valid when using a
4679	// Campaign Manager 360 tracking ad with a third-party ad server
4680	// parameter and the ${DC_DBM_TOKEN} macro. Optional and only valid for
4681	// third-party tag creatives or third-party VAST tag creatives.
4682	// Third-party tag creatives are creatives with following
4683	// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with
4684	// following creative_type: * `CREATIVE_TYPE_STANDARD` *
4685	// `CREATIVE_TYPE_EXPANDABLE` Third-party VAST tag creatives are
4686	// creatives with following hosting_source: *
4687	// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: *
4688	// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO`
4689	RequirePingForAttribution bool `json:"requirePingForAttribution,omitempty"`
4690
4691	// ReviewStatus: Output only. The current status of the creative review
4692	// process.
4693	ReviewStatus *ReviewStatusInfo `json:"reviewStatus,omitempty"`
4694
4695	// SkipOffset: Amount of time to play the video before the skip button
4696	// appears. This field is required when skippable is true. This field is
4697	// only supported for the following creative_type: *
4698	// `CREATIVE_TYPE_VIDEO`
4699	SkipOffset *AudioVideoOffset `json:"skipOffset,omitempty"`
4700
4701	// Skippable: Whether the user can choose to skip a video creative. This
4702	// field is only supported for the following creative_type: *
4703	// `CREATIVE_TYPE_VIDEO`
4704	Skippable bool `json:"skippable,omitempty"`
4705
4706	// ThirdPartyTag: Optional. The original third-party tag used for the
4707	// creative. Required and only valid for third-party tag creatives.
4708	// Third-party tag creatives are creatives with following
4709	// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with
4710	// following creative_type: * `CREATIVE_TYPE_STANDARD` *
4711	// `CREATIVE_TYPE_EXPANDABLE`
4712	ThirdPartyTag string `json:"thirdPartyTag,omitempty"`
4713
4714	// ThirdPartyUrls: Tracking URLs from third parties to track
4715	// interactions with a video creative. This field is only supported for
4716	// the following creative_type: * `CREATIVE_TYPE_AUDIO` *
4717	// `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_NATIVE_VIDEO`
4718	ThirdPartyUrls []*ThirdPartyUrl `json:"thirdPartyUrls,omitempty"`
4719
4720	// TimerEvents: Timer custom events for a rich media creative. Timers
4721	// track the time during which a user views and interacts with a
4722	// specified part of a rich media creative. A creative can have multiple
4723	// timer events, each timed independently. Leave it empty or unset for
4724	// creatives containing image assets only.
4725	TimerEvents []*TimerEvent `json:"timerEvents,omitempty"`
4726
4727	// TrackerUrls: Tracking URLs for analytics providers or third-party ad
4728	// technology vendors. The URLs must start with https (except on
4729	// inventory that doesn't require SSL compliance). If using macros in
4730	// your URL, use only macros supported by Display & Video 360. Standard
4731	// URLs only, no IMG or SCRIPT tags. This field is only supported in
4732	// following creative_type: * `CREATIVE_TYPE_NATIVE` *
4733	// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` *
4734	// `CREATIVE_TYPE_NATIVE_APP_INSTALL` *
4735	// `CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE` *
4736	// `CREATIVE_TYPE_NATIVE_VIDEO`
4737	TrackerUrls []string `json:"trackerUrls,omitempty"`
4738
4739	// Transcodes: Output only. Audio/Video transcodes. Display & Video 360
4740	// transcodes the main asset into a number of alternative versions that
4741	// use different file formats or have different properties (resolution,
4742	// audio bit rate, and video bit rate), each designed for specific video
4743	// players or bandwidths. These transcodes give a publisher's system
4744	// more options to choose from for each impression on your video and
4745	// ensures that the appropriate file serves based on the viewer’s
4746	// connection and screen size. This field is only supported in following
4747	// creative_type: * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_NATIVE_VIDEO`
4748	// * `CREATIVE_TYPE_AUDIO`
4749	Transcodes []*Transcode `json:"transcodes,omitempty"`
4750
4751	// UniversalAdId: Optional. An optional creative identifier provided by
4752	// a registry that is unique across all platforms. Universal Ad ID is
4753	// part of the VAST 4.0 standard. It can be modified after the creative
4754	// is created. This field is only supported for the following
4755	// creative_type: * `CREATIVE_TYPE_VIDEO`
4756	UniversalAdId *UniversalAdId `json:"universalAdId,omitempty"`
4757
4758	// UpdateTime: Output only. The timestamp when the creative was last
4759	// updated. Assigned by the system.
4760	UpdateTime string `json:"updateTime,omitempty"`
4761
4762	// VastTagUrl: Optional. The URL of the VAST tag for a third-party VAST
4763	// tag creative. Required and only valid for third-party VAST tag
4764	// creatives. Third-party VAST tag creatives are creatives with
4765	// following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined
4766	// with following creative_type: * `CREATIVE_TYPE_AUDIO` *
4767	// `CREATIVE_TYPE_VIDEO`
4768	VastTagUrl string `json:"vastTagUrl,omitempty"`
4769
4770	// Vpaid: Output only. Indicates the third-party VAST tag creative
4771	// requires VPAID (Digital Video Player-Ad Interface). Output only and
4772	// only valid for third-party VAST tag creatives. Third-party VAST tag
4773	// creatives are creatives with following hosting_source: *
4774	// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: *
4775	// `CREATIVE_TYPE_VIDEO`
4776	Vpaid bool `json:"vpaid,omitempty"`
4777
4778	// ServerResponse contains the HTTP response code and headers from the
4779	// server.
4780	googleapi.ServerResponse `json:"-"`
4781
4782	// ForceSendFields is a list of field names (e.g.
4783	// "AdditionalDimensions") to unconditionally include in API requests.
4784	// By default, fields with empty values are omitted from API requests.
4785	// However, any non-pointer, non-interface field appearing in
4786	// ForceSendFields will be sent to the server regardless of whether the
4787	// field is empty or not. This may be used to include empty fields in
4788	// Patch requests.
4789	ForceSendFields []string `json:"-"`
4790
4791	// NullFields is a list of field names (e.g. "AdditionalDimensions") to
4792	// include in API requests with the JSON null value. By default, fields
4793	// with empty values are omitted from API requests. However, any field
4794	// with an empty value appearing in NullFields will be sent to the
4795	// server as null. It is an error if a field in this list has a
4796	// non-empty value. This may be used to include null fields in Patch
4797	// requests.
4798	NullFields []string `json:"-"`
4799}
4800
4801func (s *Creative) MarshalJSON() ([]byte, error) {
4802	type NoMethod Creative
4803	raw := NoMethod(*s)
4804	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4805}
4806
4807// CreativeConfig: Creative requirements configuration for the inventory
4808// source.
4809type CreativeConfig struct {
4810	// CreativeType: The type of creative that can be assigned to the
4811	// inventory source.
4812	//
4813	// Possible values:
4814	//   "CREATIVE_TYPE_UNSPECIFIED" - Type value is not specified or is
4815	// unknown in this version.
4816	//   "CREATIVE_TYPE_STANDARD" - Standard display creative. Create and
4817	// update methods are supported for this creative type if the
4818	// hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` *
4819	// `HOSTING_SOURCE_THIRD_PARTY`
4820	//   "CREATIVE_TYPE_EXPANDABLE" - Expandable creative. Create and update
4821	// methods are supported for this creative type if the hosting_source is
4822	// `HOSTING_SOURCE_THIRD_PARTY`
4823	//   "CREATIVE_TYPE_VIDEO" - Video creative. Create and update methods
4824	// are supported for this creative type if the hosting_source is one of
4825	// the following: * `HOSTING_SOURCE_HOSTED` *
4826	// `HOSTING_SOURCE_THIRD_PARTY`
4827	//   "CREATIVE_TYPE_NATIVE" - Native creative rendered by publishers
4828	// with assets from advertiser. Create and update methods are supported
4829	// for this creative type if the hosting_source is
4830	// `HOSTING_SOURCE_HOSTED`
4831	//   "CREATIVE_TYPE_TEMPLATED_APP_INSTALL" - Templated app install
4832	// mobile creative (banner). Create and update methods are **not**
4833	// supported for this creative type.
4834	//   "CREATIVE_TYPE_NATIVE_SITE_SQUARE" - Square native creative. Create
4835	// and update methods are supported for this creative type if the
4836	// hosting_source is `HOSTING_SOURCE_HOSTED`
4837	//   "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL" - Interstitial
4838	// creative including both display and video. Create and update methods
4839	// are **not** supported for this creative type.
4840	//   "CREATIVE_TYPE_LIGHTBOX" - Responsive and expandable Lightbox
4841	// creative. Create and update methods are **not** supported for this
4842	// creative type.
4843	//   "CREATIVE_TYPE_NATIVE_APP_INSTALL" - Native app install creative.
4844	// Create and update methods are supported for this creative type if the
4845	// hosting_source is `HOSTING_SOURCE_HOSTED`
4846	//   "CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE" - Square native app
4847	// install creative. Create and update methods are supported for this
4848	// creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`
4849	//   "CREATIVE_TYPE_AUDIO" - Audio creative. Create and update methods
4850	// are supported for this creative type if the hosting_source is
4851	// `HOSTING_SOURCE_HOSTED`
4852	//   "CREATIVE_TYPE_PUBLISHER_HOSTED" - Publisher hosted creative.
4853	// Create and update methods are **not** supported for this creative
4854	// type.
4855	//   "CREATIVE_TYPE_NATIVE_VIDEO" - Native video creative. Create and
4856	// update methods are supported for this creative type if the
4857	// hosting_source is `HOSTING_SOURCE_HOSTED`
4858	//   "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO" - Templated app install
4859	// mobile video creative. Create and update methods are **not**
4860	// supported for this creative type.
4861	CreativeType string `json:"creativeType,omitempty"`
4862
4863	// DisplayCreativeConfig: The configuration for display creatives.
4864	// Applicable when creative_type is `CREATIVE_TYPE_STANDARD`.
4865	DisplayCreativeConfig *InventorySourceDisplayCreativeConfig `json:"displayCreativeConfig,omitempty"`
4866
4867	// VideoCreativeConfig: The configuration for video creatives.
4868	// Applicable when creative_type is `CREATIVE_TYPE_VIDEO`.
4869	VideoCreativeConfig *InventorySourceVideoCreativeConfig `json:"videoCreativeConfig,omitempty"`
4870
4871	// ForceSendFields is a list of field names (e.g. "CreativeType") to
4872	// unconditionally include in API requests. By default, fields with
4873	// empty values are omitted from API requests. However, any non-pointer,
4874	// non-interface field appearing in ForceSendFields will be sent to the
4875	// server regardless of whether the field is empty or not. This may be
4876	// used to include empty fields in Patch requests.
4877	ForceSendFields []string `json:"-"`
4878
4879	// NullFields is a list of field names (e.g. "CreativeType") to include
4880	// in API requests with the JSON null value. By default, fields with
4881	// empty values are omitted from API requests. However, any field with
4882	// an empty value appearing in NullFields will be sent to the server as
4883	// null. It is an error if a field in this list has a non-empty value.
4884	// This may be used to include null fields in Patch requests.
4885	NullFields []string `json:"-"`
4886}
4887
4888func (s *CreativeConfig) MarshalJSON() ([]byte, error) {
4889	type NoMethod CreativeConfig
4890	raw := NoMethod(*s)
4891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4892}
4893
4894// CustomBiddingAlgorithm: A single custom bidding algorithm.
4895type CustomBiddingAlgorithm struct {
4896	// AdvertiserId: Immutable. The unique ID of the advertiser that owns
4897	// the custom bidding algorithm.
4898	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
4899
4900	// CustomBiddingAlgorithmId: Output only. The unique ID of the custom
4901	// bidding algorithm. Assigned by the system.
4902	CustomBiddingAlgorithmId int64 `json:"customBiddingAlgorithmId,omitempty,string"`
4903
4904	// CustomBiddingAlgorithmType: Required. Immutable. The type of custom
4905	// bidding algorithm.
4906	//
4907	// Possible values:
4908	//   "CUSTOM_BIDDING_ALGORITHM_TYPE_UNSPECIFIED" - Algorithm type is not
4909	// specified or is unknown in this version.
4910	//   "SCRIPT_BASED" - Algorithm generated through customer-uploaded
4911	// custom bidding script files.
4912	//   "ADS_DATA_HUB_BASED" - Algorithm created through Ads Data Hub
4913	// product.
4914	CustomBiddingAlgorithmType string `json:"customBiddingAlgorithmType,omitempty"`
4915
4916	// DisplayName: Required. The display name of the custom bidding
4917	// algorithm. Must be UTF-8 encoded with a maximum size of 240 bytes.
4918	DisplayName string `json:"displayName,omitempty"`
4919
4920	// EntityStatus: Controls whether or not the custom bidding algorithm
4921	// can be used as a bidding strategy. Accepted values are: *
4922	// `ENTITY_STATUS_ACTIVE` * `ENTITY_STATUS_ARCHIVED`
4923	//
4924	// Possible values:
4925	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
4926	// specified or is unknown in this version.
4927	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
4928	// budget.
4929	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
4930	// budget spending are disabled. An entity can be deleted after
4931	// archived. Deleted entities cannot be retrieved.
4932	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
4933	// budget spending are disabled.
4934	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
4935	// the entity.
4936	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
4937	// for deletion.
4938	EntityStatus string `json:"entityStatus,omitempty"`
4939
4940	// Name: Output only. The resource name of the custom bidding algorithm.
4941	Name string `json:"name,omitempty"`
4942
4943	// PartnerId: Immutable. The unique ID of the partner that owns the
4944	// custom bidding algorithm.
4945	PartnerId int64 `json:"partnerId,omitempty,string"`
4946
4947	// ServerResponse contains the HTTP response code and headers from the
4948	// server.
4949	googleapi.ServerResponse `json:"-"`
4950
4951	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
4952	// unconditionally include in API requests. By default, fields with
4953	// empty values are omitted from API requests. However, any non-pointer,
4954	// non-interface field appearing in ForceSendFields will be sent to the
4955	// server regardless of whether the field is empty or not. This may be
4956	// used to include empty fields in Patch requests.
4957	ForceSendFields []string `json:"-"`
4958
4959	// NullFields is a list of field names (e.g. "AdvertiserId") to include
4960	// in API requests with the JSON null value. By default, fields with
4961	// empty values are omitted from API requests. However, any field with
4962	// an empty value appearing in NullFields will be sent to the server as
4963	// null. It is an error if a field in this list has a non-empty value.
4964	// This may be used to include null fields in Patch requests.
4965	NullFields []string `json:"-"`
4966}
4967
4968func (s *CustomBiddingAlgorithm) MarshalJSON() ([]byte, error) {
4969	type NoMethod CustomBiddingAlgorithm
4970	raw := NoMethod(*s)
4971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4972}
4973
4974// CustomList: Describes a custom list entity, such as a custom affinity
4975// or custom intent audience list.
4976type CustomList struct {
4977	// CustomListId: Output only. The unique ID of the custom list. Assigned
4978	// by the system.
4979	CustomListId int64 `json:"customListId,omitempty,string"`
4980
4981	// DisplayName: Output only. The display name of the custom list. .
4982	DisplayName string `json:"displayName,omitempty"`
4983
4984	// Name: Output only. The resource name of the custom list.
4985	Name string `json:"name,omitempty"`
4986
4987	// ServerResponse contains the HTTP response code and headers from the
4988	// server.
4989	googleapi.ServerResponse `json:"-"`
4990
4991	// ForceSendFields is a list of field names (e.g. "CustomListId") to
4992	// unconditionally include in API requests. By default, fields with
4993	// empty values are omitted from API requests. However, any non-pointer,
4994	// non-interface field appearing in ForceSendFields will be sent to the
4995	// server regardless of whether the field is empty or not. This may be
4996	// used to include empty fields in Patch requests.
4997	ForceSendFields []string `json:"-"`
4998
4999	// NullFields is a list of field names (e.g. "CustomListId") to include
5000	// in API requests with the JSON null value. By default, fields with
5001	// empty values are omitted from API requests. However, any field with
5002	// an empty value appearing in NullFields will be sent to the server as
5003	// null. It is an error if a field in this list has a non-empty value.
5004	// This may be used to include null fields in Patch requests.
5005	NullFields []string `json:"-"`
5006}
5007
5008func (s *CustomList) MarshalJSON() ([]byte, error) {
5009	type NoMethod CustomList
5010	raw := NoMethod(*s)
5011	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5012}
5013
5014// CustomListGroup: Details of custom list group. All custom list
5015// targeting settings are logically ‘OR’ of each other.
5016type CustomListGroup struct {
5017	// Settings: Required. All custom list targeting settings in custom list
5018	// group. Repeated settings with same id will be ignored.
5019	Settings []*CustomListTargetingSetting `json:"settings,omitempty"`
5020
5021	// ForceSendFields is a list of field names (e.g. "Settings") to
5022	// unconditionally include in API requests. By default, fields with
5023	// empty values are omitted from API requests. However, any non-pointer,
5024	// non-interface field appearing in ForceSendFields will be sent to the
5025	// server regardless of whether the field is empty or not. This may be
5026	// used to include empty fields in Patch requests.
5027	ForceSendFields []string `json:"-"`
5028
5029	// NullFields is a list of field names (e.g. "Settings") to include in
5030	// API requests with the JSON null value. By default, fields with empty
5031	// values are omitted from API requests. However, any field with an
5032	// empty value appearing in NullFields will be sent to the server as
5033	// null. It is an error if a field in this list has a non-empty value.
5034	// This may be used to include null fields in Patch requests.
5035	NullFields []string `json:"-"`
5036}
5037
5038func (s *CustomListGroup) MarshalJSON() ([]byte, error) {
5039	type NoMethod CustomListGroup
5040	raw := NoMethod(*s)
5041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5042}
5043
5044// CustomListTargetingSetting: Details of custom list targeting setting.
5045type CustomListTargetingSetting struct {
5046	// CustomListId: Required. Custom id of custom list targeting setting.
5047	// This id is custom_list_id.
5048	CustomListId int64 `json:"customListId,omitempty,string"`
5049
5050	// ForceSendFields is a list of field names (e.g. "CustomListId") to
5051	// unconditionally include in API requests. By default, fields with
5052	// empty values are omitted from API requests. However, any non-pointer,
5053	// non-interface field appearing in ForceSendFields will be sent to the
5054	// server regardless of whether the field is empty or not. This may be
5055	// used to include empty fields in Patch requests.
5056	ForceSendFields []string `json:"-"`
5057
5058	// NullFields is a list of field names (e.g. "CustomListId") to include
5059	// in API requests with the JSON null value. By default, fields with
5060	// empty values are omitted from API requests. However, any field with
5061	// an empty value appearing in NullFields will be sent to the server as
5062	// null. It is an error if a field in this list has a non-empty value.
5063	// This may be used to include null fields in Patch requests.
5064	NullFields []string `json:"-"`
5065}
5066
5067func (s *CustomListTargetingSetting) MarshalJSON() ([]byte, error) {
5068	type NoMethod CustomListTargetingSetting
5069	raw := NoMethod(*s)
5070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5071}
5072
5073// Date: Represents a whole or partial calendar date, such as a
5074// birthday. The time of day and time zone are either specified
5075// elsewhere or are insignificant. The date is relative to the Gregorian
5076// Calendar. This can represent one of the following: * A full date,
5077// with non-zero year, month, and day values * A month and day value,
5078// with a zero year, such as an anniversary * A year on its own, with
5079// zero month and day values * A year and month value, with a zero day,
5080// such as a credit card expiration date Related types are
5081// google.type.TimeOfDay and `google.protobuf.Timestamp`.
5082type Date struct {
5083	// Day: Day of a month. Must be from 1 to 31 and valid for the year and
5084	// month, or 0 to specify a year by itself or a year and month where the
5085	// day isn't significant.
5086	Day int64 `json:"day,omitempty"`
5087
5088	// Month: Month of a year. Must be from 1 to 12, or 0 to specify a year
5089	// without a month and day.
5090	Month int64 `json:"month,omitempty"`
5091
5092	// Year: Year of the date. Must be from 1 to 9999, or 0 to specify a
5093	// date without a year.
5094	Year int64 `json:"year,omitempty"`
5095
5096	// ForceSendFields is a list of field names (e.g. "Day") to
5097	// unconditionally include in API requests. By default, fields with
5098	// empty values are omitted from API requests. However, any non-pointer,
5099	// non-interface field appearing in ForceSendFields will be sent to the
5100	// server regardless of whether the field is empty or not. This may be
5101	// used to include empty fields in Patch requests.
5102	ForceSendFields []string `json:"-"`
5103
5104	// NullFields is a list of field names (e.g. "Day") to include in API
5105	// requests with the JSON null value. By default, fields with empty
5106	// values are omitted from API requests. However, any field with an
5107	// empty value appearing in NullFields will be sent to the server as
5108	// null. It is an error if a field in this list has a non-empty value.
5109	// This may be used to include null fields in Patch requests.
5110	NullFields []string `json:"-"`
5111}
5112
5113func (s *Date) MarshalJSON() ([]byte, error) {
5114	type NoMethod Date
5115	raw := NoMethod(*s)
5116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5117}
5118
5119// DateRange: A date range.
5120type DateRange struct {
5121	// EndDate: The upper bound of the date range, inclusive. Must specify a
5122	// positive value for `year`, `month`, and `day`.
5123	EndDate *Date `json:"endDate,omitempty"`
5124
5125	// StartDate: The lower bound of the date range, inclusive. Must specify
5126	// a positive value for `year`, `month`, and `day`.
5127	StartDate *Date `json:"startDate,omitempty"`
5128
5129	// ForceSendFields is a list of field names (e.g. "EndDate") to
5130	// unconditionally include in API requests. By default, fields with
5131	// empty values are omitted from API requests. However, any non-pointer,
5132	// non-interface field appearing in ForceSendFields will be sent to the
5133	// server regardless of whether the field is empty or not. This may be
5134	// used to include empty fields in Patch requests.
5135	ForceSendFields []string `json:"-"`
5136
5137	// NullFields is a list of field names (e.g. "EndDate") to include in
5138	// API requests with the JSON null value. By default, fields with empty
5139	// values are omitted from API requests. However, any field with an
5140	// empty value appearing in NullFields will be sent to the server as
5141	// null. It is an error if a field in this list has a non-empty value.
5142	// This may be used to include null fields in Patch requests.
5143	NullFields []string `json:"-"`
5144}
5145
5146func (s *DateRange) MarshalJSON() ([]byte, error) {
5147	type NoMethod DateRange
5148	raw := NoMethod(*s)
5149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5150}
5151
5152// DayAndTimeAssignedTargetingOptionDetails: Representation of a segment
5153// of time defined on a specific day of the week and with a start and
5154// end time. The time represented by `start_hour` must be before the
5155// time represented by `end_hour`.
5156type DayAndTimeAssignedTargetingOptionDetails struct {
5157	// DayOfWeek: Required. The day of the week for this day and time
5158	// targeting setting.
5159	//
5160	// Possible values:
5161	//   "DAY_OF_WEEK_UNSPECIFIED" - The day of the week is unspecified.
5162	//   "MONDAY" - Monday
5163	//   "TUESDAY" - Tuesday
5164	//   "WEDNESDAY" - Wednesday
5165	//   "THURSDAY" - Thursday
5166	//   "FRIDAY" - Friday
5167	//   "SATURDAY" - Saturday
5168	//   "SUNDAY" - Sunday
5169	DayOfWeek string `json:"dayOfWeek,omitempty"`
5170
5171	// EndHour: Required. The end hour for day and time targeting. Must be
5172	// between 1 (1 hour after start of day) and 24 (end of day).
5173	EndHour int64 `json:"endHour,omitempty"`
5174
5175	// StartHour: Required. The start hour for day and time targeting. Must
5176	// be between 0 (start of day) and 23 (1 hour before end of day).
5177	StartHour int64 `json:"startHour,omitempty"`
5178
5179	// TimeZoneResolution: Required. The mechanism used to determine which
5180	// timezone to use for this day and time targeting setting.
5181	//
5182	// Possible values:
5183	//   "TIME_ZONE_RESOLUTION_UNSPECIFIED" - Time zone resolution is either
5184	// unspecific or unknown.
5185	//   "TIME_ZONE_RESOLUTION_END_USER" - Times are resolved in the time
5186	// zone of the user that saw the ad.
5187	//   "TIME_ZONE_RESOLUTION_ADVERTISER" - Times are resolved in the time
5188	// zone of the advertiser that served the ad.
5189	TimeZoneResolution string `json:"timeZoneResolution,omitempty"`
5190
5191	// ForceSendFields is a list of field names (e.g. "DayOfWeek") to
5192	// unconditionally include in API requests. By default, fields with
5193	// empty values are omitted from API requests. However, any non-pointer,
5194	// non-interface field appearing in ForceSendFields will be sent to the
5195	// server regardless of whether the field is empty or not. This may be
5196	// used to include empty fields in Patch requests.
5197	ForceSendFields []string `json:"-"`
5198
5199	// NullFields is a list of field names (e.g. "DayOfWeek") to include in
5200	// API requests with the JSON null value. By default, fields with empty
5201	// values are omitted from API requests. However, any field with an
5202	// empty value appearing in NullFields will be sent to the server as
5203	// null. It is an error if a field in this list has a non-empty value.
5204	// This may be used to include null fields in Patch requests.
5205	NullFields []string `json:"-"`
5206}
5207
5208func (s *DayAndTimeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5209	type NoMethod DayAndTimeAssignedTargetingOptionDetails
5210	raw := NoMethod(*s)
5211	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5212}
5213
5214// DeactivateManualTriggerRequest: Request message for
5215// ManualTriggerService.DeactivateManualTrigger.
5216type DeactivateManualTriggerRequest struct {
5217}
5218
5219// DeleteAssignedTargetingOptionsRequest: A request listing which
5220// assigned targeting options of a given targeting type should be
5221// deleted.
5222type DeleteAssignedTargetingOptionsRequest struct {
5223	// AssignedTargetingOptionIds: Required. The assigned targeting option
5224	// IDs to delete.
5225	AssignedTargetingOptionIds []string `json:"assignedTargetingOptionIds,omitempty"`
5226
5227	// TargetingType: Required. Identifies the type of this assigned
5228	// targeting option.
5229	//
5230	// Possible values:
5231	//   "TARGETING_TYPE_UNSPECIFIED" - Default value when type is not
5232	// specified or is unknown in this version.
5233	//   "TARGETING_TYPE_CHANNEL" - Target a channel (a custom group of
5234	// related websites or apps).
5235	//   "TARGETING_TYPE_APP_CATEGORY" - Target an app category (for
5236	// example, education or puzzle games).
5237	//   "TARGETING_TYPE_APP" - Target a specific app (for example, Angry
5238	// Birds).
5239	//   "TARGETING_TYPE_URL" - Target a specific url (for example,
5240	// quora.com).
5241	//   "TARGETING_TYPE_DAY_AND_TIME" - Target ads during a chosen time
5242	// period on a specific day.
5243	//   "TARGETING_TYPE_AGE_RANGE" - Target ads to a specific age range
5244	// (for example, 18-24).
5245	//   "TARGETING_TYPE_REGIONAL_LOCATION_LIST" - Target ads to the
5246	// specified regions on a regional location list.
5247	//   "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" - Target ads to the
5248	// specified points of interest on a proximity location list.
5249	//   "TARGETING_TYPE_GENDER" - Target ads to a specific gender (for
5250	// example, female or male).
5251	//   "TARGETING_TYPE_VIDEO_PLAYER_SIZE" - Target a specific video player
5252	// size for video ads.
5253	//   "TARGETING_TYPE_USER_REWARDED_CONTENT" - Target user rewarded
5254	// content for video ads.
5255	//   "TARGETING_TYPE_PARENTAL_STATUS" - Target ads to a specific
5256	// parental status (for example, parent or not a parent).
5257	//   "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" - Target video or audio
5258	// ads in a specific content instream position (for example, pre-roll,
5259	// mid-roll, or post-roll).
5260	//   "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" - Target ads in a
5261	// specific content outstream position.
5262	//   "TARGETING_TYPE_DEVICE_TYPE" - Target ads to a specific device type
5263	// (for example, tablet or connected TV).
5264	//   "TARGETING_TYPE_AUDIENCE_GROUP" - Target ads to an audience or
5265	// groups of audiences. Singleton field, at most one can exist on a
5266	// single Lineitem at a time.
5267	//   "TARGETING_TYPE_BROWSER" - Target ads to specific web browsers (for
5268	// example, Chrome).
5269	//   "TARGETING_TYPE_HOUSEHOLD_INCOME" - Target ads to a specific
5270	// household income range (for example, top 10%).
5271	//   "TARGETING_TYPE_ON_SCREEN_POSITION" - Target ads in a specific on
5272	// screen position.
5273	//   "TARGETING_TYPE_THIRD_PARTY_VERIFIER" - Filter web sites through
5274	// third party verification (for example, IAS or DoubleVerify).
5275	//   "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" - Filter web sites
5276	// by specific digital content label ratings (for example, DL-MA:
5277	// suitable only for mature audiences).
5278	//   "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" - Filter website
5279	// content by sensitive categories (for example, adult).
5280	//   "TARGETING_TYPE_ENVIRONMENT" - Target ads to a specific environment
5281	// (for example, web or app).
5282	//   "TARGETING_TYPE_CARRIER_AND_ISP" - Target ads to a specific network
5283	// carrier or internet service provider (ISP) (for example, Comcast or
5284	// Orange).
5285	//   "TARGETING_TYPE_OPERATING_SYSTEM" - Target ads to a specific
5286	// operating system (for example, macOS).
5287	//   "TARGETING_TYPE_DEVICE_MAKE_MODEL" - Target ads to a specific
5288	// device make or model (for example, Roku or Samsung).
5289	//   "TARGETING_TYPE_KEYWORD" - Target ads to a specific keyword (for
5290	// example, dog or retriever).
5291	//   "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" - Target ads to a specific
5292	// negative keyword list.
5293	//   "TARGETING_TYPE_VIEWABILITY" - Target ads to a specific viewability
5294	// (for example, 80% viewable).
5295	//   "TARGETING_TYPE_CATEGORY" - Target ads to a specific content
5296	// category (for example, arts & entertainment).
5297	//   "TARGETING_TYPE_INVENTORY_SOURCE" - Purchase impressions from
5298	// specific deals and auction packages.
5299	//   "TARGETING_TYPE_LANGUAGE" - Target ads to a specific language (for
5300	// example, English or Japanese).
5301	//   "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" - Target ads to ads.txt
5302	// authorized sellers.
5303	//   "TARGETING_TYPE_GEO_REGION" - Target ads to a specific regional
5304	// location (for example, a city or state).
5305	//   "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" - Purchase impressions from
5306	// a group of deals and auction packages.
5307	//   "TARGETING_TYPE_EXCHANGE" - Purchase impressions from specific
5308	// exchanges.
5309	//   "TARGETING_TYPE_SUB_EXCHANGE" - Purchase impressions from specific
5310	// sub-exchanges.
5311	TargetingType string `json:"targetingType,omitempty"`
5312
5313	// ForceSendFields is a list of field names (e.g.
5314	// "AssignedTargetingOptionIds") to unconditionally include in API
5315	// requests. By default, fields with empty values are omitted from API
5316	// requests. However, any non-pointer, non-interface field appearing in
5317	// ForceSendFields will be sent to the server regardless of whether the
5318	// field is empty or not. This may be used to include empty fields in
5319	// Patch requests.
5320	ForceSendFields []string `json:"-"`
5321
5322	// NullFields is a list of field names (e.g.
5323	// "AssignedTargetingOptionIds") to include in API requests with the
5324	// JSON null value. By default, fields with empty values are omitted
5325	// from API requests. However, any field with an empty value appearing
5326	// in NullFields will be sent to the server as null. It is an error if a
5327	// field in this list has a non-empty value. This may be used to include
5328	// null fields in Patch requests.
5329	NullFields []string `json:"-"`
5330}
5331
5332func (s *DeleteAssignedTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
5333	type NoMethod DeleteAssignedTargetingOptionsRequest
5334	raw := NoMethod(*s)
5335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5336}
5337
5338// DeviceMakeModelAssignedTargetingOptionDetails: Assigned device make
5339// and model targeting option details. This will be populated in the
5340// device_make_model_details field when targeting_type is
5341// `TARGETING_TYPE_DEVICE_MAKE_MODEL`.
5342type DeviceMakeModelAssignedTargetingOptionDetails struct {
5343	// DisplayName: Output only. The display name of the device make and
5344	// model.
5345	DisplayName string `json:"displayName,omitempty"`
5346
5347	// Negative: Indicates if this option is being negatively targeted.
5348	Negative bool `json:"negative,omitempty"`
5349
5350	// TargetingOptionId: Required. The targeting_option_id field when
5351	// targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.
5352	TargetingOptionId string `json:"targetingOptionId,omitempty"`
5353
5354	// ForceSendFields is a list of field names (e.g. "DisplayName") to
5355	// unconditionally include in API requests. By default, fields with
5356	// empty values are omitted from API requests. However, any non-pointer,
5357	// non-interface field appearing in ForceSendFields will be sent to the
5358	// server regardless of whether the field is empty or not. This may be
5359	// used to include empty fields in Patch requests.
5360	ForceSendFields []string `json:"-"`
5361
5362	// NullFields is a list of field names (e.g. "DisplayName") to include
5363	// in API requests with the JSON null value. By default, fields with
5364	// empty values are omitted from API requests. However, any field with
5365	// an empty value appearing in NullFields will be sent to the server as
5366	// null. It is an error if a field in this list has a non-empty value.
5367	// This may be used to include null fields in Patch requests.
5368	NullFields []string `json:"-"`
5369}
5370
5371func (s *DeviceMakeModelAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5372	type NoMethod DeviceMakeModelAssignedTargetingOptionDetails
5373	raw := NoMethod(*s)
5374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5375}
5376
5377// DeviceMakeModelTargetingOptionDetails: Represents a targetable device
5378// make and model. This will be populated in the
5379// device_make_model_details field of a TargetingOption when
5380// targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.
5381type DeviceMakeModelTargetingOptionDetails struct {
5382	// DisplayName: Output only. The display name of the device make and
5383	// model.
5384	DisplayName string `json:"displayName,omitempty"`
5385
5386	// ForceSendFields is a list of field names (e.g. "DisplayName") to
5387	// unconditionally include in API requests. By default, fields with
5388	// empty values are omitted from API requests. However, any non-pointer,
5389	// non-interface field appearing in ForceSendFields will be sent to the
5390	// server regardless of whether the field is empty or not. This may be
5391	// used to include empty fields in Patch requests.
5392	ForceSendFields []string `json:"-"`
5393
5394	// NullFields is a list of field names (e.g. "DisplayName") to include
5395	// in API requests with the JSON null value. By default, fields with
5396	// empty values are omitted from API requests. However, any field with
5397	// an empty value appearing in NullFields will be sent to the server as
5398	// null. It is an error if a field in this list has a non-empty value.
5399	// This may be used to include null fields in Patch requests.
5400	NullFields []string `json:"-"`
5401}
5402
5403func (s *DeviceMakeModelTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5404	type NoMethod DeviceMakeModelTargetingOptionDetails
5405	raw := NoMethod(*s)
5406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5407}
5408
5409// DeviceTypeAssignedTargetingOptionDetails: Targeting details for
5410// device type. This will be populated in the details field of an
5411// AssignedTargetingOption when targeting_type is
5412// `TARGETING_TYPE_DEVICE_TYPE`.
5413type DeviceTypeAssignedTargetingOptionDetails struct {
5414	// DeviceType: Output only. The display name of the device type.
5415	//
5416	// Possible values:
5417	//   "DEVICE_TYPE_UNSPECIFIED" - Default value when device type is not
5418	// specified in this version. This enum is a placeholder for default
5419	// value and does not represent a real device type option.
5420	//   "DEVICE_TYPE_COMPUTER" - The device type is computer.
5421	//   "DEVICE_TYPE_CONNECTED_TV" - The device type is connected TV.
5422	//   "DEVICE_TYPE_SMART_PHONE" - The device type is smart phone..
5423	//   "DEVICE_TYPE_TABLET" - The device type is tablet.
5424	DeviceType string `json:"deviceType,omitempty"`
5425
5426	// TargetingOptionId: Required. ID of the device type.
5427	TargetingOptionId string `json:"targetingOptionId,omitempty"`
5428
5429	// ForceSendFields is a list of field names (e.g. "DeviceType") to
5430	// unconditionally include in API requests. By default, fields with
5431	// empty values are omitted from API requests. However, any non-pointer,
5432	// non-interface field appearing in ForceSendFields will be sent to the
5433	// server regardless of whether the field is empty or not. This may be
5434	// used to include empty fields in Patch requests.
5435	ForceSendFields []string `json:"-"`
5436
5437	// NullFields is a list of field names (e.g. "DeviceType") to include in
5438	// API requests with the JSON null value. By default, fields with empty
5439	// values are omitted from API requests. However, any field with an
5440	// empty value appearing in NullFields will be sent to the server as
5441	// null. It is an error if a field in this list has a non-empty value.
5442	// This may be used to include null fields in Patch requests.
5443	NullFields []string `json:"-"`
5444}
5445
5446func (s *DeviceTypeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5447	type NoMethod DeviceTypeAssignedTargetingOptionDetails
5448	raw := NoMethod(*s)
5449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5450}
5451
5452// DeviceTypeTargetingOptionDetails: Represents a targetable device
5453// type. This will be populated in the device_type_details field of a
5454// TargetingOption when targeting_type is `TARGETING_TYPE_DEVICE_TYPE`.
5455type DeviceTypeTargetingOptionDetails struct {
5456	// DeviceType: Output only. The device type that is used to be targeted.
5457	//
5458	// Possible values:
5459	//   "DEVICE_TYPE_UNSPECIFIED" - Default value when device type is not
5460	// specified in this version. This enum is a placeholder for default
5461	// value and does not represent a real device type option.
5462	//   "DEVICE_TYPE_COMPUTER" - The device type is computer.
5463	//   "DEVICE_TYPE_CONNECTED_TV" - The device type is connected TV.
5464	//   "DEVICE_TYPE_SMART_PHONE" - The device type is smart phone..
5465	//   "DEVICE_TYPE_TABLET" - The device type is tablet.
5466	DeviceType string `json:"deviceType,omitempty"`
5467
5468	// ForceSendFields is a list of field names (e.g. "DeviceType") to
5469	// unconditionally include in API requests. By default, fields with
5470	// empty values are omitted from API requests. However, any non-pointer,
5471	// non-interface field appearing in ForceSendFields will be sent to the
5472	// server regardless of whether the field is empty or not. This may be
5473	// used to include empty fields in Patch requests.
5474	ForceSendFields []string `json:"-"`
5475
5476	// NullFields is a list of field names (e.g. "DeviceType") to include in
5477	// API requests with the JSON null value. By default, fields with empty
5478	// values are omitted from API requests. However, any field with an
5479	// 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 *DeviceTypeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5486	type NoMethod DeviceTypeTargetingOptionDetails
5487	raw := NoMethod(*s)
5488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5489}
5490
5491// DigitalContentLabelAssignedTargetingOptionDetails: Targeting details
5492// for digital content label. This will be populated in the details
5493// field of an AssignedTargetingOption when targeting_type is
5494// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.
5495type DigitalContentLabelAssignedTargetingOptionDetails struct {
5496	// ContentRatingTier: Output only. The display name of the digital
5497	// content label rating tier.
5498	//
5499	// Possible values:
5500	//   "CONTENT_RATING_TIER_UNSPECIFIED" - Content label is not specified
5501	// in this version. This enum is a place holder for a default value and
5502	// does not represent a real content rating.
5503	//   "CONTENT_RATING_TIER_UNRATED" - Content that has not been labeled.
5504	//   "CONTENT_RATING_TIER_GENERAL" - Content suitable for general
5505	// audiences.
5506	//   "CONTENT_RATING_TIER_PARENTAL_GUIDANCE" - Content suitable for most
5507	// audiences with parental guidance.
5508	//   "CONTENT_RATING_TIER_TEENS" - Content suitable for teen and older
5509	// audiences.
5510	//   "CONTENT_RATING_TIER_MATURE" - Content suitable only for mature
5511	// audiences.
5512	ContentRatingTier string `json:"contentRatingTier,omitempty"`
5513
5514	// ExcludedTargetingOptionId: Required. ID of the digital content label
5515	// to be EXCLUDED.
5516	ExcludedTargetingOptionId string `json:"excludedTargetingOptionId,omitempty"`
5517
5518	// ForceSendFields is a list of field names (e.g. "ContentRatingTier")
5519	// to unconditionally include in API requests. By default, fields with
5520	// empty values are omitted from API requests. However, any non-pointer,
5521	// non-interface field appearing in ForceSendFields will be sent to the
5522	// server regardless of whether the field is empty or not. This may be
5523	// used to include empty fields in Patch requests.
5524	ForceSendFields []string `json:"-"`
5525
5526	// NullFields is a list of field names (e.g. "ContentRatingTier") to
5527	// include in API requests with the JSON null value. By default, fields
5528	// with empty values are omitted from API requests. However, any field
5529	// with an empty value appearing in NullFields will be sent to the
5530	// server as null. It is an error if a field in this list has a
5531	// non-empty value. This may be used to include null fields in Patch
5532	// requests.
5533	NullFields []string `json:"-"`
5534}
5535
5536func (s *DigitalContentLabelAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5537	type NoMethod DigitalContentLabelAssignedTargetingOptionDetails
5538	raw := NoMethod(*s)
5539	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5540}
5541
5542// DigitalContentLabelTargetingOptionDetails: Represents a targetable
5543// digital content label rating tier. This will be populated in the
5544// digital_content_label_details field of the TargetingOption when
5545// targeting_type is `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.
5546type DigitalContentLabelTargetingOptionDetails struct {
5547	// ContentRatingTier: Output only. An enum for the content label brand
5548	// safety tiers.
5549	//
5550	// Possible values:
5551	//   "CONTENT_RATING_TIER_UNSPECIFIED" - Content label is not specified
5552	// in this version. This enum is a place holder for a default value and
5553	// does not represent a real content rating.
5554	//   "CONTENT_RATING_TIER_UNRATED" - Content that has not been labeled.
5555	//   "CONTENT_RATING_TIER_GENERAL" - Content suitable for general
5556	// audiences.
5557	//   "CONTENT_RATING_TIER_PARENTAL_GUIDANCE" - Content suitable for most
5558	// audiences with parental guidance.
5559	//   "CONTENT_RATING_TIER_TEENS" - Content suitable for teen and older
5560	// audiences.
5561	//   "CONTENT_RATING_TIER_MATURE" - Content suitable only for mature
5562	// audiences.
5563	ContentRatingTier string `json:"contentRatingTier,omitempty"`
5564
5565	// ForceSendFields is a list of field names (e.g. "ContentRatingTier")
5566	// to unconditionally include in API requests. By default, fields with
5567	// empty values are omitted from API requests. However, any non-pointer,
5568	// non-interface field appearing in ForceSendFields will be sent to the
5569	// server regardless of whether the field is empty or not. This may be
5570	// used to include empty fields in Patch requests.
5571	ForceSendFields []string `json:"-"`
5572
5573	// NullFields is a list of field names (e.g. "ContentRatingTier") to
5574	// include in API requests with the JSON null value. By default, fields
5575	// with empty values are omitted from API requests. However, any field
5576	// with an empty value appearing in NullFields will be sent to the
5577	// server as null. It is an error if a field in this list has a
5578	// non-empty value. This may be used to include null fields in Patch
5579	// requests.
5580	NullFields []string `json:"-"`
5581}
5582
5583func (s *DigitalContentLabelTargetingOptionDetails) MarshalJSON() ([]byte, error) {
5584	type NoMethod DigitalContentLabelTargetingOptionDetails
5585	raw := NoMethod(*s)
5586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5587}
5588
5589// Dimensions: Dimensions.
5590type Dimensions struct {
5591	// HeightPixels: The height in pixels.
5592	HeightPixels int64 `json:"heightPixels,omitempty"`
5593
5594	// WidthPixels: The width in pixels.
5595	WidthPixels int64 `json:"widthPixels,omitempty"`
5596
5597	// ForceSendFields is a list of field names (e.g. "HeightPixels") to
5598	// unconditionally include in API requests. By default, fields with
5599	// empty values are omitted from API requests. However, any non-pointer,
5600	// non-interface field appearing in ForceSendFields will be sent to the
5601	// server regardless of whether the field is empty or not. This may be
5602	// used to include empty fields in Patch requests.
5603	ForceSendFields []string `json:"-"`
5604
5605	// NullFields is a list of field names (e.g. "HeightPixels") to include
5606	// in API requests with the JSON null value. By default, fields with
5607	// empty values are omitted from API requests. However, any field with
5608	// an empty value appearing in NullFields will be sent to the server as
5609	// null. It is an error if a field in this list has a non-empty value.
5610	// This may be used to include null fields in Patch requests.
5611	NullFields []string `json:"-"`
5612}
5613
5614func (s *Dimensions) MarshalJSON() ([]byte, error) {
5615	type NoMethod Dimensions
5616	raw := NoMethod(*s)
5617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5618}
5619
5620// DoubleVerify: Details of DoubleVerify settings.
5621type DoubleVerify struct {
5622	// AppStarRating: Avoid bidding on apps with the star ratings.
5623	AppStarRating *DoubleVerifyAppStarRating `json:"appStarRating,omitempty"`
5624
5625	// AvoidedAgeRatings: Avoid bidding on apps with the age rating.
5626	//
5627	// Possible values:
5628	//   "AGE_RATING_UNSPECIFIED" - This enum is only a placeholder and it
5629	// doesn't specify any age rating options.
5630	//   "APP_AGE_RATE_UNKNOWN" - Apps with unknown age rating.
5631	//   "APP_AGE_RATE_4_PLUS" - Apps rated for Everyone (4+).
5632	//   "APP_AGE_RATE_9_PLUS" - Apps rated for Everyone (9+).
5633	//   "APP_AGE_RATE_12_PLUS" - Apps rated for Teens (12+).
5634	//   "APP_AGE_RATE_17_PLUS" - Apps rated for Mature (17+).
5635	//   "APP_AGE_RATE_18_PLUS" - Apps rated for Adults Only (18+).
5636	AvoidedAgeRatings []string `json:"avoidedAgeRatings,omitempty"`
5637
5638	// BrandSafetyCategories: DV Brand Safety Controls.
5639	BrandSafetyCategories *DoubleVerifyBrandSafetyCategories `json:"brandSafetyCategories,omitempty"`
5640
5641	// CustomSegmentId: The custom segment ID provided by DoubleVerify. The
5642	// ID must start with "51" and consist of eight digits. Custom segment
5643	// ID cannot be specified along with any of the following fields: *
5644	// brand_safety_categories * avoided_age_ratings * app_star_rating *
5645	// fraud_invalid_traffic
5646	CustomSegmentId int64 `json:"customSegmentId,omitempty,string"`
5647
5648	// DisplayViewability: Display viewability settings (applicable to
5649	// display line items only).
5650	DisplayViewability *DoubleVerifyDisplayViewability `json:"displayViewability,omitempty"`
5651
5652	// FraudInvalidTraffic: Avoid Sites and Apps with historical Fraud & IVT
5653	// Rates.
5654	FraudInvalidTraffic *DoubleVerifyFraudInvalidTraffic `json:"fraudInvalidTraffic,omitempty"`
5655
5656	// VideoViewability: Video viewability settings (applicable to video
5657	// line items only).
5658	VideoViewability *DoubleVerifyVideoViewability `json:"videoViewability,omitempty"`
5659
5660	// ForceSendFields is a list of field names (e.g. "AppStarRating") to
5661	// unconditionally include in API requests. By default, fields with
5662	// empty values are omitted from API requests. However, any non-pointer,
5663	// non-interface field appearing in ForceSendFields will be sent to the
5664	// server regardless of whether the field is empty or not. This may be
5665	// used to include empty fields in Patch requests.
5666	ForceSendFields []string `json:"-"`
5667
5668	// NullFields is a list of field names (e.g. "AppStarRating") to include
5669	// in API requests with the JSON null value. By default, fields with
5670	// empty values are omitted from API requests. However, any field with
5671	// an empty value appearing in NullFields will be sent to the server as
5672	// null. It is an error if a field in this list has a non-empty value.
5673	// This may be used to include null fields in Patch requests.
5674	NullFields []string `json:"-"`
5675}
5676
5677func (s *DoubleVerify) MarshalJSON() ([]byte, error) {
5678	type NoMethod DoubleVerify
5679	raw := NoMethod(*s)
5680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5681}
5682
5683// DoubleVerifyAppStarRating: Details of DoubleVerify star ratings
5684// settings.
5685type DoubleVerifyAppStarRating struct {
5686	// AvoidInsufficientStarRating: Avoid bidding on apps with insufficient
5687	// star ratings.
5688	AvoidInsufficientStarRating bool `json:"avoidInsufficientStarRating,omitempty"`
5689
5690	// AvoidedStarRating: Avoid bidding on apps with the star ratings.
5691	//
5692	// Possible values:
5693	//   "APP_STAR_RATE_UNSPECIFIED" - This enum is only a placeholder and
5694	// it doesn't specify any app star rating options.
5695	//   "APP_STAR_RATE_1_POINT_5_LESS" - Official Apps with rating < 1.5
5696	// Stars.
5697	//   "APP_STAR_RATE_2_LESS" - Official Apps with rating < 2 Stars.
5698	//   "APP_STAR_RATE_2_POINT_5_LESS" - Official Apps with rating < 2.5
5699	// Stars.
5700	//   "APP_STAR_RATE_3_LESS" - Official Apps with rating < 3 Stars.
5701	//   "APP_STAR_RATE_3_POINT_5_LESS" - Official Apps with rating < 3.5
5702	// Stars.
5703	//   "APP_STAR_RATE_4_LESS" - Official Apps with rating < 4 Stars.
5704	//   "APP_STAR_RATE_4_POINT_5_LESS" - Official Apps with rating < 4.5
5705	// Stars.
5706	AvoidedStarRating string `json:"avoidedStarRating,omitempty"`
5707
5708	// ForceSendFields is a list of field names (e.g.
5709	// "AvoidInsufficientStarRating") to unconditionally include in API
5710	// requests. By default, fields with empty values are omitted from API
5711	// requests. However, any non-pointer, non-interface field appearing in
5712	// ForceSendFields will be sent to the server regardless of whether the
5713	// field is empty or not. This may be used to include empty fields in
5714	// Patch requests.
5715	ForceSendFields []string `json:"-"`
5716
5717	// NullFields is a list of field names (e.g.
5718	// "AvoidInsufficientStarRating") to include in API requests with the
5719	// JSON null value. By default, fields with empty values are omitted
5720	// from API requests. However, any field with an empty value appearing
5721	// in NullFields will be sent to the server as null. It is an error if a
5722	// field in this list has a non-empty value. This may be used to include
5723	// null fields in Patch requests.
5724	NullFields []string `json:"-"`
5725}
5726
5727func (s *DoubleVerifyAppStarRating) MarshalJSON() ([]byte, error) {
5728	type NoMethod DoubleVerifyAppStarRating
5729	raw := NoMethod(*s)
5730	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5731}
5732
5733// DoubleVerifyBrandSafetyCategories: Settings for brand safety
5734// controls.
5735type DoubleVerifyBrandSafetyCategories struct {
5736	// AvoidUnknownBrandSafetyCategory: Unknown or unrateable.
5737	AvoidUnknownBrandSafetyCategory bool `json:"avoidUnknownBrandSafetyCategory,omitempty"`
5738
5739	// AvoidedHighSeverityCategories: Brand safety high severity avoidance
5740	// categories.
5741	//
5742	// Possible values:
5743	//   "HIGHER_SEVERITY_UNSPECIFIED" - This enum is only a placeholder and
5744	// it doesn't specify any high severity categories.
5745	//   "ADULT_CONTENT_PORNOGRAPHY" - Adult Content: Pornography, Mature
5746	// Topics & Nudity.
5747	//   "COPYRIGHT_INFRINGEMENT" - Copyright Infringement.
5748	//   "SUBSTANCE_ABUSE" - Drugs/Alcohol/Controlled Substances: Substance
5749	// Abuse.
5750	//   "GRAPHIC_VIOLENCE_WEAPONS" - Extreme Graphic/Explicit
5751	// Violence/Weapons.
5752	//   "HATE_PROFANITY" - Hate/Profanity.
5753	//   "CRIMINAL_SKILLS" - Illegal Activities: Criminal Skills.
5754	//   "NUISANCE_INCENTIVIZED_MALWARE_CLUTTER" -
5755	// Incentivized/Malware/Clutter.
5756	AvoidedHighSeverityCategories []string `json:"avoidedHighSeverityCategories,omitempty"`
5757
5758	// AvoidedMediumSeverityCategories: Brand safety medium severity
5759	// avoidance categories.
5760	//
5761	// Possible values:
5762	//   "MEDIUM_SEVERITY_UNSPECIFIED" - This enum is only a placeholder and
5763	// it doesn't specify any medium severity categories.
5764	//   "AD_SERVERS" - Ad Servers.
5765	//   "ADULT_CONTENT_SWIMSUIT" - Adult Content: Swimsuit.
5766	//   "ALTERNATIVE_LIFESTYLES" - Controversial Subjects: Alternative
5767	// Lifestyles.
5768	//   "CELEBRITY_GOSSIP" - Controversial Subjects: Celebrity Gossip.
5769	//   "GAMBLING" - Controversial Subjects: Gambling.
5770	//   "OCCULT" - Controversial Subjects: Occult.
5771	//   "SEX_EDUCATION" - Controversial Subjects: Sex Education.
5772	//   "DISASTER_AVIATION" - Disaster: Aviation.
5773	//   "DISASTER_MAN_MADE" - Disaster: Man-made.
5774	//   "DISASTER_NATURAL" - Disaster: Natural.
5775	//   "DISASTER_TERRORIST_EVENTS" - Disaster: Terrorist Events.
5776	//   "DISASTER_VEHICLE" - Disaster: Vehicle.
5777	//   "ALCOHOL" - Drugs/Alcohol/Controlled Substances: Alcohol.
5778	//   "SMOKING" - Drugs/Alcohol/Controlled Substances: Smoking.
5779	//   "NEGATIVE_NEWS_FINANCIAL" - Negative News: Financial.
5780	//   "NON_ENGLISH" - Non-Std Content: Non-English.
5781	//   "PARKING_PAGE" - Non-Std Content: Parking Page.
5782	//   "UNMODERATED_UGC" - Unmoderated UGC: Forums, Images & Video.
5783	//   "INFLAMMATORY_POLITICS_AND_NEWS" - Controversial Subjects:
5784	// Inflammatory Politics and News.
5785	//   "NEGATIVE_NEWS_PHARMACEUTICAL" - Negative News: Pharmaceutical.
5786	AvoidedMediumSeverityCategories []string `json:"avoidedMediumSeverityCategories,omitempty"`
5787
5788	// ForceSendFields is a list of field names (e.g.
5789	// "AvoidUnknownBrandSafetyCategory") to unconditionally include in API
5790	// requests. By default, fields with empty values are omitted from API
5791	// requests. However, any non-pointer, non-interface field appearing in
5792	// ForceSendFields will be sent to the server regardless of whether the
5793	// field is empty or not. This may be used to include empty fields in
5794	// Patch requests.
5795	ForceSendFields []string `json:"-"`
5796
5797	// NullFields is a list of field names (e.g.
5798	// "AvoidUnknownBrandSafetyCategory") to include in API requests with
5799	// the JSON null value. By default, fields with empty values are omitted
5800	// from API requests. However, any field with an empty value appearing
5801	// in NullFields will be sent to the server as null. It is an error if a
5802	// field in this list has a non-empty value. This may be used to include
5803	// null fields in Patch requests.
5804	NullFields []string `json:"-"`
5805}
5806
5807func (s *DoubleVerifyBrandSafetyCategories) MarshalJSON() ([]byte, error) {
5808	type NoMethod DoubleVerifyBrandSafetyCategories
5809	raw := NoMethod(*s)
5810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5811}
5812
5813// DoubleVerifyDisplayViewability: Details of DoubleVerify display
5814// viewability settings.
5815type DoubleVerifyDisplayViewability struct {
5816	// Iab: Target web and app inventory to maximize IAB viewable rate.
5817	//
5818	// Possible values:
5819	//   "IAB_VIEWED_RATE_UNSPECIFIED" - This enum is only a placeholder and
5820	// it doesn't specify any IAB viewed rate options.
5821	//   "IAB_VIEWED_RATE_80_PERCENT_HIGHER" - Target web and app inventory
5822	// to maximize IAB viewable rate 80% or higher.
5823	//   "IAB_VIEWED_RATE_75_PERCENT_HIGHER" - Target web and app inventory
5824	// to maximize IAB viewable rate 75% or higher.
5825	//   "IAB_VIEWED_RATE_70_PERCENT_HIGHER" - Target web and app inventory
5826	// to maximize IAB viewable rate 70% or higher.
5827	//   "IAB_VIEWED_RATE_65_PERCENT_HIGHER" - Target web and app inventory
5828	// to maximize IAB viewable rate 65% or higher.
5829	//   "IAB_VIEWED_RATE_60_PERCENT_HIGHER" - Target web and app inventory
5830	// to maximize IAB viewable rate 60% or higher.
5831	//   "IAB_VIEWED_RATE_55_PERCENT_HIGHER" - Target web and app inventory
5832	// to maximize IAB viewable rate 55% or higher.
5833	//   "IAB_VIEWED_RATE_50_PERCENT_HIGHER" - Target web and app inventory
5834	// to maximize IAB viewable rate 50% or higher.
5835	//   "IAB_VIEWED_RATE_40_PERCENT_HIGHER" - Target web and app inventory
5836	// to maximize IAB viewable rate 40% or higher.
5837	//   "IAB_VIEWED_RATE_30_PERCENT_HIGHER" - Target web and app inventory
5838	// to maximize IAB viewable rate 30% or higher.
5839	Iab string `json:"iab,omitempty"`
5840
5841	// ViewableDuring: Target web and app inventory to maximize 100%
5842	// viewable duration.
5843	//
5844	// Possible values:
5845	//   "AVERAGE_VIEW_DURATION_UNSPECIFIED" - This enum is only a
5846	// placeholder and it doesn't specify any average view duration options.
5847	//   "AVERAGE_VIEW_DURATION_5_SEC" - Target web and app inventory to
5848	// maximize 100% viewable duration 5 seconds or more.
5849	//   "AVERAGE_VIEW_DURATION_10_SEC" - Target web and app inventory to
5850	// maximize 100% viewable duration 10 seconds or more.
5851	//   "AVERAGE_VIEW_DURATION_15_SEC" - Target web and app inventory to
5852	// maximize 100% viewable duration 15 seconds or more.
5853	ViewableDuring string `json:"viewableDuring,omitempty"`
5854
5855	// ForceSendFields is a list of field names (e.g. "Iab") to
5856	// unconditionally include in API requests. By default, fields with
5857	// empty values are omitted from API requests. However, any non-pointer,
5858	// non-interface field appearing in ForceSendFields will be sent to the
5859	// server regardless of whether the field is empty or not. This may be
5860	// used to include empty fields in Patch requests.
5861	ForceSendFields []string `json:"-"`
5862
5863	// NullFields is a list of field names (e.g. "Iab") to include in API
5864	// requests with the JSON null value. By default, fields with empty
5865	// values are omitted from API requests. However, any field with an
5866	// empty value appearing in NullFields will be sent to the server as
5867	// null. It is an error if a field in this list has a non-empty value.
5868	// This may be used to include null fields in Patch requests.
5869	NullFields []string `json:"-"`
5870}
5871
5872func (s *DoubleVerifyDisplayViewability) MarshalJSON() ([]byte, error) {
5873	type NoMethod DoubleVerifyDisplayViewability
5874	raw := NoMethod(*s)
5875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5876}
5877
5878// DoubleVerifyFraudInvalidTraffic: DoubleVerify Fraud & Invalid Traffic
5879// settings.
5880type DoubleVerifyFraudInvalidTraffic struct {
5881	// AvoidInsufficientOption: Insufficient Historical Fraud & IVT Stats.
5882	AvoidInsufficientOption bool `json:"avoidInsufficientOption,omitempty"`
5883
5884	// AvoidedFraudOption: Avoid Sites and Apps with historical Fraud & IVT.
5885	//
5886	// Possible values:
5887	//   "FRAUD_UNSPECIFIED" - This enum is only a placeholder and it
5888	// doesn't specify any fraud and invalid traffic options.
5889	//   "AD_IMPRESSION_FRAUD_100" - 100% Fraud & IVT.
5890	//   "AD_IMPRESSION_FRAUD_50" - 50% or Higher Fraud & IVT.
5891	//   "AD_IMPRESSION_FRAUD_25" - 25% or Higher Fraud & IVT.
5892	//   "AD_IMPRESSION_FRAUD_10" - 10% or Higher Fraud & IVT.
5893	//   "AD_IMPRESSION_FRAUD_8" - 8% or Higher Fraud & IVT.
5894	//   "AD_IMPRESSION_FRAUD_6" - 6% or Higher Fraud & IVT.
5895	//   "AD_IMPRESSION_FRAUD_4" - 4% or Higher Fraud & IVT.
5896	//   "AD_IMPRESSION_FRAUD_2" - 2% or Higher Fraud & IVT.
5897	AvoidedFraudOption string `json:"avoidedFraudOption,omitempty"`
5898
5899	// ForceSendFields is a list of field names (e.g.
5900	// "AvoidInsufficientOption") to unconditionally include in API
5901	// requests. By default, fields with empty values are omitted from API
5902	// requests. However, any non-pointer, non-interface field appearing in
5903	// ForceSendFields will be sent to the server regardless of whether the
5904	// field is empty or not. This may be used to include empty fields in
5905	// Patch requests.
5906	ForceSendFields []string `json:"-"`
5907
5908	// NullFields is a list of field names (e.g. "AvoidInsufficientOption")
5909	// to include in API requests with the JSON null value. By default,
5910	// fields with empty values are omitted from API requests. However, any
5911	// field with an empty value appearing in NullFields will be sent to the
5912	// server as null. It is an error if a field in this list has a
5913	// non-empty value. This may be used to include null fields in Patch
5914	// requests.
5915	NullFields []string `json:"-"`
5916}
5917
5918func (s *DoubleVerifyFraudInvalidTraffic) MarshalJSON() ([]byte, error) {
5919	type NoMethod DoubleVerifyFraudInvalidTraffic
5920	raw := NoMethod(*s)
5921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5922}
5923
5924// DoubleVerifyVideoViewability: Details of DoubleVerify video
5925// viewability settings.
5926type DoubleVerifyVideoViewability struct {
5927	// PlayerImpressionRate: Target inventory to maximize impressions with
5928	// 400x300 or greater player size.
5929	//
5930	// Possible values:
5931	//   "PLAYER_SIZE_400X300_UNSPECIFIED" - This enum is only a placeholder
5932	// and it doesn't specify any impressions options.
5933	//   "PLAYER_SIZE_400X300_95" - Sites with 95%+ of impressions.
5934	//   "PLAYER_SIZE_400X300_70" - Sites with 70%+ of impressions.
5935	//   "PLAYER_SIZE_400X300_25" - Sites with 25%+ of impressions.
5936	//   "PLAYER_SIZE_400X300_5" - Sites with 5%+ of impressions.
5937	PlayerImpressionRate string `json:"playerImpressionRate,omitempty"`
5938
5939	// VideoIab: Target web inventory to maximize IAB viewable rate.
5940	//
5941	// Possible values:
5942	//   "VIDEO_IAB_UNSPECIFIED" - This enum is only a placeholder and it
5943	// doesn't specify any video IAB viewable rate options.
5944	//   "IAB_VIEWABILITY_80_PERCENT_HIGHER" - Target web and app inventory
5945	// to maximize IAB viewable rate 80% or higher.
5946	//   "IAB_VIEWABILITY_75_PERCENT_HIGHER" - Target web and app inventory
5947	// to maximize IAB viewable rate 75% or higher.
5948	//   "IAB_VIEWABILITY_70_PERCENT_HIGHER" - Target web and app inventory
5949	// to maximize IAB viewable rate 70% or higher.
5950	//   "IAB_VIEWABILITY_65_PERCENT_HIHGER" - Target web and app inventory
5951	// to maximize IAB viewable rate 65% or higher.
5952	//   "IAB_VIEWABILITY_60_PERCENT_HIGHER" - Target web and app inventory
5953	// to maximize IAB viewable rate 60% or higher.
5954	//   "IAB_VIEWABILITY_55_PERCENT_HIHGER" - Target web and app inventory
5955	// to maximize IAB viewable rate 55% or higher.
5956	//   "IAB_VIEWABILITY_50_PERCENT_HIGHER" - Target web and app inventory
5957	// to maximize IAB viewable rate 50% or higher.
5958	//   "IAB_VIEWABILITY_40_PERCENT_HIHGER" - Target web and app inventory
5959	// to maximize IAB viewable rate 40% or higher.
5960	//   "IAB_VIEWABILITY_30_PERCENT_HIHGER" - Target web and app inventory
5961	// to maximize IAB viewable rate 30% or higher.
5962	VideoIab string `json:"videoIab,omitempty"`
5963
5964	// VideoViewableRate: Target web inventory to maximize fully viewable
5965	// rate.
5966	//
5967	// Possible values:
5968	//   "VIDEO_VIEWABLE_RATE_UNSPECIFIED" - This enum is only a placeholder
5969	// and it doesn't specify any video viewable rate options.
5970	//   "VIEWED_PERFORMANCE_40_PERCENT_HIGHER" - Target web inventory to
5971	// maximize fully viewable rate 40% or higher.
5972	//   "VIEWED_PERFORMANCE_35_PERCENT_HIGHER" - Target web inventory to
5973	// maximize fully viewable rate 35% or higher.
5974	//   "VIEWED_PERFORMANCE_30_PERCENT_HIGHER" - Target web inventory to
5975	// maximize fully viewable rate 30% or higher.
5976	//   "VIEWED_PERFORMANCE_25_PERCENT_HIGHER" - Target web inventory to
5977	// maximize fully viewable rate 25% or higher.
5978	//   "VIEWED_PERFORMANCE_20_PERCENT_HIGHER" - Target web inventory to
5979	// maximize fully viewable rate 20% or higher.
5980	//   "VIEWED_PERFORMANCE_10_PERCENT_HIGHER" - Target web inventory to
5981	// maximize fully viewable rate 10% or higher.
5982	VideoViewableRate string `json:"videoViewableRate,omitempty"`
5983
5984	// ForceSendFields is a list of field names (e.g.
5985	// "PlayerImpressionRate") to unconditionally include in API requests.
5986	// By default, fields with empty values are omitted from API requests.
5987	// However, any non-pointer, non-interface field appearing in
5988	// ForceSendFields will be sent to the server regardless of whether the
5989	// field is empty or not. This may be used to include empty fields in
5990	// Patch requests.
5991	ForceSendFields []string `json:"-"`
5992
5993	// NullFields is a list of field names (e.g. "PlayerImpressionRate") to
5994	// include in API requests with the JSON null value. By default, fields
5995	// with empty values are omitted from API requests. However, any field
5996	// with an empty value appearing in NullFields will be sent to the
5997	// server as null. It is an error if a field in this list has a
5998	// non-empty value. This may be used to include null fields in Patch
5999	// requests.
6000	NullFields []string `json:"-"`
6001}
6002
6003func (s *DoubleVerifyVideoViewability) MarshalJSON() ([]byte, error) {
6004	type NoMethod DoubleVerifyVideoViewability
6005	raw := NoMethod(*s)
6006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6007}
6008
6009// Empty: A generic empty message that you can re-use to avoid defining
6010// duplicated empty messages in your APIs. A typical example is to use
6011// it as the request or the response type of an API method. For
6012// instance: service Foo { rpc Bar(google.protobuf.Empty) returns
6013// (google.protobuf.Empty); } The JSON representation for `Empty` is
6014// empty JSON object `{}`.
6015type Empty struct {
6016	// ServerResponse contains the HTTP response code and headers from the
6017	// server.
6018	googleapi.ServerResponse `json:"-"`
6019}
6020
6021// EnvironmentAssignedTargetingOptionDetails: Assigned environment
6022// targeting option details. This will be populated in the details field
6023// of an AssignedTargetingOption when targeting_type is
6024// `TARGETING_TYPE_ENVIRONMENT`.
6025type EnvironmentAssignedTargetingOptionDetails struct {
6026	// Environment: Output only. The serving environment.
6027	//
6028	// Possible values:
6029	//   "ENVIRONMENT_UNSPECIFIED" - Default value when environment is not
6030	// specified in this version. This enum is a placeholder for default
6031	// value and does not represent a real environment option.
6032	//   "ENVIRONMENT_WEB_OPTIMIZED" - Target inventory displayed in
6033	// browsers. This includes inventory that was designed for the device it
6034	// was viewed on, such as mobile websites viewed on a mobile device.
6035	// ENVIRONMENT_WEB_NOT_OPTIMIZED, if targeted, should be deleted prior
6036	// to the deletion of this targeting option.
6037	//   "ENVIRONMENT_WEB_NOT_OPTIMIZED" - Target inventory displayed in
6038	// browsers. This includes inventory that was not designed for the
6039	// device but viewed on it, such as websites optimized for desktop but
6040	// viewed on a mobile device. ENVIRONMENT_WEB_OPTIMIZED should be
6041	// targeted prior to the addition of this targeting option.
6042	//   "ENVIRONMENT_APP" - Target inventory displayed in apps.
6043	Environment string `json:"environment,omitempty"`
6044
6045	// TargetingOptionId: Required. The targeting_option_id of a
6046	// TargetingOption of type `TARGETING_TYPE_ENVIRONMENT` (e.g., "508010"
6047	// for targeting the `ENVIRONMENT_WEB_OPTIMIZED` option).
6048	TargetingOptionId string `json:"targetingOptionId,omitempty"`
6049
6050	// ForceSendFields is a list of field names (e.g. "Environment") to
6051	// unconditionally include in API requests. By default, fields with
6052	// empty values are omitted from API requests. However, any non-pointer,
6053	// non-interface field appearing in ForceSendFields will be sent to the
6054	// server regardless of whether the field is empty or not. This may be
6055	// used to include empty fields in Patch requests.
6056	ForceSendFields []string `json:"-"`
6057
6058	// NullFields is a list of field names (e.g. "Environment") to include
6059	// in API requests with the JSON null value. By default, fields with
6060	// empty values are omitted from API requests. However, any field with
6061	// an empty value appearing in NullFields will be sent to the server as
6062	// null. It is an error if a field in this list has a non-empty value.
6063	// This may be used to include null fields in Patch requests.
6064	NullFields []string `json:"-"`
6065}
6066
6067func (s *EnvironmentAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
6068	type NoMethod EnvironmentAssignedTargetingOptionDetails
6069	raw := NoMethod(*s)
6070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6071}
6072
6073// EnvironmentTargetingOptionDetails: Represents a targetable
6074// environment. This will be populated in the environment_details field
6075// of a TargetingOption when targeting_type is
6076// `TARGETING_TYPE_ENVIRONMENT`.
6077type EnvironmentTargetingOptionDetails struct {
6078	// Environment: Output only. The serving environment.
6079	//
6080	// Possible values:
6081	//   "ENVIRONMENT_UNSPECIFIED" - Default value when environment is not
6082	// specified in this version. This enum is a placeholder for default
6083	// value and does not represent a real environment option.
6084	//   "ENVIRONMENT_WEB_OPTIMIZED" - Target inventory displayed in
6085	// browsers. This includes inventory that was designed for the device it
6086	// was viewed on, such as mobile websites viewed on a mobile device.
6087	// ENVIRONMENT_WEB_NOT_OPTIMIZED, if targeted, should be deleted prior
6088	// to the deletion of this targeting option.
6089	//   "ENVIRONMENT_WEB_NOT_OPTIMIZED" - Target inventory displayed in
6090	// browsers. This includes inventory that was not designed for the
6091	// device but viewed on it, such as websites optimized for desktop but
6092	// viewed on a mobile device. ENVIRONMENT_WEB_OPTIMIZED should be
6093	// targeted prior to the addition of this targeting option.
6094	//   "ENVIRONMENT_APP" - Target inventory displayed in apps.
6095	Environment string `json:"environment,omitempty"`
6096
6097	// ForceSendFields is a list of field names (e.g. "Environment") to
6098	// unconditionally include in API requests. By default, fields with
6099	// empty values are omitted from API requests. However, any non-pointer,
6100	// non-interface field appearing in ForceSendFields will be sent to the
6101	// server regardless of whether the field is empty or not. This may be
6102	// used to include empty fields in Patch requests.
6103	ForceSendFields []string `json:"-"`
6104
6105	// NullFields is a list of field names (e.g. "Environment") to include
6106	// in API requests with the JSON null value. By default, fields with
6107	// empty values are omitted from API requests. However, any field with
6108	// an empty value appearing in NullFields will be sent to the server as
6109	// null. It is an error if a field in this list has a non-empty value.
6110	// This may be used to include null fields in Patch requests.
6111	NullFields []string `json:"-"`
6112}
6113
6114func (s *EnvironmentTargetingOptionDetails) MarshalJSON() ([]byte, error) {
6115	type NoMethod EnvironmentTargetingOptionDetails
6116	raw := NoMethod(*s)
6117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6118}
6119
6120// ExchangeAssignedTargetingOptionDetails: Details for assigned exchange
6121// targeting option. This will be populated in the details field of an
6122// AssignedTargetingOption when targeting_type is
6123// `TARGETING_TYPE_EXCHANGE`.
6124type ExchangeAssignedTargetingOptionDetails struct {
6125	// TargetingOptionId: Required. The targeting_option_id of a
6126	// TargetingOption of type `TARGETING_TYPE_EXCHANGE`.
6127	TargetingOptionId string `json:"targetingOptionId,omitempty"`
6128
6129	// ForceSendFields is a list of field names (e.g. "TargetingOptionId")
6130	// to unconditionally include in API requests. By default, fields with
6131	// empty values are omitted from API requests. However, any non-pointer,
6132	// non-interface field appearing in ForceSendFields will be sent to the
6133	// server regardless of whether the field is empty or not. This may be
6134	// used to include empty fields in Patch requests.
6135	ForceSendFields []string `json:"-"`
6136
6137	// NullFields is a list of field names (e.g. "TargetingOptionId") to
6138	// include in API requests with the JSON null value. By default, fields
6139	// with empty values are omitted from API requests. However, any field
6140	// with an empty value appearing in NullFields will be sent to the
6141	// server as null. It is an error if a field in this list has a
6142	// non-empty value. This may be used to include null fields in Patch
6143	// requests.
6144	NullFields []string `json:"-"`
6145}
6146
6147func (s *ExchangeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
6148	type NoMethod ExchangeAssignedTargetingOptionDetails
6149	raw := NoMethod(*s)
6150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6151}
6152
6153// ExchangeConfig: Settings that control which exchanges are enabled for
6154// a partner.
6155type ExchangeConfig struct {
6156	// EnabledExchanges: All enabled exchanges in the partner. Duplicate
6157	// enabled exchanges will be ignored.
6158	EnabledExchanges []*ExchangeConfigEnabledExchange `json:"enabledExchanges,omitempty"`
6159
6160	// ForceSendFields is a list of field names (e.g. "EnabledExchanges") to
6161	// unconditionally include in API requests. By default, fields with
6162	// empty values are omitted from API requests. However, any non-pointer,
6163	// non-interface field appearing in ForceSendFields will be sent to the
6164	// server regardless of whether the field is empty or not. This may be
6165	// used to include empty fields in Patch requests.
6166	ForceSendFields []string `json:"-"`
6167
6168	// NullFields is a list of field names (e.g. "EnabledExchanges") to
6169	// include in API requests with the JSON null value. By default, fields
6170	// with empty values are omitted from API requests. However, any field
6171	// with an empty value appearing in NullFields will be sent to the
6172	// server as null. It is an error if a field in this list has a
6173	// non-empty value. This may be used to include null fields in Patch
6174	// requests.
6175	NullFields []string `json:"-"`
6176}
6177
6178func (s *ExchangeConfig) MarshalJSON() ([]byte, error) {
6179	type NoMethod ExchangeConfig
6180	raw := NoMethod(*s)
6181	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6182}
6183
6184// ExchangeConfigEnabledExchange: An enabled exchange in the partner.
6185type ExchangeConfigEnabledExchange struct {
6186	// Exchange: The enabled exchange.
6187	//
6188	// Possible values:
6189	//   "EXCHANGE_UNSPECIFIED" - Exchange is not specified or is unknown in
6190	// this version.
6191	//   "EXCHANGE_GOOGLE_AD_MANAGER" - Google Ad Manager.
6192	//   "EXCHANGE_APPNEXUS" - AppNexus.
6193	//   "EXCHANGE_BRIGHTROLL" - BrightRoll Exchange for Video from Yahoo!.
6194	//   "EXCHANGE_ADFORM" - Adform.
6195	//   "EXCHANGE_ADMETA" - Admeta.
6196	//   "EXCHANGE_ADMIXER" - Admixer.
6197	//   "EXCHANGE_ADSMOGO" - AdsMogo.
6198	//   "EXCHANGE_ADSWIZZ" - AdsWizz.
6199	//   "EXCHANGE_BIDSWITCH" - BidSwitch.
6200	//   "EXCHANGE_BRIGHTROLL_DISPLAY" - BrightRoll Exchange for Display
6201	// from Yahoo!.
6202	//   "EXCHANGE_CADREON" - Cadreon.
6203	//   "EXCHANGE_DAILYMOTION" - Dailymotion.
6204	//   "EXCHANGE_FIVE" - Five.
6205	//   "EXCHANGE_FLUCT" - Fluct.
6206	//   "EXCHANGE_FREEWHEEL" - FreeWheel SSP.
6207	//   "EXCHANGE_GENIEE" - Geniee.
6208	//   "EXCHANGE_GUMGUM" - GumGum.
6209	//   "EXCHANGE_IMOBILE" - i-mobile.
6210	//   "EXCHANGE_IBILLBOARD" - iBILLBOARD.
6211	//   "EXCHANGE_IMPROVE_DIGITAL" - Improve Digital.
6212	//   "EXCHANGE_INDEX" - Index Exchange.
6213	//   "EXCHANGE_KARGO" - Kargo.
6214	//   "EXCHANGE_MICROAD" - MicroAd.
6215	//   "EXCHANGE_MOPUB" - MoPub.
6216	//   "EXCHANGE_NEND" - Nend.
6217	//   "EXCHANGE_ONE_BY_AOL_DISPLAY" - ONE by AOL: Display Market Place.
6218	//   "EXCHANGE_ONE_BY_AOL_MOBILE" - ONE by AOL: Mobile.
6219	//   "EXCHANGE_ONE_BY_AOL_VIDEO" - ONE by AOL: Video.
6220	//   "EXCHANGE_OOYALA" - Ooyala.
6221	//   "EXCHANGE_OPENX" - OpenX.
6222	//   "EXCHANGE_PERMODO" - Permodo.
6223	//   "EXCHANGE_PLATFORMONE" - Platform One.
6224	//   "EXCHANGE_PLATFORMID" - PlatformId.
6225	//   "EXCHANGE_PUBMATIC" - PubMatic.
6226	//   "EXCHANGE_PULSEPOINT" - PulsePoint.
6227	//   "EXCHANGE_REVENUEMAX" - RevenueMax.
6228	//   "EXCHANGE_RUBICON" - Rubicon.
6229	//   "EXCHANGE_SMARTCLIP" - SmartClip.
6230	//   "EXCHANGE_SMARTRTB" - SmartRTB+.
6231	//   "EXCHANGE_SMARTSTREAMTV" - SmartstreamTv.
6232	//   "EXCHANGE_SOVRN" - Sovrn.
6233	//   "EXCHANGE_SPOTXCHANGE" - SpotXchange.
6234	//   "EXCHANGE_STROER" - Ströer SSP.
6235	//   "EXCHANGE_TEADSTV" - TeadsTv.
6236	//   "EXCHANGE_TELARIA" - Telaria.
6237	//   "EXCHANGE_TVN" - TVN.
6238	//   "EXCHANGE_UNITED" - United.
6239	//   "EXCHANGE_YIELDLAB" - Yieldlab.
6240	//   "EXCHANGE_YIELDMO" - Yieldmo.
6241	//   "EXCHANGE_UNRULYX" - UnrulyX.
6242	//   "EXCHANGE_OPEN8" - Open8.
6243	//   "EXCHANGE_TRITON" - Triton.
6244	//   "EXCHANGE_TRIPLELIFT" - TripleLift.
6245	//   "EXCHANGE_TABOOLA" - Taboola.
6246	//   "EXCHANGE_INMOBI" - InMobi.
6247	//   "EXCHANGE_SMAATO" - Smaato.
6248	//   "EXCHANGE_AJA" - Aja.
6249	//   "EXCHANGE_SUPERSHIP" - Supership.
6250	//   "EXCHANGE_NEXSTAR_DIGITAL" - Nexstar Digital.
6251	//   "EXCHANGE_WAZE" - Waze.
6252	//   "EXCHANGE_SOUNDCAST" - SoundCast.
6253	//   "EXCHANGE_SHARETHROUGH" - Sharethrough.
6254	Exchange string `json:"exchange,omitempty"`
6255
6256	// GoogleAdManagerAgencyId: Output only. Agency ID of Google Ad Manager.
6257	// The field is only relevant when Google Ad Manager is the enabled
6258	// exchange.
6259	GoogleAdManagerAgencyId string `json:"googleAdManagerAgencyId,omitempty"`
6260
6261	// GoogleAdManagerBuyerNetworkId: Output only. Network ID of Google Ad
6262	// Manager. The field is only relevant when Google Ad Manager is the
6263	// enabled exchange.
6264	GoogleAdManagerBuyerNetworkId string `json:"googleAdManagerBuyerNetworkId,omitempty"`
6265
6266	// SeatId: Output only. Seat ID of the enabled exchange.
6267	SeatId string `json:"seatId,omitempty"`
6268
6269	// ForceSendFields is a list of field names (e.g. "Exchange") to
6270	// unconditionally include in API requests. By default, fields with
6271	// empty values are omitted from API requests. However, any non-pointer,
6272	// non-interface field appearing in ForceSendFields will be sent to the
6273	// server regardless of whether the field is empty or not. This may be
6274	// used to include empty fields in Patch requests.
6275	ForceSendFields []string `json:"-"`
6276
6277	// NullFields is a list of field names (e.g. "Exchange") to include in
6278	// API requests with the JSON null value. By default, fields with empty
6279	// values are omitted from API requests. However, any field with an
6280	// empty value appearing in NullFields will be sent to the server as
6281	// null. It is an error if a field in this list has a non-empty value.
6282	// This may be used to include null fields in Patch requests.
6283	NullFields []string `json:"-"`
6284}
6285
6286func (s *ExchangeConfigEnabledExchange) MarshalJSON() ([]byte, error) {
6287	type NoMethod ExchangeConfigEnabledExchange
6288	raw := NoMethod(*s)
6289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6290}
6291
6292// ExchangeReviewStatus: Exchange review status for the creative.
6293type ExchangeReviewStatus struct {
6294	// Exchange: The exchange reviewing the creative.
6295	//
6296	// Possible values:
6297	//   "EXCHANGE_UNSPECIFIED" - Exchange is not specified or is unknown in
6298	// this version.
6299	//   "EXCHANGE_GOOGLE_AD_MANAGER" - Google Ad Manager.
6300	//   "EXCHANGE_APPNEXUS" - AppNexus.
6301	//   "EXCHANGE_BRIGHTROLL" - BrightRoll Exchange for Video from Yahoo!.
6302	//   "EXCHANGE_ADFORM" - Adform.
6303	//   "EXCHANGE_ADMETA" - Admeta.
6304	//   "EXCHANGE_ADMIXER" - Admixer.
6305	//   "EXCHANGE_ADSMOGO" - AdsMogo.
6306	//   "EXCHANGE_ADSWIZZ" - AdsWizz.
6307	//   "EXCHANGE_BIDSWITCH" - BidSwitch.
6308	//   "EXCHANGE_BRIGHTROLL_DISPLAY" - BrightRoll Exchange for Display
6309	// from Yahoo!.
6310	//   "EXCHANGE_CADREON" - Cadreon.
6311	//   "EXCHANGE_DAILYMOTION" - Dailymotion.
6312	//   "EXCHANGE_FIVE" - Five.
6313	//   "EXCHANGE_FLUCT" - Fluct.
6314	//   "EXCHANGE_FREEWHEEL" - FreeWheel SSP.
6315	//   "EXCHANGE_GENIEE" - Geniee.
6316	//   "EXCHANGE_GUMGUM" - GumGum.
6317	//   "EXCHANGE_IMOBILE" - i-mobile.
6318	//   "EXCHANGE_IBILLBOARD" - iBILLBOARD.
6319	//   "EXCHANGE_IMPROVE_DIGITAL" - Improve Digital.
6320	//   "EXCHANGE_INDEX" - Index Exchange.
6321	//   "EXCHANGE_KARGO" - Kargo.
6322	//   "EXCHANGE_MICROAD" - MicroAd.
6323	//   "EXCHANGE_MOPUB" - MoPub.
6324	//   "EXCHANGE_NEND" - Nend.
6325	//   "EXCHANGE_ONE_BY_AOL_DISPLAY" - ONE by AOL: Display Market Place.
6326	//   "EXCHANGE_ONE_BY_AOL_MOBILE" - ONE by AOL: Mobile.
6327	//   "EXCHANGE_ONE_BY_AOL_VIDEO" - ONE by AOL: Video.
6328	//   "EXCHANGE_OOYALA" - Ooyala.
6329	//   "EXCHANGE_OPENX" - OpenX.
6330	//   "EXCHANGE_PERMODO" - Permodo.
6331	//   "EXCHANGE_PLATFORMONE" - Platform One.
6332	//   "EXCHANGE_PLATFORMID" - PlatformId.
6333	//   "EXCHANGE_PUBMATIC" - PubMatic.
6334	//   "EXCHANGE_PULSEPOINT" - PulsePoint.
6335	//   "EXCHANGE_REVENUEMAX" - RevenueMax.
6336	//   "EXCHANGE_RUBICON" - Rubicon.
6337	//   "EXCHANGE_SMARTCLIP" - SmartClip.
6338	//   "EXCHANGE_SMARTRTB" - SmartRTB+.
6339	//   "EXCHANGE_SMARTSTREAMTV" - SmartstreamTv.
6340	//   "EXCHANGE_SOVRN" - Sovrn.
6341	//   "EXCHANGE_SPOTXCHANGE" - SpotXchange.
6342	//   "EXCHANGE_STROER" - Ströer SSP.
6343	//   "EXCHANGE_TEADSTV" - TeadsTv.
6344	//   "EXCHANGE_TELARIA" - Telaria.
6345	//   "EXCHANGE_TVN" - TVN.
6346	//   "EXCHANGE_UNITED" - United.
6347	//   "EXCHANGE_YIELDLAB" - Yieldlab.
6348	//   "EXCHANGE_YIELDMO" - Yieldmo.
6349	//   "EXCHANGE_UNRULYX" - UnrulyX.
6350	//   "EXCHANGE_OPEN8" - Open8.
6351	//   "EXCHANGE_TRITON" - Triton.
6352	//   "EXCHANGE_TRIPLELIFT" - TripleLift.
6353	//   "EXCHANGE_TABOOLA" - Taboola.
6354	//   "EXCHANGE_INMOBI" - InMobi.
6355	//   "EXCHANGE_SMAATO" - Smaato.
6356	//   "EXCHANGE_AJA" - Aja.
6357	//   "EXCHANGE_SUPERSHIP" - Supership.
6358	//   "EXCHANGE_NEXSTAR_DIGITAL" - Nexstar Digital.
6359	//   "EXCHANGE_WAZE" - Waze.
6360	//   "EXCHANGE_SOUNDCAST" - SoundCast.
6361	//   "EXCHANGE_SHARETHROUGH" - Sharethrough.
6362	Exchange string `json:"exchange,omitempty"`
6363
6364	// Status: Status of the exchange review.
6365	//
6366	// Possible values:
6367	//   "REVIEW_STATUS_UNSPECIFIED" - Type value is not specified or is
6368	// unknown in this version.
6369	//   "REVIEW_STATUS_APPROVED" - The creative is approved.
6370	//   "REVIEW_STATUS_REJECTED" - The creative is rejected.
6371	//   "REVIEW_STATUS_PENDING" - The creative is pending review.
6372	Status string `json:"status,omitempty"`
6373
6374	// ForceSendFields is a list of field names (e.g. "Exchange") to
6375	// unconditionally include in API requests. By default, fields with
6376	// empty values are omitted from API requests. However, any non-pointer,
6377	// non-interface field appearing in ForceSendFields will be sent to the
6378	// server regardless of whether the field is empty or not. This may be
6379	// used to include empty fields in Patch requests.
6380	ForceSendFields []string `json:"-"`
6381
6382	// NullFields is a list of field names (e.g. "Exchange") to include in
6383	// API requests with the JSON null value. By default, fields with empty
6384	// values are omitted from API requests. However, any field with an
6385	// empty value appearing in NullFields will be sent to the server as
6386	// null. It is an error if a field in this list has a non-empty value.
6387	// This may be used to include null fields in Patch requests.
6388	NullFields []string `json:"-"`
6389}
6390
6391func (s *ExchangeReviewStatus) MarshalJSON() ([]byte, error) {
6392	type NoMethod ExchangeReviewStatus
6393	raw := NoMethod(*s)
6394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6395}
6396
6397// ExchangeTargetingOptionDetails: Represents a targetable exchange.
6398// This will be populated in the exchange_details field of a
6399// TargetingOption when targeting_type is `TARGETING_TYPE_EXCHANGE`.
6400type ExchangeTargetingOptionDetails struct {
6401	// Exchange: Output only. The type of exchange.
6402	//
6403	// Possible values:
6404	//   "EXCHANGE_UNSPECIFIED" - Exchange is not specified or is unknown in
6405	// this version.
6406	//   "EXCHANGE_GOOGLE_AD_MANAGER" - Google Ad Manager.
6407	//   "EXCHANGE_APPNEXUS" - AppNexus.
6408	//   "EXCHANGE_BRIGHTROLL" - BrightRoll Exchange for Video from Yahoo!.
6409	//   "EXCHANGE_ADFORM" - Adform.
6410	//   "EXCHANGE_ADMETA" - Admeta.
6411	//   "EXCHANGE_ADMIXER" - Admixer.
6412	//   "EXCHANGE_ADSMOGO" - AdsMogo.
6413	//   "EXCHANGE_ADSWIZZ" - AdsWizz.
6414	//   "EXCHANGE_BIDSWITCH" - BidSwitch.
6415	//   "EXCHANGE_BRIGHTROLL_DISPLAY" - BrightRoll Exchange for Display
6416	// from Yahoo!.
6417	//   "EXCHANGE_CADREON" - Cadreon.
6418	//   "EXCHANGE_DAILYMOTION" - Dailymotion.
6419	//   "EXCHANGE_FIVE" - Five.
6420	//   "EXCHANGE_FLUCT" - Fluct.
6421	//   "EXCHANGE_FREEWHEEL" - FreeWheel SSP.
6422	//   "EXCHANGE_GENIEE" - Geniee.
6423	//   "EXCHANGE_GUMGUM" - GumGum.
6424	//   "EXCHANGE_IMOBILE" - i-mobile.
6425	//   "EXCHANGE_IBILLBOARD" - iBILLBOARD.
6426	//   "EXCHANGE_IMPROVE_DIGITAL" - Improve Digital.
6427	//   "EXCHANGE_INDEX" - Index Exchange.
6428	//   "EXCHANGE_KARGO" - Kargo.
6429	//   "EXCHANGE_MICROAD" - MicroAd.
6430	//   "EXCHANGE_MOPUB" - MoPub.
6431	//   "EXCHANGE_NEND" - Nend.
6432	//   "EXCHANGE_ONE_BY_AOL_DISPLAY" - ONE by AOL: Display Market Place.
6433	//   "EXCHANGE_ONE_BY_AOL_MOBILE" - ONE by AOL: Mobile.
6434	//   "EXCHANGE_ONE_BY_AOL_VIDEO" - ONE by AOL: Video.
6435	//   "EXCHANGE_OOYALA" - Ooyala.
6436	//   "EXCHANGE_OPENX" - OpenX.
6437	//   "EXCHANGE_PERMODO" - Permodo.
6438	//   "EXCHANGE_PLATFORMONE" - Platform One.
6439	//   "EXCHANGE_PLATFORMID" - PlatformId.
6440	//   "EXCHANGE_PUBMATIC" - PubMatic.
6441	//   "EXCHANGE_PULSEPOINT" - PulsePoint.
6442	//   "EXCHANGE_REVENUEMAX" - RevenueMax.
6443	//   "EXCHANGE_RUBICON" - Rubicon.
6444	//   "EXCHANGE_SMARTCLIP" - SmartClip.
6445	//   "EXCHANGE_SMARTRTB" - SmartRTB+.
6446	//   "EXCHANGE_SMARTSTREAMTV" - SmartstreamTv.
6447	//   "EXCHANGE_SOVRN" - Sovrn.
6448	//   "EXCHANGE_SPOTXCHANGE" - SpotXchange.
6449	//   "EXCHANGE_STROER" - Ströer SSP.
6450	//   "EXCHANGE_TEADSTV" - TeadsTv.
6451	//   "EXCHANGE_TELARIA" - Telaria.
6452	//   "EXCHANGE_TVN" - TVN.
6453	//   "EXCHANGE_UNITED" - United.
6454	//   "EXCHANGE_YIELDLAB" - Yieldlab.
6455	//   "EXCHANGE_YIELDMO" - Yieldmo.
6456	//   "EXCHANGE_UNRULYX" - UnrulyX.
6457	//   "EXCHANGE_OPEN8" - Open8.
6458	//   "EXCHANGE_TRITON" - Triton.
6459	//   "EXCHANGE_TRIPLELIFT" - TripleLift.
6460	//   "EXCHANGE_TABOOLA" - Taboola.
6461	//   "EXCHANGE_INMOBI" - InMobi.
6462	//   "EXCHANGE_SMAATO" - Smaato.
6463	//   "EXCHANGE_AJA" - Aja.
6464	//   "EXCHANGE_SUPERSHIP" - Supership.
6465	//   "EXCHANGE_NEXSTAR_DIGITAL" - Nexstar Digital.
6466	//   "EXCHANGE_WAZE" - Waze.
6467	//   "EXCHANGE_SOUNDCAST" - SoundCast.
6468	//   "EXCHANGE_SHARETHROUGH" - Sharethrough.
6469	Exchange string `json:"exchange,omitempty"`
6470
6471	// ForceSendFields is a list of field names (e.g. "Exchange") to
6472	// unconditionally include in API requests. By default, fields with
6473	// empty values are omitted from API requests. However, any non-pointer,
6474	// non-interface field appearing in ForceSendFields will be sent to the
6475	// server regardless of whether the field is empty or not. This may be
6476	// used to include empty fields in Patch requests.
6477	ForceSendFields []string `json:"-"`
6478
6479	// NullFields is a list of field names (e.g. "Exchange") to include in
6480	// API requests with the JSON null value. By default, fields with empty
6481	// values are omitted from API requests. However, any field with an
6482	// empty value appearing in NullFields will be sent to the server as
6483	// null. It is an error if a field in this list has a non-empty value.
6484	// This may be used to include null fields in Patch requests.
6485	NullFields []string `json:"-"`
6486}
6487
6488func (s *ExchangeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
6489	type NoMethod ExchangeTargetingOptionDetails
6490	raw := NoMethod(*s)
6491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6492}
6493
6494// ExitEvent: Exit event of the creative.
6495type ExitEvent struct {
6496	// Name: The name of the click tag of the exit event. The name must be
6497	// unique within one creative. Leave it empty or unset for creatives
6498	// containing image assets only.
6499	Name string `json:"name,omitempty"`
6500
6501	// ReportingName: The name used to identify this event in reports. Leave
6502	// it empty or unset for creatives containing image assets only.
6503	ReportingName string `json:"reportingName,omitempty"`
6504
6505	// Type: Required. The type of the exit event.
6506	//
6507	// Possible values:
6508	//   "EXIT_EVENT_TYPE_UNSPECIFIED" - Exit event type is not specified or
6509	// is unknown in this version.
6510	//   "EXIT_EVENT_TYPE_DEFAULT" - The exit event is the default one.
6511	//   "EXIT_EVENT_TYPE_BACKUP" - The exit event is a backup exit event.
6512	// There could be multiple backup exit events in a creative.
6513	Type string `json:"type,omitempty"`
6514
6515	// Url: Required. The click through URL of the exit event. This is
6516	// required when type is: * `EXIT_EVENT_TYPE_DEFAULT` *
6517	// `EXIT_EVENT_TYPE_BACKUP`
6518	Url string `json:"url,omitempty"`
6519
6520	// ForceSendFields is a list of field names (e.g. "Name") to
6521	// unconditionally include in API requests. By default, fields with
6522	// empty values are omitted from API requests. However, any non-pointer,
6523	// non-interface field appearing in ForceSendFields will be sent to the
6524	// server regardless of whether the field is empty or not. This may be
6525	// used to include empty fields in Patch requests.
6526	ForceSendFields []string `json:"-"`
6527
6528	// NullFields is a list of field names (e.g. "Name") to include in API
6529	// requests with the JSON null value. By default, fields with empty
6530	// values are omitted from API requests. However, any field with an
6531	// empty value appearing in NullFields will be sent to the server as
6532	// null. It is an error if a field in this list has a non-empty value.
6533	// This may be used to include null fields in Patch requests.
6534	NullFields []string `json:"-"`
6535}
6536
6537func (s *ExitEvent) MarshalJSON() ([]byte, error) {
6538	type NoMethod ExitEvent
6539	raw := NoMethod(*s)
6540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6541}
6542
6543// FirstAndThirdPartyAudience: Describes a first or third party audience
6544// list used for targeting. First party audiences are created via usage
6545// of client data. Third party audiences are provided by Third Party
6546// data providers and can only be licensed to customers.
6547type FirstAndThirdPartyAudience struct {
6548	// ActiveDisplayAudienceSize: Output only. The estimated audience size
6549	// for the Display network in the past month. If the size is less than
6550	// 1000, the number will be hidden and 0 will be returned due to privacy
6551	// reasons. Otherwise, the number will be rounded off to two significant
6552	// digits. Only returned in GET request.
6553	ActiveDisplayAudienceSize int64 `json:"activeDisplayAudienceSize,omitempty,string"`
6554
6555	// AudienceSource: Output only. The source of the audience.
6556	//
6557	// Possible values:
6558	//   "AUDIENCE_SOURCE_UNSPECIFIED" - Default value when audience source
6559	// is not specified or is unknown.
6560	//   "DISPLAY_VIDEO_360" - Originated from Display & Video 360.
6561	//   "CAMPAIGN_MANAGER" - Originated from Campaign Manager 360.
6562	//   "AD_MANAGER" - Originated from Google Ad Manager.
6563	//   "SEARCH_ADS_360" - Originated from Search Ads 360.
6564	//   "YOUTUBE" - Originated from Youtube.
6565	//   "ADS_DATA_HUB" - Originated from Ads Data Hub.
6566	AudienceSource string `json:"audienceSource,omitempty"`
6567
6568	// AudienceType: Output only. The type of the audience.
6569	//
6570	// Possible values:
6571	//   "AUDIENCE_TYPE_UNSPECIFIED" - Default value when type is not
6572	// specified or is unknown.
6573	//   "CUSTOMER_MATCH_CONTACT_INFO" - Audience was generated through
6574	// matching customers to known contact information.
6575	//   "CUSTOMER_MATCH_DEVICE_ID" - Audience was generated through
6576	// matching customers to known Mobile device IDs.
6577	//   "CUSTOMER_MATCH_USER_ID" - Audience was generated through matching
6578	// customers to known User IDs.
6579	//   "ACTIVITY_BASED" - Audience was created based on campaign activity.
6580	//   "FREQUENCY_CAP" - Audience was created based on excluding the
6581	// number of impressions they were served.
6582	//   "TAG_BASED" - Audience was created based on custom variables
6583	// attached to pixel.
6584	//   "YOUTUBE_USERS" - Audience was created based on past interactions
6585	// with videos, YouTube ads, or YouTube channel.
6586	//   "LICENSED" - Subtype of third party audience type.
6587	AudienceType string `json:"audienceType,omitempty"`
6588
6589	// Description: The user-provided description of the audience. Only
6590	// applicable to first party audiences.
6591	Description string `json:"description,omitempty"`
6592
6593	// DisplayAudienceSize: Output only. The estimated audience size for the
6594	// Display network. If the size is less than 1000, the number will be
6595	// hidden and 0 will be returned due to privacy reasons. Otherwise, the
6596	// number will be rounded off to two significant digits. Only returned
6597	// in GET request.
6598	DisplayAudienceSize int64 `json:"displayAudienceSize,omitempty,string"`
6599
6600	// DisplayDesktopAudienceSize: Output only. The estimated desktop
6601	// audience size in Display network. If the size is less than 1000, the
6602	// number will be hidden and 0 will be returned due to privacy reasons.
6603	// Otherwise, the number will be rounded off to two significant digits.
6604	// Only applicable to first party audiences. Only returned in GET
6605	// request.
6606	DisplayDesktopAudienceSize int64 `json:"displayDesktopAudienceSize,omitempty,string"`
6607
6608	// DisplayMobileAppAudienceSize: Output only. The estimated mobile app
6609	// audience size in Display network. If the size is less than 1000, the
6610	// number will be hidden and 0 will be returned due to privacy reasons.
6611	// Otherwise, the number will be rounded off to two significant digits.
6612	// Only applicable to first party audiences. Only returned in GET
6613	// request.
6614	DisplayMobileAppAudienceSize int64 `json:"displayMobileAppAudienceSize,omitempty,string"`
6615
6616	// DisplayMobileWebAudienceSize: Output only. The estimated mobile web
6617	// audience size in Display network. If the size is less than 1000, the
6618	// number will be hidden and 0 will be returned due to privacy reasons.
6619	// Otherwise, the number will be rounded off to two significant digits.
6620	// Only applicable to first party audiences. Only returned in GET
6621	// request.
6622	DisplayMobileWebAudienceSize int64 `json:"displayMobileWebAudienceSize,omitempty,string"`
6623
6624	// DisplayName: The display name of the first and third party audience.
6625	DisplayName string `json:"displayName,omitempty"`
6626
6627	// FirstAndThirdPartyAudienceId: Output only. The unique ID of the first
6628	// and third party audience. Assigned by the system.
6629	FirstAndThirdPartyAudienceId int64 `json:"firstAndThirdPartyAudienceId,omitempty,string"`
6630
6631	// FirstAndThirdPartyAudienceType: Output only. Whether the audience is
6632	// a first or third party audience.
6633	//
6634	// Possible values:
6635	//   "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_UNSPECIFIED" - Default value
6636	// when type is not specified or is unknown.
6637	//   "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_FIRST_PARTY" - Audience that
6638	// is created via usage of client data.
6639	//   "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_THIRD_PARTY" - Audience that
6640	// is provided by Third Party data providers.
6641	FirstAndThirdPartyAudienceType string `json:"firstAndThirdPartyAudienceType,omitempty"`
6642
6643	// GmailAudienceSize: Output only. The estimated audience size for Gmail
6644	// network. If the size is less than 1000, the number will be hidden and
6645	// 0 will be returned due to privacy reasons. Otherwise, the number will
6646	// be rounded off to two significant digits. Only applicable to first
6647	// party audiences. Only returned in GET request.
6648	GmailAudienceSize int64 `json:"gmailAudienceSize,omitempty,string"`
6649
6650	// MembershipDurationDays: The duration in days that an entry remains in
6651	// the audience after the qualifying event. Only applicable to first
6652	// party audiences.
6653	MembershipDurationDays int64 `json:"membershipDurationDays,omitempty,string"`
6654
6655	// Name: Output only. The resource name of the first and third party
6656	// audience.
6657	Name string `json:"name,omitempty"`
6658
6659	// YoutubeAudienceSize: Output only. The estimated audience size for
6660	// YouTube network. If the size is less than 1000, the number will be
6661	// hidden and 0 will be returned due to privacy reasons. Otherwise, the
6662	// number will be rounded off to two significant digits. Only applicable
6663	// to first party audiences. Only returned in GET request.
6664	YoutubeAudienceSize int64 `json:"youtubeAudienceSize,omitempty,string"`
6665
6666	// ServerResponse contains the HTTP response code and headers from the
6667	// server.
6668	googleapi.ServerResponse `json:"-"`
6669
6670	// ForceSendFields is a list of field names (e.g.
6671	// "ActiveDisplayAudienceSize") to unconditionally include in API
6672	// requests. By default, fields with empty values are omitted from API
6673	// requests. However, any non-pointer, non-interface field appearing in
6674	// ForceSendFields will be sent to the server regardless of whether the
6675	// field is empty or not. This may be used to include empty fields in
6676	// Patch requests.
6677	ForceSendFields []string `json:"-"`
6678
6679	// NullFields is a list of field names (e.g.
6680	// "ActiveDisplayAudienceSize") to include in API requests with the JSON
6681	// null value. By default, fields with empty values are omitted from API
6682	// requests. However, any field with an empty value appearing in
6683	// NullFields will be sent to the server as null. It is an error if a
6684	// field in this list has a non-empty value. This may be used to include
6685	// null fields in Patch requests.
6686	NullFields []string `json:"-"`
6687}
6688
6689func (s *FirstAndThirdPartyAudience) MarshalJSON() ([]byte, error) {
6690	type NoMethod FirstAndThirdPartyAudience
6691	raw := NoMethod(*s)
6692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6693}
6694
6695// FirstAndThirdPartyAudienceGroup: Details of first and third party
6696// audience group. All first and third party audience targeting settings
6697// are logically ‘OR’ of each other.
6698type FirstAndThirdPartyAudienceGroup struct {
6699	// Settings: Required. All first and third party audience targeting
6700	// settings in first and third party audience group. Repeated settings
6701	// with same id are not allowed.
6702	Settings []*FirstAndThirdPartyAudienceTargetingSetting `json:"settings,omitempty"`
6703
6704	// ForceSendFields is a list of field names (e.g. "Settings") to
6705	// unconditionally include in API requests. By default, fields with
6706	// empty values are omitted from API requests. However, any non-pointer,
6707	// non-interface field appearing in ForceSendFields will be sent to the
6708	// server regardless of whether the field is empty or not. This may be
6709	// used to include empty fields in Patch requests.
6710	ForceSendFields []string `json:"-"`
6711
6712	// NullFields is a list of field names (e.g. "Settings") to include in
6713	// API requests with the JSON null value. By default, fields with empty
6714	// values are omitted from API requests. However, any field with an
6715	// empty value appearing in NullFields will be sent to the server as
6716	// null. It is an error if a field in this list has a non-empty value.
6717	// This may be used to include null fields in Patch requests.
6718	NullFields []string `json:"-"`
6719}
6720
6721func (s *FirstAndThirdPartyAudienceGroup) MarshalJSON() ([]byte, error) {
6722	type NoMethod FirstAndThirdPartyAudienceGroup
6723	raw := NoMethod(*s)
6724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6725}
6726
6727// FirstAndThirdPartyAudienceTargetingSetting: Details of first and
6728// third party audience targeting setting.
6729type FirstAndThirdPartyAudienceTargetingSetting struct {
6730	// FirstAndThirdPartyAudienceId: Required. First and third party
6731	// audience id of the first and third party audience targeting setting.
6732	// This id is first_and_third_party_audience_id.
6733	FirstAndThirdPartyAudienceId int64 `json:"firstAndThirdPartyAudienceId,omitempty,string"`
6734
6735	// Recency: The recency of the first and third party audience targeting
6736	// setting. Only applicable to first party audiences, otherwise will be
6737	// ignored. For more info, refer to
6738	// https://support.google.com/displayvideo/answer/2949947#recency When
6739	// unspecified, no recency limit will be used.
6740	//
6741	// Possible values:
6742	//   "RECENCY_NO_LIMIT" - No limit of recency.
6743	//   "RECENCY_1_MINUTE" - Recency is 1 minute.
6744	//   "RECENCY_5_MINUTES" - Recency is 5 minutes.
6745	//   "RECENCY_10_MINUTES" - Recency is 10 minutes.
6746	//   "RECENCY_15_MINUTES" - Recency is 15 minutes.
6747	//   "RECENCY_30_MINUTES" - Recency is 30 minutes.
6748	//   "RECENCY_1_HOUR" - Recency is 1 hour.
6749	//   "RECENCY_2_HOURS" - Recency is 2 hours.
6750	//   "RECENCY_3_HOURS" - Recency is 3 hours.
6751	//   "RECENCY_6_HOURS" - Recency is 6 hours.
6752	//   "RECENCY_12_HOURS" - Recency is 12 hours.
6753	//   "RECENCY_1_DAY" - Recency is 1 day.
6754	//   "RECENCY_2_DAYS" - Recency is 2 days.
6755	//   "RECENCY_3_DAYS" - Recency is 3 days.
6756	//   "RECENCY_5_DAYS" - Recency is 5 days.
6757	//   "RECENCY_7_DAYS" - Recency is 7 days.
6758	//   "RECENCY_10_DAYS" - Recency is 10 days.
6759	//   "RECENCY_14_DAYS" - Recency is 14 days.
6760	//   "RECENCY_15_DAYS" - Recency is 15 days.
6761	//   "RECENCY_21_DAYS" - Recency is 21 days.
6762	//   "RECENCY_28_DAYS" - Recency is 28 days.
6763	//   "RECENCY_30_DAYS" - Recency is 30 days.
6764	//   "RECENCY_40_DAYS" - Recency is 40 days.
6765	//   "RECENCY_60_DAYS" - Recency is 60 days.
6766	//   "RECENCY_90_DAYS" - Recency is 90 days.
6767	//   "RECENCY_120_DAYS" - Recency is 120 days.
6768	//   "RECENCY_180_DAYS" - Recency is 180 days.
6769	//   "RECENCY_270_DAYS" - Recency is 270 days.
6770	//   "RECENCY_365_DAYS" - Recency is 365 days.
6771	Recency string `json:"recency,omitempty"`
6772
6773	// ForceSendFields is a list of field names (e.g.
6774	// "FirstAndThirdPartyAudienceId") to unconditionally include in API
6775	// requests. By default, fields with empty values are omitted from API
6776	// requests. However, any non-pointer, non-interface field appearing in
6777	// ForceSendFields will be sent to the server regardless of whether the
6778	// field is empty or not. This may be used to include empty fields in
6779	// Patch requests.
6780	ForceSendFields []string `json:"-"`
6781
6782	// NullFields is a list of field names (e.g.
6783	// "FirstAndThirdPartyAudienceId") to include in API requests with the
6784	// JSON null value. By default, fields with empty values are omitted
6785	// from API requests. However, any field with an empty value appearing
6786	// in NullFields will be sent to the server as null. It is an error if a
6787	// field in this list has a non-empty value. This may be used to include
6788	// null fields in Patch requests.
6789	NullFields []string `json:"-"`
6790}
6791
6792func (s *FirstAndThirdPartyAudienceTargetingSetting) MarshalJSON() ([]byte, error) {
6793	type NoMethod FirstAndThirdPartyAudienceTargetingSetting
6794	raw := NoMethod(*s)
6795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6796}
6797
6798// FixedBidStrategy: A strategy that uses a fixed bidding price.
6799type FixedBidStrategy struct {
6800	// BidAmountMicros: The fixed bid amount, in micros of the advertiser's
6801	// currency. For insertion order entity, bid_amount_micros should be set
6802	// as 0. For line item entity, bid_amount_micros must be greater than or
6803	// equal to billable unit of the given currency and smaller than or
6804	// equal to the upper limit 1000000000. For example, 1500000 represents
6805	// 1.5 standard units of the currency.
6806	BidAmountMicros int64 `json:"bidAmountMicros,omitempty,string"`
6807
6808	// ForceSendFields is a list of field names (e.g. "BidAmountMicros") to
6809	// unconditionally include in API requests. By default, fields with
6810	// empty values are omitted from API requests. However, any non-pointer,
6811	// non-interface field appearing in ForceSendFields will be sent to the
6812	// server regardless of whether the field is empty or not. This may be
6813	// used to include empty fields in Patch requests.
6814	ForceSendFields []string `json:"-"`
6815
6816	// NullFields is a list of field names (e.g. "BidAmountMicros") to
6817	// include in API requests with the JSON null value. By default, fields
6818	// with empty values are omitted from API requests. However, any field
6819	// with an empty value appearing in NullFields will be sent to the
6820	// server as null. It is an error if a field in this list has a
6821	// non-empty value. This may be used to include null fields in Patch
6822	// requests.
6823	NullFields []string `json:"-"`
6824}
6825
6826func (s *FixedBidStrategy) MarshalJSON() ([]byte, error) {
6827	type NoMethod FixedBidStrategy
6828	raw := NoMethod(*s)
6829	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6830}
6831
6832// FloodlightGroup: A single Floodlight group.
6833type FloodlightGroup struct {
6834	// ActiveViewConfig: The Active View video viewability metric
6835	// configuration for the Floodlight group.
6836	ActiveViewConfig *ActiveViewVideoViewabilityMetricConfig `json:"activeViewConfig,omitempty"`
6837
6838	// CustomVariables: User-defined custom variables owned by the
6839	// Floodlight group. Use custom Floodlight variables to create reporting
6840	// data that is tailored to your unique business needs. Custom
6841	// Floodlight variables use the keys `U1=`, `U2=`, and so on, and can
6842	// take any values that you choose to pass to them. You can use them to
6843	// track virtually any type of data that you collect about your
6844	// customers, such as the genre of movie that a customer purchases, the
6845	// country to which the item is shipped, and so on. Custom Floodlight
6846	// variables may not be used to pass any data that could be used or
6847	// recognized as personally identifiable information (PII). Example:
6848	// `custom_variables { fields { "U1": value { number_value: 123.4 },
6849	// "U2": value { string_value: "MyVariable2" }, "U3": value {
6850	// string_value: "MyVariable3" } } }` Acceptable values for keys are
6851	// "U1" through "U100", inclusive. String values must be less than 64
6852	// characters long, and cannot contain the following characters: "<>`.
6853	CustomVariables googleapi.RawMessage `json:"customVariables,omitempty"`
6854
6855	// DisplayName: Required. The display name of the Floodlight group.
6856	DisplayName string `json:"displayName,omitempty"`
6857
6858	// FloodlightGroupId: Output only. The unique ID of the Floodlight
6859	// group. Assigned by the system.
6860	FloodlightGroupId int64 `json:"floodlightGroupId,omitempty,string"`
6861
6862	// LookbackWindow: Required. The lookback window for the Floodlight
6863	// group. Both click_days and impression_days are required. Acceptable
6864	// values for both are `0` to `90`, inclusive.
6865	LookbackWindow *LookbackWindow `json:"lookbackWindow,omitempty"`
6866
6867	// Name: Output only. The resource name of the Floodlight group.
6868	Name string `json:"name,omitempty"`
6869
6870	// WebTagType: Required. The web tag type enabled for the Floodlight
6871	// group.
6872	//
6873	// Possible values:
6874	//   "WEB_TAG_TYPE_UNSPECIFIED" - Type value is not specified or is
6875	// unknown in this version.
6876	//   "WEB_TAG_TYPE_NONE" - No tag type.
6877	//   "WEB_TAG_TYPE_IMAGE" - Image tag.
6878	//   "WEB_TAG_TYPE_DYNAMIC" - Dynamic tag.
6879	WebTagType string `json:"webTagType,omitempty"`
6880
6881	// ServerResponse contains the HTTP response code and headers from the
6882	// server.
6883	googleapi.ServerResponse `json:"-"`
6884
6885	// ForceSendFields is a list of field names (e.g. "ActiveViewConfig") to
6886	// unconditionally include in API requests. By default, fields with
6887	// empty values are omitted from API requests. However, any non-pointer,
6888	// non-interface field appearing in ForceSendFields will be sent to the
6889	// server regardless of whether the field is empty or not. This may be
6890	// used to include empty fields in Patch requests.
6891	ForceSendFields []string `json:"-"`
6892
6893	// NullFields is a list of field names (e.g. "ActiveViewConfig") to
6894	// include in API requests with the JSON null value. By default, fields
6895	// with empty values are omitted from API requests. However, any field
6896	// with an empty value appearing in NullFields will be sent to the
6897	// server as null. It is an error if a field in this list has a
6898	// non-empty value. This may be used to include null fields in Patch
6899	// requests.
6900	NullFields []string `json:"-"`
6901}
6902
6903func (s *FloodlightGroup) MarshalJSON() ([]byte, error) {
6904	type NoMethod FloodlightGroup
6905	raw := NoMethod(*s)
6906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6907}
6908
6909// FrequencyCap: Settings that control the number of times a user may be
6910// shown with the same ad during a given time period.
6911type FrequencyCap struct {
6912	// MaxImpressions: The maximum number of times a user may be shown with
6913	// the same ad during this period. Must be greater than 0. Required when
6914	// unlimited is `false`.
6915	MaxImpressions int64 `json:"maxImpressions,omitempty"`
6916
6917	// TimeUnit: The time unit in which the frequency cap will be applied.
6918	// Required when unlimited is `false`.
6919	//
6920	// Possible values:
6921	//   "TIME_UNIT_UNSPECIFIED" - Time unit value is not specified or is
6922	// unknown in this version.
6923	//   "TIME_UNIT_LIFETIME" - The frequency cap will be applied to the
6924	// whole life time of the line item.
6925	//   "TIME_UNIT_MONTHS" - The frequency cap will be applied to a number
6926	// of months.
6927	//   "TIME_UNIT_WEEKS" - The frequency cap will be applied to a number
6928	// of weeks.
6929	//   "TIME_UNIT_DAYS" - The frequency cap will be applied to a number of
6930	// days.
6931	//   "TIME_UNIT_HOURS" - The frequency cap will be applied to a number
6932	// of hours.
6933	//   "TIME_UNIT_MINUTES" - The frequency cap will be applied to a number
6934	// of minutes.
6935	TimeUnit string `json:"timeUnit,omitempty"`
6936
6937	// TimeUnitCount: The number of time_unit the frequency cap will last.
6938	// Required when unlimited is `false`. The following restrictions apply
6939	// based on the value of time_unit: * `TIME_UNIT_LIFETIME` - this field
6940	// is output only and will default to 1 * `TIME_UNIT_MONTHS` - must be
6941	// between 1 and 2 * `TIME_UNIT_WEEKS` - must be between 1 and 4 *
6942	// `TIME_UNIT_DAYS` - must be between 1 and 6 * `TIME_UNIT_HOURS` - must
6943	// be between 1 and 23 * `TIME_UNIT_MINUTES` - must be between 1 and 59
6944	TimeUnitCount int64 `json:"timeUnitCount,omitempty"`
6945
6946	// Unlimited: Whether unlimited frequency capping is applied. When this
6947	// field is set to `true`, the remaining frequency cap fields are not
6948	// applicable.
6949	Unlimited bool `json:"unlimited,omitempty"`
6950
6951	// ForceSendFields is a list of field names (e.g. "MaxImpressions") to
6952	// unconditionally include in API requests. By default, fields with
6953	// empty values are omitted from API requests. However, any non-pointer,
6954	// non-interface field appearing in ForceSendFields will be sent to the
6955	// server regardless of whether the field is empty or not. This may be
6956	// used to include empty fields in Patch requests.
6957	ForceSendFields []string `json:"-"`
6958
6959	// NullFields is a list of field names (e.g. "MaxImpressions") to
6960	// include in API requests with the JSON null value. By default, fields
6961	// with empty values are omitted from API requests. However, any field
6962	// with an empty value appearing in NullFields will be sent to the
6963	// server as null. It is an error if a field in this list has a
6964	// non-empty value. This may be used to include null fields in Patch
6965	// requests.
6966	NullFields []string `json:"-"`
6967}
6968
6969func (s *FrequencyCap) MarshalJSON() ([]byte, error) {
6970	type NoMethod FrequencyCap
6971	raw := NoMethod(*s)
6972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6973}
6974
6975// GenderAssignedTargetingOptionDetails: Details for assigned gender
6976// targeting option. This will be populated in the details field of an
6977// AssignedTargetingOption when targeting_type is
6978// `TARTGETING_TYPE_GENDER`.
6979type GenderAssignedTargetingOptionDetails struct {
6980	// Gender: Output only. The gender of the audience.
6981	//
6982	// Possible values:
6983	//   "GENDER_UNSPECIFIED" - Default value when gender is not specified
6984	// in this version. This enum is a place holder for default value and
6985	// does not represent a real gender option.
6986	//   "GENDER_MALE" - The audience gender is male.
6987	//   "GENDER_FEMALE" - The audience gender is female.
6988	//   "GENDER_UNKNOWN" - The audience gender is unknown.
6989	Gender string `json:"gender,omitempty"`
6990
6991	// TargetingOptionId: Required. The targeting_option_id of a
6992	// TargetingOption of type `TARGETING_TYPE_GENDER`.
6993	TargetingOptionId string `json:"targetingOptionId,omitempty"`
6994
6995	// ForceSendFields is a list of field names (e.g. "Gender") to
6996	// unconditionally include in API requests. By default, fields with
6997	// empty values are omitted from API requests. However, any non-pointer,
6998	// non-interface field appearing in ForceSendFields will be sent to the
6999	// server regardless of whether the field is empty or not. This may be
7000	// used to include empty fields in Patch requests.
7001	ForceSendFields []string `json:"-"`
7002
7003	// NullFields is a list of field names (e.g. "Gender") to include in API
7004	// requests with the JSON null value. By default, fields with empty
7005	// values are omitted from API requests. However, any field with an
7006	// empty value appearing in NullFields will be sent to the server as
7007	// null. It is an error if a field in this list has a non-empty value.
7008	// This may be used to include null fields in Patch requests.
7009	NullFields []string `json:"-"`
7010}
7011
7012func (s *GenderAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
7013	type NoMethod GenderAssignedTargetingOptionDetails
7014	raw := NoMethod(*s)
7015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7016}
7017
7018// GenderTargetingOptionDetails: Represents a targetable gender. This
7019// will be populated in the gender_details field of a TargetingOption
7020// when targeting_type is `TARGETING_TYPE_GENDER`.
7021type GenderTargetingOptionDetails struct {
7022	// Gender: Output only. The gender of an audience.
7023	//
7024	// Possible values:
7025	//   "GENDER_UNSPECIFIED" - Default value when gender is not specified
7026	// in this version. This enum is a place holder for default value and
7027	// does not represent a real gender option.
7028	//   "GENDER_MALE" - The audience gender is male.
7029	//   "GENDER_FEMALE" - The audience gender is female.
7030	//   "GENDER_UNKNOWN" - The audience gender is unknown.
7031	Gender string `json:"gender,omitempty"`
7032
7033	// ForceSendFields is a list of field names (e.g. "Gender") to
7034	// unconditionally include in API requests. By default, fields with
7035	// empty values are omitted from API requests. However, any non-pointer,
7036	// non-interface field appearing in ForceSendFields will be sent to the
7037	// server regardless of whether the field is empty or not. This may be
7038	// used to include empty fields in Patch requests.
7039	ForceSendFields []string `json:"-"`
7040
7041	// NullFields is a list of field names (e.g. "Gender") to include in API
7042	// requests with the JSON null value. By default, fields with empty
7043	// values are omitted from API requests. However, any field with an
7044	// empty value appearing in NullFields will be sent to the server as
7045	// null. It is an error if a field in this list has a non-empty value.
7046	// This may be used to include null fields in Patch requests.
7047	NullFields []string `json:"-"`
7048}
7049
7050func (s *GenderTargetingOptionDetails) MarshalJSON() ([]byte, error) {
7051	type NoMethod GenderTargetingOptionDetails
7052	raw := NoMethod(*s)
7053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7054}
7055
7056// GenerateDefaultLineItemRequest: Request message for
7057// LineItemService.GenerateDefaultLineItem.
7058type GenerateDefaultLineItemRequest struct {
7059	// DisplayName: Required. The display name of the line item. Must be
7060	// UTF-8 encoded with a maximum size of 240 bytes.
7061	DisplayName string `json:"displayName,omitempty"`
7062
7063	// InsertionOrderId: Required. The unique ID of the insertion order that
7064	// the line item belongs to.
7065	InsertionOrderId int64 `json:"insertionOrderId,omitempty,string"`
7066
7067	// LineItemType: Required. The type of the line item.
7068	//
7069	// Possible values:
7070	//   "LINE_ITEM_TYPE_UNSPECIFIED" - Type value is not specified or is
7071	// unknown in this version.
7072	//   "LINE_ITEM_TYPE_DISPLAY_DEFAULT" - Image, HTML5, native, or rich
7073	// media ads.
7074	//   "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL" - Display ads that
7075	// drive installs of an app.
7076	//   "LINE_ITEM_TYPE_VIDEO_DEFAULT" - Video ads sold on a CPM basis for
7077	// a variety of environments.
7078	//   "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL" - Video ads that drive
7079	// installs of an app.
7080	//   "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INVENTORY" - Display ads served
7081	// on mobile app inventory.
7082	//   "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INVENTORY" - Video ads served on
7083	// mobile app inventory.
7084	//   "LINE_ITEM_TYPE_AUDIO_DEFAULT" - RTB Audio ads sold for a variety
7085	// of environments.
7086	//   "LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP" - Over-the-top ads present in
7087	// OTT insertion orders. This type is only applicable to line items with
7088	// an insertion order of insertion_order_type `OVER_THE_TOP`.
7089	LineItemType string `json:"lineItemType,omitempty"`
7090
7091	// MobileApp: The mobile app promoted by the line item. This is
7092	// applicable only when line_item_type is either
7093	// `LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL` or
7094	// `LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL`.
7095	MobileApp *MobileApp `json:"mobileApp,omitempty"`
7096
7097	// ForceSendFields is a list of field names (e.g. "DisplayName") to
7098	// unconditionally include in API requests. By default, fields with
7099	// empty values are omitted from API requests. However, any non-pointer,
7100	// non-interface field appearing in ForceSendFields will be sent to the
7101	// server regardless of whether the field is empty or not. This may be
7102	// used to include empty fields in Patch requests.
7103	ForceSendFields []string `json:"-"`
7104
7105	// NullFields is a list of field names (e.g. "DisplayName") to include
7106	// in API requests with the JSON null value. By default, fields with
7107	// empty values are omitted from API requests. However, any field with
7108	// an empty value appearing in NullFields will be sent to the server as
7109	// null. It is an error if a field in this list has a non-empty value.
7110	// This may be used to include null fields in Patch requests.
7111	NullFields []string `json:"-"`
7112}
7113
7114func (s *GenerateDefaultLineItemRequest) MarshalJSON() ([]byte, error) {
7115	type NoMethod GenerateDefaultLineItemRequest
7116	raw := NoMethod(*s)
7117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7118}
7119
7120// GeoRegionAssignedTargetingOptionDetails: Details for assigned
7121// geographic region targeting option. This will be populated in the
7122// details field of an AssignedTargetingOption when targeting_type is
7123// `TARGETING_TYPE_GEO_REGION`.
7124type GeoRegionAssignedTargetingOptionDetails struct {
7125	// DisplayName: Output only. The display name of the geographic region
7126	// (e.g., "Ontario, Canada").
7127	DisplayName string `json:"displayName,omitempty"`
7128
7129	// GeoRegionType: Output only. The type of geographic region targeting.
7130	//
7131	// Possible values:
7132	//   "GEO_REGION_TYPE_UNKNOWN" - The geographic region type is unknown.
7133	//   "GEO_REGION_TYPE_OTHER" - The geographic region type is other.
7134	//   "GEO_REGION_TYPE_COUNTRY" - The geographic region is a country.
7135	//   "GEO_REGION_TYPE_REGION" - The geographic region type is region.
7136	//   "GEO_REGION_TYPE_TERRITORY" - The geographic region is a territory.
7137	//   "GEO_REGION_TYPE_PROVINCE" - The geographic region is a province.
7138	//   "GEO_REGION_TYPE_STATE" - The geographic region is a state.
7139	//   "GEO_REGION_TYPE_PREFECTURE" - The geographic region is a
7140	// prefecture.
7141	//   "GEO_REGION_TYPE_GOVERNORATE" - The geographic region is a
7142	// governorate.
7143	//   "GEO_REGION_TYPE_CANTON" - The geographic region is a canton.
7144	//   "GEO_REGION_TYPE_UNION_TERRITORY" - The geographic region is a
7145	// union territory.
7146	//   "GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY" - The geographic region is
7147	// an autonomous community.
7148	//   "GEO_REGION_TYPE_DMA_REGION" - The geographic region is a
7149	// designated market area (DMA) region.
7150	//   "GEO_REGION_TYPE_METRO" - The geographic region type is metro.
7151	//   "GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT" - The geographic region is
7152	// a congressional district.
7153	//   "GEO_REGION_TYPE_COUNTY" - The geographic region is a county.
7154	//   "GEO_REGION_TYPE_MUNICIPALITY" - The geographic region is a
7155	// municipality.
7156	//   "GEO_REGION_TYPE_CITY" - The geographic region is a city.
7157	//   "GEO_REGION_TYPE_POSTAL_CODE" - The geographic region targeting
7158	// type is postal code.
7159	//   "GEO_REGION_TYPE_DEPARTMENT" - The geographic region targeting type
7160	// is department.
7161	//   "GEO_REGION_TYPE_AIRPORT" - The geographic region is an airport.
7162	//   "GEO_REGION_TYPE_TV_REGION" - The geographic region is a TV region.
7163	//   "GEO_REGION_TYPE_OKRUG" - The geographic region is an okrug.
7164	//   "GEO_REGION_TYPE_BOROUGH" - The geographic region is a borough.
7165	//   "GEO_REGION_TYPE_CITY_REGION" - The geographic region is a city
7166	// region.
7167	//   "GEO_REGION_TYPE_ARRONDISSEMENT" - The geographic region is an
7168	// arrondissement.
7169	//   "GEO_REGION_TYPE_NEIGHBORHOOD" - The geographic region is a
7170	// neighborhood.
7171	//   "GEO_REGION_TYPE_UNIVERSITY" - The geographic region is a
7172	// university.
7173	//   "GEO_REGION_TYPE_DISTRICT" - The geographic region is a district.
7174	GeoRegionType string `json:"geoRegionType,omitempty"`
7175
7176	// Negative: Indicates if this option is being negatively targeted.
7177	Negative bool `json:"negative,omitempty"`
7178
7179	// TargetingOptionId: Required. The targeting_option_id of a
7180	// TargetingOption of type `TARGETING_TYPE_GEO_REGION`.
7181	TargetingOptionId string `json:"targetingOptionId,omitempty"`
7182
7183	// ForceSendFields is a list of field names (e.g. "DisplayName") to
7184	// unconditionally include in API requests. By default, fields with
7185	// empty values are omitted from API requests. However, any non-pointer,
7186	// non-interface field appearing in ForceSendFields will be sent to the
7187	// server regardless of whether the field is empty or not. This may be
7188	// used to include empty fields in Patch requests.
7189	ForceSendFields []string `json:"-"`
7190
7191	// NullFields is a list of field names (e.g. "DisplayName") to include
7192	// in API requests with the JSON null value. By default, fields with
7193	// empty values are omitted from API requests. However, any field with
7194	// an empty value appearing in NullFields will be sent to the server as
7195	// null. It is an error if a field in this list has a non-empty value.
7196	// This may be used to include null fields in Patch requests.
7197	NullFields []string `json:"-"`
7198}
7199
7200func (s *GeoRegionAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
7201	type NoMethod GeoRegionAssignedTargetingOptionDetails
7202	raw := NoMethod(*s)
7203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7204}
7205
7206// GeoRegionSearchTerms: Search terms for geo region targeting options.
7207type GeoRegionSearchTerms struct {
7208	// GeoRegionQuery: The search query for the desired geo region. The
7209	// query can be a prefix, e.g. "New Yor", "Seattle", "USA", etc.
7210	GeoRegionQuery string `json:"geoRegionQuery,omitempty"`
7211
7212	// ForceSendFields is a list of field names (e.g. "GeoRegionQuery") to
7213	// unconditionally include in API requests. By default, fields with
7214	// empty values are omitted from API requests. However, any non-pointer,
7215	// non-interface field appearing in ForceSendFields will be sent to the
7216	// server regardless of whether the field is empty or not. This may be
7217	// used to include empty fields in Patch requests.
7218	ForceSendFields []string `json:"-"`
7219
7220	// NullFields is a list of field names (e.g. "GeoRegionQuery") to
7221	// include in API requests with the JSON null value. By default, fields
7222	// with empty values are omitted from API requests. However, any field
7223	// with an empty value appearing in NullFields will be sent to the
7224	// server as null. It is an error if a field in this list has a
7225	// non-empty value. This may be used to include null fields in Patch
7226	// requests.
7227	NullFields []string `json:"-"`
7228}
7229
7230func (s *GeoRegionSearchTerms) MarshalJSON() ([]byte, error) {
7231	type NoMethod GeoRegionSearchTerms
7232	raw := NoMethod(*s)
7233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7234}
7235
7236// GeoRegionTargetingOptionDetails: Represents a targetable geographic
7237// region. This will be populated in the geo_region_details field when
7238// targeting_type is `TARGETING_TYPE_GEO_REGION`.
7239type GeoRegionTargetingOptionDetails struct {
7240	// DisplayName: Output only. The display name of the geographic region
7241	// (e.g., "Ontario, Canada").
7242	DisplayName string `json:"displayName,omitempty"`
7243
7244	// GeoRegionType: Output only. The type of geographic region targeting.
7245	//
7246	// Possible values:
7247	//   "GEO_REGION_TYPE_UNKNOWN" - The geographic region type is unknown.
7248	//   "GEO_REGION_TYPE_OTHER" - The geographic region type is other.
7249	//   "GEO_REGION_TYPE_COUNTRY" - The geographic region is a country.
7250	//   "GEO_REGION_TYPE_REGION" - The geographic region type is region.
7251	//   "GEO_REGION_TYPE_TERRITORY" - The geographic region is a territory.
7252	//   "GEO_REGION_TYPE_PROVINCE" - The geographic region is a province.
7253	//   "GEO_REGION_TYPE_STATE" - The geographic region is a state.
7254	//   "GEO_REGION_TYPE_PREFECTURE" - The geographic region is a
7255	// prefecture.
7256	//   "GEO_REGION_TYPE_GOVERNORATE" - The geographic region is a
7257	// governorate.
7258	//   "GEO_REGION_TYPE_CANTON" - The geographic region is a canton.
7259	//   "GEO_REGION_TYPE_UNION_TERRITORY" - The geographic region is a
7260	// union territory.
7261	//   "GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY" - The geographic region is
7262	// an autonomous community.
7263	//   "GEO_REGION_TYPE_DMA_REGION" - The geographic region is a
7264	// designated market area (DMA) region.
7265	//   "GEO_REGION_TYPE_METRO" - The geographic region type is metro.
7266	//   "GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT" - The geographic region is
7267	// a congressional district.
7268	//   "GEO_REGION_TYPE_COUNTY" - The geographic region is a county.
7269	//   "GEO_REGION_TYPE_MUNICIPALITY" - The geographic region is a
7270	// municipality.
7271	//   "GEO_REGION_TYPE_CITY" - The geographic region is a city.
7272	//   "GEO_REGION_TYPE_POSTAL_CODE" - The geographic region targeting
7273	// type is postal code.
7274	//   "GEO_REGION_TYPE_DEPARTMENT" - The geographic region targeting type
7275	// is department.
7276	//   "GEO_REGION_TYPE_AIRPORT" - The geographic region is an airport.
7277	//   "GEO_REGION_TYPE_TV_REGION" - The geographic region is a TV region.
7278	//   "GEO_REGION_TYPE_OKRUG" - The geographic region is an okrug.
7279	//   "GEO_REGION_TYPE_BOROUGH" - The geographic region is a borough.
7280	//   "GEO_REGION_TYPE_CITY_REGION" - The geographic region is a city
7281	// region.
7282	//   "GEO_REGION_TYPE_ARRONDISSEMENT" - The geographic region is an
7283	// arrondissement.
7284	//   "GEO_REGION_TYPE_NEIGHBORHOOD" - The geographic region is a
7285	// neighborhood.
7286	//   "GEO_REGION_TYPE_UNIVERSITY" - The geographic region is a
7287	// university.
7288	//   "GEO_REGION_TYPE_DISTRICT" - The geographic region is a district.
7289	GeoRegionType string `json:"geoRegionType,omitempty"`
7290
7291	// ForceSendFields is a list of field names (e.g. "DisplayName") to
7292	// unconditionally include in API requests. By default, fields with
7293	// empty values are omitted from API requests. However, any non-pointer,
7294	// non-interface field appearing in ForceSendFields will be sent to the
7295	// server regardless of whether the field is empty or not. This may be
7296	// used to include empty fields in Patch requests.
7297	ForceSendFields []string `json:"-"`
7298
7299	// NullFields is a list of field names (e.g. "DisplayName") to include
7300	// in API requests with the JSON null value. By default, fields with
7301	// empty values are omitted from API requests. However, any field with
7302	// an empty value appearing in NullFields will be sent to the server as
7303	// null. It is an error if a field in this list has a non-empty value.
7304	// This may be used to include null fields in Patch requests.
7305	NullFields []string `json:"-"`
7306}
7307
7308func (s *GeoRegionTargetingOptionDetails) MarshalJSON() ([]byte, error) {
7309	type NoMethod GeoRegionTargetingOptionDetails
7310	raw := NoMethod(*s)
7311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7312}
7313
7314// GoogleAudience: Describes a Google audience resource. Includes Google
7315// audience lists.
7316type GoogleAudience struct {
7317	// DisplayName: Output only. The display name of the Google audience. .
7318	DisplayName string `json:"displayName,omitempty"`
7319
7320	// GoogleAudienceId: Output only. The unique ID of the Google audience.
7321	// Assigned by the system.
7322	GoogleAudienceId int64 `json:"googleAudienceId,omitempty,string"`
7323
7324	// GoogleAudienceType: Output only. The type of Google audience. .
7325	//
7326	// Possible values:
7327	//   "GOOGLE_AUDIENCE_TYPE_UNSPECIFIED" - Default value when type is not
7328	// specified or is unknown.
7329	//   "GOOGLE_AUDIENCE_TYPE_AFFINITY" - Affinity type Google audience.
7330	//   "GOOGLE_AUDIENCE_TYPE_IN_MARKET" - In-Market type Google audience.
7331	//   "GOOGLE_AUDIENCE_TYPE_INSTALLED_APPS" - Installed-Apps type Google
7332	// audience.
7333	//   "GOOGLE_AUDIENCE_TYPE_NEW_MOBILE_DEVICES" - New-Mobile-Devices type
7334	// Google audience.
7335	//   "GOOGLE_AUDIENCE_TYPE_LIFE_EVENT" - Life-Event type Google
7336	// audience.
7337	//   "GOOGLE_AUDIENCE_TYPE_EXTENDED_DEMOGRAPHIC" - Extended-Demographic
7338	// type Google audience.
7339	GoogleAudienceType string `json:"googleAudienceType,omitempty"`
7340
7341	// Name: Output only. The resource name of the google audience.
7342	Name string `json:"name,omitempty"`
7343
7344	// ServerResponse contains the HTTP response code and headers from the
7345	// server.
7346	googleapi.ServerResponse `json:"-"`
7347
7348	// ForceSendFields is a list of field names (e.g. "DisplayName") to
7349	// unconditionally include in API requests. By default, fields with
7350	// empty values are omitted from API requests. However, any non-pointer,
7351	// non-interface field appearing in ForceSendFields will be sent to the
7352	// server regardless of whether the field is empty or not. This may be
7353	// used to include empty fields in Patch requests.
7354	ForceSendFields []string `json:"-"`
7355
7356	// NullFields is a list of field names (e.g. "DisplayName") to include
7357	// in API requests with the JSON null value. By default, fields with
7358	// empty values are omitted from API requests. However, any field with
7359	// an empty value appearing in NullFields will be sent to the server as
7360	// null. It is an error if a field in this list has a non-empty value.
7361	// This may be used to include null fields in Patch requests.
7362	NullFields []string `json:"-"`
7363}
7364
7365func (s *GoogleAudience) MarshalJSON() ([]byte, error) {
7366	type NoMethod GoogleAudience
7367	raw := NoMethod(*s)
7368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7369}
7370
7371// GoogleAudienceGroup: Details of Google audience group. All Google
7372// audience targeting settings are logically ‘OR’ of each other.
7373type GoogleAudienceGroup struct {
7374	// Settings: Required. All Google audience targeting settings in Google
7375	// audience group. Repeated settings with same id will be ignored.
7376	Settings []*GoogleAudienceTargetingSetting `json:"settings,omitempty"`
7377
7378	// ForceSendFields is a list of field names (e.g. "Settings") to
7379	// unconditionally include in API requests. By default, fields with
7380	// empty values are omitted from API requests. However, any non-pointer,
7381	// non-interface field appearing in ForceSendFields will be sent to the
7382	// server regardless of whether the field is empty or not. This may be
7383	// used to include empty fields in Patch requests.
7384	ForceSendFields []string `json:"-"`
7385
7386	// NullFields is a list of field names (e.g. "Settings") to include in
7387	// API requests with the JSON null value. By default, fields with empty
7388	// values are omitted from API requests. However, any field with an
7389	// empty value appearing in NullFields will be sent to the server as
7390	// null. It is an error if a field in this list has a non-empty value.
7391	// This may be used to include null fields in Patch requests.
7392	NullFields []string `json:"-"`
7393}
7394
7395func (s *GoogleAudienceGroup) MarshalJSON() ([]byte, error) {
7396	type NoMethod GoogleAudienceGroup
7397	raw := NoMethod(*s)
7398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7399}
7400
7401// GoogleAudienceTargetingSetting: Details of Google audience targeting
7402// setting.
7403type GoogleAudienceTargetingSetting struct {
7404	// GoogleAudienceId: Required. Google audience id of the Google audience
7405	// targeting setting. This id is google_audience_id.
7406	GoogleAudienceId int64 `json:"googleAudienceId,omitempty,string"`
7407
7408	// ForceSendFields is a list of field names (e.g. "GoogleAudienceId") to
7409	// unconditionally include in API requests. By default, fields with
7410	// empty values are omitted from API requests. However, any non-pointer,
7411	// non-interface field appearing in ForceSendFields will be sent to the
7412	// server regardless of whether the field is empty or not. This may be
7413	// used to include empty fields in Patch requests.
7414	ForceSendFields []string `json:"-"`
7415
7416	// NullFields is a list of field names (e.g. "GoogleAudienceId") to
7417	// include in API requests with the JSON null value. By default, fields
7418	// with empty values are omitted from API requests. However, any field
7419	// with an empty value appearing in NullFields will be sent to the
7420	// server as null. It is an error if a field in this list has a
7421	// non-empty value. This may be used to include null fields in Patch
7422	// requests.
7423	NullFields []string `json:"-"`
7424}
7425
7426func (s *GoogleAudienceTargetingSetting) MarshalJSON() ([]byte, error) {
7427	type NoMethod GoogleAudienceTargetingSetting
7428	raw := NoMethod(*s)
7429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7430}
7431
7432// GoogleBytestreamMedia: Media resource.
7433type GoogleBytestreamMedia struct {
7434	// ResourceName: Name of the media resource.
7435	ResourceName string `json:"resourceName,omitempty"`
7436
7437	// ServerResponse contains the HTTP response code and headers from the
7438	// server.
7439	googleapi.ServerResponse `json:"-"`
7440
7441	// ForceSendFields is a list of field names (e.g. "ResourceName") to
7442	// unconditionally include in API requests. By default, fields with
7443	// empty values are omitted from API requests. However, any non-pointer,
7444	// non-interface field appearing in ForceSendFields will be sent to the
7445	// server regardless of whether the field is empty or not. This may be
7446	// used to include empty fields in Patch requests.
7447	ForceSendFields []string `json:"-"`
7448
7449	// NullFields is a list of field names (e.g. "ResourceName") to include
7450	// in API requests with the JSON null value. By default, fields with
7451	// empty values are omitted from API requests. However, any field with
7452	// an empty value appearing in NullFields will be sent to the server as
7453	// null. It is an error if a field in this list has a non-empty value.
7454	// This may be used to include null fields in Patch requests.
7455	NullFields []string `json:"-"`
7456}
7457
7458func (s *GoogleBytestreamMedia) MarshalJSON() ([]byte, error) {
7459	type NoMethod GoogleBytestreamMedia
7460	raw := NoMethod(*s)
7461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7462}
7463
7464// HouseholdIncomeAssignedTargetingOptionDetails: Details for assigned
7465// household income targeting option. This will be populated in the
7466// details field of an AssignedTargetingOption when targeting_type is
7467// `TARGETING_TYPE_HOUSEHOLD_INCOME`.
7468type HouseholdIncomeAssignedTargetingOptionDetails struct {
7469	// HouseholdIncome: Output only. The household income of the audience.
7470	//
7471	// Possible values:
7472	//   "HOUSEHOLD_INCOME_UNSPECIFIED" - Default value when household
7473	// income is not specified in this version. This enum is a placeholder
7474	// for default value and does not represent a real household income
7475	// option.
7476	//   "HOUSEHOLD_INCOME_UNKNOWN" - The household income of the audience
7477	// is unknown.
7478	//   "HOUSEHOLD_INCOME_LOWER_50_PERCENT" - The audience is in the lower
7479	// 50% of U.S. household incomes.
7480	//   "HOUSEHOLD_INCOME_TOP_41_TO_50_PERCENT" - The audience is in the
7481	// top 41-50% of U.S. household incomes.
7482	//   "HOUSEHOLD_INCOME_TOP_31_TO_40_PERCENT" - The audience is in the
7483	// top 31-40% of U.S. household incomes.
7484	//   "HOUSEHOLD_INCOME_TOP_21_TO_30_PERCENT" - The audience is in the
7485	// top 21-30% of U.S. household incomes.
7486	//   "HOUSEHOLD_INCOME_TOP_11_TO_20_PERCENT" - The audience is in the
7487	// top 11-20% of U.S. household incomes.
7488	//   "HOUSEHOLD_INCOME_TOP_10_PERCENT" - The audience is in the top 10%
7489	// of U.S. household incomes.
7490	HouseholdIncome string `json:"householdIncome,omitempty"`
7491
7492	// TargetingOptionId: Required. The targeting_option_id of a
7493	// TargetingOption of type `TARGETING_TYPE_HOUSEHOLD_INCOME`.
7494	TargetingOptionId string `json:"targetingOptionId,omitempty"`
7495
7496	// ForceSendFields is a list of field names (e.g. "HouseholdIncome") to
7497	// unconditionally include in API requests. By default, fields with
7498	// empty values are omitted from API requests. However, any non-pointer,
7499	// non-interface field appearing in ForceSendFields will be sent to the
7500	// server regardless of whether the field is empty or not. This may be
7501	// used to include empty fields in Patch requests.
7502	ForceSendFields []string `json:"-"`
7503
7504	// NullFields is a list of field names (e.g. "HouseholdIncome") to
7505	// include in API requests with the JSON null value. By default, fields
7506	// with empty values are omitted from API requests. However, any field
7507	// with an empty value appearing in NullFields will be sent to the
7508	// server as null. It is an error if a field in this list has a
7509	// non-empty value. This may be used to include null fields in Patch
7510	// requests.
7511	NullFields []string `json:"-"`
7512}
7513
7514func (s *HouseholdIncomeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
7515	type NoMethod HouseholdIncomeAssignedTargetingOptionDetails
7516	raw := NoMethod(*s)
7517	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7518}
7519
7520// HouseholdIncomeTargetingOptionDetails: Represents a targetable
7521// household income. This will be populated in the
7522// household_income_details field of a TargetingOption when
7523// targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`.
7524type HouseholdIncomeTargetingOptionDetails struct {
7525	// HouseholdIncome: Output only. The household income of an audience.
7526	//
7527	// Possible values:
7528	//   "HOUSEHOLD_INCOME_UNSPECIFIED" - Default value when household
7529	// income is not specified in this version. This enum is a placeholder
7530	// for default value and does not represent a real household income
7531	// option.
7532	//   "HOUSEHOLD_INCOME_UNKNOWN" - The household income of the audience
7533	// is unknown.
7534	//   "HOUSEHOLD_INCOME_LOWER_50_PERCENT" - The audience is in the lower
7535	// 50% of U.S. household incomes.
7536	//   "HOUSEHOLD_INCOME_TOP_41_TO_50_PERCENT" - The audience is in the
7537	// top 41-50% of U.S. household incomes.
7538	//   "HOUSEHOLD_INCOME_TOP_31_TO_40_PERCENT" - The audience is in the
7539	// top 31-40% of U.S. household incomes.
7540	//   "HOUSEHOLD_INCOME_TOP_21_TO_30_PERCENT" - The audience is in the
7541	// top 21-30% of U.S. household incomes.
7542	//   "HOUSEHOLD_INCOME_TOP_11_TO_20_PERCENT" - The audience is in the
7543	// top 11-20% of U.S. household incomes.
7544	//   "HOUSEHOLD_INCOME_TOP_10_PERCENT" - The audience is in the top 10%
7545	// of U.S. household incomes.
7546	HouseholdIncome string `json:"householdIncome,omitempty"`
7547
7548	// ForceSendFields is a list of field names (e.g. "HouseholdIncome") to
7549	// unconditionally include in API requests. By default, fields with
7550	// empty values are omitted from API requests. However, any non-pointer,
7551	// non-interface field appearing in ForceSendFields will be sent to the
7552	// server regardless of whether the field is empty or not. This may be
7553	// used to include empty fields in Patch requests.
7554	ForceSendFields []string `json:"-"`
7555
7556	// NullFields is a list of field names (e.g. "HouseholdIncome") to
7557	// include in API requests with the JSON null value. By default, fields
7558	// with empty values are omitted from API requests. However, any field
7559	// with an empty value appearing in NullFields will be sent to the
7560	// server as null. It is an error if a field in this list has a
7561	// non-empty value. This may be used to include null fields in Patch
7562	// requests.
7563	NullFields []string `json:"-"`
7564}
7565
7566func (s *HouseholdIncomeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
7567	type NoMethod HouseholdIncomeTargetingOptionDetails
7568	raw := NoMethod(*s)
7569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7570}
7571
7572// IdFilter: A filtering option that filters entities by their entity
7573// IDs.
7574type IdFilter struct {
7575	// AdGroupAdIds: YouTube Ads to download by ID. All IDs must belong to
7576	// the same Advertiser or Partner specified in
7577	// CreateSdfDownloadTaskRequest.
7578	AdGroupAdIds googleapi.Int64s `json:"adGroupAdIds,omitempty"`
7579
7580	// AdGroupIds: YouTube Ad Groups to download by ID. All IDs must belong
7581	// to the same Advertiser or Partner specified in
7582	// CreateSdfDownloadTaskRequest.
7583	AdGroupIds googleapi.Int64s `json:"adGroupIds,omitempty"`
7584
7585	// CampaignIds: Campaigns to download by ID. All IDs must belong to the
7586	// same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.
7587	CampaignIds googleapi.Int64s `json:"campaignIds,omitempty"`
7588
7589	// InsertionOrderIds: Insertion Orders to download by ID. All IDs must
7590	// belong to the same Advertiser or Partner specified in
7591	// CreateSdfDownloadTaskRequest.
7592	InsertionOrderIds googleapi.Int64s `json:"insertionOrderIds,omitempty"`
7593
7594	// LineItemIds: Line Items to download by ID. All IDs must belong to the
7595	// same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.
7596	LineItemIds googleapi.Int64s `json:"lineItemIds,omitempty"`
7597
7598	// MediaProductIds: Media Products to download by ID. All IDs must
7599	// belong to the same Advertiser or Partner specified in
7600	// CreateSdfDownloadTaskRequest.
7601	MediaProductIds googleapi.Int64s `json:"mediaProductIds,omitempty"`
7602
7603	// ForceSendFields is a list of field names (e.g. "AdGroupAdIds") to
7604	// unconditionally include in API requests. By default, fields with
7605	// empty values are omitted from API requests. However, any non-pointer,
7606	// non-interface field appearing in ForceSendFields will be sent to the
7607	// server regardless of whether the field is empty or not. This may be
7608	// used to include empty fields in Patch requests.
7609	ForceSendFields []string `json:"-"`
7610
7611	// NullFields is a list of field names (e.g. "AdGroupAdIds") to include
7612	// in API requests with the JSON null value. By default, fields with
7613	// empty values are omitted from API requests. However, any field with
7614	// an empty value appearing in NullFields will be sent to the server as
7615	// null. It is an error if a field in this list has a non-empty value.
7616	// This may be used to include null fields in Patch requests.
7617	NullFields []string `json:"-"`
7618}
7619
7620func (s *IdFilter) MarshalJSON() ([]byte, error) {
7621	type NoMethod IdFilter
7622	raw := NoMethod(*s)
7623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7624}
7625
7626// InsertionOrder: A single insertion order.
7627type InsertionOrder struct {
7628	// AdvertiserId: Output only. The unique ID of the advertiser the
7629	// insertion order belongs to.
7630	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
7631
7632	// BidStrategy: The bidding strategy of the insertion order. By default,
7633	// fixed_bid is set.
7634	BidStrategy *BiddingStrategy `json:"bidStrategy,omitempty"`
7635
7636	// Budget: Required. The budget allocation settings of the insertion
7637	// order.
7638	Budget *InsertionOrderBudget `json:"budget,omitempty"`
7639
7640	// CampaignId: Required. Immutable. The unique ID of the campaign that
7641	// the insertion order belongs to.
7642	CampaignId int64 `json:"campaignId,omitempty,string"`
7643
7644	// DisplayName: Required. The display name of the insertion order. Must
7645	// be UTF-8 encoded with a maximum size of 240 bytes.
7646	DisplayName string `json:"displayName,omitempty"`
7647
7648	// EntityStatus: Required. Controls whether or not the insertion order
7649	// can spend its budget and bid on inventory. * For CreateInsertionOrder
7650	// method, only `ENTITY_STATUS_DRAFT` is allowed. To activate an
7651	// insertion order, use UpdateInsertionOrder method and update the
7652	// status to `ENTITY_STATUS_ACTIVE` after creation. * An insertion order
7653	// cannot be changed back to `ENTITY_STATUS_DRAFT` status from any other
7654	// status. * An insertion order cannot be set to `ENTITY_STATUS_ACTIVE`
7655	// if its parent campaign is not active.
7656	//
7657	// Possible values:
7658	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
7659	// specified or is unknown in this version.
7660	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
7661	// budget.
7662	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
7663	// budget spending are disabled. An entity can be deleted after
7664	// archived. Deleted entities cannot be retrieved.
7665	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
7666	// budget spending are disabled.
7667	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
7668	// the entity.
7669	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
7670	// for deletion.
7671	EntityStatus string `json:"entityStatus,omitempty"`
7672
7673	// FrequencyCap: Required. The frequency capping setting of the
7674	// insertion order.
7675	FrequencyCap *FrequencyCap `json:"frequencyCap,omitempty"`
7676
7677	// InsertionOrderId: Output only. The unique ID of the insertion order.
7678	// Assigned by the system.
7679	InsertionOrderId int64 `json:"insertionOrderId,omitempty,string"`
7680
7681	// InsertionOrderType: The type of insertion order. If this field is
7682	// unspecified in creation, the value defaults to `RTB`.
7683	//
7684	// Possible values:
7685	//   "INSERTION_ORDER_TYPE_UNSPECIFIED" - Insertion order type is not
7686	// specified or is unknown.
7687	//   "RTB" - Real-time bidding.
7688	//   "OVER_THE_TOP" - Over-the-top.
7689	InsertionOrderType string `json:"insertionOrderType,omitempty"`
7690
7691	// IntegrationDetails: Additional integration details of the insertion
7692	// order.
7693	IntegrationDetails *IntegrationDetails `json:"integrationDetails,omitempty"`
7694
7695	// Name: Output only. The resource name of the insertion order.
7696	Name string `json:"name,omitempty"`
7697
7698	// Pacing: Required. The budget spending speed setting of the insertion
7699	// order.
7700	Pacing *Pacing `json:"pacing,omitempty"`
7701
7702	// PartnerCosts: The partner costs associated with the insertion order.
7703	// If absent or empty in CreateInsertionOrder method, the newly created
7704	// insertion order will inherit partner costs from the partner settings.
7705	PartnerCosts []*PartnerCost `json:"partnerCosts,omitempty"`
7706
7707	// PerformanceGoal: Required. Performance goal of the insertion order.
7708	PerformanceGoal *PerformanceGoal `json:"performanceGoal,omitempty"`
7709
7710	// UpdateTime: Output only. The timestamp when the insertion order was
7711	// last updated. Assigned by the system.
7712	UpdateTime string `json:"updateTime,omitempty"`
7713
7714	// ServerResponse contains the HTTP response code and headers from the
7715	// server.
7716	googleapi.ServerResponse `json:"-"`
7717
7718	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
7719	// unconditionally include in API requests. By default, fields with
7720	// empty values are omitted from API requests. However, any non-pointer,
7721	// non-interface field appearing in ForceSendFields will be sent to the
7722	// server regardless of whether the field is empty or not. This may be
7723	// used to include empty fields in Patch requests.
7724	ForceSendFields []string `json:"-"`
7725
7726	// NullFields is a list of field names (e.g. "AdvertiserId") to include
7727	// in API requests with the JSON null value. By default, fields with
7728	// empty values are omitted from API requests. However, any field with
7729	// an empty value appearing in NullFields will be sent to the server as
7730	// null. It is an error if a field in this list has a non-empty value.
7731	// This may be used to include null fields in Patch requests.
7732	NullFields []string `json:"-"`
7733}
7734
7735func (s *InsertionOrder) MarshalJSON() ([]byte, error) {
7736	type NoMethod InsertionOrder
7737	raw := NoMethod(*s)
7738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7739}
7740
7741// InsertionOrderBudget: Settings that control how insertion order
7742// budget is allocated.
7743type InsertionOrderBudget struct {
7744	// AutomationType: The type of automation used to manage bid and budget
7745	// for the insertion order. If this field is unspecified in creation,
7746	// the value defaults to `INSERTION_ORDER_AUTOMATION_TYPE_NONE`.
7747	//
7748	// Possible values:
7749	//   "INSERTION_ORDER_AUTOMATION_TYPE_UNSPECIFIED" - Insertion order
7750	// automation option is not specified or is unknown in this version.
7751	//   "INSERTION_ORDER_AUTOMATION_TYPE_BUDGET" - Automatic budget
7752	// allocation. Allow the system to automatically shift budget to owning
7753	// line items to optimize performance defined by performance_goal. No
7754	// automation on bid settings.
7755	//   "INSERTION_ORDER_AUTOMATION_TYPE_NONE" - No automation of bid or
7756	// budget on insertion order level. Bid and budget must be manually
7757	// configured at the line item level.
7758	//   "INSERTION_ORDER_AUTOMATION_TYPE_BID_BUDGET" - Allow the system to
7759	// automatically adjust bids and shift budget to owning line items to
7760	// optimize performance defined by performance_goal.
7761	AutomationType string `json:"automationType,omitempty"`
7762
7763	// BudgetSegments: Required. The list of budget segments. Use a budget
7764	// segment to specify a specific budget for a given period of time an
7765	// insertion order is running.
7766	BudgetSegments []*InsertionOrderBudgetSegment `json:"budgetSegments,omitempty"`
7767
7768	// BudgetUnit: Required. Immutable. The budget unit specifies whether
7769	// the budget is currency based or impression based.
7770	//
7771	// Possible values:
7772	//   "BUDGET_UNIT_UNSPECIFIED" - Type value is not specified or is
7773	// unknown in this version.
7774	//   "BUDGET_UNIT_CURRENCY" - Budgeting in currency amounts.
7775	//   "BUDGET_UNIT_IMPRESSIONS" - Budgeting in impression amounts.
7776	BudgetUnit string `json:"budgetUnit,omitempty"`
7777
7778	// ForceSendFields is a list of field names (e.g. "AutomationType") to
7779	// unconditionally include in API requests. By default, fields with
7780	// empty values are omitted from API requests. However, any non-pointer,
7781	// non-interface field appearing in ForceSendFields will be sent to the
7782	// server regardless of whether the field is empty or not. This may be
7783	// used to include empty fields in Patch requests.
7784	ForceSendFields []string `json:"-"`
7785
7786	// NullFields is a list of field names (e.g. "AutomationType") to
7787	// include in API requests with the JSON null value. By default, fields
7788	// with empty values are omitted from API requests. However, any field
7789	// with an empty value appearing in NullFields will be sent to the
7790	// server as null. It is an error if a field in this list has a
7791	// non-empty value. This may be used to include null fields in Patch
7792	// requests.
7793	NullFields []string `json:"-"`
7794}
7795
7796func (s *InsertionOrderBudget) MarshalJSON() ([]byte, error) {
7797	type NoMethod InsertionOrderBudget
7798	raw := NoMethod(*s)
7799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7800}
7801
7802// InsertionOrderBudgetSegment: Settings that control the budget of a
7803// single budget segment.
7804type InsertionOrderBudgetSegment struct {
7805	// BudgetAmountMicros: Required. The budget amount the insertion order
7806	// will spend for the given date_range. The amount is in micros. Must be
7807	// greater than 0. For example, 500000000 represents 500 standard units
7808	// of the currency.
7809	BudgetAmountMicros int64 `json:"budgetAmountMicros,omitempty,string"`
7810
7811	// CampaignBudgetId: The ID of the campaign budget linked to this
7812	// insertion order budget segment.
7813	CampaignBudgetId int64 `json:"campaignBudgetId,omitempty,string"`
7814
7815	// DateRange: Required. The start and end date settings of the budget
7816	// segment. They are resolved relative to the parent advertiser's time
7817	// zone. * When creating a new budget segment, both `start_date` and
7818	// `end_date` must be in the future. * An existing budget segment with a
7819	// `start_date` in the past has a mutable `end_date` but an immutable
7820	// `start_date`. * `end_date` must be the `start_date` or later, both
7821	// before the year 2037.
7822	DateRange *DateRange `json:"dateRange,omitempty"`
7823
7824	// Description: The budget segment description. It can be used to enter
7825	// Purchase Order information for each budget segment and have that
7826	// information printed on the invoices. Must be UTF-8 encoded with a
7827	// length of no more than 80 characters.
7828	Description string `json:"description,omitempty"`
7829
7830	// ForceSendFields is a list of field names (e.g. "BudgetAmountMicros")
7831	// to unconditionally include in API requests. By default, fields with
7832	// empty values are omitted from API requests. However, any non-pointer,
7833	// non-interface field appearing in ForceSendFields will be sent to the
7834	// server regardless of whether the field is empty or not. This may be
7835	// used to include empty fields in Patch requests.
7836	ForceSendFields []string `json:"-"`
7837
7838	// NullFields is a list of field names (e.g. "BudgetAmountMicros") to
7839	// include in API requests with the JSON null value. By default, fields
7840	// with empty values are omitted from API requests. However, any field
7841	// with an empty value appearing in NullFields will be sent to the
7842	// server as null. It is an error if a field in this list has a
7843	// non-empty value. This may be used to include null fields in Patch
7844	// requests.
7845	NullFields []string `json:"-"`
7846}
7847
7848func (s *InsertionOrderBudgetSegment) MarshalJSON() ([]byte, error) {
7849	type NoMethod InsertionOrderBudgetSegment
7850	raw := NoMethod(*s)
7851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7852}
7853
7854// IntegralAdScience: Details of Integral Ad Science settings.
7855type IntegralAdScience struct {
7856	// CustomSegmentId: The custom segment ID provided by Integral Ad
7857	// Science. The ID must be between `1000001` and `1999999`, inclusive.
7858	CustomSegmentId googleapi.Int64s `json:"customSegmentId,omitempty"`
7859
7860	// DisplayViewability: Display Viewability section (applicable to
7861	// display line items only).
7862	//
7863	// Possible values:
7864	//   "PERFORMANCE_VIEWABILITY_UNSPECIFIED" - This enum is only a
7865	// placeholder and it doesn't specify any display viewability options.
7866	//   "PERFORMANCE_VIEWABILITY_40" - Target 40% Viewability or Higher.
7867	//   "PERFORMANCE_VIEWABILITY_50" - Target 50% Viewability or Higher.
7868	//   "PERFORMANCE_VIEWABILITY_60" - Target 60% Viewability or Higher.
7869	//   "PERFORMANCE_VIEWABILITY_70" - Target 70% Viewability or Higher.
7870	DisplayViewability string `json:"displayViewability,omitempty"`
7871
7872	// ExcludeUnrateable: Brand Safety - **Unrateable**.
7873	ExcludeUnrateable bool `json:"excludeUnrateable,omitempty"`
7874
7875	// ExcludedAdFraudRisk: Ad Fraud settings.
7876	//
7877	// Possible values:
7878	//   "SUSPICIOUS_ACTIVITY_UNSPECIFIED" - This enum is only a placeholder
7879	// and it doesn't specify any ad fraud prevention options.
7880	//   "SUSPICIOUS_ACTIVITY_HR" - Ad Fraud - Exclude High Risk.
7881	//   "SUSPICIOUS_ACTIVITY_HMR" - Ad Fraud - Exclude High and Moderate
7882	// Risk.
7883	ExcludedAdFraudRisk string `json:"excludedAdFraudRisk,omitempty"`
7884
7885	// ExcludedAdultRisk: Brand Safety - **Adult content**.
7886	//
7887	// Possible values:
7888	//   "ADULT_UNSPECIFIED" - This enum is only a placeholder and it
7889	// doesn't specify any adult options.
7890	//   "ADULT_HR" - Adult - Exclude High Risk.
7891	//   "ADULT_HMR" - Adult - Exclude High and Moderate Risk.
7892	ExcludedAdultRisk string `json:"excludedAdultRisk,omitempty"`
7893
7894	// ExcludedAlcoholRisk: Brand Safety - **Alcohol**.
7895	//
7896	// Possible values:
7897	//   "ALCOHOL_UNSPECIFIED" - This enum is only a placeholder and it
7898	// doesn't specify any alcohol options.
7899	//   "ALCOHOL_HR" - Alcohol - Exclude High Risk.
7900	//   "ALCOHOL_HMR" - Alcohol - Exclude High and Moderate Risk.
7901	ExcludedAlcoholRisk string `json:"excludedAlcoholRisk,omitempty"`
7902
7903	// ExcludedDrugsRisk: Brand Safety - **Drugs**.
7904	//
7905	// Possible values:
7906	//   "DRUGS_UNSPECIFIED" - This enum is only a placeholder and it
7907	// doesn't specify any drugs options.
7908	//   "DRUGS_HR" - Drugs - Exclude High Risk.
7909	//   "DRUGS_HMR" - Drugs - Exclude High and Moderate Risk.
7910	ExcludedDrugsRisk string `json:"excludedDrugsRisk,omitempty"`
7911
7912	// ExcludedGamblingRisk: Brand Safety - **Gambling**.
7913	//
7914	// Possible values:
7915	//   "GAMBLING_UNSPECIFIED" - This enum is only a placeholder and it
7916	// doesn't specify any gambling options.
7917	//   "GAMBLING_HR" - Gambling - Exclude High Risk.
7918	//   "GAMBLING_HMR" - Gambling - Exclude High and Moderate Risk.
7919	ExcludedGamblingRisk string `json:"excludedGamblingRisk,omitempty"`
7920
7921	// ExcludedHateSpeechRisk: Brand Safety - **Hate speech**.
7922	//
7923	// Possible values:
7924	//   "HATE_SPEECH_UNSPECIFIED" - This enum is only a placeholder and it
7925	// doesn't specify any hate speech options.
7926	//   "HATE_SPEECH_HR" - Hate Speech - Exclude High Risk.
7927	//   "HATE_SPEECH_HMR" - Hate Speech - Exclude High and Moderate Risk.
7928	ExcludedHateSpeechRisk string `json:"excludedHateSpeechRisk,omitempty"`
7929
7930	// ExcludedIllegalDownloadsRisk: Brand Safety - **Illegal downloads**.
7931	//
7932	// Possible values:
7933	//   "ILLEGAL_DOWNLOADS_UNSPECIFIED" - This enum is only a placeholder
7934	// and it doesn't specify any illegal downloads options.
7935	//   "ILLEGAL_DOWNLOADS_HR" - Illegal Downloads - Exclude High Risk.
7936	//   "ILLEGAL_DOWNLOADS_HMR" - Illegal Downloads - Exclude High and
7937	// Moderate Risk.
7938	ExcludedIllegalDownloadsRisk string `json:"excludedIllegalDownloadsRisk,omitempty"`
7939
7940	// ExcludedOffensiveLanguageRisk: Brand Safety - **Offensive language**.
7941	//
7942	// Possible values:
7943	//   "OFFENSIVE_LANGUAGE_UNSPECIFIED" - This enum is only a placeholder
7944	// and it doesn't specify any language options.
7945	//   "OFFENSIVE_LANGUAGE_HR" - Offensive Language - Exclude High Risk.
7946	//   "OFFENSIVE_LANGUAGE_HMR" - Offensive Language - Exclude High and
7947	// Moderate Risk.
7948	ExcludedOffensiveLanguageRisk string `json:"excludedOffensiveLanguageRisk,omitempty"`
7949
7950	// ExcludedViolenceRisk: Brand Safety - **Violence**.
7951	//
7952	// Possible values:
7953	//   "VIOLENCE_UNSPECIFIED" - This enum is only a placeholder and it
7954	// doesn't specify any violence options.
7955	//   "VIOLENCE_HR" - Violence - Exclude High Risk.
7956	//   "VIOLENCE_HMR" - Violence - Exclude High and Moderate Risk.
7957	ExcludedViolenceRisk string `json:"excludedViolenceRisk,omitempty"`
7958
7959	// TraqScoreOption: True advertising quality (applicable to Display line
7960	// items only).
7961	//
7962	// Possible values:
7963	//   "TRAQ_UNSPECIFIED" - This enum is only a placeholder and it doesn't
7964	// specify any true advertising quality scores.
7965	//   "TRAQ_250" - TRAQ score 250-1000.
7966	//   "TRAQ_500" - TRAQ score 500-1000.
7967	//   "TRAQ_600" - TRAQ score 600-1000.
7968	//   "TRAQ_700" - TRAQ score 700-1000.
7969	//   "TRAQ_750" - TRAQ score 750-1000.
7970	//   "TRAQ_875" - TRAQ score 875-1000.
7971	//   "TRAQ_1000" - TRAQ score 1000.
7972	TraqScoreOption string `json:"traqScoreOption,omitempty"`
7973
7974	// VideoViewability: Video Viewability Section (applicable to video line
7975	// items only).
7976	//
7977	// Possible values:
7978	//   "VIDEO_VIEWABILITY_UNSPECIFIED" - This enum is only a placeholder
7979	// and it doesn't specify any video viewability options.
7980	//   "VIDEO_VIEWABILITY_40" - 40%+ in view (IAB video viewability
7981	// standard).
7982	//   "VIDEO_VIEWABILITY_50" - 50%+ in view (IAB video viewability
7983	// standard).
7984	//   "VIDEO_VIEWABILITY_60" - 60%+ in view (IAB video viewability
7985	// standard).
7986	//   "VIDEO_VIEWABILITY_70" - 70%+ in view (IAB video viewability
7987	// standard).
7988	VideoViewability string `json:"videoViewability,omitempty"`
7989
7990	// ForceSendFields is a list of field names (e.g. "CustomSegmentId") to
7991	// unconditionally include in API requests. By default, fields with
7992	// empty values are omitted from API requests. However, any non-pointer,
7993	// non-interface field appearing in ForceSendFields will be sent to the
7994	// server regardless of whether the field is empty or not. This may be
7995	// used to include empty fields in Patch requests.
7996	ForceSendFields []string `json:"-"`
7997
7998	// NullFields is a list of field names (e.g. "CustomSegmentId") to
7999	// include in API requests with the JSON null value. By default, fields
8000	// with empty values are omitted from API requests. However, any field
8001	// with an empty value appearing in NullFields will be sent to the
8002	// server as null. It is an error if a field in this list has a
8003	// non-empty value. This may be used to include null fields in Patch
8004	// requests.
8005	NullFields []string `json:"-"`
8006}
8007
8008func (s *IntegralAdScience) MarshalJSON() ([]byte, error) {
8009	type NoMethod IntegralAdScience
8010	raw := NoMethod(*s)
8011	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8012}
8013
8014// IntegrationDetails: Integration details of an entry.
8015type IntegrationDetails struct {
8016	// Details: Additional details of the entry in string format. Must be
8017	// UTF-8 encoded with a length of no more than 1000 characters.
8018	Details string `json:"details,omitempty"`
8019
8020	// IntegrationCode: An external identifier to be associated with the
8021	// entry. The integration code will show up together with the entry in
8022	// many places in the system, for example, reporting. Must be UTF-8
8023	// encoded with a length of no more than 500 characters.
8024	IntegrationCode string `json:"integrationCode,omitempty"`
8025
8026	// ForceSendFields is a list of field names (e.g. "Details") to
8027	// unconditionally include in API requests. By default, fields with
8028	// empty values are omitted from API requests. However, any non-pointer,
8029	// non-interface field appearing in ForceSendFields will be sent to the
8030	// server regardless of whether the field is empty or not. This may be
8031	// used to include empty fields in Patch requests.
8032	ForceSendFields []string `json:"-"`
8033
8034	// NullFields is a list of field names (e.g. "Details") to include in
8035	// API requests with the JSON null value. By default, fields with empty
8036	// values are omitted from API requests. However, any field with an
8037	// empty value appearing in NullFields will be sent to the server as
8038	// null. It is an error if a field in this list has a non-empty value.
8039	// This may be used to include null fields in Patch requests.
8040	NullFields []string `json:"-"`
8041}
8042
8043func (s *IntegrationDetails) MarshalJSON() ([]byte, error) {
8044	type NoMethod IntegrationDetails
8045	raw := NoMethod(*s)
8046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8047}
8048
8049// InventorySource: An inventory source.
8050type InventorySource struct {
8051	// Commitment: Whether the inventory source has a guaranteed or
8052	// non-guaranteed delivery.
8053	//
8054	// Possible values:
8055	//   "INVENTORY_SOURCE_COMMITMENT_UNSPECIFIED" - The commitment is not
8056	// specified or is unknown in this version.
8057	//   "INVENTORY_SOURCE_COMMITMENT_GUARANTEED" - The commitment is
8058	// guaranteed delivery.
8059	//   "INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED" - The commitment is
8060	// non-guaranteed delivery.
8061	Commitment string `json:"commitment,omitempty"`
8062
8063	// CreativeConfigs: The creative requirements of the inventory source.
8064	// Not applicable for auction packages.
8065	CreativeConfigs []*CreativeConfig `json:"creativeConfigs,omitempty"`
8066
8067	// DealId: The ID in the exchange space that uniquely identifies the
8068	// inventory source. Must be unique across buyers within each exchange
8069	// but not necessarily unique across exchanges.
8070	DealId string `json:"dealId,omitempty"`
8071
8072	// DeliveryMethod: The delivery method of the inventory source. * For
8073	// non-guaranteed inventory sources, the only acceptable value is
8074	// `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`. * For guaranteed
8075	// inventory sources, acceptable values are
8076	// `INVENTORY_SOURCE_DELIVERY_METHOD_TAG` and
8077	// `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`.
8078	//
8079	// Possible values:
8080	//   "INVENTORY_SOURCE_DELIVERY_METHOD_UNSPECIFIED" - The delivery
8081	// method is not specified or is unknown in this version.
8082	//   "INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC" - The delivery
8083	// method is programmatic.
8084	//   "INVENTORY_SOURCE_DELIVERY_METHOD_TAG" - The delivery method is
8085	// tag.
8086	DeliveryMethod string `json:"deliveryMethod,omitempty"`
8087
8088	// DisplayName: The display name of the inventory source. Must be UTF-8
8089	// encoded with a maximum size of 240 bytes.
8090	DisplayName string `json:"displayName,omitempty"`
8091
8092	// Exchange: The exchange to which the inventory source belongs.
8093	//
8094	// Possible values:
8095	//   "EXCHANGE_UNSPECIFIED" - Exchange is not specified or is unknown in
8096	// this version.
8097	//   "EXCHANGE_GOOGLE_AD_MANAGER" - Google Ad Manager.
8098	//   "EXCHANGE_APPNEXUS" - AppNexus.
8099	//   "EXCHANGE_BRIGHTROLL" - BrightRoll Exchange for Video from Yahoo!.
8100	//   "EXCHANGE_ADFORM" - Adform.
8101	//   "EXCHANGE_ADMETA" - Admeta.
8102	//   "EXCHANGE_ADMIXER" - Admixer.
8103	//   "EXCHANGE_ADSMOGO" - AdsMogo.
8104	//   "EXCHANGE_ADSWIZZ" - AdsWizz.
8105	//   "EXCHANGE_BIDSWITCH" - BidSwitch.
8106	//   "EXCHANGE_BRIGHTROLL_DISPLAY" - BrightRoll Exchange for Display
8107	// from Yahoo!.
8108	//   "EXCHANGE_CADREON" - Cadreon.
8109	//   "EXCHANGE_DAILYMOTION" - Dailymotion.
8110	//   "EXCHANGE_FIVE" - Five.
8111	//   "EXCHANGE_FLUCT" - Fluct.
8112	//   "EXCHANGE_FREEWHEEL" - FreeWheel SSP.
8113	//   "EXCHANGE_GENIEE" - Geniee.
8114	//   "EXCHANGE_GUMGUM" - GumGum.
8115	//   "EXCHANGE_IMOBILE" - i-mobile.
8116	//   "EXCHANGE_IBILLBOARD" - iBILLBOARD.
8117	//   "EXCHANGE_IMPROVE_DIGITAL" - Improve Digital.
8118	//   "EXCHANGE_INDEX" - Index Exchange.
8119	//   "EXCHANGE_KARGO" - Kargo.
8120	//   "EXCHANGE_MICROAD" - MicroAd.
8121	//   "EXCHANGE_MOPUB" - MoPub.
8122	//   "EXCHANGE_NEND" - Nend.
8123	//   "EXCHANGE_ONE_BY_AOL_DISPLAY" - ONE by AOL: Display Market Place.
8124	//   "EXCHANGE_ONE_BY_AOL_MOBILE" - ONE by AOL: Mobile.
8125	//   "EXCHANGE_ONE_BY_AOL_VIDEO" - ONE by AOL: Video.
8126	//   "EXCHANGE_OOYALA" - Ooyala.
8127	//   "EXCHANGE_OPENX" - OpenX.
8128	//   "EXCHANGE_PERMODO" - Permodo.
8129	//   "EXCHANGE_PLATFORMONE" - Platform One.
8130	//   "EXCHANGE_PLATFORMID" - PlatformId.
8131	//   "EXCHANGE_PUBMATIC" - PubMatic.
8132	//   "EXCHANGE_PULSEPOINT" - PulsePoint.
8133	//   "EXCHANGE_REVENUEMAX" - RevenueMax.
8134	//   "EXCHANGE_RUBICON" - Rubicon.
8135	//   "EXCHANGE_SMARTCLIP" - SmartClip.
8136	//   "EXCHANGE_SMARTRTB" - SmartRTB+.
8137	//   "EXCHANGE_SMARTSTREAMTV" - SmartstreamTv.
8138	//   "EXCHANGE_SOVRN" - Sovrn.
8139	//   "EXCHANGE_SPOTXCHANGE" - SpotXchange.
8140	//   "EXCHANGE_STROER" - Ströer SSP.
8141	//   "EXCHANGE_TEADSTV" - TeadsTv.
8142	//   "EXCHANGE_TELARIA" - Telaria.
8143	//   "EXCHANGE_TVN" - TVN.
8144	//   "EXCHANGE_UNITED" - United.
8145	//   "EXCHANGE_YIELDLAB" - Yieldlab.
8146	//   "EXCHANGE_YIELDMO" - Yieldmo.
8147	//   "EXCHANGE_UNRULYX" - UnrulyX.
8148	//   "EXCHANGE_OPEN8" - Open8.
8149	//   "EXCHANGE_TRITON" - Triton.
8150	//   "EXCHANGE_TRIPLELIFT" - TripleLift.
8151	//   "EXCHANGE_TABOOLA" - Taboola.
8152	//   "EXCHANGE_INMOBI" - InMobi.
8153	//   "EXCHANGE_SMAATO" - Smaato.
8154	//   "EXCHANGE_AJA" - Aja.
8155	//   "EXCHANGE_SUPERSHIP" - Supership.
8156	//   "EXCHANGE_NEXSTAR_DIGITAL" - Nexstar Digital.
8157	//   "EXCHANGE_WAZE" - Waze.
8158	//   "EXCHANGE_SOUNDCAST" - SoundCast.
8159	//   "EXCHANGE_SHARETHROUGH" - Sharethrough.
8160	Exchange string `json:"exchange,omitempty"`
8161
8162	// InventorySourceId: Output only. The unique ID of the inventory
8163	// source. Assigned by the system.
8164	InventorySourceId int64 `json:"inventorySourceId,omitempty,string"`
8165
8166	// InventorySourceType: Denotes the type of the inventory source.
8167	//
8168	// Possible values:
8169	//   "INVENTORY_SOURCE_TYPE_UNSPECIFIED" - The inventory source type is
8170	// not specified or is unknown in this version.
8171	//   "INVENTORY_SOURCE_TYPE_PRIVATE" - Private inventory source.
8172	//   "INVENTORY_SOURCE_TYPE_AUCTION_PACKAGE" - Auction package.
8173	InventorySourceType string `json:"inventorySourceType,omitempty"`
8174
8175	// Name: Output only. The resource name of the inventory source.
8176	Name string `json:"name,omitempty"`
8177
8178	// PublisherName: The publisher/seller name of the inventory source.
8179	PublisherName string `json:"publisherName,omitempty"`
8180
8181	// RateDetails: Required. The rate details of the inventory source.
8182	RateDetails *RateDetails `json:"rateDetails,omitempty"`
8183
8184	// Status: The status settings of the inventory source.
8185	Status *InventorySourceStatus `json:"status,omitempty"`
8186
8187	// TimeRange: The time range when this inventory source starts and stops
8188	// serving.
8189	TimeRange *TimeRange `json:"timeRange,omitempty"`
8190
8191	// UpdateTime: Output only. The timestamp when the inventory source was
8192	// last updated. Assigned by the system.
8193	UpdateTime string `json:"updateTime,omitempty"`
8194
8195	// ServerResponse contains the HTTP response code and headers from the
8196	// server.
8197	googleapi.ServerResponse `json:"-"`
8198
8199	// ForceSendFields is a list of field names (e.g. "Commitment") to
8200	// unconditionally include in API requests. By default, fields with
8201	// empty values are omitted from API requests. However, any non-pointer,
8202	// non-interface field appearing in ForceSendFields will be sent to the
8203	// server regardless of whether the field is empty or not. This may be
8204	// used to include empty fields in Patch requests.
8205	ForceSendFields []string `json:"-"`
8206
8207	// NullFields is a list of field names (e.g. "Commitment") to include in
8208	// API requests with the JSON null value. By default, fields with empty
8209	// values are omitted from API requests. However, any field with an
8210	// empty value appearing in NullFields will be sent to the server as
8211	// null. It is an error if a field in this list has a non-empty value.
8212	// This may be used to include null fields in Patch requests.
8213	NullFields []string `json:"-"`
8214}
8215
8216func (s *InventorySource) MarshalJSON() ([]byte, error) {
8217	type NoMethod InventorySource
8218	raw := NoMethod(*s)
8219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8220}
8221
8222// InventorySourceAssignedTargetingOptionDetails: Targeting details for
8223// inventory source. This will be populated in the details field of an
8224// AssignedTargetingOption when targeting_type is
8225// `TARGETING_TYPE_INVENTORY_SOURCE`.
8226type InventorySourceAssignedTargetingOptionDetails struct {
8227	// InventorySourceId: Required. ID of the inventory source. Should refer
8228	// to the inventory_source_id field of an InventorySource resource.
8229	InventorySourceId int64 `json:"inventorySourceId,omitempty,string"`
8230
8231	// ForceSendFields is a list of field names (e.g. "InventorySourceId")
8232	// to unconditionally include in API requests. By default, fields with
8233	// empty values are omitted from API requests. However, any non-pointer,
8234	// non-interface field appearing in ForceSendFields will be sent to the
8235	// server regardless of whether the field is empty or not. This may be
8236	// used to include empty fields in Patch requests.
8237	ForceSendFields []string `json:"-"`
8238
8239	// NullFields is a list of field names (e.g. "InventorySourceId") to
8240	// include in API requests with the JSON null value. By default, fields
8241	// with empty values are omitted from API requests. However, any field
8242	// with an empty value appearing in NullFields will be sent to the
8243	// server as null. It is an error if a field in this list has a
8244	// non-empty value. This may be used to include null fields in Patch
8245	// requests.
8246	NullFields []string `json:"-"`
8247}
8248
8249func (s *InventorySourceAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
8250	type NoMethod InventorySourceAssignedTargetingOptionDetails
8251	raw := NoMethod(*s)
8252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8253}
8254
8255// InventorySourceDisplayCreativeConfig: The configuration for display
8256// creatives.
8257type InventorySourceDisplayCreativeConfig struct {
8258	// CreativeSize: The size requirements for display creatives that can be
8259	// assigned to the inventory source.
8260	CreativeSize *Dimensions `json:"creativeSize,omitempty"`
8261
8262	// ForceSendFields is a list of field names (e.g. "CreativeSize") to
8263	// unconditionally include in API requests. By default, fields with
8264	// empty values are omitted from API requests. However, any non-pointer,
8265	// non-interface field appearing in ForceSendFields will be sent to the
8266	// server regardless of whether the field is empty or not. This may be
8267	// used to include empty fields in Patch requests.
8268	ForceSendFields []string `json:"-"`
8269
8270	// NullFields is a list of field names (e.g. "CreativeSize") to include
8271	// in API requests with the JSON null value. By default, fields with
8272	// empty values are omitted from API requests. However, any field with
8273	// an empty value appearing in NullFields will be sent to the server as
8274	// null. It is an error if a field in this list has a non-empty value.
8275	// This may be used to include null fields in Patch requests.
8276	NullFields []string `json:"-"`
8277}
8278
8279func (s *InventorySourceDisplayCreativeConfig) MarshalJSON() ([]byte, error) {
8280	type NoMethod InventorySourceDisplayCreativeConfig
8281	raw := NoMethod(*s)
8282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8283}
8284
8285// InventorySourceFilter: A filtering option for filtering on Inventory
8286// Source entities.
8287type InventorySourceFilter struct {
8288	// InventorySourceIds: Inventory Sources to download by ID. All IDs must
8289	// belong to the same Advertiser or Partner specified in
8290	// CreateSdfDownloadTaskRequest. Leave empty to download all Inventory
8291	// Sources for the selected Advertiser or Partner.
8292	InventorySourceIds googleapi.Int64s `json:"inventorySourceIds,omitempty"`
8293
8294	// ForceSendFields is a list of field names (e.g. "InventorySourceIds")
8295	// to unconditionally include in API requests. By default, fields with
8296	// empty values are omitted from API requests. However, any non-pointer,
8297	// non-interface field appearing in ForceSendFields will be sent to the
8298	// server regardless of whether the field is empty or not. This may be
8299	// used to include empty fields in Patch requests.
8300	ForceSendFields []string `json:"-"`
8301
8302	// NullFields is a list of field names (e.g. "InventorySourceIds") to
8303	// include in API requests with the JSON null value. By default, fields
8304	// with empty values are omitted from API requests. However, any field
8305	// with an empty value appearing in NullFields will be sent to the
8306	// server as null. It is an error if a field in this list has a
8307	// non-empty value. This may be used to include null fields in Patch
8308	// requests.
8309	NullFields []string `json:"-"`
8310}
8311
8312func (s *InventorySourceFilter) MarshalJSON() ([]byte, error) {
8313	type NoMethod InventorySourceFilter
8314	raw := NoMethod(*s)
8315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8316}
8317
8318// InventorySourceGroup: A collection of targetable inventory sources.
8319type InventorySourceGroup struct {
8320	// DisplayName: Required. The display name of the inventory source
8321	// group. Must be UTF-8 encoded with a maximum size of 240 bytes.
8322	DisplayName string `json:"displayName,omitempty"`
8323
8324	// InventorySourceGroupId: Output only. The unique ID of the inventory
8325	// source group. Assigned by the system.
8326	InventorySourceGroupId int64 `json:"inventorySourceGroupId,omitempty,string"`
8327
8328	// Name: Output only. The resource name of the inventory source group.
8329	Name string `json:"name,omitempty"`
8330
8331	// ServerResponse contains the HTTP response code and headers from the
8332	// server.
8333	googleapi.ServerResponse `json:"-"`
8334
8335	// ForceSendFields is a list of field names (e.g. "DisplayName") to
8336	// unconditionally include in API requests. By default, fields with
8337	// empty values are omitted from API requests. However, any non-pointer,
8338	// non-interface field appearing in ForceSendFields will be sent to the
8339	// server regardless of whether the field is empty or not. This may be
8340	// used to include empty fields in Patch requests.
8341	ForceSendFields []string `json:"-"`
8342
8343	// NullFields is a list of field names (e.g. "DisplayName") to include
8344	// in API requests with the JSON null value. By default, fields with
8345	// empty values are omitted from API requests. However, any field with
8346	// an empty value appearing in NullFields will be sent to the server as
8347	// null. It is an error if a field in this list has a non-empty value.
8348	// This may be used to include null fields in Patch requests.
8349	NullFields []string `json:"-"`
8350}
8351
8352func (s *InventorySourceGroup) MarshalJSON() ([]byte, error) {
8353	type NoMethod InventorySourceGroup
8354	raw := NoMethod(*s)
8355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8356}
8357
8358// InventorySourceGroupAssignedTargetingOptionDetails: Targeting details
8359// for inventory source group. This will be populated in the details
8360// field of an AssignedTargetingOption when targeting_type is
8361// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`.
8362type InventorySourceGroupAssignedTargetingOptionDetails struct {
8363	// InventorySourceGroupId: Required. ID of the inventory source group.
8364	// Should refer to the inventory_source_group_id field of an
8365	// InventorySourceGroup resource.
8366	InventorySourceGroupId int64 `json:"inventorySourceGroupId,omitempty,string"`
8367
8368	// ForceSendFields is a list of field names (e.g.
8369	// "InventorySourceGroupId") to unconditionally include in API requests.
8370	// By default, fields with empty values are omitted from API requests.
8371	// However, any non-pointer, non-interface field appearing in
8372	// ForceSendFields will be sent to the server regardless of whether the
8373	// field is empty or not. This may be used to include empty fields in
8374	// Patch requests.
8375	ForceSendFields []string `json:"-"`
8376
8377	// NullFields is a list of field names (e.g. "InventorySourceGroupId")
8378	// to include in API requests with the JSON null value. By default,
8379	// fields with empty values are omitted from API requests. However, any
8380	// field with an empty value appearing in NullFields will be sent to the
8381	// server as null. It is an error if a field in this list has a
8382	// non-empty value. This may be used to include null fields in Patch
8383	// requests.
8384	NullFields []string `json:"-"`
8385}
8386
8387func (s *InventorySourceGroupAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
8388	type NoMethod InventorySourceGroupAssignedTargetingOptionDetails
8389	raw := NoMethod(*s)
8390	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8391}
8392
8393// InventorySourceStatus: The status related settings of the inventory
8394// source.
8395type InventorySourceStatus struct {
8396	// ConfigStatus: Output only. The configuration status of the inventory
8397	// source. Only applicable for guaranteed inventory sources. Acceptable
8398	// values are `INVENTORY_SOURCE_CONFIG_STATUS_PENDING` and
8399	// `INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED`. An inventory source must
8400	// be configured (fill in the required fields, choose creatives, and
8401	// select a default campaign) before it can serve.
8402	//
8403	// Possible values:
8404	//   "INVENTORY_SOURCE_CONFIG_STATUS_UNSPECIFIED" - The approval status
8405	// is not specified or is unknown in this version.
8406	//   "INVENTORY_SOURCE_CONFIG_STATUS_PENDING" - The beginning state of a
8407	// guaranteed inventory source. The inventory source in this state needs
8408	// to be configured.
8409	//   "INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED" - The state after the
8410	// buyer configures a guaranteed inventory source.
8411	ConfigStatus string `json:"configStatus,omitempty"`
8412
8413	// EntityPauseReason: The user-provided reason for pausing this
8414	// inventory source. Must not exceed 100 characters. Only applicable
8415	// when entity_status is set to `ENTITY_STATUS_PAUSED`.
8416	EntityPauseReason string `json:"entityPauseReason,omitempty"`
8417
8418	// EntityStatus: Whether or not the inventory source is servable.
8419	// Acceptable values are `ENTITY_STATUS_ACTIVE`,
8420	// `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. Default value
8421	// is `ENTITY_STATUS_ACTIVE`.
8422	//
8423	// Possible values:
8424	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
8425	// specified or is unknown in this version.
8426	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
8427	// budget.
8428	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
8429	// budget spending are disabled. An entity can be deleted after
8430	// archived. Deleted entities cannot be retrieved.
8431	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
8432	// budget spending are disabled.
8433	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
8434	// the entity.
8435	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
8436	// for deletion.
8437	EntityStatus string `json:"entityStatus,omitempty"`
8438
8439	// SellerPauseReason: Output only. The seller-provided reason for
8440	// pausing this inventory source. Only applicable for inventory sources
8441	// synced directly from the publishers and when seller_status is set to
8442	// `ENTITY_STATUS_PAUSED`.
8443	SellerPauseReason string `json:"sellerPauseReason,omitempty"`
8444
8445	// SellerStatus: Output only. The status set by the seller for the
8446	// inventory source. Only applicable for inventory sources synced
8447	// directly from the publishers. Acceptable values are
8448	// `ENTITY_STATUS_ACTIVE` and `ENTITY_STATUS_PAUSED`.
8449	//
8450	// Possible values:
8451	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
8452	// specified or is unknown in this version.
8453	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
8454	// budget.
8455	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
8456	// budget spending are disabled. An entity can be deleted after
8457	// archived. Deleted entities cannot be retrieved.
8458	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
8459	// budget spending are disabled.
8460	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
8461	// the entity.
8462	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
8463	// for deletion.
8464	SellerStatus string `json:"sellerStatus,omitempty"`
8465
8466	// ForceSendFields is a list of field names (e.g. "ConfigStatus") to
8467	// unconditionally include in API requests. By default, fields with
8468	// empty values are omitted from API requests. However, any non-pointer,
8469	// non-interface field appearing in ForceSendFields will be sent to the
8470	// server regardless of whether the field is empty or not. This may be
8471	// used to include empty fields in Patch requests.
8472	ForceSendFields []string `json:"-"`
8473
8474	// NullFields is a list of field names (e.g. "ConfigStatus") to include
8475	// in API requests with the JSON null value. By default, fields with
8476	// empty values are omitted from API requests. However, any field with
8477	// an empty value appearing in NullFields will be sent to the server as
8478	// null. It is an error if a field in this list has a non-empty value.
8479	// This may be used to include null fields in Patch requests.
8480	NullFields []string `json:"-"`
8481}
8482
8483func (s *InventorySourceStatus) MarshalJSON() ([]byte, error) {
8484	type NoMethod InventorySourceStatus
8485	raw := NoMethod(*s)
8486	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8487}
8488
8489// InventorySourceVideoCreativeConfig: The configuration for video
8490// creatives.
8491type InventorySourceVideoCreativeConfig struct {
8492	// Duration: The duration requirements for the video creatives that can
8493	// be assigned to the inventory source.
8494	Duration string `json:"duration,omitempty"`
8495
8496	// ForceSendFields is a list of field names (e.g. "Duration") to
8497	// unconditionally include in API requests. By default, fields with
8498	// empty values are omitted from API requests. However, any non-pointer,
8499	// non-interface field appearing in ForceSendFields will be sent to the
8500	// server regardless of whether the field is empty or not. This may be
8501	// used to include empty fields in Patch requests.
8502	ForceSendFields []string `json:"-"`
8503
8504	// NullFields is a list of field names (e.g. "Duration") to include in
8505	// API requests with the JSON null value. By default, fields with empty
8506	// values are omitted from API requests. However, any field with an
8507	// empty value appearing in NullFields will be sent to the server as
8508	// null. It is an error if a field in this list has a non-empty value.
8509	// This may be used to include null fields in Patch requests.
8510	NullFields []string `json:"-"`
8511}
8512
8513func (s *InventorySourceVideoCreativeConfig) MarshalJSON() ([]byte, error) {
8514	type NoMethod InventorySourceVideoCreativeConfig
8515	raw := NoMethod(*s)
8516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8517}
8518
8519// KeywordAssignedTargetingOptionDetails: Details for assigned keyword
8520// targeting option. This will be populated in the details field of an
8521// AssignedTargetingOption when targeting_type is
8522// `TARGETING_TYPE_KEYWORD`.
8523type KeywordAssignedTargetingOptionDetails struct {
8524	// Keyword: Required. The keyword, for example `car insurance`. Positive
8525	// keyword cannot be offensive word. Must be UTF-8 encoded with a
8526	// maximum size of 255 bytes. Maximum number of characters is 80.
8527	// Maximum number of words is 10.
8528	Keyword string `json:"keyword,omitempty"`
8529
8530	// Negative: Indicates if this option is being negatively targeted.
8531	Negative bool `json:"negative,omitempty"`
8532
8533	// ForceSendFields is a list of field names (e.g. "Keyword") to
8534	// unconditionally include in API requests. By default, fields with
8535	// empty values are omitted from API requests. However, any non-pointer,
8536	// non-interface field appearing in ForceSendFields will be sent to the
8537	// server regardless of whether the field is empty or not. This may be
8538	// used to include empty fields in Patch requests.
8539	ForceSendFields []string `json:"-"`
8540
8541	// NullFields is a list of field names (e.g. "Keyword") to include in
8542	// API requests with the JSON null value. By default, fields with empty
8543	// values are omitted from API requests. However, any field with an
8544	// empty value appearing in NullFields will be sent to the server as
8545	// null. It is an error if a field in this list has a non-empty value.
8546	// This may be used to include null fields in Patch requests.
8547	NullFields []string `json:"-"`
8548}
8549
8550func (s *KeywordAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
8551	type NoMethod KeywordAssignedTargetingOptionDetails
8552	raw := NoMethod(*s)
8553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8554}
8555
8556// LanguageAssignedTargetingOptionDetails: Details for assigned language
8557// targeting option. This will be populated in the details field of an
8558// AssignedTargetingOption when targeting_type is
8559// `TARGETING_TYPE_LANGUAGE`.
8560type LanguageAssignedTargetingOptionDetails struct {
8561	// DisplayName: Output only. The display name of the language (e.g.,
8562	// "French").
8563	DisplayName string `json:"displayName,omitempty"`
8564
8565	// Negative: Indicates if this option is being negatively targeted. All
8566	// assigned language targeting options on the same resource must have
8567	// the same value for this field.
8568	Negative bool `json:"negative,omitempty"`
8569
8570	// TargetingOptionId: Required. The targeting_option_id of a
8571	// TargetingOption of type `TARGETING_TYPE_LANGUAGE`.
8572	TargetingOptionId string `json:"targetingOptionId,omitempty"`
8573
8574	// ForceSendFields is a list of field names (e.g. "DisplayName") to
8575	// unconditionally include in API requests. By default, fields with
8576	// empty values are omitted from API requests. However, any non-pointer,
8577	// non-interface field appearing in ForceSendFields will be sent to the
8578	// server regardless of whether the field is empty or not. This may be
8579	// used to include empty fields in Patch requests.
8580	ForceSendFields []string `json:"-"`
8581
8582	// NullFields is a list of field names (e.g. "DisplayName") to include
8583	// in API requests with the JSON null value. By default, fields with
8584	// empty values are omitted from API requests. However, any field with
8585	// an empty value appearing in NullFields will be sent to the server as
8586	// null. It is an error if a field in this list has a non-empty value.
8587	// This may be used to include null fields in Patch requests.
8588	NullFields []string `json:"-"`
8589}
8590
8591func (s *LanguageAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
8592	type NoMethod LanguageAssignedTargetingOptionDetails
8593	raw := NoMethod(*s)
8594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8595}
8596
8597// LanguageTargetingOptionDetails: Represents a targetable language.
8598// This will be populated in the language_details field when
8599// targeting_type is `TARGETING_TYPE_LANGUAGE`.
8600type LanguageTargetingOptionDetails struct {
8601	// DisplayName: Output only. The display name of the language (e.g.,
8602	// "French").
8603	DisplayName string `json:"displayName,omitempty"`
8604
8605	// ForceSendFields is a list of field names (e.g. "DisplayName") to
8606	// unconditionally include in API requests. By default, fields with
8607	// empty values are omitted from API requests. However, any non-pointer,
8608	// non-interface field appearing in ForceSendFields will be sent to the
8609	// server regardless of whether the field is empty or not. This may be
8610	// used to include empty fields in Patch requests.
8611	ForceSendFields []string `json:"-"`
8612
8613	// NullFields is a list of field names (e.g. "DisplayName") to include
8614	// in API requests with the JSON null value. By default, fields with
8615	// empty values are omitted from API requests. However, any field with
8616	// an empty value appearing in NullFields will be sent to the server as
8617	// null. It is an error if a field in this list has a non-empty value.
8618	// This may be used to include null fields in Patch requests.
8619	NullFields []string `json:"-"`
8620}
8621
8622func (s *LanguageTargetingOptionDetails) MarshalJSON() ([]byte, error) {
8623	type NoMethod LanguageTargetingOptionDetails
8624	raw := NoMethod(*s)
8625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8626}
8627
8628// LineItem: A single line item.
8629type LineItem struct {
8630	// AdvertiserId: Output only. The unique ID of the advertiser the line
8631	// item belongs to.
8632	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
8633
8634	// BidStrategy: Required. The bidding strategy of the line item.
8635	BidStrategy *BiddingStrategy `json:"bidStrategy,omitempty"`
8636
8637	// Budget: Required. The budget allocation setting of the line item.
8638	Budget *LineItemBudget `json:"budget,omitempty"`
8639
8640	// CampaignId: Output only. The unique ID of the campaign that the line
8641	// item belongs to.
8642	CampaignId int64 `json:"campaignId,omitempty,string"`
8643
8644	// ConversionCounting: The conversion tracking setting of the line item.
8645	ConversionCounting *ConversionCountingConfig `json:"conversionCounting,omitempty"`
8646
8647	// CreativeIds: The IDs of the creatives associated with the line item.
8648	CreativeIds googleapi.Int64s `json:"creativeIds,omitempty"`
8649
8650	// DisplayName: Required. The display name of the line item. Must be
8651	// UTF-8 encoded with a maximum size of 240 bytes.
8652	DisplayName string `json:"displayName,omitempty"`
8653
8654	// EntityStatus: Required. Controls whether or not the line item can
8655	// spend its budget and bid on inventory. * For CreateLineItem method,
8656	// only `ENTITY_STATUS_DRAFT` is allowed. To activate a line item, use
8657	// UpdateLineItem method and update the status to `ENTITY_STATUS_ACTIVE`
8658	// after creation. * A line item cannot be changed back to
8659	// `ENTITY_STATUS_DRAFT` status from any other status. * If the line
8660	// item's parent insertion order is not active, the line item can't
8661	// spend its budget even if its own status is `ENTITY_STATUS_ACTIVE`.
8662	//
8663	// Possible values:
8664	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
8665	// specified or is unknown in this version.
8666	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
8667	// budget.
8668	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
8669	// budget spending are disabled. An entity can be deleted after
8670	// archived. Deleted entities cannot be retrieved.
8671	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
8672	// budget spending are disabled.
8673	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
8674	// the entity.
8675	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
8676	// for deletion.
8677	EntityStatus string `json:"entityStatus,omitempty"`
8678
8679	// Flight: Required. The start and end time of the line item's flight.
8680	Flight *LineItemFlight `json:"flight,omitempty"`
8681
8682	// FrequencyCap: Required. The frequency capping setting of the line
8683	// item.
8684	FrequencyCap *FrequencyCap `json:"frequencyCap,omitempty"`
8685
8686	// InsertionOrderId: Required. Immutable. The unique ID of the insertion
8687	// order that the line item belongs to.
8688	InsertionOrderId int64 `json:"insertionOrderId,omitempty,string"`
8689
8690	// IntegrationDetails: Integration details of the line item.
8691	IntegrationDetails *IntegrationDetails `json:"integrationDetails,omitempty"`
8692
8693	// InventorySourceIds: The IDs of the private inventory sources assigned
8694	// to the line item.
8695	InventorySourceIds googleapi.Int64s `json:"inventorySourceIds,omitempty"`
8696
8697	// LineItemId: Output only. The unique ID of the line item. Assigned by
8698	// the system.
8699	LineItemId int64 `json:"lineItemId,omitempty,string"`
8700
8701	// LineItemType: Required. Immutable. The type of the line item.
8702	//
8703	// Possible values:
8704	//   "LINE_ITEM_TYPE_UNSPECIFIED" - Type value is not specified or is
8705	// unknown in this version.
8706	//   "LINE_ITEM_TYPE_DISPLAY_DEFAULT" - Image, HTML5, native, or rich
8707	// media ads.
8708	//   "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL" - Display ads that
8709	// drive installs of an app.
8710	//   "LINE_ITEM_TYPE_VIDEO_DEFAULT" - Video ads sold on a CPM basis for
8711	// a variety of environments.
8712	//   "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL" - Video ads that drive
8713	// installs of an app.
8714	//   "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INVENTORY" - Display ads served
8715	// on mobile app inventory.
8716	//   "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INVENTORY" - Video ads served on
8717	// mobile app inventory.
8718	//   "LINE_ITEM_TYPE_AUDIO_DEFAULT" - RTB Audio ads sold for a variety
8719	// of environments.
8720	//   "LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP" - Over-the-top ads present in
8721	// OTT insertion orders. This type is only applicable to line items with
8722	// an insertion order of insertion_order_type `OVER_THE_TOP`.
8723	LineItemType string `json:"lineItemType,omitempty"`
8724
8725	// MobileApp: The mobile app promoted by the line item. This is
8726	// applicable only when line_item_type is either
8727	// `LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL` or
8728	// `LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL`.
8729	MobileApp *MobileApp `json:"mobileApp,omitempty"`
8730
8731	// Name: Output only. The resource name of the line item.
8732	Name string `json:"name,omitempty"`
8733
8734	// Pacing: Required. The budget spending speed setting of the line item.
8735	Pacing *Pacing `json:"pacing,omitempty"`
8736
8737	// PartnerCosts: The partner costs associated with the line item. If
8738	// absent or empty in CreateLineItem method, the newly created line item
8739	// will inherit partner costs from its parent insertion order.
8740	PartnerCosts []*PartnerCost `json:"partnerCosts,omitempty"`
8741
8742	// PartnerRevenueModel: Required. The partner revenue model setting of
8743	// the line item.
8744	PartnerRevenueModel *PartnerRevenueModel `json:"partnerRevenueModel,omitempty"`
8745
8746	// TargetingExpansion: The targeting expansion
8747	// (https://support.google.com/displayvideo/answer/10191558) settings of
8748	// the line item. This config is only applicable when eligible audience
8749	// list targeting is assigned to the line item.
8750	TargetingExpansion *TargetingExpansionConfig `json:"targetingExpansion,omitempty"`
8751
8752	// UpdateTime: Output only. The timestamp when the line item was last
8753	// updated. Assigned by the system.
8754	UpdateTime string `json:"updateTime,omitempty"`
8755
8756	// WarningMessages: Output only. The warning messages generated by the
8757	// line item. These warnings do not block saving the line item, but some
8758	// may block the line item from running.
8759	//
8760	// Possible values:
8761	//   "LINE_ITEM_WARNING_MESSAGE_UNSPECIFIED" - Not specified or is
8762	// unknown.
8763	//   "INVALID_FLIGHT_DATES" - This line item has invalid flight dates.
8764	// The line item will not run.
8765	//   "EXPIRED" - This line item's end date is in the past.
8766	//   "PENDING_FLIGHT" - This line item will begin running in the future.
8767	//   "ALL_PARTNER_ENABLED_EXCHANGES_NEGATIVELY_TARGETED" - All partner
8768	// enabled exchanges are negatively targeted. The line item will not
8769	// run.
8770	//   "INVALID_INVENTORY_SOURCE" - No active inventory sources are being
8771	// targeted. The line item will not run.
8772	//   "APP_INVENTORY_INVALID_SITE_TARGETING" - This line item's Apps &
8773	// URLs targeting doesn't include any mobile apps. This line item's type
8774	// requires you to include mobile apps in your channel, sitelist, or
8775	// apps targeting. The line item will not run.
8776	//   "APP_INVENTORY_INVALID_AUDIENCE_LISTS" - This line item isn't
8777	// targeting any mobile users. This line item's type requires you to
8778	// target a user list with mobile users. The line item will not run.
8779	//   "NO_VALID_CREATIVE" - This line item does not contain any valid
8780	// creative. The line item will not run.
8781	//   "PARENT_INSERTION_ORDER_PAUSED" - The insertion order of this line
8782	// item is paused. The line item will not run.
8783	//   "PARENT_INSERTION_ORDER_EXPIRED" - The insertion order of this line
8784	// item has its end date set in the past. The line item will not run.
8785	//   "NO_POSITIVE_AUDIENCE_LIST_TARGETED" - This line item does not
8786	// target any audience lists, which may result in spending your budget
8787	// too quickly.
8788	//   "APP_INSTALL_NO_CONVERSION_PIXEL" - This app install line item does
8789	// not have any conversion pixel set up.
8790	//   "TARGETING_REVOKED_OR_CLOSED_USER_LIST" - This line item targets
8791	// one or more user lists that are no longer available. In the future,
8792	// this will prevent the line item from serving, so consider removing
8793	// these lists from your targeting.
8794	//   "APP_INSTALL_NO_OPTIMAL_BIDDING_STRATEGY" - This app install line
8795	// item does not have an optimal bidding strategy.
8796	//   "CREATIVE_SIZE_NOT_IN_USE_FOR_TARGETED_DEALS" - Deals targeted by
8797	// this line item accept creative sizes which are not in use. This may
8798	// limit the line item's delivery or performance.
8799	//   "NO_CREATIVE_FOR_TARGETED_DEALS" - This line item does not contain
8800	// any creative for the targeted deals.
8801	//   "TARGETING_DEPRECATED_GEO_TARGET" - This line item targets a geo
8802	// target that is deprecated.
8803	WarningMessages []string `json:"warningMessages,omitempty"`
8804
8805	// ServerResponse contains the HTTP response code and headers from the
8806	// server.
8807	googleapi.ServerResponse `json:"-"`
8808
8809	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
8810	// unconditionally include in API requests. By default, fields with
8811	// empty values are omitted from API requests. However, any non-pointer,
8812	// non-interface field appearing in ForceSendFields will be sent to the
8813	// server regardless of whether the field is empty or not. This may be
8814	// used to include empty fields in Patch requests.
8815	ForceSendFields []string `json:"-"`
8816
8817	// NullFields is a list of field names (e.g. "AdvertiserId") to include
8818	// in API requests with the JSON null value. By default, fields with
8819	// empty values are omitted from API requests. However, any field with
8820	// an empty value appearing in NullFields will be sent to the server as
8821	// null. It is an error if a field in this list has a non-empty value.
8822	// This may be used to include null fields in Patch requests.
8823	NullFields []string `json:"-"`
8824}
8825
8826func (s *LineItem) MarshalJSON() ([]byte, error) {
8827	type NoMethod LineItem
8828	raw := NoMethod(*s)
8829	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8830}
8831
8832// LineItemBudget: Settings that control how budget is allocated.
8833type LineItemBudget struct {
8834	// BudgetAllocationType: Required. The type of the budget allocation.
8835	// `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC` is only applicable when
8836	// automatic budget allocation is enabled for the parent insertion
8837	// order.
8838	//
8839	// Possible values:
8840	//   "LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNSPECIFIED" - Type value is not
8841	// specified or is unknown in this version.
8842	//   "LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC" - Automatic budget
8843	// allocation is enabled for the line item.
8844	//   "LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED" - A fixed max budget
8845	// amount is allocated for the line item.
8846	//   "LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED" - No budget limit is
8847	// applied to the line item.
8848	BudgetAllocationType string `json:"budgetAllocationType,omitempty"`
8849
8850	// BudgetUnit: Output only. The budget unit specifies whether the budget
8851	// is currency based or impression based. This value is inherited from
8852	// the parent insertion order.
8853	//
8854	// Possible values:
8855	//   "BUDGET_UNIT_UNSPECIFIED" - Type value is not specified or is
8856	// unknown in this version.
8857	//   "BUDGET_UNIT_CURRENCY" - Budgeting in currency amounts.
8858	//   "BUDGET_UNIT_IMPRESSIONS" - Budgeting in impression amounts.
8859	BudgetUnit string `json:"budgetUnit,omitempty"`
8860
8861	// MaxAmount: The maximum budget amount the line item will spend. Must
8862	// be greater than 0. When budget_allocation_type is: *
8863	// `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC`, this field is immutable
8864	// and is set by the system. * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED`,
8865	// if budget_unit is: - `BUDGET_UNIT_CURRENCY`, this field represents
8866	// maximum budget amount to spend, in micros of the advertiser's
8867	// currency. For example, 1500000 represents 1.5 standard units of the
8868	// currency. - `BUDGET_UNIT_IMPRESSIONS`, this field represents the
8869	// maximum number of impressions to serve. *
8870	// `LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED`, this field is not
8871	// applicable and will be ignored by the system.
8872	MaxAmount int64 `json:"maxAmount,omitempty,string"`
8873
8874	// ForceSendFields is a list of field names (e.g.
8875	// "BudgetAllocationType") to unconditionally include in API requests.
8876	// By default, fields with empty values are omitted from API requests.
8877	// However, any non-pointer, non-interface field appearing in
8878	// ForceSendFields will be sent to the server regardless of whether the
8879	// field is empty or not. This may be used to include empty fields in
8880	// Patch requests.
8881	ForceSendFields []string `json:"-"`
8882
8883	// NullFields is a list of field names (e.g. "BudgetAllocationType") to
8884	// include in API requests with the JSON null value. By default, fields
8885	// with empty values are omitted from API requests. However, any field
8886	// with an empty value appearing in NullFields will be sent to the
8887	// server as null. It is an error if a field in this list has a
8888	// non-empty value. This may be used to include null fields in Patch
8889	// requests.
8890	NullFields []string `json:"-"`
8891}
8892
8893func (s *LineItemBudget) MarshalJSON() ([]byte, error) {
8894	type NoMethod LineItemBudget
8895	raw := NoMethod(*s)
8896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8897}
8898
8899// LineItemFlight: Settings that control the active duration of a line
8900// item.
8901type LineItemFlight struct {
8902	// DateRange: The flight start and end dates of the line item. They are
8903	// resolved relative to the parent advertiser's time zone. * Required
8904	// when flight_date_type is `LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM`. Output
8905	// only otherwise. * When creating a new flight, both `start_date` and
8906	// `end_date` must be in the future. * An existing flight with a
8907	// `start_date` in the past has a mutable `end_date` but an immutable
8908	// `start_date`. * `end_date` must be the `start_date` or later, both
8909	// before the year 2037.
8910	DateRange *DateRange `json:"dateRange,omitempty"`
8911
8912	// FlightDateType: Required. The type of the line item's flight dates.
8913	//
8914	// Possible values:
8915	//   "LINE_ITEM_FLIGHT_DATE_TYPE_UNSPECIFIED" - Type value is not
8916	// specified or is unknown in this version.
8917	//   "LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED" - The line item's flight
8918	// dates are inherited from its parent insertion order.
8919	//   "LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM" - The line item uses its own
8920	// custom flight dates.
8921	//   "LINE_ITEM_FLIGHT_DATE_TYPE_TRIGGER" - The line item uses a
8922	// trigger.
8923	FlightDateType string `json:"flightDateType,omitempty"`
8924
8925	// TriggerId: The ID of the manual trigger associated with the line
8926	// item. * Required when flight_date_type is
8927	// `LINE_ITEM_FLIGHT_DATE_TYPE_TRIGGER`. Must not be set otherwise. *
8928	// When set, the line item's flight dates are inherited from its parent
8929	// insertion order. * Active line items will spend when the selected
8930	// trigger is activated within the parent insertion order's flight
8931	// dates.
8932	TriggerId int64 `json:"triggerId,omitempty,string"`
8933
8934	// ForceSendFields is a list of field names (e.g. "DateRange") to
8935	// unconditionally include in API requests. By default, fields with
8936	// empty values are omitted from API requests. However, any non-pointer,
8937	// non-interface field appearing in ForceSendFields will be sent to the
8938	// server regardless of whether the field is empty or not. This may be
8939	// used to include empty fields in Patch requests.
8940	ForceSendFields []string `json:"-"`
8941
8942	// NullFields is a list of field names (e.g. "DateRange") to include in
8943	// API requests with the JSON null value. By default, fields with empty
8944	// values are omitted from API requests. However, any field with an
8945	// empty value appearing in NullFields will be sent to the server as
8946	// null. It is an error if a field in this list has a non-empty value.
8947	// This may be used to include null fields in Patch requests.
8948	NullFields []string `json:"-"`
8949}
8950
8951func (s *LineItemFlight) MarshalJSON() ([]byte, error) {
8952	type NoMethod LineItemFlight
8953	raw := NoMethod(*s)
8954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8955}
8956
8957// ListAdvertiserAssignedTargetingOptionsResponse: Response message for
8958// ListAdvertiserAssignedTargetingOptions.
8959type ListAdvertiserAssignedTargetingOptionsResponse struct {
8960	// AssignedTargetingOptions: The list of assigned targeting options.
8961	// This list will be absent if empty.
8962	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
8963
8964	// NextPageToken: A token identifying the next page of results. This
8965	// value should be specified as the pageToken in a subsequent
8966	// ListAdvertiserAssignedTargetingOptionsRequest to fetch the next page
8967	// of results. This token will be absent if there are no more
8968	// assigned_targeting_options to return.
8969	NextPageToken string `json:"nextPageToken,omitempty"`
8970
8971	// ServerResponse contains the HTTP response code and headers from the
8972	// server.
8973	googleapi.ServerResponse `json:"-"`
8974
8975	// ForceSendFields is a list of field names (e.g.
8976	// "AssignedTargetingOptions") to unconditionally include in API
8977	// requests. By default, fields with empty values are omitted from API
8978	// requests. However, any non-pointer, non-interface field appearing in
8979	// ForceSendFields will be sent to the server regardless of whether the
8980	// field is empty or not. This may be used to include empty fields in
8981	// Patch requests.
8982	ForceSendFields []string `json:"-"`
8983
8984	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
8985	// to include in API requests with the JSON null value. By default,
8986	// fields with empty values are omitted from API requests. However, any
8987	// field with an empty value appearing in NullFields will be sent to the
8988	// server as null. It is an error if a field in this list has a
8989	// non-empty value. This may be used to include null fields in Patch
8990	// requests.
8991	NullFields []string `json:"-"`
8992}
8993
8994func (s *ListAdvertiserAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
8995	type NoMethod ListAdvertiserAssignedTargetingOptionsResponse
8996	raw := NoMethod(*s)
8997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8998}
8999
9000type ListAdvertisersResponse struct {
9001	// Advertisers: The list of advertisers. This list will be absent if
9002	// empty.
9003	Advertisers []*Advertiser `json:"advertisers,omitempty"`
9004
9005	// NextPageToken: A token to retrieve the next page of results. Pass
9006	// this value in the page_token field in the subsequent call to
9007	// `ListAdvertisers` method to retrieve the next page of results.
9008	NextPageToken string `json:"nextPageToken,omitempty"`
9009
9010	// ServerResponse contains the HTTP response code and headers from the
9011	// server.
9012	googleapi.ServerResponse `json:"-"`
9013
9014	// ForceSendFields is a list of field names (e.g. "Advertisers") to
9015	// unconditionally include in API requests. By default, fields with
9016	// empty values are omitted from API requests. However, any non-pointer,
9017	// non-interface field appearing in ForceSendFields will be sent to the
9018	// server regardless of whether the field is empty or not. This may be
9019	// used to include empty fields in Patch requests.
9020	ForceSendFields []string `json:"-"`
9021
9022	// NullFields is a list of field names (e.g. "Advertisers") to include
9023	// in API requests with the JSON null value. By default, fields with
9024	// empty values are omitted from API requests. However, any field with
9025	// an empty value appearing in NullFields will be sent to the server as
9026	// null. It is an error if a field in this list has a non-empty value.
9027	// This may be used to include null fields in Patch requests.
9028	NullFields []string `json:"-"`
9029}
9030
9031func (s *ListAdvertisersResponse) MarshalJSON() ([]byte, error) {
9032	type NoMethod ListAdvertisersResponse
9033	raw := NoMethod(*s)
9034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9035}
9036
9037// ListAssignedInventorySourcesResponse: Response message for
9038// AssignedInventorySourceService.ListAssignedInventorySources.
9039type ListAssignedInventorySourcesResponse struct {
9040	// AssignedInventorySources: The list of assigned inventory sources.
9041	// This list will be absent if empty.
9042	AssignedInventorySources []*AssignedInventorySource `json:"assignedInventorySources,omitempty"`
9043
9044	// NextPageToken: A token to retrieve the next page of results. Pass
9045	// this value in the page_token field in the subsequent call to
9046	// `ListAssignedInventorySources` method to retrieve the next page of
9047	// results.
9048	NextPageToken string `json:"nextPageToken,omitempty"`
9049
9050	// ServerResponse contains the HTTP response code and headers from the
9051	// server.
9052	googleapi.ServerResponse `json:"-"`
9053
9054	// ForceSendFields is a list of field names (e.g.
9055	// "AssignedInventorySources") to unconditionally include in API
9056	// requests. By default, fields with empty values are omitted from API
9057	// requests. However, any non-pointer, non-interface field appearing in
9058	// ForceSendFields will be sent to the server regardless of whether the
9059	// field is empty or not. This may be used to include empty fields in
9060	// Patch requests.
9061	ForceSendFields []string `json:"-"`
9062
9063	// NullFields is a list of field names (e.g. "AssignedInventorySources")
9064	// to include in API requests with the JSON null value. By default,
9065	// fields with empty values are omitted from API requests. However, any
9066	// field with an empty value appearing in NullFields will be sent to the
9067	// server as null. It is an error if a field in this list has a
9068	// non-empty value. This may be used to include null fields in Patch
9069	// requests.
9070	NullFields []string `json:"-"`
9071}
9072
9073func (s *ListAssignedInventorySourcesResponse) MarshalJSON() ([]byte, error) {
9074	type NoMethod ListAssignedInventorySourcesResponse
9075	raw := NoMethod(*s)
9076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9077}
9078
9079// ListAssignedLocationsResponse: Response message for
9080// AssignedLocationService.ListAssignedLocations.
9081type ListAssignedLocationsResponse struct {
9082	// AssignedLocations: The list of assigned locations. This list will be
9083	// absent if empty.
9084	AssignedLocations []*AssignedLocation `json:"assignedLocations,omitempty"`
9085
9086	// NextPageToken: A token to retrieve the next page of results. Pass
9087	// this value in the page_token field in the subsequent call to
9088	// `ListAssignedLocations` method to retrieve the next page of results.
9089	NextPageToken string `json:"nextPageToken,omitempty"`
9090
9091	// ServerResponse contains the HTTP response code and headers from the
9092	// server.
9093	googleapi.ServerResponse `json:"-"`
9094
9095	// ForceSendFields is a list of field names (e.g. "AssignedLocations")
9096	// to unconditionally include in API requests. By default, fields with
9097	// empty values are omitted from API requests. However, any non-pointer,
9098	// non-interface field appearing in ForceSendFields will be sent to the
9099	// server regardless of whether the field is empty or not. This may be
9100	// used to include empty fields in Patch requests.
9101	ForceSendFields []string `json:"-"`
9102
9103	// NullFields is a list of field names (e.g. "AssignedLocations") to
9104	// include in API requests with the JSON null value. By default, fields
9105	// with empty values are omitted from API requests. However, any field
9106	// with an empty value appearing in NullFields will be sent to the
9107	// server as null. It is an error if a field in this list has a
9108	// non-empty value. This may be used to include null fields in Patch
9109	// requests.
9110	NullFields []string `json:"-"`
9111}
9112
9113func (s *ListAssignedLocationsResponse) MarshalJSON() ([]byte, error) {
9114	type NoMethod ListAssignedLocationsResponse
9115	raw := NoMethod(*s)
9116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9117}
9118
9119// ListCampaignAssignedTargetingOptionsResponse: Response message for
9120// ListCampaignAssignedTargetingOptions.
9121type ListCampaignAssignedTargetingOptionsResponse struct {
9122	// AssignedTargetingOptions: The list of assigned targeting options.
9123	// This list will be absent if empty.
9124	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
9125
9126	// NextPageToken: A token identifying the next page of results. This
9127	// value should be specified as the pageToken in a subsequent
9128	// ListCampaignAssignedTargetingOptionsRequest to fetch the next page of
9129	// results. This token will be absent if there are no more
9130	// assigned_targeting_options to return.
9131	NextPageToken string `json:"nextPageToken,omitempty"`
9132
9133	// ServerResponse contains the HTTP response code and headers from the
9134	// server.
9135	googleapi.ServerResponse `json:"-"`
9136
9137	// ForceSendFields is a list of field names (e.g.
9138	// "AssignedTargetingOptions") to unconditionally include in API
9139	// requests. By default, fields with empty values are omitted from API
9140	// requests. However, any non-pointer, non-interface field appearing in
9141	// ForceSendFields will be sent to the server regardless of whether the
9142	// field is empty or not. This may be used to include empty fields in
9143	// Patch requests.
9144	ForceSendFields []string `json:"-"`
9145
9146	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
9147	// to include in API requests with the JSON null value. By default,
9148	// fields with empty values are omitted from API requests. However, any
9149	// field with an empty value appearing in NullFields will be sent to the
9150	// server as null. It is an error if a field in this list has a
9151	// non-empty value. This may be used to include null fields in Patch
9152	// requests.
9153	NullFields []string `json:"-"`
9154}
9155
9156func (s *ListCampaignAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
9157	type NoMethod ListCampaignAssignedTargetingOptionsResponse
9158	raw := NoMethod(*s)
9159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9160}
9161
9162type ListCampaignsResponse struct {
9163	// Campaigns: The list of campaigns. This list will be absent if empty.
9164	Campaigns []*Campaign `json:"campaigns,omitempty"`
9165
9166	// NextPageToken: A token to retrieve the next page of results. Pass
9167	// this value in the page_token field in the subsequent call to
9168	// `ListCampaigns` method to retrieve the next page of results.
9169	NextPageToken string `json:"nextPageToken,omitempty"`
9170
9171	// ServerResponse contains the HTTP response code and headers from the
9172	// server.
9173	googleapi.ServerResponse `json:"-"`
9174
9175	// ForceSendFields is a list of field names (e.g. "Campaigns") to
9176	// unconditionally include in API requests. By default, fields with
9177	// empty values are omitted from API requests. However, any non-pointer,
9178	// non-interface field appearing in ForceSendFields will be sent to the
9179	// server regardless of whether the field is empty or not. This may be
9180	// used to include empty fields in Patch requests.
9181	ForceSendFields []string `json:"-"`
9182
9183	// NullFields is a list of field names (e.g. "Campaigns") to include in
9184	// API requests with the JSON null value. By default, fields with empty
9185	// values are omitted from API requests. However, any field with an
9186	// empty value appearing in NullFields will be sent to the server as
9187	// null. It is an error if a field in this list has a non-empty value.
9188	// This may be used to include null fields in Patch requests.
9189	NullFields []string `json:"-"`
9190}
9191
9192func (s *ListCampaignsResponse) MarshalJSON() ([]byte, error) {
9193	type NoMethod ListCampaignsResponse
9194	raw := NoMethod(*s)
9195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9196}
9197
9198type ListChannelsResponse struct {
9199	// Channels: The list of channels. This list will be absent if empty.
9200	Channels []*Channel `json:"channels,omitempty"`
9201
9202	// NextPageToken: A token to retrieve the next page of results. Pass
9203	// this value in the page_token field in the subsequent call to
9204	// `ListChannels` method to retrieve the next page of results.
9205	NextPageToken string `json:"nextPageToken,omitempty"`
9206
9207	// ServerResponse contains the HTTP response code and headers from the
9208	// server.
9209	googleapi.ServerResponse `json:"-"`
9210
9211	// ForceSendFields is a list of field names (e.g. "Channels") to
9212	// unconditionally include in API requests. By default, fields with
9213	// empty values are omitted from API requests. However, any non-pointer,
9214	// non-interface field appearing in ForceSendFields will be sent to the
9215	// server regardless of whether the field is empty or not. This may be
9216	// used to include empty fields in Patch requests.
9217	ForceSendFields []string `json:"-"`
9218
9219	// NullFields is a list of field names (e.g. "Channels") to include in
9220	// API requests with the JSON null value. By default, fields with empty
9221	// values are omitted from API requests. However, any field with an
9222	// empty value appearing in NullFields will be sent to the server as
9223	// null. It is an error if a field in this list has a non-empty value.
9224	// This may be used to include null fields in Patch requests.
9225	NullFields []string `json:"-"`
9226}
9227
9228func (s *ListChannelsResponse) MarshalJSON() ([]byte, error) {
9229	type NoMethod ListChannelsResponse
9230	raw := NoMethod(*s)
9231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9232}
9233
9234type ListCombinedAudiencesResponse struct {
9235	// CombinedAudiences: The list of combined audiences. This list will be
9236	// absent if empty.
9237	CombinedAudiences []*CombinedAudience `json:"combinedAudiences,omitempty"`
9238
9239	// NextPageToken: A token to retrieve the next page of results. Pass
9240	// this value in the page_token field in the subsequent call to
9241	// `ListCombinedAudiences` method to retrieve the next page of results.
9242	NextPageToken string `json:"nextPageToken,omitempty"`
9243
9244	// ServerResponse contains the HTTP response code and headers from the
9245	// server.
9246	googleapi.ServerResponse `json:"-"`
9247
9248	// ForceSendFields is a list of field names (e.g. "CombinedAudiences")
9249	// to unconditionally include in API requests. By default, fields with
9250	// empty values are omitted from API requests. However, any non-pointer,
9251	// non-interface field appearing in ForceSendFields will be sent to the
9252	// server regardless of whether the field is empty or not. This may be
9253	// used to include empty fields in Patch requests.
9254	ForceSendFields []string `json:"-"`
9255
9256	// NullFields is a list of field names (e.g. "CombinedAudiences") to
9257	// include in API requests with the JSON null value. By default, fields
9258	// with empty values are omitted from API requests. However, any field
9259	// with an empty value appearing in NullFields will be sent to the
9260	// server as null. It is an error if a field in this list has a
9261	// non-empty value. This may be used to include null fields in Patch
9262	// requests.
9263	NullFields []string `json:"-"`
9264}
9265
9266func (s *ListCombinedAudiencesResponse) MarshalJSON() ([]byte, error) {
9267	type NoMethod ListCombinedAudiencesResponse
9268	raw := NoMethod(*s)
9269	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9270}
9271
9272type ListCreativesResponse struct {
9273	// Creatives: The list of creatives. This list will be absent if empty.
9274	Creatives []*Creative `json:"creatives,omitempty"`
9275
9276	// NextPageToken: A token to retrieve the next page of results. Pass
9277	// this value in the page_token field in the subsequent call to
9278	// `ListCreativesRequest` method to retrieve the next page of results.
9279	// If this field is null, it means this is the last page.
9280	NextPageToken string `json:"nextPageToken,omitempty"`
9281
9282	// ServerResponse contains the HTTP response code and headers from the
9283	// server.
9284	googleapi.ServerResponse `json:"-"`
9285
9286	// ForceSendFields is a list of field names (e.g. "Creatives") to
9287	// unconditionally include in API requests. By default, fields with
9288	// empty values are omitted from API requests. However, any non-pointer,
9289	// non-interface field appearing in ForceSendFields will be sent to the
9290	// server regardless of whether the field is empty or not. This may be
9291	// used to include empty fields in Patch requests.
9292	ForceSendFields []string `json:"-"`
9293
9294	// NullFields is a list of field names (e.g. "Creatives") to include in
9295	// API requests with the JSON null value. By default, fields with empty
9296	// values are omitted from API requests. However, any field with an
9297	// empty value appearing in NullFields will be sent to the server as
9298	// null. It is an error if a field in this list has a non-empty value.
9299	// This may be used to include null fields in Patch requests.
9300	NullFields []string `json:"-"`
9301}
9302
9303func (s *ListCreativesResponse) MarshalJSON() ([]byte, error) {
9304	type NoMethod ListCreativesResponse
9305	raw := NoMethod(*s)
9306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9307}
9308
9309type ListCustomBiddingAlgorithmsResponse struct {
9310	// CustomBiddingAlgorithms: The list of custom bidding algorithms. This
9311	// list will be absent if empty.
9312	CustomBiddingAlgorithms []*CustomBiddingAlgorithm `json:"customBiddingAlgorithms,omitempty"`
9313
9314	// NextPageToken: A token to retrieve the next page of results. Pass
9315	// this value in the page_token field in the subsequent call to
9316	// `ListCustomBiddingAlgorithmsRequest` method to retrieve the next page
9317	// of results. If this field is null, it means this is the last page.
9318	NextPageToken string `json:"nextPageToken,omitempty"`
9319
9320	// ServerResponse contains the HTTP response code and headers from the
9321	// server.
9322	googleapi.ServerResponse `json:"-"`
9323
9324	// ForceSendFields is a list of field names (e.g.
9325	// "CustomBiddingAlgorithms") to unconditionally include in API
9326	// requests. By default, fields with empty values are omitted from API
9327	// requests. However, any non-pointer, non-interface field appearing in
9328	// ForceSendFields will be sent to the server regardless of whether the
9329	// field is empty or not. This may be used to include empty fields in
9330	// Patch requests.
9331	ForceSendFields []string `json:"-"`
9332
9333	// NullFields is a list of field names (e.g. "CustomBiddingAlgorithms")
9334	// to include in API requests with the JSON null value. By default,
9335	// fields with empty values are omitted from API requests. However, any
9336	// field with an empty value appearing in NullFields will be sent to the
9337	// server as null. It is an error if a field in this list has a
9338	// non-empty value. This may be used to include null fields in Patch
9339	// requests.
9340	NullFields []string `json:"-"`
9341}
9342
9343func (s *ListCustomBiddingAlgorithmsResponse) MarshalJSON() ([]byte, error) {
9344	type NoMethod ListCustomBiddingAlgorithmsResponse
9345	raw := NoMethod(*s)
9346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9347}
9348
9349type ListCustomListsResponse struct {
9350	// CustomLists: The list of custom lists. This list will be absent if
9351	// empty.
9352	CustomLists []*CustomList `json:"customLists,omitempty"`
9353
9354	// NextPageToken: A token to retrieve the next page of results. Pass
9355	// this value in the page_token field in the subsequent call to
9356	// `ListCustomLists` method to retrieve the next page of results.
9357	NextPageToken string `json:"nextPageToken,omitempty"`
9358
9359	// ServerResponse contains the HTTP response code and headers from the
9360	// server.
9361	googleapi.ServerResponse `json:"-"`
9362
9363	// ForceSendFields is a list of field names (e.g. "CustomLists") to
9364	// unconditionally include in API requests. By default, fields with
9365	// empty values are omitted from API requests. However, any non-pointer,
9366	// non-interface field appearing in ForceSendFields will be sent to the
9367	// server regardless of whether the field is empty or not. This may be
9368	// used to include empty fields in Patch requests.
9369	ForceSendFields []string `json:"-"`
9370
9371	// NullFields is a list of field names (e.g. "CustomLists") to include
9372	// in API requests with the JSON null value. By default, fields with
9373	// empty values are omitted from API requests. However, any field with
9374	// an empty value appearing in NullFields will be sent to the server as
9375	// null. It is an error if a field in this list has a non-empty value.
9376	// This may be used to include null fields in Patch requests.
9377	NullFields []string `json:"-"`
9378}
9379
9380func (s *ListCustomListsResponse) MarshalJSON() ([]byte, error) {
9381	type NoMethod ListCustomListsResponse
9382	raw := NoMethod(*s)
9383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9384}
9385
9386type ListFirstAndThirdPartyAudiencesResponse struct {
9387	// FirstAndThirdPartyAudiences: The list of first and third party
9388	// audiences. Audience size properties will not be included. This list
9389	// will be absent if empty.
9390	FirstAndThirdPartyAudiences []*FirstAndThirdPartyAudience `json:"firstAndThirdPartyAudiences,omitempty"`
9391
9392	// NextPageToken: A token to retrieve the next page of results. Pass
9393	// this value in the page_token field in the subsequent call to
9394	// `ListFirstAndThirdPartyAudiences` method to retrieve the next page of
9395	// results.
9396	NextPageToken string `json:"nextPageToken,omitempty"`
9397
9398	// ServerResponse contains the HTTP response code and headers from the
9399	// server.
9400	googleapi.ServerResponse `json:"-"`
9401
9402	// ForceSendFields is a list of field names (e.g.
9403	// "FirstAndThirdPartyAudiences") to unconditionally include in API
9404	// requests. By default, fields with empty values are omitted from API
9405	// requests. However, any non-pointer, non-interface field appearing in
9406	// ForceSendFields will be sent to the server regardless of whether the
9407	// field is empty or not. This may be used to include empty fields in
9408	// Patch requests.
9409	ForceSendFields []string `json:"-"`
9410
9411	// NullFields is a list of field names (e.g.
9412	// "FirstAndThirdPartyAudiences") to include in API requests with the
9413	// JSON null value. By default, fields with empty values are omitted
9414	// from API requests. However, any field with an empty value appearing
9415	// in NullFields will be sent to the server as null. It is an error if a
9416	// field in this list has a non-empty value. This may be used to include
9417	// null fields in Patch requests.
9418	NullFields []string `json:"-"`
9419}
9420
9421func (s *ListFirstAndThirdPartyAudiencesResponse) MarshalJSON() ([]byte, error) {
9422	type NoMethod ListFirstAndThirdPartyAudiencesResponse
9423	raw := NoMethod(*s)
9424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9425}
9426
9427type ListGoogleAudiencesResponse struct {
9428	// GoogleAudiences: The list of Google audiences. This list will be
9429	// absent if empty.
9430	GoogleAudiences []*GoogleAudience `json:"googleAudiences,omitempty"`
9431
9432	// NextPageToken: A token to retrieve the next page of results. Pass
9433	// this value in the page_token field in the subsequent call to
9434	// `ListGoogleAudiences` method to retrieve the next page of results.
9435	NextPageToken string `json:"nextPageToken,omitempty"`
9436
9437	// ServerResponse contains the HTTP response code and headers from the
9438	// server.
9439	googleapi.ServerResponse `json:"-"`
9440
9441	// ForceSendFields is a list of field names (e.g. "GoogleAudiences") to
9442	// unconditionally include in API requests. By default, fields with
9443	// empty values are omitted from API requests. However, any non-pointer,
9444	// non-interface field appearing in ForceSendFields will be sent to the
9445	// server regardless of whether the field is empty or not. This may be
9446	// used to include empty fields in Patch requests.
9447	ForceSendFields []string `json:"-"`
9448
9449	// NullFields is a list of field names (e.g. "GoogleAudiences") to
9450	// include in API requests with the JSON null value. By default, fields
9451	// with empty values are omitted from API requests. However, any field
9452	// with an empty value appearing in NullFields will be sent to the
9453	// server as null. It is an error if a field in this list has a
9454	// non-empty value. This may be used to include null fields in Patch
9455	// requests.
9456	NullFields []string `json:"-"`
9457}
9458
9459func (s *ListGoogleAudiencesResponse) MarshalJSON() ([]byte, error) {
9460	type NoMethod ListGoogleAudiencesResponse
9461	raw := NoMethod(*s)
9462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9463}
9464
9465// ListInsertionOrderAssignedTargetingOptionsResponse: Response message
9466// for ListInsertionOrderAssignedTargetingOptions.
9467type ListInsertionOrderAssignedTargetingOptionsResponse struct {
9468	// AssignedTargetingOptions: The list of assigned targeting options.
9469	// This list will be absent if empty.
9470	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
9471
9472	// NextPageToken: A token identifying the next page of results. This
9473	// value should be specified as the pageToken in a subsequent
9474	// ListInsertionOrderAssignedTargetingOptionsRequest to fetch the next
9475	// page of results. This token will be absent if there are no more
9476	// assigned_targeting_options to return.
9477	NextPageToken string `json:"nextPageToken,omitempty"`
9478
9479	// ServerResponse contains the HTTP response code and headers from the
9480	// server.
9481	googleapi.ServerResponse `json:"-"`
9482
9483	// ForceSendFields is a list of field names (e.g.
9484	// "AssignedTargetingOptions") to unconditionally include in API
9485	// requests. By default, fields with empty values are omitted from API
9486	// requests. However, any non-pointer, non-interface field appearing in
9487	// ForceSendFields will be sent to the server regardless of whether the
9488	// field is empty or not. This may be used to include empty fields in
9489	// Patch requests.
9490	ForceSendFields []string `json:"-"`
9491
9492	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
9493	// to include in API requests with the JSON null value. By default,
9494	// fields with empty values are omitted from API requests. However, any
9495	// field with an empty value appearing in NullFields will be sent to the
9496	// server as null. It is an error if a field in this list has a
9497	// non-empty value. This may be used to include null fields in Patch
9498	// requests.
9499	NullFields []string `json:"-"`
9500}
9501
9502func (s *ListInsertionOrderAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
9503	type NoMethod ListInsertionOrderAssignedTargetingOptionsResponse
9504	raw := NoMethod(*s)
9505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9506}
9507
9508type ListInsertionOrdersResponse struct {
9509	// InsertionOrders: The list of insertion orders. This list will be
9510	// absent if empty.
9511	InsertionOrders []*InsertionOrder `json:"insertionOrders,omitempty"`
9512
9513	// NextPageToken: A token to retrieve the next page of results. Pass
9514	// this value in the page_token field in the subsequent call to
9515	// `ListInsertionOrders` method to retrieve the next page of results.
9516	NextPageToken string `json:"nextPageToken,omitempty"`
9517
9518	// ServerResponse contains the HTTP response code and headers from the
9519	// server.
9520	googleapi.ServerResponse `json:"-"`
9521
9522	// ForceSendFields is a list of field names (e.g. "InsertionOrders") to
9523	// unconditionally include in API requests. By default, fields with
9524	// empty values are omitted from API requests. However, any non-pointer,
9525	// non-interface field appearing in ForceSendFields will be sent to the
9526	// server regardless of whether the field is empty or not. This may be
9527	// used to include empty fields in Patch requests.
9528	ForceSendFields []string `json:"-"`
9529
9530	// NullFields is a list of field names (e.g. "InsertionOrders") to
9531	// include in API requests with the JSON null value. By default, fields
9532	// with empty values are omitted from API requests. However, any field
9533	// with an empty value appearing in NullFields will be sent to the
9534	// server as null. It is an error if a field in this list has a
9535	// non-empty value. This may be used to include null fields in Patch
9536	// requests.
9537	NullFields []string `json:"-"`
9538}
9539
9540func (s *ListInsertionOrdersResponse) MarshalJSON() ([]byte, error) {
9541	type NoMethod ListInsertionOrdersResponse
9542	raw := NoMethod(*s)
9543	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9544}
9545
9546// ListInventorySourceGroupsResponse: Response message for
9547// InventorySourceGroupService.ListInventorySourceGroups.
9548type ListInventorySourceGroupsResponse struct {
9549	// InventorySourceGroups: The list of inventory source groups. This list
9550	// will be absent if empty.
9551	InventorySourceGroups []*InventorySourceGroup `json:"inventorySourceGroups,omitempty"`
9552
9553	// NextPageToken: A token to retrieve the next page of results. Pass
9554	// this value in the page_token field in the subsequent call to
9555	// `ListInventorySourceGroups` method to retrieve the next page of
9556	// results.
9557	NextPageToken string `json:"nextPageToken,omitempty"`
9558
9559	// ServerResponse contains the HTTP response code and headers from the
9560	// server.
9561	googleapi.ServerResponse `json:"-"`
9562
9563	// ForceSendFields is a list of field names (e.g.
9564	// "InventorySourceGroups") to unconditionally include in API requests.
9565	// By default, fields with empty values are omitted from API requests.
9566	// However, any non-pointer, non-interface field appearing in
9567	// ForceSendFields will be sent to the server regardless of whether the
9568	// field is empty or not. This may be used to include empty fields in
9569	// Patch requests.
9570	ForceSendFields []string `json:"-"`
9571
9572	// NullFields is a list of field names (e.g. "InventorySourceGroups") to
9573	// include in API requests with the JSON null value. By default, fields
9574	// with empty values are omitted from API requests. However, any field
9575	// with an empty value appearing in NullFields will be sent to the
9576	// server as null. It is an error if a field in this list has a
9577	// non-empty value. This may be used to include null fields in Patch
9578	// requests.
9579	NullFields []string `json:"-"`
9580}
9581
9582func (s *ListInventorySourceGroupsResponse) MarshalJSON() ([]byte, error) {
9583	type NoMethod ListInventorySourceGroupsResponse
9584	raw := NoMethod(*s)
9585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9586}
9587
9588type ListInventorySourcesResponse struct {
9589	// InventorySources: The list of inventory sources. This list will be
9590	// absent if empty.
9591	InventorySources []*InventorySource `json:"inventorySources,omitempty"`
9592
9593	// NextPageToken: A token to retrieve the next page of results. Pass
9594	// this value in the page_token field in the subsequent call to
9595	// `ListInventorySources` method to retrieve the next page of results.
9596	NextPageToken string `json:"nextPageToken,omitempty"`
9597
9598	// ServerResponse contains the HTTP response code and headers from the
9599	// server.
9600	googleapi.ServerResponse `json:"-"`
9601
9602	// ForceSendFields is a list of field names (e.g. "InventorySources") to
9603	// unconditionally include in API requests. By default, fields with
9604	// empty values are omitted from API requests. However, any non-pointer,
9605	// non-interface field appearing in ForceSendFields will be sent to the
9606	// server regardless of whether the field is empty or not. This may be
9607	// used to include empty fields in Patch requests.
9608	ForceSendFields []string `json:"-"`
9609
9610	// NullFields is a list of field names (e.g. "InventorySources") to
9611	// include in API requests with the JSON null value. By default, fields
9612	// with empty values are omitted from API requests. However, any field
9613	// with an empty value appearing in NullFields will be sent to the
9614	// server as null. It is an error if a field in this list has a
9615	// non-empty value. This may be used to include null fields in Patch
9616	// requests.
9617	NullFields []string `json:"-"`
9618}
9619
9620func (s *ListInventorySourcesResponse) MarshalJSON() ([]byte, error) {
9621	type NoMethod ListInventorySourcesResponse
9622	raw := NoMethod(*s)
9623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9624}
9625
9626// ListLineItemAssignedTargetingOptionsResponse: Response message for
9627// ListLineItemAssignedTargetingOptions.
9628type ListLineItemAssignedTargetingOptionsResponse struct {
9629	// AssignedTargetingOptions: The list of assigned targeting options.
9630	// This list will be absent if empty.
9631	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
9632
9633	// NextPageToken: A token identifying the next page of results. This
9634	// value should be specified as the pageToken in a subsequent
9635	// ListLineItemAssignedTargetingOptionsRequest to fetch the next page of
9636	// results. This token will be absent if there are no more
9637	// assigned_targeting_options to return.
9638	NextPageToken string `json:"nextPageToken,omitempty"`
9639
9640	// ServerResponse contains the HTTP response code and headers from the
9641	// server.
9642	googleapi.ServerResponse `json:"-"`
9643
9644	// ForceSendFields is a list of field names (e.g.
9645	// "AssignedTargetingOptions") to unconditionally include in API
9646	// requests. By default, fields with empty values are omitted from API
9647	// requests. However, any non-pointer, non-interface field appearing in
9648	// ForceSendFields will be sent to the server regardless of whether the
9649	// field is empty or not. This may be used to include empty fields in
9650	// Patch requests.
9651	ForceSendFields []string `json:"-"`
9652
9653	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
9654	// to include in API requests with the JSON null value. By default,
9655	// fields with empty values are omitted from API requests. However, any
9656	// field with an empty value appearing in NullFields will be sent to the
9657	// server as null. It is an error if a field in this list has a
9658	// non-empty value. This may be used to include null fields in Patch
9659	// requests.
9660	NullFields []string `json:"-"`
9661}
9662
9663func (s *ListLineItemAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
9664	type NoMethod ListLineItemAssignedTargetingOptionsResponse
9665	raw := NoMethod(*s)
9666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9667}
9668
9669type ListLineItemsResponse struct {
9670	// LineItems: The list of line items. This list will be absent if empty.
9671	LineItems []*LineItem `json:"lineItems,omitempty"`
9672
9673	// NextPageToken: A token to retrieve the next page of results. Pass
9674	// this value in the page_token field in the subsequent call to
9675	// `ListLineItems` method to retrieve the next page of results.
9676	NextPageToken string `json:"nextPageToken,omitempty"`
9677
9678	// ServerResponse contains the HTTP response code and headers from the
9679	// server.
9680	googleapi.ServerResponse `json:"-"`
9681
9682	// ForceSendFields is a list of field names (e.g. "LineItems") to
9683	// unconditionally include in API requests. By default, fields with
9684	// empty values are omitted from API requests. However, any non-pointer,
9685	// non-interface field appearing in ForceSendFields will be sent to the
9686	// server regardless of whether the field is empty or not. This may be
9687	// used to include empty fields in Patch requests.
9688	ForceSendFields []string `json:"-"`
9689
9690	// NullFields is a list of field names (e.g. "LineItems") to include in
9691	// API requests with the JSON null value. By default, fields with empty
9692	// values are omitted from API requests. However, any field with an
9693	// empty value appearing in NullFields will be sent to the server as
9694	// null. It is an error if a field in this list has a non-empty value.
9695	// This may be used to include null fields in Patch requests.
9696	NullFields []string `json:"-"`
9697}
9698
9699func (s *ListLineItemsResponse) MarshalJSON() ([]byte, error) {
9700	type NoMethod ListLineItemsResponse
9701	raw := NoMethod(*s)
9702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9703}
9704
9705type ListLocationListsResponse struct {
9706	// LocationLists: The list of location lists. This list will be absent
9707	// if empty.
9708	LocationLists []*LocationList `json:"locationLists,omitempty"`
9709
9710	// NextPageToken: A token to retrieve the next page of results. Pass
9711	// this value in the page_token field in the subsequent call to
9712	// `ListLocationLists` method to retrieve the next page of results.
9713	NextPageToken string `json:"nextPageToken,omitempty"`
9714
9715	// ServerResponse contains the HTTP response code and headers from the
9716	// server.
9717	googleapi.ServerResponse `json:"-"`
9718
9719	// ForceSendFields is a list of field names (e.g. "LocationLists") to
9720	// unconditionally include in API requests. By default, fields with
9721	// empty values are omitted from API requests. However, any non-pointer,
9722	// non-interface field appearing in ForceSendFields will be sent to the
9723	// server regardless of whether the field is empty or not. This may be
9724	// used to include empty fields in Patch requests.
9725	ForceSendFields []string `json:"-"`
9726
9727	// NullFields is a list of field names (e.g. "LocationLists") to include
9728	// in API requests with the JSON null value. By default, fields with
9729	// empty values are omitted from API requests. However, any field with
9730	// an empty value appearing in NullFields will be sent to the server as
9731	// null. It is an error if a field in this list has a non-empty value.
9732	// This may be used to include null fields in Patch requests.
9733	NullFields []string `json:"-"`
9734}
9735
9736func (s *ListLocationListsResponse) MarshalJSON() ([]byte, error) {
9737	type NoMethod ListLocationListsResponse
9738	raw := NoMethod(*s)
9739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9740}
9741
9742type ListManualTriggersResponse struct {
9743	// ManualTriggers: The list of manual triggers. This list will be absent
9744	// if empty.
9745	ManualTriggers []*ManualTrigger `json:"manualTriggers,omitempty"`
9746
9747	// NextPageToken: A token to retrieve the next page of results. Pass
9748	// this value in the page_token field in the subsequent call to
9749	// `ListManualTriggers` method to retrieve the next page of results.
9750	NextPageToken string `json:"nextPageToken,omitempty"`
9751
9752	// ServerResponse contains the HTTP response code and headers from the
9753	// server.
9754	googleapi.ServerResponse `json:"-"`
9755
9756	// ForceSendFields is a list of field names (e.g. "ManualTriggers") to
9757	// unconditionally include in API requests. By default, fields with
9758	// empty values are omitted from API requests. However, any non-pointer,
9759	// non-interface field appearing in ForceSendFields will be sent to the
9760	// server regardless of whether the field is empty or not. This may be
9761	// used to include empty fields in Patch requests.
9762	ForceSendFields []string `json:"-"`
9763
9764	// NullFields is a list of field names (e.g. "ManualTriggers") to
9765	// include in API requests with the JSON null value. By default, fields
9766	// with empty values are omitted from API requests. However, any field
9767	// with an empty value appearing in NullFields will be sent to the
9768	// server as null. It is an error if a field in this list has a
9769	// non-empty value. This may be used to include null fields in Patch
9770	// requests.
9771	NullFields []string `json:"-"`
9772}
9773
9774func (s *ListManualTriggersResponse) MarshalJSON() ([]byte, error) {
9775	type NoMethod ListManualTriggersResponse
9776	raw := NoMethod(*s)
9777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9778}
9779
9780// ListNegativeKeywordListsResponse: Response message for
9781// NegativeKeywordListService.ListNegativeKeywordLists.
9782type ListNegativeKeywordListsResponse struct {
9783	// NegativeKeywordLists: The list of negative keyword lists. This list
9784	// will be absent if empty.
9785	NegativeKeywordLists []*NegativeKeywordList `json:"negativeKeywordLists,omitempty"`
9786
9787	// NextPageToken: A token to retrieve the next page of results. Pass
9788	// this value in the page_token field in the subsequent call to
9789	// `ListNegativeKeywordLists` method to retrieve the next page of
9790	// results.
9791	NextPageToken string `json:"nextPageToken,omitempty"`
9792
9793	// ServerResponse contains the HTTP response code and headers from the
9794	// server.
9795	googleapi.ServerResponse `json:"-"`
9796
9797	// ForceSendFields is a list of field names (e.g.
9798	// "NegativeKeywordLists") to unconditionally include in API requests.
9799	// By default, fields with empty values are omitted from API requests.
9800	// However, any non-pointer, non-interface field appearing in
9801	// ForceSendFields will be sent to the server regardless of whether the
9802	// field is empty or not. This may be used to include empty fields in
9803	// Patch requests.
9804	ForceSendFields []string `json:"-"`
9805
9806	// NullFields is a list of field names (e.g. "NegativeKeywordLists") to
9807	// include in API requests with the JSON null value. By default, fields
9808	// with empty values are omitted from API requests. However, any field
9809	// with an empty value appearing in NullFields will be sent to the
9810	// server as null. It is an error if a field in this list has a
9811	// non-empty value. This may be used to include null fields in Patch
9812	// requests.
9813	NullFields []string `json:"-"`
9814}
9815
9816func (s *ListNegativeKeywordListsResponse) MarshalJSON() ([]byte, error) {
9817	type NoMethod ListNegativeKeywordListsResponse
9818	raw := NoMethod(*s)
9819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9820}
9821
9822// ListNegativeKeywordsResponse: Response message for
9823// NegativeKeywordService.ListNegativeKeywords.
9824type ListNegativeKeywordsResponse struct {
9825	// NegativeKeywords: The list of negative keywords. This list will be
9826	// absent if empty.
9827	NegativeKeywords []*NegativeKeyword `json:"negativeKeywords,omitempty"`
9828
9829	// NextPageToken: A token to retrieve the next page of results. Pass
9830	// this value in the page_token field in the subsequent call to
9831	// `ListNegativeKeywords` method to retrieve the next page of results.
9832	NextPageToken string `json:"nextPageToken,omitempty"`
9833
9834	// ServerResponse contains the HTTP response code and headers from the
9835	// server.
9836	googleapi.ServerResponse `json:"-"`
9837
9838	// ForceSendFields is a list of field names (e.g. "NegativeKeywords") to
9839	// unconditionally include in API requests. By default, fields with
9840	// empty values are omitted from API requests. However, any non-pointer,
9841	// non-interface field appearing in ForceSendFields will be sent to the
9842	// server regardless of whether the field is empty or not. This may be
9843	// used to include empty fields in Patch requests.
9844	ForceSendFields []string `json:"-"`
9845
9846	// NullFields is a list of field names (e.g. "NegativeKeywords") to
9847	// include in API requests with the JSON null value. By default, fields
9848	// with empty values are omitted from API requests. However, any field
9849	// with an empty value appearing in NullFields will be sent to the
9850	// server as null. It is an error if a field in this list has a
9851	// non-empty value. This may be used to include null fields in Patch
9852	// requests.
9853	NullFields []string `json:"-"`
9854}
9855
9856func (s *ListNegativeKeywordsResponse) MarshalJSON() ([]byte, error) {
9857	type NoMethod ListNegativeKeywordsResponse
9858	raw := NoMethod(*s)
9859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9860}
9861
9862type ListPartnerAssignedTargetingOptionsResponse struct {
9863	// AssignedTargetingOptions: The list of assigned targeting options.
9864	// This list will be absent if empty.
9865	AssignedTargetingOptions []*AssignedTargetingOption `json:"assignedTargetingOptions,omitempty"`
9866
9867	// NextPageToken: A token identifying the next page of results. This
9868	// value should be specified as the pageToken in a subsequent
9869	// ListPartnerAssignedTargetingOptionsRequest to fetch the next page of
9870	// results. This token will be absent if there are no more
9871	// assigned_targeting_options to return.
9872	NextPageToken string `json:"nextPageToken,omitempty"`
9873
9874	// ServerResponse contains the HTTP response code and headers from the
9875	// server.
9876	googleapi.ServerResponse `json:"-"`
9877
9878	// ForceSendFields is a list of field names (e.g.
9879	// "AssignedTargetingOptions") to unconditionally include in API
9880	// requests. By default, fields with empty values are omitted from API
9881	// requests. However, any non-pointer, non-interface field appearing in
9882	// ForceSendFields will be sent to the server regardless of whether the
9883	// field is empty or not. This may be used to include empty fields in
9884	// Patch requests.
9885	ForceSendFields []string `json:"-"`
9886
9887	// NullFields is a list of field names (e.g. "AssignedTargetingOptions")
9888	// to include in API requests with the JSON null value. By default,
9889	// fields with empty values are omitted from API requests. However, any
9890	// field with an empty value appearing in NullFields will be sent to the
9891	// server as null. It is an error if a field in this list has a
9892	// non-empty value. This may be used to include null fields in Patch
9893	// requests.
9894	NullFields []string `json:"-"`
9895}
9896
9897func (s *ListPartnerAssignedTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
9898	type NoMethod ListPartnerAssignedTargetingOptionsResponse
9899	raw := NoMethod(*s)
9900	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9901}
9902
9903type ListPartnersResponse struct {
9904	// NextPageToken: A token to retrieve the next page of results. Pass
9905	// this value in the page_token field in the subsequent call to
9906	// `ListPartners` method to retrieve the next page of results.
9907	NextPageToken string `json:"nextPageToken,omitempty"`
9908
9909	// Partners: The list of partners. This list will be absent if empty.
9910	Partners []*Partner `json:"partners,omitempty"`
9911
9912	// ServerResponse contains the HTTP response code and headers from the
9913	// server.
9914	googleapi.ServerResponse `json:"-"`
9915
9916	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
9917	// unconditionally include in API requests. By default, fields with
9918	// empty values are omitted from API requests. However, any non-pointer,
9919	// non-interface field appearing in ForceSendFields will be sent to the
9920	// server regardless of whether the field is empty or not. This may be
9921	// used to include empty fields in Patch requests.
9922	ForceSendFields []string `json:"-"`
9923
9924	// NullFields is a list of field names (e.g. "NextPageToken") to include
9925	// in API requests with the JSON null value. By default, fields with
9926	// empty values are omitted from API requests. However, any field with
9927	// an empty value appearing in NullFields will be sent to the server as
9928	// null. It is an error if a field in this list has a non-empty value.
9929	// This may be used to include null fields in Patch requests.
9930	NullFields []string `json:"-"`
9931}
9932
9933func (s *ListPartnersResponse) MarshalJSON() ([]byte, error) {
9934	type NoMethod ListPartnersResponse
9935	raw := NoMethod(*s)
9936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9937}
9938
9939// ListSitesResponse: Response message for SiteService.ListSites.
9940type ListSitesResponse struct {
9941	// NextPageToken: A token to retrieve the next page of results. Pass
9942	// this value in the page_token field in the subsequent call to
9943	// `ListSites` method to retrieve the next page of results.
9944	NextPageToken string `json:"nextPageToken,omitempty"`
9945
9946	// Sites: The list of sites. This list will be absent if empty.
9947	Sites []*Site `json:"sites,omitempty"`
9948
9949	// ServerResponse contains the HTTP response code and headers from the
9950	// server.
9951	googleapi.ServerResponse `json:"-"`
9952
9953	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
9954	// unconditionally include in API requests. By default, fields with
9955	// empty values are omitted from API requests. However, any non-pointer,
9956	// non-interface field appearing in ForceSendFields will be sent to the
9957	// server regardless of whether the field is empty or not. This may be
9958	// used to include empty fields in Patch requests.
9959	ForceSendFields []string `json:"-"`
9960
9961	// NullFields is a list of field names (e.g. "NextPageToken") to include
9962	// in API requests with the JSON null value. By default, fields with
9963	// empty values are omitted from API requests. However, any field with
9964	// an empty value appearing in NullFields will be sent to the server as
9965	// null. It is an error if a field in this list has a non-empty value.
9966	// This may be used to include null fields in Patch requests.
9967	NullFields []string `json:"-"`
9968}
9969
9970func (s *ListSitesResponse) MarshalJSON() ([]byte, error) {
9971	type NoMethod ListSitesResponse
9972	raw := NoMethod(*s)
9973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9974}
9975
9976// ListTargetingOptionsResponse: Response message for
9977// ListTargetingOptions.
9978type ListTargetingOptionsResponse struct {
9979	// NextPageToken: A token to retrieve the next page of results. Pass
9980	// this value in the page_token field in the subsequent call to
9981	// `ListTargetingOptions` method to retrieve the next page of results.
9982	NextPageToken string `json:"nextPageToken,omitempty"`
9983
9984	// TargetingOptions: The list of targeting options. This list will be
9985	// absent if empty.
9986	TargetingOptions []*TargetingOption `json:"targetingOptions,omitempty"`
9987
9988	// ServerResponse contains the HTTP response code and headers from the
9989	// server.
9990	googleapi.ServerResponse `json:"-"`
9991
9992	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
9993	// unconditionally include in API requests. By default, fields with
9994	// empty values are omitted from API requests. However, any non-pointer,
9995	// non-interface field appearing in ForceSendFields will be sent to the
9996	// server regardless of whether the field is empty or not. This may be
9997	// used to include empty fields in Patch requests.
9998	ForceSendFields []string `json:"-"`
9999
10000	// NullFields is a list of field names (e.g. "NextPageToken") to include
10001	// in API requests with the JSON null value. By default, fields with
10002	// empty values are omitted from API requests. However, any field with
10003	// an empty value appearing in NullFields will be sent to the server as
10004	// null. It is an error if a field in this list has a non-empty value.
10005	// This may be used to include null fields in Patch requests.
10006	NullFields []string `json:"-"`
10007}
10008
10009func (s *ListTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
10010	type NoMethod ListTargetingOptionsResponse
10011	raw := NoMethod(*s)
10012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10013}
10014
10015type ListUsersResponse struct {
10016	// NextPageToken: A token to retrieve the next page of results. Pass
10017	// this value in the page_token field in the subsequent call to
10018	// `ListUsers` method to retrieve the next page of results. This token
10019	// will be absent if there are no more results to return.
10020	NextPageToken string `json:"nextPageToken,omitempty"`
10021
10022	// Users: The list of users. This list will be absent if empty.
10023	Users []*User `json:"users,omitempty"`
10024
10025	// ServerResponse contains the HTTP response code and headers from the
10026	// server.
10027	googleapi.ServerResponse `json:"-"`
10028
10029	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
10030	// unconditionally include in API requests. By default, fields with
10031	// empty values are omitted from API requests. However, any non-pointer,
10032	// non-interface field appearing in ForceSendFields will be sent to the
10033	// server regardless of whether the field is empty or not. This may be
10034	// used to include empty fields in Patch requests.
10035	ForceSendFields []string `json:"-"`
10036
10037	// NullFields is a list of field names (e.g. "NextPageToken") to include
10038	// in API requests with the JSON null value. By default, fields with
10039	// empty values are omitted from API requests. However, any field with
10040	// an empty value appearing in NullFields will be sent to the server as
10041	// null. It is an error if a field in this list has a non-empty value.
10042	// This may be used to include null fields in Patch requests.
10043	NullFields []string `json:"-"`
10044}
10045
10046func (s *ListUsersResponse) MarshalJSON() ([]byte, error) {
10047	type NoMethod ListUsersResponse
10048	raw := NoMethod(*s)
10049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10050}
10051
10052// LocationList: A list of locations used for targeting.
10053type LocationList struct {
10054	// AdvertiserId: Required. Immutable. The unique ID of the advertiser
10055	// the location list belongs to.
10056	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
10057
10058	// DisplayName: Required. The display name of the location list. Must be
10059	// UTF-8 encoded with a maximum size of 240 bytes.
10060	DisplayName string `json:"displayName,omitempty"`
10061
10062	// LocationListId: Output only. The unique ID of the location list.
10063	// Assigned by the system.
10064	LocationListId int64 `json:"locationListId,omitempty,string"`
10065
10066	// LocationType: Required. Immutable. The type of location. All
10067	// locations in the list will share this type.
10068	//
10069	// Possible values:
10070	//   "TARGETING_LOCATION_TYPE_UNSPECIFIED" - Default value when type is
10071	// not specified or is unknown.
10072	//   "TARGETING_LOCATION_TYPE_PROXIMITY" - The type for proximity geo
10073	// location.
10074	//   "TARGETING_LOCATION_TYPE_REGIONAL" - The type for regional geo
10075	// location.
10076	LocationType string `json:"locationType,omitempty"`
10077
10078	// Name: Output only. The resource name of the location list.
10079	Name string `json:"name,omitempty"`
10080
10081	// ServerResponse contains the HTTP response code and headers from the
10082	// server.
10083	googleapi.ServerResponse `json:"-"`
10084
10085	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
10086	// unconditionally include in API requests. By default, fields with
10087	// empty values are omitted from API requests. However, any non-pointer,
10088	// non-interface field appearing in ForceSendFields will be sent to the
10089	// server regardless of whether the field is empty or not. This may be
10090	// used to include empty fields in Patch requests.
10091	ForceSendFields []string `json:"-"`
10092
10093	// NullFields is a list of field names (e.g. "AdvertiserId") to include
10094	// in API requests with the JSON null value. By default, fields with
10095	// empty values are omitted from API requests. However, any field with
10096	// an empty value appearing in NullFields will be sent to the server as
10097	// null. It is an error if a field in this list has a non-empty value.
10098	// This may be used to include null fields in Patch requests.
10099	NullFields []string `json:"-"`
10100}
10101
10102func (s *LocationList) MarshalJSON() ([]byte, error) {
10103	type NoMethod LocationList
10104	raw := NoMethod(*s)
10105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10106}
10107
10108// LookbackWindow: Specifies how many days into the past to look when
10109// determining whether to record a conversion.
10110type LookbackWindow struct {
10111	// ClickDays: Lookback window, in days, from the last time a given user
10112	// clicked on one of your ads.
10113	ClickDays int64 `json:"clickDays,omitempty"`
10114
10115	// ImpressionDays: Lookback window, in days, from the last time a given
10116	// user viewed one of your ads.
10117	ImpressionDays int64 `json:"impressionDays,omitempty"`
10118
10119	// ForceSendFields is a list of field names (e.g. "ClickDays") to
10120	// unconditionally include in API requests. By default, fields with
10121	// empty values are omitted from API requests. However, any non-pointer,
10122	// non-interface field appearing in ForceSendFields will be sent to the
10123	// server regardless of whether the field is empty or not. This may be
10124	// used to include empty fields in Patch requests.
10125	ForceSendFields []string `json:"-"`
10126
10127	// NullFields is a list of field names (e.g. "ClickDays") to include in
10128	// API requests with the JSON null value. By default, fields with empty
10129	// values are omitted from API requests. However, any field with an
10130	// empty value appearing in NullFields will be sent to the server as
10131	// null. It is an error if a field in this list has a non-empty value.
10132	// This may be used to include null fields in Patch requests.
10133	NullFields []string `json:"-"`
10134}
10135
10136func (s *LookbackWindow) MarshalJSON() ([]byte, error) {
10137	type NoMethod LookbackWindow
10138	raw := NoMethod(*s)
10139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10140}
10141
10142// ManualTrigger: A single manual trigger in Display & Video 360.
10143type ManualTrigger struct {
10144	// ActivationDurationMinutes: Required. The maximum duration of each
10145	// activation in minutes. Must be between 1 and 360 inclusive. After
10146	// this duration, the trigger will be automatically deactivated.
10147	ActivationDurationMinutes int64 `json:"activationDurationMinutes,omitempty,string"`
10148
10149	// AdvertiserId: Required. Immutable. The unique ID of the advertiser
10150	// that the manual trigger belongs to.
10151	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
10152
10153	// DisplayName: Required. The display name of the manual trigger. Must
10154	// be UTF-8 encoded with a maximum size of 240 bytes.
10155	DisplayName string `json:"displayName,omitempty"`
10156
10157	// LatestActivationTime: Output only. The timestamp of the trigger's
10158	// latest activation.
10159	LatestActivationTime string `json:"latestActivationTime,omitempty"`
10160
10161	// Name: Output only. The resource name of the manual trigger.
10162	Name string `json:"name,omitempty"`
10163
10164	// State: Output only. The state of the manual trigger. Will be set to
10165	// the `INACTIVE` state upon creation.
10166	//
10167	// Possible values:
10168	//   "STATE_UNSPECIFIED" - Default value when state is not specified or
10169	// is unknown in this version.
10170	//   "INACTIVE" - The trigger is currently inactive and ready to be
10171	// activated.
10172	//   "ACTIVE" - The trigger is currently active (activated).
10173	State string `json:"state,omitempty"`
10174
10175	// TriggerId: Output only. The unique ID of the manual trigger.
10176	TriggerId int64 `json:"triggerId,omitempty,string"`
10177
10178	// ServerResponse contains the HTTP response code and headers from the
10179	// server.
10180	googleapi.ServerResponse `json:"-"`
10181
10182	// ForceSendFields is a list of field names (e.g.
10183	// "ActivationDurationMinutes") to unconditionally include in API
10184	// requests. By default, fields with empty values are omitted from API
10185	// requests. However, any non-pointer, non-interface field appearing in
10186	// ForceSendFields will be sent to the server regardless of whether the
10187	// field is empty or not. This may be used to include empty fields in
10188	// Patch requests.
10189	ForceSendFields []string `json:"-"`
10190
10191	// NullFields is a list of field names (e.g.
10192	// "ActivationDurationMinutes") to include in API requests with the JSON
10193	// null value. By default, fields with empty values are omitted from API
10194	// requests. However, any field with an empty value appearing in
10195	// NullFields will be sent to the server as null. It is an error if a
10196	// field in this list has a non-empty value. This may be used to include
10197	// null fields in Patch requests.
10198	NullFields []string `json:"-"`
10199}
10200
10201func (s *ManualTrigger) MarshalJSON() ([]byte, error) {
10202	type NoMethod ManualTrigger
10203	raw := NoMethod(*s)
10204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10205}
10206
10207// MaximizeSpendBidStrategy: A strategy that automatically adjusts the
10208// bid to optimize a specified performance goal while spending the full
10209// budget.
10210type MaximizeSpendBidStrategy struct {
10211	// CustomBiddingAlgorithmId: The ID of the Custom Bidding Algorithm used
10212	// by this strategy. Only applicable when performance_goal_type is set
10213	// to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.
10214	CustomBiddingAlgorithmId int64 `json:"customBiddingAlgorithmId,omitempty,string"`
10215
10216	// MaxAverageCpmBidAmountMicros: The maximum average CPM that may be
10217	// bid, in micros of the advertiser's currency. Must be greater than or
10218	// equal to a billable unit of the given currency. For example, 1500000
10219	// represents 1.5 standard units of the currency.
10220	MaxAverageCpmBidAmountMicros int64 `json:"maxAverageCpmBidAmountMicros,omitempty,string"`
10221
10222	// PerformanceGoalType: Required. The type of the performance goal that
10223	// the bidding strategy tries to minimize while spending the full
10224	// budget. `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM` is not
10225	// supported for this strategy.
10226	//
10227	// Possible values:
10228	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_UNSPECIFIED" - Type value
10229	// is not specified or is unknown in this version.
10230	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA" - Cost per action.
10231	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC" - Cost per click.
10232	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM" - Viewable
10233	// CPM.
10234	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO" - Custom
10235	// bidding algorithm.
10236	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA" - Completed inview
10237	// and audible views.
10238	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN" - Inview time over
10239	// 10 secs views.
10240	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED" - Viewable
10241	// impressions.
10242	PerformanceGoalType string `json:"performanceGoalType,omitempty"`
10243
10244	// ForceSendFields is a list of field names (e.g.
10245	// "CustomBiddingAlgorithmId") to unconditionally include in API
10246	// requests. By default, fields with empty values are omitted from API
10247	// requests. However, any non-pointer, non-interface field appearing in
10248	// ForceSendFields will be sent to the server regardless of whether the
10249	// field is empty or not. This may be used to include empty fields in
10250	// Patch requests.
10251	ForceSendFields []string `json:"-"`
10252
10253	// NullFields is a list of field names (e.g. "CustomBiddingAlgorithmId")
10254	// to include in API requests with the JSON null value. By default,
10255	// fields with empty values are omitted from API requests. However, any
10256	// field with an empty value appearing in NullFields will be sent to the
10257	// server as null. It is an error if a field in this list has a
10258	// non-empty value. This may be used to include null fields in Patch
10259	// requests.
10260	NullFields []string `json:"-"`
10261}
10262
10263func (s *MaximizeSpendBidStrategy) MarshalJSON() ([]byte, error) {
10264	type NoMethod MaximizeSpendBidStrategy
10265	raw := NoMethod(*s)
10266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10267}
10268
10269// MeasurementConfig: Measurement settings of a partner.
10270type MeasurementConfig struct {
10271	// Dv360ToCmCostReportingEnabled: Whether or not to report DV360 cost to
10272	// CM360.
10273	Dv360ToCmCostReportingEnabled bool `json:"dv360ToCmCostReportingEnabled,omitempty"`
10274
10275	// Dv360ToCmDataSharingEnabled: Whether or not to include DV360 data in
10276	// CM360 data transfer reports.
10277	Dv360ToCmDataSharingEnabled bool `json:"dv360ToCmDataSharingEnabled,omitempty"`
10278
10279	// ForceSendFields is a list of field names (e.g.
10280	// "Dv360ToCmCostReportingEnabled") to unconditionally include in API
10281	// requests. By default, fields with empty values are omitted from API
10282	// requests. However, any non-pointer, non-interface field appearing in
10283	// ForceSendFields will be sent to the server regardless of whether the
10284	// field is empty or not. This may be used to include empty fields in
10285	// Patch requests.
10286	ForceSendFields []string `json:"-"`
10287
10288	// NullFields is a list of field names (e.g.
10289	// "Dv360ToCmCostReportingEnabled") to include in API requests with the
10290	// JSON null value. By default, fields with empty values are omitted
10291	// from API requests. However, any field with an empty value appearing
10292	// in NullFields will be sent to the server as null. It is an error if a
10293	// field in this list has a non-empty value. This may be used to include
10294	// null fields in Patch requests.
10295	NullFields []string `json:"-"`
10296}
10297
10298func (s *MeasurementConfig) MarshalJSON() ([]byte, error) {
10299	type NoMethod MeasurementConfig
10300	raw := NoMethod(*s)
10301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10302}
10303
10304// MobileApp: A mobile app promoted by a mobile app install line item.
10305type MobileApp struct {
10306	// AppId: Required. The ID of the app provided by the platform store.
10307	// Android apps are identified by the bundle ID used by Android's Play
10308	// store, such as `com.google.android.gm`. iOS apps are identified by a
10309	// nine-digit app ID used by Apple's App store, such as `422689480`.
10310	AppId string `json:"appId,omitempty"`
10311
10312	// DisplayName: Output only. The app name.
10313	DisplayName string `json:"displayName,omitempty"`
10314
10315	// Platform: Output only. The app platform.
10316	//
10317	// Possible values:
10318	//   "PLATFORM_UNSPECIFIED" - Platform is not specified.
10319	//   "IOS" - iOS platform.
10320	//   "ANDROID" - Android platform.
10321	Platform string `json:"platform,omitempty"`
10322
10323	// Publisher: Output only. The app publisher.
10324	Publisher string `json:"publisher,omitempty"`
10325
10326	// ForceSendFields is a list of field names (e.g. "AppId") to
10327	// unconditionally include in API requests. By default, fields with
10328	// empty values are omitted from API requests. However, any non-pointer,
10329	// non-interface field appearing in ForceSendFields will be sent to the
10330	// server regardless of whether the field is empty or not. This may be
10331	// used to include empty fields in Patch requests.
10332	ForceSendFields []string `json:"-"`
10333
10334	// NullFields is a list of field names (e.g. "AppId") to include in API
10335	// requests with the JSON null value. By default, fields with empty
10336	// values are omitted from API requests. However, any field with an
10337	// empty value appearing in NullFields will be sent to the server as
10338	// null. It is an error if a field in this list has a non-empty value.
10339	// This may be used to include null fields in Patch requests.
10340	NullFields []string `json:"-"`
10341}
10342
10343func (s *MobileApp) MarshalJSON() ([]byte, error) {
10344	type NoMethod MobileApp
10345	raw := NoMethod(*s)
10346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10347}
10348
10349// Money: Represents an amount of money with its currency type.
10350type Money struct {
10351	// CurrencyCode: The three-letter currency code defined in ISO 4217.
10352	CurrencyCode string `json:"currencyCode,omitempty"`
10353
10354	// Nanos: Number of nano (10^-9) units of the amount. The value must be
10355	// between -999,999,999 and +999,999,999 inclusive. If `units` is
10356	// positive, `nanos` must be positive or zero. If `units` is zero,
10357	// `nanos` can be positive, zero, or negative. If `units` is negative,
10358	// `nanos` must be negative or zero. For example $-1.75 is represented
10359	// as `units`=-1 and `nanos`=-750,000,000.
10360	Nanos int64 `json:"nanos,omitempty"`
10361
10362	// Units: The whole units of the amount. For example if `currencyCode`
10363	// is "USD", then 1 unit is one US dollar.
10364	Units int64 `json:"units,omitempty,string"`
10365
10366	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
10367	// unconditionally include in API requests. By default, fields with
10368	// empty values are omitted from API requests. However, any non-pointer,
10369	// non-interface field appearing in ForceSendFields will be sent to the
10370	// server regardless of whether the field is empty or not. This may be
10371	// used to include empty fields in Patch requests.
10372	ForceSendFields []string `json:"-"`
10373
10374	// NullFields is a list of field names (e.g. "CurrencyCode") to include
10375	// in API requests with the JSON null value. By default, fields with
10376	// empty values are omitted from API requests. However, any field with
10377	// an empty value appearing in NullFields will be sent to the server as
10378	// null. It is an error if a field in this list has a non-empty value.
10379	// This may be used to include null fields in Patch requests.
10380	NullFields []string `json:"-"`
10381}
10382
10383func (s *Money) MarshalJSON() ([]byte, error) {
10384	type NoMethod Money
10385	raw := NoMethod(*s)
10386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10387}
10388
10389// NegativeKeyword: A negatively targeted keyword that belongs to a
10390// negative keyword list.
10391type NegativeKeyword struct {
10392	// KeywordValue: Required. Immutable. The negatively targeted keyword,
10393	// for example `car insurance`. Must be UTF-8 encoded with a maximum
10394	// size of 255 bytes. Maximum number of characters is 80. Maximum number
10395	// of words is 10. Valid characters are restricted to ASCII characters
10396	// only. The only URL-escaping permitted is for representing whitespace
10397	// between words. Leading or trailing whitespace is ignored.
10398	KeywordValue string `json:"keywordValue,omitempty"`
10399
10400	// Name: Output only. The resource name of the negative keyword.
10401	Name string `json:"name,omitempty"`
10402
10403	// ServerResponse contains the HTTP response code and headers from the
10404	// server.
10405	googleapi.ServerResponse `json:"-"`
10406
10407	// ForceSendFields is a list of field names (e.g. "KeywordValue") to
10408	// unconditionally include in API requests. By default, fields with
10409	// empty values are omitted from API requests. However, any non-pointer,
10410	// non-interface field appearing in ForceSendFields will be sent to the
10411	// server regardless of whether the field is empty or not. This may be
10412	// used to include empty fields in Patch requests.
10413	ForceSendFields []string `json:"-"`
10414
10415	// NullFields is a list of field names (e.g. "KeywordValue") to include
10416	// in API requests with the JSON null value. By default, fields with
10417	// empty values are omitted from API requests. However, any field with
10418	// an empty value appearing in NullFields will be sent to the server as
10419	// null. It is an error if a field in this list has a non-empty value.
10420	// This may be used to include null fields in Patch requests.
10421	NullFields []string `json:"-"`
10422}
10423
10424func (s *NegativeKeyword) MarshalJSON() ([]byte, error) {
10425	type NoMethod NegativeKeyword
10426	raw := NoMethod(*s)
10427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10428}
10429
10430// NegativeKeywordList: A list of negative keywords used for targeting.
10431type NegativeKeywordList struct {
10432	// AdvertiserId: Output only. The unique ID of the advertiser the
10433	// negative keyword list belongs to.
10434	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
10435
10436	// DisplayName: Required. The display name of the negative keyword list.
10437	// Must be UTF-8 encoded with a maximum size of 255 bytes.
10438	DisplayName string `json:"displayName,omitempty"`
10439
10440	// Name: Output only. The resource name of the negative keyword list.
10441	Name string `json:"name,omitempty"`
10442
10443	// NegativeKeywordListId: Output only. The unique ID of the negative
10444	// keyword list. Assigned by the system.
10445	NegativeKeywordListId int64 `json:"negativeKeywordListId,omitempty,string"`
10446
10447	// ServerResponse contains the HTTP response code and headers from the
10448	// server.
10449	googleapi.ServerResponse `json:"-"`
10450
10451	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
10452	// unconditionally include in API requests. By default, fields with
10453	// empty values are omitted from API requests. However, any non-pointer,
10454	// non-interface field appearing in ForceSendFields will be sent to the
10455	// server regardless of whether the field is empty or not. This may be
10456	// used to include empty fields in Patch requests.
10457	ForceSendFields []string `json:"-"`
10458
10459	// NullFields is a list of field names (e.g. "AdvertiserId") to include
10460	// in API requests with the JSON null value. By default, fields with
10461	// empty values are omitted from API requests. However, any field with
10462	// an empty value appearing in NullFields will be sent to the server as
10463	// null. It is an error if a field in this list has a non-empty value.
10464	// This may be used to include null fields in Patch requests.
10465	NullFields []string `json:"-"`
10466}
10467
10468func (s *NegativeKeywordList) MarshalJSON() ([]byte, error) {
10469	type NoMethod NegativeKeywordList
10470	raw := NoMethod(*s)
10471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10472}
10473
10474// NegativeKeywordListAssignedTargetingOptionDetails: Targeting details
10475// for negative keyword list. This will be populated in the details
10476// field of an AssignedTargetingOption when targeting_type is
10477// `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`.
10478type NegativeKeywordListAssignedTargetingOptionDetails struct {
10479	// NegativeKeywordListId: Required. ID of the negative keyword list.
10480	// Should refer to the negative_keyword_list_id field of a
10481	// NegativeKeywordList resource.
10482	NegativeKeywordListId int64 `json:"negativeKeywordListId,omitempty,string"`
10483
10484	// ForceSendFields is a list of field names (e.g.
10485	// "NegativeKeywordListId") to unconditionally include in API requests.
10486	// By default, fields with empty values are omitted from API requests.
10487	// However, any non-pointer, non-interface field appearing in
10488	// ForceSendFields will be sent to the server regardless of whether the
10489	// field is empty or not. This may be used to include empty fields in
10490	// Patch requests.
10491	ForceSendFields []string `json:"-"`
10492
10493	// NullFields is a list of field names (e.g. "NegativeKeywordListId") to
10494	// include in API requests with the JSON null value. By default, fields
10495	// with empty values are omitted from API requests. However, any field
10496	// with an empty value appearing in NullFields will be sent to the
10497	// server as null. It is an error if a field in this list has a
10498	// non-empty value. This may be used to include null fields in Patch
10499	// requests.
10500	NullFields []string `json:"-"`
10501}
10502
10503func (s *NegativeKeywordListAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
10504	type NoMethod NegativeKeywordListAssignedTargetingOptionDetails
10505	raw := NoMethod(*s)
10506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10507}
10508
10509// ObaIcon: OBA Icon for a Creative
10510type ObaIcon struct {
10511	// ClickTrackingUrl: Required. The click tracking URL of the OBA icon.
10512	// Only URLs of the following domains are allowed: *
10513	// https://info.evidon.com * https://l.betrad.com
10514	ClickTrackingUrl string `json:"clickTrackingUrl,omitempty"`
10515
10516	// Dimensions: The dimensions of the OBA icon.
10517	Dimensions *Dimensions `json:"dimensions,omitempty"`
10518
10519	// LandingPageUrl: Required. The landing page URL of the OBA icon. Only
10520	// URLs of the following domains are allowed: * https://info.evidon.com
10521	// * https://l.betrad.com
10522	LandingPageUrl string `json:"landingPageUrl,omitempty"`
10523
10524	// Position: The position of the OBA icon on the creative.
10525	//
10526	// Possible values:
10527	//   "OBA_ICON_POSITION_UNSPECIFIED" - The OBA icon position is not
10528	// specified.
10529	//   "OBA_ICON_POSITION_UPPER_RIGHT" - At the upper right side of the
10530	// creative.
10531	//   "OBA_ICON_POSITION_UPPER_LEFT" - At the upper left side of the
10532	// creative.
10533	//   "OBA_ICON_POSITION_LOWER_RIGHT" - At the lower right side of the
10534	// creative.
10535	//   "OBA_ICON_POSITION_LOWER_LEFT" - At the lower left side of the
10536	// creative.
10537	Position string `json:"position,omitempty"`
10538
10539	// Program: The program of the OBA icon. For example: “AdChoices”.
10540	Program string `json:"program,omitempty"`
10541
10542	// ResourceMimeType: The MIME type of the OBA icon resource.
10543	ResourceMimeType string `json:"resourceMimeType,omitempty"`
10544
10545	// ResourceUrl: The URL of the OBA icon resource.
10546	ResourceUrl string `json:"resourceUrl,omitempty"`
10547
10548	// ViewTrackingUrl: Required. The view tracking URL of the OBA icon.
10549	// Only URLs of the following domains are allowed: *
10550	// https://info.evidon.com * https://l.betrad.com
10551	ViewTrackingUrl string `json:"viewTrackingUrl,omitempty"`
10552
10553	// ForceSendFields is a list of field names (e.g. "ClickTrackingUrl") to
10554	// unconditionally include in API requests. By default, fields with
10555	// empty values are omitted from API requests. However, any non-pointer,
10556	// non-interface field appearing in ForceSendFields will be sent to the
10557	// server regardless of whether the field is empty or not. This may be
10558	// used to include empty fields in Patch requests.
10559	ForceSendFields []string `json:"-"`
10560
10561	// NullFields is a list of field names (e.g. "ClickTrackingUrl") to
10562	// include in API requests with the JSON null value. By default, fields
10563	// with empty values are omitted from API requests. However, any field
10564	// with an empty value appearing in NullFields will be sent to the
10565	// server as null. It is an error if a field in this list has a
10566	// non-empty value. This may be used to include null fields in Patch
10567	// requests.
10568	NullFields []string `json:"-"`
10569}
10570
10571func (s *ObaIcon) MarshalJSON() ([]byte, error) {
10572	type NoMethod ObaIcon
10573	raw := NoMethod(*s)
10574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10575}
10576
10577// OnScreenPositionAssignedTargetingOptionDetails: On screen position
10578// targeting option details. This will be populated in the
10579// on_screen_position_details field when targeting_type is
10580// `TARGETING_TYPE_ON_SCREEN_POSITION`.
10581type OnScreenPositionAssignedTargetingOptionDetails struct {
10582	// AdType: Output only. The ad type to target. Only applicable to
10583	// insertion order targeting and new line items supporting the specified
10584	// ad type will inherit this targeting option by default. Possible
10585	// values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new
10586	// line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. *
10587	// `AD_TYPE_VIDEO`, the setting will be inherited by new line item when
10588	// line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`.
10589	//
10590	// Possible values:
10591	//   "AD_TYPE_UNSPECIFIED" - Ad type is not specified or is unknown in
10592	// this version.
10593	//   "AD_TYPE_DISPLAY" - Display creatives, e.g. image and HTML5.
10594	//   "AD_TYPE_VIDEO" - Video creatives, e.g. video ads that play during
10595	// streaming content in video players.
10596	//   "AD_TYPE_AUDIO" - Audio creatives, e.g. audio ads that play during
10597	// audio content.
10598	AdType string `json:"adType,omitempty"`
10599
10600	// OnScreenPosition: Output only. The on screen position.
10601	//
10602	// Possible values:
10603	//   "ON_SCREEN_POSITION_UNSPECIFIED" - On screen position is not
10604	// specified in this version. This enum is a place holder for a default
10605	// value and does not represent a real on screen position.
10606	//   "ON_SCREEN_POSITION_UNKNOWN" - The ad position is unknown on the
10607	// screen.
10608	//   "ON_SCREEN_POSITION_ABOVE_THE_FOLD" - The ad is located above the
10609	// fold.
10610	//   "ON_SCREEN_POSITION_BELOW_THE_FOLD" - The ad is located below the
10611	// fold.
10612	OnScreenPosition string `json:"onScreenPosition,omitempty"`
10613
10614	// TargetingOptionId: Required. The targeting_option_id field when
10615	// targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.
10616	TargetingOptionId string `json:"targetingOptionId,omitempty"`
10617
10618	// ForceSendFields is a list of field names (e.g. "AdType") to
10619	// unconditionally include in API requests. By default, fields with
10620	// empty values are omitted from API requests. However, any non-pointer,
10621	// non-interface field appearing in ForceSendFields will be sent to the
10622	// server regardless of whether the field is empty or not. This may be
10623	// used to include empty fields in Patch requests.
10624	ForceSendFields []string `json:"-"`
10625
10626	// NullFields is a list of field names (e.g. "AdType") to include in API
10627	// requests with the JSON null value. By default, fields with empty
10628	// values are omitted from API requests. However, any field with an
10629	// empty value appearing in NullFields will be sent to the server as
10630	// null. It is an error if a field in this list has a non-empty value.
10631	// This may be used to include null fields in Patch requests.
10632	NullFields []string `json:"-"`
10633}
10634
10635func (s *OnScreenPositionAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
10636	type NoMethod OnScreenPositionAssignedTargetingOptionDetails
10637	raw := NoMethod(*s)
10638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10639}
10640
10641// OnScreenPositionTargetingOptionDetails: Represents a targetable on
10642// screen position, which could be used by display and video ads. This
10643// will be populated in the on_screen_position_details field when
10644// targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.
10645type OnScreenPositionTargetingOptionDetails struct {
10646	// OnScreenPosition: Output only. The on screen position.
10647	//
10648	// Possible values:
10649	//   "ON_SCREEN_POSITION_UNSPECIFIED" - On screen position is not
10650	// specified in this version. This enum is a place holder for a default
10651	// value and does not represent a real on screen position.
10652	//   "ON_SCREEN_POSITION_UNKNOWN" - The ad position is unknown on the
10653	// screen.
10654	//   "ON_SCREEN_POSITION_ABOVE_THE_FOLD" - The ad is located above the
10655	// fold.
10656	//   "ON_SCREEN_POSITION_BELOW_THE_FOLD" - The ad is located below the
10657	// fold.
10658	OnScreenPosition string `json:"onScreenPosition,omitempty"`
10659
10660	// ForceSendFields is a list of field names (e.g. "OnScreenPosition") to
10661	// unconditionally include in API requests. By default, fields with
10662	// empty values are omitted from API requests. However, any non-pointer,
10663	// non-interface field appearing in ForceSendFields will be sent to the
10664	// server regardless of whether the field is empty or not. This may be
10665	// used to include empty fields in Patch requests.
10666	ForceSendFields []string `json:"-"`
10667
10668	// NullFields is a list of field names (e.g. "OnScreenPosition") to
10669	// include in API requests with the JSON null value. By default, fields
10670	// with empty values are omitted from API requests. However, any field
10671	// with an empty value appearing in NullFields will be sent to the
10672	// server as null. It is an error if a field in this list has a
10673	// non-empty value. This may be used to include null fields in Patch
10674	// requests.
10675	NullFields []string `json:"-"`
10676}
10677
10678func (s *OnScreenPositionTargetingOptionDetails) MarshalJSON() ([]byte, error) {
10679	type NoMethod OnScreenPositionTargetingOptionDetails
10680	raw := NoMethod(*s)
10681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10682}
10683
10684// OperatingSystemAssignedTargetingOptionDetails: Assigned operating
10685// system targeting option details. This will be populated in the
10686// operating_system_details field when targeting_type is
10687// `TARGETING_TYPE_OPERATING_SYSTEM`.
10688type OperatingSystemAssignedTargetingOptionDetails struct {
10689	// DisplayName: Output only. The display name of the operating system.
10690	DisplayName string `json:"displayName,omitempty"`
10691
10692	// Negative: Indicates if this option is being negatively targeted.
10693	Negative bool `json:"negative,omitempty"`
10694
10695	// TargetingOptionId: Required. The targeting option ID populated in
10696	// targeting_option_id field when targeting_type is
10697	// `TARGETING_TYPE_OPERATING_SYSTEM`.
10698	TargetingOptionId string `json:"targetingOptionId,omitempty"`
10699
10700	// ForceSendFields is a list of field names (e.g. "DisplayName") to
10701	// unconditionally include in API requests. By default, fields with
10702	// empty values are omitted from API requests. However, any non-pointer,
10703	// non-interface field appearing in ForceSendFields will be sent to the
10704	// server regardless of whether the field is empty or not. This may be
10705	// used to include empty fields in Patch requests.
10706	ForceSendFields []string `json:"-"`
10707
10708	// NullFields is a list of field names (e.g. "DisplayName") to include
10709	// in API requests with the JSON null value. By default, fields with
10710	// empty values are omitted from API requests. However, any field with
10711	// an empty value appearing in NullFields will be sent to the server as
10712	// null. It is an error if a field in this list has a non-empty value.
10713	// This may be used to include null fields in Patch requests.
10714	NullFields []string `json:"-"`
10715}
10716
10717func (s *OperatingSystemAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
10718	type NoMethod OperatingSystemAssignedTargetingOptionDetails
10719	raw := NoMethod(*s)
10720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10721}
10722
10723// OperatingSystemTargetingOptionDetails: Represents a targetable
10724// operating system. This will be populated in the
10725// operating_system_details field of a TargetingOption when
10726// targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`.
10727type OperatingSystemTargetingOptionDetails struct {
10728	// DisplayName: Output only. The display name of the operating system.
10729	DisplayName string `json:"displayName,omitempty"`
10730
10731	// ForceSendFields is a list of field names (e.g. "DisplayName") to
10732	// unconditionally include in API requests. By default, fields with
10733	// empty values are omitted from API requests. However, any non-pointer,
10734	// non-interface field appearing in ForceSendFields will be sent to the
10735	// server regardless of whether the field is empty or not. This may be
10736	// used to include empty fields in Patch requests.
10737	ForceSendFields []string `json:"-"`
10738
10739	// NullFields is a list of field names (e.g. "DisplayName") to include
10740	// in API requests with the JSON null value. By default, fields with
10741	// empty values are omitted from API requests. However, any field with
10742	// an empty value appearing in NullFields will be sent to the server as
10743	// null. It is an error if a field in this list has a non-empty value.
10744	// This may be used to include null fields in Patch requests.
10745	NullFields []string `json:"-"`
10746}
10747
10748func (s *OperatingSystemTargetingOptionDetails) MarshalJSON() ([]byte, error) {
10749	type NoMethod OperatingSystemTargetingOptionDetails
10750	raw := NoMethod(*s)
10751	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10752}
10753
10754// Operation: This resource represents a long-running operation that is
10755// the result of a network API call.
10756type Operation struct {
10757	// Done: If the value is `false`, it means the operation is still in
10758	// progress. If `true`, the operation is completed, and either `error`
10759	// or `response` is available.
10760	Done bool `json:"done,omitempty"`
10761
10762	// Error: The error result of the operation in case of failure or
10763	// cancellation.
10764	Error *Status `json:"error,omitempty"`
10765
10766	// Metadata: Service-specific metadata associated with the operation. It
10767	// typically contains progress information and common metadata such as
10768	// create time. Some services might not provide such metadata. Any
10769	// method that returns a long-running operation should document the
10770	// metadata type, if any.
10771	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
10772
10773	// Name: The server-assigned name, which is only unique within the same
10774	// service that originally returns it. If you use the default HTTP
10775	// mapping, the `name` should be a resource name ending with
10776	// `operations/{unique_id}`.
10777	Name string `json:"name,omitempty"`
10778
10779	// Response: The normal response of the operation in case of success. If
10780	// the original method returns no data on success, such as `Delete`, the
10781	// response is `google.protobuf.Empty`. If the original method is
10782	// standard `Get`/`Create`/`Update`, the response should be the
10783	// resource. For other methods, the response should have the type
10784	// `XxxResponse`, where `Xxx` is the original method name. For example,
10785	// if the original method name is `TakeSnapshot()`, the inferred
10786	// response type is `TakeSnapshotResponse`.
10787	Response googleapi.RawMessage `json:"response,omitempty"`
10788
10789	// ServerResponse contains the HTTP response code and headers from the
10790	// server.
10791	googleapi.ServerResponse `json:"-"`
10792
10793	// ForceSendFields is a list of field names (e.g. "Done") to
10794	// unconditionally include in API requests. By default, fields with
10795	// empty values are omitted from API requests. However, any non-pointer,
10796	// non-interface field appearing in ForceSendFields will be sent to the
10797	// server regardless of whether the field is empty or not. This may be
10798	// used to include empty fields in Patch requests.
10799	ForceSendFields []string `json:"-"`
10800
10801	// NullFields is a list of field names (e.g. "Done") to include in API
10802	// requests with the JSON null value. By default, fields with empty
10803	// values are omitted from API requests. However, any field with an
10804	// empty value appearing in NullFields will be sent to the server as
10805	// null. It is an error if a field in this list has a non-empty value.
10806	// This may be used to include null fields in Patch requests.
10807	NullFields []string `json:"-"`
10808}
10809
10810func (s *Operation) MarshalJSON() ([]byte, error) {
10811	type NoMethod Operation
10812	raw := NoMethod(*s)
10813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10814}
10815
10816// Pacing: Settings that control the rate at which a budget is spent.
10817type Pacing struct {
10818	// DailyMaxImpressions: Maximum number of impressions to serve every
10819	// day. Applicable when the budget is impression based. Must be greater
10820	// than 0.
10821	DailyMaxImpressions int64 `json:"dailyMaxImpressions,omitempty,string"`
10822
10823	// DailyMaxMicros: Maximum currency amount to spend every day in micros
10824	// of advertiser's currency. Applicable when the budget is currency
10825	// based. Must be greater than 0. For example, for 1.5 standard unit of
10826	// the currency, set this field to 1500000. The value assigned will be
10827	// rounded to whole billable units for the relevant currency by the
10828	// following rules: any positive value less than a single billable unit
10829	// will be rounded up to one billable unit and any value larger than a
10830	// single billable unit will be rounded down to the nearest billable
10831	// value. For example, if the currency's billable unit is 0.01, and this
10832	// field is set to 10257770, it will round down to 10250000, a value of
10833	// 10.25. If set to 505, it will round up to 10000, a value of 0.01.
10834	DailyMaxMicros int64 `json:"dailyMaxMicros,omitempty,string"`
10835
10836	// PacingPeriod: Required. The time period in which the pacing budget
10837	// will be spent. When automatic budget allocation is enabled at the
10838	// insertion order via auto_budget_allocation, this field is output only
10839	// and defaults to `PACING_PERIOD_FLIGHT`.
10840	//
10841	// Possible values:
10842	//   "PACING_PERIOD_UNSPECIFIED" - Period value is not specified or is
10843	// unknown in this version.
10844	//   "PACING_PERIOD_DAILY" - The pacing setting will be applied on daily
10845	// basis.
10846	//   "PACING_PERIOD_FLIGHT" - The pacing setting will be applied to the
10847	// whole flight duration.
10848	PacingPeriod string `json:"pacingPeriod,omitempty"`
10849
10850	// PacingType: Required. The type of pacing that defines how the budget
10851	// amount will be spent across the pacing_period.
10852	//
10853	// Possible values:
10854	//   "PACING_TYPE_UNSPECIFIED" - Pacing mode value is not specified or
10855	// is unknown in this version.
10856	//   "PACING_TYPE_AHEAD" - Only applicable to `PACING_PERIOD_FLIGHT`
10857	// pacing period. Ahead pacing attempts to spend faster than evenly, to
10858	// make sure the entire budget is spent by the end of the flight.
10859	//   "PACING_TYPE_ASAP" - Spend all of pacing budget amount as quick as
10860	// possible.
10861	//   "PACING_TYPE_EVEN" - Spend a consistent budget amount every period
10862	// of time.
10863	PacingType string `json:"pacingType,omitempty"`
10864
10865	// ForceSendFields is a list of field names (e.g. "DailyMaxImpressions")
10866	// to unconditionally include in API requests. By default, fields with
10867	// empty values are omitted from API requests. However, any non-pointer,
10868	// non-interface field appearing in ForceSendFields will be sent to the
10869	// server regardless of whether the field is empty or not. This may be
10870	// used to include empty fields in Patch requests.
10871	ForceSendFields []string `json:"-"`
10872
10873	// NullFields is a list of field names (e.g. "DailyMaxImpressions") to
10874	// include in API requests with the JSON null value. By default, fields
10875	// with empty values are omitted from API requests. However, any field
10876	// with an empty value appearing in NullFields will be sent to the
10877	// server as null. It is an error if a field in this list has a
10878	// non-empty value. This may be used to include null fields in Patch
10879	// requests.
10880	NullFields []string `json:"-"`
10881}
10882
10883func (s *Pacing) MarshalJSON() ([]byte, error) {
10884	type NoMethod Pacing
10885	raw := NoMethod(*s)
10886	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10887}
10888
10889// ParentEntityFilter: A filtering option that filters on selected file
10890// types belonging to a chosen set of filter entities.
10891type ParentEntityFilter struct {
10892	// FileType: Required. File types that will be returned.
10893	//
10894	// Possible values:
10895	//   "FILE_TYPE_UNSPECIFIED" - Default value when type is unspecified or
10896	// is unknown in this version.
10897	//   "FILE_TYPE_CAMPAIGN" - Campaign.
10898	//   "FILE_TYPE_MEDIA_PRODUCT" - Media Product.
10899	//   "FILE_TYPE_INSERTION_ORDER" - Insertion Order.
10900	//   "FILE_TYPE_LINE_ITEM" - Line Item.
10901	//   "FILE_TYPE_AD_GROUP" - YouTube Ad Group.
10902	//   "FILE_TYPE_AD" - YouTube Ad.
10903	FileType []string `json:"fileType,omitempty"`
10904
10905	// FilterIds: The IDs of the specified filter type. This is used to
10906	// filter entities to fetch. If filter type is not `FILTER_TYPE_NONE`,
10907	// at least one ID must be specified.
10908	FilterIds googleapi.Int64s `json:"filterIds,omitempty"`
10909
10910	// FilterType: Required. Filter type used to filter fetched entities.
10911	//
10912	// Possible values:
10913	//   "FILTER_TYPE_UNSPECIFIED" - Default value when type is unspecified
10914	// or is unknown in this version.
10915	//   "FILTER_TYPE_NONE" - If selected, no filter will be applied to the
10916	// download. Can only be used if an Advertiser is specified in
10917	// CreateSdfDownloadTaskRequest.
10918	//   "FILTER_TYPE_ADVERTISER_ID" - Advertiser ID. If selected, all
10919	// filter IDs must be Advertiser IDs that belong to the Partner
10920	// specified in CreateSdfDownloadTaskRequest.
10921	//   "FILTER_TYPE_CAMPAIGN_ID" - Campaign ID. If selected, all filter
10922	// IDs must be Campaign IDs that belong to the Advertiser or Partner
10923	// specified in CreateSdfDownloadTaskRequest.
10924	//   "FILTER_TYPE_MEDIA_PRODUCT_ID" - Media Product ID. If selected, all
10925	// filter IDs must be Media Product IDs that belong to the Advertiser or
10926	// Partner specified in CreateSdfDownloadTaskRequest. Can only be used
10927	// for downloading `FILE_TYPE_MEDIA_PRODUCT`.
10928	//   "FILTER_TYPE_INSERTION_ORDER_ID" - Insertion Order ID. If selected,
10929	// all filter IDs must be Insertion Order IDs that belong to the
10930	// Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Can
10931	// only be used for downloading `FILE_TYPE_INSERTION_ORDER`,
10932	// `FILE_TYPE_LINE_ITEM`, `FILE_TYPE_AD_GROUP`, and `FILE_TYPE_AD`.
10933	//   "FILTER_TYPE_LINE_ITEM_ID" - Line Item ID. If selected, all filter
10934	// IDs must be Line Item IDs that belong to the Advertiser or Partner
10935	// specified in CreateSdfDownloadTaskRequest. Can only be used for
10936	// downloading `FILE_TYPE_LINE_ITEM`, `FILE_TYPE_AD_GROUP`, and
10937	// `FILE_TYPE_AD`.
10938	FilterType string `json:"filterType,omitempty"`
10939
10940	// ForceSendFields is a list of field names (e.g. "FileType") to
10941	// unconditionally include in API requests. By default, fields with
10942	// empty values are omitted from API requests. However, any non-pointer,
10943	// non-interface field appearing in ForceSendFields will be sent to the
10944	// server regardless of whether the field is empty or not. This may be
10945	// used to include empty fields in Patch requests.
10946	ForceSendFields []string `json:"-"`
10947
10948	// NullFields is a list of field names (e.g. "FileType") to include in
10949	// API requests with the JSON null value. By default, fields with empty
10950	// values are omitted from API requests. However, any field with an
10951	// empty value appearing in NullFields will be sent to the server as
10952	// null. It is an error if a field in this list has a non-empty value.
10953	// This may be used to include null fields in Patch requests.
10954	NullFields []string `json:"-"`
10955}
10956
10957func (s *ParentEntityFilter) MarshalJSON() ([]byte, error) {
10958	type NoMethod ParentEntityFilter
10959	raw := NoMethod(*s)
10960	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10961}
10962
10963// ParentalStatusAssignedTargetingOptionDetails: Details for assigned
10964// parental status targeting option. This will be populated in the
10965// details field of an AssignedTargetingOption when targeting_type is
10966// `TARTGETING_TYPE_PARENTAL_STATUS`.
10967type ParentalStatusAssignedTargetingOptionDetails struct {
10968	// ParentalStatus: Output only. The parental status of the audience.
10969	//
10970	// Possible values:
10971	//   "PARENTAL_STATUS_UNSPECIFIED" - Default value when parental status
10972	// is not specified in this version. This enum is a place holder for
10973	// default value and does not represent a real parental status option.
10974	//   "PARENTAL_STATUS_PARENT" - The audience is a parent.
10975	//   "PARENTAL_STATUS_NOT_A_PARENT" - The audience is not a parent.
10976	//   "PARENTAL_STATUS_UNKNOWN" - The parental status of the audience is
10977	// unknown.
10978	ParentalStatus string `json:"parentalStatus,omitempty"`
10979
10980	// TargetingOptionId: Required. The targeting_option_id of a
10981	// TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`.
10982	TargetingOptionId string `json:"targetingOptionId,omitempty"`
10983
10984	// ForceSendFields is a list of field names (e.g. "ParentalStatus") to
10985	// unconditionally include in API requests. By default, fields with
10986	// empty values are omitted from API requests. However, any non-pointer,
10987	// non-interface field appearing in ForceSendFields will be sent to the
10988	// server regardless of whether the field is empty or not. This may be
10989	// used to include empty fields in Patch requests.
10990	ForceSendFields []string `json:"-"`
10991
10992	// NullFields is a list of field names (e.g. "ParentalStatus") to
10993	// include in API requests with the JSON null value. By default, fields
10994	// with empty values are omitted from API requests. However, any field
10995	// with an empty value appearing in NullFields will be sent to the
10996	// server as null. It is an error if a field in this list has a
10997	// non-empty value. This may be used to include null fields in Patch
10998	// requests.
10999	NullFields []string `json:"-"`
11000}
11001
11002func (s *ParentalStatusAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11003	type NoMethod ParentalStatusAssignedTargetingOptionDetails
11004	raw := NoMethod(*s)
11005	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11006}
11007
11008// ParentalStatusTargetingOptionDetails: Represents a targetable
11009// parental status. This will be populated in the
11010// parental_status_details field of a TargetingOption when
11011// targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`.
11012type ParentalStatusTargetingOptionDetails struct {
11013	// ParentalStatus: Output only. The parental status of an audience.
11014	//
11015	// Possible values:
11016	//   "PARENTAL_STATUS_UNSPECIFIED" - Default value when parental status
11017	// is not specified in this version. This enum is a place holder for
11018	// default value and does not represent a real parental status option.
11019	//   "PARENTAL_STATUS_PARENT" - The audience is a parent.
11020	//   "PARENTAL_STATUS_NOT_A_PARENT" - The audience is not a parent.
11021	//   "PARENTAL_STATUS_UNKNOWN" - The parental status of the audience is
11022	// unknown.
11023	ParentalStatus string `json:"parentalStatus,omitempty"`
11024
11025	// ForceSendFields is a list of field names (e.g. "ParentalStatus") to
11026	// unconditionally include in API requests. By default, fields with
11027	// empty values are omitted from API requests. However, any non-pointer,
11028	// non-interface field appearing in ForceSendFields will be sent to the
11029	// server regardless of whether the field is empty or not. This may be
11030	// used to include empty fields in Patch requests.
11031	ForceSendFields []string `json:"-"`
11032
11033	// NullFields is a list of field names (e.g. "ParentalStatus") to
11034	// include in API requests with the JSON null value. By default, fields
11035	// with empty values are omitted from API requests. However, any field
11036	// with an empty value appearing in NullFields will be sent to the
11037	// server as null. It is an error if a field in this list has a
11038	// non-empty value. This may be used to include null fields in Patch
11039	// requests.
11040	NullFields []string `json:"-"`
11041}
11042
11043func (s *ParentalStatusTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11044	type NoMethod ParentalStatusTargetingOptionDetails
11045	raw := NoMethod(*s)
11046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11047}
11048
11049// Partner: A single partner in Display & Video 360 (DV360).
11050type Partner struct {
11051	// AdServerConfig: Ad server related settings of the partner.
11052	AdServerConfig *PartnerAdServerConfig `json:"adServerConfig,omitempty"`
11053
11054	// DataAccessConfig: Settings that control how partner data may be
11055	// accessed.
11056	DataAccessConfig *PartnerDataAccessConfig `json:"dataAccessConfig,omitempty"`
11057
11058	// DisplayName: The display name of the partner. Must be UTF-8 encoded
11059	// with a maximum size of 240 bytes.
11060	DisplayName string `json:"displayName,omitempty"`
11061
11062	// EntityStatus: Output only. The status of the partner.
11063	//
11064	// Possible values:
11065	//   "ENTITY_STATUS_UNSPECIFIED" - Default value when status is not
11066	// specified or is unknown in this version.
11067	//   "ENTITY_STATUS_ACTIVE" - The entity is enabled to bid and spend
11068	// budget.
11069	//   "ENTITY_STATUS_ARCHIVED" - The entity is archived. Bidding and
11070	// budget spending are disabled. An entity can be deleted after
11071	// archived. Deleted entities cannot be retrieved.
11072	//   "ENTITY_STATUS_DRAFT" - The entity is under draft. Bidding and
11073	// budget spending are disabled.
11074	//   "ENTITY_STATUS_PAUSED" - Bidding and budget spending are paused for
11075	// the entity.
11076	//   "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - The entity is scheduled
11077	// for deletion.
11078	EntityStatus string `json:"entityStatus,omitempty"`
11079
11080	// ExchangeConfig: Settings that control which exchanges are enabled for
11081	// the partner.
11082	ExchangeConfig *ExchangeConfig `json:"exchangeConfig,omitempty"`
11083
11084	// GeneralConfig: General settings of the partner.
11085	GeneralConfig *PartnerGeneralConfig `json:"generalConfig,omitempty"`
11086
11087	// Name: Output only. The resource name of the partner.
11088	Name string `json:"name,omitempty"`
11089
11090	// PartnerId: Output only. The unique ID of the partner. Assigned by the
11091	// system.
11092	PartnerId int64 `json:"partnerId,omitempty,string"`
11093
11094	// UpdateTime: Output only. The timestamp when the partner was last
11095	// updated. Assigned by the system.
11096	UpdateTime string `json:"updateTime,omitempty"`
11097
11098	// ServerResponse contains the HTTP response code and headers from the
11099	// server.
11100	googleapi.ServerResponse `json:"-"`
11101
11102	// ForceSendFields is a list of field names (e.g. "AdServerConfig") to
11103	// unconditionally include in API requests. By default, fields with
11104	// empty values are omitted from API requests. However, any non-pointer,
11105	// non-interface field appearing in ForceSendFields will be sent to the
11106	// server regardless of whether the field is empty or not. This may be
11107	// used to include empty fields in Patch requests.
11108	ForceSendFields []string `json:"-"`
11109
11110	// NullFields is a list of field names (e.g. "AdServerConfig") to
11111	// include in API requests with the JSON null value. By default, fields
11112	// with empty values are omitted from API requests. However, any field
11113	// with an empty value appearing in NullFields will be sent to the
11114	// server as null. It is an error if a field in this list has a
11115	// non-empty value. This may be used to include null fields in Patch
11116	// requests.
11117	NullFields []string `json:"-"`
11118}
11119
11120func (s *Partner) MarshalJSON() ([]byte, error) {
11121	type NoMethod Partner
11122	raw := NoMethod(*s)
11123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11124}
11125
11126// PartnerAdServerConfig: Ad server related settings of a partner.
11127type PartnerAdServerConfig struct {
11128	// MeasurementConfig: Measurement settings of a partner.
11129	MeasurementConfig *MeasurementConfig `json:"measurementConfig,omitempty"`
11130
11131	// ForceSendFields is a list of field names (e.g. "MeasurementConfig")
11132	// to unconditionally include in API requests. By default, fields with
11133	// empty values are omitted from API requests. However, any non-pointer,
11134	// non-interface field appearing in ForceSendFields will be sent to the
11135	// server regardless of whether the field is empty or not. This may be
11136	// used to include empty fields in Patch requests.
11137	ForceSendFields []string `json:"-"`
11138
11139	// NullFields is a list of field names (e.g. "MeasurementConfig") to
11140	// include in API requests with the JSON null value. By default, fields
11141	// with empty values are omitted from API requests. However, any field
11142	// with an empty value appearing in NullFields will be sent to the
11143	// server as null. It is an error if a field in this list has a
11144	// non-empty value. This may be used to include null fields in Patch
11145	// requests.
11146	NullFields []string `json:"-"`
11147}
11148
11149func (s *PartnerAdServerConfig) MarshalJSON() ([]byte, error) {
11150	type NoMethod PartnerAdServerConfig
11151	raw := NoMethod(*s)
11152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11153}
11154
11155// PartnerCost: Settings that control a partner cost. A partner cost is
11156// any type of expense involved in running a campaign, other than the
11157// costs of purchasing impressions (which is called the media cost) and
11158// using third-party audience segment data (data fee). Some examples of
11159// partner costs include the fees for using DV360, a third-party ad
11160// server, or a third-party ad serving verification service.
11161type PartnerCost struct {
11162	// CostType: Required. The type of the partner cost.
11163	//
11164	// Possible values:
11165	//   "PARTNER_COST_TYPE_UNSPECIFIED" - Type value is not specified or is
11166	// unknown in this version.
11167	//   "PARTNER_COST_TYPE_ADLOOX" - The cost is charged for using Adloox.
11168	//   "PARTNER_COST_TYPE_ADLOOX_PREBID" - The cost is charged for using
11169	// Adloox Pre-Bid.
11170	//   "PARTNER_COST_TYPE_ADSAFE" - The cost is charged for using AdSafe.
11171	//   "PARTNER_COST_TYPE_ADXPOSE" - The cost is charged for using
11172	// AdExpose.
11173	//   "PARTNER_COST_TYPE_AGGREGATE_KNOWLEDGE" - The cost is charged for
11174	// using Aggregate Knowledge.
11175	//   "PARTNER_COST_TYPE_AGENCY_TRADING_DESK" - The cost is charged for
11176	// using an Agency Trading Desk.
11177	//   "PARTNER_COST_TYPE_DV360_FEE" - The cost is charged for using
11178	// DV360.
11179	//   "PARTNER_COST_TYPE_COMSCORE_VCE" - The cost is charged for using
11180	// comScore vCE.
11181	//   "PARTNER_COST_TYPE_DATA_MANAGEMENT_PLATFORM" - The cost is charged
11182	// for using a Data Management Platform.
11183	//   "PARTNER_COST_TYPE_DEFAULT" - The default cost type.
11184	//   "PARTNER_COST_TYPE_DOUBLE_VERIFY" - The cost is charged for using
11185	// DoubleVerify.
11186	//   "PARTNER_COST_TYPE_DOUBLE_VERIFY_PREBID" - The cost is charged for
11187	// using DoubleVerify Pre-Bid.
11188	//   "PARTNER_COST_TYPE_EVIDON" - The cost is charged for using Evidon.
11189	//   "PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_VIDEO" - The cost is charged
11190	// for using Integral Ad Science Video.
11191	//   "PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_PREBID" - The cost is
11192	// charged for using Integral Ad Science Pre-Bid.
11193	//   "PARTNER_COST_TYPE_MEDIA_COST_DATA" - The cost is charged for using
11194	// media cost data.
11195	//   "PARTNER_COST_TYPE_MOAT_VIDEO" - The cost is charged for using MOAT
11196	// Video.
11197	//   "PARTNER_COST_TYPE_NIELSEN_DAR" - The cost is charged for using
11198	// Nielsen Digital Ad Ratings.
11199	//   "PARTNER_COST_TYPE_SHOP_LOCAL" - The cost is charged for using
11200	// ShopLocal.
11201	//   "PARTNER_COST_TYPE_TERACENT" - The cost is charged for using
11202	// Teracent.
11203	//   "PARTNER_COST_TYPE_THIRD_PARTY_AD_SERVER" - The cost is charged for
11204	// using a third-party ad server.
11205	//   "PARTNER_COST_TYPE_TRUST_METRICS" - The cost is charged for using
11206	// TrustMetrics.
11207	//   "PARTNER_COST_TYPE_VIZU" - The cost is charged for using Vizu.
11208	//   "PARTNER_COST_TYPE_ADLINGO_FEE" - The cost is charged for using
11209	// AdLingo.
11210	//   "PARTNER_COST_TYPE_CUSTOM_FEE_1" - The cost is charged as custom
11211	// fee 1.
11212	//   "PARTNER_COST_TYPE_CUSTOM_FEE_2" - The cost is charged as custom
11213	// fee 2.
11214	//   "PARTNER_COST_TYPE_CUSTOM_FEE_3" - The cost is charged as custom
11215	// fee 3.
11216	//   "PARTNER_COST_TYPE_CUSTOM_FEE_4" - The cost is charged as custom
11217	// fee 4.
11218	//   "PARTNER_COST_TYPE_CUSTOM_FEE_5" - The cost is charged as custom
11219	// fee 5.
11220	CostType string `json:"costType,omitempty"`
11221
11222	// FeeAmount: The CPM fee amount in micros of advertiser's currency.
11223	// Applicable when the fee_type is `PARTNER_FEE_TYPE_CPM_FEE`. Must be
11224	// greater than or equal to 0. For example, for 1.5 standard unit of the
11225	// advertiser's currency, set this field to 1500000.
11226	FeeAmount int64 `json:"feeAmount,omitempty,string"`
11227
11228	// FeePercentageMillis: The media fee percentage in millis (1/1000 of a
11229	// percent). Applicable when the fee_type is
11230	// `PARTNER_FEE_TYPE_MEDIA_FEE`. Must be greater than or equal to 0. For
11231	// example: 100 represents 0.1%.
11232	FeePercentageMillis int64 `json:"feePercentageMillis,omitempty,string"`
11233
11234	// FeeType: Required. The fee type for this partner cost.
11235	//
11236	// Possible values:
11237	//   "PARTNER_COST_FEE_TYPE_UNSPECIFIED" - Value is not specified or is
11238	// unknown in this version.
11239	//   "PARTNER_COST_FEE_TYPE_CPM_FEE" - The partner cost is a fixed CPM
11240	// fee. Not applicable when the partner cost cost_type is one of: *
11241	// `PARTNER_COST_TYPE_MEDIA_COST_DATA` * `PARTNER_COST_TYPE_DV360_FEE`.
11242	//   "PARTNER_COST_FEE_TYPE_MEDIA_FEE" - The partner cost is a
11243	// percentage surcharge based on the media cost. Not applicable when the
11244	// partner cost_type is one of: * `PARTNER_COST_TYPE_SHOP_LOCAL` *
11245	// `PARTNER_COST_TYPE_TRUST_METRICS` *
11246	// `PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_VIDEO` *
11247	// `PARTNER_COST_TYPE_MOAT_VIDEO`.
11248	FeeType string `json:"feeType,omitempty"`
11249
11250	// InvoiceType: The invoice type for this partner cost. * Required when
11251	// cost_type is one of: - `PARTNER_COST_TYPE_ADLOOX` -
11252	// `PARTNER_COST_TYPE_DOUBLE_VERIFY` -
11253	// `PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE`. * Output only for other
11254	// types.
11255	//
11256	// Possible values:
11257	//   "PARTNER_COST_INVOICE_TYPE_UNSPECIFIED" - Type value is not
11258	// specified or is unknown in this version.
11259	//   "PARTNER_COST_INVOICE_TYPE_DV360" - Partner cost is billed through
11260	// DV360.
11261	//   "PARTNER_COST_INVOICE_TYPE_PARTNER" - Partner cost is billed by the
11262	// partner.
11263	InvoiceType string `json:"invoiceType,omitempty"`
11264
11265	// ForceSendFields is a list of field names (e.g. "CostType") to
11266	// unconditionally include in API requests. By default, fields with
11267	// empty values are omitted from API requests. However, any non-pointer,
11268	// non-interface field appearing in ForceSendFields will be sent to the
11269	// server regardless of whether the field is empty or not. This may be
11270	// used to include empty fields in Patch requests.
11271	ForceSendFields []string `json:"-"`
11272
11273	// NullFields is a list of field names (e.g. "CostType") to include in
11274	// API requests with the JSON null value. By default, fields with empty
11275	// values are omitted from API requests. However, any field with an
11276	// empty value appearing in NullFields will be sent to the server as
11277	// null. It is an error if a field in this list has a non-empty value.
11278	// This may be used to include null fields in Patch requests.
11279	NullFields []string `json:"-"`
11280}
11281
11282func (s *PartnerCost) MarshalJSON() ([]byte, error) {
11283	type NoMethod PartnerCost
11284	raw := NoMethod(*s)
11285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11286}
11287
11288// PartnerDataAccessConfig: Settings that control how partner related
11289// data may be accessed.
11290type PartnerDataAccessConfig struct {
11291	// SdfConfig: Structured Data Files (SDF) settings for the partner. The
11292	// SDF configuration for the partner.
11293	SdfConfig *SdfConfig `json:"sdfConfig,omitempty"`
11294
11295	// ForceSendFields is a list of field names (e.g. "SdfConfig") to
11296	// unconditionally include in API requests. By default, fields with
11297	// empty values are omitted from API requests. However, any non-pointer,
11298	// non-interface field appearing in ForceSendFields will be sent to the
11299	// server regardless of whether the field is empty or not. This may be
11300	// used to include empty fields in Patch requests.
11301	ForceSendFields []string `json:"-"`
11302
11303	// NullFields is a list of field names (e.g. "SdfConfig") to include in
11304	// API requests with the JSON null value. By default, fields with empty
11305	// values are omitted from API requests. However, any field with an
11306	// empty value appearing in NullFields will be sent to the server as
11307	// null. It is an error if a field in this list has a non-empty value.
11308	// This may be used to include null fields in Patch requests.
11309	NullFields []string `json:"-"`
11310}
11311
11312func (s *PartnerDataAccessConfig) MarshalJSON() ([]byte, error) {
11313	type NoMethod PartnerDataAccessConfig
11314	raw := NoMethod(*s)
11315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11316}
11317
11318// PartnerGeneralConfig: General settings of a partner.
11319type PartnerGeneralConfig struct {
11320	// CurrencyCode: Immutable. Partner's currency in ISO 4217 format.
11321	CurrencyCode string `json:"currencyCode,omitempty"`
11322
11323	// TimeZone: Immutable. The standard TZ database name of the partner's
11324	// time zone. For example, `America/New_York`. See more at:
11325	// https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
11326	TimeZone string `json:"timeZone,omitempty"`
11327
11328	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
11329	// unconditionally include in API requests. By default, fields with
11330	// empty values are omitted from API requests. However, any non-pointer,
11331	// non-interface field appearing in ForceSendFields will be sent to the
11332	// server regardless of whether the field is empty or not. This may be
11333	// used to include empty fields in Patch requests.
11334	ForceSendFields []string `json:"-"`
11335
11336	// NullFields is a list of field names (e.g. "CurrencyCode") to include
11337	// in API requests with the JSON null value. By default, fields with
11338	// empty values are omitted from API requests. However, any field with
11339	// an empty value appearing in NullFields will be sent to the server as
11340	// null. It is an error if a field in this list has a non-empty value.
11341	// This may be used to include null fields in Patch requests.
11342	NullFields []string `json:"-"`
11343}
11344
11345func (s *PartnerGeneralConfig) MarshalJSON() ([]byte, error) {
11346	type NoMethod PartnerGeneralConfig
11347	raw := NoMethod(*s)
11348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11349}
11350
11351// PartnerRevenueModel: Settings that control how partner revenue is
11352// calculated.
11353type PartnerRevenueModel struct {
11354	// MarkupAmount: Required. The markup amount of the partner revenue
11355	// model. Must be greater than or equal to 0. * When the markup_type is
11356	// set to be `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`, this field
11357	// represents the CPM markup in micros of advertiser's currency. For
11358	// example, 1500000 represents 1.5 standard units of the currency. *
11359	// When the markup_type is set to be
11360	// `PARTNER_REVENUE_MODEL_MARKUP_TYPE_MEDIA_COST_MARKUP`, this field
11361	// represents the media cost percent markup in millis. For example, 100
11362	// represents 0.1% (decimal 0.001). * When the markup_type is set to be
11363	// `PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP`, this
11364	// field represents the total media cost percent markup in millis. For
11365	// example, 100 represents 0.1% (decimal 0.001).
11366	MarkupAmount int64 `json:"markupAmount,omitempty,string"`
11367
11368	// MarkupType: Required. The markup type of the partner revenue model.
11369	//
11370	// Possible values:
11371	//   "PARTNER_REVENUE_MODEL_MARKUP_TYPE_UNSPECIFIED" - Type value is not
11372	// specified or is unknown in this version.
11373	//   "PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM" - Calculate the partner
11374	// revenue based on a fixed CPM.
11375	//   "PARTNER_REVENUE_MODEL_MARKUP_TYPE_MEDIA_COST_MARKUP" - Calculate
11376	// the partner revenue based on a percentage surcharge of its media
11377	// cost.
11378	//   "PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP" -
11379	// Calculate the partner revenue based on a percentage surcharge of its
11380	// total media cost, which includes all partner costs and data costs.
11381	MarkupType string `json:"markupType,omitempty"`
11382
11383	// ForceSendFields is a list of field names (e.g. "MarkupAmount") to
11384	// unconditionally include in API requests. By default, fields with
11385	// empty values are omitted from API requests. However, any non-pointer,
11386	// non-interface field appearing in ForceSendFields will be sent to the
11387	// server regardless of whether the field is empty or not. This may be
11388	// used to include empty fields in Patch requests.
11389	ForceSendFields []string `json:"-"`
11390
11391	// NullFields is a list of field names (e.g. "MarkupAmount") to include
11392	// in API requests with the JSON null value. By default, fields with
11393	// empty values are omitted from API requests. However, any field with
11394	// an empty value appearing in NullFields will be sent to the server as
11395	// null. It is an error if a field in this list has a non-empty value.
11396	// This may be used to include null fields in Patch requests.
11397	NullFields []string `json:"-"`
11398}
11399
11400func (s *PartnerRevenueModel) MarshalJSON() ([]byte, error) {
11401	type NoMethod PartnerRevenueModel
11402	raw := NoMethod(*s)
11403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11404}
11405
11406// PerformanceGoal: Settings that control the performance goal of a
11407// campaign or insertion order.
11408type PerformanceGoal struct {
11409	// PerformanceGoalAmountMicros: The goal amount, in micros of the
11410	// advertiser's currency. Applicable when performance_goal_type is one
11411	// of: * `PERFORMANCE_GOAL_TYPE_CPM` * `PERFORMANCE_GOAL_TYPE_CPC` *
11412	// `PERFORMANCE_GOAL_TYPE_CPA` * `PERFORMANCE_GOAL_TYPE_CPIAVC` *
11413	// `PERFORMANCE_GOAL_TYPE_VCPM` For example 1500000 represents 1.5
11414	// standard units of the currency.
11415	PerformanceGoalAmountMicros int64 `json:"performanceGoalAmountMicros,omitempty,string"`
11416
11417	// PerformanceGoalPercentageMicros: The decimal representation of the
11418	// goal percentage in micros. Applicable when performance_goal_type is
11419	// one of: * `PERFORMANCE_GOAL_TYPE_CTR` *
11420	// `PERFORMANCE_GOAL_TYPE_VIEWABILITY` *
11421	// `PERFORMANCE_GOAL_TYPE_CLICK_CVR` *
11422	// `PERFORMANCE_GOAL_TYPE_IMPRESSION_CVR` * `PERFORMANCE_GOAL_TYPE_VTR`
11423	// * `PERFORMANCE_GOAL_TYPE_AUDIO_COMPLETION_RATE` *
11424	// `PERFORMANCE_GOAL_TYPE_VIDEO_COMPLETION_RATE` For example, 70000
11425	// represents 7% (decimal 0.07).
11426	PerformanceGoalPercentageMicros int64 `json:"performanceGoalPercentageMicros,omitempty,string"`
11427
11428	// PerformanceGoalString: A key performance indicator (KPI) string,
11429	// which can be empty. Must be UTF-8 encoded with a length of no more
11430	// than 100 characters. Applicable when performance_goal_type is set to
11431	// `PERFORMANCE_GOAL_TYPE_OTHER`.
11432	PerformanceGoalString string `json:"performanceGoalString,omitempty"`
11433
11434	// PerformanceGoalType: Required. The type of the performance goal.
11435	//
11436	// Possible values:
11437	//   "PERFORMANCE_GOAL_TYPE_UNSPECIFIED" - Performance goal type is not
11438	// specified or is unknown in this version.
11439	//   "PERFORMANCE_GOAL_TYPE_CPM" - The performance goal is set in CPM
11440	// (cost per mille).
11441	//   "PERFORMANCE_GOAL_TYPE_CPC" - The performance goal is set in CPC
11442	// (cost per click).
11443	//   "PERFORMANCE_GOAL_TYPE_CPA" - The performance goal is set in CPA
11444	// (cost per action).
11445	//   "PERFORMANCE_GOAL_TYPE_CTR" - The performance goal is set in CTR
11446	// (click-through rate) percentage.
11447	//   "PERFORMANCE_GOAL_TYPE_VIEWABILITY" - The performance goal is set
11448	// in Viewability percentage.
11449	//   "PERFORMANCE_GOAL_TYPE_CPIAVC" - The performance goal is set as
11450	// CPIAVC (cost per impression audible and visible at completion).
11451	//   "PERFORMANCE_GOAL_TYPE_CPE" - The performance goal is set in CPE
11452	// (cost per engagement).
11453	//   "PERFORMANCE_GOAL_TYPE_CLICK_CVR" - The performance goal is set in
11454	// click conversion rate (conversions per click) percentage.
11455	//   "PERFORMANCE_GOAL_TYPE_IMPRESSION_CVR" - The performance goal is
11456	// set in impression conversion rate (conversions per impression)
11457	// percentage.
11458	//   "PERFORMANCE_GOAL_TYPE_VCPM" - The performance goal is set in VCPM
11459	// (cost per thousand viewable impressions).
11460	//   "PERFORMANCE_GOAL_TYPE_VTR" - The performance goal is set in
11461	// YouTube view rate (YouTube views per impression) percentage.
11462	//   "PERFORMANCE_GOAL_TYPE_AUDIO_COMPLETION_RATE" - The performance
11463	// goal is set in audio completion rate (complete audio listens per
11464	// impression) percentage.
11465	//   "PERFORMANCE_GOAL_TYPE_VIDEO_COMPLETION_RATE" - The performance
11466	// goal is set in video completion rate (complete video views per
11467	// impression) percentage.
11468	//   "PERFORMANCE_GOAL_TYPE_OTHER" - The performance goal is set to
11469	// Other.
11470	PerformanceGoalType string `json:"performanceGoalType,omitempty"`
11471
11472	// ForceSendFields is a list of field names (e.g.
11473	// "PerformanceGoalAmountMicros") to unconditionally include in API
11474	// requests. By default, fields with empty values are omitted from API
11475	// requests. However, any non-pointer, non-interface field appearing in
11476	// ForceSendFields will be sent to the server regardless of whether the
11477	// field is empty or not. This may be used to include empty fields in
11478	// Patch requests.
11479	ForceSendFields []string `json:"-"`
11480
11481	// NullFields is a list of field names (e.g.
11482	// "PerformanceGoalAmountMicros") to include in API requests with the
11483	// JSON null value. By default, fields with empty values are omitted
11484	// from API requests. However, any field with an empty value appearing
11485	// in NullFields will be sent to the server as null. It is an error if a
11486	// field in this list has a non-empty value. This may be used to include
11487	// null fields in Patch requests.
11488	NullFields []string `json:"-"`
11489}
11490
11491func (s *PerformanceGoal) MarshalJSON() ([]byte, error) {
11492	type NoMethod PerformanceGoal
11493	raw := NoMethod(*s)
11494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11495}
11496
11497// PerformanceGoalBidStrategy: A strategy that automatically adjusts the
11498// bid to meet or beat a specified performance goal.
11499type PerformanceGoalBidStrategy struct {
11500	// CustomBiddingAlgorithmId: The ID of the Custom Bidding Algorithm used
11501	// by this strategy. Only applicable when performance_goal_type is set
11502	// to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.
11503	CustomBiddingAlgorithmId int64 `json:"customBiddingAlgorithmId,omitempty,string"`
11504
11505	// MaxAverageCpmBidAmountMicros: The maximum average CPM that may be
11506	// bid, in micros of the advertiser's currency. Must be greater than or
11507	// equal to a billable unit of the given currency. Not applicable when
11508	// performance_goal_type is set to
11509	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`. For example,
11510	// 1500000 represents 1.5 standard units of the currency.
11511	MaxAverageCpmBidAmountMicros int64 `json:"maxAverageCpmBidAmountMicros,omitempty,string"`
11512
11513	// PerformanceGoalAmountMicros: Required. The performance goal the
11514	// bidding strategy will attempt to meet or beat, in micros of the
11515	// advertiser's currency or in micro of the ROAS (Return On Advertising
11516	// Spend) value which is also based on advertiser's currency. Must be
11517	// greater than or equal to a billable unit of the given currency and
11518	// smaller or equal to upper bounds. Each performance_goal_type has its
11519	// upper bound: * when performance_goal_type is
11520	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA`, upper bound is 10000.00
11521	// USD. * when performance_goal_type is
11522	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC`, upper bound is 1000.00
11523	// USD. * when performance_goal_type is
11524	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, upper bound is
11525	// 1000.00 USD. * when performance_goal_type is
11526	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`, upper bound is
11527	// 1000.00 and lower bound is 0.01. Example: If set to
11528	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, the bid price
11529	// will be based on the probability that each available impression will
11530	// be viewable. For example, if viewable CPM target is $2 and an
11531	// impression is 40% likely to be viewable, the bid price will be $0.80
11532	// CPM (40% of $2). For example, 1500000 represents 1.5 standard units
11533	// of the currency or ROAS value.
11534	PerformanceGoalAmountMicros int64 `json:"performanceGoalAmountMicros,omitempty,string"`
11535
11536	// PerformanceGoalType: Required. The type of the performance goal that
11537	// the bidding strategy will try to meet or beat. For line item level
11538	// usage, the value must be one of: *
11539	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA` *
11540	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC` *
11541	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM` *
11542	// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.
11543	//
11544	// Possible values:
11545	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_UNSPECIFIED" - Type value
11546	// is not specified or is unknown in this version.
11547	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA" - Cost per action.
11548	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC" - Cost per click.
11549	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM" - Viewable
11550	// CPM.
11551	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO" - Custom
11552	// bidding algorithm.
11553	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA" - Completed inview
11554	// and audible views.
11555	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN" - Inview time over
11556	// 10 secs views.
11557	//   "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED" - Viewable
11558	// impressions.
11559	PerformanceGoalType string `json:"performanceGoalType,omitempty"`
11560
11561	// ForceSendFields is a list of field names (e.g.
11562	// "CustomBiddingAlgorithmId") to unconditionally include in API
11563	// requests. By default, fields with empty values are omitted from API
11564	// requests. However, any non-pointer, non-interface field appearing in
11565	// ForceSendFields will be sent to the server regardless of whether the
11566	// field is empty or not. This may be used to include empty fields in
11567	// Patch requests.
11568	ForceSendFields []string `json:"-"`
11569
11570	// NullFields is a list of field names (e.g. "CustomBiddingAlgorithmId")
11571	// to include in API requests with the JSON null value. By default,
11572	// fields with empty values are omitted from API requests. However, any
11573	// field with an empty value appearing in NullFields will be sent to the
11574	// server as null. It is an error if a field in this list has a
11575	// non-empty value. This may be used to include null fields in Patch
11576	// requests.
11577	NullFields []string `json:"-"`
11578}
11579
11580func (s *PerformanceGoalBidStrategy) MarshalJSON() ([]byte, error) {
11581	type NoMethod PerformanceGoalBidStrategy
11582	raw := NoMethod(*s)
11583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11584}
11585
11586// ProximityLocationListAssignedTargetingOptionDetails: Targeting
11587// details for proximity location list. This will be populated in the
11588// details field of an AssignedTargetingOption when targeting_type is
11589// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`.
11590type ProximityLocationListAssignedTargetingOptionDetails struct {
11591	// ProximityLocationListId: Required. ID of the proximity location list.
11592	// Should refer to the location_list_id field of a LocationList resource
11593	// whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`.
11594	ProximityLocationListId int64 `json:"proximityLocationListId,omitempty,string"`
11595
11596	// ProximityRadiusRange: Required. Radius range for proximity location
11597	// list. This represents the size of the area around a chosen location
11598	// that will be targeted. `All` proximity location targeting under a
11599	// single resource must have the same radius range value. Set this value
11600	// to match any existing targeting. If updated, this field will change
11601	// the radius range for all proximity targeting under the resource.
11602	//
11603	// Possible values:
11604	//   "PROXIMITY_RADIUS_RANGE_UNSPECIFIED" - The targeted radius range is
11605	// not specified or is unknown. Default value when radius range is not
11606	// specified in this version. This enum is a placeholder for default
11607	// value and does not represent a real radius range option.
11608	//   "PROXIMITY_RADIUS_RANGE_SMALL" - The targeted radius range is
11609	// small.
11610	//   "PROXIMITY_RADIUS_RANGE_MEDIUM" - The targeted radius range is
11611	// medium.
11612	//   "PROXIMITY_RADIUS_RANGE_LARGE" - The targeted radius range is
11613	// large.
11614	ProximityRadiusRange string `json:"proximityRadiusRange,omitempty"`
11615
11616	// ForceSendFields is a list of field names (e.g.
11617	// "ProximityLocationListId") to unconditionally include in API
11618	// requests. By default, fields with empty values are omitted from API
11619	// requests. However, any non-pointer, non-interface field appearing in
11620	// ForceSendFields will be sent to the server regardless of whether the
11621	// field is empty or not. This may be used to include empty fields in
11622	// Patch requests.
11623	ForceSendFields []string `json:"-"`
11624
11625	// NullFields is a list of field names (e.g. "ProximityLocationListId")
11626	// to include in API requests with the JSON null value. By default,
11627	// fields with empty values are omitted from API requests. However, any
11628	// field with an empty value appearing in NullFields will be sent to the
11629	// server as null. It is an error if a field in this list has a
11630	// non-empty value. This may be used to include null fields in Patch
11631	// requests.
11632	NullFields []string `json:"-"`
11633}
11634
11635func (s *ProximityLocationListAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11636	type NoMethod ProximityLocationListAssignedTargetingOptionDetails
11637	raw := NoMethod(*s)
11638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11639}
11640
11641// PublisherReviewStatus: Publisher review status for the creative.
11642type PublisherReviewStatus struct {
11643	// PublisherName: The publisher reviewing the creative.
11644	PublisherName string `json:"publisherName,omitempty"`
11645
11646	// Status: Status of the publisher review.
11647	//
11648	// Possible values:
11649	//   "REVIEW_STATUS_UNSPECIFIED" - Type value is not specified or is
11650	// unknown in this version.
11651	//   "REVIEW_STATUS_APPROVED" - The creative is approved.
11652	//   "REVIEW_STATUS_REJECTED" - The creative is rejected.
11653	//   "REVIEW_STATUS_PENDING" - The creative is pending review.
11654	Status string `json:"status,omitempty"`
11655
11656	// ForceSendFields is a list of field names (e.g. "PublisherName") to
11657	// unconditionally include in API requests. By default, fields with
11658	// empty values are omitted from API requests. However, any non-pointer,
11659	// non-interface field appearing in ForceSendFields will be sent to the
11660	// server regardless of whether the field is empty or not. This may be
11661	// used to include empty fields in Patch requests.
11662	ForceSendFields []string `json:"-"`
11663
11664	// NullFields is a list of field names (e.g. "PublisherName") to include
11665	// in API requests with the JSON null value. By default, fields with
11666	// empty values are omitted from API requests. However, any field with
11667	// an empty value appearing in NullFields will be sent to the server as
11668	// null. It is an error if a field in this list has a non-empty value.
11669	// This may be used to include null fields in Patch requests.
11670	NullFields []string `json:"-"`
11671}
11672
11673func (s *PublisherReviewStatus) MarshalJSON() ([]byte, error) {
11674	type NoMethod PublisherReviewStatus
11675	raw := NoMethod(*s)
11676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11677}
11678
11679// RateDetails: The rate related settings of the inventory source.
11680type RateDetails struct {
11681	// InventorySourceRateType: The rate type. Acceptable values are
11682	// `INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED`,
11683	// `INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR`, and
11684	// `INVENTORY_SOURCE_RATE_TYPE_CPD`.
11685	//
11686	// Possible values:
11687	//   "INVENTORY_SOURCE_RATE_TYPE_UNSPECIFIED" - The rate type is not
11688	// specified or is unknown in this version.
11689	//   "INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED" - The rate type is CPM
11690	// (Fixed).
11691	//   "INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR" - The rate type is CPM
11692	// (Floor).
11693	//   "INVENTORY_SOURCE_RATE_TYPE_CPD" - The rate type is Cost per Day.
11694	//   "INVENTORY_SOURCE_RATE_TYPE_FLAT" - The rate type is Flat.
11695	InventorySourceRateType string `json:"inventorySourceRateType,omitempty"`
11696
11697	// MinimumSpend: Output only. The amount that the buyer has committed to
11698	// spending on the inventory source up front. Only applicable for
11699	// guaranteed inventory sources.
11700	MinimumSpend *Money `json:"minimumSpend,omitempty"`
11701
11702	// Rate: The rate for the inventory source.
11703	Rate *Money `json:"rate,omitempty"`
11704
11705	// UnitsPurchased: Required for guaranteed inventory sources. The number
11706	// of impressions guaranteed by the seller.
11707	UnitsPurchased int64 `json:"unitsPurchased,omitempty,string"`
11708
11709	// ForceSendFields is a list of field names (e.g.
11710	// "InventorySourceRateType") to unconditionally include in API
11711	// requests. By default, fields with empty values are omitted from API
11712	// requests. However, any non-pointer, non-interface field appearing in
11713	// ForceSendFields will be sent to the server regardless of whether the
11714	// field is empty or not. This may be used to include empty fields in
11715	// Patch requests.
11716	ForceSendFields []string `json:"-"`
11717
11718	// NullFields is a list of field names (e.g. "InventorySourceRateType")
11719	// to include in API requests with the JSON null value. By default,
11720	// fields with empty values are omitted from API requests. However, any
11721	// field with an empty value appearing in NullFields will be sent to the
11722	// server as null. It is an error if a field in this list has a
11723	// non-empty value. This may be used to include null fields in Patch
11724	// requests.
11725	NullFields []string `json:"-"`
11726}
11727
11728func (s *RateDetails) MarshalJSON() ([]byte, error) {
11729	type NoMethod RateDetails
11730	raw := NoMethod(*s)
11731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11732}
11733
11734// RegionalLocationListAssignedTargetingOptionDetails: Targeting details
11735// for regional location list. This will be populated in the details
11736// field of an AssignedTargetingOption when targeting_type is
11737// `TARGETING_TYPE_REGIONAL_LOCATION_LIST`.
11738type RegionalLocationListAssignedTargetingOptionDetails struct {
11739	// Negative: Indicates if this option is being negatively targeted.
11740	Negative bool `json:"negative,omitempty"`
11741
11742	// RegionalLocationListId: Required. ID of the regional location list.
11743	// Should refer to the location_list_id field of a LocationList resource
11744	// whose type is `TARGETING_LOCATION_TYPE_REGIONAL`.
11745	RegionalLocationListId int64 `json:"regionalLocationListId,omitempty,string"`
11746
11747	// ForceSendFields is a list of field names (e.g. "Negative") to
11748	// unconditionally include in API requests. By default, fields with
11749	// empty values are omitted from API requests. However, any non-pointer,
11750	// non-interface field appearing in ForceSendFields will be sent to the
11751	// server regardless of whether the field is empty or not. This may be
11752	// used to include empty fields in Patch requests.
11753	ForceSendFields []string `json:"-"`
11754
11755	// NullFields is a list of field names (e.g. "Negative") to include in
11756	// API requests with the JSON null value. By default, fields with empty
11757	// values are omitted from API requests. However, any field with an
11758	// empty value appearing in NullFields will be sent to the server as
11759	// null. It is an error if a field in this list has a non-empty value.
11760	// This may be used to include null fields in Patch requests.
11761	NullFields []string `json:"-"`
11762}
11763
11764func (s *RegionalLocationListAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
11765	type NoMethod RegionalLocationListAssignedTargetingOptionDetails
11766	raw := NoMethod(*s)
11767	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11768}
11769
11770// ReplaceNegativeKeywordsRequest: Request message for
11771// NegativeKeywordService.ReplaceNegativeKeywords.
11772type ReplaceNegativeKeywordsRequest struct {
11773	// NewNegativeKeywords: The negative keywords that will replace the
11774	// existing keywords in the negative keyword list, specified as a list
11775	// of NegativeKeywords.
11776	NewNegativeKeywords []*NegativeKeyword `json:"newNegativeKeywords,omitempty"`
11777
11778	// ForceSendFields is a list of field names (e.g. "NewNegativeKeywords")
11779	// to unconditionally include in API requests. By default, fields with
11780	// empty values are omitted from API requests. However, any non-pointer,
11781	// non-interface field appearing in ForceSendFields will be sent to the
11782	// server regardless of whether the field is empty or not. This may be
11783	// used to include empty fields in Patch requests.
11784	ForceSendFields []string `json:"-"`
11785
11786	// NullFields is a list of field names (e.g. "NewNegativeKeywords") to
11787	// include in API requests with the JSON null value. By default, fields
11788	// with empty values are omitted from API requests. However, any field
11789	// with an empty value appearing in NullFields will be sent to the
11790	// server as null. It is an error if a field in this list has a
11791	// non-empty value. This may be used to include null fields in Patch
11792	// requests.
11793	NullFields []string `json:"-"`
11794}
11795
11796func (s *ReplaceNegativeKeywordsRequest) MarshalJSON() ([]byte, error) {
11797	type NoMethod ReplaceNegativeKeywordsRequest
11798	raw := NoMethod(*s)
11799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11800}
11801
11802// ReplaceNegativeKeywordsResponse: Response message for
11803// NegativeKeywordService.ReplaceNegativeKeywords.
11804type ReplaceNegativeKeywordsResponse struct {
11805	// NegativeKeywords: The full list of negative keywords now present in
11806	// the negative keyword list.
11807	NegativeKeywords []*NegativeKeyword `json:"negativeKeywords,omitempty"`
11808
11809	// ServerResponse contains the HTTP response code and headers from the
11810	// server.
11811	googleapi.ServerResponse `json:"-"`
11812
11813	// ForceSendFields is a list of field names (e.g. "NegativeKeywords") to
11814	// unconditionally include in API requests. By default, fields with
11815	// empty values are omitted from API requests. However, any non-pointer,
11816	// non-interface field appearing in ForceSendFields will be sent to the
11817	// server regardless of whether the field is empty or not. This may be
11818	// used to include empty fields in Patch requests.
11819	ForceSendFields []string `json:"-"`
11820
11821	// NullFields is a list of field names (e.g. "NegativeKeywords") to
11822	// include in API requests with the JSON null value. By default, fields
11823	// with empty values are omitted from API requests. However, any field
11824	// with an empty value appearing in NullFields will be sent to the
11825	// server as null. It is an error if a field in this list has a
11826	// non-empty value. This may be used to include null fields in Patch
11827	// requests.
11828	NullFields []string `json:"-"`
11829}
11830
11831func (s *ReplaceNegativeKeywordsResponse) MarshalJSON() ([]byte, error) {
11832	type NoMethod ReplaceNegativeKeywordsResponse
11833	raw := NoMethod(*s)
11834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11835}
11836
11837// ReplaceSitesRequest: Request message for SiteService.ReplaceSites.
11838type ReplaceSitesRequest struct {
11839	// AdvertiserId: The ID of the advertiser that owns the parent channel.
11840	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
11841
11842	// NewSites: The sites that will replace the existing sites assigned to
11843	// the channel, specified as a list of Sites.
11844	NewSites []*Site `json:"newSites,omitempty"`
11845
11846	// PartnerId: The ID of the partner that owns the parent channel.
11847	PartnerId int64 `json:"partnerId,omitempty,string"`
11848
11849	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
11850	// unconditionally include in API requests. By default, fields with
11851	// empty values are omitted from API requests. However, any non-pointer,
11852	// non-interface field appearing in ForceSendFields will be sent to the
11853	// server regardless of whether the field is empty or not. This may be
11854	// used to include empty fields in Patch requests.
11855	ForceSendFields []string `json:"-"`
11856
11857	// NullFields is a list of field names (e.g. "AdvertiserId") to include
11858	// in API requests with the JSON null value. By default, fields with
11859	// empty values are omitted from API requests. However, any field with
11860	// an empty value appearing in NullFields will be sent to the server as
11861	// null. It is an error if a field in this list has a non-empty value.
11862	// This may be used to include null fields in Patch requests.
11863	NullFields []string `json:"-"`
11864}
11865
11866func (s *ReplaceSitesRequest) MarshalJSON() ([]byte, error) {
11867	type NoMethod ReplaceSitesRequest
11868	raw := NoMethod(*s)
11869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11870}
11871
11872// ReplaceSitesResponse: Response message for SiteService.ReplaceSites.
11873type ReplaceSitesResponse struct {
11874	// Sites: The list of sites in the channel after replacing.
11875	Sites []*Site `json:"sites,omitempty"`
11876
11877	// ServerResponse contains the HTTP response code and headers from the
11878	// server.
11879	googleapi.ServerResponse `json:"-"`
11880
11881	// ForceSendFields is a list of field names (e.g. "Sites") to
11882	// unconditionally include in API requests. By default, fields with
11883	// empty values are omitted from API requests. However, any non-pointer,
11884	// non-interface field appearing in ForceSendFields will be sent to the
11885	// server regardless of whether the field is empty or not. This may be
11886	// used to include empty fields in Patch requests.
11887	ForceSendFields []string `json:"-"`
11888
11889	// NullFields is a list of field names (e.g. "Sites") to include in API
11890	// requests with the JSON null value. By default, fields with empty
11891	// values are omitted from API requests. However, any field with an
11892	// empty value appearing in NullFields will be sent to the server as
11893	// null. It is an error if a field in this list has a non-empty value.
11894	// This may be used to include null fields in Patch requests.
11895	NullFields []string `json:"-"`
11896}
11897
11898func (s *ReplaceSitesResponse) MarshalJSON() ([]byte, error) {
11899	type NoMethod ReplaceSitesResponse
11900	raw := NoMethod(*s)
11901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11902}
11903
11904// ReviewStatusInfo: Review statuses for the creative.
11905type ReviewStatusInfo struct {
11906	// ApprovalStatus: Represents the basic approval needed for a creative
11907	// to begin serving. Summary of creative_and_landing_page_review_status
11908	// and content_and_policy_review_status.
11909	//
11910	// Possible values:
11911	//   "APPROVAL_STATUS_UNSPECIFIED" - Type value is not specified or is
11912	// unknown in this version.
11913	//   "APPROVAL_STATUS_PENDING_NOT_SERVABLE" - The creative is still
11914	// under review and not servable.
11915	//   "APPROVAL_STATUS_PENDING_SERVABLE" - The creative has passed
11916	// creative & landing page review and is servable, but is awaiting
11917	// additional content & policy review.
11918	//   "APPROVAL_STATUS_APPROVED_SERVABLE" - Both creative & landing page
11919	// review and content & policy review are approved. The creative is
11920	// servable.
11921	//   "APPROVAL_STATUS_REJECTED_NOT_SERVABLE" - There is an issue with
11922	// the creative that must be fixed before it can serve.
11923	ApprovalStatus string `json:"approvalStatus,omitempty"`
11924
11925	// ContentAndPolicyReviewStatus: Content and policy review status for
11926	// the creative.
11927	//
11928	// Possible values:
11929	//   "REVIEW_STATUS_UNSPECIFIED" - Type value is not specified or is
11930	// unknown in this version.
11931	//   "REVIEW_STATUS_APPROVED" - The creative is approved.
11932	//   "REVIEW_STATUS_REJECTED" - The creative is rejected.
11933	//   "REVIEW_STATUS_PENDING" - The creative is pending review.
11934	ContentAndPolicyReviewStatus string `json:"contentAndPolicyReviewStatus,omitempty"`
11935
11936	// CreativeAndLandingPageReviewStatus: Creative and landing page review
11937	// status for the creative.
11938	//
11939	// Possible values:
11940	//   "REVIEW_STATUS_UNSPECIFIED" - Type value is not specified or is
11941	// unknown in this version.
11942	//   "REVIEW_STATUS_APPROVED" - The creative is approved.
11943	//   "REVIEW_STATUS_REJECTED" - The creative is rejected.
11944	//   "REVIEW_STATUS_PENDING" - The creative is pending review.
11945	CreativeAndLandingPageReviewStatus string `json:"creativeAndLandingPageReviewStatus,omitempty"`
11946
11947	// ExchangeReviewStatuses: Exchange review statuses for the creative.
11948	ExchangeReviewStatuses []*ExchangeReviewStatus `json:"exchangeReviewStatuses,omitempty"`
11949
11950	// PublisherReviewStatuses: Publisher review statuses for the creative.
11951	PublisherReviewStatuses []*PublisherReviewStatus `json:"publisherReviewStatuses,omitempty"`
11952
11953	// ForceSendFields is a list of field names (e.g. "ApprovalStatus") to
11954	// unconditionally include in API requests. By default, fields with
11955	// empty values are omitted from API requests. However, any non-pointer,
11956	// non-interface field appearing in ForceSendFields will be sent to the
11957	// server regardless of whether the field is empty or not. This may be
11958	// used to include empty fields in Patch requests.
11959	ForceSendFields []string `json:"-"`
11960
11961	// NullFields is a list of field names (e.g. "ApprovalStatus") 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 *ReviewStatusInfo) MarshalJSON() ([]byte, error) {
11972	type NoMethod ReviewStatusInfo
11973	raw := NoMethod(*s)
11974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11975}
11976
11977// SdfConfig: Structured Data File (SDF) related settings.
11978type SdfConfig struct {
11979	// AdminEmail: An administrator email address to which the SDF
11980	// processing status reports will be sent.
11981	AdminEmail string `json:"adminEmail,omitempty"`
11982
11983	// Version: Required. The version of SDF being used.
11984	//
11985	// Possible values:
11986	//   "SDF_VERSION_UNSPECIFIED" - SDF version value is not specified or
11987	// is unknown in this version.
11988	//   "SDF_VERSION_3_1" - SDF version 3.1
11989	//   "SDF_VERSION_4" - SDF version 4
11990	//   "SDF_VERSION_4_1" - SDF version 4.1
11991	//   "SDF_VERSION_4_2" - SDF version 4.2
11992	//   "SDF_VERSION_5" - SDF version 5.
11993	//   "SDF_VERSION_5_1" - SDF version 5.1
11994	//   "SDF_VERSION_5_2" - SDF version 5.2
11995	//   "SDF_VERSION_5_3" - SDF version 5.3
11996	Version string `json:"version,omitempty"`
11997
11998	// ForceSendFields is a list of field names (e.g. "AdminEmail") to
11999	// unconditionally include in API requests. By default, fields with
12000	// empty values are omitted from API requests. However, any non-pointer,
12001	// non-interface field appearing in ForceSendFields will be sent to the
12002	// server regardless of whether the field is empty or not. This may be
12003	// used to include empty fields in Patch requests.
12004	ForceSendFields []string `json:"-"`
12005
12006	// NullFields is a list of field names (e.g. "AdminEmail") to include in
12007	// API requests with the JSON null value. By default, fields with empty
12008	// values are omitted from API requests. However, any field with an
12009	// empty value appearing in NullFields will be sent to the server as
12010	// null. It is an error if a field in this list has a non-empty value.
12011	// This may be used to include null fields in Patch requests.
12012	NullFields []string `json:"-"`
12013}
12014
12015func (s *SdfConfig) MarshalJSON() ([]byte, error) {
12016	type NoMethod SdfConfig
12017	raw := NoMethod(*s)
12018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12019}
12020
12021// SdfDownloadTask: Type for the response returned by
12022// [SdfDownloadTaskService.CreateSdfDownloadTask].
12023type SdfDownloadTask struct {
12024	// ResourceName: A resource name to be used in media.download to
12025	// Download the prepared files. Resource names have the format
12026	// `download/sdfdownloadtasks/media/{media_id}`. `media_id` will be made
12027	// available by the long running operation service once the task status
12028	// is done.
12029	ResourceName string `json:"resourceName,omitempty"`
12030
12031	// ForceSendFields is a list of field names (e.g. "ResourceName") to
12032	// unconditionally include in API requests. By default, fields with
12033	// empty values are omitted from API requests. However, any non-pointer,
12034	// non-interface field appearing in ForceSendFields will be sent to the
12035	// server regardless of whether the field is empty or not. This may be
12036	// used to include empty fields in Patch requests.
12037	ForceSendFields []string `json:"-"`
12038
12039	// NullFields is a list of field names (e.g. "ResourceName") to include
12040	// in API requests with the JSON null value. By default, fields with
12041	// empty values are omitted from API requests. However, any field with
12042	// an empty value appearing in NullFields will be sent to the server as
12043	// null. It is an error if a field in this list has a non-empty value.
12044	// This may be used to include null fields in Patch requests.
12045	NullFields []string `json:"-"`
12046}
12047
12048func (s *SdfDownloadTask) MarshalJSON() ([]byte, error) {
12049	type NoMethod SdfDownloadTask
12050	raw := NoMethod(*s)
12051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12052}
12053
12054// SdfDownloadTaskMetadata: Type for the metadata returned by
12055// [SdfDownloadTaskService.CreateSdfDownloadTask].
12056type SdfDownloadTaskMetadata struct {
12057	// CreateTime: The time when the operation was created.
12058	CreateTime string `json:"createTime,omitempty"`
12059
12060	// EndTime: The time when execution was completed.
12061	EndTime string `json:"endTime,omitempty"`
12062
12063	// Version: The SDF version used to execute this download task.
12064	//
12065	// Possible values:
12066	//   "SDF_VERSION_UNSPECIFIED" - SDF version value is not specified or
12067	// is unknown in this version.
12068	//   "SDF_VERSION_3_1" - SDF version 3.1
12069	//   "SDF_VERSION_4" - SDF version 4
12070	//   "SDF_VERSION_4_1" - SDF version 4.1
12071	//   "SDF_VERSION_4_2" - SDF version 4.2
12072	//   "SDF_VERSION_5" - SDF version 5.
12073	//   "SDF_VERSION_5_1" - SDF version 5.1
12074	//   "SDF_VERSION_5_2" - SDF version 5.2
12075	//   "SDF_VERSION_5_3" - SDF version 5.3
12076	Version string `json:"version,omitempty"`
12077
12078	// ForceSendFields is a list of field names (e.g. "CreateTime") to
12079	// unconditionally include in API requests. By default, fields with
12080	// empty values are omitted from API requests. However, any non-pointer,
12081	// non-interface field appearing in ForceSendFields will be sent to the
12082	// server regardless of whether the field is empty or not. This may be
12083	// used to include empty fields in Patch requests.
12084	ForceSendFields []string `json:"-"`
12085
12086	// NullFields is a list of field names (e.g. "CreateTime") to include in
12087	// API requests with the JSON null value. By default, fields with empty
12088	// values are omitted from API requests. However, any field with an
12089	// empty value appearing in NullFields will be sent to the server as
12090	// null. It is an error if a field in this list has a non-empty value.
12091	// This may be used to include null fields in Patch requests.
12092	NullFields []string `json:"-"`
12093}
12094
12095func (s *SdfDownloadTaskMetadata) MarshalJSON() ([]byte, error) {
12096	type NoMethod SdfDownloadTaskMetadata
12097	raw := NoMethod(*s)
12098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12099}
12100
12101// SearchTargetingOptionsRequest: Request message for
12102// SearchTargetingOptions.
12103type SearchTargetingOptionsRequest struct {
12104	// AdvertiserId: Required. The Advertiser this request is being made in
12105	// the context of.
12106	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
12107
12108	// GeoRegionSearchTerms: Search terms for geo region targeting options.
12109	// Can only be used when targeting_type is `TARGETING_TYPE_GEO_REGION`.
12110	GeoRegionSearchTerms *GeoRegionSearchTerms `json:"geoRegionSearchTerms,omitempty"`
12111
12112	// PageSize: Requested page size. Must be between `1` and `100`. If
12113	// unspecified will default to `100`. Returns error code
12114	// `INVALID_ARGUMENT` if an invalid value is specified.
12115	PageSize int64 `json:"pageSize,omitempty"`
12116
12117	// PageToken: A token identifying a page of results the server should
12118	// return. Typically, this is the value of next_page_token returned from
12119	// the previous call to `SearchTargetingOptions` method. If not
12120	// specified, the first page of results will be returned.
12121	PageToken string `json:"pageToken,omitempty"`
12122
12123	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
12124	// unconditionally include in API requests. By default, fields with
12125	// empty values are omitted from API requests. However, any non-pointer,
12126	// non-interface field appearing in ForceSendFields will be sent to the
12127	// server regardless of whether the field is empty or not. This may be
12128	// used to include empty fields in Patch requests.
12129	ForceSendFields []string `json:"-"`
12130
12131	// NullFields is a list of field names (e.g. "AdvertiserId") to include
12132	// in API requests with the JSON null value. By default, fields with
12133	// empty values are omitted from API requests. However, any field with
12134	// an empty value appearing in NullFields will be sent to the server as
12135	// null. It is an error if a field in this list has a non-empty value.
12136	// This may be used to include null fields in Patch requests.
12137	NullFields []string `json:"-"`
12138}
12139
12140func (s *SearchTargetingOptionsRequest) MarshalJSON() ([]byte, error) {
12141	type NoMethod SearchTargetingOptionsRequest
12142	raw := NoMethod(*s)
12143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12144}
12145
12146// SearchTargetingOptionsResponse: Response message for
12147// SearchTargetingOptionsResponse.
12148type SearchTargetingOptionsResponse struct {
12149	// NextPageToken: A token to retrieve the next page of results. Pass
12150	// this value in the page_token field in the subsequent call to
12151	// `SearchTargetingOptions` method to retrieve the next page of results.
12152	NextPageToken string `json:"nextPageToken,omitempty"`
12153
12154	// TargetingOptions: The list of targeting options that match the search
12155	// criteria. This list will be absent if empty.
12156	TargetingOptions []*TargetingOption `json:"targetingOptions,omitempty"`
12157
12158	// ServerResponse contains the HTTP response code and headers from the
12159	// server.
12160	googleapi.ServerResponse `json:"-"`
12161
12162	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
12163	// unconditionally include in API requests. By default, fields with
12164	// empty values are omitted from API requests. However, any non-pointer,
12165	// non-interface field appearing in ForceSendFields will be sent to the
12166	// server regardless of whether the field is empty or not. This may be
12167	// used to include empty fields in Patch requests.
12168	ForceSendFields []string `json:"-"`
12169
12170	// NullFields is a list of field names (e.g. "NextPageToken") to include
12171	// in API requests with the JSON null value. By default, fields with
12172	// empty values are omitted from API requests. However, any field with
12173	// an empty value appearing in NullFields will be sent to the server as
12174	// null. It is an error if a field in this list has a non-empty value.
12175	// This may be used to include null fields in Patch requests.
12176	NullFields []string `json:"-"`
12177}
12178
12179func (s *SearchTargetingOptionsResponse) MarshalJSON() ([]byte, error) {
12180	type NoMethod SearchTargetingOptionsResponse
12181	raw := NoMethod(*s)
12182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12183}
12184
12185// SensitiveCategoryAssignedTargetingOptionDetails: Targeting details
12186// for sensitive category. This will be populated in the details field
12187// of an AssignedTargetingOption when targeting_type is
12188// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
12189type SensitiveCategoryAssignedTargetingOptionDetails struct {
12190	// ExcludedTargetingOptionId: Required. ID of the sensitive category to
12191	// be EXCLUDED.
12192	ExcludedTargetingOptionId string `json:"excludedTargetingOptionId,omitempty"`
12193
12194	// SensitiveCategory: Output only. An enum for the DV360 Sensitive
12195	// category content classifier.
12196	//
12197	// Possible values:
12198	//   "SENSITIVE_CATEGORY_UNSPECIFIED" - This enum is only a placeholder
12199	// and doesn't specify a DV360 sensitive category.
12200	//   "SENSITIVE_CATEGORY_ADULT" - Adult or pornographic text, image, or
12201	// video content.
12202	//   "SENSITIVE_CATEGORY_DEROGATORY" - Content that may be construed as
12203	// biased against individuals, groups, or organizations based on
12204	// criteria such as race, religion, disability, sex, age, veteran
12205	// status, sexual orientation, gender identity, or political
12206	// affiliation. May also indicate discussion of such content, for
12207	// instance, in an academic or journalistic context.
12208	//   "SENSITIVE_CATEGORY_DOWNLOADS_SHARING" - Content related to audio,
12209	// video, or software downloads.
12210	//   "SENSITIVE_CATEGORY_WEAPONS" - Contains content related to personal
12211	// weapons, including knives, guns, small firearms, and ammunition.
12212	// Selecting either "weapons" or "sensitive social issues" will result
12213	// in selecting both.
12214	//   "SENSITIVE_CATEGORY_GAMBLING" - Contains content related to betting
12215	// or wagering in a real-world or online setting.
12216	//   "SENSITIVE_CATEGORY_VIOLENCE" - Content which may be considered
12217	// graphically violent, gory, gruesome, or shocking, such as street
12218	// fighting videos, accident photos, descriptions of torture, etc.
12219	//   "SENSITIVE_CATEGORY_SUGGESTIVE" - Adult content, as well as
12220	// suggestive content that's not explicitly pornographic. This category
12221	// includes all pages categorized as adult.
12222	//   "SENSITIVE_CATEGORY_PROFANITY" - Prominent use of words considered
12223	// indecent, such as curse words and sexual slang. Pages with only very
12224	// occasional usage, such as news sites that might include such words in
12225	// a quotation, are not included.
12226	//   "SENSITIVE_CATEGORY_ALCOHOL" - Contains content related to
12227	// alcoholic beverages, alcohol brands, recipes, etc.
12228	//   "SENSITIVE_CATEGORY_DRUGS" - Contains content related to the
12229	// recreational use of legal or illegal drugs, as well as to drug
12230	// paraphernalia or cultivation.
12231	//   "SENSITIVE_CATEGORY_TOBACCO" - Contains content related to tobacco
12232	// and tobacco accessories, including lighters, humidors, ashtrays, etc.
12233	//   "SENSITIVE_CATEGORY_POLITICS" - Political news and media, including
12234	// discussions of social, governmental, and public policy.
12235	//   "SENSITIVE_CATEGORY_RELIGION" - Content related to religious
12236	// thought or beliefs.
12237	//   "SENSITIVE_CATEGORY_TRAGEDY" - Content related to death, disasters,
12238	// accidents, war, etc.
12239	//   "SENSITIVE_CATEGORY_TRANSPORTATION_ACCIDENTS" - Content related to
12240	// motor vehicle, aviation or other transportation accidents.
12241	//   "SENSITIVE_CATEGORY_SENSITIVE_SOCIAL_ISSUES" - Issues that evoke
12242	// strong, opposing views and spark debate. These include issues that
12243	// are controversial in most countries and markets (such as abortion),
12244	// as well as those that are controversial in specific countries and
12245	// markets (such as immigration reform in the United States).
12246	//   "SENSITIVE_CATEGORY_SHOCKING" - Content which may be considered
12247	// shocking or disturbing, such as violent news stories, stunts, or
12248	// toilet humor.
12249	SensitiveCategory string `json:"sensitiveCategory,omitempty"`
12250
12251	// ForceSendFields is a list of field names (e.g.
12252	// "ExcludedTargetingOptionId") to unconditionally include in API
12253	// requests. By default, fields with empty values are omitted from API
12254	// requests. However, any non-pointer, non-interface field appearing in
12255	// ForceSendFields will be sent to the server regardless of whether the
12256	// field is empty or not. This may be used to include empty fields in
12257	// Patch requests.
12258	ForceSendFields []string `json:"-"`
12259
12260	// NullFields is a list of field names (e.g.
12261	// "ExcludedTargetingOptionId") to include in API requests with the JSON
12262	// null value. By default, fields with empty values are omitted from API
12263	// requests. However, any field with an empty value appearing in
12264	// NullFields will be sent to the server as null. It is an error if a
12265	// field in this list has a non-empty value. This may be used to include
12266	// null fields in Patch requests.
12267	NullFields []string `json:"-"`
12268}
12269
12270func (s *SensitiveCategoryAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
12271	type NoMethod SensitiveCategoryAssignedTargetingOptionDetails
12272	raw := NoMethod(*s)
12273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12274}
12275
12276// SensitiveCategoryTargetingOptionDetails: Represents a targetable
12277// sensitive category. This will be populated in the
12278// sensitive_category_details field of the TargetingOption when
12279// targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
12280type SensitiveCategoryTargetingOptionDetails struct {
12281	// SensitiveCategory: Output only. An enum for the DV360 Sensitive
12282	// category content classifier.
12283	//
12284	// Possible values:
12285	//   "SENSITIVE_CATEGORY_UNSPECIFIED" - This enum is only a placeholder
12286	// and doesn't specify a DV360 sensitive category.
12287	//   "SENSITIVE_CATEGORY_ADULT" - Adult or pornographic text, image, or
12288	// video content.
12289	//   "SENSITIVE_CATEGORY_DEROGATORY" - Content that may be construed as
12290	// biased against individuals, groups, or organizations based on
12291	// criteria such as race, religion, disability, sex, age, veteran
12292	// status, sexual orientation, gender identity, or political
12293	// affiliation. May also indicate discussion of such content, for
12294	// instance, in an academic or journalistic context.
12295	//   "SENSITIVE_CATEGORY_DOWNLOADS_SHARING" - Content related to audio,
12296	// video, or software downloads.
12297	//   "SENSITIVE_CATEGORY_WEAPONS" - Contains content related to personal
12298	// weapons, including knives, guns, small firearms, and ammunition.
12299	// Selecting either "weapons" or "sensitive social issues" will result
12300	// in selecting both.
12301	//   "SENSITIVE_CATEGORY_GAMBLING" - Contains content related to betting
12302	// or wagering in a real-world or online setting.
12303	//   "SENSITIVE_CATEGORY_VIOLENCE" - Content which may be considered
12304	// graphically violent, gory, gruesome, or shocking, such as street
12305	// fighting videos, accident photos, descriptions of torture, etc.
12306	//   "SENSITIVE_CATEGORY_SUGGESTIVE" - Adult content, as well as
12307	// suggestive content that's not explicitly pornographic. This category
12308	// includes all pages categorized as adult.
12309	//   "SENSITIVE_CATEGORY_PROFANITY" - Prominent use of words considered
12310	// indecent, such as curse words and sexual slang. Pages with only very
12311	// occasional usage, such as news sites that might include such words in
12312	// a quotation, are not included.
12313	//   "SENSITIVE_CATEGORY_ALCOHOL" - Contains content related to
12314	// alcoholic beverages, alcohol brands, recipes, etc.
12315	//   "SENSITIVE_CATEGORY_DRUGS" - Contains content related to the
12316	// recreational use of legal or illegal drugs, as well as to drug
12317	// paraphernalia or cultivation.
12318	//   "SENSITIVE_CATEGORY_TOBACCO" - Contains content related to tobacco
12319	// and tobacco accessories, including lighters, humidors, ashtrays, etc.
12320	//   "SENSITIVE_CATEGORY_POLITICS" - Political news and media, including
12321	// discussions of social, governmental, and public policy.
12322	//   "SENSITIVE_CATEGORY_RELIGION" - Content related to religious
12323	// thought or beliefs.
12324	//   "SENSITIVE_CATEGORY_TRAGEDY" - Content related to death, disasters,
12325	// accidents, war, etc.
12326	//   "SENSITIVE_CATEGORY_TRANSPORTATION_ACCIDENTS" - Content related to
12327	// motor vehicle, aviation or other transportation accidents.
12328	//   "SENSITIVE_CATEGORY_SENSITIVE_SOCIAL_ISSUES" - Issues that evoke
12329	// strong, opposing views and spark debate. These include issues that
12330	// are controversial in most countries and markets (such as abortion),
12331	// as well as those that are controversial in specific countries and
12332	// markets (such as immigration reform in the United States).
12333	//   "SENSITIVE_CATEGORY_SHOCKING" - Content which may be considered
12334	// shocking or disturbing, such as violent news stories, stunts, or
12335	// toilet humor.
12336	SensitiveCategory string `json:"sensitiveCategory,omitempty"`
12337
12338	// ForceSendFields is a list of field names (e.g. "SensitiveCategory")
12339	// to unconditionally include in API requests. By default, fields with
12340	// empty values are omitted from API requests. However, any non-pointer,
12341	// non-interface field appearing in ForceSendFields will be sent to the
12342	// server regardless of whether the field is empty or not. This may be
12343	// used to include empty fields in Patch requests.
12344	ForceSendFields []string `json:"-"`
12345
12346	// NullFields is a list of field names (e.g. "SensitiveCategory") to
12347	// include in API requests with the JSON null value. By default, fields
12348	// with empty values are omitted from API requests. However, any field
12349	// with an empty value appearing in NullFields will be sent to the
12350	// server as null. It is an error if a field in this list has a
12351	// non-empty value. This may be used to include null fields in Patch
12352	// requests.
12353	NullFields []string `json:"-"`
12354}
12355
12356func (s *SensitiveCategoryTargetingOptionDetails) MarshalJSON() ([]byte, error) {
12357	type NoMethod SensitiveCategoryTargetingOptionDetails
12358	raw := NoMethod(*s)
12359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12360}
12361
12362// Site: A single site. Sites are apps or websites belonging to a
12363// channel.
12364type Site struct {
12365	// Name: Output only. The resource name of the site.
12366	Name string `json:"name,omitempty"`
12367
12368	// UrlOrAppId: Required. The app ID or URL of the site. Must be UTF-8
12369	// encoded with a maximum length of 240 bytes.
12370	UrlOrAppId string `json:"urlOrAppId,omitempty"`
12371
12372	// ServerResponse contains the HTTP response code and headers from the
12373	// server.
12374	googleapi.ServerResponse `json:"-"`
12375
12376	// ForceSendFields is a list of field names (e.g. "Name") to
12377	// unconditionally include in API requests. By default, fields with
12378	// empty values are omitted from API requests. However, any non-pointer,
12379	// non-interface field appearing in ForceSendFields will be sent to the
12380	// server regardless of whether the field is empty or not. This may be
12381	// used to include empty fields in Patch requests.
12382	ForceSendFields []string `json:"-"`
12383
12384	// NullFields is a list of field names (e.g. "Name") to include in API
12385	// requests with the JSON null value. By default, fields with empty
12386	// values are omitted from API requests. However, any field with an
12387	// empty value appearing in NullFields will be sent to the server as
12388	// null. It is an error if a field in this list has a non-empty value.
12389	// This may be used to include null fields in Patch requests.
12390	NullFields []string `json:"-"`
12391}
12392
12393func (s *Site) MarshalJSON() ([]byte, error) {
12394	type NoMethod Site
12395	raw := NoMethod(*s)
12396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12397}
12398
12399// Status: The `Status` type defines a logical error model that is
12400// suitable for different programming environments, including REST APIs
12401// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
12402// `Status` message contains three pieces of data: error code, error
12403// message, and error details. You can find out more about this error
12404// model and how to work with it in the API Design Guide
12405// (https://cloud.google.com/apis/design/errors).
12406type Status struct {
12407	// Code: The status code, which should be an enum value of
12408	// google.rpc.Code.
12409	Code int64 `json:"code,omitempty"`
12410
12411	// Details: A list of messages that carry the error details. There is a
12412	// common set of message types for APIs to use.
12413	Details []googleapi.RawMessage `json:"details,omitempty"`
12414
12415	// Message: A developer-facing error message, which should be in
12416	// English. Any user-facing error message should be localized and sent
12417	// in the google.rpc.Status.details field, or localized by the client.
12418	Message string `json:"message,omitempty"`
12419
12420	// ForceSendFields is a list of field names (e.g. "Code") to
12421	// unconditionally include in API requests. By default, fields with
12422	// empty values are omitted from API requests. However, any non-pointer,
12423	// non-interface field appearing in ForceSendFields will be sent to the
12424	// server regardless of whether the field is empty or not. This may be
12425	// used to include empty fields in Patch requests.
12426	ForceSendFields []string `json:"-"`
12427
12428	// NullFields is a list of field names (e.g. "Code") to include in API
12429	// requests with the JSON null value. By default, fields with empty
12430	// values are omitted from API requests. However, any field with an
12431	// empty value appearing in NullFields will be sent to the server as
12432	// null. It is an error if a field in this list has a non-empty value.
12433	// This may be used to include null fields in Patch requests.
12434	NullFields []string `json:"-"`
12435}
12436
12437func (s *Status) MarshalJSON() ([]byte, error) {
12438	type NoMethod Status
12439	raw := NoMethod(*s)
12440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12441}
12442
12443// SubExchangeAssignedTargetingOptionDetails: Details for assigned
12444// sub-exchange targeting option. This will be populated in the details
12445// field of an AssignedTargetingOption when targeting_type is
12446// `TARGETING_TYPE_SUB_EXCHANGE`.
12447type SubExchangeAssignedTargetingOptionDetails struct {
12448	// TargetingOptionId: Required. The targeting_option_id of a
12449	// TargetingOption of type `TARGETING_TYPE_SUB_EXCHANGE`.
12450	TargetingOptionId string `json:"targetingOptionId,omitempty"`
12451
12452	// ForceSendFields is a list of field names (e.g. "TargetingOptionId")
12453	// to unconditionally include in API requests. By default, fields with
12454	// empty values are omitted from API requests. However, any non-pointer,
12455	// non-interface field appearing in ForceSendFields will be sent to the
12456	// server regardless of whether the field is empty or not. This may be
12457	// used to include empty fields in Patch requests.
12458	ForceSendFields []string `json:"-"`
12459
12460	// NullFields is a list of field names (e.g. "TargetingOptionId") to
12461	// include in API requests with the JSON null value. By default, fields
12462	// with empty values are omitted from API requests. However, any field
12463	// with an empty value appearing in NullFields will be sent to the
12464	// server as null. It is an error if a field in this list has a
12465	// non-empty value. This may be used to include null fields in Patch
12466	// requests.
12467	NullFields []string `json:"-"`
12468}
12469
12470func (s *SubExchangeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
12471	type NoMethod SubExchangeAssignedTargetingOptionDetails
12472	raw := NoMethod(*s)
12473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12474}
12475
12476// SubExchangeTargetingOptionDetails: Represents a targetable
12477// sub-exchange. This will be populated in the sub_exchange_details
12478// field of a TargetingOption when targeting_type is
12479// `TARGETING_TYPE_SUB_EXCHANGE`.
12480type SubExchangeTargetingOptionDetails struct {
12481	// DisplayName: Output only. The display name of the sub-exchange.
12482	DisplayName string `json:"displayName,omitempty"`
12483
12484	// ForceSendFields is a list of field names (e.g. "DisplayName") to
12485	// unconditionally include in API requests. By default, fields with
12486	// empty values are omitted from API requests. However, any non-pointer,
12487	// non-interface field appearing in ForceSendFields will be sent to the
12488	// server regardless of whether the field is empty or not. This may be
12489	// used to include empty fields in Patch requests.
12490	ForceSendFields []string `json:"-"`
12491
12492	// NullFields is a list of field names (e.g. "DisplayName") to include
12493	// in API requests with the JSON null value. By default, fields with
12494	// empty values are omitted from API requests. However, any field with
12495	// an empty value appearing in NullFields will be sent to the server as
12496	// null. It is an error if a field in this list has a non-empty value.
12497	// This may be used to include null fields in Patch requests.
12498	NullFields []string `json:"-"`
12499}
12500
12501func (s *SubExchangeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
12502	type NoMethod SubExchangeTargetingOptionDetails
12503	raw := NoMethod(*s)
12504	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12505}
12506
12507// TargetingExpansionConfig: Settings that control the targeting
12508// expansion of the line item. Targeting expansion allows the line item
12509// to reach a larger audience based on the original audience list and
12510// the targeting expansion level.
12511type TargetingExpansionConfig struct {
12512	// ExcludeFirstPartyAudience: Required. Whether to exclude first party
12513	// audiences from targeting. Similar audiences of the excluded first
12514	// party lists will not be excluded. Only applicable when a first-party
12515	// audience is positively targeted (directly or included in a combined
12516	// audience), otherwise this selection will be ignored.
12517	ExcludeFirstPartyAudience bool `json:"excludeFirstPartyAudience,omitempty"`
12518
12519	// TargetingExpansionLevel: Required. Magnitude of expansion for
12520	// applicable targeting under this line item.
12521	//
12522	// Possible values:
12523	//   "TARGETING_EXPANSION_LEVEL_UNSPECIFIED" - Targeting expansion level
12524	// is not specified or is unknown in this version.
12525	//   "NO_EXPANSION" - Targeting expansion off.
12526	//   "LEAST_EXPANSION" - Conservative targeting expansion, lowest reach.
12527	//   "SOME_EXPANSION" - Moderately conservative targeting expansion,
12528	// lower reach.
12529	//   "BALANCED_EXPANSION" - Moderate targeting expansion, medium reach.
12530	//   "MORE_EXPANSION" - Moderately aggressive targeting expansion,
12531	// higher reach.
12532	//   "MOST_EXPANSION" - Aggressive targeting expansion, highest reach.
12533	TargetingExpansionLevel string `json:"targetingExpansionLevel,omitempty"`
12534
12535	// ForceSendFields is a list of field names (e.g.
12536	// "ExcludeFirstPartyAudience") to unconditionally include in API
12537	// requests. By default, fields with empty values are omitted from API
12538	// requests. However, any non-pointer, non-interface field appearing in
12539	// ForceSendFields will be sent to the server regardless of whether the
12540	// field is empty or not. This may be used to include empty fields in
12541	// Patch requests.
12542	ForceSendFields []string `json:"-"`
12543
12544	// NullFields is a list of field names (e.g.
12545	// "ExcludeFirstPartyAudience") to include in API requests with the JSON
12546	// null value. By default, fields with empty values are omitted from API
12547	// requests. However, any field with an empty value appearing in
12548	// NullFields will be sent to the server as null. It is an error if a
12549	// field in this list has a non-empty value. This may be used to include
12550	// null fields in Patch requests.
12551	NullFields []string `json:"-"`
12552}
12553
12554func (s *TargetingExpansionConfig) MarshalJSON() ([]byte, error) {
12555	type NoMethod TargetingExpansionConfig
12556	raw := NoMethod(*s)
12557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12558}
12559
12560// TargetingOption: Represents a single targeting option, which is a
12561// targetable concept in DV360.
12562type TargetingOption struct {
12563	// AgeRangeDetails: Age range details.
12564	AgeRangeDetails *AgeRangeTargetingOptionDetails `json:"ageRangeDetails,omitempty"`
12565
12566	// AppCategoryDetails: App category details.
12567	AppCategoryDetails *AppCategoryTargetingOptionDetails `json:"appCategoryDetails,omitempty"`
12568
12569	// AuthorizedSellerStatusDetails: Authorized seller status resource
12570	// details.
12571	AuthorizedSellerStatusDetails *AuthorizedSellerStatusTargetingOptionDetails `json:"authorizedSellerStatusDetails,omitempty"`
12572
12573	// BrowserDetails: Browser details.
12574	BrowserDetails *BrowserTargetingOptionDetails `json:"browserDetails,omitempty"`
12575
12576	// CarrierAndIspDetails: Carrier and ISP details.
12577	CarrierAndIspDetails *CarrierAndIspTargetingOptionDetails `json:"carrierAndIspDetails,omitempty"`
12578
12579	// CategoryDetails: Category resource details.
12580	CategoryDetails *CategoryTargetingOptionDetails `json:"categoryDetails,omitempty"`
12581
12582	// ContentInstreamPositionDetails: Content instream position details.
12583	ContentInstreamPositionDetails *ContentInstreamPositionTargetingOptionDetails `json:"contentInstreamPositionDetails,omitempty"`
12584
12585	// ContentOutstreamPositionDetails: Content outstream position details.
12586	ContentOutstreamPositionDetails *ContentOutstreamPositionTargetingOptionDetails `json:"contentOutstreamPositionDetails,omitempty"`
12587
12588	// DeviceMakeModelDetails: Device make and model resource details.
12589	DeviceMakeModelDetails *DeviceMakeModelTargetingOptionDetails `json:"deviceMakeModelDetails,omitempty"`
12590
12591	// DeviceTypeDetails: Device type details.
12592	DeviceTypeDetails *DeviceTypeTargetingOptionDetails `json:"deviceTypeDetails,omitempty"`
12593
12594	// DigitalContentLabelDetails: Digital content label details.
12595	DigitalContentLabelDetails *DigitalContentLabelTargetingOptionDetails `json:"digitalContentLabelDetails,omitempty"`
12596
12597	// EnvironmentDetails: Environment details.
12598	EnvironmentDetails *EnvironmentTargetingOptionDetails `json:"environmentDetails,omitempty"`
12599
12600	// ExchangeDetails: Exchange details.
12601	ExchangeDetails *ExchangeTargetingOptionDetails `json:"exchangeDetails,omitempty"`
12602
12603	// GenderDetails: Gender details.
12604	GenderDetails *GenderTargetingOptionDetails `json:"genderDetails,omitempty"`
12605
12606	// GeoRegionDetails: Geographic region resource details.
12607	GeoRegionDetails *GeoRegionTargetingOptionDetails `json:"geoRegionDetails,omitempty"`
12608
12609	// HouseholdIncomeDetails: Household income details.
12610	HouseholdIncomeDetails *HouseholdIncomeTargetingOptionDetails `json:"householdIncomeDetails,omitempty"`
12611
12612	// LanguageDetails: Language resource details.
12613	LanguageDetails *LanguageTargetingOptionDetails `json:"languageDetails,omitempty"`
12614
12615	// Name: Output only. The resource name for this targeting option.
12616	Name string `json:"name,omitempty"`
12617
12618	// OnScreenPositionDetails: On screen position details.
12619	OnScreenPositionDetails *OnScreenPositionTargetingOptionDetails `json:"onScreenPositionDetails,omitempty"`
12620
12621	// OperatingSystemDetails: Operating system resources details.
12622	OperatingSystemDetails *OperatingSystemTargetingOptionDetails `json:"operatingSystemDetails,omitempty"`
12623
12624	// ParentalStatusDetails: Parental status details.
12625	ParentalStatusDetails *ParentalStatusTargetingOptionDetails `json:"parentalStatusDetails,omitempty"`
12626
12627	// SensitiveCategoryDetails: Sensitive Category details.
12628	SensitiveCategoryDetails *SensitiveCategoryTargetingOptionDetails `json:"sensitiveCategoryDetails,omitempty"`
12629
12630	// SubExchangeDetails: Sub-exchange details.
12631	SubExchangeDetails *SubExchangeTargetingOptionDetails `json:"subExchangeDetails,omitempty"`
12632
12633	// TargetingOptionId: Output only. A unique identifier for this
12634	// targeting option. The tuple {`targeting_type`, `targeting_option_id`}
12635	// will be unique.
12636	TargetingOptionId string `json:"targetingOptionId,omitempty"`
12637
12638	// TargetingType: Output only. The type of this targeting option.
12639	//
12640	// Possible values:
12641	//   "TARGETING_TYPE_UNSPECIFIED" - Default value when type is not
12642	// specified or is unknown in this version.
12643	//   "TARGETING_TYPE_CHANNEL" - Target a channel (a custom group of
12644	// related websites or apps).
12645	//   "TARGETING_TYPE_APP_CATEGORY" - Target an app category (for
12646	// example, education or puzzle games).
12647	//   "TARGETING_TYPE_APP" - Target a specific app (for example, Angry
12648	// Birds).
12649	//   "TARGETING_TYPE_URL" - Target a specific url (for example,
12650	// quora.com).
12651	//   "TARGETING_TYPE_DAY_AND_TIME" - Target ads during a chosen time
12652	// period on a specific day.
12653	//   "TARGETING_TYPE_AGE_RANGE" - Target ads to a specific age range
12654	// (for example, 18-24).
12655	//   "TARGETING_TYPE_REGIONAL_LOCATION_LIST" - Target ads to the
12656	// specified regions on a regional location list.
12657	//   "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" - Target ads to the
12658	// specified points of interest on a proximity location list.
12659	//   "TARGETING_TYPE_GENDER" - Target ads to a specific gender (for
12660	// example, female or male).
12661	//   "TARGETING_TYPE_VIDEO_PLAYER_SIZE" - Target a specific video player
12662	// size for video ads.
12663	//   "TARGETING_TYPE_USER_REWARDED_CONTENT" - Target user rewarded
12664	// content for video ads.
12665	//   "TARGETING_TYPE_PARENTAL_STATUS" - Target ads to a specific
12666	// parental status (for example, parent or not a parent).
12667	//   "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" - Target video or audio
12668	// ads in a specific content instream position (for example, pre-roll,
12669	// mid-roll, or post-roll).
12670	//   "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" - Target ads in a
12671	// specific content outstream position.
12672	//   "TARGETING_TYPE_DEVICE_TYPE" - Target ads to a specific device type
12673	// (for example, tablet or connected TV).
12674	//   "TARGETING_TYPE_AUDIENCE_GROUP" - Target ads to an audience or
12675	// groups of audiences. Singleton field, at most one can exist on a
12676	// single Lineitem at a time.
12677	//   "TARGETING_TYPE_BROWSER" - Target ads to specific web browsers (for
12678	// example, Chrome).
12679	//   "TARGETING_TYPE_HOUSEHOLD_INCOME" - Target ads to a specific
12680	// household income range (for example, top 10%).
12681	//   "TARGETING_TYPE_ON_SCREEN_POSITION" - Target ads in a specific on
12682	// screen position.
12683	//   "TARGETING_TYPE_THIRD_PARTY_VERIFIER" - Filter web sites through
12684	// third party verification (for example, IAS or DoubleVerify).
12685	//   "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" - Filter web sites
12686	// by specific digital content label ratings (for example, DL-MA:
12687	// suitable only for mature audiences).
12688	//   "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" - Filter website
12689	// content by sensitive categories (for example, adult).
12690	//   "TARGETING_TYPE_ENVIRONMENT" - Target ads to a specific environment
12691	// (for example, web or app).
12692	//   "TARGETING_TYPE_CARRIER_AND_ISP" - Target ads to a specific network
12693	// carrier or internet service provider (ISP) (for example, Comcast or
12694	// Orange).
12695	//   "TARGETING_TYPE_OPERATING_SYSTEM" - Target ads to a specific
12696	// operating system (for example, macOS).
12697	//   "TARGETING_TYPE_DEVICE_MAKE_MODEL" - Target ads to a specific
12698	// device make or model (for example, Roku or Samsung).
12699	//   "TARGETING_TYPE_KEYWORD" - Target ads to a specific keyword (for
12700	// example, dog or retriever).
12701	//   "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" - Target ads to a specific
12702	// negative keyword list.
12703	//   "TARGETING_TYPE_VIEWABILITY" - Target ads to a specific viewability
12704	// (for example, 80% viewable).
12705	//   "TARGETING_TYPE_CATEGORY" - Target ads to a specific content
12706	// category (for example, arts & entertainment).
12707	//   "TARGETING_TYPE_INVENTORY_SOURCE" - Purchase impressions from
12708	// specific deals and auction packages.
12709	//   "TARGETING_TYPE_LANGUAGE" - Target ads to a specific language (for
12710	// example, English or Japanese).
12711	//   "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" - Target ads to ads.txt
12712	// authorized sellers.
12713	//   "TARGETING_TYPE_GEO_REGION" - Target ads to a specific regional
12714	// location (for example, a city or state).
12715	//   "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" - Purchase impressions from
12716	// a group of deals and auction packages.
12717	//   "TARGETING_TYPE_EXCHANGE" - Purchase impressions from specific
12718	// exchanges.
12719	//   "TARGETING_TYPE_SUB_EXCHANGE" - Purchase impressions from specific
12720	// sub-exchanges.
12721	TargetingType string `json:"targetingType,omitempty"`
12722
12723	// UserRewardedContentDetails: User rewarded content details.
12724	UserRewardedContentDetails *UserRewardedContentTargetingOptionDetails `json:"userRewardedContentDetails,omitempty"`
12725
12726	// VideoPlayerSizeDetails: Video player size details.
12727	VideoPlayerSizeDetails *VideoPlayerSizeTargetingOptionDetails `json:"videoPlayerSizeDetails,omitempty"`
12728
12729	// ViewabilityDetails: Viewability resource details.
12730	ViewabilityDetails *ViewabilityTargetingOptionDetails `json:"viewabilityDetails,omitempty"`
12731
12732	// ServerResponse contains the HTTP response code and headers from the
12733	// server.
12734	googleapi.ServerResponse `json:"-"`
12735
12736	// ForceSendFields is a list of field names (e.g. "AgeRangeDetails") to
12737	// unconditionally include in API requests. By default, fields with
12738	// empty values are omitted from API requests. However, any non-pointer,
12739	// non-interface field appearing in ForceSendFields will be sent to the
12740	// server regardless of whether the field is empty or not. This may be
12741	// used to include empty fields in Patch requests.
12742	ForceSendFields []string `json:"-"`
12743
12744	// NullFields is a list of field names (e.g. "AgeRangeDetails") to
12745	// include in API requests with the JSON null value. By default, fields
12746	// with empty values are omitted from API requests. However, any field
12747	// with an empty value appearing in NullFields will be sent to the
12748	// server as null. It is an error if a field in this list has a
12749	// non-empty value. This may be used to include null fields in Patch
12750	// requests.
12751	NullFields []string `json:"-"`
12752}
12753
12754func (s *TargetingOption) MarshalJSON() ([]byte, error) {
12755	type NoMethod TargetingOption
12756	raw := NoMethod(*s)
12757	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12758}
12759
12760// ThirdPartyOnlyConfig: Settings for advertisers that use third-party
12761// ad servers only.
12762type ThirdPartyOnlyConfig struct {
12763	// PixelOrderIdReportingEnabled: Whether or not order ID reporting for
12764	// pixels is enabled. This value cannot be changed once set to `true`.
12765	PixelOrderIdReportingEnabled bool `json:"pixelOrderIdReportingEnabled,omitempty"`
12766
12767	// ForceSendFields is a list of field names (e.g.
12768	// "PixelOrderIdReportingEnabled") to unconditionally include in API
12769	// requests. By default, fields with empty values are omitted from API
12770	// requests. However, any non-pointer, non-interface field appearing in
12771	// ForceSendFields will be sent to the server regardless of whether the
12772	// field is empty or not. This may be used to include empty fields in
12773	// Patch requests.
12774	ForceSendFields []string `json:"-"`
12775
12776	// NullFields is a list of field names (e.g.
12777	// "PixelOrderIdReportingEnabled") to include in API requests with the
12778	// JSON null value. By default, fields with empty values are omitted
12779	// from API requests. However, any field with an empty value appearing
12780	// in NullFields will be sent to the server as null. It is an error if a
12781	// field in this list has a non-empty value. This may be used to include
12782	// null fields in Patch requests.
12783	NullFields []string `json:"-"`
12784}
12785
12786func (s *ThirdPartyOnlyConfig) MarshalJSON() ([]byte, error) {
12787	type NoMethod ThirdPartyOnlyConfig
12788	raw := NoMethod(*s)
12789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12790}
12791
12792// ThirdPartyUrl: Tracking URLs from third parties to track interactions
12793// with an audio or a video creative.
12794type ThirdPartyUrl struct {
12795	// Type: The type of interaction needs to be tracked by the tracking URL
12796	//
12797	// Possible values:
12798	//   "THIRD_PARTY_URL_TYPE_UNSPECIFIED" - The type of third-party URL is
12799	// unspecified or is unknown in this version.
12800	//   "THIRD_PARTY_URL_TYPE_IMPRESSION" - Used to count impressions of
12801	// the creative after the audio or video buffering is complete.
12802	//   "THIRD_PARTY_URL_TYPE_CLICK_TRACKING" - Used to track user clicks
12803	// on the audio or video.
12804	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_START" - Used to track the number
12805	// of times a user starts the audio or video.
12806	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_FIRST_QUARTILE" - Used to track
12807	// the number of times the audio or video plays to 25% of its length.
12808	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_MIDPOINT" - Used to track the
12809	// number of times the audio or video plays to 50% of its length.
12810	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_THIRD_QUARTILE" - Used to track
12811	// the number of times the audio or video plays to 75% of its length.
12812	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_COMPLETE" - Used to track the
12813	// number of times the audio or video plays to the end.
12814	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_MUTE" - Used to track the number
12815	// of times a user mutes the audio or video.
12816	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_PAUSE" - Used to track the number
12817	// of times a user pauses the audio or video.
12818	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_REWIND" - Used to track the
12819	// number of times a user replays the audio or video.
12820	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_FULLSCREEN" - Used to track the
12821	// number of times a user expands the player to full-screen size.
12822	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_STOP" - Used to track the number
12823	// of times a user stops the audio or video.
12824	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_CUSTOM" - Used to track the
12825	// number of times a user performs a custom click, such as clicking on a
12826	// video hot spot.
12827	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_SKIP" - Used to track the number
12828	// of times the audio or video was skipped.
12829	//   "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_PROGRESS" - Used to track the
12830	// number of times the audio or video plays to an offset determined by
12831	// the progress_offset.
12832	Type string `json:"type,omitempty"`
12833
12834	// Url: Tracking URL used to track the interaction. Provide a URL with
12835	// optional path or query string, beginning with `https:`. For example,
12836	// https://www.example.com/path
12837	Url string `json:"url,omitempty"`
12838
12839	// ForceSendFields is a list of field names (e.g. "Type") to
12840	// unconditionally include in API requests. By default, fields with
12841	// empty values are omitted from API requests. However, any non-pointer,
12842	// non-interface field appearing in ForceSendFields will be sent to the
12843	// server regardless of whether the field is empty or not. This may be
12844	// used to include empty fields in Patch requests.
12845	ForceSendFields []string `json:"-"`
12846
12847	// NullFields is a list of field names (e.g. "Type") to include in API
12848	// requests with the JSON null value. By default, fields with empty
12849	// values are omitted from API requests. However, any field with an
12850	// empty value appearing in NullFields will be sent to the server as
12851	// null. It is an error if a field in this list has a non-empty value.
12852	// This may be used to include null fields in Patch requests.
12853	NullFields []string `json:"-"`
12854}
12855
12856func (s *ThirdPartyUrl) MarshalJSON() ([]byte, error) {
12857	type NoMethod ThirdPartyUrl
12858	raw := NoMethod(*s)
12859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12860}
12861
12862// ThirdPartyVerifierAssignedTargetingOptionDetails: Assigned third
12863// party verifier targeting option details. This will be populated in
12864// the details field of an AssignedTargetingOption when targeting_type
12865// is `TARGETING_TYPE_THIRD_PARTY_VERIFIER`.
12866type ThirdPartyVerifierAssignedTargetingOptionDetails struct {
12867	// Adloox: Third party brand verifier -- Adloox.
12868	Adloox *Adloox `json:"adloox,omitempty"`
12869
12870	// DoubleVerify: Third party brand verifier -- DoubleVerify.
12871	DoubleVerify *DoubleVerify `json:"doubleVerify,omitempty"`
12872
12873	// IntegralAdScience: Third party brand verifier -- Integral Ad Science.
12874	IntegralAdScience *IntegralAdScience `json:"integralAdScience,omitempty"`
12875
12876	// ForceSendFields is a list of field names (e.g. "Adloox") to
12877	// unconditionally include in API requests. By default, fields with
12878	// empty values are omitted from API requests. However, any non-pointer,
12879	// non-interface field appearing in ForceSendFields will be sent to the
12880	// server regardless of whether the field is empty or not. This may be
12881	// used to include empty fields in Patch requests.
12882	ForceSendFields []string `json:"-"`
12883
12884	// NullFields is a list of field names (e.g. "Adloox") to include in API
12885	// requests with the JSON null value. By default, fields with empty
12886	// values are omitted from API requests. However, any field with an
12887	// empty value appearing in NullFields will be sent to the server as
12888	// null. It is an error if a field in this list has a non-empty value.
12889	// This may be used to include null fields in Patch requests.
12890	NullFields []string `json:"-"`
12891}
12892
12893func (s *ThirdPartyVerifierAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
12894	type NoMethod ThirdPartyVerifierAssignedTargetingOptionDetails
12895	raw := NoMethod(*s)
12896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12897}
12898
12899// TimeRange: A time range.
12900type TimeRange struct {
12901	// EndTime: Required. The upper bound of a time range, inclusive.
12902	EndTime string `json:"endTime,omitempty"`
12903
12904	// StartTime: Required. The lower bound of a time range, inclusive.
12905	StartTime string `json:"startTime,omitempty"`
12906
12907	// ForceSendFields is a list of field names (e.g. "EndTime") to
12908	// unconditionally include in API requests. By default, fields with
12909	// empty values are omitted from API requests. However, any non-pointer,
12910	// non-interface field appearing in ForceSendFields will be sent to the
12911	// server regardless of whether the field is empty or not. This may be
12912	// used to include empty fields in Patch requests.
12913	ForceSendFields []string `json:"-"`
12914
12915	// NullFields is a list of field names (e.g. "EndTime") to include in
12916	// API requests with the JSON null value. By default, fields with empty
12917	// values are omitted from API requests. However, any field with an
12918	// empty value appearing in NullFields will be sent to the server as
12919	// null. It is an error if a field in this list has a non-empty value.
12920	// This may be used to include null fields in Patch requests.
12921	NullFields []string `json:"-"`
12922}
12923
12924func (s *TimeRange) MarshalJSON() ([]byte, error) {
12925	type NoMethod TimeRange
12926	raw := NoMethod(*s)
12927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12928}
12929
12930// TimerEvent: Timer event of the creative.
12931type TimerEvent struct {
12932	// Name: Required. The name of the timer event.
12933	Name string `json:"name,omitempty"`
12934
12935	// ReportingName: Required. The name used to identify this timer event
12936	// in reports.
12937	ReportingName string `json:"reportingName,omitempty"`
12938
12939	// ForceSendFields is a list of field names (e.g. "Name") to
12940	// unconditionally include in API requests. By default, fields with
12941	// empty values are omitted from API requests. However, any non-pointer,
12942	// non-interface field appearing in ForceSendFields will be sent to the
12943	// server regardless of whether the field is empty or not. This may be
12944	// used to include empty fields in Patch requests.
12945	ForceSendFields []string `json:"-"`
12946
12947	// NullFields is a list of field names (e.g. "Name") to include in API
12948	// requests with the JSON null value. By default, fields with empty
12949	// values are omitted from API requests. However, any field with an
12950	// empty value appearing in NullFields will be sent to the server as
12951	// null. It is an error if a field in this list has a non-empty value.
12952	// This may be used to include null fields in Patch requests.
12953	NullFields []string `json:"-"`
12954}
12955
12956func (s *TimerEvent) MarshalJSON() ([]byte, error) {
12957	type NoMethod TimerEvent
12958	raw := NoMethod(*s)
12959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12960}
12961
12962// TrackingFloodlightActivityConfig: Settings that control the behavior
12963// of a single Floodlight activity config.
12964type TrackingFloodlightActivityConfig struct {
12965	// FloodlightActivityId: Required. The ID of the Floodlight activity.
12966	FloodlightActivityId int64 `json:"floodlightActivityId,omitempty,string"`
12967
12968	// PostClickLookbackWindowDays: Required. The number of days after an ad
12969	// has been clicked in which a conversion may be counted. Must be
12970	// between 0 and 90 inclusive.
12971	PostClickLookbackWindowDays int64 `json:"postClickLookbackWindowDays,omitempty"`
12972
12973	// PostViewLookbackWindowDays: Required. The number of days after an ad
12974	// has been viewed in which a conversion may be counted. Must be between
12975	// 0 and 90 inclusive.
12976	PostViewLookbackWindowDays int64 `json:"postViewLookbackWindowDays,omitempty"`
12977
12978	// ForceSendFields is a list of field names (e.g.
12979	// "FloodlightActivityId") to unconditionally include in API requests.
12980	// By default, fields with empty values are omitted from API requests.
12981	// However, any non-pointer, non-interface field appearing in
12982	// ForceSendFields will be sent to the server regardless of whether the
12983	// field is empty or not. This may be used to include empty fields in
12984	// Patch requests.
12985	ForceSendFields []string `json:"-"`
12986
12987	// NullFields is a list of field names (e.g. "FloodlightActivityId") to
12988	// include in API requests with the JSON null value. By default, fields
12989	// with empty values are omitted from API requests. However, any field
12990	// with an empty value appearing in NullFields will be sent to the
12991	// server as null. It is an error if a field in this list has a
12992	// non-empty value. This may be used to include null fields in Patch
12993	// requests.
12994	NullFields []string `json:"-"`
12995}
12996
12997func (s *TrackingFloodlightActivityConfig) MarshalJSON() ([]byte, error) {
12998	type NoMethod TrackingFloodlightActivityConfig
12999	raw := NoMethod(*s)
13000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13001}
13002
13003// Transcode: Represents information about the transcoded audio or video
13004// file.
13005type Transcode struct {
13006	// AudioBitRateKbps: The bit rate for the audio stream of the transcoded
13007	// video, or the bit rate for the transcoded audio, in kilobits per
13008	// second.
13009	AudioBitRateKbps int64 `json:"audioBitRateKbps,omitempty,string"`
13010
13011	// AudioSampleRateHz: The sample rate for the audio stream of the
13012	// transcoded video, or the sample rate for the transcoded audio, in
13013	// hertz.
13014	AudioSampleRateHz int64 `json:"audioSampleRateHz,omitempty,string"`
13015
13016	// BitRateKbps: The transcoding bit rate of the transcoded video, in
13017	// kilobits per second.
13018	BitRateKbps int64 `json:"bitRateKbps,omitempty,string"`
13019
13020	// Dimensions: The dimensions of the transcoded video.
13021	Dimensions *Dimensions `json:"dimensions,omitempty"`
13022
13023	// FileSizeBytes: The size of the transcoded file, in bytes.
13024	FileSizeBytes int64 `json:"fileSizeBytes,omitempty,string"`
13025
13026	// FrameRate: The frame rate of the transcoded video, in frames per
13027	// second.
13028	FrameRate float64 `json:"frameRate,omitempty"`
13029
13030	// MimeType: The MIME type of the transcoded file.
13031	MimeType string `json:"mimeType,omitempty"`
13032
13033	// Name: The name of the transcoded file.
13034	Name string `json:"name,omitempty"`
13035
13036	// Transcoded: Indicates if the transcoding was successful.
13037	Transcoded bool `json:"transcoded,omitempty"`
13038
13039	// ForceSendFields is a list of field names (e.g. "AudioBitRateKbps") to
13040	// unconditionally include in API requests. By default, fields with
13041	// empty values are omitted from API requests. However, any non-pointer,
13042	// non-interface field appearing in ForceSendFields will be sent to the
13043	// server regardless of whether the field is empty or not. This may be
13044	// used to include empty fields in Patch requests.
13045	ForceSendFields []string `json:"-"`
13046
13047	// NullFields is a list of field names (e.g. "AudioBitRateKbps") to
13048	// include in API requests with the JSON null value. By default, fields
13049	// with empty values are omitted from API requests. However, any field
13050	// with an empty value appearing in NullFields will be sent to the
13051	// server as null. It is an error if a field in this list has a
13052	// non-empty value. This may be used to include null fields in Patch
13053	// requests.
13054	NullFields []string `json:"-"`
13055}
13056
13057func (s *Transcode) MarshalJSON() ([]byte, error) {
13058	type NoMethod Transcode
13059	raw := NoMethod(*s)
13060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13061}
13062
13063func (s *Transcode) UnmarshalJSON(data []byte) error {
13064	type NoMethod Transcode
13065	var s1 struct {
13066		FrameRate gensupport.JSONFloat64 `json:"frameRate"`
13067		*NoMethod
13068	}
13069	s1.NoMethod = (*NoMethod)(s)
13070	if err := json.Unmarshal(data, &s1); err != nil {
13071		return err
13072	}
13073	s.FrameRate = float64(s1.FrameRate)
13074	return nil
13075}
13076
13077// UniversalAdId: A creative identifier provided by a registry that is
13078// unique across all platforms. This is part of the VAST 4.0 standard.
13079type UniversalAdId struct {
13080	// Id: The unique creative identifier.
13081	Id string `json:"id,omitempty"`
13082
13083	// Registry: The registry provides unique creative identifiers.
13084	//
13085	// Possible values:
13086	//   "UNIVERSAL_AD_REGISTRY_UNSPECIFIED" - The Universal Ad registry is
13087	// unspecified or is unknown in this version.
13088	//   "UNIVERSAL_AD_REGISTRY_OTHER" - Use a custom provider to provide
13089	// the Universal Ad ID.
13090	//   "UNIVERSAL_AD_REGISTRY_AD_ID" - Use Ad-ID to provide the Universal
13091	// Ad ID.
13092	//   "UNIVERSAL_AD_REGISTRY_CLEARCAST" - Use clearcast.co.uk to provide
13093	// the Universal Ad ID.
13094	//   "UNIVERSAL_AD_REGISTRY_DV360" - Use Display & Video 360 to provide
13095	// the Universal Ad ID.
13096	//   "UNIVERSAL_AD_REGISTRY_CM" - Use Campaign Manager 360 to provide
13097	// the Universal Ad ID.
13098	Registry string `json:"registry,omitempty"`
13099
13100	// ForceSendFields is a list of field names (e.g. "Id") to
13101	// unconditionally include in API requests. By default, fields with
13102	// empty values are omitted from API requests. However, any non-pointer,
13103	// non-interface field appearing in ForceSendFields will be sent to the
13104	// server regardless of whether the field is empty or not. This may be
13105	// used to include empty fields in Patch requests.
13106	ForceSendFields []string `json:"-"`
13107
13108	// NullFields is a list of field names (e.g. "Id") to include in API
13109	// requests with the JSON null value. By default, fields with empty
13110	// values are omitted from API requests. However, any field with an
13111	// empty value appearing in NullFields will be sent to the server as
13112	// null. It is an error if a field in this list has a non-empty value.
13113	// This may be used to include null fields in Patch requests.
13114	NullFields []string `json:"-"`
13115}
13116
13117func (s *UniversalAdId) MarshalJSON() ([]byte, error) {
13118	type NoMethod UniversalAdId
13119	raw := NoMethod(*s)
13120	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13121}
13122
13123// UrlAssignedTargetingOptionDetails: Details for assigned URL targeting
13124// option. This will be populated in the details field of an
13125// AssignedTargetingOption when targeting_type is `TARGETING_TYPE_URL`.
13126type UrlAssignedTargetingOptionDetails struct {
13127	// Negative: Indicates if this option is being negatively targeted.
13128	Negative bool `json:"negative,omitempty"`
13129
13130	// Url: Required. The URL, for example `example.com`. DV360 supports two
13131	// levels of subdirectory targeting, for example
13132	// `www.example.com/one-subdirectory-level/second-level`, and five
13133	// levels of subdomain targeting, for example
13134	// `five.four.three.two.one.example.com`.
13135	Url string `json:"url,omitempty"`
13136
13137	// ForceSendFields is a list of field names (e.g. "Negative") to
13138	// unconditionally include in API requests. By default, fields with
13139	// empty values are omitted from API requests. However, any non-pointer,
13140	// non-interface field appearing in ForceSendFields will be sent to the
13141	// server regardless of whether the field is empty or not. This may be
13142	// used to include empty fields in Patch requests.
13143	ForceSendFields []string `json:"-"`
13144
13145	// NullFields is a list of field names (e.g. "Negative") to include in
13146	// API requests with the JSON null value. By default, fields with empty
13147	// values are omitted from API requests. However, any field with an
13148	// empty value appearing in NullFields will be sent to the server as
13149	// null. It is an error if a field in this list has a non-empty value.
13150	// This may be used to include null fields in Patch requests.
13151	NullFields []string `json:"-"`
13152}
13153
13154func (s *UrlAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
13155	type NoMethod UrlAssignedTargetingOptionDetails
13156	raw := NoMethod(*s)
13157	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13158}
13159
13160// User: A single user in Display & Video 360.
13161type User struct {
13162	// AssignedUserRoles: The assigned user roles. Required in CreateUser.
13163	// Output only in UpdateUser. Can only be updated through
13164	// BulkEditAssignedUserRoles.
13165	AssignedUserRoles []*AssignedUserRole `json:"assignedUserRoles,omitempty"`
13166
13167	// DisplayName: Required. The display name of the user. Must be UTF-8
13168	// encoded with a maximum size of 240 bytes.
13169	DisplayName string `json:"displayName,omitempty"`
13170
13171	// Email: Required. Immutable. The email address used to identify the
13172	// user.
13173	Email string `json:"email,omitempty"`
13174
13175	// Name: Output only. The resource name of the user.
13176	Name string `json:"name,omitempty"`
13177
13178	// UserId: Output only. The unique ID of the user. Assigned by the
13179	// system.
13180	UserId int64 `json:"userId,omitempty,string"`
13181
13182	// ServerResponse contains the HTTP response code and headers from the
13183	// server.
13184	googleapi.ServerResponse `json:"-"`
13185
13186	// ForceSendFields is a list of field names (e.g. "AssignedUserRoles")
13187	// to unconditionally include in API requests. By default, fields with
13188	// empty values are omitted from API requests. However, any non-pointer,
13189	// non-interface field appearing in ForceSendFields will be sent to the
13190	// server regardless of whether the field is empty or not. This may be
13191	// used to include empty fields in Patch requests.
13192	ForceSendFields []string `json:"-"`
13193
13194	// NullFields is a list of field names (e.g. "AssignedUserRoles") to
13195	// include in API requests with the JSON null value. By default, fields
13196	// with empty values are omitted from API requests. However, any field
13197	// with an empty value appearing in NullFields will be sent to the
13198	// server as null. It is an error if a field in this list has a
13199	// non-empty value. This may be used to include null fields in Patch
13200	// requests.
13201	NullFields []string `json:"-"`
13202}
13203
13204func (s *User) MarshalJSON() ([]byte, error) {
13205	type NoMethod User
13206	raw := NoMethod(*s)
13207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13208}
13209
13210// UserRewardedContentAssignedTargetingOptionDetails: User rewarded
13211// content targeting option details. This will be populated in the
13212// user_rewarded_content_details field when targeting_type is
13213// `TARGETING_TYPE_USER_REWARDED_CONTENT`.
13214type UserRewardedContentAssignedTargetingOptionDetails struct {
13215	// TargetingOptionId: Required. The targeting_option_id field when
13216	// targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.
13217	TargetingOptionId string `json:"targetingOptionId,omitempty"`
13218
13219	// UserRewardedContent: Output only. User rewarded content status for
13220	// video ads.
13221	//
13222	// Possible values:
13223	//   "USER_REWARDED_CONTENT_UNSPECIFIED" - User rewarded content is not
13224	// specified or is unknown in this version.
13225	//   "USER_REWARDED_CONTENT_USER_REWARDED" - Represents ads where the
13226	// user will see a reward after viewing.
13227	//   "USER_REWARDED_CONTENT_NOT_USER_REWARDED" - Represents all other
13228	// ads besides user-rewarded.
13229	UserRewardedContent string `json:"userRewardedContent,omitempty"`
13230
13231	// ForceSendFields is a list of field names (e.g. "TargetingOptionId")
13232	// to unconditionally include in API requests. By default, fields with
13233	// empty values are omitted from API requests. However, any non-pointer,
13234	// non-interface field appearing in ForceSendFields will be sent to the
13235	// server regardless of whether the field is empty or not. This may be
13236	// used to include empty fields in Patch requests.
13237	ForceSendFields []string `json:"-"`
13238
13239	// NullFields is a list of field names (e.g. "TargetingOptionId") to
13240	// include in API requests with the JSON null value. By default, fields
13241	// with empty values are omitted from API requests. However, any field
13242	// with an empty value appearing in NullFields will be sent to the
13243	// server as null. It is an error if a field in this list has a
13244	// non-empty value. This may be used to include null fields in Patch
13245	// requests.
13246	NullFields []string `json:"-"`
13247}
13248
13249func (s *UserRewardedContentAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
13250	type NoMethod UserRewardedContentAssignedTargetingOptionDetails
13251	raw := NoMethod(*s)
13252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13253}
13254
13255// UserRewardedContentTargetingOptionDetails: Represents a targetable
13256// user rewarded content status for video ads only. This will be
13257// populated in the user_rewarded_content_details field when
13258// targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.
13259type UserRewardedContentTargetingOptionDetails struct {
13260	// UserRewardedContent: Output only. User rewarded content status for
13261	// video ads.
13262	//
13263	// Possible values:
13264	//   "USER_REWARDED_CONTENT_UNSPECIFIED" - User rewarded content is not
13265	// specified or is unknown in this version.
13266	//   "USER_REWARDED_CONTENT_USER_REWARDED" - Represents ads where the
13267	// user will see a reward after viewing.
13268	//   "USER_REWARDED_CONTENT_NOT_USER_REWARDED" - Represents all other
13269	// ads besides user-rewarded.
13270	UserRewardedContent string `json:"userRewardedContent,omitempty"`
13271
13272	// ForceSendFields is a list of field names (e.g. "UserRewardedContent")
13273	// to unconditionally include in API requests. By default, fields with
13274	// empty values are omitted from API requests. However, any non-pointer,
13275	// non-interface field appearing in ForceSendFields will be sent to the
13276	// server regardless of whether the field is empty or not. This may be
13277	// used to include empty fields in Patch requests.
13278	ForceSendFields []string `json:"-"`
13279
13280	// NullFields is a list of field names (e.g. "UserRewardedContent") to
13281	// include in API requests with the JSON null value. By default, fields
13282	// with empty values are omitted from API requests. However, any field
13283	// with an empty value appearing in NullFields will be sent to the
13284	// server as null. It is an error if a field in this list has a
13285	// non-empty value. This may be used to include null fields in Patch
13286	// requests.
13287	NullFields []string `json:"-"`
13288}
13289
13290func (s *UserRewardedContentTargetingOptionDetails) MarshalJSON() ([]byte, error) {
13291	type NoMethod UserRewardedContentTargetingOptionDetails
13292	raw := NoMethod(*s)
13293	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13294}
13295
13296// VideoPlayerSizeAssignedTargetingOptionDetails: Video player size
13297// targeting option details. This will be populated in the
13298// video_player_size_details field when targeting_type is
13299// `TARGETING_TYPE_VIDEO_PLAYER_SIZE`. Explicitly targeting all options
13300// is not supported. Remove all video player size targeting options to
13301// achieve this effect.
13302type VideoPlayerSizeAssignedTargetingOptionDetails struct {
13303	// TargetingOptionId: Required. The targeting_option_id field when
13304	// targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.
13305	TargetingOptionId string `json:"targetingOptionId,omitempty"`
13306
13307	// VideoPlayerSize: Output only. The video player size.
13308	//
13309	// Possible values:
13310	//   "VIDEO_PLAYER_SIZE_UNSPECIFIED" - Video player size is not
13311	// specified in this version. This enum is a place holder for a default
13312	// value and does not represent a real video player size.
13313	//   "VIDEO_PLAYER_SIZE_SMALL" - The dimensions of the video player are
13314	// less than 400×300 (desktop), or up to 20% of screen covered
13315	// (mobile).
13316	//   "VIDEO_PLAYER_SIZE_LARGE" - The dimensions of the video player are
13317	// between 400x300 and 1280x720 pixels (desktop), or 20% to 90% of the
13318	// screen covered (mobile).
13319	//   "VIDEO_PLAYER_SIZE_HD" - The dimensions of the video player are
13320	// 1280×720 or greater (desktop), or over 90% of the screen covered
13321	// (mobile).
13322	//   "VIDEO_PLAYER_SIZE_UNKNOWN" - The dimensions of the video player
13323	// are unknown.
13324	VideoPlayerSize string `json:"videoPlayerSize,omitempty"`
13325
13326	// ForceSendFields is a list of field names (e.g. "TargetingOptionId")
13327	// to unconditionally include in API requests. By default, fields with
13328	// empty values are omitted from API requests. However, any non-pointer,
13329	// non-interface field appearing in ForceSendFields will be sent to the
13330	// server regardless of whether the field is empty or not. This may be
13331	// used to include empty fields in Patch requests.
13332	ForceSendFields []string `json:"-"`
13333
13334	// NullFields is a list of field names (e.g. "TargetingOptionId") to
13335	// include in API requests with the JSON null value. By default, fields
13336	// with empty values are omitted from API requests. However, any field
13337	// with an empty value appearing in NullFields will be sent to the
13338	// server as null. It is an error if a field in this list has a
13339	// non-empty value. This may be used to include null fields in Patch
13340	// requests.
13341	NullFields []string `json:"-"`
13342}
13343
13344func (s *VideoPlayerSizeAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
13345	type NoMethod VideoPlayerSizeAssignedTargetingOptionDetails
13346	raw := NoMethod(*s)
13347	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13348}
13349
13350// VideoPlayerSizeTargetingOptionDetails: Represents a targetable video
13351// player size. This will be populated in the video_player_size_details
13352// field when targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.
13353type VideoPlayerSizeTargetingOptionDetails struct {
13354	// VideoPlayerSize: Output only. The video player size.
13355	//
13356	// Possible values:
13357	//   "VIDEO_PLAYER_SIZE_UNSPECIFIED" - Video player size is not
13358	// specified in this version. This enum is a place holder for a default
13359	// value and does not represent a real video player size.
13360	//   "VIDEO_PLAYER_SIZE_SMALL" - The dimensions of the video player are
13361	// less than 400×300 (desktop), or up to 20% of screen covered
13362	// (mobile).
13363	//   "VIDEO_PLAYER_SIZE_LARGE" - The dimensions of the video player are
13364	// between 400x300 and 1280x720 pixels (desktop), or 20% to 90% of the
13365	// screen covered (mobile).
13366	//   "VIDEO_PLAYER_SIZE_HD" - The dimensions of the video player are
13367	// 1280×720 or greater (desktop), or over 90% of the screen covered
13368	// (mobile).
13369	//   "VIDEO_PLAYER_SIZE_UNKNOWN" - The dimensions of the video player
13370	// are unknown.
13371	VideoPlayerSize string `json:"videoPlayerSize,omitempty"`
13372
13373	// ForceSendFields is a list of field names (e.g. "VideoPlayerSize") to
13374	// unconditionally include in API requests. By default, fields with
13375	// empty values are omitted from API requests. However, any non-pointer,
13376	// non-interface field appearing in ForceSendFields will be sent to the
13377	// server regardless of whether the field is empty or not. This may be
13378	// used to include empty fields in Patch requests.
13379	ForceSendFields []string `json:"-"`
13380
13381	// NullFields is a list of field names (e.g. "VideoPlayerSize") to
13382	// include in API requests with the JSON null value. By default, fields
13383	// with empty values are omitted from API requests. However, any field
13384	// with an empty value appearing in NullFields will be sent to the
13385	// server as null. It is an error if a field in this list has a
13386	// non-empty value. This may be used to include null fields in Patch
13387	// requests.
13388	NullFields []string `json:"-"`
13389}
13390
13391func (s *VideoPlayerSizeTargetingOptionDetails) MarshalJSON() ([]byte, error) {
13392	type NoMethod VideoPlayerSizeTargetingOptionDetails
13393	raw := NoMethod(*s)
13394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13395}
13396
13397// ViewabilityAssignedTargetingOptionDetails: Assigned viewability
13398// targeting option details. This will be populated in the
13399// viewability_details field of an AssignedTargetingOption when
13400// targeting_type is `TARGETING_TYPE_VIEWABILITY`.
13401type ViewabilityAssignedTargetingOptionDetails struct {
13402	// TargetingOptionId: Required. The targeting_option_id of a
13403	// TargetingOption of type `TARGETING_TYPE_VIEWABILITY` (e.g., "509010"
13404	// for targeting the `VIEWABILITY_10_PERCENT_OR_MORE` option).
13405	TargetingOptionId string `json:"targetingOptionId,omitempty"`
13406
13407	// Viewability: Output only. The predicted viewability percentage.
13408	//
13409	// Possible values:
13410	//   "VIEWABILITY_UNSPECIFIED" - Default value when viewability is not
13411	// specified in this version. This enum is a placeholder for default
13412	// value and does not represent a real viewability option.
13413	//   "VIEWABILITY_10_PERCENT_OR_MORE" - Bid only on impressions that are
13414	// at least 10% likely to be viewable.
13415	//   "VIEWABILITY_20_PERCENT_OR_MORE" - Bid only on impressions that are
13416	// at least 20% likely to be viewable.
13417	//   "VIEWABILITY_30_PERCENT_OR_MORE" - Bid only on impressions that are
13418	// at least 30% likely to be viewable.
13419	//   "VIEWABILITY_40_PERCENT_OR_MORE" - Bid only on impressions that are
13420	// at least 40% likely to be viewable.
13421	//   "VIEWABILITY_50_PERCENT_OR_MORE" - Bid only on impressions that are
13422	// at least 50% likely to be viewable.
13423	//   "VIEWABILITY_60_PERCENT_OR_MORE" - Bid only on impressions that are
13424	// at least 60% likely to be viewable.
13425	//   "VIEWABILITY_70_PERCENT_OR_MORE" - Bid only on impressions that are
13426	// at least 70% likely to be viewable.
13427	//   "VIEWABILITY_80_PERCENT_OR_MORE" - Bid only on impressions that are
13428	// at least 80% likely to be viewable.
13429	//   "VIEWABILITY_90_PERCENT_OR_MORE" - Bid only on impressions that are
13430	// at least 90% likely to be viewable.
13431	Viewability string `json:"viewability,omitempty"`
13432
13433	// ForceSendFields is a list of field names (e.g. "TargetingOptionId")
13434	// to unconditionally include in API requests. By default, fields with
13435	// empty values are omitted from API requests. However, any non-pointer,
13436	// non-interface field appearing in ForceSendFields will be sent to the
13437	// server regardless of whether the field is empty or not. This may be
13438	// used to include empty fields in Patch requests.
13439	ForceSendFields []string `json:"-"`
13440
13441	// NullFields is a list of field names (e.g. "TargetingOptionId") to
13442	// include in API requests with the JSON null value. By default, fields
13443	// with empty values are omitted from API requests. However, any field
13444	// with an empty value appearing in NullFields will be sent to the
13445	// server as null. It is an error if a field in this list has a
13446	// non-empty value. This may be used to include null fields in Patch
13447	// requests.
13448	NullFields []string `json:"-"`
13449}
13450
13451func (s *ViewabilityAssignedTargetingOptionDetails) MarshalJSON() ([]byte, error) {
13452	type NoMethod ViewabilityAssignedTargetingOptionDetails
13453	raw := NoMethod(*s)
13454	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13455}
13456
13457// ViewabilityTargetingOptionDetails: Represents a targetable
13458// viewability. This will be populated in the viewability_details field
13459// of a TargetingOption when targeting_type is
13460// `TARGETING_TYPE_VIEWABILITY`.
13461type ViewabilityTargetingOptionDetails struct {
13462	// Viewability: Output only. The predicted viewability percentage.
13463	//
13464	// Possible values:
13465	//   "VIEWABILITY_UNSPECIFIED" - Default value when viewability is not
13466	// specified in this version. This enum is a placeholder for default
13467	// value and does not represent a real viewability option.
13468	//   "VIEWABILITY_10_PERCENT_OR_MORE" - Bid only on impressions that are
13469	// at least 10% likely to be viewable.
13470	//   "VIEWABILITY_20_PERCENT_OR_MORE" - Bid only on impressions that are
13471	// at least 20% likely to be viewable.
13472	//   "VIEWABILITY_30_PERCENT_OR_MORE" - Bid only on impressions that are
13473	// at least 30% likely to be viewable.
13474	//   "VIEWABILITY_40_PERCENT_OR_MORE" - Bid only on impressions that are
13475	// at least 40% likely to be viewable.
13476	//   "VIEWABILITY_50_PERCENT_OR_MORE" - Bid only on impressions that are
13477	// at least 50% likely to be viewable.
13478	//   "VIEWABILITY_60_PERCENT_OR_MORE" - Bid only on impressions that are
13479	// at least 60% likely to be viewable.
13480	//   "VIEWABILITY_70_PERCENT_OR_MORE" - Bid only on impressions that are
13481	// at least 70% likely to be viewable.
13482	//   "VIEWABILITY_80_PERCENT_OR_MORE" - Bid only on impressions that are
13483	// at least 80% likely to be viewable.
13484	//   "VIEWABILITY_90_PERCENT_OR_MORE" - Bid only on impressions that are
13485	// at least 90% likely to be viewable.
13486	Viewability string `json:"viewability,omitempty"`
13487
13488	// ForceSendFields is a list of field names (e.g. "Viewability") to
13489	// unconditionally include in API requests. By default, fields with
13490	// empty values are omitted from API requests. However, any non-pointer,
13491	// non-interface field appearing in ForceSendFields will be sent to the
13492	// server regardless of whether the field is empty or not. This may be
13493	// used to include empty fields in Patch requests.
13494	ForceSendFields []string `json:"-"`
13495
13496	// NullFields is a list of field names (e.g. "Viewability") to include
13497	// in API requests with the JSON null value. By default, fields with
13498	// empty values are omitted from API requests. However, any field with
13499	// an empty value appearing in NullFields will be sent to the server as
13500	// null. It is an error if a field in this list has a non-empty value.
13501	// This may be used to include null fields in Patch requests.
13502	NullFields []string `json:"-"`
13503}
13504
13505func (s *ViewabilityTargetingOptionDetails) MarshalJSON() ([]byte, error) {
13506	type NoMethod ViewabilityTargetingOptionDetails
13507	raw := NoMethod(*s)
13508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13509}
13510
13511// method id "displayvideo.advertisers.audit":
13512
13513type AdvertisersAuditCall struct {
13514	s            *Service
13515	advertiserId int64
13516	urlParams_   gensupport.URLParams
13517	ifNoneMatch_ string
13518	ctx_         context.Context
13519	header_      http.Header
13520}
13521
13522// Audit: Audits an advertiser. Returns the counts of used entities per
13523// resource type under the advertiser provided. Used entities count
13524// towards their respective resource limit. See
13525// https://support.google.com/displayvideo/answer/6071450.
13526//
13527// - advertiserId: The ID of the advertiser to audit.
13528func (r *AdvertisersService) Audit(advertiserId int64) *AdvertisersAuditCall {
13529	c := &AdvertisersAuditCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13530	c.advertiserId = advertiserId
13531	return c
13532}
13533
13534// ReadMask sets the optional parameter "readMask": The specific fields
13535// to return. If no mask is specified, all fields in the response proto
13536// will be filled. Valid values are: * usedLineItemsCount *
13537// usedInsertionOrdersCount * usedCampaignsCount * channelsCount *
13538// negativelyTargetedChannelsCount * negativeKeywordListsCount *
13539// adGroupCriteriaCount * campaignCriteriaCount
13540func (c *AdvertisersAuditCall) ReadMask(readMask string) *AdvertisersAuditCall {
13541	c.urlParams_.Set("readMask", readMask)
13542	return c
13543}
13544
13545// Fields allows partial responses to be retrieved. See
13546// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13547// for more information.
13548func (c *AdvertisersAuditCall) Fields(s ...googleapi.Field) *AdvertisersAuditCall {
13549	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13550	return c
13551}
13552
13553// IfNoneMatch sets the optional parameter which makes the operation
13554// fail if the object's ETag matches the given value. This is useful for
13555// getting updates only after the object has changed since the last
13556// request. Use googleapi.IsNotModified to check whether the response
13557// error from Do is the result of In-None-Match.
13558func (c *AdvertisersAuditCall) IfNoneMatch(entityTag string) *AdvertisersAuditCall {
13559	c.ifNoneMatch_ = entityTag
13560	return c
13561}
13562
13563// Context sets the context to be used in this call's Do method. Any
13564// pending HTTP request will be aborted if the provided context is
13565// canceled.
13566func (c *AdvertisersAuditCall) Context(ctx context.Context) *AdvertisersAuditCall {
13567	c.ctx_ = ctx
13568	return c
13569}
13570
13571// Header returns an http.Header that can be modified by the caller to
13572// add HTTP headers to the request.
13573func (c *AdvertisersAuditCall) Header() http.Header {
13574	if c.header_ == nil {
13575		c.header_ = make(http.Header)
13576	}
13577	return c.header_
13578}
13579
13580func (c *AdvertisersAuditCall) doRequest(alt string) (*http.Response, error) {
13581	reqHeaders := make(http.Header)
13582	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
13583	for k, v := range c.header_ {
13584		reqHeaders[k] = v
13585	}
13586	reqHeaders.Set("User-Agent", c.s.userAgent())
13587	if c.ifNoneMatch_ != "" {
13588		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13589	}
13590	var body io.Reader = nil
13591	c.urlParams_.Set("alt", alt)
13592	c.urlParams_.Set("prettyPrint", "false")
13593	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}:audit")
13594	urls += "?" + c.urlParams_.Encode()
13595	req, err := http.NewRequest("GET", urls, body)
13596	if err != nil {
13597		return nil, err
13598	}
13599	req.Header = reqHeaders
13600	googleapi.Expand(req.URL, map[string]string{
13601		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
13602	})
13603	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13604}
13605
13606// Do executes the "displayvideo.advertisers.audit" call.
13607// Exactly one of *AuditAdvertiserResponse or error will be non-nil. Any
13608// non-2xx status code is an error. Response headers are in either
13609// *AuditAdvertiserResponse.ServerResponse.Header or (if a response was
13610// returned at all) in error.(*googleapi.Error).Header. Use
13611// googleapi.IsNotModified to check whether the returned error was
13612// because http.StatusNotModified was returned.
13613func (c *AdvertisersAuditCall) Do(opts ...googleapi.CallOption) (*AuditAdvertiserResponse, error) {
13614	gensupport.SetOptions(c.urlParams_, opts...)
13615	res, err := c.doRequest("json")
13616	if res != nil && res.StatusCode == http.StatusNotModified {
13617		if res.Body != nil {
13618			res.Body.Close()
13619		}
13620		return nil, &googleapi.Error{
13621			Code:   res.StatusCode,
13622			Header: res.Header,
13623		}
13624	}
13625	if err != nil {
13626		return nil, err
13627	}
13628	defer googleapi.CloseBody(res)
13629	if err := googleapi.CheckResponse(res); err != nil {
13630		return nil, err
13631	}
13632	ret := &AuditAdvertiserResponse{
13633		ServerResponse: googleapi.ServerResponse{
13634			Header:         res.Header,
13635			HTTPStatusCode: res.StatusCode,
13636		},
13637	}
13638	target := &ret
13639	if err := gensupport.DecodeResponse(target, res); err != nil {
13640		return nil, err
13641	}
13642	return ret, nil
13643	// {
13644	//   "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.",
13645	//   "flatPath": "v1/advertisers/{advertisersId}:audit",
13646	//   "httpMethod": "GET",
13647	//   "id": "displayvideo.advertisers.audit",
13648	//   "parameterOrder": [
13649	//     "advertiserId"
13650	//   ],
13651	//   "parameters": {
13652	//     "advertiserId": {
13653	//       "description": "Required. The ID of the advertiser to audit.",
13654	//       "format": "int64",
13655	//       "location": "path",
13656	//       "pattern": "^[^/]+$",
13657	//       "required": true,
13658	//       "type": "string"
13659	//     },
13660	//     "readMask": {
13661	//       "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",
13662	//       "format": "google-fieldmask",
13663	//       "location": "query",
13664	//       "type": "string"
13665	//     }
13666	//   },
13667	//   "path": "v1/advertisers/{+advertiserId}:audit",
13668	//   "response": {
13669	//     "$ref": "AuditAdvertiserResponse"
13670	//   },
13671	//   "scopes": [
13672	//     "https://www.googleapis.com/auth/display-video"
13673	//   ]
13674	// }
13675
13676}
13677
13678// method id "displayvideo.advertisers.bulkEditAdvertiserAssignedTargetingOptions":
13679
13680type AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall struct {
13681	s                                                 *Service
13682	advertiserId                                      int64
13683	bulkeditadvertiserassignedtargetingoptionsrequest *BulkEditAdvertiserAssignedTargetingOptionsRequest
13684	urlParams_                                        gensupport.URLParams
13685	ctx_                                              context.Context
13686	header_                                           http.Header
13687}
13688
13689// BulkEditAdvertiserAssignedTargetingOptions: Bulk edits targeting
13690// options under a single advertiser. The operation will delete the
13691// assigned targeting options provided in
13692// BulkEditAdvertiserAssignedTargetingOptionsRequest.delete_requests and
13693// then create the assigned targeting options provided in
13694// BulkEditAdvertiserAssignedTargetingOptionsRequest.create_requests .
13695//
13696// - advertiserId: The ID of the advertiser.
13697func (r *AdvertisersService) BulkEditAdvertiserAssignedTargetingOptions(advertiserId int64, bulkeditadvertiserassignedtargetingoptionsrequest *BulkEditAdvertiserAssignedTargetingOptionsRequest) *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall {
13698	c := &AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13699	c.advertiserId = advertiserId
13700	c.bulkeditadvertiserassignedtargetingoptionsrequest = bulkeditadvertiserassignedtargetingoptionsrequest
13701	return c
13702}
13703
13704// Fields allows partial responses to be retrieved. See
13705// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13706// for more information.
13707func (c *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall {
13708	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13709	return c
13710}
13711
13712// Context sets the context to be used in this call's Do method. Any
13713// pending HTTP request will be aborted if the provided context is
13714// canceled.
13715func (c *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall) Context(ctx context.Context) *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall {
13716	c.ctx_ = ctx
13717	return c
13718}
13719
13720// Header returns an http.Header that can be modified by the caller to
13721// add HTTP headers to the request.
13722func (c *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall) Header() http.Header {
13723	if c.header_ == nil {
13724		c.header_ = make(http.Header)
13725	}
13726	return c.header_
13727}
13728
13729func (c *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
13730	reqHeaders := make(http.Header)
13731	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
13732	for k, v := range c.header_ {
13733		reqHeaders[k] = v
13734	}
13735	reqHeaders.Set("User-Agent", c.s.userAgent())
13736	var body io.Reader = nil
13737	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditadvertiserassignedtargetingoptionsrequest)
13738	if err != nil {
13739		return nil, err
13740	}
13741	reqHeaders.Set("Content-Type", "application/json")
13742	c.urlParams_.Set("alt", alt)
13743	c.urlParams_.Set("prettyPrint", "false")
13744	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}:bulkEditAdvertiserAssignedTargetingOptions")
13745	urls += "?" + c.urlParams_.Encode()
13746	req, err := http.NewRequest("POST", urls, body)
13747	if err != nil {
13748		return nil, err
13749	}
13750	req.Header = reqHeaders
13751	googleapi.Expand(req.URL, map[string]string{
13752		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
13753	})
13754	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13755}
13756
13757// Do executes the "displayvideo.advertisers.bulkEditAdvertiserAssignedTargetingOptions" call.
13758// Exactly one of *BulkEditAdvertiserAssignedTargetingOptionsResponse or
13759// error will be non-nil. Any non-2xx status code is an error. Response
13760// headers are in either
13761// *BulkEditAdvertiserAssignedTargetingOptionsResponse.ServerResponse.Hea
13762// der or (if a response was returned at all) in
13763// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
13764// whether the returned error was because http.StatusNotModified was
13765// returned.
13766func (c *AdvertisersBulkEditAdvertiserAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkEditAdvertiserAssignedTargetingOptionsResponse, error) {
13767	gensupport.SetOptions(c.urlParams_, opts...)
13768	res, err := c.doRequest("json")
13769	if res != nil && res.StatusCode == http.StatusNotModified {
13770		if res.Body != nil {
13771			res.Body.Close()
13772		}
13773		return nil, &googleapi.Error{
13774			Code:   res.StatusCode,
13775			Header: res.Header,
13776		}
13777	}
13778	if err != nil {
13779		return nil, err
13780	}
13781	defer googleapi.CloseBody(res)
13782	if err := googleapi.CheckResponse(res); err != nil {
13783		return nil, err
13784	}
13785	ret := &BulkEditAdvertiserAssignedTargetingOptionsResponse{
13786		ServerResponse: googleapi.ServerResponse{
13787			Header:         res.Header,
13788			HTTPStatusCode: res.StatusCode,
13789		},
13790	}
13791	target := &ret
13792	if err := gensupport.DecodeResponse(target, res); err != nil {
13793		return nil, err
13794	}
13795	return ret, nil
13796	// {
13797	//   "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 .",
13798	//   "flatPath": "v1/advertisers/{advertisersId}:bulkEditAdvertiserAssignedTargetingOptions",
13799	//   "httpMethod": "POST",
13800	//   "id": "displayvideo.advertisers.bulkEditAdvertiserAssignedTargetingOptions",
13801	//   "parameterOrder": [
13802	//     "advertiserId"
13803	//   ],
13804	//   "parameters": {
13805	//     "advertiserId": {
13806	//       "description": "Required. The ID of the advertiser.",
13807	//       "format": "int64",
13808	//       "location": "path",
13809	//       "pattern": "^[^/]+$",
13810	//       "required": true,
13811	//       "type": "string"
13812	//     }
13813	//   },
13814	//   "path": "v1/advertisers/{+advertiserId}:bulkEditAdvertiserAssignedTargetingOptions",
13815	//   "request": {
13816	//     "$ref": "BulkEditAdvertiserAssignedTargetingOptionsRequest"
13817	//   },
13818	//   "response": {
13819	//     "$ref": "BulkEditAdvertiserAssignedTargetingOptionsResponse"
13820	//   },
13821	//   "scopes": [
13822	//     "https://www.googleapis.com/auth/display-video"
13823	//   ]
13824	// }
13825
13826}
13827
13828// method id "displayvideo.advertisers.bulkListAdvertiserAssignedTargetingOptions":
13829
13830type AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall struct {
13831	s            *Service
13832	advertiserId int64
13833	urlParams_   gensupport.URLParams
13834	ifNoneMatch_ string
13835	ctx_         context.Context
13836	header_      http.Header
13837}
13838
13839// BulkListAdvertiserAssignedTargetingOptions: Lists assigned targeting
13840// options of an advertiser across targeting types.
13841//
13842// - advertiserId: The ID of the advertiser the line item belongs to.
13843func (r *AdvertisersService) BulkListAdvertiserAssignedTargetingOptions(advertiserId int64) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
13844	c := &AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13845	c.advertiserId = advertiserId
13846	return c
13847}
13848
13849// Filter sets the optional parameter "filter": Allows filtering by
13850// assigned targeting option properties. Supported syntax: * Filter
13851// expressions are made up of one or more restrictions. * Restrictions
13852// can be combined by the logical operator `OR`.. * A restriction has
13853// the form of `{field} {operator} {value}`. * The operator must be
13854// `EQUALS (=)`. * Supported fields: - `targetingType` Examples: *
13855// targetingType with value TARGETING_TYPE_CHANNEL
13856// `targetingType="TARGETING_TYPE_CHANNEL" The length of this field
13857// should be no more than 500 characters.
13858func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) Filter(filter string) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
13859	c.urlParams_.Set("filter", filter)
13860	return c
13861}
13862
13863// OrderBy sets the optional parameter "orderBy": Field by which to sort
13864// the list. Acceptable values are: * `targetingType` (default) The
13865// default sorting order is ascending. To specify descending order for a
13866// field, a suffix "desc" should be added to the field name. Example:
13867// `targetingType desc`.
13868func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) OrderBy(orderBy string) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
13869	c.urlParams_.Set("orderBy", orderBy)
13870	return c
13871}
13872
13873// PageSize sets the optional parameter "pageSize": Requested page size.
13874// The size must be an integer between `1` and `5000`. If unspecified,
13875// the default is '5000'. Returns error code `INVALID_ARGUMENT` if an
13876// invalid value is specified.
13877func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) PageSize(pageSize int64) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
13878	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
13879	return c
13880}
13881
13882// PageToken sets the optional parameter "pageToken": A token that lets
13883// the client fetch the next page of results. Typically, this is the
13884// value of next_page_token returned from the previous call to
13885// `BulkListAdvertiserAssignedTargetingOptions` method. If not
13886// specified, the first page of results will be returned.
13887func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) PageToken(pageToken string) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
13888	c.urlParams_.Set("pageToken", pageToken)
13889	return c
13890}
13891
13892// Fields allows partial responses to be retrieved. See
13893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13894// for more information.
13895func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
13896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13897	return c
13898}
13899
13900// IfNoneMatch sets the optional parameter which makes the operation
13901// fail if the object's ETag matches the given value. This is useful for
13902// getting updates only after the object has changed since the last
13903// request. Use googleapi.IsNotModified to check whether the response
13904// error from Do is the result of In-None-Match.
13905func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) IfNoneMatch(entityTag string) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
13906	c.ifNoneMatch_ = entityTag
13907	return c
13908}
13909
13910// Context sets the context to be used in this call's Do method. Any
13911// pending HTTP request will be aborted if the provided context is
13912// canceled.
13913func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) Context(ctx context.Context) *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall {
13914	c.ctx_ = ctx
13915	return c
13916}
13917
13918// Header returns an http.Header that can be modified by the caller to
13919// add HTTP headers to the request.
13920func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) Header() http.Header {
13921	if c.header_ == nil {
13922		c.header_ = make(http.Header)
13923	}
13924	return c.header_
13925}
13926
13927func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
13928	reqHeaders := make(http.Header)
13929	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
13930	for k, v := range c.header_ {
13931		reqHeaders[k] = v
13932	}
13933	reqHeaders.Set("User-Agent", c.s.userAgent())
13934	if c.ifNoneMatch_ != "" {
13935		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13936	}
13937	var body io.Reader = nil
13938	c.urlParams_.Set("alt", alt)
13939	c.urlParams_.Set("prettyPrint", "false")
13940	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}:bulkListAdvertiserAssignedTargetingOptions")
13941	urls += "?" + c.urlParams_.Encode()
13942	req, err := http.NewRequest("GET", urls, body)
13943	if err != nil {
13944		return nil, err
13945	}
13946	req.Header = reqHeaders
13947	googleapi.Expand(req.URL, map[string]string{
13948		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
13949	})
13950	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13951}
13952
13953// Do executes the "displayvideo.advertisers.bulkListAdvertiserAssignedTargetingOptions" call.
13954// Exactly one of *BulkListAdvertiserAssignedTargetingOptionsResponse or
13955// error will be non-nil. Any non-2xx status code is an error. Response
13956// headers are in either
13957// *BulkListAdvertiserAssignedTargetingOptionsResponse.ServerResponse.Hea
13958// der or (if a response was returned at all) in
13959// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
13960// whether the returned error was because http.StatusNotModified was
13961// returned.
13962func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkListAdvertiserAssignedTargetingOptionsResponse, error) {
13963	gensupport.SetOptions(c.urlParams_, opts...)
13964	res, err := c.doRequest("json")
13965	if res != nil && res.StatusCode == http.StatusNotModified {
13966		if res.Body != nil {
13967			res.Body.Close()
13968		}
13969		return nil, &googleapi.Error{
13970			Code:   res.StatusCode,
13971			Header: res.Header,
13972		}
13973	}
13974	if err != nil {
13975		return nil, err
13976	}
13977	defer googleapi.CloseBody(res)
13978	if err := googleapi.CheckResponse(res); err != nil {
13979		return nil, err
13980	}
13981	ret := &BulkListAdvertiserAssignedTargetingOptionsResponse{
13982		ServerResponse: googleapi.ServerResponse{
13983			Header:         res.Header,
13984			HTTPStatusCode: res.StatusCode,
13985		},
13986	}
13987	target := &ret
13988	if err := gensupport.DecodeResponse(target, res); err != nil {
13989		return nil, err
13990	}
13991	return ret, nil
13992	// {
13993	//   "description": "Lists assigned targeting options of an advertiser across targeting types.",
13994	//   "flatPath": "v1/advertisers/{advertisersId}:bulkListAdvertiserAssignedTargetingOptions",
13995	//   "httpMethod": "GET",
13996	//   "id": "displayvideo.advertisers.bulkListAdvertiserAssignedTargetingOptions",
13997	//   "parameterOrder": [
13998	//     "advertiserId"
13999	//   ],
14000	//   "parameters": {
14001	//     "advertiserId": {
14002	//       "description": "Required. The ID of the advertiser the line item belongs to.",
14003	//       "format": "int64",
14004	//       "location": "path",
14005	//       "pattern": "^[^/]+$",
14006	//       "required": true,
14007	//       "type": "string"
14008	//     },
14009	//     "filter": {
14010	//       "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.",
14011	//       "location": "query",
14012	//       "type": "string"
14013	//     },
14014	//     "orderBy": {
14015	//       "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`.",
14016	//       "location": "query",
14017	//       "type": "string"
14018	//     },
14019	//     "pageSize": {
14020	//       "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.",
14021	//       "format": "int32",
14022	//       "location": "query",
14023	//       "type": "integer"
14024	//     },
14025	//     "pageToken": {
14026	//       "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.",
14027	//       "location": "query",
14028	//       "type": "string"
14029	//     }
14030	//   },
14031	//   "path": "v1/advertisers/{+advertiserId}:bulkListAdvertiserAssignedTargetingOptions",
14032	//   "response": {
14033	//     "$ref": "BulkListAdvertiserAssignedTargetingOptionsResponse"
14034	//   },
14035	//   "scopes": [
14036	//     "https://www.googleapis.com/auth/display-video"
14037	//   ]
14038	// }
14039
14040}
14041
14042// Pages invokes f for each page of results.
14043// A non-nil error returned from f will halt the iteration.
14044// The provided context supersedes any context provided to the Context method.
14045func (c *AdvertisersBulkListAdvertiserAssignedTargetingOptionsCall) Pages(ctx context.Context, f func(*BulkListAdvertiserAssignedTargetingOptionsResponse) error) error {
14046	c.ctx_ = ctx
14047	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
14048	for {
14049		x, err := c.Do()
14050		if err != nil {
14051			return err
14052		}
14053		if err := f(x); err != nil {
14054			return err
14055		}
14056		if x.NextPageToken == "" {
14057			return nil
14058		}
14059		c.PageToken(x.NextPageToken)
14060	}
14061}
14062
14063// method id "displayvideo.advertisers.create":
14064
14065type AdvertisersCreateCall struct {
14066	s          *Service
14067	advertiser *Advertiser
14068	urlParams_ gensupport.URLParams
14069	ctx_       context.Context
14070	header_    http.Header
14071}
14072
14073// Create: Creates a new advertiser. Returns the newly created
14074// advertiser if successful. This method can take up to 180 seconds to
14075// complete.
14076func (r *AdvertisersService) Create(advertiser *Advertiser) *AdvertisersCreateCall {
14077	c := &AdvertisersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14078	c.advertiser = advertiser
14079	return c
14080}
14081
14082// Fields allows partial responses to be retrieved. See
14083// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14084// for more information.
14085func (c *AdvertisersCreateCall) Fields(s ...googleapi.Field) *AdvertisersCreateCall {
14086	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14087	return c
14088}
14089
14090// Context sets the context to be used in this call's Do method. Any
14091// pending HTTP request will be aborted if the provided context is
14092// canceled.
14093func (c *AdvertisersCreateCall) Context(ctx context.Context) *AdvertisersCreateCall {
14094	c.ctx_ = ctx
14095	return c
14096}
14097
14098// Header returns an http.Header that can be modified by the caller to
14099// add HTTP headers to the request.
14100func (c *AdvertisersCreateCall) Header() http.Header {
14101	if c.header_ == nil {
14102		c.header_ = make(http.Header)
14103	}
14104	return c.header_
14105}
14106
14107func (c *AdvertisersCreateCall) doRequest(alt string) (*http.Response, error) {
14108	reqHeaders := make(http.Header)
14109	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
14110	for k, v := range c.header_ {
14111		reqHeaders[k] = v
14112	}
14113	reqHeaders.Set("User-Agent", c.s.userAgent())
14114	var body io.Reader = nil
14115	body, err := googleapi.WithoutDataWrapper.JSONReader(c.advertiser)
14116	if err != nil {
14117		return nil, err
14118	}
14119	reqHeaders.Set("Content-Type", "application/json")
14120	c.urlParams_.Set("alt", alt)
14121	c.urlParams_.Set("prettyPrint", "false")
14122	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers")
14123	urls += "?" + c.urlParams_.Encode()
14124	req, err := http.NewRequest("POST", urls, body)
14125	if err != nil {
14126		return nil, err
14127	}
14128	req.Header = reqHeaders
14129	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14130}
14131
14132// Do executes the "displayvideo.advertisers.create" call.
14133// Exactly one of *Advertiser or error will be non-nil. Any non-2xx
14134// status code is an error. Response headers are in either
14135// *Advertiser.ServerResponse.Header or (if a response was returned at
14136// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
14137// to check whether the returned error was because
14138// http.StatusNotModified was returned.
14139func (c *AdvertisersCreateCall) Do(opts ...googleapi.CallOption) (*Advertiser, error) {
14140	gensupport.SetOptions(c.urlParams_, opts...)
14141	res, err := c.doRequest("json")
14142	if res != nil && res.StatusCode == http.StatusNotModified {
14143		if res.Body != nil {
14144			res.Body.Close()
14145		}
14146		return nil, &googleapi.Error{
14147			Code:   res.StatusCode,
14148			Header: res.Header,
14149		}
14150	}
14151	if err != nil {
14152		return nil, err
14153	}
14154	defer googleapi.CloseBody(res)
14155	if err := googleapi.CheckResponse(res); err != nil {
14156		return nil, err
14157	}
14158	ret := &Advertiser{
14159		ServerResponse: googleapi.ServerResponse{
14160			Header:         res.Header,
14161			HTTPStatusCode: res.StatusCode,
14162		},
14163	}
14164	target := &ret
14165	if err := gensupport.DecodeResponse(target, res); err != nil {
14166		return nil, err
14167	}
14168	return ret, nil
14169	// {
14170	//   "description": "Creates a new advertiser. Returns the newly created advertiser if successful. This method can take up to 180 seconds to complete.",
14171	//   "flatPath": "v1/advertisers",
14172	//   "httpMethod": "POST",
14173	//   "id": "displayvideo.advertisers.create",
14174	//   "parameterOrder": [],
14175	//   "parameters": {},
14176	//   "path": "v1/advertisers",
14177	//   "request": {
14178	//     "$ref": "Advertiser"
14179	//   },
14180	//   "response": {
14181	//     "$ref": "Advertiser"
14182	//   },
14183	//   "scopes": [
14184	//     "https://www.googleapis.com/auth/display-video"
14185	//   ]
14186	// }
14187
14188}
14189
14190// method id "displayvideo.advertisers.delete":
14191
14192type AdvertisersDeleteCall struct {
14193	s            *Service
14194	advertiserId int64
14195	urlParams_   gensupport.URLParams
14196	ctx_         context.Context
14197	header_      http.Header
14198}
14199
14200// Delete: Deletes an advertiser. Deleting an advertiser will delete all
14201// of its child resources, for example, campaigns, insertion orders and
14202// line items. A deleted advertiser cannot be recovered.
14203//
14204// - advertiserId: The ID of the advertiser we need to delete.
14205func (r *AdvertisersService) Delete(advertiserId int64) *AdvertisersDeleteCall {
14206	c := &AdvertisersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14207	c.advertiserId = advertiserId
14208	return c
14209}
14210
14211// Fields allows partial responses to be retrieved. See
14212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14213// for more information.
14214func (c *AdvertisersDeleteCall) Fields(s ...googleapi.Field) *AdvertisersDeleteCall {
14215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14216	return c
14217}
14218
14219// Context sets the context to be used in this call's Do method. Any
14220// pending HTTP request will be aborted if the provided context is
14221// canceled.
14222func (c *AdvertisersDeleteCall) Context(ctx context.Context) *AdvertisersDeleteCall {
14223	c.ctx_ = ctx
14224	return c
14225}
14226
14227// Header returns an http.Header that can be modified by the caller to
14228// add HTTP headers to the request.
14229func (c *AdvertisersDeleteCall) Header() http.Header {
14230	if c.header_ == nil {
14231		c.header_ = make(http.Header)
14232	}
14233	return c.header_
14234}
14235
14236func (c *AdvertisersDeleteCall) doRequest(alt string) (*http.Response, error) {
14237	reqHeaders := make(http.Header)
14238	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
14239	for k, v := range c.header_ {
14240		reqHeaders[k] = v
14241	}
14242	reqHeaders.Set("User-Agent", c.s.userAgent())
14243	var body io.Reader = nil
14244	c.urlParams_.Set("alt", alt)
14245	c.urlParams_.Set("prettyPrint", "false")
14246	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}")
14247	urls += "?" + c.urlParams_.Encode()
14248	req, err := http.NewRequest("DELETE", urls, body)
14249	if err != nil {
14250		return nil, err
14251	}
14252	req.Header = reqHeaders
14253	googleapi.Expand(req.URL, map[string]string{
14254		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
14255	})
14256	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14257}
14258
14259// Do executes the "displayvideo.advertisers.delete" call.
14260// Exactly one of *Empty or error will be non-nil. Any non-2xx status
14261// code is an error. Response headers are in either
14262// *Empty.ServerResponse.Header or (if a response was returned at all)
14263// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
14264// check whether the returned error was because http.StatusNotModified
14265// was returned.
14266func (c *AdvertisersDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
14267	gensupport.SetOptions(c.urlParams_, opts...)
14268	res, err := c.doRequest("json")
14269	if res != nil && res.StatusCode == http.StatusNotModified {
14270		if res.Body != nil {
14271			res.Body.Close()
14272		}
14273		return nil, &googleapi.Error{
14274			Code:   res.StatusCode,
14275			Header: res.Header,
14276		}
14277	}
14278	if err != nil {
14279		return nil, err
14280	}
14281	defer googleapi.CloseBody(res)
14282	if err := googleapi.CheckResponse(res); err != nil {
14283		return nil, err
14284	}
14285	ret := &Empty{
14286		ServerResponse: googleapi.ServerResponse{
14287			Header:         res.Header,
14288			HTTPStatusCode: res.StatusCode,
14289		},
14290	}
14291	target := &ret
14292	if err := gensupport.DecodeResponse(target, res); err != nil {
14293		return nil, err
14294	}
14295	return ret, nil
14296	// {
14297	//   "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.",
14298	//   "flatPath": "v1/advertisers/{advertisersId}",
14299	//   "httpMethod": "DELETE",
14300	//   "id": "displayvideo.advertisers.delete",
14301	//   "parameterOrder": [
14302	//     "advertiserId"
14303	//   ],
14304	//   "parameters": {
14305	//     "advertiserId": {
14306	//       "description": "The ID of the advertiser we need to delete.",
14307	//       "format": "int64",
14308	//       "location": "path",
14309	//       "pattern": "^[^/]+$",
14310	//       "required": true,
14311	//       "type": "string"
14312	//     }
14313	//   },
14314	//   "path": "v1/advertisers/{+advertiserId}",
14315	//   "response": {
14316	//     "$ref": "Empty"
14317	//   },
14318	//   "scopes": [
14319	//     "https://www.googleapis.com/auth/display-video"
14320	//   ]
14321	// }
14322
14323}
14324
14325// method id "displayvideo.advertisers.get":
14326
14327type AdvertisersGetCall struct {
14328	s            *Service
14329	advertiserId int64
14330	urlParams_   gensupport.URLParams
14331	ifNoneMatch_ string
14332	ctx_         context.Context
14333	header_      http.Header
14334}
14335
14336// Get: Gets an advertiser.
14337//
14338// - advertiserId: The ID of the advertiser to fetch.
14339func (r *AdvertisersService) Get(advertiserId int64) *AdvertisersGetCall {
14340	c := &AdvertisersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14341	c.advertiserId = advertiserId
14342	return c
14343}
14344
14345// Fields allows partial responses to be retrieved. See
14346// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14347// for more information.
14348func (c *AdvertisersGetCall) Fields(s ...googleapi.Field) *AdvertisersGetCall {
14349	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14350	return c
14351}
14352
14353// IfNoneMatch sets the optional parameter which makes the operation
14354// fail if the object's ETag matches the given value. This is useful for
14355// getting updates only after the object has changed since the last
14356// request. Use googleapi.IsNotModified to check whether the response
14357// error from Do is the result of In-None-Match.
14358func (c *AdvertisersGetCall) IfNoneMatch(entityTag string) *AdvertisersGetCall {
14359	c.ifNoneMatch_ = entityTag
14360	return c
14361}
14362
14363// Context sets the context to be used in this call's Do method. Any
14364// pending HTTP request will be aborted if the provided context is
14365// canceled.
14366func (c *AdvertisersGetCall) Context(ctx context.Context) *AdvertisersGetCall {
14367	c.ctx_ = ctx
14368	return c
14369}
14370
14371// Header returns an http.Header that can be modified by the caller to
14372// add HTTP headers to the request.
14373func (c *AdvertisersGetCall) Header() http.Header {
14374	if c.header_ == nil {
14375		c.header_ = make(http.Header)
14376	}
14377	return c.header_
14378}
14379
14380func (c *AdvertisersGetCall) doRequest(alt string) (*http.Response, error) {
14381	reqHeaders := make(http.Header)
14382	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
14383	for k, v := range c.header_ {
14384		reqHeaders[k] = v
14385	}
14386	reqHeaders.Set("User-Agent", c.s.userAgent())
14387	if c.ifNoneMatch_ != "" {
14388		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14389	}
14390	var body io.Reader = nil
14391	c.urlParams_.Set("alt", alt)
14392	c.urlParams_.Set("prettyPrint", "false")
14393	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}")
14394	urls += "?" + c.urlParams_.Encode()
14395	req, err := http.NewRequest("GET", urls, body)
14396	if err != nil {
14397		return nil, err
14398	}
14399	req.Header = reqHeaders
14400	googleapi.Expand(req.URL, map[string]string{
14401		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
14402	})
14403	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14404}
14405
14406// Do executes the "displayvideo.advertisers.get" call.
14407// Exactly one of *Advertiser or error will be non-nil. Any non-2xx
14408// status code is an error. Response headers are in either
14409// *Advertiser.ServerResponse.Header or (if a response was returned at
14410// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
14411// to check whether the returned error was because
14412// http.StatusNotModified was returned.
14413func (c *AdvertisersGetCall) Do(opts ...googleapi.CallOption) (*Advertiser, error) {
14414	gensupport.SetOptions(c.urlParams_, opts...)
14415	res, err := c.doRequest("json")
14416	if res != nil && res.StatusCode == http.StatusNotModified {
14417		if res.Body != nil {
14418			res.Body.Close()
14419		}
14420		return nil, &googleapi.Error{
14421			Code:   res.StatusCode,
14422			Header: res.Header,
14423		}
14424	}
14425	if err != nil {
14426		return nil, err
14427	}
14428	defer googleapi.CloseBody(res)
14429	if err := googleapi.CheckResponse(res); err != nil {
14430		return nil, err
14431	}
14432	ret := &Advertiser{
14433		ServerResponse: googleapi.ServerResponse{
14434			Header:         res.Header,
14435			HTTPStatusCode: res.StatusCode,
14436		},
14437	}
14438	target := &ret
14439	if err := gensupport.DecodeResponse(target, res); err != nil {
14440		return nil, err
14441	}
14442	return ret, nil
14443	// {
14444	//   "description": "Gets an advertiser.",
14445	//   "flatPath": "v1/advertisers/{advertisersId}",
14446	//   "httpMethod": "GET",
14447	//   "id": "displayvideo.advertisers.get",
14448	//   "parameterOrder": [
14449	//     "advertiserId"
14450	//   ],
14451	//   "parameters": {
14452	//     "advertiserId": {
14453	//       "description": "Required. The ID of the advertiser to fetch.",
14454	//       "format": "int64",
14455	//       "location": "path",
14456	//       "pattern": "^[^/]+$",
14457	//       "required": true,
14458	//       "type": "string"
14459	//     }
14460	//   },
14461	//   "path": "v1/advertisers/{+advertiserId}",
14462	//   "response": {
14463	//     "$ref": "Advertiser"
14464	//   },
14465	//   "scopes": [
14466	//     "https://www.googleapis.com/auth/display-video"
14467	//   ]
14468	// }
14469
14470}
14471
14472// method id "displayvideo.advertisers.list":
14473
14474type AdvertisersListCall struct {
14475	s            *Service
14476	urlParams_   gensupport.URLParams
14477	ifNoneMatch_ string
14478	ctx_         context.Context
14479	header_      http.Header
14480}
14481
14482// List: Lists advertisers that are accessible to the current user. The
14483// order is defined by the order_by parameter. A single partner_id is
14484// required. Cross-partner listing is not supported.
14485func (r *AdvertisersService) List() *AdvertisersListCall {
14486	c := &AdvertisersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14487	return c
14488}
14489
14490// Filter sets the optional parameter "filter": Allows filtering by
14491// advertiser properties. Supported syntax: * Filter expressions are
14492// made up of one or more restrictions. * Restrictions can be combined
14493// by `AND` or `OR` logical operators. A sequence of restrictions
14494// implicitly uses `AND`. * A restriction has the form of `{field}
14495// {operator} {value}`. * The operator used on `updateTime` must be
14496// `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)`. *
14497// The operator must be `EQUALS (=)`. * Supported fields: -
14498// `advertiserId` - `displayName` - `entityStatus` - `updateTime` (input
14499// in ISO 8601 format, or YYYY-MM-DDTHH:MM:SSZ) Examples: * All active
14500// advertisers under a partner: `entityStatus="ENTITY_STATUS_ACTIVE" *
14501// All advertisers with an update time less than or equal to
14502// `2020-11-04T18:54:47Z (format of ISO 8601)`:
14503// `updateTime<="2020-11-04T18:54:47Z" * All advertisers with an update
14504// time greater than or equal to `2020-11-04T18:54:47Z (format of ISO
14505// 8601)`: `updateTime>="2020-11-04T18:54:47Z" The length of this field
14506// should be no more than 500 characters.
14507func (c *AdvertisersListCall) Filter(filter string) *AdvertisersListCall {
14508	c.urlParams_.Set("filter", filter)
14509	return c
14510}
14511
14512// OrderBy sets the optional parameter "orderBy": Field by which to sort
14513// the list. Acceptable values are: * `displayName` (default) *
14514// `entityStatus` * `updateTime` The default sorting order is ascending.
14515// To specify descending order for a field, a suffix "desc" should be
14516// added to the field name. For example, `displayName desc`.
14517func (c *AdvertisersListCall) OrderBy(orderBy string) *AdvertisersListCall {
14518	c.urlParams_.Set("orderBy", orderBy)
14519	return c
14520}
14521
14522// PageSize sets the optional parameter "pageSize": Requested page size.
14523// Must be between `1` and `100`. If unspecified will default to `100`.
14524func (c *AdvertisersListCall) PageSize(pageSize int64) *AdvertisersListCall {
14525	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
14526	return c
14527}
14528
14529// PageToken sets the optional parameter "pageToken": A token
14530// identifying a page of results the server should return. Typically,
14531// this is the value of next_page_token returned from the previous call
14532// to `ListAdvertisers` method. If not specified, the first page of
14533// results will be returned.
14534func (c *AdvertisersListCall) PageToken(pageToken string) *AdvertisersListCall {
14535	c.urlParams_.Set("pageToken", pageToken)
14536	return c
14537}
14538
14539// PartnerId sets the optional parameter "partnerId": Required. The ID
14540// of the partner that the fetched advertisers should all belong to. The
14541// system only supports listing advertisers for one partner at a time.
14542func (c *AdvertisersListCall) PartnerId(partnerId int64) *AdvertisersListCall {
14543	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
14544	return c
14545}
14546
14547// Fields allows partial responses to be retrieved. See
14548// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14549// for more information.
14550func (c *AdvertisersListCall) Fields(s ...googleapi.Field) *AdvertisersListCall {
14551	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14552	return c
14553}
14554
14555// IfNoneMatch sets the optional parameter which makes the operation
14556// fail if the object's ETag matches the given value. This is useful for
14557// getting updates only after the object has changed since the last
14558// request. Use googleapi.IsNotModified to check whether the response
14559// error from Do is the result of In-None-Match.
14560func (c *AdvertisersListCall) IfNoneMatch(entityTag string) *AdvertisersListCall {
14561	c.ifNoneMatch_ = entityTag
14562	return c
14563}
14564
14565// Context sets the context to be used in this call's Do method. Any
14566// pending HTTP request will be aborted if the provided context is
14567// canceled.
14568func (c *AdvertisersListCall) Context(ctx context.Context) *AdvertisersListCall {
14569	c.ctx_ = ctx
14570	return c
14571}
14572
14573// Header returns an http.Header that can be modified by the caller to
14574// add HTTP headers to the request.
14575func (c *AdvertisersListCall) Header() http.Header {
14576	if c.header_ == nil {
14577		c.header_ = make(http.Header)
14578	}
14579	return c.header_
14580}
14581
14582func (c *AdvertisersListCall) doRequest(alt string) (*http.Response, error) {
14583	reqHeaders := make(http.Header)
14584	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
14585	for k, v := range c.header_ {
14586		reqHeaders[k] = v
14587	}
14588	reqHeaders.Set("User-Agent", c.s.userAgent())
14589	if c.ifNoneMatch_ != "" {
14590		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14591	}
14592	var body io.Reader = nil
14593	c.urlParams_.Set("alt", alt)
14594	c.urlParams_.Set("prettyPrint", "false")
14595	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers")
14596	urls += "?" + c.urlParams_.Encode()
14597	req, err := http.NewRequest("GET", urls, body)
14598	if err != nil {
14599		return nil, err
14600	}
14601	req.Header = reqHeaders
14602	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14603}
14604
14605// Do executes the "displayvideo.advertisers.list" call.
14606// Exactly one of *ListAdvertisersResponse or error will be non-nil. Any
14607// non-2xx status code is an error. Response headers are in either
14608// *ListAdvertisersResponse.ServerResponse.Header or (if a response was
14609// returned at all) in error.(*googleapi.Error).Header. Use
14610// googleapi.IsNotModified to check whether the returned error was
14611// because http.StatusNotModified was returned.
14612func (c *AdvertisersListCall) Do(opts ...googleapi.CallOption) (*ListAdvertisersResponse, error) {
14613	gensupport.SetOptions(c.urlParams_, opts...)
14614	res, err := c.doRequest("json")
14615	if res != nil && res.StatusCode == http.StatusNotModified {
14616		if res.Body != nil {
14617			res.Body.Close()
14618		}
14619		return nil, &googleapi.Error{
14620			Code:   res.StatusCode,
14621			Header: res.Header,
14622		}
14623	}
14624	if err != nil {
14625		return nil, err
14626	}
14627	defer googleapi.CloseBody(res)
14628	if err := googleapi.CheckResponse(res); err != nil {
14629		return nil, err
14630	}
14631	ret := &ListAdvertisersResponse{
14632		ServerResponse: googleapi.ServerResponse{
14633			Header:         res.Header,
14634			HTTPStatusCode: res.StatusCode,
14635		},
14636	}
14637	target := &ret
14638	if err := gensupport.DecodeResponse(target, res); err != nil {
14639		return nil, err
14640	}
14641	return ret, nil
14642	// {
14643	//   "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.",
14644	//   "flatPath": "v1/advertisers",
14645	//   "httpMethod": "GET",
14646	//   "id": "displayvideo.advertisers.list",
14647	//   "parameterOrder": [],
14648	//   "parameters": {
14649	//     "filter": {
14650	//       "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.",
14651	//       "location": "query",
14652	//       "type": "string"
14653	//     },
14654	//     "orderBy": {
14655	//       "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`.",
14656	//       "location": "query",
14657	//       "type": "string"
14658	//     },
14659	//     "pageSize": {
14660	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
14661	//       "format": "int32",
14662	//       "location": "query",
14663	//       "type": "integer"
14664	//     },
14665	//     "pageToken": {
14666	//       "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.",
14667	//       "location": "query",
14668	//       "type": "string"
14669	//     },
14670	//     "partnerId": {
14671	//       "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.",
14672	//       "format": "int64",
14673	//       "location": "query",
14674	//       "type": "string"
14675	//     }
14676	//   },
14677	//   "path": "v1/advertisers",
14678	//   "response": {
14679	//     "$ref": "ListAdvertisersResponse"
14680	//   },
14681	//   "scopes": [
14682	//     "https://www.googleapis.com/auth/display-video"
14683	//   ]
14684	// }
14685
14686}
14687
14688// Pages invokes f for each page of results.
14689// A non-nil error returned from f will halt the iteration.
14690// The provided context supersedes any context provided to the Context method.
14691func (c *AdvertisersListCall) Pages(ctx context.Context, f func(*ListAdvertisersResponse) error) error {
14692	c.ctx_ = ctx
14693	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
14694	for {
14695		x, err := c.Do()
14696		if err != nil {
14697			return err
14698		}
14699		if err := f(x); err != nil {
14700			return err
14701		}
14702		if x.NextPageToken == "" {
14703			return nil
14704		}
14705		c.PageToken(x.NextPageToken)
14706	}
14707}
14708
14709// method id "displayvideo.advertisers.patch":
14710
14711type AdvertisersPatchCall struct {
14712	s            *Service
14713	advertiserId int64
14714	advertiser   *Advertiser
14715	urlParams_   gensupport.URLParams
14716	ctx_         context.Context
14717	header_      http.Header
14718}
14719
14720// Patch: Updates an existing advertiser. Returns the updated advertiser
14721// if successful.
14722//
14723// - advertiserId: Output only. The unique ID of the advertiser.
14724//   Assigned by the system.
14725func (r *AdvertisersService) Patch(advertiserId int64, advertiser *Advertiser) *AdvertisersPatchCall {
14726	c := &AdvertisersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14727	c.advertiserId = advertiserId
14728	c.advertiser = advertiser
14729	return c
14730}
14731
14732// UpdateMask sets the optional parameter "updateMask": Required. The
14733// mask to control which fields to update.
14734func (c *AdvertisersPatchCall) UpdateMask(updateMask string) *AdvertisersPatchCall {
14735	c.urlParams_.Set("updateMask", updateMask)
14736	return c
14737}
14738
14739// Fields allows partial responses to be retrieved. See
14740// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14741// for more information.
14742func (c *AdvertisersPatchCall) Fields(s ...googleapi.Field) *AdvertisersPatchCall {
14743	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14744	return c
14745}
14746
14747// Context sets the context to be used in this call's Do method. Any
14748// pending HTTP request will be aborted if the provided context is
14749// canceled.
14750func (c *AdvertisersPatchCall) Context(ctx context.Context) *AdvertisersPatchCall {
14751	c.ctx_ = ctx
14752	return c
14753}
14754
14755// Header returns an http.Header that can be modified by the caller to
14756// add HTTP headers to the request.
14757func (c *AdvertisersPatchCall) Header() http.Header {
14758	if c.header_ == nil {
14759		c.header_ = make(http.Header)
14760	}
14761	return c.header_
14762}
14763
14764func (c *AdvertisersPatchCall) doRequest(alt string) (*http.Response, error) {
14765	reqHeaders := make(http.Header)
14766	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
14767	for k, v := range c.header_ {
14768		reqHeaders[k] = v
14769	}
14770	reqHeaders.Set("User-Agent", c.s.userAgent())
14771	var body io.Reader = nil
14772	body, err := googleapi.WithoutDataWrapper.JSONReader(c.advertiser)
14773	if err != nil {
14774		return nil, err
14775	}
14776	reqHeaders.Set("Content-Type", "application/json")
14777	c.urlParams_.Set("alt", alt)
14778	c.urlParams_.Set("prettyPrint", "false")
14779	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}")
14780	urls += "?" + c.urlParams_.Encode()
14781	req, err := http.NewRequest("PATCH", urls, body)
14782	if err != nil {
14783		return nil, err
14784	}
14785	req.Header = reqHeaders
14786	googleapi.Expand(req.URL, map[string]string{
14787		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
14788	})
14789	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14790}
14791
14792// Do executes the "displayvideo.advertisers.patch" call.
14793// Exactly one of *Advertiser or error will be non-nil. Any non-2xx
14794// status code is an error. Response headers are in either
14795// *Advertiser.ServerResponse.Header or (if a response was returned at
14796// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
14797// to check whether the returned error was because
14798// http.StatusNotModified was returned.
14799func (c *AdvertisersPatchCall) Do(opts ...googleapi.CallOption) (*Advertiser, error) {
14800	gensupport.SetOptions(c.urlParams_, opts...)
14801	res, err := c.doRequest("json")
14802	if res != nil && res.StatusCode == http.StatusNotModified {
14803		if res.Body != nil {
14804			res.Body.Close()
14805		}
14806		return nil, &googleapi.Error{
14807			Code:   res.StatusCode,
14808			Header: res.Header,
14809		}
14810	}
14811	if err != nil {
14812		return nil, err
14813	}
14814	defer googleapi.CloseBody(res)
14815	if err := googleapi.CheckResponse(res); err != nil {
14816		return nil, err
14817	}
14818	ret := &Advertiser{
14819		ServerResponse: googleapi.ServerResponse{
14820			Header:         res.Header,
14821			HTTPStatusCode: res.StatusCode,
14822		},
14823	}
14824	target := &ret
14825	if err := gensupport.DecodeResponse(target, res); err != nil {
14826		return nil, err
14827	}
14828	return ret, nil
14829	// {
14830	//   "description": "Updates an existing advertiser. Returns the updated advertiser if successful.",
14831	//   "flatPath": "v1/advertisers/{advertisersId}",
14832	//   "httpMethod": "PATCH",
14833	//   "id": "displayvideo.advertisers.patch",
14834	//   "parameterOrder": [
14835	//     "advertiserId"
14836	//   ],
14837	//   "parameters": {
14838	//     "advertiserId": {
14839	//       "description": "Output only. The unique ID of the advertiser. Assigned by the system.",
14840	//       "format": "int64",
14841	//       "location": "path",
14842	//       "pattern": "^[^/]+$",
14843	//       "required": true,
14844	//       "type": "string"
14845	//     },
14846	//     "updateMask": {
14847	//       "description": "Required. The mask to control which fields to update.",
14848	//       "format": "google-fieldmask",
14849	//       "location": "query",
14850	//       "type": "string"
14851	//     }
14852	//   },
14853	//   "path": "v1/advertisers/{+advertiserId}",
14854	//   "request": {
14855	//     "$ref": "Advertiser"
14856	//   },
14857	//   "response": {
14858	//     "$ref": "Advertiser"
14859	//   },
14860	//   "scopes": [
14861	//     "https://www.googleapis.com/auth/display-video"
14862	//   ]
14863	// }
14864
14865}
14866
14867// method id "displayvideo.advertisers.assets.upload":
14868
14869type AdvertisersAssetsUploadCall struct {
14870	s                  *Service
14871	advertiserId       int64
14872	createassetrequest *CreateAssetRequest
14873	urlParams_         gensupport.URLParams
14874	mediaInfo_         *gensupport.MediaInfo
14875	ctx_               context.Context
14876	header_            http.Header
14877}
14878
14879// Upload: Uploads an asset. Returns the ID of the newly uploaded asset
14880// if successful. The asset file size should be no more than 10 MB for
14881// images, 200 MB for ZIP files, and 1 GB for videos.
14882//
14883// - advertiserId: The ID of the advertiser this asset belongs to.
14884func (r *AdvertisersAssetsService) Upload(advertiserId int64, createassetrequest *CreateAssetRequest) *AdvertisersAssetsUploadCall {
14885	c := &AdvertisersAssetsUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
14886	c.advertiserId = advertiserId
14887	c.createassetrequest = createassetrequest
14888	return c
14889}
14890
14891// Media specifies the media to upload in one or more chunks. The chunk
14892// size may be controlled by supplying a MediaOption generated by
14893// googleapi.ChunkSize. The chunk size defaults to
14894// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
14895// upload request will be determined by sniffing the contents of r,
14896// unless a MediaOption generated by googleapi.ContentType is
14897// supplied.
14898// At most one of Media and ResumableMedia may be set.
14899func (c *AdvertisersAssetsUploadCall) Media(r io.Reader, options ...googleapi.MediaOption) *AdvertisersAssetsUploadCall {
14900	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
14901	return c
14902}
14903
14904// ResumableMedia specifies the media to upload in chunks and can be
14905// canceled with ctx.
14906//
14907// Deprecated: use Media instead.
14908//
14909// At most one of Media and ResumableMedia may be set. mediaType
14910// identifies the MIME media type of the upload, such as "image/png". If
14911// mediaType is "", it will be auto-detected. The provided ctx will
14912// supersede any context previously provided to the Context method.
14913func (c *AdvertisersAssetsUploadCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *AdvertisersAssetsUploadCall {
14914	c.ctx_ = ctx
14915	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
14916	return c
14917}
14918
14919// ProgressUpdater provides a callback function that will be called
14920// after every chunk. It should be a low-latency function in order to
14921// not slow down the upload operation. This should only be called when
14922// using ResumableMedia (as opposed to Media).
14923func (c *AdvertisersAssetsUploadCall) ProgressUpdater(pu googleapi.ProgressUpdater) *AdvertisersAssetsUploadCall {
14924	c.mediaInfo_.SetProgressUpdater(pu)
14925	return c
14926}
14927
14928// Fields allows partial responses to be retrieved. See
14929// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
14930// for more information.
14931func (c *AdvertisersAssetsUploadCall) Fields(s ...googleapi.Field) *AdvertisersAssetsUploadCall {
14932	c.urlParams_.Set("fields", googleapi.CombineFields(s))
14933	return c
14934}
14935
14936// Context sets the context to be used in this call's Do method. Any
14937// pending HTTP request will be aborted if the provided context is
14938// canceled.
14939// This context will supersede any context previously provided to the
14940// ResumableMedia method.
14941func (c *AdvertisersAssetsUploadCall) Context(ctx context.Context) *AdvertisersAssetsUploadCall {
14942	c.ctx_ = ctx
14943	return c
14944}
14945
14946// Header returns an http.Header that can be modified by the caller to
14947// add HTTP headers to the request.
14948func (c *AdvertisersAssetsUploadCall) Header() http.Header {
14949	if c.header_ == nil {
14950		c.header_ = make(http.Header)
14951	}
14952	return c.header_
14953}
14954
14955func (c *AdvertisersAssetsUploadCall) doRequest(alt string) (*http.Response, error) {
14956	reqHeaders := make(http.Header)
14957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
14958	for k, v := range c.header_ {
14959		reqHeaders[k] = v
14960	}
14961	reqHeaders.Set("User-Agent", c.s.userAgent())
14962	var body io.Reader = nil
14963	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createassetrequest)
14964	if err != nil {
14965		return nil, err
14966	}
14967	reqHeaders.Set("Content-Type", "application/json")
14968	c.urlParams_.Set("alt", alt)
14969	c.urlParams_.Set("prettyPrint", "false")
14970	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/assets")
14971	if c.mediaInfo_ != nil {
14972		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/v1/advertisers/{+advertiserId}/assets")
14973		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
14974	}
14975	if body == nil {
14976		body = new(bytes.Buffer)
14977		reqHeaders.Set("Content-Type", "application/json")
14978	}
14979	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
14980	defer cleanup()
14981	urls += "?" + c.urlParams_.Encode()
14982	req, err := http.NewRequest("POST", urls, body)
14983	if err != nil {
14984		return nil, err
14985	}
14986	req.Header = reqHeaders
14987	req.GetBody = getBody
14988	googleapi.Expand(req.URL, map[string]string{
14989		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
14990	})
14991	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14992}
14993
14994// Do executes the "displayvideo.advertisers.assets.upload" call.
14995// Exactly one of *CreateAssetResponse or error will be non-nil. Any
14996// non-2xx status code is an error. Response headers are in either
14997// *CreateAssetResponse.ServerResponse.Header or (if a response was
14998// returned at all) in error.(*googleapi.Error).Header. Use
14999// googleapi.IsNotModified to check whether the returned error was
15000// because http.StatusNotModified was returned.
15001func (c *AdvertisersAssetsUploadCall) Do(opts ...googleapi.CallOption) (*CreateAssetResponse, error) {
15002	gensupport.SetOptions(c.urlParams_, opts...)
15003	res, err := c.doRequest("json")
15004	if res != nil && res.StatusCode == http.StatusNotModified {
15005		if res.Body != nil {
15006			res.Body.Close()
15007		}
15008		return nil, &googleapi.Error{
15009			Code:   res.StatusCode,
15010			Header: res.Header,
15011		}
15012	}
15013	if err != nil {
15014		return nil, err
15015	}
15016	defer googleapi.CloseBody(res)
15017	if err := googleapi.CheckResponse(res); err != nil {
15018		return nil, err
15019	}
15020	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
15021	if rx != nil {
15022		rx.Client = c.s.client
15023		rx.UserAgent = c.s.userAgent()
15024		ctx := c.ctx_
15025		if ctx == nil {
15026			ctx = context.TODO()
15027		}
15028		res, err = rx.Upload(ctx)
15029		if err != nil {
15030			return nil, err
15031		}
15032		defer res.Body.Close()
15033		if err := googleapi.CheckResponse(res); err != nil {
15034			return nil, err
15035		}
15036	}
15037	ret := &CreateAssetResponse{
15038		ServerResponse: googleapi.ServerResponse{
15039			Header:         res.Header,
15040			HTTPStatusCode: res.StatusCode,
15041		},
15042	}
15043	target := &ret
15044	if err := gensupport.DecodeResponse(target, res); err != nil {
15045		return nil, err
15046	}
15047	return ret, nil
15048	// {
15049	//   "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.",
15050	//   "flatPath": "v1/advertisers/{advertisersId}/assets",
15051	//   "httpMethod": "POST",
15052	//   "id": "displayvideo.advertisers.assets.upload",
15053	//   "mediaUpload": {
15054	//     "accept": [
15055	//       "*/*"
15056	//     ],
15057	//     "protocols": {
15058	//       "simple": {
15059	//         "multipart": true,
15060	//         "path": "/upload/v1/advertisers/{+advertiserId}/assets"
15061	//       }
15062	//     }
15063	//   },
15064	//   "parameterOrder": [
15065	//     "advertiserId"
15066	//   ],
15067	//   "parameters": {
15068	//     "advertiserId": {
15069	//       "description": "Required. The ID of the advertiser this asset belongs to.",
15070	//       "format": "int64",
15071	//       "location": "path",
15072	//       "pattern": "^[^/]+$",
15073	//       "required": true,
15074	//       "type": "string"
15075	//     }
15076	//   },
15077	//   "path": "v1/advertisers/{+advertiserId}/assets",
15078	//   "request": {
15079	//     "$ref": "CreateAssetRequest"
15080	//   },
15081	//   "response": {
15082	//     "$ref": "CreateAssetResponse"
15083	//   },
15084	//   "scopes": [
15085	//     "https://www.googleapis.com/auth/display-video"
15086	//   ],
15087	//   "supportsMediaUpload": true
15088	// }
15089
15090}
15091
15092// method id "displayvideo.advertisers.campaigns.bulkListCampaignAssignedTargetingOptions":
15093
15094type AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall struct {
15095	s            *Service
15096	advertiserId int64
15097	campaignId   int64
15098	urlParams_   gensupport.URLParams
15099	ifNoneMatch_ string
15100	ctx_         context.Context
15101	header_      http.Header
15102}
15103
15104// BulkListCampaignAssignedTargetingOptions: Lists assigned targeting
15105// options of a campaign across targeting types.
15106//
15107// - advertiserId: The ID of the advertiser the campaign belongs to.
15108// - campaignId: The ID of the campaign to list assigned targeting
15109//   options for.
15110func (r *AdvertisersCampaignsService) BulkListCampaignAssignedTargetingOptions(advertiserId int64, campaignId int64) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
15111	c := &AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15112	c.advertiserId = advertiserId
15113	c.campaignId = campaignId
15114	return c
15115}
15116
15117// Filter sets the optional parameter "filter": Allows filtering by
15118// assigned targeting option properties. Supported syntax: * Filter
15119// expressions are made up of one or more restrictions. * Restrictions
15120// can be combined by the logical operator `OR` on the same field. * A
15121// restriction has the form of `{field} {operator} {value}`. * The
15122// operator must be `EQUALS (=)`. * Supported fields: - `targetingType`
15123// - `inheritance` Examples: * AssignedTargetingOptions of targeting
15124// type TARGETING_TYPE_LANGUAGE or TARGETING_TYPE_GENDER
15125// `targetingType="TARGETING_TYPE_LANGUAGE" OR
15126// targetingType="TARGETING_TYPE_GENDER" * AssignedTargetingOptions
15127// with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER
15128// `inheritance="NOT_INHERITED" OR inheritance="INHERITED_FROM_PARTNER"
15129// The length of this field should be no more than 500 characters.
15130func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) Filter(filter string) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
15131	c.urlParams_.Set("filter", filter)
15132	return c
15133}
15134
15135// OrderBy sets the optional parameter "orderBy": Field by which to sort
15136// the list. Acceptable values are: * `targetingType` (default) The
15137// default sorting order is ascending. To specify descending order for a
15138// field, a suffix "desc" should be added to the field name. Example:
15139// `targetingType desc`.
15140func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) OrderBy(orderBy string) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
15141	c.urlParams_.Set("orderBy", orderBy)
15142	return c
15143}
15144
15145// PageSize sets the optional parameter "pageSize": Requested page size.
15146// The size must be an integer between `1` and `5000`. If unspecified,
15147// the default is `5000`. Returns error code `INVALID_ARGUMENT` if an
15148// invalid value is specified.
15149func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) PageSize(pageSize int64) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
15150	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
15151	return c
15152}
15153
15154// PageToken sets the optional parameter "pageToken": A token that lets
15155// the client fetch the next page of results. Typically, this is the
15156// value of next_page_token returned from the previous call to
15157// `BulkListCampaignAssignedTargetingOptions` method. If not specified,
15158// the first page of results will be returned.
15159func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) PageToken(pageToken string) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
15160	c.urlParams_.Set("pageToken", pageToken)
15161	return c
15162}
15163
15164// Fields allows partial responses to be retrieved. See
15165// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15166// for more information.
15167func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
15168	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15169	return c
15170}
15171
15172// IfNoneMatch sets the optional parameter which makes the operation
15173// fail if the object's ETag matches the given value. This is useful for
15174// getting updates only after the object has changed since the last
15175// request. Use googleapi.IsNotModified to check whether the response
15176// error from Do is the result of In-None-Match.
15177func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) IfNoneMatch(entityTag string) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
15178	c.ifNoneMatch_ = entityTag
15179	return c
15180}
15181
15182// Context sets the context to be used in this call's Do method. Any
15183// pending HTTP request will be aborted if the provided context is
15184// canceled.
15185func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) Context(ctx context.Context) *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall {
15186	c.ctx_ = ctx
15187	return c
15188}
15189
15190// Header returns an http.Header that can be modified by the caller to
15191// add HTTP headers to the request.
15192func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) Header() http.Header {
15193	if c.header_ == nil {
15194		c.header_ = make(http.Header)
15195	}
15196	return c.header_
15197}
15198
15199func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
15200	reqHeaders := make(http.Header)
15201	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
15202	for k, v := range c.header_ {
15203		reqHeaders[k] = v
15204	}
15205	reqHeaders.Set("User-Agent", c.s.userAgent())
15206	if c.ifNoneMatch_ != "" {
15207		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15208	}
15209	var body io.Reader = nil
15210	c.urlParams_.Set("alt", alt)
15211	c.urlParams_.Set("prettyPrint", "false")
15212	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}:bulkListCampaignAssignedTargetingOptions")
15213	urls += "?" + c.urlParams_.Encode()
15214	req, err := http.NewRequest("GET", urls, body)
15215	if err != nil {
15216		return nil, err
15217	}
15218	req.Header = reqHeaders
15219	googleapi.Expand(req.URL, map[string]string{
15220		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
15221		"campaignId":   strconv.FormatInt(c.campaignId, 10),
15222	})
15223	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15224}
15225
15226// Do executes the "displayvideo.advertisers.campaigns.bulkListCampaignAssignedTargetingOptions" call.
15227// Exactly one of *BulkListCampaignAssignedTargetingOptionsResponse or
15228// error will be non-nil. Any non-2xx status code is an error. Response
15229// headers are in either
15230// *BulkListCampaignAssignedTargetingOptionsResponse.ServerResponse.Heade
15231// r or (if a response was returned at all) in
15232// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
15233// whether the returned error was because http.StatusNotModified was
15234// returned.
15235func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkListCampaignAssignedTargetingOptionsResponse, error) {
15236	gensupport.SetOptions(c.urlParams_, opts...)
15237	res, err := c.doRequest("json")
15238	if res != nil && res.StatusCode == http.StatusNotModified {
15239		if res.Body != nil {
15240			res.Body.Close()
15241		}
15242		return nil, &googleapi.Error{
15243			Code:   res.StatusCode,
15244			Header: res.Header,
15245		}
15246	}
15247	if err != nil {
15248		return nil, err
15249	}
15250	defer googleapi.CloseBody(res)
15251	if err := googleapi.CheckResponse(res); err != nil {
15252		return nil, err
15253	}
15254	ret := &BulkListCampaignAssignedTargetingOptionsResponse{
15255		ServerResponse: googleapi.ServerResponse{
15256			Header:         res.Header,
15257			HTTPStatusCode: res.StatusCode,
15258		},
15259	}
15260	target := &ret
15261	if err := gensupport.DecodeResponse(target, res); err != nil {
15262		return nil, err
15263	}
15264	return ret, nil
15265	// {
15266	//   "description": "Lists assigned targeting options of a campaign across targeting types.",
15267	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}:bulkListCampaignAssignedTargetingOptions",
15268	//   "httpMethod": "GET",
15269	//   "id": "displayvideo.advertisers.campaigns.bulkListCampaignAssignedTargetingOptions",
15270	//   "parameterOrder": [
15271	//     "advertiserId",
15272	//     "campaignId"
15273	//   ],
15274	//   "parameters": {
15275	//     "advertiserId": {
15276	//       "description": "Required. The ID of the advertiser the campaign belongs to.",
15277	//       "format": "int64",
15278	//       "location": "path",
15279	//       "pattern": "^[^/]+$",
15280	//       "required": true,
15281	//       "type": "string"
15282	//     },
15283	//     "campaignId": {
15284	//       "description": "Required. The ID of the campaign to list assigned targeting options for.",
15285	//       "format": "int64",
15286	//       "location": "path",
15287	//       "pattern": "^[^/]+$",
15288	//       "required": true,
15289	//       "type": "string"
15290	//     },
15291	//     "filter": {
15292	//       "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.",
15293	//       "location": "query",
15294	//       "type": "string"
15295	//     },
15296	//     "orderBy": {
15297	//       "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`.",
15298	//       "location": "query",
15299	//       "type": "string"
15300	//     },
15301	//     "pageSize": {
15302	//       "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.",
15303	//       "format": "int32",
15304	//       "location": "query",
15305	//       "type": "integer"
15306	//     },
15307	//     "pageToken": {
15308	//       "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.",
15309	//       "location": "query",
15310	//       "type": "string"
15311	//     }
15312	//   },
15313	//   "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}:bulkListCampaignAssignedTargetingOptions",
15314	//   "response": {
15315	//     "$ref": "BulkListCampaignAssignedTargetingOptionsResponse"
15316	//   },
15317	//   "scopes": [
15318	//     "https://www.googleapis.com/auth/display-video"
15319	//   ]
15320	// }
15321
15322}
15323
15324// Pages invokes f for each page of results.
15325// A non-nil error returned from f will halt the iteration.
15326// The provided context supersedes any context provided to the Context method.
15327func (c *AdvertisersCampaignsBulkListCampaignAssignedTargetingOptionsCall) Pages(ctx context.Context, f func(*BulkListCampaignAssignedTargetingOptionsResponse) error) error {
15328	c.ctx_ = ctx
15329	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
15330	for {
15331		x, err := c.Do()
15332		if err != nil {
15333			return err
15334		}
15335		if err := f(x); err != nil {
15336			return err
15337		}
15338		if x.NextPageToken == "" {
15339			return nil
15340		}
15341		c.PageToken(x.NextPageToken)
15342	}
15343}
15344
15345// method id "displayvideo.advertisers.campaigns.create":
15346
15347type AdvertisersCampaignsCreateCall struct {
15348	s            *Service
15349	advertiserId int64
15350	campaign     *Campaign
15351	urlParams_   gensupport.URLParams
15352	ctx_         context.Context
15353	header_      http.Header
15354}
15355
15356// Create: Creates a new campaign. Returns the newly created campaign if
15357// successful.
15358//
15359// - advertiserId: Output only. The unique ID of the advertiser the
15360//   campaign belongs to.
15361func (r *AdvertisersCampaignsService) Create(advertiserId int64, campaign *Campaign) *AdvertisersCampaignsCreateCall {
15362	c := &AdvertisersCampaignsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15363	c.advertiserId = advertiserId
15364	c.campaign = campaign
15365	return c
15366}
15367
15368// Fields allows partial responses to be retrieved. See
15369// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15370// for more information.
15371func (c *AdvertisersCampaignsCreateCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsCreateCall {
15372	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15373	return c
15374}
15375
15376// Context sets the context to be used in this call's Do method. Any
15377// pending HTTP request will be aborted if the provided context is
15378// canceled.
15379func (c *AdvertisersCampaignsCreateCall) Context(ctx context.Context) *AdvertisersCampaignsCreateCall {
15380	c.ctx_ = ctx
15381	return c
15382}
15383
15384// Header returns an http.Header that can be modified by the caller to
15385// add HTTP headers to the request.
15386func (c *AdvertisersCampaignsCreateCall) Header() http.Header {
15387	if c.header_ == nil {
15388		c.header_ = make(http.Header)
15389	}
15390	return c.header_
15391}
15392
15393func (c *AdvertisersCampaignsCreateCall) doRequest(alt string) (*http.Response, error) {
15394	reqHeaders := make(http.Header)
15395	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
15396	for k, v := range c.header_ {
15397		reqHeaders[k] = v
15398	}
15399	reqHeaders.Set("User-Agent", c.s.userAgent())
15400	var body io.Reader = nil
15401	body, err := googleapi.WithoutDataWrapper.JSONReader(c.campaign)
15402	if err != nil {
15403		return nil, err
15404	}
15405	reqHeaders.Set("Content-Type", "application/json")
15406	c.urlParams_.Set("alt", alt)
15407	c.urlParams_.Set("prettyPrint", "false")
15408	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns")
15409	urls += "?" + c.urlParams_.Encode()
15410	req, err := http.NewRequest("POST", urls, body)
15411	if err != nil {
15412		return nil, err
15413	}
15414	req.Header = reqHeaders
15415	googleapi.Expand(req.URL, map[string]string{
15416		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
15417	})
15418	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15419}
15420
15421// Do executes the "displayvideo.advertisers.campaigns.create" call.
15422// Exactly one of *Campaign or error will be non-nil. Any non-2xx status
15423// code is an error. Response headers are in either
15424// *Campaign.ServerResponse.Header or (if a response was returned at
15425// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15426// to check whether the returned error was because
15427// http.StatusNotModified was returned.
15428func (c *AdvertisersCampaignsCreateCall) Do(opts ...googleapi.CallOption) (*Campaign, error) {
15429	gensupport.SetOptions(c.urlParams_, opts...)
15430	res, err := c.doRequest("json")
15431	if res != nil && res.StatusCode == http.StatusNotModified {
15432		if res.Body != nil {
15433			res.Body.Close()
15434		}
15435		return nil, &googleapi.Error{
15436			Code:   res.StatusCode,
15437			Header: res.Header,
15438		}
15439	}
15440	if err != nil {
15441		return nil, err
15442	}
15443	defer googleapi.CloseBody(res)
15444	if err := googleapi.CheckResponse(res); err != nil {
15445		return nil, err
15446	}
15447	ret := &Campaign{
15448		ServerResponse: googleapi.ServerResponse{
15449			Header:         res.Header,
15450			HTTPStatusCode: res.StatusCode,
15451		},
15452	}
15453	target := &ret
15454	if err := gensupport.DecodeResponse(target, res); err != nil {
15455		return nil, err
15456	}
15457	return ret, nil
15458	// {
15459	//   "description": "Creates a new campaign. Returns the newly created campaign if successful.",
15460	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns",
15461	//   "httpMethod": "POST",
15462	//   "id": "displayvideo.advertisers.campaigns.create",
15463	//   "parameterOrder": [
15464	//     "advertiserId"
15465	//   ],
15466	//   "parameters": {
15467	//     "advertiserId": {
15468	//       "description": "Output only. The unique ID of the advertiser the campaign belongs to.",
15469	//       "format": "int64",
15470	//       "location": "path",
15471	//       "pattern": "^[^/]+$",
15472	//       "required": true,
15473	//       "type": "string"
15474	//     }
15475	//   },
15476	//   "path": "v1/advertisers/{+advertiserId}/campaigns",
15477	//   "request": {
15478	//     "$ref": "Campaign"
15479	//   },
15480	//   "response": {
15481	//     "$ref": "Campaign"
15482	//   },
15483	//   "scopes": [
15484	//     "https://www.googleapis.com/auth/display-video",
15485	//     "https://www.googleapis.com/auth/display-video-mediaplanning"
15486	//   ]
15487	// }
15488
15489}
15490
15491// method id "displayvideo.advertisers.campaigns.delete":
15492
15493type AdvertisersCampaignsDeleteCall struct {
15494	s            *Service
15495	advertiserId int64
15496	campaignId   int64
15497	urlParams_   gensupport.URLParams
15498	ctx_         context.Context
15499	header_      http.Header
15500}
15501
15502// Delete: Permanently deletes a campaign. A deleted campaign cannot be
15503// recovered. The campaign should be archived first, i.e. set
15504// entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.
15505//
15506// - advertiserId: The ID of the advertiser this campaign belongs to.
15507// - campaignId: The ID of the campaign we need to delete.
15508func (r *AdvertisersCampaignsService) Delete(advertiserId int64, campaignId int64) *AdvertisersCampaignsDeleteCall {
15509	c := &AdvertisersCampaignsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15510	c.advertiserId = advertiserId
15511	c.campaignId = campaignId
15512	return c
15513}
15514
15515// Fields allows partial responses to be retrieved. See
15516// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15517// for more information.
15518func (c *AdvertisersCampaignsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsDeleteCall {
15519	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15520	return c
15521}
15522
15523// Context sets the context to be used in this call's Do method. Any
15524// pending HTTP request will be aborted if the provided context is
15525// canceled.
15526func (c *AdvertisersCampaignsDeleteCall) Context(ctx context.Context) *AdvertisersCampaignsDeleteCall {
15527	c.ctx_ = ctx
15528	return c
15529}
15530
15531// Header returns an http.Header that can be modified by the caller to
15532// add HTTP headers to the request.
15533func (c *AdvertisersCampaignsDeleteCall) Header() http.Header {
15534	if c.header_ == nil {
15535		c.header_ = make(http.Header)
15536	}
15537	return c.header_
15538}
15539
15540func (c *AdvertisersCampaignsDeleteCall) doRequest(alt string) (*http.Response, error) {
15541	reqHeaders := make(http.Header)
15542	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
15543	for k, v := range c.header_ {
15544		reqHeaders[k] = v
15545	}
15546	reqHeaders.Set("User-Agent", c.s.userAgent())
15547	var body io.Reader = nil
15548	c.urlParams_.Set("alt", alt)
15549	c.urlParams_.Set("prettyPrint", "false")
15550	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}")
15551	urls += "?" + c.urlParams_.Encode()
15552	req, err := http.NewRequest("DELETE", urls, body)
15553	if err != nil {
15554		return nil, err
15555	}
15556	req.Header = reqHeaders
15557	googleapi.Expand(req.URL, map[string]string{
15558		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
15559		"campaignId":   strconv.FormatInt(c.campaignId, 10),
15560	})
15561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15562}
15563
15564// Do executes the "displayvideo.advertisers.campaigns.delete" call.
15565// Exactly one of *Empty or error will be non-nil. Any non-2xx status
15566// code is an error. Response headers are in either
15567// *Empty.ServerResponse.Header or (if a response was returned at all)
15568// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
15569// check whether the returned error was because http.StatusNotModified
15570// was returned.
15571func (c *AdvertisersCampaignsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
15572	gensupport.SetOptions(c.urlParams_, opts...)
15573	res, err := c.doRequest("json")
15574	if res != nil && res.StatusCode == http.StatusNotModified {
15575		if res.Body != nil {
15576			res.Body.Close()
15577		}
15578		return nil, &googleapi.Error{
15579			Code:   res.StatusCode,
15580			Header: res.Header,
15581		}
15582	}
15583	if err != nil {
15584		return nil, err
15585	}
15586	defer googleapi.CloseBody(res)
15587	if err := googleapi.CheckResponse(res); err != nil {
15588		return nil, err
15589	}
15590	ret := &Empty{
15591		ServerResponse: googleapi.ServerResponse{
15592			Header:         res.Header,
15593			HTTPStatusCode: res.StatusCode,
15594		},
15595	}
15596	target := &ret
15597	if err := gensupport.DecodeResponse(target, res); err != nil {
15598		return nil, err
15599	}
15600	return ret, nil
15601	// {
15602	//   "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.",
15603	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}",
15604	//   "httpMethod": "DELETE",
15605	//   "id": "displayvideo.advertisers.campaigns.delete",
15606	//   "parameterOrder": [
15607	//     "advertiserId",
15608	//     "campaignId"
15609	//   ],
15610	//   "parameters": {
15611	//     "advertiserId": {
15612	//       "description": "The ID of the advertiser this campaign belongs to.",
15613	//       "format": "int64",
15614	//       "location": "path",
15615	//       "pattern": "^[^/]+$",
15616	//       "required": true,
15617	//       "type": "string"
15618	//     },
15619	//     "campaignId": {
15620	//       "description": "The ID of the campaign we need to delete.",
15621	//       "format": "int64",
15622	//       "location": "path",
15623	//       "pattern": "^[^/]+$",
15624	//       "required": true,
15625	//       "type": "string"
15626	//     }
15627	//   },
15628	//   "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}",
15629	//   "response": {
15630	//     "$ref": "Empty"
15631	//   },
15632	//   "scopes": [
15633	//     "https://www.googleapis.com/auth/display-video",
15634	//     "https://www.googleapis.com/auth/display-video-mediaplanning"
15635	//   ]
15636	// }
15637
15638}
15639
15640// method id "displayvideo.advertisers.campaigns.get":
15641
15642type AdvertisersCampaignsGetCall struct {
15643	s            *Service
15644	advertiserId int64
15645	campaignId   int64
15646	urlParams_   gensupport.URLParams
15647	ifNoneMatch_ string
15648	ctx_         context.Context
15649	header_      http.Header
15650}
15651
15652// Get: Gets a campaign.
15653//
15654// - advertiserId: The ID of the advertiser this campaign belongs to.
15655// - campaignId: The ID of the campaign to fetch.
15656func (r *AdvertisersCampaignsService) Get(advertiserId int64, campaignId int64) *AdvertisersCampaignsGetCall {
15657	c := &AdvertisersCampaignsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15658	c.advertiserId = advertiserId
15659	c.campaignId = campaignId
15660	return c
15661}
15662
15663// Fields allows partial responses to be retrieved. See
15664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15665// for more information.
15666func (c *AdvertisersCampaignsGetCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsGetCall {
15667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15668	return c
15669}
15670
15671// IfNoneMatch sets the optional parameter which makes the operation
15672// fail if the object's ETag matches the given value. This is useful for
15673// getting updates only after the object has changed since the last
15674// request. Use googleapi.IsNotModified to check whether the response
15675// error from Do is the result of In-None-Match.
15676func (c *AdvertisersCampaignsGetCall) IfNoneMatch(entityTag string) *AdvertisersCampaignsGetCall {
15677	c.ifNoneMatch_ = entityTag
15678	return c
15679}
15680
15681// Context sets the context to be used in this call's Do method. Any
15682// pending HTTP request will be aborted if the provided context is
15683// canceled.
15684func (c *AdvertisersCampaignsGetCall) Context(ctx context.Context) *AdvertisersCampaignsGetCall {
15685	c.ctx_ = ctx
15686	return c
15687}
15688
15689// Header returns an http.Header that can be modified by the caller to
15690// add HTTP headers to the request.
15691func (c *AdvertisersCampaignsGetCall) Header() http.Header {
15692	if c.header_ == nil {
15693		c.header_ = make(http.Header)
15694	}
15695	return c.header_
15696}
15697
15698func (c *AdvertisersCampaignsGetCall) doRequest(alt string) (*http.Response, error) {
15699	reqHeaders := make(http.Header)
15700	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
15701	for k, v := range c.header_ {
15702		reqHeaders[k] = v
15703	}
15704	reqHeaders.Set("User-Agent", c.s.userAgent())
15705	if c.ifNoneMatch_ != "" {
15706		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15707	}
15708	var body io.Reader = nil
15709	c.urlParams_.Set("alt", alt)
15710	c.urlParams_.Set("prettyPrint", "false")
15711	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}")
15712	urls += "?" + c.urlParams_.Encode()
15713	req, err := http.NewRequest("GET", urls, body)
15714	if err != nil {
15715		return nil, err
15716	}
15717	req.Header = reqHeaders
15718	googleapi.Expand(req.URL, map[string]string{
15719		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
15720		"campaignId":   strconv.FormatInt(c.campaignId, 10),
15721	})
15722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15723}
15724
15725// Do executes the "displayvideo.advertisers.campaigns.get" call.
15726// Exactly one of *Campaign or error will be non-nil. Any non-2xx status
15727// code is an error. Response headers are in either
15728// *Campaign.ServerResponse.Header or (if a response was returned at
15729// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
15730// to check whether the returned error was because
15731// http.StatusNotModified was returned.
15732func (c *AdvertisersCampaignsGetCall) Do(opts ...googleapi.CallOption) (*Campaign, error) {
15733	gensupport.SetOptions(c.urlParams_, opts...)
15734	res, err := c.doRequest("json")
15735	if res != nil && res.StatusCode == http.StatusNotModified {
15736		if res.Body != nil {
15737			res.Body.Close()
15738		}
15739		return nil, &googleapi.Error{
15740			Code:   res.StatusCode,
15741			Header: res.Header,
15742		}
15743	}
15744	if err != nil {
15745		return nil, err
15746	}
15747	defer googleapi.CloseBody(res)
15748	if err := googleapi.CheckResponse(res); err != nil {
15749		return nil, err
15750	}
15751	ret := &Campaign{
15752		ServerResponse: googleapi.ServerResponse{
15753			Header:         res.Header,
15754			HTTPStatusCode: res.StatusCode,
15755		},
15756	}
15757	target := &ret
15758	if err := gensupport.DecodeResponse(target, res); err != nil {
15759		return nil, err
15760	}
15761	return ret, nil
15762	// {
15763	//   "description": "Gets a campaign.",
15764	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}",
15765	//   "httpMethod": "GET",
15766	//   "id": "displayvideo.advertisers.campaigns.get",
15767	//   "parameterOrder": [
15768	//     "advertiserId",
15769	//     "campaignId"
15770	//   ],
15771	//   "parameters": {
15772	//     "advertiserId": {
15773	//       "description": "Required. The ID of the advertiser this campaign belongs to.",
15774	//       "format": "int64",
15775	//       "location": "path",
15776	//       "pattern": "^[^/]+$",
15777	//       "required": true,
15778	//       "type": "string"
15779	//     },
15780	//     "campaignId": {
15781	//       "description": "Required. The ID of the campaign to fetch.",
15782	//       "format": "int64",
15783	//       "location": "path",
15784	//       "pattern": "^[^/]+$",
15785	//       "required": true,
15786	//       "type": "string"
15787	//     }
15788	//   },
15789	//   "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}",
15790	//   "response": {
15791	//     "$ref": "Campaign"
15792	//   },
15793	//   "scopes": [
15794	//     "https://www.googleapis.com/auth/display-video",
15795	//     "https://www.googleapis.com/auth/display-video-mediaplanning"
15796	//   ]
15797	// }
15798
15799}
15800
15801// method id "displayvideo.advertisers.campaigns.list":
15802
15803type AdvertisersCampaignsListCall struct {
15804	s            *Service
15805	advertiserId int64
15806	urlParams_   gensupport.URLParams
15807	ifNoneMatch_ string
15808	ctx_         context.Context
15809	header_      http.Header
15810}
15811
15812// List: Lists campaigns in an advertiser. The order is defined by the
15813// order_by parameter. If a filter by entity_status is not specified,
15814// campaigns with `ENTITY_STATUS_ARCHIVED` will not be included in the
15815// results.
15816//
15817// - advertiserId: The ID of the advertiser to list campaigns for.
15818func (r *AdvertisersCampaignsService) List(advertiserId int64) *AdvertisersCampaignsListCall {
15819	c := &AdvertisersCampaignsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
15820	c.advertiserId = advertiserId
15821	return c
15822}
15823
15824// Filter sets the optional parameter "filter": Allows filtering by
15825// campaign properties. Supported syntax: * Filter expressions are made
15826// up of one or more restrictions. * Restrictions can be combined by
15827// `AND` or `OR` logical operators. A sequence of restrictions
15828// implicitly uses `AND`. * A restriction has the form of `{field}
15829// {operator} {value}`. * The operator used on `updateTime` must be
15830// `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)`. *
15831// The operator must be `EQUALS (=)`. * Supported fields: - `campaignId`
15832// - `displayName` - `entityStatus` - `updateTime` (input in ISO 8601
15833// format, or YYYY-MM-DDTHH:MM:SSZ) Examples: * All
15834// `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` campaigns under an
15835// advertiser: `(entityStatus="ENTITY_STATUS_ACTIVE" OR
15836// entityStatus="ENTITY_STATUS_PAUSED")` * All campaigns with an update
15837// time less than or equal to `2020-11-04T18:54:47Z (format of ISO
15838// 8601)`: `updateTime<="2020-11-04T18:54:47Z" * All campaigns with an
15839// update time greater than or equal to `2020-11-04T18:54:47Z (format of
15840// ISO 8601)`: `updateTime>="2020-11-04T18:54:47Z" The length of this
15841// field should be no more than 500 characters.
15842func (c *AdvertisersCampaignsListCall) Filter(filter string) *AdvertisersCampaignsListCall {
15843	c.urlParams_.Set("filter", filter)
15844	return c
15845}
15846
15847// OrderBy sets the optional parameter "orderBy": Field by which to sort
15848// the list. Acceptable values are: * `displayName` (default) *
15849// `entityStatus` * `updateTime` The default sorting order is ascending.
15850// To specify descending order for a field, a suffix "desc" should be
15851// added to the field name. Example: `displayName desc`.
15852func (c *AdvertisersCampaignsListCall) OrderBy(orderBy string) *AdvertisersCampaignsListCall {
15853	c.urlParams_.Set("orderBy", orderBy)
15854	return c
15855}
15856
15857// PageSize sets the optional parameter "pageSize": Requested page size.
15858// Must be between `1` and `100`. If unspecified will default to `100`.
15859func (c *AdvertisersCampaignsListCall) PageSize(pageSize int64) *AdvertisersCampaignsListCall {
15860	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
15861	return c
15862}
15863
15864// PageToken sets the optional parameter "pageToken": A token
15865// identifying a page of results the server should return. Typically,
15866// this is the value of next_page_token returned from the previous call
15867// to `ListCampaigns` method. If not specified, the first page of
15868// results will be returned.
15869func (c *AdvertisersCampaignsListCall) PageToken(pageToken string) *AdvertisersCampaignsListCall {
15870	c.urlParams_.Set("pageToken", pageToken)
15871	return c
15872}
15873
15874// Fields allows partial responses to be retrieved. See
15875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
15876// for more information.
15877func (c *AdvertisersCampaignsListCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsListCall {
15878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
15879	return c
15880}
15881
15882// IfNoneMatch sets the optional parameter which makes the operation
15883// fail if the object's ETag matches the given value. This is useful for
15884// getting updates only after the object has changed since the last
15885// request. Use googleapi.IsNotModified to check whether the response
15886// error from Do is the result of In-None-Match.
15887func (c *AdvertisersCampaignsListCall) IfNoneMatch(entityTag string) *AdvertisersCampaignsListCall {
15888	c.ifNoneMatch_ = entityTag
15889	return c
15890}
15891
15892// Context sets the context to be used in this call's Do method. Any
15893// pending HTTP request will be aborted if the provided context is
15894// canceled.
15895func (c *AdvertisersCampaignsListCall) Context(ctx context.Context) *AdvertisersCampaignsListCall {
15896	c.ctx_ = ctx
15897	return c
15898}
15899
15900// Header returns an http.Header that can be modified by the caller to
15901// add HTTP headers to the request.
15902func (c *AdvertisersCampaignsListCall) Header() http.Header {
15903	if c.header_ == nil {
15904		c.header_ = make(http.Header)
15905	}
15906	return c.header_
15907}
15908
15909func (c *AdvertisersCampaignsListCall) doRequest(alt string) (*http.Response, error) {
15910	reqHeaders := make(http.Header)
15911	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
15912	for k, v := range c.header_ {
15913		reqHeaders[k] = v
15914	}
15915	reqHeaders.Set("User-Agent", c.s.userAgent())
15916	if c.ifNoneMatch_ != "" {
15917		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
15918	}
15919	var body io.Reader = nil
15920	c.urlParams_.Set("alt", alt)
15921	c.urlParams_.Set("prettyPrint", "false")
15922	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns")
15923	urls += "?" + c.urlParams_.Encode()
15924	req, err := http.NewRequest("GET", urls, body)
15925	if err != nil {
15926		return nil, err
15927	}
15928	req.Header = reqHeaders
15929	googleapi.Expand(req.URL, map[string]string{
15930		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
15931	})
15932	return gensupport.SendRequest(c.ctx_, c.s.client, req)
15933}
15934
15935// Do executes the "displayvideo.advertisers.campaigns.list" call.
15936// Exactly one of *ListCampaignsResponse or error will be non-nil. Any
15937// non-2xx status code is an error. Response headers are in either
15938// *ListCampaignsResponse.ServerResponse.Header or (if a response was
15939// returned at all) in error.(*googleapi.Error).Header. Use
15940// googleapi.IsNotModified to check whether the returned error was
15941// because http.StatusNotModified was returned.
15942func (c *AdvertisersCampaignsListCall) Do(opts ...googleapi.CallOption) (*ListCampaignsResponse, error) {
15943	gensupport.SetOptions(c.urlParams_, opts...)
15944	res, err := c.doRequest("json")
15945	if res != nil && res.StatusCode == http.StatusNotModified {
15946		if res.Body != nil {
15947			res.Body.Close()
15948		}
15949		return nil, &googleapi.Error{
15950			Code:   res.StatusCode,
15951			Header: res.Header,
15952		}
15953	}
15954	if err != nil {
15955		return nil, err
15956	}
15957	defer googleapi.CloseBody(res)
15958	if err := googleapi.CheckResponse(res); err != nil {
15959		return nil, err
15960	}
15961	ret := &ListCampaignsResponse{
15962		ServerResponse: googleapi.ServerResponse{
15963			Header:         res.Header,
15964			HTTPStatusCode: res.StatusCode,
15965		},
15966	}
15967	target := &ret
15968	if err := gensupport.DecodeResponse(target, res); err != nil {
15969		return nil, err
15970	}
15971	return ret, nil
15972	// {
15973	//   "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.",
15974	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns",
15975	//   "httpMethod": "GET",
15976	//   "id": "displayvideo.advertisers.campaigns.list",
15977	//   "parameterOrder": [
15978	//     "advertiserId"
15979	//   ],
15980	//   "parameters": {
15981	//     "advertiserId": {
15982	//       "description": "The ID of the advertiser to list campaigns for.",
15983	//       "format": "int64",
15984	//       "location": "path",
15985	//       "pattern": "^[^/]+$",
15986	//       "required": true,
15987	//       "type": "string"
15988	//     },
15989	//     "filter": {
15990	//       "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.",
15991	//       "location": "query",
15992	//       "type": "string"
15993	//     },
15994	//     "orderBy": {
15995	//       "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`.",
15996	//       "location": "query",
15997	//       "type": "string"
15998	//     },
15999	//     "pageSize": {
16000	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
16001	//       "format": "int32",
16002	//       "location": "query",
16003	//       "type": "integer"
16004	//     },
16005	//     "pageToken": {
16006	//       "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.",
16007	//       "location": "query",
16008	//       "type": "string"
16009	//     }
16010	//   },
16011	//   "path": "v1/advertisers/{+advertiserId}/campaigns",
16012	//   "response": {
16013	//     "$ref": "ListCampaignsResponse"
16014	//   },
16015	//   "scopes": [
16016	//     "https://www.googleapis.com/auth/display-video",
16017	//     "https://www.googleapis.com/auth/display-video-mediaplanning"
16018	//   ]
16019	// }
16020
16021}
16022
16023// Pages invokes f for each page of results.
16024// A non-nil error returned from f will halt the iteration.
16025// The provided context supersedes any context provided to the Context method.
16026func (c *AdvertisersCampaignsListCall) Pages(ctx context.Context, f func(*ListCampaignsResponse) error) error {
16027	c.ctx_ = ctx
16028	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
16029	for {
16030		x, err := c.Do()
16031		if err != nil {
16032			return err
16033		}
16034		if err := f(x); err != nil {
16035			return err
16036		}
16037		if x.NextPageToken == "" {
16038			return nil
16039		}
16040		c.PageToken(x.NextPageToken)
16041	}
16042}
16043
16044// method id "displayvideo.advertisers.campaigns.patch":
16045
16046type AdvertisersCampaignsPatchCall struct {
16047	s            *Service
16048	advertiserId int64
16049	campaignId   int64
16050	campaign     *Campaign
16051	urlParams_   gensupport.URLParams
16052	ctx_         context.Context
16053	header_      http.Header
16054}
16055
16056// Patch: Updates an existing campaign. Returns the updated campaign if
16057// successful.
16058//
16059// - advertiserId: Output only. The unique ID of the advertiser the
16060//   campaign belongs to.
16061// - campaignId: Output only. The unique ID of the campaign. Assigned by
16062//   the system.
16063func (r *AdvertisersCampaignsService) Patch(advertiserId int64, campaignId int64, campaign *Campaign) *AdvertisersCampaignsPatchCall {
16064	c := &AdvertisersCampaignsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16065	c.advertiserId = advertiserId
16066	c.campaignId = campaignId
16067	c.campaign = campaign
16068	return c
16069}
16070
16071// UpdateMask sets the optional parameter "updateMask": Required. The
16072// mask to control which fields to update.
16073func (c *AdvertisersCampaignsPatchCall) UpdateMask(updateMask string) *AdvertisersCampaignsPatchCall {
16074	c.urlParams_.Set("updateMask", updateMask)
16075	return c
16076}
16077
16078// Fields allows partial responses to be retrieved. See
16079// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16080// for more information.
16081func (c *AdvertisersCampaignsPatchCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsPatchCall {
16082	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16083	return c
16084}
16085
16086// Context sets the context to be used in this call's Do method. Any
16087// pending HTTP request will be aborted if the provided context is
16088// canceled.
16089func (c *AdvertisersCampaignsPatchCall) Context(ctx context.Context) *AdvertisersCampaignsPatchCall {
16090	c.ctx_ = ctx
16091	return c
16092}
16093
16094// Header returns an http.Header that can be modified by the caller to
16095// add HTTP headers to the request.
16096func (c *AdvertisersCampaignsPatchCall) Header() http.Header {
16097	if c.header_ == nil {
16098		c.header_ = make(http.Header)
16099	}
16100	return c.header_
16101}
16102
16103func (c *AdvertisersCampaignsPatchCall) doRequest(alt string) (*http.Response, error) {
16104	reqHeaders := make(http.Header)
16105	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
16106	for k, v := range c.header_ {
16107		reqHeaders[k] = v
16108	}
16109	reqHeaders.Set("User-Agent", c.s.userAgent())
16110	var body io.Reader = nil
16111	body, err := googleapi.WithoutDataWrapper.JSONReader(c.campaign)
16112	if err != nil {
16113		return nil, err
16114	}
16115	reqHeaders.Set("Content-Type", "application/json")
16116	c.urlParams_.Set("alt", alt)
16117	c.urlParams_.Set("prettyPrint", "false")
16118	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}")
16119	urls += "?" + c.urlParams_.Encode()
16120	req, err := http.NewRequest("PATCH", urls, body)
16121	if err != nil {
16122		return nil, err
16123	}
16124	req.Header = reqHeaders
16125	googleapi.Expand(req.URL, map[string]string{
16126		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
16127		"campaignId":   strconv.FormatInt(c.campaignId, 10),
16128	})
16129	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16130}
16131
16132// Do executes the "displayvideo.advertisers.campaigns.patch" call.
16133// Exactly one of *Campaign or error will be non-nil. Any non-2xx status
16134// code is an error. Response headers are in either
16135// *Campaign.ServerResponse.Header or (if a response was returned at
16136// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
16137// to check whether the returned error was because
16138// http.StatusNotModified was returned.
16139func (c *AdvertisersCampaignsPatchCall) Do(opts ...googleapi.CallOption) (*Campaign, error) {
16140	gensupport.SetOptions(c.urlParams_, opts...)
16141	res, err := c.doRequest("json")
16142	if res != nil && res.StatusCode == http.StatusNotModified {
16143		if res.Body != nil {
16144			res.Body.Close()
16145		}
16146		return nil, &googleapi.Error{
16147			Code:   res.StatusCode,
16148			Header: res.Header,
16149		}
16150	}
16151	if err != nil {
16152		return nil, err
16153	}
16154	defer googleapi.CloseBody(res)
16155	if err := googleapi.CheckResponse(res); err != nil {
16156		return nil, err
16157	}
16158	ret := &Campaign{
16159		ServerResponse: googleapi.ServerResponse{
16160			Header:         res.Header,
16161			HTTPStatusCode: res.StatusCode,
16162		},
16163	}
16164	target := &ret
16165	if err := gensupport.DecodeResponse(target, res); err != nil {
16166		return nil, err
16167	}
16168	return ret, nil
16169	// {
16170	//   "description": "Updates an existing campaign. Returns the updated campaign if successful.",
16171	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}",
16172	//   "httpMethod": "PATCH",
16173	//   "id": "displayvideo.advertisers.campaigns.patch",
16174	//   "parameterOrder": [
16175	//     "advertiserId",
16176	//     "campaignId"
16177	//   ],
16178	//   "parameters": {
16179	//     "advertiserId": {
16180	//       "description": "Output only. The unique ID of the advertiser the campaign belongs to.",
16181	//       "format": "int64",
16182	//       "location": "path",
16183	//       "pattern": "^[^/]+$",
16184	//       "required": true,
16185	//       "type": "string"
16186	//     },
16187	//     "campaignId": {
16188	//       "description": "Output only. The unique ID of the campaign. Assigned by the system.",
16189	//       "format": "int64",
16190	//       "location": "path",
16191	//       "pattern": "^[^/]+$",
16192	//       "required": true,
16193	//       "type": "string"
16194	//     },
16195	//     "updateMask": {
16196	//       "description": "Required. The mask to control which fields to update.",
16197	//       "format": "google-fieldmask",
16198	//       "location": "query",
16199	//       "type": "string"
16200	//     }
16201	//   },
16202	//   "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}",
16203	//   "request": {
16204	//     "$ref": "Campaign"
16205	//   },
16206	//   "response": {
16207	//     "$ref": "Campaign"
16208	//   },
16209	//   "scopes": [
16210	//     "https://www.googleapis.com/auth/display-video",
16211	//     "https://www.googleapis.com/auth/display-video-mediaplanning"
16212	//   ]
16213	// }
16214
16215}
16216
16217// method id "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.get":
16218
16219type AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall struct {
16220	s                         *Service
16221	advertiserId              int64
16222	campaignId                int64
16223	targetingType             string
16224	assignedTargetingOptionId string
16225	urlParams_                gensupport.URLParams
16226	ifNoneMatch_              string
16227	ctx_                      context.Context
16228	header_                   http.Header
16229}
16230
16231// Get: Gets a single targeting option assigned to a campaign.
16232//
16233// - advertiserId: The ID of the advertiser the campaign belongs to.
16234// - assignedTargetingOptionId: An identifier unique to the targeting
16235//   type in this campaign that identifies the assigned targeting option
16236//   being requested.
16237// - campaignId: The ID of the campaign the assigned targeting option
16238//   belongs to.
16239// - targetingType: Identifies the type of this assigned targeting
16240//   option. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` *
16241//   `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` *
16242//   `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` *
16243//   `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` *
16244//   `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
16245//   `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` *
16246//   `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` *
16247//   `TARGETING_TYPE_HOUSEHOLD_INCOME` *
16248//   `TARGETING_TYPE_INVENTORY_SOURCE` *
16249//   `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE`
16250//   * `TARGETING_TYPE_ON_SCREEN_POSITION` *
16251//   `TARGETING_TYPE_PARENTAL_STATUS` *
16252//   `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` *
16253//   `TARGETING_TYPE_SUB_EXCHANGE` *
16254//   `TARGETING_TYPE_THIRD_PARTY_VERIFIER` *
16255//   `TARGETING_TYPE_VIEWABILITY`.
16256func (r *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService) Get(advertiserId int64, campaignId int64, targetingType string, assignedTargetingOptionId string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall {
16257	c := &AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16258	c.advertiserId = advertiserId
16259	c.campaignId = campaignId
16260	c.targetingType = targetingType
16261	c.assignedTargetingOptionId = assignedTargetingOptionId
16262	return c
16263}
16264
16265// Fields allows partial responses to be retrieved. See
16266// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16267// for more information.
16268func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall {
16269	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16270	return c
16271}
16272
16273// IfNoneMatch sets the optional parameter which makes the operation
16274// fail if the object's ETag matches the given value. This is useful for
16275// getting updates only after the object has changed since the last
16276// request. Use googleapi.IsNotModified to check whether the response
16277// error from Do is the result of In-None-Match.
16278func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall) IfNoneMatch(entityTag string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall {
16279	c.ifNoneMatch_ = entityTag
16280	return c
16281}
16282
16283// Context sets the context to be used in this call's Do method. Any
16284// pending HTTP request will be aborted if the provided context is
16285// canceled.
16286func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall) Context(ctx context.Context) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall {
16287	c.ctx_ = ctx
16288	return c
16289}
16290
16291// Header returns an http.Header that can be modified by the caller to
16292// add HTTP headers to the request.
16293func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall) Header() http.Header {
16294	if c.header_ == nil {
16295		c.header_ = make(http.Header)
16296	}
16297	return c.header_
16298}
16299
16300func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall) doRequest(alt string) (*http.Response, error) {
16301	reqHeaders := make(http.Header)
16302	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
16303	for k, v := range c.header_ {
16304		reqHeaders[k] = v
16305	}
16306	reqHeaders.Set("User-Agent", c.s.userAgent())
16307	if c.ifNoneMatch_ != "" {
16308		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
16309	}
16310	var body io.Reader = nil
16311	c.urlParams_.Set("alt", alt)
16312	c.urlParams_.Set("prettyPrint", "false")
16313	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
16314	urls += "?" + c.urlParams_.Encode()
16315	req, err := http.NewRequest("GET", urls, body)
16316	if err != nil {
16317		return nil, err
16318	}
16319	req.Header = reqHeaders
16320	googleapi.Expand(req.URL, map[string]string{
16321		"advertiserId":              strconv.FormatInt(c.advertiserId, 10),
16322		"campaignId":                strconv.FormatInt(c.campaignId, 10),
16323		"targetingType":             c.targetingType,
16324		"assignedTargetingOptionId": c.assignedTargetingOptionId,
16325	})
16326	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16327}
16328
16329// Do executes the "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.get" call.
16330// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
16331// non-2xx status code is an error. Response headers are in either
16332// *AssignedTargetingOption.ServerResponse.Header or (if a response was
16333// returned at all) in error.(*googleapi.Error).Header. Use
16334// googleapi.IsNotModified to check whether the returned error was
16335// because http.StatusNotModified was returned.
16336func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsGetCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
16337	gensupport.SetOptions(c.urlParams_, opts...)
16338	res, err := c.doRequest("json")
16339	if res != nil && res.StatusCode == http.StatusNotModified {
16340		if res.Body != nil {
16341			res.Body.Close()
16342		}
16343		return nil, &googleapi.Error{
16344			Code:   res.StatusCode,
16345			Header: res.Header,
16346		}
16347	}
16348	if err != nil {
16349		return nil, err
16350	}
16351	defer googleapi.CloseBody(res)
16352	if err := googleapi.CheckResponse(res); err != nil {
16353		return nil, err
16354	}
16355	ret := &AssignedTargetingOption{
16356		ServerResponse: googleapi.ServerResponse{
16357			Header:         res.Header,
16358			HTTPStatusCode: res.StatusCode,
16359		},
16360	}
16361	target := &ret
16362	if err := gensupport.DecodeResponse(target, res); err != nil {
16363		return nil, err
16364	}
16365	return ret, nil
16366	// {
16367	//   "description": "Gets a single targeting option assigned to a campaign.",
16368	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
16369	//   "httpMethod": "GET",
16370	//   "id": "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.get",
16371	//   "parameterOrder": [
16372	//     "advertiserId",
16373	//     "campaignId",
16374	//     "targetingType",
16375	//     "assignedTargetingOptionId"
16376	//   ],
16377	//   "parameters": {
16378	//     "advertiserId": {
16379	//       "description": "Required. The ID of the advertiser the campaign belongs to.",
16380	//       "format": "int64",
16381	//       "location": "path",
16382	//       "pattern": "^[^/]+$",
16383	//       "required": true,
16384	//       "type": "string"
16385	//     },
16386	//     "assignedTargetingOptionId": {
16387	//       "description": "Required. An identifier unique to the targeting type in this campaign that identifies the assigned targeting option being requested.",
16388	//       "location": "path",
16389	//       "pattern": "^[^/]+$",
16390	//       "required": true,
16391	//       "type": "string"
16392	//     },
16393	//     "campaignId": {
16394	//       "description": "Required. The ID of the campaign the assigned targeting option belongs to.",
16395	//       "format": "int64",
16396	//       "location": "path",
16397	//       "pattern": "^[^/]+$",
16398	//       "required": true,
16399	//       "type": "string"
16400	//     },
16401	//     "targetingType": {
16402	//       "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`",
16403	//       "enum": [
16404	//         "TARGETING_TYPE_UNSPECIFIED",
16405	//         "TARGETING_TYPE_CHANNEL",
16406	//         "TARGETING_TYPE_APP_CATEGORY",
16407	//         "TARGETING_TYPE_APP",
16408	//         "TARGETING_TYPE_URL",
16409	//         "TARGETING_TYPE_DAY_AND_TIME",
16410	//         "TARGETING_TYPE_AGE_RANGE",
16411	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
16412	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
16413	//         "TARGETING_TYPE_GENDER",
16414	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
16415	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
16416	//         "TARGETING_TYPE_PARENTAL_STATUS",
16417	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
16418	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
16419	//         "TARGETING_TYPE_DEVICE_TYPE",
16420	//         "TARGETING_TYPE_AUDIENCE_GROUP",
16421	//         "TARGETING_TYPE_BROWSER",
16422	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
16423	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
16424	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
16425	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
16426	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
16427	//         "TARGETING_TYPE_ENVIRONMENT",
16428	//         "TARGETING_TYPE_CARRIER_AND_ISP",
16429	//         "TARGETING_TYPE_OPERATING_SYSTEM",
16430	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
16431	//         "TARGETING_TYPE_KEYWORD",
16432	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
16433	//         "TARGETING_TYPE_VIEWABILITY",
16434	//         "TARGETING_TYPE_CATEGORY",
16435	//         "TARGETING_TYPE_INVENTORY_SOURCE",
16436	//         "TARGETING_TYPE_LANGUAGE",
16437	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
16438	//         "TARGETING_TYPE_GEO_REGION",
16439	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
16440	//         "TARGETING_TYPE_EXCHANGE",
16441	//         "TARGETING_TYPE_SUB_EXCHANGE"
16442	//       ],
16443	//       "enumDescriptions": [
16444	//         "Default value when type is not specified or is unknown in this version.",
16445	//         "Target a channel (a custom group of related websites or apps).",
16446	//         "Target an app category (for example, education or puzzle games).",
16447	//         "Target a specific app (for example, Angry Birds).",
16448	//         "Target a specific url (for example, quora.com).",
16449	//         "Target ads during a chosen time period on a specific day.",
16450	//         "Target ads to a specific age range (for example, 18-24).",
16451	//         "Target ads to the specified regions on a regional location list.",
16452	//         "Target ads to the specified points of interest on a proximity location list.",
16453	//         "Target ads to a specific gender (for example, female or male).",
16454	//         "Target a specific video player size for video ads.",
16455	//         "Target user rewarded content for video ads.",
16456	//         "Target ads to a specific parental status (for example, parent or not a parent).",
16457	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
16458	//         "Target ads in a specific content outstream position.",
16459	//         "Target ads to a specific device type (for example, tablet or connected TV).",
16460	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
16461	//         "Target ads to specific web browsers (for example, Chrome).",
16462	//         "Target ads to a specific household income range (for example, top 10%).",
16463	//         "Target ads in a specific on screen position.",
16464	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
16465	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
16466	//         "Filter website content by sensitive categories (for example, adult).",
16467	//         "Target ads to a specific environment (for example, web or app).",
16468	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
16469	//         "Target ads to a specific operating system (for example, macOS).",
16470	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
16471	//         "Target ads to a specific keyword (for example, dog or retriever).",
16472	//         "Target ads to a specific negative keyword list.",
16473	//         "Target ads to a specific viewability (for example, 80% viewable).",
16474	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
16475	//         "Purchase impressions from specific deals and auction packages.",
16476	//         "Target ads to a specific language (for example, English or Japanese).",
16477	//         "Target ads to ads.txt authorized sellers.",
16478	//         "Target ads to a specific regional location (for example, a city or state).",
16479	//         "Purchase impressions from a group of deals and auction packages.",
16480	//         "Purchase impressions from specific exchanges.",
16481	//         "Purchase impressions from specific sub-exchanges."
16482	//       ],
16483	//       "location": "path",
16484	//       "pattern": "^[^/]+$",
16485	//       "required": true,
16486	//       "type": "string"
16487	//     }
16488	//   },
16489	//   "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
16490	//   "response": {
16491	//     "$ref": "AssignedTargetingOption"
16492	//   },
16493	//   "scopes": [
16494	//     "https://www.googleapis.com/auth/display-video"
16495	//   ]
16496	// }
16497
16498}
16499
16500// method id "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.list":
16501
16502type AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall struct {
16503	s             *Service
16504	advertiserId  int64
16505	campaignId    int64
16506	targetingType string
16507	urlParams_    gensupport.URLParams
16508	ifNoneMatch_  string
16509	ctx_          context.Context
16510	header_       http.Header
16511}
16512
16513// List: Lists the targeting options assigned to a campaign for a
16514// specified targeting type.
16515//
16516// - advertiserId: The ID of the advertiser the campaign belongs to.
16517// - campaignId: The ID of the campaign to list assigned targeting
16518//   options for.
16519// - targetingType: Identifies the type of assigned targeting options to
16520//   list. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` *
16521//   `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` *
16522//   `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` *
16523//   `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` *
16524//   `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
16525//   `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` *
16526//   `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` *
16527//   `TARGETING_TYPE_HOUSEHOLD_INCOME` *
16528//   `TARGETING_TYPE_INVENTORY_SOURCE` *
16529//   `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE`
16530//   * `TARGETING_TYPE_ON_SCREEN_POSITION` *
16531//   `TARGETING_TYPE_PARENTAL_STATUS` *
16532//   `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` *
16533//   `TARGETING_TYPE_SUB_EXCHANGE` *
16534//   `TARGETING_TYPE_THIRD_PARTY_VERIFIER` *
16535//   `TARGETING_TYPE_VIEWABILITY`.
16536func (r *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsService) List(advertiserId int64, campaignId int64, targetingType string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
16537	c := &AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16538	c.advertiserId = advertiserId
16539	c.campaignId = campaignId
16540	c.targetingType = targetingType
16541	return c
16542}
16543
16544// Filter sets the optional parameter "filter": Allows filtering by
16545// assigned targeting option properties. Supported syntax: * Filter
16546// expressions are made up of one or more restrictions. * Restrictions
16547// can be combined by the logical operator `OR`. * A restriction has the
16548// form of `{field} {operator} {value}`. * The operator must be `EQUALS
16549// (=)`. * Supported fields: - `assignedTargetingOptionId` -
16550// `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2
16551// `assignedTargetingOptionId="1" OR assignedTargetingOptionId="2" *
16552// AssignedTargetingOptions with inheritance status of NOT_INHERITED or
16553// INHERITED_FROM_PARTNER `inheritance="NOT_INHERITED" OR
16554// inheritance="INHERITED_FROM_PARTNER" The length of this field should
16555// be no more than 500 characters.
16556func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) Filter(filter string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
16557	c.urlParams_.Set("filter", filter)
16558	return c
16559}
16560
16561// OrderBy sets the optional parameter "orderBy": Field by which to sort
16562// the list. Acceptable values are: * `assignedTargetingOptionId`
16563// (default) The default sorting order is ascending. To specify
16564// descending order for a field, a suffix "desc" should be added to the
16565// field name. Example: `assignedTargetingOptionId desc`.
16566func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) OrderBy(orderBy string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
16567	c.urlParams_.Set("orderBy", orderBy)
16568	return c
16569}
16570
16571// PageSize sets the optional parameter "pageSize": Requested page size.
16572// Must be between `1` and `100`. If unspecified will default to `100`.
16573// Returns error code `INVALID_ARGUMENT` if an invalid value is
16574// specified.
16575func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) PageSize(pageSize int64) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
16576	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
16577	return c
16578}
16579
16580// PageToken sets the optional parameter "pageToken": A token
16581// identifying a page of results the server should return. Typically,
16582// this is the value of next_page_token returned from the previous call
16583// to `ListCampaignAssignedTargetingOptions` method. If not specified,
16584// the first page of results will be returned.
16585func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) PageToken(pageToken string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
16586	c.urlParams_.Set("pageToken", pageToken)
16587	return c
16588}
16589
16590// Fields allows partial responses to be retrieved. See
16591// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16592// for more information.
16593func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) Fields(s ...googleapi.Field) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
16594	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16595	return c
16596}
16597
16598// IfNoneMatch sets the optional parameter which makes the operation
16599// fail if the object's ETag matches the given value. This is useful for
16600// getting updates only after the object has changed since the last
16601// request. Use googleapi.IsNotModified to check whether the response
16602// error from Do is the result of In-None-Match.
16603func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) IfNoneMatch(entityTag string) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
16604	c.ifNoneMatch_ = entityTag
16605	return c
16606}
16607
16608// Context sets the context to be used in this call's Do method. Any
16609// pending HTTP request will be aborted if the provided context is
16610// canceled.
16611func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) Context(ctx context.Context) *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall {
16612	c.ctx_ = ctx
16613	return c
16614}
16615
16616// Header returns an http.Header that can be modified by the caller to
16617// add HTTP headers to the request.
16618func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) Header() http.Header {
16619	if c.header_ == nil {
16620		c.header_ = make(http.Header)
16621	}
16622	return c.header_
16623}
16624
16625func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) doRequest(alt string) (*http.Response, error) {
16626	reqHeaders := make(http.Header)
16627	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
16628	for k, v := range c.header_ {
16629		reqHeaders[k] = v
16630	}
16631	reqHeaders.Set("User-Agent", c.s.userAgent())
16632	if c.ifNoneMatch_ != "" {
16633		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
16634	}
16635	var body io.Reader = nil
16636	c.urlParams_.Set("alt", alt)
16637	c.urlParams_.Set("prettyPrint", "false")
16638	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
16639	urls += "?" + c.urlParams_.Encode()
16640	req, err := http.NewRequest("GET", urls, body)
16641	if err != nil {
16642		return nil, err
16643	}
16644	req.Header = reqHeaders
16645	googleapi.Expand(req.URL, map[string]string{
16646		"advertiserId":  strconv.FormatInt(c.advertiserId, 10),
16647		"campaignId":    strconv.FormatInt(c.campaignId, 10),
16648		"targetingType": c.targetingType,
16649	})
16650	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16651}
16652
16653// Do executes the "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.list" call.
16654// Exactly one of *ListCampaignAssignedTargetingOptionsResponse or error
16655// will be non-nil. Any non-2xx status code is an error. Response
16656// headers are in either
16657// *ListCampaignAssignedTargetingOptionsResponse.ServerResponse.Header
16658// or (if a response was returned at all) in
16659// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
16660// whether the returned error was because http.StatusNotModified was
16661// returned.
16662func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) Do(opts ...googleapi.CallOption) (*ListCampaignAssignedTargetingOptionsResponse, error) {
16663	gensupport.SetOptions(c.urlParams_, opts...)
16664	res, err := c.doRequest("json")
16665	if res != nil && res.StatusCode == http.StatusNotModified {
16666		if res.Body != nil {
16667			res.Body.Close()
16668		}
16669		return nil, &googleapi.Error{
16670			Code:   res.StatusCode,
16671			Header: res.Header,
16672		}
16673	}
16674	if err != nil {
16675		return nil, err
16676	}
16677	defer googleapi.CloseBody(res)
16678	if err := googleapi.CheckResponse(res); err != nil {
16679		return nil, err
16680	}
16681	ret := &ListCampaignAssignedTargetingOptionsResponse{
16682		ServerResponse: googleapi.ServerResponse{
16683			Header:         res.Header,
16684			HTTPStatusCode: res.StatusCode,
16685		},
16686	}
16687	target := &ret
16688	if err := gensupport.DecodeResponse(target, res); err != nil {
16689		return nil, err
16690	}
16691	return ret, nil
16692	// {
16693	//   "description": "Lists the targeting options assigned to a campaign for a specified targeting type.",
16694	//   "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
16695	//   "httpMethod": "GET",
16696	//   "id": "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.list",
16697	//   "parameterOrder": [
16698	//     "advertiserId",
16699	//     "campaignId",
16700	//     "targetingType"
16701	//   ],
16702	//   "parameters": {
16703	//     "advertiserId": {
16704	//       "description": "Required. The ID of the advertiser the campaign belongs to.",
16705	//       "format": "int64",
16706	//       "location": "path",
16707	//       "pattern": "^[^/]+$",
16708	//       "required": true,
16709	//       "type": "string"
16710	//     },
16711	//     "campaignId": {
16712	//       "description": "Required. The ID of the campaign to list assigned targeting options for.",
16713	//       "format": "int64",
16714	//       "location": "path",
16715	//       "pattern": "^[^/]+$",
16716	//       "required": true,
16717	//       "type": "string"
16718	//     },
16719	//     "filter": {
16720	//       "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.",
16721	//       "location": "query",
16722	//       "type": "string"
16723	//     },
16724	//     "orderBy": {
16725	//       "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`.",
16726	//       "location": "query",
16727	//       "type": "string"
16728	//     },
16729	//     "pageSize": {
16730	//       "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.",
16731	//       "format": "int32",
16732	//       "location": "query",
16733	//       "type": "integer"
16734	//     },
16735	//     "pageToken": {
16736	//       "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.",
16737	//       "location": "query",
16738	//       "type": "string"
16739	//     },
16740	//     "targetingType": {
16741	//       "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`",
16742	//       "enum": [
16743	//         "TARGETING_TYPE_UNSPECIFIED",
16744	//         "TARGETING_TYPE_CHANNEL",
16745	//         "TARGETING_TYPE_APP_CATEGORY",
16746	//         "TARGETING_TYPE_APP",
16747	//         "TARGETING_TYPE_URL",
16748	//         "TARGETING_TYPE_DAY_AND_TIME",
16749	//         "TARGETING_TYPE_AGE_RANGE",
16750	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
16751	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
16752	//         "TARGETING_TYPE_GENDER",
16753	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
16754	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
16755	//         "TARGETING_TYPE_PARENTAL_STATUS",
16756	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
16757	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
16758	//         "TARGETING_TYPE_DEVICE_TYPE",
16759	//         "TARGETING_TYPE_AUDIENCE_GROUP",
16760	//         "TARGETING_TYPE_BROWSER",
16761	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
16762	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
16763	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
16764	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
16765	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
16766	//         "TARGETING_TYPE_ENVIRONMENT",
16767	//         "TARGETING_TYPE_CARRIER_AND_ISP",
16768	//         "TARGETING_TYPE_OPERATING_SYSTEM",
16769	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
16770	//         "TARGETING_TYPE_KEYWORD",
16771	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
16772	//         "TARGETING_TYPE_VIEWABILITY",
16773	//         "TARGETING_TYPE_CATEGORY",
16774	//         "TARGETING_TYPE_INVENTORY_SOURCE",
16775	//         "TARGETING_TYPE_LANGUAGE",
16776	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
16777	//         "TARGETING_TYPE_GEO_REGION",
16778	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
16779	//         "TARGETING_TYPE_EXCHANGE",
16780	//         "TARGETING_TYPE_SUB_EXCHANGE"
16781	//       ],
16782	//       "enumDescriptions": [
16783	//         "Default value when type is not specified or is unknown in this version.",
16784	//         "Target a channel (a custom group of related websites or apps).",
16785	//         "Target an app category (for example, education or puzzle games).",
16786	//         "Target a specific app (for example, Angry Birds).",
16787	//         "Target a specific url (for example, quora.com).",
16788	//         "Target ads during a chosen time period on a specific day.",
16789	//         "Target ads to a specific age range (for example, 18-24).",
16790	//         "Target ads to the specified regions on a regional location list.",
16791	//         "Target ads to the specified points of interest on a proximity location list.",
16792	//         "Target ads to a specific gender (for example, female or male).",
16793	//         "Target a specific video player size for video ads.",
16794	//         "Target user rewarded content for video ads.",
16795	//         "Target ads to a specific parental status (for example, parent or not a parent).",
16796	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
16797	//         "Target ads in a specific content outstream position.",
16798	//         "Target ads to a specific device type (for example, tablet or connected TV).",
16799	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
16800	//         "Target ads to specific web browsers (for example, Chrome).",
16801	//         "Target ads to a specific household income range (for example, top 10%).",
16802	//         "Target ads in a specific on screen position.",
16803	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
16804	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
16805	//         "Filter website content by sensitive categories (for example, adult).",
16806	//         "Target ads to a specific environment (for example, web or app).",
16807	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
16808	//         "Target ads to a specific operating system (for example, macOS).",
16809	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
16810	//         "Target ads to a specific keyword (for example, dog or retriever).",
16811	//         "Target ads to a specific negative keyword list.",
16812	//         "Target ads to a specific viewability (for example, 80% viewable).",
16813	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
16814	//         "Purchase impressions from specific deals and auction packages.",
16815	//         "Target ads to a specific language (for example, English or Japanese).",
16816	//         "Target ads to ads.txt authorized sellers.",
16817	//         "Target ads to a specific regional location (for example, a city or state).",
16818	//         "Purchase impressions from a group of deals and auction packages.",
16819	//         "Purchase impressions from specific exchanges.",
16820	//         "Purchase impressions from specific sub-exchanges."
16821	//       ],
16822	//       "location": "path",
16823	//       "pattern": "^[^/]+$",
16824	//       "required": true,
16825	//       "type": "string"
16826	//     }
16827	//   },
16828	//   "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
16829	//   "response": {
16830	//     "$ref": "ListCampaignAssignedTargetingOptionsResponse"
16831	//   },
16832	//   "scopes": [
16833	//     "https://www.googleapis.com/auth/display-video"
16834	//   ]
16835	// }
16836
16837}
16838
16839// Pages invokes f for each page of results.
16840// A non-nil error returned from f will halt the iteration.
16841// The provided context supersedes any context provided to the Context method.
16842func (c *AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsListCall) Pages(ctx context.Context, f func(*ListCampaignAssignedTargetingOptionsResponse) error) error {
16843	c.ctx_ = ctx
16844	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
16845	for {
16846		x, err := c.Do()
16847		if err != nil {
16848			return err
16849		}
16850		if err := f(x); err != nil {
16851			return err
16852		}
16853		if x.NextPageToken == "" {
16854			return nil
16855		}
16856		c.PageToken(x.NextPageToken)
16857	}
16858}
16859
16860// method id "displayvideo.advertisers.channels.create":
16861
16862type AdvertisersChannelsCreateCall struct {
16863	s            *Service
16864	advertiserId int64
16865	channel      *Channel
16866	urlParams_   gensupport.URLParams
16867	ctx_         context.Context
16868	header_      http.Header
16869}
16870
16871// Create: Creates a new channel. Returns the newly created channel if
16872// successful.
16873//
16874// - advertiserId: The ID of the advertiser that owns the created
16875//   channel.
16876func (r *AdvertisersChannelsService) Create(advertiserId int64, channel *Channel) *AdvertisersChannelsCreateCall {
16877	c := &AdvertisersChannelsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
16878	c.advertiserId = advertiserId
16879	c.channel = channel
16880	return c
16881}
16882
16883// PartnerId sets the optional parameter "partnerId": The ID of the
16884// partner that owns the created channel.
16885func (c *AdvertisersChannelsCreateCall) PartnerId(partnerId int64) *AdvertisersChannelsCreateCall {
16886	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
16887	return c
16888}
16889
16890// Fields allows partial responses to be retrieved. See
16891// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
16892// for more information.
16893func (c *AdvertisersChannelsCreateCall) Fields(s ...googleapi.Field) *AdvertisersChannelsCreateCall {
16894	c.urlParams_.Set("fields", googleapi.CombineFields(s))
16895	return c
16896}
16897
16898// Context sets the context to be used in this call's Do method. Any
16899// pending HTTP request will be aborted if the provided context is
16900// canceled.
16901func (c *AdvertisersChannelsCreateCall) Context(ctx context.Context) *AdvertisersChannelsCreateCall {
16902	c.ctx_ = ctx
16903	return c
16904}
16905
16906// Header returns an http.Header that can be modified by the caller to
16907// add HTTP headers to the request.
16908func (c *AdvertisersChannelsCreateCall) Header() http.Header {
16909	if c.header_ == nil {
16910		c.header_ = make(http.Header)
16911	}
16912	return c.header_
16913}
16914
16915func (c *AdvertisersChannelsCreateCall) doRequest(alt string) (*http.Response, error) {
16916	reqHeaders := make(http.Header)
16917	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
16918	for k, v := range c.header_ {
16919		reqHeaders[k] = v
16920	}
16921	reqHeaders.Set("User-Agent", c.s.userAgent())
16922	var body io.Reader = nil
16923	body, err := googleapi.WithoutDataWrapper.JSONReader(c.channel)
16924	if err != nil {
16925		return nil, err
16926	}
16927	reqHeaders.Set("Content-Type", "application/json")
16928	c.urlParams_.Set("alt", alt)
16929	c.urlParams_.Set("prettyPrint", "false")
16930	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/channels")
16931	urls += "?" + c.urlParams_.Encode()
16932	req, err := http.NewRequest("POST", urls, body)
16933	if err != nil {
16934		return nil, err
16935	}
16936	req.Header = reqHeaders
16937	googleapi.Expand(req.URL, map[string]string{
16938		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
16939	})
16940	return gensupport.SendRequest(c.ctx_, c.s.client, req)
16941}
16942
16943// Do executes the "displayvideo.advertisers.channels.create" call.
16944// Exactly one of *Channel or error will be non-nil. Any non-2xx status
16945// code is an error. Response headers are in either
16946// *Channel.ServerResponse.Header or (if a response was returned at all)
16947// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
16948// check whether the returned error was because http.StatusNotModified
16949// was returned.
16950func (c *AdvertisersChannelsCreateCall) Do(opts ...googleapi.CallOption) (*Channel, error) {
16951	gensupport.SetOptions(c.urlParams_, opts...)
16952	res, err := c.doRequest("json")
16953	if res != nil && res.StatusCode == http.StatusNotModified {
16954		if res.Body != nil {
16955			res.Body.Close()
16956		}
16957		return nil, &googleapi.Error{
16958			Code:   res.StatusCode,
16959			Header: res.Header,
16960		}
16961	}
16962	if err != nil {
16963		return nil, err
16964	}
16965	defer googleapi.CloseBody(res)
16966	if err := googleapi.CheckResponse(res); err != nil {
16967		return nil, err
16968	}
16969	ret := &Channel{
16970		ServerResponse: googleapi.ServerResponse{
16971			Header:         res.Header,
16972			HTTPStatusCode: res.StatusCode,
16973		},
16974	}
16975	target := &ret
16976	if err := gensupport.DecodeResponse(target, res); err != nil {
16977		return nil, err
16978	}
16979	return ret, nil
16980	// {
16981	//   "description": "Creates a new channel. Returns the newly created channel if successful.",
16982	//   "flatPath": "v1/advertisers/{advertisersId}/channels",
16983	//   "httpMethod": "POST",
16984	//   "id": "displayvideo.advertisers.channels.create",
16985	//   "parameterOrder": [
16986	//     "advertiserId"
16987	//   ],
16988	//   "parameters": {
16989	//     "advertiserId": {
16990	//       "description": "The ID of the advertiser that owns the created channel.",
16991	//       "format": "int64",
16992	//       "location": "path",
16993	//       "pattern": "^[^/]+$",
16994	//       "required": true,
16995	//       "type": "string"
16996	//     },
16997	//     "partnerId": {
16998	//       "description": "The ID of the partner that owns the created channel.",
16999	//       "format": "int64",
17000	//       "location": "query",
17001	//       "type": "string"
17002	//     }
17003	//   },
17004	//   "path": "v1/advertisers/{+advertiserId}/channels",
17005	//   "request": {
17006	//     "$ref": "Channel"
17007	//   },
17008	//   "response": {
17009	//     "$ref": "Channel"
17010	//   },
17011	//   "scopes": [
17012	//     "https://www.googleapis.com/auth/display-video"
17013	//   ]
17014	// }
17015
17016}
17017
17018// method id "displayvideo.advertisers.channels.get":
17019
17020type AdvertisersChannelsGetCall struct {
17021	s            *Service
17022	advertiserId int64
17023	channelId    int64
17024	urlParams_   gensupport.URLParams
17025	ifNoneMatch_ string
17026	ctx_         context.Context
17027	header_      http.Header
17028}
17029
17030// Get: Gets a channel for a partner or advertiser.
17031//
17032// - advertiserId: The ID of the advertiser that owns the fetched
17033//   channel.
17034// - channelId: The ID of the channel to fetch.
17035func (r *AdvertisersChannelsService) Get(advertiserId int64, channelId int64) *AdvertisersChannelsGetCall {
17036	c := &AdvertisersChannelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17037	c.advertiserId = advertiserId
17038	c.channelId = channelId
17039	return c
17040}
17041
17042// PartnerId sets the optional parameter "partnerId": The ID of the
17043// partner that owns the fetched channel.
17044func (c *AdvertisersChannelsGetCall) PartnerId(partnerId int64) *AdvertisersChannelsGetCall {
17045	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
17046	return c
17047}
17048
17049// Fields allows partial responses to be retrieved. See
17050// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17051// for more information.
17052func (c *AdvertisersChannelsGetCall) Fields(s ...googleapi.Field) *AdvertisersChannelsGetCall {
17053	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17054	return c
17055}
17056
17057// IfNoneMatch sets the optional parameter which makes the operation
17058// fail if the object's ETag matches the given value. This is useful for
17059// getting updates only after the object has changed since the last
17060// request. Use googleapi.IsNotModified to check whether the response
17061// error from Do is the result of In-None-Match.
17062func (c *AdvertisersChannelsGetCall) IfNoneMatch(entityTag string) *AdvertisersChannelsGetCall {
17063	c.ifNoneMatch_ = entityTag
17064	return c
17065}
17066
17067// Context sets the context to be used in this call's Do method. Any
17068// pending HTTP request will be aborted if the provided context is
17069// canceled.
17070func (c *AdvertisersChannelsGetCall) Context(ctx context.Context) *AdvertisersChannelsGetCall {
17071	c.ctx_ = ctx
17072	return c
17073}
17074
17075// Header returns an http.Header that can be modified by the caller to
17076// add HTTP headers to the request.
17077func (c *AdvertisersChannelsGetCall) Header() http.Header {
17078	if c.header_ == nil {
17079		c.header_ = make(http.Header)
17080	}
17081	return c.header_
17082}
17083
17084func (c *AdvertisersChannelsGetCall) doRequest(alt string) (*http.Response, error) {
17085	reqHeaders := make(http.Header)
17086	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
17087	for k, v := range c.header_ {
17088		reqHeaders[k] = v
17089	}
17090	reqHeaders.Set("User-Agent", c.s.userAgent())
17091	if c.ifNoneMatch_ != "" {
17092		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
17093	}
17094	var body io.Reader = nil
17095	c.urlParams_.Set("alt", alt)
17096	c.urlParams_.Set("prettyPrint", "false")
17097	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/channels/{+channelId}")
17098	urls += "?" + c.urlParams_.Encode()
17099	req, err := http.NewRequest("GET", urls, body)
17100	if err != nil {
17101		return nil, err
17102	}
17103	req.Header = reqHeaders
17104	googleapi.Expand(req.URL, map[string]string{
17105		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
17106		"channelId":    strconv.FormatInt(c.channelId, 10),
17107	})
17108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17109}
17110
17111// Do executes the "displayvideo.advertisers.channels.get" call.
17112// Exactly one of *Channel or error will be non-nil. Any non-2xx status
17113// code is an error. Response headers are in either
17114// *Channel.ServerResponse.Header or (if a response was returned at all)
17115// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
17116// check whether the returned error was because http.StatusNotModified
17117// was returned.
17118func (c *AdvertisersChannelsGetCall) Do(opts ...googleapi.CallOption) (*Channel, error) {
17119	gensupport.SetOptions(c.urlParams_, opts...)
17120	res, err := c.doRequest("json")
17121	if res != nil && res.StatusCode == http.StatusNotModified {
17122		if res.Body != nil {
17123			res.Body.Close()
17124		}
17125		return nil, &googleapi.Error{
17126			Code:   res.StatusCode,
17127			Header: res.Header,
17128		}
17129	}
17130	if err != nil {
17131		return nil, err
17132	}
17133	defer googleapi.CloseBody(res)
17134	if err := googleapi.CheckResponse(res); err != nil {
17135		return nil, err
17136	}
17137	ret := &Channel{
17138		ServerResponse: googleapi.ServerResponse{
17139			Header:         res.Header,
17140			HTTPStatusCode: res.StatusCode,
17141		},
17142	}
17143	target := &ret
17144	if err := gensupport.DecodeResponse(target, res); err != nil {
17145		return nil, err
17146	}
17147	return ret, nil
17148	// {
17149	//   "description": "Gets a channel for a partner or advertiser.",
17150	//   "flatPath": "v1/advertisers/{advertisersId}/channels/{channelsId}",
17151	//   "httpMethod": "GET",
17152	//   "id": "displayvideo.advertisers.channels.get",
17153	//   "parameterOrder": [
17154	//     "advertiserId",
17155	//     "channelId"
17156	//   ],
17157	//   "parameters": {
17158	//     "advertiserId": {
17159	//       "description": "The ID of the advertiser that owns the fetched channel.",
17160	//       "format": "int64",
17161	//       "location": "path",
17162	//       "pattern": "^[^/]+$",
17163	//       "required": true,
17164	//       "type": "string"
17165	//     },
17166	//     "channelId": {
17167	//       "description": "Required. The ID of the channel to fetch.",
17168	//       "format": "int64",
17169	//       "location": "path",
17170	//       "pattern": "^[^/]+$",
17171	//       "required": true,
17172	//       "type": "string"
17173	//     },
17174	//     "partnerId": {
17175	//       "description": "The ID of the partner that owns the fetched channel.",
17176	//       "format": "int64",
17177	//       "location": "query",
17178	//       "type": "string"
17179	//     }
17180	//   },
17181	//   "path": "v1/advertisers/{+advertiserId}/channels/{+channelId}",
17182	//   "response": {
17183	//     "$ref": "Channel"
17184	//   },
17185	//   "scopes": [
17186	//     "https://www.googleapis.com/auth/display-video"
17187	//   ]
17188	// }
17189
17190}
17191
17192// method id "displayvideo.advertisers.channels.list":
17193
17194type AdvertisersChannelsListCall struct {
17195	s            *Service
17196	advertiserId int64
17197	urlParams_   gensupport.URLParams
17198	ifNoneMatch_ string
17199	ctx_         context.Context
17200	header_      http.Header
17201}
17202
17203// List: Lists channels for a partner or advertiser.
17204//
17205// - advertiserId: The ID of the advertiser that owns the channels.
17206func (r *AdvertisersChannelsService) List(advertiserId int64) *AdvertisersChannelsListCall {
17207	c := &AdvertisersChannelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17208	c.advertiserId = advertiserId
17209	return c
17210}
17211
17212// Filter sets the optional parameter "filter": Allows filtering by
17213// channel fields. Supported syntax: * Filter expressions for channel
17214// currently can only contain at most one * restriction. * A restriction
17215// has the form of `{field} {operator} {value}`. * The operator must be
17216// `CONTAINS (:)`. * Supported fields: - `displayName` Examples: * All
17217// channels for which the display name contains "google": `displayName :
17218// "google". The length of this field should be no more than 500
17219// characters.
17220func (c *AdvertisersChannelsListCall) Filter(filter string) *AdvertisersChannelsListCall {
17221	c.urlParams_.Set("filter", filter)
17222	return c
17223}
17224
17225// OrderBy sets the optional parameter "orderBy": Field by which to sort
17226// the list. Acceptable values are: * `displayName` (default) *
17227// `channelId` The default sorting order is ascending. To specify
17228// descending order for a field, a suffix " desc" should be added to the
17229// field name. Example: `displayName desc`.
17230func (c *AdvertisersChannelsListCall) OrderBy(orderBy string) *AdvertisersChannelsListCall {
17231	c.urlParams_.Set("orderBy", orderBy)
17232	return c
17233}
17234
17235// PageSize sets the optional parameter "pageSize": Requested page size.
17236// Must be between `1` and `100`. If unspecified will default to `100`.
17237// Returns error code `INVALID_ARGUMENT` if an invalid value is
17238// specified.
17239func (c *AdvertisersChannelsListCall) PageSize(pageSize int64) *AdvertisersChannelsListCall {
17240	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
17241	return c
17242}
17243
17244// PageToken sets the optional parameter "pageToken": A token
17245// identifying a page of results the server should return. Typically,
17246// this is the value of next_page_token returned from the previous call
17247// to `ListChannels` method. If not specified, the first page of results
17248// will be returned.
17249func (c *AdvertisersChannelsListCall) PageToken(pageToken string) *AdvertisersChannelsListCall {
17250	c.urlParams_.Set("pageToken", pageToken)
17251	return c
17252}
17253
17254// PartnerId sets the optional parameter "partnerId": The ID of the
17255// partner that owns the channels.
17256func (c *AdvertisersChannelsListCall) PartnerId(partnerId int64) *AdvertisersChannelsListCall {
17257	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
17258	return c
17259}
17260
17261// Fields allows partial responses to be retrieved. See
17262// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17263// for more information.
17264func (c *AdvertisersChannelsListCall) Fields(s ...googleapi.Field) *AdvertisersChannelsListCall {
17265	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17266	return c
17267}
17268
17269// IfNoneMatch sets the optional parameter which makes the operation
17270// fail if the object's ETag matches the given value. This is useful for
17271// getting updates only after the object has changed since the last
17272// request. Use googleapi.IsNotModified to check whether the response
17273// error from Do is the result of In-None-Match.
17274func (c *AdvertisersChannelsListCall) IfNoneMatch(entityTag string) *AdvertisersChannelsListCall {
17275	c.ifNoneMatch_ = entityTag
17276	return c
17277}
17278
17279// Context sets the context to be used in this call's Do method. Any
17280// pending HTTP request will be aborted if the provided context is
17281// canceled.
17282func (c *AdvertisersChannelsListCall) Context(ctx context.Context) *AdvertisersChannelsListCall {
17283	c.ctx_ = ctx
17284	return c
17285}
17286
17287// Header returns an http.Header that can be modified by the caller to
17288// add HTTP headers to the request.
17289func (c *AdvertisersChannelsListCall) Header() http.Header {
17290	if c.header_ == nil {
17291		c.header_ = make(http.Header)
17292	}
17293	return c.header_
17294}
17295
17296func (c *AdvertisersChannelsListCall) doRequest(alt string) (*http.Response, error) {
17297	reqHeaders := make(http.Header)
17298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
17299	for k, v := range c.header_ {
17300		reqHeaders[k] = v
17301	}
17302	reqHeaders.Set("User-Agent", c.s.userAgent())
17303	if c.ifNoneMatch_ != "" {
17304		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
17305	}
17306	var body io.Reader = nil
17307	c.urlParams_.Set("alt", alt)
17308	c.urlParams_.Set("prettyPrint", "false")
17309	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/channels")
17310	urls += "?" + c.urlParams_.Encode()
17311	req, err := http.NewRequest("GET", urls, body)
17312	if err != nil {
17313		return nil, err
17314	}
17315	req.Header = reqHeaders
17316	googleapi.Expand(req.URL, map[string]string{
17317		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
17318	})
17319	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17320}
17321
17322// Do executes the "displayvideo.advertisers.channels.list" call.
17323// Exactly one of *ListChannelsResponse or error will be non-nil. Any
17324// non-2xx status code is an error. Response headers are in either
17325// *ListChannelsResponse.ServerResponse.Header or (if a response was
17326// returned at all) in error.(*googleapi.Error).Header. Use
17327// googleapi.IsNotModified to check whether the returned error was
17328// because http.StatusNotModified was returned.
17329func (c *AdvertisersChannelsListCall) Do(opts ...googleapi.CallOption) (*ListChannelsResponse, error) {
17330	gensupport.SetOptions(c.urlParams_, opts...)
17331	res, err := c.doRequest("json")
17332	if res != nil && res.StatusCode == http.StatusNotModified {
17333		if res.Body != nil {
17334			res.Body.Close()
17335		}
17336		return nil, &googleapi.Error{
17337			Code:   res.StatusCode,
17338			Header: res.Header,
17339		}
17340	}
17341	if err != nil {
17342		return nil, err
17343	}
17344	defer googleapi.CloseBody(res)
17345	if err := googleapi.CheckResponse(res); err != nil {
17346		return nil, err
17347	}
17348	ret := &ListChannelsResponse{
17349		ServerResponse: googleapi.ServerResponse{
17350			Header:         res.Header,
17351			HTTPStatusCode: res.StatusCode,
17352		},
17353	}
17354	target := &ret
17355	if err := gensupport.DecodeResponse(target, res); err != nil {
17356		return nil, err
17357	}
17358	return ret, nil
17359	// {
17360	//   "description": "Lists channels for a partner or advertiser.",
17361	//   "flatPath": "v1/advertisers/{advertisersId}/channels",
17362	//   "httpMethod": "GET",
17363	//   "id": "displayvideo.advertisers.channels.list",
17364	//   "parameterOrder": [
17365	//     "advertiserId"
17366	//   ],
17367	//   "parameters": {
17368	//     "advertiserId": {
17369	//       "description": "The ID of the advertiser that owns the channels.",
17370	//       "format": "int64",
17371	//       "location": "path",
17372	//       "pattern": "^[^/]+$",
17373	//       "required": true,
17374	//       "type": "string"
17375	//     },
17376	//     "filter": {
17377	//       "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.",
17378	//       "location": "query",
17379	//       "type": "string"
17380	//     },
17381	//     "orderBy": {
17382	//       "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`.",
17383	//       "location": "query",
17384	//       "type": "string"
17385	//     },
17386	//     "pageSize": {
17387	//       "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.",
17388	//       "format": "int32",
17389	//       "location": "query",
17390	//       "type": "integer"
17391	//     },
17392	//     "pageToken": {
17393	//       "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.",
17394	//       "location": "query",
17395	//       "type": "string"
17396	//     },
17397	//     "partnerId": {
17398	//       "description": "The ID of the partner that owns the channels.",
17399	//       "format": "int64",
17400	//       "location": "query",
17401	//       "type": "string"
17402	//     }
17403	//   },
17404	//   "path": "v1/advertisers/{+advertiserId}/channels",
17405	//   "response": {
17406	//     "$ref": "ListChannelsResponse"
17407	//   },
17408	//   "scopes": [
17409	//     "https://www.googleapis.com/auth/display-video"
17410	//   ]
17411	// }
17412
17413}
17414
17415// Pages invokes f for each page of results.
17416// A non-nil error returned from f will halt the iteration.
17417// The provided context supersedes any context provided to the Context method.
17418func (c *AdvertisersChannelsListCall) Pages(ctx context.Context, f func(*ListChannelsResponse) error) error {
17419	c.ctx_ = ctx
17420	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
17421	for {
17422		x, err := c.Do()
17423		if err != nil {
17424			return err
17425		}
17426		if err := f(x); err != nil {
17427			return err
17428		}
17429		if x.NextPageToken == "" {
17430			return nil
17431		}
17432		c.PageToken(x.NextPageToken)
17433	}
17434}
17435
17436// method id "displayvideo.advertisers.channels.patch":
17437
17438type AdvertisersChannelsPatchCall struct {
17439	s            *Service
17440	advertiserId int64
17441	channelId    int64
17442	channel      *Channel
17443	urlParams_   gensupport.URLParams
17444	ctx_         context.Context
17445	header_      http.Header
17446}
17447
17448// Patch: Updates a channel. Returns the updated channel if successful.
17449//
17450// - advertiserId: The ID of the advertiser that owns the created
17451//   channel.
17452// - channelId: Output only. The unique ID of the channel. Assigned by
17453//   the system.
17454func (r *AdvertisersChannelsService) Patch(advertiserId int64, channelId int64, channel *Channel) *AdvertisersChannelsPatchCall {
17455	c := &AdvertisersChannelsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17456	c.advertiserId = advertiserId
17457	c.channelId = channelId
17458	c.channel = channel
17459	return c
17460}
17461
17462// PartnerId sets the optional parameter "partnerId": The ID of the
17463// partner that owns the created channel.
17464func (c *AdvertisersChannelsPatchCall) PartnerId(partnerId int64) *AdvertisersChannelsPatchCall {
17465	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
17466	return c
17467}
17468
17469// UpdateMask sets the optional parameter "updateMask": Required. The
17470// mask to control which fields to update.
17471func (c *AdvertisersChannelsPatchCall) UpdateMask(updateMask string) *AdvertisersChannelsPatchCall {
17472	c.urlParams_.Set("updateMask", updateMask)
17473	return c
17474}
17475
17476// Fields allows partial responses to be retrieved. See
17477// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17478// for more information.
17479func (c *AdvertisersChannelsPatchCall) Fields(s ...googleapi.Field) *AdvertisersChannelsPatchCall {
17480	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17481	return c
17482}
17483
17484// Context sets the context to be used in this call's Do method. Any
17485// pending HTTP request will be aborted if the provided context is
17486// canceled.
17487func (c *AdvertisersChannelsPatchCall) Context(ctx context.Context) *AdvertisersChannelsPatchCall {
17488	c.ctx_ = ctx
17489	return c
17490}
17491
17492// Header returns an http.Header that can be modified by the caller to
17493// add HTTP headers to the request.
17494func (c *AdvertisersChannelsPatchCall) Header() http.Header {
17495	if c.header_ == nil {
17496		c.header_ = make(http.Header)
17497	}
17498	return c.header_
17499}
17500
17501func (c *AdvertisersChannelsPatchCall) doRequest(alt string) (*http.Response, error) {
17502	reqHeaders := make(http.Header)
17503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
17504	for k, v := range c.header_ {
17505		reqHeaders[k] = v
17506	}
17507	reqHeaders.Set("User-Agent", c.s.userAgent())
17508	var body io.Reader = nil
17509	body, err := googleapi.WithoutDataWrapper.JSONReader(c.channel)
17510	if err != nil {
17511		return nil, err
17512	}
17513	reqHeaders.Set("Content-Type", "application/json")
17514	c.urlParams_.Set("alt", alt)
17515	c.urlParams_.Set("prettyPrint", "false")
17516	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/channels/{channelId}")
17517	urls += "?" + c.urlParams_.Encode()
17518	req, err := http.NewRequest("PATCH", urls, body)
17519	if err != nil {
17520		return nil, err
17521	}
17522	req.Header = reqHeaders
17523	googleapi.Expand(req.URL, map[string]string{
17524		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
17525		"channelId":    strconv.FormatInt(c.channelId, 10),
17526	})
17527	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17528}
17529
17530// Do executes the "displayvideo.advertisers.channels.patch" call.
17531// Exactly one of *Channel or error will be non-nil. Any non-2xx status
17532// code is an error. Response headers are in either
17533// *Channel.ServerResponse.Header or (if a response was returned at all)
17534// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
17535// check whether the returned error was because http.StatusNotModified
17536// was returned.
17537func (c *AdvertisersChannelsPatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) {
17538	gensupport.SetOptions(c.urlParams_, opts...)
17539	res, err := c.doRequest("json")
17540	if res != nil && res.StatusCode == http.StatusNotModified {
17541		if res.Body != nil {
17542			res.Body.Close()
17543		}
17544		return nil, &googleapi.Error{
17545			Code:   res.StatusCode,
17546			Header: res.Header,
17547		}
17548	}
17549	if err != nil {
17550		return nil, err
17551	}
17552	defer googleapi.CloseBody(res)
17553	if err := googleapi.CheckResponse(res); err != nil {
17554		return nil, err
17555	}
17556	ret := &Channel{
17557		ServerResponse: googleapi.ServerResponse{
17558			Header:         res.Header,
17559			HTTPStatusCode: res.StatusCode,
17560		},
17561	}
17562	target := &ret
17563	if err := gensupport.DecodeResponse(target, res); err != nil {
17564		return nil, err
17565	}
17566	return ret, nil
17567	// {
17568	//   "description": "Updates a channel. Returns the updated channel if successful.",
17569	//   "flatPath": "v1/advertisers/{advertisersId}/channels/{channelId}",
17570	//   "httpMethod": "PATCH",
17571	//   "id": "displayvideo.advertisers.channels.patch",
17572	//   "parameterOrder": [
17573	//     "advertiserId",
17574	//     "channelId"
17575	//   ],
17576	//   "parameters": {
17577	//     "advertiserId": {
17578	//       "description": "The ID of the advertiser that owns the created channel.",
17579	//       "format": "int64",
17580	//       "location": "path",
17581	//       "pattern": "^[^/]+$",
17582	//       "required": true,
17583	//       "type": "string"
17584	//     },
17585	//     "channelId": {
17586	//       "description": "Output only. The unique ID of the channel. Assigned by the system.",
17587	//       "format": "int64",
17588	//       "location": "path",
17589	//       "required": true,
17590	//       "type": "string"
17591	//     },
17592	//     "partnerId": {
17593	//       "description": "The ID of the partner that owns the created channel.",
17594	//       "format": "int64",
17595	//       "location": "query",
17596	//       "type": "string"
17597	//     },
17598	//     "updateMask": {
17599	//       "description": "Required. The mask to control which fields to update.",
17600	//       "format": "google-fieldmask",
17601	//       "location": "query",
17602	//       "type": "string"
17603	//     }
17604	//   },
17605	//   "path": "v1/advertisers/{+advertiserId}/channels/{channelId}",
17606	//   "request": {
17607	//     "$ref": "Channel"
17608	//   },
17609	//   "response": {
17610	//     "$ref": "Channel"
17611	//   },
17612	//   "scopes": [
17613	//     "https://www.googleapis.com/auth/display-video"
17614	//   ]
17615	// }
17616
17617}
17618
17619// method id "displayvideo.advertisers.channels.sites.bulkEdit":
17620
17621type AdvertisersChannelsSitesBulkEditCall struct {
17622	s                    *Service
17623	advertiserId         int64
17624	channelId            int64
17625	bulkeditsitesrequest *BulkEditSitesRequest
17626	urlParams_           gensupport.URLParams
17627	ctx_                 context.Context
17628	header_              http.Header
17629}
17630
17631// BulkEdit: Bulk edits sites under a single channel. The operation will
17632// delete the sites provided in BulkEditSitesRequest.deleted_sites and
17633// then create the sites provided in BulkEditSitesRequest.created_sites.
17634//
17635// - advertiserId: The ID of the advertiser that owns the parent
17636//   channel.
17637// - channelId: The ID of the parent channel to which the sites belong.
17638func (r *AdvertisersChannelsSitesService) BulkEdit(advertiserId int64, channelId int64, bulkeditsitesrequest *BulkEditSitesRequest) *AdvertisersChannelsSitesBulkEditCall {
17639	c := &AdvertisersChannelsSitesBulkEditCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17640	c.advertiserId = advertiserId
17641	c.channelId = channelId
17642	c.bulkeditsitesrequest = bulkeditsitesrequest
17643	return c
17644}
17645
17646// Fields allows partial responses to be retrieved. See
17647// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17648// for more information.
17649func (c *AdvertisersChannelsSitesBulkEditCall) Fields(s ...googleapi.Field) *AdvertisersChannelsSitesBulkEditCall {
17650	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17651	return c
17652}
17653
17654// Context sets the context to be used in this call's Do method. Any
17655// pending HTTP request will be aborted if the provided context is
17656// canceled.
17657func (c *AdvertisersChannelsSitesBulkEditCall) Context(ctx context.Context) *AdvertisersChannelsSitesBulkEditCall {
17658	c.ctx_ = ctx
17659	return c
17660}
17661
17662// Header returns an http.Header that can be modified by the caller to
17663// add HTTP headers to the request.
17664func (c *AdvertisersChannelsSitesBulkEditCall) Header() http.Header {
17665	if c.header_ == nil {
17666		c.header_ = make(http.Header)
17667	}
17668	return c.header_
17669}
17670
17671func (c *AdvertisersChannelsSitesBulkEditCall) doRequest(alt string) (*http.Response, error) {
17672	reqHeaders := make(http.Header)
17673	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
17674	for k, v := range c.header_ {
17675		reqHeaders[k] = v
17676	}
17677	reqHeaders.Set("User-Agent", c.s.userAgent())
17678	var body io.Reader = nil
17679	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditsitesrequest)
17680	if err != nil {
17681		return nil, err
17682	}
17683	reqHeaders.Set("Content-Type", "application/json")
17684	c.urlParams_.Set("alt", alt)
17685	c.urlParams_.Set("prettyPrint", "false")
17686	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/channels/{+channelId}/sites:bulkEdit")
17687	urls += "?" + c.urlParams_.Encode()
17688	req, err := http.NewRequest("POST", urls, body)
17689	if err != nil {
17690		return nil, err
17691	}
17692	req.Header = reqHeaders
17693	googleapi.Expand(req.URL, map[string]string{
17694		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
17695		"channelId":    strconv.FormatInt(c.channelId, 10),
17696	})
17697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17698}
17699
17700// Do executes the "displayvideo.advertisers.channels.sites.bulkEdit" call.
17701// Exactly one of *BulkEditSitesResponse or error will be non-nil. Any
17702// non-2xx status code is an error. Response headers are in either
17703// *BulkEditSitesResponse.ServerResponse.Header or (if a response was
17704// returned at all) in error.(*googleapi.Error).Header. Use
17705// googleapi.IsNotModified to check whether the returned error was
17706// because http.StatusNotModified was returned.
17707func (c *AdvertisersChannelsSitesBulkEditCall) Do(opts ...googleapi.CallOption) (*BulkEditSitesResponse, error) {
17708	gensupport.SetOptions(c.urlParams_, opts...)
17709	res, err := c.doRequest("json")
17710	if res != nil && res.StatusCode == http.StatusNotModified {
17711		if res.Body != nil {
17712			res.Body.Close()
17713		}
17714		return nil, &googleapi.Error{
17715			Code:   res.StatusCode,
17716			Header: res.Header,
17717		}
17718	}
17719	if err != nil {
17720		return nil, err
17721	}
17722	defer googleapi.CloseBody(res)
17723	if err := googleapi.CheckResponse(res); err != nil {
17724		return nil, err
17725	}
17726	ret := &BulkEditSitesResponse{
17727		ServerResponse: googleapi.ServerResponse{
17728			Header:         res.Header,
17729			HTTPStatusCode: res.StatusCode,
17730		},
17731	}
17732	target := &ret
17733	if err := gensupport.DecodeResponse(target, res); err != nil {
17734		return nil, err
17735	}
17736	return ret, nil
17737	// {
17738	//   "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.",
17739	//   "flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites:bulkEdit",
17740	//   "httpMethod": "POST",
17741	//   "id": "displayvideo.advertisers.channels.sites.bulkEdit",
17742	//   "parameterOrder": [
17743	//     "advertiserId",
17744	//     "channelId"
17745	//   ],
17746	//   "parameters": {
17747	//     "advertiserId": {
17748	//       "description": "The ID of the advertiser that owns the parent channel.",
17749	//       "format": "int64",
17750	//       "location": "path",
17751	//       "required": true,
17752	//       "type": "string"
17753	//     },
17754	//     "channelId": {
17755	//       "description": "Required. The ID of the parent channel to which the sites belong.",
17756	//       "format": "int64",
17757	//       "location": "path",
17758	//       "pattern": "^[^/]+$",
17759	//       "required": true,
17760	//       "type": "string"
17761	//     }
17762	//   },
17763	//   "path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites:bulkEdit",
17764	//   "request": {
17765	//     "$ref": "BulkEditSitesRequest"
17766	//   },
17767	//   "response": {
17768	//     "$ref": "BulkEditSitesResponse"
17769	//   },
17770	//   "scopes": [
17771	//     "https://www.googleapis.com/auth/display-video"
17772	//   ]
17773	// }
17774
17775}
17776
17777// method id "displayvideo.advertisers.channels.sites.create":
17778
17779type AdvertisersChannelsSitesCreateCall struct {
17780	s            *Service
17781	advertiserId int64
17782	channelId    int64
17783	site         *Site
17784	urlParams_   gensupport.URLParams
17785	ctx_         context.Context
17786	header_      http.Header
17787}
17788
17789// Create: Creates a site in a channel.
17790//
17791// - advertiserId: The ID of the advertiser that owns the parent
17792//   channel.
17793// - channelId: The ID of the parent channel in which the site will be
17794//   created.
17795func (r *AdvertisersChannelsSitesService) Create(advertiserId int64, channelId int64, site *Site) *AdvertisersChannelsSitesCreateCall {
17796	c := &AdvertisersChannelsSitesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17797	c.advertiserId = advertiserId
17798	c.channelId = channelId
17799	c.site = site
17800	return c
17801}
17802
17803// PartnerId sets the optional parameter "partnerId": The ID of the
17804// partner that owns the parent channel.
17805func (c *AdvertisersChannelsSitesCreateCall) PartnerId(partnerId int64) *AdvertisersChannelsSitesCreateCall {
17806	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
17807	return c
17808}
17809
17810// Fields allows partial responses to be retrieved. See
17811// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17812// for more information.
17813func (c *AdvertisersChannelsSitesCreateCall) Fields(s ...googleapi.Field) *AdvertisersChannelsSitesCreateCall {
17814	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17815	return c
17816}
17817
17818// Context sets the context to be used in this call's Do method. Any
17819// pending HTTP request will be aborted if the provided context is
17820// canceled.
17821func (c *AdvertisersChannelsSitesCreateCall) Context(ctx context.Context) *AdvertisersChannelsSitesCreateCall {
17822	c.ctx_ = ctx
17823	return c
17824}
17825
17826// Header returns an http.Header that can be modified by the caller to
17827// add HTTP headers to the request.
17828func (c *AdvertisersChannelsSitesCreateCall) Header() http.Header {
17829	if c.header_ == nil {
17830		c.header_ = make(http.Header)
17831	}
17832	return c.header_
17833}
17834
17835func (c *AdvertisersChannelsSitesCreateCall) doRequest(alt string) (*http.Response, error) {
17836	reqHeaders := make(http.Header)
17837	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
17838	for k, v := range c.header_ {
17839		reqHeaders[k] = v
17840	}
17841	reqHeaders.Set("User-Agent", c.s.userAgent())
17842	var body io.Reader = nil
17843	body, err := googleapi.WithoutDataWrapper.JSONReader(c.site)
17844	if err != nil {
17845		return nil, err
17846	}
17847	reqHeaders.Set("Content-Type", "application/json")
17848	c.urlParams_.Set("alt", alt)
17849	c.urlParams_.Set("prettyPrint", "false")
17850	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/channels/{+channelId}/sites")
17851	urls += "?" + c.urlParams_.Encode()
17852	req, err := http.NewRequest("POST", urls, body)
17853	if err != nil {
17854		return nil, err
17855	}
17856	req.Header = reqHeaders
17857	googleapi.Expand(req.URL, map[string]string{
17858		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
17859		"channelId":    strconv.FormatInt(c.channelId, 10),
17860	})
17861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
17862}
17863
17864// Do executes the "displayvideo.advertisers.channels.sites.create" call.
17865// Exactly one of *Site or error will be non-nil. Any non-2xx status
17866// code is an error. Response headers are in either
17867// *Site.ServerResponse.Header or (if a response was returned at all) in
17868// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
17869// whether the returned error was because http.StatusNotModified was
17870// returned.
17871func (c *AdvertisersChannelsSitesCreateCall) Do(opts ...googleapi.CallOption) (*Site, error) {
17872	gensupport.SetOptions(c.urlParams_, opts...)
17873	res, err := c.doRequest("json")
17874	if res != nil && res.StatusCode == http.StatusNotModified {
17875		if res.Body != nil {
17876			res.Body.Close()
17877		}
17878		return nil, &googleapi.Error{
17879			Code:   res.StatusCode,
17880			Header: res.Header,
17881		}
17882	}
17883	if err != nil {
17884		return nil, err
17885	}
17886	defer googleapi.CloseBody(res)
17887	if err := googleapi.CheckResponse(res); err != nil {
17888		return nil, err
17889	}
17890	ret := &Site{
17891		ServerResponse: googleapi.ServerResponse{
17892			Header:         res.Header,
17893			HTTPStatusCode: res.StatusCode,
17894		},
17895	}
17896	target := &ret
17897	if err := gensupport.DecodeResponse(target, res); err != nil {
17898		return nil, err
17899	}
17900	return ret, nil
17901	// {
17902	//   "description": "Creates a site in a channel.",
17903	//   "flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites",
17904	//   "httpMethod": "POST",
17905	//   "id": "displayvideo.advertisers.channels.sites.create",
17906	//   "parameterOrder": [
17907	//     "advertiserId",
17908	//     "channelId"
17909	//   ],
17910	//   "parameters": {
17911	//     "advertiserId": {
17912	//       "description": "The ID of the advertiser that owns the parent channel.",
17913	//       "format": "int64",
17914	//       "location": "path",
17915	//       "required": true,
17916	//       "type": "string"
17917	//     },
17918	//     "channelId": {
17919	//       "description": "Required. The ID of the parent channel in which the site will be created.",
17920	//       "format": "int64",
17921	//       "location": "path",
17922	//       "pattern": "^[^/]+$",
17923	//       "required": true,
17924	//       "type": "string"
17925	//     },
17926	//     "partnerId": {
17927	//       "description": "The ID of the partner that owns the parent channel.",
17928	//       "format": "int64",
17929	//       "location": "query",
17930	//       "type": "string"
17931	//     }
17932	//   },
17933	//   "path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites",
17934	//   "request": {
17935	//     "$ref": "Site"
17936	//   },
17937	//   "response": {
17938	//     "$ref": "Site"
17939	//   },
17940	//   "scopes": [
17941	//     "https://www.googleapis.com/auth/display-video"
17942	//   ]
17943	// }
17944
17945}
17946
17947// method id "displayvideo.advertisers.channels.sites.delete":
17948
17949type AdvertisersChannelsSitesDeleteCall struct {
17950	s            *Service
17951	advertiserId int64
17952	channelId    int64
17953	urlOrAppId   string
17954	urlParams_   gensupport.URLParams
17955	ctx_         context.Context
17956	header_      http.Header
17957}
17958
17959// Delete: Deletes a site from a channel.
17960//
17961// - advertiserId: The ID of the advertiser that owns the parent
17962//   channel.
17963// - channelId: The ID of the parent channel to which the site belongs.
17964// - urlOrAppId: The URL or app ID of the site to delete.
17965func (r *AdvertisersChannelsSitesService) Delete(advertiserId int64, channelId int64, urlOrAppId string) *AdvertisersChannelsSitesDeleteCall {
17966	c := &AdvertisersChannelsSitesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
17967	c.advertiserId = advertiserId
17968	c.channelId = channelId
17969	c.urlOrAppId = urlOrAppId
17970	return c
17971}
17972
17973// PartnerId sets the optional parameter "partnerId": The ID of the
17974// partner that owns the parent channel.
17975func (c *AdvertisersChannelsSitesDeleteCall) PartnerId(partnerId int64) *AdvertisersChannelsSitesDeleteCall {
17976	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
17977	return c
17978}
17979
17980// Fields allows partial responses to be retrieved. See
17981// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
17982// for more information.
17983func (c *AdvertisersChannelsSitesDeleteCall) Fields(s ...googleapi.Field) *AdvertisersChannelsSitesDeleteCall {
17984	c.urlParams_.Set("fields", googleapi.CombineFields(s))
17985	return c
17986}
17987
17988// Context sets the context to be used in this call's Do method. Any
17989// pending HTTP request will be aborted if the provided context is
17990// canceled.
17991func (c *AdvertisersChannelsSitesDeleteCall) Context(ctx context.Context) *AdvertisersChannelsSitesDeleteCall {
17992	c.ctx_ = ctx
17993	return c
17994}
17995
17996// Header returns an http.Header that can be modified by the caller to
17997// add HTTP headers to the request.
17998func (c *AdvertisersChannelsSitesDeleteCall) Header() http.Header {
17999	if c.header_ == nil {
18000		c.header_ = make(http.Header)
18001	}
18002	return c.header_
18003}
18004
18005func (c *AdvertisersChannelsSitesDeleteCall) doRequest(alt string) (*http.Response, error) {
18006	reqHeaders := make(http.Header)
18007	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
18008	for k, v := range c.header_ {
18009		reqHeaders[k] = v
18010	}
18011	reqHeaders.Set("User-Agent", c.s.userAgent())
18012	var body io.Reader = nil
18013	c.urlParams_.Set("alt", alt)
18014	c.urlParams_.Set("prettyPrint", "false")
18015	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/channels/{+channelId}/sites/{+urlOrAppId}")
18016	urls += "?" + c.urlParams_.Encode()
18017	req, err := http.NewRequest("DELETE", urls, body)
18018	if err != nil {
18019		return nil, err
18020	}
18021	req.Header = reqHeaders
18022	googleapi.Expand(req.URL, map[string]string{
18023		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
18024		"channelId":    strconv.FormatInt(c.channelId, 10),
18025		"urlOrAppId":   c.urlOrAppId,
18026	})
18027	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18028}
18029
18030// Do executes the "displayvideo.advertisers.channels.sites.delete" call.
18031// Exactly one of *Empty or error will be non-nil. Any non-2xx status
18032// code is an error. Response headers are in either
18033// *Empty.ServerResponse.Header or (if a response was returned at all)
18034// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
18035// check whether the returned error was because http.StatusNotModified
18036// was returned.
18037func (c *AdvertisersChannelsSitesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
18038	gensupport.SetOptions(c.urlParams_, opts...)
18039	res, err := c.doRequest("json")
18040	if res != nil && res.StatusCode == http.StatusNotModified {
18041		if res.Body != nil {
18042			res.Body.Close()
18043		}
18044		return nil, &googleapi.Error{
18045			Code:   res.StatusCode,
18046			Header: res.Header,
18047		}
18048	}
18049	if err != nil {
18050		return nil, err
18051	}
18052	defer googleapi.CloseBody(res)
18053	if err := googleapi.CheckResponse(res); err != nil {
18054		return nil, err
18055	}
18056	ret := &Empty{
18057		ServerResponse: googleapi.ServerResponse{
18058			Header:         res.Header,
18059			HTTPStatusCode: res.StatusCode,
18060		},
18061	}
18062	target := &ret
18063	if err := gensupport.DecodeResponse(target, res); err != nil {
18064		return nil, err
18065	}
18066	return ret, nil
18067	// {
18068	//   "description": "Deletes a site from a channel.",
18069	//   "flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites/{sitesId}",
18070	//   "httpMethod": "DELETE",
18071	//   "id": "displayvideo.advertisers.channels.sites.delete",
18072	//   "parameterOrder": [
18073	//     "advertiserId",
18074	//     "channelId",
18075	//     "urlOrAppId"
18076	//   ],
18077	//   "parameters": {
18078	//     "advertiserId": {
18079	//       "description": "The ID of the advertiser that owns the parent channel.",
18080	//       "format": "int64",
18081	//       "location": "path",
18082	//       "required": true,
18083	//       "type": "string"
18084	//     },
18085	//     "channelId": {
18086	//       "description": "Required. The ID of the parent channel to which the site belongs.",
18087	//       "format": "int64",
18088	//       "location": "path",
18089	//       "pattern": "^[^/]+$",
18090	//       "required": true,
18091	//       "type": "string"
18092	//     },
18093	//     "partnerId": {
18094	//       "description": "The ID of the partner that owns the parent channel.",
18095	//       "format": "int64",
18096	//       "location": "query",
18097	//       "type": "string"
18098	//     },
18099	//     "urlOrAppId": {
18100	//       "description": "Required. The URL or app ID of the site to delete.",
18101	//       "location": "path",
18102	//       "pattern": "^[^/]+$",
18103	//       "required": true,
18104	//       "type": "string"
18105	//     }
18106	//   },
18107	//   "path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites/{+urlOrAppId}",
18108	//   "response": {
18109	//     "$ref": "Empty"
18110	//   },
18111	//   "scopes": [
18112	//     "https://www.googleapis.com/auth/display-video"
18113	//   ]
18114	// }
18115
18116}
18117
18118// method id "displayvideo.advertisers.channels.sites.list":
18119
18120type AdvertisersChannelsSitesListCall struct {
18121	s            *Service
18122	advertiserId int64
18123	channelId    int64
18124	urlParams_   gensupport.URLParams
18125	ifNoneMatch_ string
18126	ctx_         context.Context
18127	header_      http.Header
18128}
18129
18130// List: Lists sites in a channel.
18131//
18132// - advertiserId: The ID of the advertiser that owns the parent
18133//   channel.
18134// - channelId: The ID of the parent channel to which the requested
18135//   sites belong.
18136func (r *AdvertisersChannelsSitesService) List(advertiserId int64, channelId int64) *AdvertisersChannelsSitesListCall {
18137	c := &AdvertisersChannelsSitesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18138	c.advertiserId = advertiserId
18139	c.channelId = channelId
18140	return c
18141}
18142
18143// Filter sets the optional parameter "filter": Allows filtering by site
18144// fields. Supported syntax: * Filter expressions for site currently can
18145// only contain at most one * restriction. * A restriction has the form
18146// of `{field} {operator} {value}`. * The operator must be `CONTAINS
18147// (:)`. * Supported fields: - `urlOrAppId` Examples: * All sites for
18148// which the URL or app ID contains "google": `urlOrAppId : "google"
18149func (c *AdvertisersChannelsSitesListCall) Filter(filter string) *AdvertisersChannelsSitesListCall {
18150	c.urlParams_.Set("filter", filter)
18151	return c
18152}
18153
18154// OrderBy sets the optional parameter "orderBy": Field by which to sort
18155// the list. Acceptable values are: * `urlOrAppId` (default) The default
18156// sorting order is ascending. To specify descending order for a field,
18157// a suffix " desc" should be added to the field name. Example:
18158// `urlOrAppId desc`.
18159func (c *AdvertisersChannelsSitesListCall) OrderBy(orderBy string) *AdvertisersChannelsSitesListCall {
18160	c.urlParams_.Set("orderBy", orderBy)
18161	return c
18162}
18163
18164// PageSize sets the optional parameter "pageSize": Requested page size.
18165// Must be between `1` and `10000`. If unspecified will default to
18166// `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is
18167// specified.
18168func (c *AdvertisersChannelsSitesListCall) PageSize(pageSize int64) *AdvertisersChannelsSitesListCall {
18169	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
18170	return c
18171}
18172
18173// PageToken sets the optional parameter "pageToken": A token
18174// identifying a page of results the server should return. Typically,
18175// this is the value of next_page_token returned from the previous call
18176// to `ListSites` method. If not specified, the first page of results
18177// will be returned.
18178func (c *AdvertisersChannelsSitesListCall) PageToken(pageToken string) *AdvertisersChannelsSitesListCall {
18179	c.urlParams_.Set("pageToken", pageToken)
18180	return c
18181}
18182
18183// PartnerId sets the optional parameter "partnerId": The ID of the
18184// partner that owns the parent channel.
18185func (c *AdvertisersChannelsSitesListCall) PartnerId(partnerId int64) *AdvertisersChannelsSitesListCall {
18186	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
18187	return c
18188}
18189
18190// Fields allows partial responses to be retrieved. See
18191// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18192// for more information.
18193func (c *AdvertisersChannelsSitesListCall) Fields(s ...googleapi.Field) *AdvertisersChannelsSitesListCall {
18194	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18195	return c
18196}
18197
18198// IfNoneMatch sets the optional parameter which makes the operation
18199// fail if the object's ETag matches the given value. This is useful for
18200// getting updates only after the object has changed since the last
18201// request. Use googleapi.IsNotModified to check whether the response
18202// error from Do is the result of In-None-Match.
18203func (c *AdvertisersChannelsSitesListCall) IfNoneMatch(entityTag string) *AdvertisersChannelsSitesListCall {
18204	c.ifNoneMatch_ = entityTag
18205	return c
18206}
18207
18208// Context sets the context to be used in this call's Do method. Any
18209// pending HTTP request will be aborted if the provided context is
18210// canceled.
18211func (c *AdvertisersChannelsSitesListCall) Context(ctx context.Context) *AdvertisersChannelsSitesListCall {
18212	c.ctx_ = ctx
18213	return c
18214}
18215
18216// Header returns an http.Header that can be modified by the caller to
18217// add HTTP headers to the request.
18218func (c *AdvertisersChannelsSitesListCall) Header() http.Header {
18219	if c.header_ == nil {
18220		c.header_ = make(http.Header)
18221	}
18222	return c.header_
18223}
18224
18225func (c *AdvertisersChannelsSitesListCall) doRequest(alt string) (*http.Response, error) {
18226	reqHeaders := make(http.Header)
18227	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
18228	for k, v := range c.header_ {
18229		reqHeaders[k] = v
18230	}
18231	reqHeaders.Set("User-Agent", c.s.userAgent())
18232	if c.ifNoneMatch_ != "" {
18233		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
18234	}
18235	var body io.Reader = nil
18236	c.urlParams_.Set("alt", alt)
18237	c.urlParams_.Set("prettyPrint", "false")
18238	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/channels/{+channelId}/sites")
18239	urls += "?" + c.urlParams_.Encode()
18240	req, err := http.NewRequest("GET", urls, body)
18241	if err != nil {
18242		return nil, err
18243	}
18244	req.Header = reqHeaders
18245	googleapi.Expand(req.URL, map[string]string{
18246		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
18247		"channelId":    strconv.FormatInt(c.channelId, 10),
18248	})
18249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18250}
18251
18252// Do executes the "displayvideo.advertisers.channels.sites.list" call.
18253// Exactly one of *ListSitesResponse or error will be non-nil. Any
18254// non-2xx status code is an error. Response headers are in either
18255// *ListSitesResponse.ServerResponse.Header or (if a response was
18256// returned at all) in error.(*googleapi.Error).Header. Use
18257// googleapi.IsNotModified to check whether the returned error was
18258// because http.StatusNotModified was returned.
18259func (c *AdvertisersChannelsSitesListCall) Do(opts ...googleapi.CallOption) (*ListSitesResponse, error) {
18260	gensupport.SetOptions(c.urlParams_, opts...)
18261	res, err := c.doRequest("json")
18262	if res != nil && res.StatusCode == http.StatusNotModified {
18263		if res.Body != nil {
18264			res.Body.Close()
18265		}
18266		return nil, &googleapi.Error{
18267			Code:   res.StatusCode,
18268			Header: res.Header,
18269		}
18270	}
18271	if err != nil {
18272		return nil, err
18273	}
18274	defer googleapi.CloseBody(res)
18275	if err := googleapi.CheckResponse(res); err != nil {
18276		return nil, err
18277	}
18278	ret := &ListSitesResponse{
18279		ServerResponse: googleapi.ServerResponse{
18280			Header:         res.Header,
18281			HTTPStatusCode: res.StatusCode,
18282		},
18283	}
18284	target := &ret
18285	if err := gensupport.DecodeResponse(target, res); err != nil {
18286		return nil, err
18287	}
18288	return ret, nil
18289	// {
18290	//   "description": "Lists sites in a channel.",
18291	//   "flatPath": "v1/advertisers/{advertisersId}/channels/{channelsId}/sites",
18292	//   "httpMethod": "GET",
18293	//   "id": "displayvideo.advertisers.channels.sites.list",
18294	//   "parameterOrder": [
18295	//     "advertiserId",
18296	//     "channelId"
18297	//   ],
18298	//   "parameters": {
18299	//     "advertiserId": {
18300	//       "description": "The ID of the advertiser that owns the parent channel.",
18301	//       "format": "int64",
18302	//       "location": "path",
18303	//       "pattern": "^[^/]+$",
18304	//       "required": true,
18305	//       "type": "string"
18306	//     },
18307	//     "channelId": {
18308	//       "description": "Required. The ID of the parent channel to which the requested sites belong.",
18309	//       "format": "int64",
18310	//       "location": "path",
18311	//       "pattern": "^[^/]+$",
18312	//       "required": true,
18313	//       "type": "string"
18314	//     },
18315	//     "filter": {
18316	//       "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\"`",
18317	//       "location": "query",
18318	//       "type": "string"
18319	//     },
18320	//     "orderBy": {
18321	//       "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`.",
18322	//       "location": "query",
18323	//       "type": "string"
18324	//     },
18325	//     "pageSize": {
18326	//       "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.",
18327	//       "format": "int32",
18328	//       "location": "query",
18329	//       "type": "integer"
18330	//     },
18331	//     "pageToken": {
18332	//       "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.",
18333	//       "location": "query",
18334	//       "type": "string"
18335	//     },
18336	//     "partnerId": {
18337	//       "description": "The ID of the partner that owns the parent channel.",
18338	//       "format": "int64",
18339	//       "location": "query",
18340	//       "type": "string"
18341	//     }
18342	//   },
18343	//   "path": "v1/advertisers/{+advertiserId}/channels/{+channelId}/sites",
18344	//   "response": {
18345	//     "$ref": "ListSitesResponse"
18346	//   },
18347	//   "scopes": [
18348	//     "https://www.googleapis.com/auth/display-video"
18349	//   ]
18350	// }
18351
18352}
18353
18354// Pages invokes f for each page of results.
18355// A non-nil error returned from f will halt the iteration.
18356// The provided context supersedes any context provided to the Context method.
18357func (c *AdvertisersChannelsSitesListCall) Pages(ctx context.Context, f func(*ListSitesResponse) error) error {
18358	c.ctx_ = ctx
18359	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
18360	for {
18361		x, err := c.Do()
18362		if err != nil {
18363			return err
18364		}
18365		if err := f(x); err != nil {
18366			return err
18367		}
18368		if x.NextPageToken == "" {
18369			return nil
18370		}
18371		c.PageToken(x.NextPageToken)
18372	}
18373}
18374
18375// method id "displayvideo.advertisers.channels.sites.replace":
18376
18377type AdvertisersChannelsSitesReplaceCall struct {
18378	s                   *Service
18379	advertiserId        int64
18380	channelId           int64
18381	replacesitesrequest *ReplaceSitesRequest
18382	urlParams_          gensupport.URLParams
18383	ctx_                context.Context
18384	header_             http.Header
18385}
18386
18387// Replace: Replaces all of the sites under a single channel. The
18388// operation will replace the sites under a channel with the sites
18389// provided in ReplaceSitesRequest.new_sites.
18390//
18391// - advertiserId: The ID of the advertiser that owns the parent
18392//   channel.
18393// - channelId: The ID of the parent channel whose sites will be
18394//   replaced.
18395func (r *AdvertisersChannelsSitesService) Replace(advertiserId int64, channelId int64, replacesitesrequest *ReplaceSitesRequest) *AdvertisersChannelsSitesReplaceCall {
18396	c := &AdvertisersChannelsSitesReplaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18397	c.advertiserId = advertiserId
18398	c.channelId = channelId
18399	c.replacesitesrequest = replacesitesrequest
18400	return c
18401}
18402
18403// Fields allows partial responses to be retrieved. See
18404// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18405// for more information.
18406func (c *AdvertisersChannelsSitesReplaceCall) Fields(s ...googleapi.Field) *AdvertisersChannelsSitesReplaceCall {
18407	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18408	return c
18409}
18410
18411// Context sets the context to be used in this call's Do method. Any
18412// pending HTTP request will be aborted if the provided context is
18413// canceled.
18414func (c *AdvertisersChannelsSitesReplaceCall) Context(ctx context.Context) *AdvertisersChannelsSitesReplaceCall {
18415	c.ctx_ = ctx
18416	return c
18417}
18418
18419// Header returns an http.Header that can be modified by the caller to
18420// add HTTP headers to the request.
18421func (c *AdvertisersChannelsSitesReplaceCall) Header() http.Header {
18422	if c.header_ == nil {
18423		c.header_ = make(http.Header)
18424	}
18425	return c.header_
18426}
18427
18428func (c *AdvertisersChannelsSitesReplaceCall) doRequest(alt string) (*http.Response, error) {
18429	reqHeaders := make(http.Header)
18430	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
18431	for k, v := range c.header_ {
18432		reqHeaders[k] = v
18433	}
18434	reqHeaders.Set("User-Agent", c.s.userAgent())
18435	var body io.Reader = nil
18436	body, err := googleapi.WithoutDataWrapper.JSONReader(c.replacesitesrequest)
18437	if err != nil {
18438		return nil, err
18439	}
18440	reqHeaders.Set("Content-Type", "application/json")
18441	c.urlParams_.Set("alt", alt)
18442	c.urlParams_.Set("prettyPrint", "false")
18443	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/channels/{+channelId}/sites:replace")
18444	urls += "?" + c.urlParams_.Encode()
18445	req, err := http.NewRequest("POST", urls, body)
18446	if err != nil {
18447		return nil, err
18448	}
18449	req.Header = reqHeaders
18450	googleapi.Expand(req.URL, map[string]string{
18451		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
18452		"channelId":    strconv.FormatInt(c.channelId, 10),
18453	})
18454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18455}
18456
18457// Do executes the "displayvideo.advertisers.channels.sites.replace" call.
18458// Exactly one of *ReplaceSitesResponse or error will be non-nil. Any
18459// non-2xx status code is an error. Response headers are in either
18460// *ReplaceSitesResponse.ServerResponse.Header or (if a response was
18461// returned at all) in error.(*googleapi.Error).Header. Use
18462// googleapi.IsNotModified to check whether the returned error was
18463// because http.StatusNotModified was returned.
18464func (c *AdvertisersChannelsSitesReplaceCall) Do(opts ...googleapi.CallOption) (*ReplaceSitesResponse, error) {
18465	gensupport.SetOptions(c.urlParams_, opts...)
18466	res, err := c.doRequest("json")
18467	if res != nil && res.StatusCode == http.StatusNotModified {
18468		if res.Body != nil {
18469			res.Body.Close()
18470		}
18471		return nil, &googleapi.Error{
18472			Code:   res.StatusCode,
18473			Header: res.Header,
18474		}
18475	}
18476	if err != nil {
18477		return nil, err
18478	}
18479	defer googleapi.CloseBody(res)
18480	if err := googleapi.CheckResponse(res); err != nil {
18481		return nil, err
18482	}
18483	ret := &ReplaceSitesResponse{
18484		ServerResponse: googleapi.ServerResponse{
18485			Header:         res.Header,
18486			HTTPStatusCode: res.StatusCode,
18487		},
18488	}
18489	target := &ret
18490	if err := gensupport.DecodeResponse(target, res); err != nil {
18491		return nil, err
18492	}
18493	return ret, nil
18494	// {
18495	//   "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.",
18496	//   "flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites:replace",
18497	//   "httpMethod": "POST",
18498	//   "id": "displayvideo.advertisers.channels.sites.replace",
18499	//   "parameterOrder": [
18500	//     "advertiserId",
18501	//     "channelId"
18502	//   ],
18503	//   "parameters": {
18504	//     "advertiserId": {
18505	//       "description": "The ID of the advertiser that owns the parent channel.",
18506	//       "format": "int64",
18507	//       "location": "path",
18508	//       "required": true,
18509	//       "type": "string"
18510	//     },
18511	//     "channelId": {
18512	//       "description": "Required. The ID of the parent channel whose sites will be replaced.",
18513	//       "format": "int64",
18514	//       "location": "path",
18515	//       "pattern": "^[^/]+$",
18516	//       "required": true,
18517	//       "type": "string"
18518	//     }
18519	//   },
18520	//   "path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites:replace",
18521	//   "request": {
18522	//     "$ref": "ReplaceSitesRequest"
18523	//   },
18524	//   "response": {
18525	//     "$ref": "ReplaceSitesResponse"
18526	//   },
18527	//   "scopes": [
18528	//     "https://www.googleapis.com/auth/display-video"
18529	//   ]
18530	// }
18531
18532}
18533
18534// method id "displayvideo.advertisers.creatives.create":
18535
18536type AdvertisersCreativesCreateCall struct {
18537	s            *Service
18538	advertiserId int64
18539	creative     *Creative
18540	urlParams_   gensupport.URLParams
18541	ctx_         context.Context
18542	header_      http.Header
18543}
18544
18545// Create: Creates a new creative. Returns the newly created creative if
18546// successful.
18547//
18548// - advertiserId: Output only. The unique ID of the advertiser the
18549//   creative belongs to.
18550func (r *AdvertisersCreativesService) Create(advertiserId int64, creative *Creative) *AdvertisersCreativesCreateCall {
18551	c := &AdvertisersCreativesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18552	c.advertiserId = advertiserId
18553	c.creative = creative
18554	return c
18555}
18556
18557// Fields allows partial responses to be retrieved. See
18558// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18559// for more information.
18560func (c *AdvertisersCreativesCreateCall) Fields(s ...googleapi.Field) *AdvertisersCreativesCreateCall {
18561	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18562	return c
18563}
18564
18565// Context sets the context to be used in this call's Do method. Any
18566// pending HTTP request will be aborted if the provided context is
18567// canceled.
18568func (c *AdvertisersCreativesCreateCall) Context(ctx context.Context) *AdvertisersCreativesCreateCall {
18569	c.ctx_ = ctx
18570	return c
18571}
18572
18573// Header returns an http.Header that can be modified by the caller to
18574// add HTTP headers to the request.
18575func (c *AdvertisersCreativesCreateCall) Header() http.Header {
18576	if c.header_ == nil {
18577		c.header_ = make(http.Header)
18578	}
18579	return c.header_
18580}
18581
18582func (c *AdvertisersCreativesCreateCall) doRequest(alt string) (*http.Response, error) {
18583	reqHeaders := make(http.Header)
18584	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
18585	for k, v := range c.header_ {
18586		reqHeaders[k] = v
18587	}
18588	reqHeaders.Set("User-Agent", c.s.userAgent())
18589	var body io.Reader = nil
18590	body, err := googleapi.WithoutDataWrapper.JSONReader(c.creative)
18591	if err != nil {
18592		return nil, err
18593	}
18594	reqHeaders.Set("Content-Type", "application/json")
18595	c.urlParams_.Set("alt", alt)
18596	c.urlParams_.Set("prettyPrint", "false")
18597	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/creatives")
18598	urls += "?" + c.urlParams_.Encode()
18599	req, err := http.NewRequest("POST", urls, body)
18600	if err != nil {
18601		return nil, err
18602	}
18603	req.Header = reqHeaders
18604	googleapi.Expand(req.URL, map[string]string{
18605		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
18606	})
18607	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18608}
18609
18610// Do executes the "displayvideo.advertisers.creatives.create" call.
18611// Exactly one of *Creative or error will be non-nil. Any non-2xx status
18612// code is an error. Response headers are in either
18613// *Creative.ServerResponse.Header or (if a response was returned at
18614// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
18615// to check whether the returned error was because
18616// http.StatusNotModified was returned.
18617func (c *AdvertisersCreativesCreateCall) Do(opts ...googleapi.CallOption) (*Creative, error) {
18618	gensupport.SetOptions(c.urlParams_, opts...)
18619	res, err := c.doRequest("json")
18620	if res != nil && res.StatusCode == http.StatusNotModified {
18621		if res.Body != nil {
18622			res.Body.Close()
18623		}
18624		return nil, &googleapi.Error{
18625			Code:   res.StatusCode,
18626			Header: res.Header,
18627		}
18628	}
18629	if err != nil {
18630		return nil, err
18631	}
18632	defer googleapi.CloseBody(res)
18633	if err := googleapi.CheckResponse(res); err != nil {
18634		return nil, err
18635	}
18636	ret := &Creative{
18637		ServerResponse: googleapi.ServerResponse{
18638			Header:         res.Header,
18639			HTTPStatusCode: res.StatusCode,
18640		},
18641	}
18642	target := &ret
18643	if err := gensupport.DecodeResponse(target, res); err != nil {
18644		return nil, err
18645	}
18646	return ret, nil
18647	// {
18648	//   "description": "Creates a new creative. Returns the newly created creative if successful.",
18649	//   "flatPath": "v1/advertisers/{advertisersId}/creatives",
18650	//   "httpMethod": "POST",
18651	//   "id": "displayvideo.advertisers.creatives.create",
18652	//   "parameterOrder": [
18653	//     "advertiserId"
18654	//   ],
18655	//   "parameters": {
18656	//     "advertiserId": {
18657	//       "description": "Output only. The unique ID of the advertiser the creative belongs to.",
18658	//       "format": "int64",
18659	//       "location": "path",
18660	//       "pattern": "^[^/]+$",
18661	//       "required": true,
18662	//       "type": "string"
18663	//     }
18664	//   },
18665	//   "path": "v1/advertisers/{+advertiserId}/creatives",
18666	//   "request": {
18667	//     "$ref": "Creative"
18668	//   },
18669	//   "response": {
18670	//     "$ref": "Creative"
18671	//   },
18672	//   "scopes": [
18673	//     "https://www.googleapis.com/auth/display-video"
18674	//   ]
18675	// }
18676
18677}
18678
18679// method id "displayvideo.advertisers.creatives.delete":
18680
18681type AdvertisersCreativesDeleteCall struct {
18682	s            *Service
18683	advertiserId int64
18684	creativeId   int64
18685	urlParams_   gensupport.URLParams
18686	ctx_         context.Context
18687	header_      http.Header
18688}
18689
18690// Delete: Deletes a creative. Returns error code `NOT_FOUND` if the
18691// creative does not exist. The creative should be archived first, i.e.
18692// set entity_status to `ENTITY_STATUS_ARCHIVED`, before it can be
18693// deleted.
18694//
18695// - advertiserId: The ID of the advertiser this creative belongs to.
18696// - creativeId: The ID of the creative to be deleted.
18697func (r *AdvertisersCreativesService) Delete(advertiserId int64, creativeId int64) *AdvertisersCreativesDeleteCall {
18698	c := &AdvertisersCreativesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18699	c.advertiserId = advertiserId
18700	c.creativeId = creativeId
18701	return c
18702}
18703
18704// Fields allows partial responses to be retrieved. See
18705// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18706// for more information.
18707func (c *AdvertisersCreativesDeleteCall) Fields(s ...googleapi.Field) *AdvertisersCreativesDeleteCall {
18708	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18709	return c
18710}
18711
18712// Context sets the context to be used in this call's Do method. Any
18713// pending HTTP request will be aborted if the provided context is
18714// canceled.
18715func (c *AdvertisersCreativesDeleteCall) Context(ctx context.Context) *AdvertisersCreativesDeleteCall {
18716	c.ctx_ = ctx
18717	return c
18718}
18719
18720// Header returns an http.Header that can be modified by the caller to
18721// add HTTP headers to the request.
18722func (c *AdvertisersCreativesDeleteCall) Header() http.Header {
18723	if c.header_ == nil {
18724		c.header_ = make(http.Header)
18725	}
18726	return c.header_
18727}
18728
18729func (c *AdvertisersCreativesDeleteCall) doRequest(alt string) (*http.Response, error) {
18730	reqHeaders := make(http.Header)
18731	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
18732	for k, v := range c.header_ {
18733		reqHeaders[k] = v
18734	}
18735	reqHeaders.Set("User-Agent", c.s.userAgent())
18736	var body io.Reader = nil
18737	c.urlParams_.Set("alt", alt)
18738	c.urlParams_.Set("prettyPrint", "false")
18739	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/creatives/{+creativeId}")
18740	urls += "?" + c.urlParams_.Encode()
18741	req, err := http.NewRequest("DELETE", urls, body)
18742	if err != nil {
18743		return nil, err
18744	}
18745	req.Header = reqHeaders
18746	googleapi.Expand(req.URL, map[string]string{
18747		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
18748		"creativeId":   strconv.FormatInt(c.creativeId, 10),
18749	})
18750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18751}
18752
18753// Do executes the "displayvideo.advertisers.creatives.delete" call.
18754// Exactly one of *Empty or error will be non-nil. Any non-2xx status
18755// code is an error. Response headers are in either
18756// *Empty.ServerResponse.Header or (if a response was returned at all)
18757// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
18758// check whether the returned error was because http.StatusNotModified
18759// was returned.
18760func (c *AdvertisersCreativesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
18761	gensupport.SetOptions(c.urlParams_, opts...)
18762	res, err := c.doRequest("json")
18763	if res != nil && res.StatusCode == http.StatusNotModified {
18764		if res.Body != nil {
18765			res.Body.Close()
18766		}
18767		return nil, &googleapi.Error{
18768			Code:   res.StatusCode,
18769			Header: res.Header,
18770		}
18771	}
18772	if err != nil {
18773		return nil, err
18774	}
18775	defer googleapi.CloseBody(res)
18776	if err := googleapi.CheckResponse(res); err != nil {
18777		return nil, err
18778	}
18779	ret := &Empty{
18780		ServerResponse: googleapi.ServerResponse{
18781			Header:         res.Header,
18782			HTTPStatusCode: res.StatusCode,
18783		},
18784	}
18785	target := &ret
18786	if err := gensupport.DecodeResponse(target, res); err != nil {
18787		return nil, err
18788	}
18789	return ret, nil
18790	// {
18791	//   "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.",
18792	//   "flatPath": "v1/advertisers/{advertisersId}/creatives/{creativesId}",
18793	//   "httpMethod": "DELETE",
18794	//   "id": "displayvideo.advertisers.creatives.delete",
18795	//   "parameterOrder": [
18796	//     "advertiserId",
18797	//     "creativeId"
18798	//   ],
18799	//   "parameters": {
18800	//     "advertiserId": {
18801	//       "description": "The ID of the advertiser this creative belongs to.",
18802	//       "format": "int64",
18803	//       "location": "path",
18804	//       "pattern": "^[^/]+$",
18805	//       "required": true,
18806	//       "type": "string"
18807	//     },
18808	//     "creativeId": {
18809	//       "description": "The ID of the creative to be deleted.",
18810	//       "format": "int64",
18811	//       "location": "path",
18812	//       "pattern": "^[^/]+$",
18813	//       "required": true,
18814	//       "type": "string"
18815	//     }
18816	//   },
18817	//   "path": "v1/advertisers/{+advertiserId}/creatives/{+creativeId}",
18818	//   "response": {
18819	//     "$ref": "Empty"
18820	//   },
18821	//   "scopes": [
18822	//     "https://www.googleapis.com/auth/display-video"
18823	//   ]
18824	// }
18825
18826}
18827
18828// method id "displayvideo.advertisers.creatives.get":
18829
18830type AdvertisersCreativesGetCall struct {
18831	s            *Service
18832	advertiserId int64
18833	creativeId   int64
18834	urlParams_   gensupport.URLParams
18835	ifNoneMatch_ string
18836	ctx_         context.Context
18837	header_      http.Header
18838}
18839
18840// Get: Gets a creative.
18841//
18842// - advertiserId: The ID of the advertiser this creative belongs to.
18843// - creativeId: The ID of the creative to fetch.
18844func (r *AdvertisersCreativesService) Get(advertiserId int64, creativeId int64) *AdvertisersCreativesGetCall {
18845	c := &AdvertisersCreativesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
18846	c.advertiserId = advertiserId
18847	c.creativeId = creativeId
18848	return c
18849}
18850
18851// Fields allows partial responses to be retrieved. See
18852// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
18853// for more information.
18854func (c *AdvertisersCreativesGetCall) Fields(s ...googleapi.Field) *AdvertisersCreativesGetCall {
18855	c.urlParams_.Set("fields", googleapi.CombineFields(s))
18856	return c
18857}
18858
18859// IfNoneMatch sets the optional parameter which makes the operation
18860// fail if the object's ETag matches the given value. This is useful for
18861// getting updates only after the object has changed since the last
18862// request. Use googleapi.IsNotModified to check whether the response
18863// error from Do is the result of In-None-Match.
18864func (c *AdvertisersCreativesGetCall) IfNoneMatch(entityTag string) *AdvertisersCreativesGetCall {
18865	c.ifNoneMatch_ = entityTag
18866	return c
18867}
18868
18869// Context sets the context to be used in this call's Do method. Any
18870// pending HTTP request will be aborted if the provided context is
18871// canceled.
18872func (c *AdvertisersCreativesGetCall) Context(ctx context.Context) *AdvertisersCreativesGetCall {
18873	c.ctx_ = ctx
18874	return c
18875}
18876
18877// Header returns an http.Header that can be modified by the caller to
18878// add HTTP headers to the request.
18879func (c *AdvertisersCreativesGetCall) Header() http.Header {
18880	if c.header_ == nil {
18881		c.header_ = make(http.Header)
18882	}
18883	return c.header_
18884}
18885
18886func (c *AdvertisersCreativesGetCall) doRequest(alt string) (*http.Response, error) {
18887	reqHeaders := make(http.Header)
18888	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
18889	for k, v := range c.header_ {
18890		reqHeaders[k] = v
18891	}
18892	reqHeaders.Set("User-Agent", c.s.userAgent())
18893	if c.ifNoneMatch_ != "" {
18894		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
18895	}
18896	var body io.Reader = nil
18897	c.urlParams_.Set("alt", alt)
18898	c.urlParams_.Set("prettyPrint", "false")
18899	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/creatives/{+creativeId}")
18900	urls += "?" + c.urlParams_.Encode()
18901	req, err := http.NewRequest("GET", urls, body)
18902	if err != nil {
18903		return nil, err
18904	}
18905	req.Header = reqHeaders
18906	googleapi.Expand(req.URL, map[string]string{
18907		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
18908		"creativeId":   strconv.FormatInt(c.creativeId, 10),
18909	})
18910	return gensupport.SendRequest(c.ctx_, c.s.client, req)
18911}
18912
18913// Do executes the "displayvideo.advertisers.creatives.get" call.
18914// Exactly one of *Creative or error will be non-nil. Any non-2xx status
18915// code is an error. Response headers are in either
18916// *Creative.ServerResponse.Header or (if a response was returned at
18917// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
18918// to check whether the returned error was because
18919// http.StatusNotModified was returned.
18920func (c *AdvertisersCreativesGetCall) Do(opts ...googleapi.CallOption) (*Creative, error) {
18921	gensupport.SetOptions(c.urlParams_, opts...)
18922	res, err := c.doRequest("json")
18923	if res != nil && res.StatusCode == http.StatusNotModified {
18924		if res.Body != nil {
18925			res.Body.Close()
18926		}
18927		return nil, &googleapi.Error{
18928			Code:   res.StatusCode,
18929			Header: res.Header,
18930		}
18931	}
18932	if err != nil {
18933		return nil, err
18934	}
18935	defer googleapi.CloseBody(res)
18936	if err := googleapi.CheckResponse(res); err != nil {
18937		return nil, err
18938	}
18939	ret := &Creative{
18940		ServerResponse: googleapi.ServerResponse{
18941			Header:         res.Header,
18942			HTTPStatusCode: res.StatusCode,
18943		},
18944	}
18945	target := &ret
18946	if err := gensupport.DecodeResponse(target, res); err != nil {
18947		return nil, err
18948	}
18949	return ret, nil
18950	// {
18951	//   "description": "Gets a creative.",
18952	//   "flatPath": "v1/advertisers/{advertisersId}/creatives/{creativesId}",
18953	//   "httpMethod": "GET",
18954	//   "id": "displayvideo.advertisers.creatives.get",
18955	//   "parameterOrder": [
18956	//     "advertiserId",
18957	//     "creativeId"
18958	//   ],
18959	//   "parameters": {
18960	//     "advertiserId": {
18961	//       "description": "Required. The ID of the advertiser this creative belongs to.",
18962	//       "format": "int64",
18963	//       "location": "path",
18964	//       "pattern": "^[^/]+$",
18965	//       "required": true,
18966	//       "type": "string"
18967	//     },
18968	//     "creativeId": {
18969	//       "description": "Required. The ID of the creative to fetch.",
18970	//       "format": "int64",
18971	//       "location": "path",
18972	//       "pattern": "^[^/]+$",
18973	//       "required": true,
18974	//       "type": "string"
18975	//     }
18976	//   },
18977	//   "path": "v1/advertisers/{+advertiserId}/creatives/{+creativeId}",
18978	//   "response": {
18979	//     "$ref": "Creative"
18980	//   },
18981	//   "scopes": [
18982	//     "https://www.googleapis.com/auth/display-video"
18983	//   ]
18984	// }
18985
18986}
18987
18988// method id "displayvideo.advertisers.creatives.list":
18989
18990type AdvertisersCreativesListCall struct {
18991	s            *Service
18992	advertiserId int64
18993	urlParams_   gensupport.URLParams
18994	ifNoneMatch_ string
18995	ctx_         context.Context
18996	header_      http.Header
18997}
18998
18999// List: Lists creatives in an advertiser. The order is defined by the
19000// order_by parameter. If a filter by entity_status is not specified,
19001// creatives with `ENTITY_STATUS_ARCHIVED` will not be included in the
19002// results.
19003//
19004// - advertiserId: The ID of the advertiser to list creatives for.
19005func (r *AdvertisersCreativesService) List(advertiserId int64) *AdvertisersCreativesListCall {
19006	c := &AdvertisersCreativesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19007	c.advertiserId = advertiserId
19008	return c
19009}
19010
19011// Filter sets the optional parameter "filter": Allows filtering by
19012// creative properties. Supported syntax: * Filter expressions are made
19013// up of one or more restrictions. * Restriction for the same field must
19014// be combined by `OR`. * Restriction for different fields must be
19015// combined by `AND`. * Between `(` and `)` there can only be
19016// restrictions combined by `OR` for the same field. * A restriction has
19017// the form of `{field} {operator} {value}`. * The operator must be
19018// `EQUALS (=)` for the following fields: - `entityStatus` -
19019// `creativeType`. - `dimensions` - `minDuration` - `maxDuration` -
19020// `approvalStatus` - `exchangeReviewStatus` - `dynamic` - `creativeId`
19021// * The operator must be `HAS (:)` for the following fields: -
19022// `lineItemIds` * For `entityStatus`, `minDuration`, `maxDuration`, and
19023// `dynamic` there may be at most one restriction. * For `dimensions`,
19024// the value is in the form of "{width}x{height}". * For
19025// `exchangeReviewStatus`, the value is in the form of
19026// `{exchange}-{reviewStatus}`. * For `minDuration` and `maxDuration`,
19027// the value is in the form of "{duration}s". Only seconds are
19028// supported with millisecond granularity. * There may be multiple
19029// `lineItemIds` restrictions in order to search against multiple
19030// possible line item IDs. * There may be multiple `creativeId`
19031// restrictions in order to search against multiple possible creative
19032// IDs. Examples: * All native creatives:
19033// `creativeType="CREATIVE_TYPE_NATIVE" * All active creatives with
19034// 300x400 or 50x100 dimensions: `entityStatus="ENTITY_STATUS_ACTIVE"
19035// AND (dimensions="300x400" OR dimensions="50x100")` * All dynamic
19036// creatives that are approved by AdX or AppNexus, with a minimum
19037// duration of 5 seconds and 200ms. `dynamic="true" AND
19038// minDuration="5.2s" AND
19039// (exchangeReviewStatus="EXCHANGE_GOOGLE_AD_MANAGER-REVIEW_STATUS_APPROV
19040// ED" OR
19041// exchangeReviewStatus="EXCHANGE_APPNEXUS-REVIEW_STATUS_APPROVED")` *
19042// All video creatives that are associated with line item ID 1 or 2:
19043// `creativeType="CREATIVE_TYPE_VIDEO" AND (lineItemIds:1 OR
19044// lineItemIds:2)` * Find creatives by multiple creative IDs:
19045// `creativeId=1 OR creativeId=2` The length of this field should be no
19046// more than 500 characters.
19047func (c *AdvertisersCreativesListCall) Filter(filter string) *AdvertisersCreativesListCall {
19048	c.urlParams_.Set("filter", filter)
19049	return c
19050}
19051
19052// OrderBy sets the optional parameter "orderBy": Field by which to sort
19053// the list. Acceptable values are: * `creativeId` (default) *
19054// `createTime` * `mediaDuration` * `dimensions` (sorts by width first,
19055// then by height) The default sorting order is ascending. To specify
19056// descending order for a field, a suffix "desc" should be added to the
19057// field name. Example: `createTime desc`.
19058func (c *AdvertisersCreativesListCall) OrderBy(orderBy string) *AdvertisersCreativesListCall {
19059	c.urlParams_.Set("orderBy", orderBy)
19060	return c
19061}
19062
19063// PageSize sets the optional parameter "pageSize": Requested page size.
19064// Must be between `1` and `100`. If unspecified will default to `100`.
19065// Returns error code `INVALID_ARGUMENT` if an invalid value is
19066// specified.
19067func (c *AdvertisersCreativesListCall) PageSize(pageSize int64) *AdvertisersCreativesListCall {
19068	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
19069	return c
19070}
19071
19072// PageToken sets the optional parameter "pageToken": A token
19073// identifying a page of results the server should return. Typically,
19074// this is the value of next_page_token returned from the previous call
19075// to `ListCreatives` method. If not specified, the first page of
19076// results will be returned.
19077func (c *AdvertisersCreativesListCall) PageToken(pageToken string) *AdvertisersCreativesListCall {
19078	c.urlParams_.Set("pageToken", pageToken)
19079	return c
19080}
19081
19082// Fields allows partial responses to be retrieved. See
19083// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19084// for more information.
19085func (c *AdvertisersCreativesListCall) Fields(s ...googleapi.Field) *AdvertisersCreativesListCall {
19086	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19087	return c
19088}
19089
19090// IfNoneMatch sets the optional parameter which makes the operation
19091// fail if the object's ETag matches the given value. This is useful for
19092// getting updates only after the object has changed since the last
19093// request. Use googleapi.IsNotModified to check whether the response
19094// error from Do is the result of In-None-Match.
19095func (c *AdvertisersCreativesListCall) IfNoneMatch(entityTag string) *AdvertisersCreativesListCall {
19096	c.ifNoneMatch_ = entityTag
19097	return c
19098}
19099
19100// Context sets the context to be used in this call's Do method. Any
19101// pending HTTP request will be aborted if the provided context is
19102// canceled.
19103func (c *AdvertisersCreativesListCall) Context(ctx context.Context) *AdvertisersCreativesListCall {
19104	c.ctx_ = ctx
19105	return c
19106}
19107
19108// Header returns an http.Header that can be modified by the caller to
19109// add HTTP headers to the request.
19110func (c *AdvertisersCreativesListCall) Header() http.Header {
19111	if c.header_ == nil {
19112		c.header_ = make(http.Header)
19113	}
19114	return c.header_
19115}
19116
19117func (c *AdvertisersCreativesListCall) doRequest(alt string) (*http.Response, error) {
19118	reqHeaders := make(http.Header)
19119	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
19120	for k, v := range c.header_ {
19121		reqHeaders[k] = v
19122	}
19123	reqHeaders.Set("User-Agent", c.s.userAgent())
19124	if c.ifNoneMatch_ != "" {
19125		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
19126	}
19127	var body io.Reader = nil
19128	c.urlParams_.Set("alt", alt)
19129	c.urlParams_.Set("prettyPrint", "false")
19130	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/creatives")
19131	urls += "?" + c.urlParams_.Encode()
19132	req, err := http.NewRequest("GET", urls, body)
19133	if err != nil {
19134		return nil, err
19135	}
19136	req.Header = reqHeaders
19137	googleapi.Expand(req.URL, map[string]string{
19138		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
19139	})
19140	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19141}
19142
19143// Do executes the "displayvideo.advertisers.creatives.list" call.
19144// Exactly one of *ListCreativesResponse or error will be non-nil. Any
19145// non-2xx status code is an error. Response headers are in either
19146// *ListCreativesResponse.ServerResponse.Header or (if a response was
19147// returned at all) in error.(*googleapi.Error).Header. Use
19148// googleapi.IsNotModified to check whether the returned error was
19149// because http.StatusNotModified was returned.
19150func (c *AdvertisersCreativesListCall) Do(opts ...googleapi.CallOption) (*ListCreativesResponse, error) {
19151	gensupport.SetOptions(c.urlParams_, opts...)
19152	res, err := c.doRequest("json")
19153	if res != nil && res.StatusCode == http.StatusNotModified {
19154		if res.Body != nil {
19155			res.Body.Close()
19156		}
19157		return nil, &googleapi.Error{
19158			Code:   res.StatusCode,
19159			Header: res.Header,
19160		}
19161	}
19162	if err != nil {
19163		return nil, err
19164	}
19165	defer googleapi.CloseBody(res)
19166	if err := googleapi.CheckResponse(res); err != nil {
19167		return nil, err
19168	}
19169	ret := &ListCreativesResponse{
19170		ServerResponse: googleapi.ServerResponse{
19171			Header:         res.Header,
19172			HTTPStatusCode: res.StatusCode,
19173		},
19174	}
19175	target := &ret
19176	if err := gensupport.DecodeResponse(target, res); err != nil {
19177		return nil, err
19178	}
19179	return ret, nil
19180	// {
19181	//   "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.",
19182	//   "flatPath": "v1/advertisers/{advertisersId}/creatives",
19183	//   "httpMethod": "GET",
19184	//   "id": "displayvideo.advertisers.creatives.list",
19185	//   "parameterOrder": [
19186	//     "advertiserId"
19187	//   ],
19188	//   "parameters": {
19189	//     "advertiserId": {
19190	//       "description": "Required. The ID of the advertiser to list creatives for.",
19191	//       "format": "int64",
19192	//       "location": "path",
19193	//       "pattern": "^[^/]+$",
19194	//       "required": true,
19195	//       "type": "string"
19196	//     },
19197	//     "filter": {
19198	//       "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.",
19199	//       "location": "query",
19200	//       "type": "string"
19201	//     },
19202	//     "orderBy": {
19203	//       "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`.",
19204	//       "location": "query",
19205	//       "type": "string"
19206	//     },
19207	//     "pageSize": {
19208	//       "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.",
19209	//       "format": "int32",
19210	//       "location": "query",
19211	//       "type": "integer"
19212	//     },
19213	//     "pageToken": {
19214	//       "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.",
19215	//       "location": "query",
19216	//       "type": "string"
19217	//     }
19218	//   },
19219	//   "path": "v1/advertisers/{+advertiserId}/creatives",
19220	//   "response": {
19221	//     "$ref": "ListCreativesResponse"
19222	//   },
19223	//   "scopes": [
19224	//     "https://www.googleapis.com/auth/display-video"
19225	//   ]
19226	// }
19227
19228}
19229
19230// Pages invokes f for each page of results.
19231// A non-nil error returned from f will halt the iteration.
19232// The provided context supersedes any context provided to the Context method.
19233func (c *AdvertisersCreativesListCall) Pages(ctx context.Context, f func(*ListCreativesResponse) error) error {
19234	c.ctx_ = ctx
19235	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
19236	for {
19237		x, err := c.Do()
19238		if err != nil {
19239			return err
19240		}
19241		if err := f(x); err != nil {
19242			return err
19243		}
19244		if x.NextPageToken == "" {
19245			return nil
19246		}
19247		c.PageToken(x.NextPageToken)
19248	}
19249}
19250
19251// method id "displayvideo.advertisers.creatives.patch":
19252
19253type AdvertisersCreativesPatchCall struct {
19254	s            *Service
19255	advertiserId int64
19256	creativeId   int64
19257	creative     *Creative
19258	urlParams_   gensupport.URLParams
19259	ctx_         context.Context
19260	header_      http.Header
19261}
19262
19263// Patch: Updates an existing creative. Returns the updated creative if
19264// successful.
19265//
19266// - advertiserId: Output only. The unique ID of the advertiser the
19267//   creative belongs to.
19268// - creativeId: Output only. The unique ID of the creative. Assigned by
19269//   the system.
19270func (r *AdvertisersCreativesService) Patch(advertiserId int64, creativeId int64, creative *Creative) *AdvertisersCreativesPatchCall {
19271	c := &AdvertisersCreativesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19272	c.advertiserId = advertiserId
19273	c.creativeId = creativeId
19274	c.creative = creative
19275	return c
19276}
19277
19278// UpdateMask sets the optional parameter "updateMask": Required. The
19279// mask to control which fields to update.
19280func (c *AdvertisersCreativesPatchCall) UpdateMask(updateMask string) *AdvertisersCreativesPatchCall {
19281	c.urlParams_.Set("updateMask", updateMask)
19282	return c
19283}
19284
19285// Fields allows partial responses to be retrieved. See
19286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19287// for more information.
19288func (c *AdvertisersCreativesPatchCall) Fields(s ...googleapi.Field) *AdvertisersCreativesPatchCall {
19289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19290	return c
19291}
19292
19293// Context sets the context to be used in this call's Do method. Any
19294// pending HTTP request will be aborted if the provided context is
19295// canceled.
19296func (c *AdvertisersCreativesPatchCall) Context(ctx context.Context) *AdvertisersCreativesPatchCall {
19297	c.ctx_ = ctx
19298	return c
19299}
19300
19301// Header returns an http.Header that can be modified by the caller to
19302// add HTTP headers to the request.
19303func (c *AdvertisersCreativesPatchCall) Header() http.Header {
19304	if c.header_ == nil {
19305		c.header_ = make(http.Header)
19306	}
19307	return c.header_
19308}
19309
19310func (c *AdvertisersCreativesPatchCall) doRequest(alt string) (*http.Response, error) {
19311	reqHeaders := make(http.Header)
19312	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
19313	for k, v := range c.header_ {
19314		reqHeaders[k] = v
19315	}
19316	reqHeaders.Set("User-Agent", c.s.userAgent())
19317	var body io.Reader = nil
19318	body, err := googleapi.WithoutDataWrapper.JSONReader(c.creative)
19319	if err != nil {
19320		return nil, err
19321	}
19322	reqHeaders.Set("Content-Type", "application/json")
19323	c.urlParams_.Set("alt", alt)
19324	c.urlParams_.Set("prettyPrint", "false")
19325	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/creatives/{+creativeId}")
19326	urls += "?" + c.urlParams_.Encode()
19327	req, err := http.NewRequest("PATCH", urls, body)
19328	if err != nil {
19329		return nil, err
19330	}
19331	req.Header = reqHeaders
19332	googleapi.Expand(req.URL, map[string]string{
19333		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
19334		"creativeId":   strconv.FormatInt(c.creativeId, 10),
19335	})
19336	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19337}
19338
19339// Do executes the "displayvideo.advertisers.creatives.patch" call.
19340// Exactly one of *Creative or error will be non-nil. Any non-2xx status
19341// code is an error. Response headers are in either
19342// *Creative.ServerResponse.Header or (if a response was returned at
19343// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
19344// to check whether the returned error was because
19345// http.StatusNotModified was returned.
19346func (c *AdvertisersCreativesPatchCall) Do(opts ...googleapi.CallOption) (*Creative, error) {
19347	gensupport.SetOptions(c.urlParams_, opts...)
19348	res, err := c.doRequest("json")
19349	if res != nil && res.StatusCode == http.StatusNotModified {
19350		if res.Body != nil {
19351			res.Body.Close()
19352		}
19353		return nil, &googleapi.Error{
19354			Code:   res.StatusCode,
19355			Header: res.Header,
19356		}
19357	}
19358	if err != nil {
19359		return nil, err
19360	}
19361	defer googleapi.CloseBody(res)
19362	if err := googleapi.CheckResponse(res); err != nil {
19363		return nil, err
19364	}
19365	ret := &Creative{
19366		ServerResponse: googleapi.ServerResponse{
19367			Header:         res.Header,
19368			HTTPStatusCode: res.StatusCode,
19369		},
19370	}
19371	target := &ret
19372	if err := gensupport.DecodeResponse(target, res); err != nil {
19373		return nil, err
19374	}
19375	return ret, nil
19376	// {
19377	//   "description": "Updates an existing creative. Returns the updated creative if successful.",
19378	//   "flatPath": "v1/advertisers/{advertisersId}/creatives/{creativesId}",
19379	//   "httpMethod": "PATCH",
19380	//   "id": "displayvideo.advertisers.creatives.patch",
19381	//   "parameterOrder": [
19382	//     "advertiserId",
19383	//     "creativeId"
19384	//   ],
19385	//   "parameters": {
19386	//     "advertiserId": {
19387	//       "description": "Output only. The unique ID of the advertiser the creative belongs to.",
19388	//       "format": "int64",
19389	//       "location": "path",
19390	//       "pattern": "^[^/]+$",
19391	//       "required": true,
19392	//       "type": "string"
19393	//     },
19394	//     "creativeId": {
19395	//       "description": "Output only. The unique ID of the creative. Assigned by the system.",
19396	//       "format": "int64",
19397	//       "location": "path",
19398	//       "pattern": "^[^/]+$",
19399	//       "required": true,
19400	//       "type": "string"
19401	//     },
19402	//     "updateMask": {
19403	//       "description": "Required. The mask to control which fields to update.",
19404	//       "format": "google-fieldmask",
19405	//       "location": "query",
19406	//       "type": "string"
19407	//     }
19408	//   },
19409	//   "path": "v1/advertisers/{+advertiserId}/creatives/{+creativeId}",
19410	//   "request": {
19411	//     "$ref": "Creative"
19412	//   },
19413	//   "response": {
19414	//     "$ref": "Creative"
19415	//   },
19416	//   "scopes": [
19417	//     "https://www.googleapis.com/auth/display-video"
19418	//   ]
19419	// }
19420
19421}
19422
19423// method id "displayvideo.advertisers.insertionOrders.bulkListInsertionOrderAssignedTargetingOptions":
19424
19425type AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall struct {
19426	s                *Service
19427	advertiserId     int64
19428	insertionOrderId int64
19429	urlParams_       gensupport.URLParams
19430	ifNoneMatch_     string
19431	ctx_             context.Context
19432	header_          http.Header
19433}
19434
19435// BulkListInsertionOrderAssignedTargetingOptions: Lists assigned
19436// targeting options of an insertion order across targeting types.
19437//
19438// - advertiserId: The ID of the advertiser the insertion order belongs
19439//   to.
19440// - insertionOrderId: The ID of the insertion order to list assigned
19441//   targeting options for.
19442func (r *AdvertisersInsertionOrdersService) BulkListInsertionOrderAssignedTargetingOptions(advertiserId int64, insertionOrderId int64) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
19443	c := &AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19444	c.advertiserId = advertiserId
19445	c.insertionOrderId = insertionOrderId
19446	return c
19447}
19448
19449// Filter sets the optional parameter "filter": Allows filtering by
19450// assigned targeting option properties. Supported syntax: * Filter
19451// expressions are made up of one or more restrictions. * Restrictions
19452// can be combined by the logical operator `OR` on the same field. * A
19453// restriction has the form of `{field} {operator} {value}`. * The
19454// operator must be `EQUALS (=)`. * Supported fields: - `targetingType`
19455// - `inheritance` Examples: * AssignedTargetingOptions of targeting
19456// type TARGETING_TYPE_PROXIMITY_LOCATION_LIST or TARGETING_TYPE_CHANNEL
19457// `targetingType="TARGETING_TYPE_PROXIMITY_LOCATION_LIST" OR
19458// targetingType="TARGETING_TYPE_CHANNEL" * AssignedTargetingOptions
19459// with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER
19460// `inheritance="NOT_INHERITED" OR inheritance="INHERITED_FROM_PARTNER"
19461// The length of this field should be no more than 500 characters.
19462func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) Filter(filter string) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
19463	c.urlParams_.Set("filter", filter)
19464	return c
19465}
19466
19467// OrderBy sets the optional parameter "orderBy": Field by which to sort
19468// the list. Acceptable values are: * `targetingType` (default) The
19469// default sorting order is ascending. To specify descending order for a
19470// field, a suffix "desc" should be added to the field name. Example:
19471// `targetingType desc`.
19472func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) OrderBy(orderBy string) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
19473	c.urlParams_.Set("orderBy", orderBy)
19474	return c
19475}
19476
19477// PageSize sets the optional parameter "pageSize": Requested page size.
19478// The size must be an integer between `1` and `5000`. If unspecified,
19479// the default is `5000`. Returns error code `INVALID_ARGUMENT` if an
19480// invalid value is specified.
19481func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) PageSize(pageSize int64) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
19482	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
19483	return c
19484}
19485
19486// PageToken sets the optional parameter "pageToken": A token that lets
19487// the client fetch the next page of results. Typically, this is the
19488// value of next_page_token returned from the previous call to
19489// `BulkListInsertionOrderAssignedTargetingOptions` method. If not
19490// specified, the first page of results will be returned.
19491func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) PageToken(pageToken string) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
19492	c.urlParams_.Set("pageToken", pageToken)
19493	return c
19494}
19495
19496// Fields allows partial responses to be retrieved. See
19497// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19498// for more information.
19499func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
19500	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19501	return c
19502}
19503
19504// IfNoneMatch sets the optional parameter which makes the operation
19505// fail if the object's ETag matches the given value. This is useful for
19506// getting updates only after the object has changed since the last
19507// request. Use googleapi.IsNotModified to check whether the response
19508// error from Do is the result of In-None-Match.
19509func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) IfNoneMatch(entityTag string) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
19510	c.ifNoneMatch_ = entityTag
19511	return c
19512}
19513
19514// Context sets the context to be used in this call's Do method. Any
19515// pending HTTP request will be aborted if the provided context is
19516// canceled.
19517func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) Context(ctx context.Context) *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall {
19518	c.ctx_ = ctx
19519	return c
19520}
19521
19522// Header returns an http.Header that can be modified by the caller to
19523// add HTTP headers to the request.
19524func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) Header() http.Header {
19525	if c.header_ == nil {
19526		c.header_ = make(http.Header)
19527	}
19528	return c.header_
19529}
19530
19531func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
19532	reqHeaders := make(http.Header)
19533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
19534	for k, v := range c.header_ {
19535		reqHeaders[k] = v
19536	}
19537	reqHeaders.Set("User-Agent", c.s.userAgent())
19538	if c.ifNoneMatch_ != "" {
19539		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
19540	}
19541	var body io.Reader = nil
19542	c.urlParams_.Set("alt", alt)
19543	c.urlParams_.Set("prettyPrint", "false")
19544	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}:bulkListInsertionOrderAssignedTargetingOptions")
19545	urls += "?" + c.urlParams_.Encode()
19546	req, err := http.NewRequest("GET", urls, body)
19547	if err != nil {
19548		return nil, err
19549	}
19550	req.Header = reqHeaders
19551	googleapi.Expand(req.URL, map[string]string{
19552		"advertiserId":     strconv.FormatInt(c.advertiserId, 10),
19553		"insertionOrderId": strconv.FormatInt(c.insertionOrderId, 10),
19554	})
19555	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19556}
19557
19558// Do executes the "displayvideo.advertisers.insertionOrders.bulkListInsertionOrderAssignedTargetingOptions" call.
19559// Exactly one of
19560// *BulkListInsertionOrderAssignedTargetingOptionsResponse or error will
19561// be non-nil. Any non-2xx status code is an error. Response headers are
19562// in either
19563// *BulkListInsertionOrderAssignedTargetingOptionsResponse.ServerResponse
19564// .Header or (if a response was returned at all) in
19565// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
19566// whether the returned error was because http.StatusNotModified was
19567// returned.
19568func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkListInsertionOrderAssignedTargetingOptionsResponse, error) {
19569	gensupport.SetOptions(c.urlParams_, opts...)
19570	res, err := c.doRequest("json")
19571	if res != nil && res.StatusCode == http.StatusNotModified {
19572		if res.Body != nil {
19573			res.Body.Close()
19574		}
19575		return nil, &googleapi.Error{
19576			Code:   res.StatusCode,
19577			Header: res.Header,
19578		}
19579	}
19580	if err != nil {
19581		return nil, err
19582	}
19583	defer googleapi.CloseBody(res)
19584	if err := googleapi.CheckResponse(res); err != nil {
19585		return nil, err
19586	}
19587	ret := &BulkListInsertionOrderAssignedTargetingOptionsResponse{
19588		ServerResponse: googleapi.ServerResponse{
19589			Header:         res.Header,
19590			HTTPStatusCode: res.StatusCode,
19591		},
19592	}
19593	target := &ret
19594	if err := gensupport.DecodeResponse(target, res); err != nil {
19595		return nil, err
19596	}
19597	return ret, nil
19598	// {
19599	//   "description": "Lists assigned targeting options of an insertion order across targeting types.",
19600	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}:bulkListInsertionOrderAssignedTargetingOptions",
19601	//   "httpMethod": "GET",
19602	//   "id": "displayvideo.advertisers.insertionOrders.bulkListInsertionOrderAssignedTargetingOptions",
19603	//   "parameterOrder": [
19604	//     "advertiserId",
19605	//     "insertionOrderId"
19606	//   ],
19607	//   "parameters": {
19608	//     "advertiserId": {
19609	//       "description": "Required. The ID of the advertiser the insertion order belongs to.",
19610	//       "format": "int64",
19611	//       "location": "path",
19612	//       "pattern": "^[^/]+$",
19613	//       "required": true,
19614	//       "type": "string"
19615	//     },
19616	//     "filter": {
19617	//       "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.",
19618	//       "location": "query",
19619	//       "type": "string"
19620	//     },
19621	//     "insertionOrderId": {
19622	//       "description": "Required. The ID of the insertion order to list assigned targeting options for.",
19623	//       "format": "int64",
19624	//       "location": "path",
19625	//       "pattern": "^[^/]+$",
19626	//       "required": true,
19627	//       "type": "string"
19628	//     },
19629	//     "orderBy": {
19630	//       "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`.",
19631	//       "location": "query",
19632	//       "type": "string"
19633	//     },
19634	//     "pageSize": {
19635	//       "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.",
19636	//       "format": "int32",
19637	//       "location": "query",
19638	//       "type": "integer"
19639	//     },
19640	//     "pageToken": {
19641	//       "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.",
19642	//       "location": "query",
19643	//       "type": "string"
19644	//     }
19645	//   },
19646	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}:bulkListInsertionOrderAssignedTargetingOptions",
19647	//   "response": {
19648	//     "$ref": "BulkListInsertionOrderAssignedTargetingOptionsResponse"
19649	//   },
19650	//   "scopes": [
19651	//     "https://www.googleapis.com/auth/display-video"
19652	//   ]
19653	// }
19654
19655}
19656
19657// Pages invokes f for each page of results.
19658// A non-nil error returned from f will halt the iteration.
19659// The provided context supersedes any context provided to the Context method.
19660func (c *AdvertisersInsertionOrdersBulkListInsertionOrderAssignedTargetingOptionsCall) Pages(ctx context.Context, f func(*BulkListInsertionOrderAssignedTargetingOptionsResponse) error) error {
19661	c.ctx_ = ctx
19662	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
19663	for {
19664		x, err := c.Do()
19665		if err != nil {
19666			return err
19667		}
19668		if err := f(x); err != nil {
19669			return err
19670		}
19671		if x.NextPageToken == "" {
19672			return nil
19673		}
19674		c.PageToken(x.NextPageToken)
19675	}
19676}
19677
19678// method id "displayvideo.advertisers.insertionOrders.create":
19679
19680type AdvertisersInsertionOrdersCreateCall struct {
19681	s              *Service
19682	advertiserId   int64
19683	insertionorder *InsertionOrder
19684	urlParams_     gensupport.URLParams
19685	ctx_           context.Context
19686	header_        http.Header
19687}
19688
19689// Create: Creates a new insertion order. Returns the newly created
19690// insertion order if successful.
19691//
19692// - advertiserId: Output only. The unique ID of the advertiser the
19693//   insertion order belongs to.
19694func (r *AdvertisersInsertionOrdersService) Create(advertiserId int64, insertionorder *InsertionOrder) *AdvertisersInsertionOrdersCreateCall {
19695	c := &AdvertisersInsertionOrdersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19696	c.advertiserId = advertiserId
19697	c.insertionorder = insertionorder
19698	return c
19699}
19700
19701// Fields allows partial responses to be retrieved. See
19702// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19703// for more information.
19704func (c *AdvertisersInsertionOrdersCreateCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersCreateCall {
19705	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19706	return c
19707}
19708
19709// Context sets the context to be used in this call's Do method. Any
19710// pending HTTP request will be aborted if the provided context is
19711// canceled.
19712func (c *AdvertisersInsertionOrdersCreateCall) Context(ctx context.Context) *AdvertisersInsertionOrdersCreateCall {
19713	c.ctx_ = ctx
19714	return c
19715}
19716
19717// Header returns an http.Header that can be modified by the caller to
19718// add HTTP headers to the request.
19719func (c *AdvertisersInsertionOrdersCreateCall) Header() http.Header {
19720	if c.header_ == nil {
19721		c.header_ = make(http.Header)
19722	}
19723	return c.header_
19724}
19725
19726func (c *AdvertisersInsertionOrdersCreateCall) doRequest(alt string) (*http.Response, error) {
19727	reqHeaders := make(http.Header)
19728	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
19729	for k, v := range c.header_ {
19730		reqHeaders[k] = v
19731	}
19732	reqHeaders.Set("User-Agent", c.s.userAgent())
19733	var body io.Reader = nil
19734	body, err := googleapi.WithoutDataWrapper.JSONReader(c.insertionorder)
19735	if err != nil {
19736		return nil, err
19737	}
19738	reqHeaders.Set("Content-Type", "application/json")
19739	c.urlParams_.Set("alt", alt)
19740	c.urlParams_.Set("prettyPrint", "false")
19741	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders")
19742	urls += "?" + c.urlParams_.Encode()
19743	req, err := http.NewRequest("POST", urls, body)
19744	if err != nil {
19745		return nil, err
19746	}
19747	req.Header = reqHeaders
19748	googleapi.Expand(req.URL, map[string]string{
19749		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
19750	})
19751	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19752}
19753
19754// Do executes the "displayvideo.advertisers.insertionOrders.create" call.
19755// Exactly one of *InsertionOrder or error will be non-nil. Any non-2xx
19756// status code is an error. Response headers are in either
19757// *InsertionOrder.ServerResponse.Header or (if a response was returned
19758// at all) in error.(*googleapi.Error).Header. Use
19759// googleapi.IsNotModified to check whether the returned error was
19760// because http.StatusNotModified was returned.
19761func (c *AdvertisersInsertionOrdersCreateCall) Do(opts ...googleapi.CallOption) (*InsertionOrder, error) {
19762	gensupport.SetOptions(c.urlParams_, opts...)
19763	res, err := c.doRequest("json")
19764	if res != nil && res.StatusCode == http.StatusNotModified {
19765		if res.Body != nil {
19766			res.Body.Close()
19767		}
19768		return nil, &googleapi.Error{
19769			Code:   res.StatusCode,
19770			Header: res.Header,
19771		}
19772	}
19773	if err != nil {
19774		return nil, err
19775	}
19776	defer googleapi.CloseBody(res)
19777	if err := googleapi.CheckResponse(res); err != nil {
19778		return nil, err
19779	}
19780	ret := &InsertionOrder{
19781		ServerResponse: googleapi.ServerResponse{
19782			Header:         res.Header,
19783			HTTPStatusCode: res.StatusCode,
19784		},
19785	}
19786	target := &ret
19787	if err := gensupport.DecodeResponse(target, res); err != nil {
19788		return nil, err
19789	}
19790	return ret, nil
19791	// {
19792	//   "description": "Creates a new insertion order. Returns the newly created insertion order if successful.",
19793	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders",
19794	//   "httpMethod": "POST",
19795	//   "id": "displayvideo.advertisers.insertionOrders.create",
19796	//   "parameterOrder": [
19797	//     "advertiserId"
19798	//   ],
19799	//   "parameters": {
19800	//     "advertiserId": {
19801	//       "description": "Output only. The unique ID of the advertiser the insertion order belongs to.",
19802	//       "format": "int64",
19803	//       "location": "path",
19804	//       "pattern": "^[^/]+$",
19805	//       "required": true,
19806	//       "type": "string"
19807	//     }
19808	//   },
19809	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders",
19810	//   "request": {
19811	//     "$ref": "InsertionOrder"
19812	//   },
19813	//   "response": {
19814	//     "$ref": "InsertionOrder"
19815	//   },
19816	//   "scopes": [
19817	//     "https://www.googleapis.com/auth/display-video"
19818	//   ]
19819	// }
19820
19821}
19822
19823// method id "displayvideo.advertisers.insertionOrders.delete":
19824
19825type AdvertisersInsertionOrdersDeleteCall struct {
19826	s                *Service
19827	advertiserId     int64
19828	insertionOrderId int64
19829	urlParams_       gensupport.URLParams
19830	ctx_             context.Context
19831	header_          http.Header
19832}
19833
19834// Delete: Deletes an insertion order. Returns error code `NOT_FOUND` if
19835// the insertion order does not exist. The insertion order should be
19836// archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`,
19837// to be able to delete it.
19838//
19839// - advertiserId: The ID of the advertiser this insertion order belongs
19840//   to.
19841// - insertionOrderId: The ID of the insertion order we need to delete.
19842func (r *AdvertisersInsertionOrdersService) Delete(advertiserId int64, insertionOrderId int64) *AdvertisersInsertionOrdersDeleteCall {
19843	c := &AdvertisersInsertionOrdersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19844	c.advertiserId = advertiserId
19845	c.insertionOrderId = insertionOrderId
19846	return c
19847}
19848
19849// Fields allows partial responses to be retrieved. See
19850// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
19851// for more information.
19852func (c *AdvertisersInsertionOrdersDeleteCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersDeleteCall {
19853	c.urlParams_.Set("fields", googleapi.CombineFields(s))
19854	return c
19855}
19856
19857// Context sets the context to be used in this call's Do method. Any
19858// pending HTTP request will be aborted if the provided context is
19859// canceled.
19860func (c *AdvertisersInsertionOrdersDeleteCall) Context(ctx context.Context) *AdvertisersInsertionOrdersDeleteCall {
19861	c.ctx_ = ctx
19862	return c
19863}
19864
19865// Header returns an http.Header that can be modified by the caller to
19866// add HTTP headers to the request.
19867func (c *AdvertisersInsertionOrdersDeleteCall) Header() http.Header {
19868	if c.header_ == nil {
19869		c.header_ = make(http.Header)
19870	}
19871	return c.header_
19872}
19873
19874func (c *AdvertisersInsertionOrdersDeleteCall) doRequest(alt string) (*http.Response, error) {
19875	reqHeaders := make(http.Header)
19876	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
19877	for k, v := range c.header_ {
19878		reqHeaders[k] = v
19879	}
19880	reqHeaders.Set("User-Agent", c.s.userAgent())
19881	var body io.Reader = nil
19882	c.urlParams_.Set("alt", alt)
19883	c.urlParams_.Set("prettyPrint", "false")
19884	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}")
19885	urls += "?" + c.urlParams_.Encode()
19886	req, err := http.NewRequest("DELETE", urls, body)
19887	if err != nil {
19888		return nil, err
19889	}
19890	req.Header = reqHeaders
19891	googleapi.Expand(req.URL, map[string]string{
19892		"advertiserId":     strconv.FormatInt(c.advertiserId, 10),
19893		"insertionOrderId": strconv.FormatInt(c.insertionOrderId, 10),
19894	})
19895	return gensupport.SendRequest(c.ctx_, c.s.client, req)
19896}
19897
19898// Do executes the "displayvideo.advertisers.insertionOrders.delete" call.
19899// Exactly one of *Empty or error will be non-nil. Any non-2xx status
19900// code is an error. Response headers are in either
19901// *Empty.ServerResponse.Header or (if a response was returned at all)
19902// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
19903// check whether the returned error was because http.StatusNotModified
19904// was returned.
19905func (c *AdvertisersInsertionOrdersDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
19906	gensupport.SetOptions(c.urlParams_, opts...)
19907	res, err := c.doRequest("json")
19908	if res != nil && res.StatusCode == http.StatusNotModified {
19909		if res.Body != nil {
19910			res.Body.Close()
19911		}
19912		return nil, &googleapi.Error{
19913			Code:   res.StatusCode,
19914			Header: res.Header,
19915		}
19916	}
19917	if err != nil {
19918		return nil, err
19919	}
19920	defer googleapi.CloseBody(res)
19921	if err := googleapi.CheckResponse(res); err != nil {
19922		return nil, err
19923	}
19924	ret := &Empty{
19925		ServerResponse: googleapi.ServerResponse{
19926			Header:         res.Header,
19927			HTTPStatusCode: res.StatusCode,
19928		},
19929	}
19930	target := &ret
19931	if err := gensupport.DecodeResponse(target, res); err != nil {
19932		return nil, err
19933	}
19934	return ret, nil
19935	// {
19936	//   "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.",
19937	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}",
19938	//   "httpMethod": "DELETE",
19939	//   "id": "displayvideo.advertisers.insertionOrders.delete",
19940	//   "parameterOrder": [
19941	//     "advertiserId",
19942	//     "insertionOrderId"
19943	//   ],
19944	//   "parameters": {
19945	//     "advertiserId": {
19946	//       "description": "The ID of the advertiser this insertion order belongs to.",
19947	//       "format": "int64",
19948	//       "location": "path",
19949	//       "pattern": "^[^/]+$",
19950	//       "required": true,
19951	//       "type": "string"
19952	//     },
19953	//     "insertionOrderId": {
19954	//       "description": "The ID of the insertion order we need to delete.",
19955	//       "format": "int64",
19956	//       "location": "path",
19957	//       "pattern": "^[^/]+$",
19958	//       "required": true,
19959	//       "type": "string"
19960	//     }
19961	//   },
19962	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}",
19963	//   "response": {
19964	//     "$ref": "Empty"
19965	//   },
19966	//   "scopes": [
19967	//     "https://www.googleapis.com/auth/display-video"
19968	//   ]
19969	// }
19970
19971}
19972
19973// method id "displayvideo.advertisers.insertionOrders.get":
19974
19975type AdvertisersInsertionOrdersGetCall struct {
19976	s                *Service
19977	advertiserId     int64
19978	insertionOrderId int64
19979	urlParams_       gensupport.URLParams
19980	ifNoneMatch_     string
19981	ctx_             context.Context
19982	header_          http.Header
19983}
19984
19985// Get: Gets an insertion order. Returns error code `NOT_FOUND` if the
19986// insertion order does not exist.
19987//
19988// - advertiserId: The ID of the advertiser this insertion order belongs
19989//   to.
19990// - insertionOrderId: The ID of the insertion order to fetch.
19991func (r *AdvertisersInsertionOrdersService) Get(advertiserId int64, insertionOrderId int64) *AdvertisersInsertionOrdersGetCall {
19992	c := &AdvertisersInsertionOrdersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
19993	c.advertiserId = advertiserId
19994	c.insertionOrderId = insertionOrderId
19995	return c
19996}
19997
19998// Fields allows partial responses to be retrieved. See
19999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20000// for more information.
20001func (c *AdvertisersInsertionOrdersGetCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersGetCall {
20002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20003	return c
20004}
20005
20006// IfNoneMatch sets the optional parameter which makes the operation
20007// fail if the object's ETag matches the given value. This is useful for
20008// getting updates only after the object has changed since the last
20009// request. Use googleapi.IsNotModified to check whether the response
20010// error from Do is the result of In-None-Match.
20011func (c *AdvertisersInsertionOrdersGetCall) IfNoneMatch(entityTag string) *AdvertisersInsertionOrdersGetCall {
20012	c.ifNoneMatch_ = entityTag
20013	return c
20014}
20015
20016// Context sets the context to be used in this call's Do method. Any
20017// pending HTTP request will be aborted if the provided context is
20018// canceled.
20019func (c *AdvertisersInsertionOrdersGetCall) Context(ctx context.Context) *AdvertisersInsertionOrdersGetCall {
20020	c.ctx_ = ctx
20021	return c
20022}
20023
20024// Header returns an http.Header that can be modified by the caller to
20025// add HTTP headers to the request.
20026func (c *AdvertisersInsertionOrdersGetCall) Header() http.Header {
20027	if c.header_ == nil {
20028		c.header_ = make(http.Header)
20029	}
20030	return c.header_
20031}
20032
20033func (c *AdvertisersInsertionOrdersGetCall) doRequest(alt string) (*http.Response, error) {
20034	reqHeaders := make(http.Header)
20035	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
20036	for k, v := range c.header_ {
20037		reqHeaders[k] = v
20038	}
20039	reqHeaders.Set("User-Agent", c.s.userAgent())
20040	if c.ifNoneMatch_ != "" {
20041		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
20042	}
20043	var body io.Reader = nil
20044	c.urlParams_.Set("alt", alt)
20045	c.urlParams_.Set("prettyPrint", "false")
20046	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}")
20047	urls += "?" + c.urlParams_.Encode()
20048	req, err := http.NewRequest("GET", urls, body)
20049	if err != nil {
20050		return nil, err
20051	}
20052	req.Header = reqHeaders
20053	googleapi.Expand(req.URL, map[string]string{
20054		"advertiserId":     strconv.FormatInt(c.advertiserId, 10),
20055		"insertionOrderId": strconv.FormatInt(c.insertionOrderId, 10),
20056	})
20057	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20058}
20059
20060// Do executes the "displayvideo.advertisers.insertionOrders.get" call.
20061// Exactly one of *InsertionOrder or error will be non-nil. Any non-2xx
20062// status code is an error. Response headers are in either
20063// *InsertionOrder.ServerResponse.Header or (if a response was returned
20064// at all) in error.(*googleapi.Error).Header. Use
20065// googleapi.IsNotModified to check whether the returned error was
20066// because http.StatusNotModified was returned.
20067func (c *AdvertisersInsertionOrdersGetCall) Do(opts ...googleapi.CallOption) (*InsertionOrder, error) {
20068	gensupport.SetOptions(c.urlParams_, opts...)
20069	res, err := c.doRequest("json")
20070	if res != nil && res.StatusCode == http.StatusNotModified {
20071		if res.Body != nil {
20072			res.Body.Close()
20073		}
20074		return nil, &googleapi.Error{
20075			Code:   res.StatusCode,
20076			Header: res.Header,
20077		}
20078	}
20079	if err != nil {
20080		return nil, err
20081	}
20082	defer googleapi.CloseBody(res)
20083	if err := googleapi.CheckResponse(res); err != nil {
20084		return nil, err
20085	}
20086	ret := &InsertionOrder{
20087		ServerResponse: googleapi.ServerResponse{
20088			Header:         res.Header,
20089			HTTPStatusCode: res.StatusCode,
20090		},
20091	}
20092	target := &ret
20093	if err := gensupport.DecodeResponse(target, res); err != nil {
20094		return nil, err
20095	}
20096	return ret, nil
20097	// {
20098	//   "description": "Gets an insertion order. Returns error code `NOT_FOUND` if the insertion order does not exist.",
20099	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}",
20100	//   "httpMethod": "GET",
20101	//   "id": "displayvideo.advertisers.insertionOrders.get",
20102	//   "parameterOrder": [
20103	//     "advertiserId",
20104	//     "insertionOrderId"
20105	//   ],
20106	//   "parameters": {
20107	//     "advertiserId": {
20108	//       "description": "Required. The ID of the advertiser this insertion order belongs to.",
20109	//       "format": "int64",
20110	//       "location": "path",
20111	//       "pattern": "^[^/]+$",
20112	//       "required": true,
20113	//       "type": "string"
20114	//     },
20115	//     "insertionOrderId": {
20116	//       "description": "Required. The ID of the insertion order to fetch.",
20117	//       "format": "int64",
20118	//       "location": "path",
20119	//       "pattern": "^[^/]+$",
20120	//       "required": true,
20121	//       "type": "string"
20122	//     }
20123	//   },
20124	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}",
20125	//   "response": {
20126	//     "$ref": "InsertionOrder"
20127	//   },
20128	//   "scopes": [
20129	//     "https://www.googleapis.com/auth/display-video"
20130	//   ]
20131	// }
20132
20133}
20134
20135// method id "displayvideo.advertisers.insertionOrders.list":
20136
20137type AdvertisersInsertionOrdersListCall struct {
20138	s            *Service
20139	advertiserId int64
20140	urlParams_   gensupport.URLParams
20141	ifNoneMatch_ string
20142	ctx_         context.Context
20143	header_      http.Header
20144}
20145
20146// List: Lists insertion orders in an advertiser. The order is defined
20147// by the order_by parameter. If a filter by entity_status is not
20148// specified, insertion orders with `ENTITY_STATUS_ARCHIVED` will not be
20149// included in the results.
20150//
20151// - advertiserId: The ID of the advertiser to list insertion orders
20152//   for.
20153func (r *AdvertisersInsertionOrdersService) List(advertiserId int64) *AdvertisersInsertionOrdersListCall {
20154	c := &AdvertisersInsertionOrdersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20155	c.advertiserId = advertiserId
20156	return c
20157}
20158
20159// Filter sets the optional parameter "filter": Allows filtering by
20160// insertion order properties. Supported syntax: * Filter expressions
20161// are made up of one or more restrictions. * Restrictions can be
20162// combined by `AND` or `OR` logical operators. A sequence of
20163// restrictions implicitly uses `AND`. * A restriction has the form of
20164// `{field} {operator} {value}`. * The operator used on
20165// `budget.budget_segments.date_range.end_date` must be LESS THAN (<). *
20166// The operator used on `updateTime` must be `GREATER THAN OR EQUAL TO
20167// (>=)` or `LESS THAN OR EQUAL TO (<=)`. * The operators used on all
20168// other fields must be `EQUALS (=)`. * Supported fields: - `campaignId`
20169// - `displayName` - `entityStatus` -
20170// `budget.budget_segments.date_range.end_date` (input as YYYY-MM-DD) -
20171// `updateTime` (input in ISO 8601 format, or YYYY-MM-DDTHH:MM:SSZ)
20172// Examples: * All insertion orders under a campaign:
20173// `campaignId="1234" * All `ENTITY_STATUS_ACTIVE` or
20174// `ENTITY_STATUS_PAUSED` insertion orders under an advertiser:
20175// `(entityStatus="ENTITY_STATUS_ACTIVE" OR
20176// entityStatus="ENTITY_STATUS_PAUSED")` * All insertion orders whose
20177// budget segments' dates end before March 28, 2019:
20178// `budget.budget_segments.date_range.end_date<"2019-03-28" * All
20179// insertion orders with an update time less than or equal to
20180// `2020-11-04T18:54:47Z (format of ISO 8601)`:
20181// `updateTime<="2020-11-04T18:54:47Z" * All insertion orders with an
20182// update time greater than or equal to `2020-11-04T18:54:47Z (format of
20183// ISO 8601)`: `updateTime>="2020-11-04T18:54:47Z" The length of this
20184// field should be no more than 500 characters.
20185func (c *AdvertisersInsertionOrdersListCall) Filter(filter string) *AdvertisersInsertionOrdersListCall {
20186	c.urlParams_.Set("filter", filter)
20187	return c
20188}
20189
20190// OrderBy sets the optional parameter "orderBy": Field by which to sort
20191// the list. Acceptable values are: * "displayName" (default) *
20192// "entityStatus" * "updateTime" The default sorting order is ascending.
20193// To specify descending order for a field, a suffix "desc" should be
20194// added to the field name. Example: `displayName desc`.
20195func (c *AdvertisersInsertionOrdersListCall) OrderBy(orderBy string) *AdvertisersInsertionOrdersListCall {
20196	c.urlParams_.Set("orderBy", orderBy)
20197	return c
20198}
20199
20200// PageSize sets the optional parameter "pageSize": Requested page size.
20201// Must be between `1` and `100`. If unspecified will default to `100`.
20202// Returns error code `INVALID_ARGUMENT` if an invalid value is
20203// specified.
20204func (c *AdvertisersInsertionOrdersListCall) PageSize(pageSize int64) *AdvertisersInsertionOrdersListCall {
20205	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
20206	return c
20207}
20208
20209// PageToken sets the optional parameter "pageToken": A token
20210// identifying a page of results the server should return. Typically,
20211// this is the value of next_page_token returned from the previous call
20212// to `ListInsertionOrders` method. If not specified, the first page of
20213// results will be returned.
20214func (c *AdvertisersInsertionOrdersListCall) PageToken(pageToken string) *AdvertisersInsertionOrdersListCall {
20215	c.urlParams_.Set("pageToken", pageToken)
20216	return c
20217}
20218
20219// Fields allows partial responses to be retrieved. See
20220// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20221// for more information.
20222func (c *AdvertisersInsertionOrdersListCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersListCall {
20223	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20224	return c
20225}
20226
20227// IfNoneMatch sets the optional parameter which makes the operation
20228// fail if the object's ETag matches the given value. This is useful for
20229// getting updates only after the object has changed since the last
20230// request. Use googleapi.IsNotModified to check whether the response
20231// error from Do is the result of In-None-Match.
20232func (c *AdvertisersInsertionOrdersListCall) IfNoneMatch(entityTag string) *AdvertisersInsertionOrdersListCall {
20233	c.ifNoneMatch_ = entityTag
20234	return c
20235}
20236
20237// Context sets the context to be used in this call's Do method. Any
20238// pending HTTP request will be aborted if the provided context is
20239// canceled.
20240func (c *AdvertisersInsertionOrdersListCall) Context(ctx context.Context) *AdvertisersInsertionOrdersListCall {
20241	c.ctx_ = ctx
20242	return c
20243}
20244
20245// Header returns an http.Header that can be modified by the caller to
20246// add HTTP headers to the request.
20247func (c *AdvertisersInsertionOrdersListCall) Header() http.Header {
20248	if c.header_ == nil {
20249		c.header_ = make(http.Header)
20250	}
20251	return c.header_
20252}
20253
20254func (c *AdvertisersInsertionOrdersListCall) doRequest(alt string) (*http.Response, error) {
20255	reqHeaders := make(http.Header)
20256	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
20257	for k, v := range c.header_ {
20258		reqHeaders[k] = v
20259	}
20260	reqHeaders.Set("User-Agent", c.s.userAgent())
20261	if c.ifNoneMatch_ != "" {
20262		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
20263	}
20264	var body io.Reader = nil
20265	c.urlParams_.Set("alt", alt)
20266	c.urlParams_.Set("prettyPrint", "false")
20267	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders")
20268	urls += "?" + c.urlParams_.Encode()
20269	req, err := http.NewRequest("GET", urls, body)
20270	if err != nil {
20271		return nil, err
20272	}
20273	req.Header = reqHeaders
20274	googleapi.Expand(req.URL, map[string]string{
20275		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
20276	})
20277	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20278}
20279
20280// Do executes the "displayvideo.advertisers.insertionOrders.list" call.
20281// Exactly one of *ListInsertionOrdersResponse or error will be non-nil.
20282// Any non-2xx status code is an error. Response headers are in either
20283// *ListInsertionOrdersResponse.ServerResponse.Header or (if a response
20284// was returned at all) in error.(*googleapi.Error).Header. Use
20285// googleapi.IsNotModified to check whether the returned error was
20286// because http.StatusNotModified was returned.
20287func (c *AdvertisersInsertionOrdersListCall) Do(opts ...googleapi.CallOption) (*ListInsertionOrdersResponse, error) {
20288	gensupport.SetOptions(c.urlParams_, opts...)
20289	res, err := c.doRequest("json")
20290	if res != nil && res.StatusCode == http.StatusNotModified {
20291		if res.Body != nil {
20292			res.Body.Close()
20293		}
20294		return nil, &googleapi.Error{
20295			Code:   res.StatusCode,
20296			Header: res.Header,
20297		}
20298	}
20299	if err != nil {
20300		return nil, err
20301	}
20302	defer googleapi.CloseBody(res)
20303	if err := googleapi.CheckResponse(res); err != nil {
20304		return nil, err
20305	}
20306	ret := &ListInsertionOrdersResponse{
20307		ServerResponse: googleapi.ServerResponse{
20308			Header:         res.Header,
20309			HTTPStatusCode: res.StatusCode,
20310		},
20311	}
20312	target := &ret
20313	if err := gensupport.DecodeResponse(target, res); err != nil {
20314		return nil, err
20315	}
20316	return ret, nil
20317	// {
20318	//   "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.",
20319	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders",
20320	//   "httpMethod": "GET",
20321	//   "id": "displayvideo.advertisers.insertionOrders.list",
20322	//   "parameterOrder": [
20323	//     "advertiserId"
20324	//   ],
20325	//   "parameters": {
20326	//     "advertiserId": {
20327	//       "description": "Required. The ID of the advertiser to list insertion orders for.",
20328	//       "format": "int64",
20329	//       "location": "path",
20330	//       "pattern": "^[^/]+$",
20331	//       "required": true,
20332	//       "type": "string"
20333	//     },
20334	//     "filter": {
20335	//       "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.",
20336	//       "location": "query",
20337	//       "type": "string"
20338	//     },
20339	//     "orderBy": {
20340	//       "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`.",
20341	//       "location": "query",
20342	//       "type": "string"
20343	//     },
20344	//     "pageSize": {
20345	//       "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.",
20346	//       "format": "int32",
20347	//       "location": "query",
20348	//       "type": "integer"
20349	//     },
20350	//     "pageToken": {
20351	//       "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.",
20352	//       "location": "query",
20353	//       "type": "string"
20354	//     }
20355	//   },
20356	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders",
20357	//   "response": {
20358	//     "$ref": "ListInsertionOrdersResponse"
20359	//   },
20360	//   "scopes": [
20361	//     "https://www.googleapis.com/auth/display-video"
20362	//   ]
20363	// }
20364
20365}
20366
20367// Pages invokes f for each page of results.
20368// A non-nil error returned from f will halt the iteration.
20369// The provided context supersedes any context provided to the Context method.
20370func (c *AdvertisersInsertionOrdersListCall) Pages(ctx context.Context, f func(*ListInsertionOrdersResponse) error) error {
20371	c.ctx_ = ctx
20372	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
20373	for {
20374		x, err := c.Do()
20375		if err != nil {
20376			return err
20377		}
20378		if err := f(x); err != nil {
20379			return err
20380		}
20381		if x.NextPageToken == "" {
20382			return nil
20383		}
20384		c.PageToken(x.NextPageToken)
20385	}
20386}
20387
20388// method id "displayvideo.advertisers.insertionOrders.patch":
20389
20390type AdvertisersInsertionOrdersPatchCall struct {
20391	s                *Service
20392	advertiserId     int64
20393	insertionOrderId int64
20394	insertionorder   *InsertionOrder
20395	urlParams_       gensupport.URLParams
20396	ctx_             context.Context
20397	header_          http.Header
20398}
20399
20400// Patch: Updates an existing insertion order. Returns the updated
20401// insertion order if successful.
20402//
20403// - advertiserId: Output only. The unique ID of the advertiser the
20404//   insertion order belongs to.
20405// - insertionOrderId: Output only. The unique ID of the insertion
20406//   order. Assigned by the system.
20407func (r *AdvertisersInsertionOrdersService) Patch(advertiserId int64, insertionOrderId int64, insertionorder *InsertionOrder) *AdvertisersInsertionOrdersPatchCall {
20408	c := &AdvertisersInsertionOrdersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20409	c.advertiserId = advertiserId
20410	c.insertionOrderId = insertionOrderId
20411	c.insertionorder = insertionorder
20412	return c
20413}
20414
20415// UpdateMask sets the optional parameter "updateMask": Required. The
20416// mask to control which fields to update.
20417func (c *AdvertisersInsertionOrdersPatchCall) UpdateMask(updateMask string) *AdvertisersInsertionOrdersPatchCall {
20418	c.urlParams_.Set("updateMask", updateMask)
20419	return c
20420}
20421
20422// Fields allows partial responses to be retrieved. See
20423// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20424// for more information.
20425func (c *AdvertisersInsertionOrdersPatchCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersPatchCall {
20426	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20427	return c
20428}
20429
20430// Context sets the context to be used in this call's Do method. Any
20431// pending HTTP request will be aborted if the provided context is
20432// canceled.
20433func (c *AdvertisersInsertionOrdersPatchCall) Context(ctx context.Context) *AdvertisersInsertionOrdersPatchCall {
20434	c.ctx_ = ctx
20435	return c
20436}
20437
20438// Header returns an http.Header that can be modified by the caller to
20439// add HTTP headers to the request.
20440func (c *AdvertisersInsertionOrdersPatchCall) Header() http.Header {
20441	if c.header_ == nil {
20442		c.header_ = make(http.Header)
20443	}
20444	return c.header_
20445}
20446
20447func (c *AdvertisersInsertionOrdersPatchCall) doRequest(alt string) (*http.Response, error) {
20448	reqHeaders := make(http.Header)
20449	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
20450	for k, v := range c.header_ {
20451		reqHeaders[k] = v
20452	}
20453	reqHeaders.Set("User-Agent", c.s.userAgent())
20454	var body io.Reader = nil
20455	body, err := googleapi.WithoutDataWrapper.JSONReader(c.insertionorder)
20456	if err != nil {
20457		return nil, err
20458	}
20459	reqHeaders.Set("Content-Type", "application/json")
20460	c.urlParams_.Set("alt", alt)
20461	c.urlParams_.Set("prettyPrint", "false")
20462	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}")
20463	urls += "?" + c.urlParams_.Encode()
20464	req, err := http.NewRequest("PATCH", urls, body)
20465	if err != nil {
20466		return nil, err
20467	}
20468	req.Header = reqHeaders
20469	googleapi.Expand(req.URL, map[string]string{
20470		"advertiserId":     strconv.FormatInt(c.advertiserId, 10),
20471		"insertionOrderId": strconv.FormatInt(c.insertionOrderId, 10),
20472	})
20473	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20474}
20475
20476// Do executes the "displayvideo.advertisers.insertionOrders.patch" call.
20477// Exactly one of *InsertionOrder or error will be non-nil. Any non-2xx
20478// status code is an error. Response headers are in either
20479// *InsertionOrder.ServerResponse.Header or (if a response was returned
20480// at all) in error.(*googleapi.Error).Header. Use
20481// googleapi.IsNotModified to check whether the returned error was
20482// because http.StatusNotModified was returned.
20483func (c *AdvertisersInsertionOrdersPatchCall) Do(opts ...googleapi.CallOption) (*InsertionOrder, error) {
20484	gensupport.SetOptions(c.urlParams_, opts...)
20485	res, err := c.doRequest("json")
20486	if res != nil && res.StatusCode == http.StatusNotModified {
20487		if res.Body != nil {
20488			res.Body.Close()
20489		}
20490		return nil, &googleapi.Error{
20491			Code:   res.StatusCode,
20492			Header: res.Header,
20493		}
20494	}
20495	if err != nil {
20496		return nil, err
20497	}
20498	defer googleapi.CloseBody(res)
20499	if err := googleapi.CheckResponse(res); err != nil {
20500		return nil, err
20501	}
20502	ret := &InsertionOrder{
20503		ServerResponse: googleapi.ServerResponse{
20504			Header:         res.Header,
20505			HTTPStatusCode: res.StatusCode,
20506		},
20507	}
20508	target := &ret
20509	if err := gensupport.DecodeResponse(target, res); err != nil {
20510		return nil, err
20511	}
20512	return ret, nil
20513	// {
20514	//   "description": "Updates an existing insertion order. Returns the updated insertion order if successful.",
20515	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}",
20516	//   "httpMethod": "PATCH",
20517	//   "id": "displayvideo.advertisers.insertionOrders.patch",
20518	//   "parameterOrder": [
20519	//     "advertiserId",
20520	//     "insertionOrderId"
20521	//   ],
20522	//   "parameters": {
20523	//     "advertiserId": {
20524	//       "description": "Output only. The unique ID of the advertiser the insertion order belongs to.",
20525	//       "format": "int64",
20526	//       "location": "path",
20527	//       "pattern": "^[^/]+$",
20528	//       "required": true,
20529	//       "type": "string"
20530	//     },
20531	//     "insertionOrderId": {
20532	//       "description": "Output only. The unique ID of the insertion order. Assigned by the system.",
20533	//       "format": "int64",
20534	//       "location": "path",
20535	//       "pattern": "^[^/]+$",
20536	//       "required": true,
20537	//       "type": "string"
20538	//     },
20539	//     "updateMask": {
20540	//       "description": "Required. The mask to control which fields to update.",
20541	//       "format": "google-fieldmask",
20542	//       "location": "query",
20543	//       "type": "string"
20544	//     }
20545	//   },
20546	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}",
20547	//   "request": {
20548	//     "$ref": "InsertionOrder"
20549	//   },
20550	//   "response": {
20551	//     "$ref": "InsertionOrder"
20552	//   },
20553	//   "scopes": [
20554	//     "https://www.googleapis.com/auth/display-video"
20555	//   ]
20556	// }
20557
20558}
20559
20560// method id "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.get":
20561
20562type AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall struct {
20563	s                         *Service
20564	advertiserId              int64
20565	insertionOrderId          int64
20566	targetingType             string
20567	assignedTargetingOptionId string
20568	urlParams_                gensupport.URLParams
20569	ifNoneMatch_              string
20570	ctx_                      context.Context
20571	header_                   http.Header
20572}
20573
20574// Get: Gets a single targeting option assigned to an insertion order.
20575//
20576// - advertiserId: The ID of the advertiser the insertion order belongs
20577//   to.
20578// - assignedTargetingOptionId: An identifier unique to the targeting
20579//   type in this insertion order that identifies the assigned targeting
20580//   option being requested.
20581// - insertionOrderId: The ID of the insertion order the assigned
20582//   targeting option belongs to.
20583// - targetingType: Identifies the type of this assigned targeting
20584//   option.
20585func (r *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService) Get(advertiserId int64, insertionOrderId int64, targetingType string, assignedTargetingOptionId string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall {
20586	c := &AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20587	c.advertiserId = advertiserId
20588	c.insertionOrderId = insertionOrderId
20589	c.targetingType = targetingType
20590	c.assignedTargetingOptionId = assignedTargetingOptionId
20591	return c
20592}
20593
20594// Fields allows partial responses to be retrieved. See
20595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20596// for more information.
20597func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall {
20598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20599	return c
20600}
20601
20602// IfNoneMatch sets the optional parameter which makes the operation
20603// fail if the object's ETag matches the given value. This is useful for
20604// getting updates only after the object has changed since the last
20605// request. Use googleapi.IsNotModified to check whether the response
20606// error from Do is the result of In-None-Match.
20607func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall) IfNoneMatch(entityTag string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall {
20608	c.ifNoneMatch_ = entityTag
20609	return c
20610}
20611
20612// Context sets the context to be used in this call's Do method. Any
20613// pending HTTP request will be aborted if the provided context is
20614// canceled.
20615func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall) Context(ctx context.Context) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall {
20616	c.ctx_ = ctx
20617	return c
20618}
20619
20620// Header returns an http.Header that can be modified by the caller to
20621// add HTTP headers to the request.
20622func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall) Header() http.Header {
20623	if c.header_ == nil {
20624		c.header_ = make(http.Header)
20625	}
20626	return c.header_
20627}
20628
20629func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall) doRequest(alt string) (*http.Response, error) {
20630	reqHeaders := make(http.Header)
20631	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
20632	for k, v := range c.header_ {
20633		reqHeaders[k] = v
20634	}
20635	reqHeaders.Set("User-Agent", c.s.userAgent())
20636	if c.ifNoneMatch_ != "" {
20637		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
20638	}
20639	var body io.Reader = nil
20640	c.urlParams_.Set("alt", alt)
20641	c.urlParams_.Set("prettyPrint", "false")
20642	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
20643	urls += "?" + c.urlParams_.Encode()
20644	req, err := http.NewRequest("GET", urls, body)
20645	if err != nil {
20646		return nil, err
20647	}
20648	req.Header = reqHeaders
20649	googleapi.Expand(req.URL, map[string]string{
20650		"advertiserId":              strconv.FormatInt(c.advertiserId, 10),
20651		"insertionOrderId":          strconv.FormatInt(c.insertionOrderId, 10),
20652		"targetingType":             c.targetingType,
20653		"assignedTargetingOptionId": c.assignedTargetingOptionId,
20654	})
20655	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20656}
20657
20658// Do executes the "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.get" call.
20659// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
20660// non-2xx status code is an error. Response headers are in either
20661// *AssignedTargetingOption.ServerResponse.Header or (if a response was
20662// returned at all) in error.(*googleapi.Error).Header. Use
20663// googleapi.IsNotModified to check whether the returned error was
20664// because http.StatusNotModified was returned.
20665func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsGetCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
20666	gensupport.SetOptions(c.urlParams_, opts...)
20667	res, err := c.doRequest("json")
20668	if res != nil && res.StatusCode == http.StatusNotModified {
20669		if res.Body != nil {
20670			res.Body.Close()
20671		}
20672		return nil, &googleapi.Error{
20673			Code:   res.StatusCode,
20674			Header: res.Header,
20675		}
20676	}
20677	if err != nil {
20678		return nil, err
20679	}
20680	defer googleapi.CloseBody(res)
20681	if err := googleapi.CheckResponse(res); err != nil {
20682		return nil, err
20683	}
20684	ret := &AssignedTargetingOption{
20685		ServerResponse: googleapi.ServerResponse{
20686			Header:         res.Header,
20687			HTTPStatusCode: res.StatusCode,
20688		},
20689	}
20690	target := &ret
20691	if err := gensupport.DecodeResponse(target, res); err != nil {
20692		return nil, err
20693	}
20694	return ret, nil
20695	// {
20696	//   "description": "Gets a single targeting option assigned to an insertion order.",
20697	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
20698	//   "httpMethod": "GET",
20699	//   "id": "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.get",
20700	//   "parameterOrder": [
20701	//     "advertiserId",
20702	//     "insertionOrderId",
20703	//     "targetingType",
20704	//     "assignedTargetingOptionId"
20705	//   ],
20706	//   "parameters": {
20707	//     "advertiserId": {
20708	//       "description": "Required. The ID of the advertiser the insertion order belongs to.",
20709	//       "format": "int64",
20710	//       "location": "path",
20711	//       "pattern": "^[^/]+$",
20712	//       "required": true,
20713	//       "type": "string"
20714	//     },
20715	//     "assignedTargetingOptionId": {
20716	//       "description": "Required. An identifier unique to the targeting type in this insertion order that identifies the assigned targeting option being requested.",
20717	//       "location": "path",
20718	//       "pattern": "^[^/]+$",
20719	//       "required": true,
20720	//       "type": "string"
20721	//     },
20722	//     "insertionOrderId": {
20723	//       "description": "Required. The ID of the insertion order the assigned targeting option belongs to.",
20724	//       "format": "int64",
20725	//       "location": "path",
20726	//       "pattern": "^[^/]+$",
20727	//       "required": true,
20728	//       "type": "string"
20729	//     },
20730	//     "targetingType": {
20731	//       "description": "Required. Identifies the type of this assigned targeting option.",
20732	//       "enum": [
20733	//         "TARGETING_TYPE_UNSPECIFIED",
20734	//         "TARGETING_TYPE_CHANNEL",
20735	//         "TARGETING_TYPE_APP_CATEGORY",
20736	//         "TARGETING_TYPE_APP",
20737	//         "TARGETING_TYPE_URL",
20738	//         "TARGETING_TYPE_DAY_AND_TIME",
20739	//         "TARGETING_TYPE_AGE_RANGE",
20740	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
20741	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
20742	//         "TARGETING_TYPE_GENDER",
20743	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
20744	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
20745	//         "TARGETING_TYPE_PARENTAL_STATUS",
20746	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
20747	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
20748	//         "TARGETING_TYPE_DEVICE_TYPE",
20749	//         "TARGETING_TYPE_AUDIENCE_GROUP",
20750	//         "TARGETING_TYPE_BROWSER",
20751	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
20752	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
20753	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
20754	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
20755	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
20756	//         "TARGETING_TYPE_ENVIRONMENT",
20757	//         "TARGETING_TYPE_CARRIER_AND_ISP",
20758	//         "TARGETING_TYPE_OPERATING_SYSTEM",
20759	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
20760	//         "TARGETING_TYPE_KEYWORD",
20761	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
20762	//         "TARGETING_TYPE_VIEWABILITY",
20763	//         "TARGETING_TYPE_CATEGORY",
20764	//         "TARGETING_TYPE_INVENTORY_SOURCE",
20765	//         "TARGETING_TYPE_LANGUAGE",
20766	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
20767	//         "TARGETING_TYPE_GEO_REGION",
20768	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
20769	//         "TARGETING_TYPE_EXCHANGE",
20770	//         "TARGETING_TYPE_SUB_EXCHANGE"
20771	//       ],
20772	//       "enumDescriptions": [
20773	//         "Default value when type is not specified or is unknown in this version.",
20774	//         "Target a channel (a custom group of related websites or apps).",
20775	//         "Target an app category (for example, education or puzzle games).",
20776	//         "Target a specific app (for example, Angry Birds).",
20777	//         "Target a specific url (for example, quora.com).",
20778	//         "Target ads during a chosen time period on a specific day.",
20779	//         "Target ads to a specific age range (for example, 18-24).",
20780	//         "Target ads to the specified regions on a regional location list.",
20781	//         "Target ads to the specified points of interest on a proximity location list.",
20782	//         "Target ads to a specific gender (for example, female or male).",
20783	//         "Target a specific video player size for video ads.",
20784	//         "Target user rewarded content for video ads.",
20785	//         "Target ads to a specific parental status (for example, parent or not a parent).",
20786	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
20787	//         "Target ads in a specific content outstream position.",
20788	//         "Target ads to a specific device type (for example, tablet or connected TV).",
20789	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
20790	//         "Target ads to specific web browsers (for example, Chrome).",
20791	//         "Target ads to a specific household income range (for example, top 10%).",
20792	//         "Target ads in a specific on screen position.",
20793	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
20794	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
20795	//         "Filter website content by sensitive categories (for example, adult).",
20796	//         "Target ads to a specific environment (for example, web or app).",
20797	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
20798	//         "Target ads to a specific operating system (for example, macOS).",
20799	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
20800	//         "Target ads to a specific keyword (for example, dog or retriever).",
20801	//         "Target ads to a specific negative keyword list.",
20802	//         "Target ads to a specific viewability (for example, 80% viewable).",
20803	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
20804	//         "Purchase impressions from specific deals and auction packages.",
20805	//         "Target ads to a specific language (for example, English or Japanese).",
20806	//         "Target ads to ads.txt authorized sellers.",
20807	//         "Target ads to a specific regional location (for example, a city or state).",
20808	//         "Purchase impressions from a group of deals and auction packages.",
20809	//         "Purchase impressions from specific exchanges.",
20810	//         "Purchase impressions from specific sub-exchanges."
20811	//       ],
20812	//       "location": "path",
20813	//       "pattern": "^[^/]+$",
20814	//       "required": true,
20815	//       "type": "string"
20816	//     }
20817	//   },
20818	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
20819	//   "response": {
20820	//     "$ref": "AssignedTargetingOption"
20821	//   },
20822	//   "scopes": [
20823	//     "https://www.googleapis.com/auth/display-video"
20824	//   ]
20825	// }
20826
20827}
20828
20829// method id "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.list":
20830
20831type AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall struct {
20832	s                *Service
20833	advertiserId     int64
20834	insertionOrderId int64
20835	targetingType    string
20836	urlParams_       gensupport.URLParams
20837	ifNoneMatch_     string
20838	ctx_             context.Context
20839	header_          http.Header
20840}
20841
20842// List: Lists the targeting options assigned to an insertion order.
20843//
20844// - advertiserId: The ID of the advertiser the insertion order belongs
20845//   to.
20846// - insertionOrderId: The ID of the insertion order to list assigned
20847//   targeting options for.
20848// - targetingType: Identifies the type of assigned targeting options to
20849//   list.
20850func (r *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsService) List(advertiserId int64, insertionOrderId int64, targetingType string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
20851	c := &AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
20852	c.advertiserId = advertiserId
20853	c.insertionOrderId = insertionOrderId
20854	c.targetingType = targetingType
20855	return c
20856}
20857
20858// Filter sets the optional parameter "filter": Allows filtering by
20859// assigned targeting option properties. Supported syntax: * Filter
20860// expressions are made up of one or more restrictions. * Restrictions
20861// can be combined by the logical operator `OR`. * A restriction has the
20862// form of `{field} {operator} {value}`. * The operator must be `EQUALS
20863// (=)`. * Supported fields: - `assignedTargetingOptionId` -
20864// `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2
20865// `assignedTargetingOptionId="1" OR assignedTargetingOptionId="2" *
20866// AssignedTargetingOptions with inheritance status of NOT_INHERITED or
20867// INHERITED_FROM_PARTNER `inheritance="NOT_INHERITED" OR
20868// inheritance="INHERITED_FROM_PARTNER" The length of this field should
20869// be no more than 500 characters.
20870func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) Filter(filter string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
20871	c.urlParams_.Set("filter", filter)
20872	return c
20873}
20874
20875// OrderBy sets the optional parameter "orderBy": Field by which to sort
20876// the list. Acceptable values are: * `assignedTargetingOptionId`
20877// (default) The default sorting order is ascending. To specify
20878// descending order for a field, a suffix "desc" should be added to the
20879// field name. Example: `assignedTargetingOptionId desc`.
20880func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) OrderBy(orderBy string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
20881	c.urlParams_.Set("orderBy", orderBy)
20882	return c
20883}
20884
20885// PageSize sets the optional parameter "pageSize": Requested page size.
20886// Must be between `1` and `100`. If unspecified will default to `100`.
20887// Returns error code `INVALID_ARGUMENT` if an invalid value is
20888// specified.
20889func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) PageSize(pageSize int64) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
20890	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
20891	return c
20892}
20893
20894// PageToken sets the optional parameter "pageToken": A token
20895// identifying a page of results the server should return. Typically,
20896// this is the value of next_page_token returned from the previous call
20897// to `ListInsertionOrderAssignedTargetingOptions` method. If not
20898// specified, the first page of results will be returned.
20899func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) PageToken(pageToken string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
20900	c.urlParams_.Set("pageToken", pageToken)
20901	return c
20902}
20903
20904// Fields allows partial responses to be retrieved. See
20905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
20906// for more information.
20907func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) Fields(s ...googleapi.Field) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
20908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
20909	return c
20910}
20911
20912// IfNoneMatch sets the optional parameter which makes the operation
20913// fail if the object's ETag matches the given value. This is useful for
20914// getting updates only after the object has changed since the last
20915// request. Use googleapi.IsNotModified to check whether the response
20916// error from Do is the result of In-None-Match.
20917func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) IfNoneMatch(entityTag string) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
20918	c.ifNoneMatch_ = entityTag
20919	return c
20920}
20921
20922// Context sets the context to be used in this call's Do method. Any
20923// pending HTTP request will be aborted if the provided context is
20924// canceled.
20925func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) Context(ctx context.Context) *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall {
20926	c.ctx_ = ctx
20927	return c
20928}
20929
20930// Header returns an http.Header that can be modified by the caller to
20931// add HTTP headers to the request.
20932func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) Header() http.Header {
20933	if c.header_ == nil {
20934		c.header_ = make(http.Header)
20935	}
20936	return c.header_
20937}
20938
20939func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) doRequest(alt string) (*http.Response, error) {
20940	reqHeaders := make(http.Header)
20941	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
20942	for k, v := range c.header_ {
20943		reqHeaders[k] = v
20944	}
20945	reqHeaders.Set("User-Agent", c.s.userAgent())
20946	if c.ifNoneMatch_ != "" {
20947		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
20948	}
20949	var body io.Reader = nil
20950	c.urlParams_.Set("alt", alt)
20951	c.urlParams_.Set("prettyPrint", "false")
20952	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
20953	urls += "?" + c.urlParams_.Encode()
20954	req, err := http.NewRequest("GET", urls, body)
20955	if err != nil {
20956		return nil, err
20957	}
20958	req.Header = reqHeaders
20959	googleapi.Expand(req.URL, map[string]string{
20960		"advertiserId":     strconv.FormatInt(c.advertiserId, 10),
20961		"insertionOrderId": strconv.FormatInt(c.insertionOrderId, 10),
20962		"targetingType":    c.targetingType,
20963	})
20964	return gensupport.SendRequest(c.ctx_, c.s.client, req)
20965}
20966
20967// Do executes the "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.list" call.
20968// Exactly one of *ListInsertionOrderAssignedTargetingOptionsResponse or
20969// error will be non-nil. Any non-2xx status code is an error. Response
20970// headers are in either
20971// *ListInsertionOrderAssignedTargetingOptionsResponse.ServerResponse.Hea
20972// der or (if a response was returned at all) in
20973// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
20974// whether the returned error was because http.StatusNotModified was
20975// returned.
20976func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) Do(opts ...googleapi.CallOption) (*ListInsertionOrderAssignedTargetingOptionsResponse, error) {
20977	gensupport.SetOptions(c.urlParams_, opts...)
20978	res, err := c.doRequest("json")
20979	if res != nil && res.StatusCode == http.StatusNotModified {
20980		if res.Body != nil {
20981			res.Body.Close()
20982		}
20983		return nil, &googleapi.Error{
20984			Code:   res.StatusCode,
20985			Header: res.Header,
20986		}
20987	}
20988	if err != nil {
20989		return nil, err
20990	}
20991	defer googleapi.CloseBody(res)
20992	if err := googleapi.CheckResponse(res); err != nil {
20993		return nil, err
20994	}
20995	ret := &ListInsertionOrderAssignedTargetingOptionsResponse{
20996		ServerResponse: googleapi.ServerResponse{
20997			Header:         res.Header,
20998			HTTPStatusCode: res.StatusCode,
20999		},
21000	}
21001	target := &ret
21002	if err := gensupport.DecodeResponse(target, res); err != nil {
21003		return nil, err
21004	}
21005	return ret, nil
21006	// {
21007	//   "description": "Lists the targeting options assigned to an insertion order.",
21008	//   "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
21009	//   "httpMethod": "GET",
21010	//   "id": "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.list",
21011	//   "parameterOrder": [
21012	//     "advertiserId",
21013	//     "insertionOrderId",
21014	//     "targetingType"
21015	//   ],
21016	//   "parameters": {
21017	//     "advertiserId": {
21018	//       "description": "Required. The ID of the advertiser the insertion order belongs to.",
21019	//       "format": "int64",
21020	//       "location": "path",
21021	//       "pattern": "^[^/]+$",
21022	//       "required": true,
21023	//       "type": "string"
21024	//     },
21025	//     "filter": {
21026	//       "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.",
21027	//       "location": "query",
21028	//       "type": "string"
21029	//     },
21030	//     "insertionOrderId": {
21031	//       "description": "Required. The ID of the insertion order to list assigned targeting options for.",
21032	//       "format": "int64",
21033	//       "location": "path",
21034	//       "pattern": "^[^/]+$",
21035	//       "required": true,
21036	//       "type": "string"
21037	//     },
21038	//     "orderBy": {
21039	//       "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`.",
21040	//       "location": "query",
21041	//       "type": "string"
21042	//     },
21043	//     "pageSize": {
21044	//       "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.",
21045	//       "format": "int32",
21046	//       "location": "query",
21047	//       "type": "integer"
21048	//     },
21049	//     "pageToken": {
21050	//       "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.",
21051	//       "location": "query",
21052	//       "type": "string"
21053	//     },
21054	//     "targetingType": {
21055	//       "description": "Required. Identifies the type of assigned targeting options to list.",
21056	//       "enum": [
21057	//         "TARGETING_TYPE_UNSPECIFIED",
21058	//         "TARGETING_TYPE_CHANNEL",
21059	//         "TARGETING_TYPE_APP_CATEGORY",
21060	//         "TARGETING_TYPE_APP",
21061	//         "TARGETING_TYPE_URL",
21062	//         "TARGETING_TYPE_DAY_AND_TIME",
21063	//         "TARGETING_TYPE_AGE_RANGE",
21064	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
21065	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
21066	//         "TARGETING_TYPE_GENDER",
21067	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
21068	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
21069	//         "TARGETING_TYPE_PARENTAL_STATUS",
21070	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
21071	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
21072	//         "TARGETING_TYPE_DEVICE_TYPE",
21073	//         "TARGETING_TYPE_AUDIENCE_GROUP",
21074	//         "TARGETING_TYPE_BROWSER",
21075	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
21076	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
21077	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
21078	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
21079	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
21080	//         "TARGETING_TYPE_ENVIRONMENT",
21081	//         "TARGETING_TYPE_CARRIER_AND_ISP",
21082	//         "TARGETING_TYPE_OPERATING_SYSTEM",
21083	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
21084	//         "TARGETING_TYPE_KEYWORD",
21085	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
21086	//         "TARGETING_TYPE_VIEWABILITY",
21087	//         "TARGETING_TYPE_CATEGORY",
21088	//         "TARGETING_TYPE_INVENTORY_SOURCE",
21089	//         "TARGETING_TYPE_LANGUAGE",
21090	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
21091	//         "TARGETING_TYPE_GEO_REGION",
21092	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
21093	//         "TARGETING_TYPE_EXCHANGE",
21094	//         "TARGETING_TYPE_SUB_EXCHANGE"
21095	//       ],
21096	//       "enumDescriptions": [
21097	//         "Default value when type is not specified or is unknown in this version.",
21098	//         "Target a channel (a custom group of related websites or apps).",
21099	//         "Target an app category (for example, education or puzzle games).",
21100	//         "Target a specific app (for example, Angry Birds).",
21101	//         "Target a specific url (for example, quora.com).",
21102	//         "Target ads during a chosen time period on a specific day.",
21103	//         "Target ads to a specific age range (for example, 18-24).",
21104	//         "Target ads to the specified regions on a regional location list.",
21105	//         "Target ads to the specified points of interest on a proximity location list.",
21106	//         "Target ads to a specific gender (for example, female or male).",
21107	//         "Target a specific video player size for video ads.",
21108	//         "Target user rewarded content for video ads.",
21109	//         "Target ads to a specific parental status (for example, parent or not a parent).",
21110	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
21111	//         "Target ads in a specific content outstream position.",
21112	//         "Target ads to a specific device type (for example, tablet or connected TV).",
21113	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
21114	//         "Target ads to specific web browsers (for example, Chrome).",
21115	//         "Target ads to a specific household income range (for example, top 10%).",
21116	//         "Target ads in a specific on screen position.",
21117	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
21118	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
21119	//         "Filter website content by sensitive categories (for example, adult).",
21120	//         "Target ads to a specific environment (for example, web or app).",
21121	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
21122	//         "Target ads to a specific operating system (for example, macOS).",
21123	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
21124	//         "Target ads to a specific keyword (for example, dog or retriever).",
21125	//         "Target ads to a specific negative keyword list.",
21126	//         "Target ads to a specific viewability (for example, 80% viewable).",
21127	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
21128	//         "Purchase impressions from specific deals and auction packages.",
21129	//         "Target ads to a specific language (for example, English or Japanese).",
21130	//         "Target ads to ads.txt authorized sellers.",
21131	//         "Target ads to a specific regional location (for example, a city or state).",
21132	//         "Purchase impressions from a group of deals and auction packages.",
21133	//         "Purchase impressions from specific exchanges.",
21134	//         "Purchase impressions from specific sub-exchanges."
21135	//       ],
21136	//       "location": "path",
21137	//       "pattern": "^[^/]+$",
21138	//       "required": true,
21139	//       "type": "string"
21140	//     }
21141	//   },
21142	//   "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
21143	//   "response": {
21144	//     "$ref": "ListInsertionOrderAssignedTargetingOptionsResponse"
21145	//   },
21146	//   "scopes": [
21147	//     "https://www.googleapis.com/auth/display-video"
21148	//   ]
21149	// }
21150
21151}
21152
21153// Pages invokes f for each page of results.
21154// A non-nil error returned from f will halt the iteration.
21155// The provided context supersedes any context provided to the Context method.
21156func (c *AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsListCall) Pages(ctx context.Context, f func(*ListInsertionOrderAssignedTargetingOptionsResponse) error) error {
21157	c.ctx_ = ctx
21158	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
21159	for {
21160		x, err := c.Do()
21161		if err != nil {
21162			return err
21163		}
21164		if err := f(x); err != nil {
21165			return err
21166		}
21167		if x.NextPageToken == "" {
21168			return nil
21169		}
21170		c.PageToken(x.NextPageToken)
21171	}
21172}
21173
21174// method id "displayvideo.advertisers.lineItems.bulkEditLineItemAssignedTargetingOptions":
21175
21176type AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall struct {
21177	s                                               *Service
21178	advertiserId                                    int64
21179	lineItemId                                      int64
21180	bulkeditlineitemassignedtargetingoptionsrequest *BulkEditLineItemAssignedTargetingOptionsRequest
21181	urlParams_                                      gensupport.URLParams
21182	ctx_                                            context.Context
21183	header_                                         http.Header
21184}
21185
21186// BulkEditLineItemAssignedTargetingOptions: Bulk edits targeting
21187// options under a single line item. The operation will delete the
21188// assigned targeting options provided in
21189// BulkEditLineItemAssignedTargetingOptionsRequest.delete_requests and
21190// then create the assigned targeting options provided in
21191// BulkEditLineItemAssignedTargetingOptionsRequest.create_requests .
21192//
21193// - advertiserId: The ID of the advertiser the line item belongs to.
21194// - lineItemId: The ID of the line item the assigned targeting option
21195//   will belong to.
21196func (r *AdvertisersLineItemsService) BulkEditLineItemAssignedTargetingOptions(advertiserId int64, lineItemId int64, bulkeditlineitemassignedtargetingoptionsrequest *BulkEditLineItemAssignedTargetingOptionsRequest) *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall {
21197	c := &AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
21198	c.advertiserId = advertiserId
21199	c.lineItemId = lineItemId
21200	c.bulkeditlineitemassignedtargetingoptionsrequest = bulkeditlineitemassignedtargetingoptionsrequest
21201	return c
21202}
21203
21204// Fields allows partial responses to be retrieved. See
21205// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
21206// for more information.
21207func (c *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall {
21208	c.urlParams_.Set("fields", googleapi.CombineFields(s))
21209	return c
21210}
21211
21212// Context sets the context to be used in this call's Do method. Any
21213// pending HTTP request will be aborted if the provided context is
21214// canceled.
21215func (c *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall) Context(ctx context.Context) *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall {
21216	c.ctx_ = ctx
21217	return c
21218}
21219
21220// Header returns an http.Header that can be modified by the caller to
21221// add HTTP headers to the request.
21222func (c *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall) Header() http.Header {
21223	if c.header_ == nil {
21224		c.header_ = make(http.Header)
21225	}
21226	return c.header_
21227}
21228
21229func (c *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
21230	reqHeaders := make(http.Header)
21231	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
21232	for k, v := range c.header_ {
21233		reqHeaders[k] = v
21234	}
21235	reqHeaders.Set("User-Agent", c.s.userAgent())
21236	var body io.Reader = nil
21237	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditlineitemassignedtargetingoptionsrequest)
21238	if err != nil {
21239		return nil, err
21240	}
21241	reqHeaders.Set("Content-Type", "application/json")
21242	c.urlParams_.Set("alt", alt)
21243	c.urlParams_.Set("prettyPrint", "false")
21244	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}:bulkEditLineItemAssignedTargetingOptions")
21245	urls += "?" + c.urlParams_.Encode()
21246	req, err := http.NewRequest("POST", urls, body)
21247	if err != nil {
21248		return nil, err
21249	}
21250	req.Header = reqHeaders
21251	googleapi.Expand(req.URL, map[string]string{
21252		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
21253		"lineItemId":   strconv.FormatInt(c.lineItemId, 10),
21254	})
21255	return gensupport.SendRequest(c.ctx_, c.s.client, req)
21256}
21257
21258// Do executes the "displayvideo.advertisers.lineItems.bulkEditLineItemAssignedTargetingOptions" call.
21259// Exactly one of *BulkEditLineItemAssignedTargetingOptionsResponse or
21260// error will be non-nil. Any non-2xx status code is an error. Response
21261// headers are in either
21262// *BulkEditLineItemAssignedTargetingOptionsResponse.ServerResponse.Heade
21263// r or (if a response was returned at all) in
21264// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
21265// whether the returned error was because http.StatusNotModified was
21266// returned.
21267func (c *AdvertisersLineItemsBulkEditLineItemAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkEditLineItemAssignedTargetingOptionsResponse, error) {
21268	gensupport.SetOptions(c.urlParams_, opts...)
21269	res, err := c.doRequest("json")
21270	if res != nil && res.StatusCode == http.StatusNotModified {
21271		if res.Body != nil {
21272			res.Body.Close()
21273		}
21274		return nil, &googleapi.Error{
21275			Code:   res.StatusCode,
21276			Header: res.Header,
21277		}
21278	}
21279	if err != nil {
21280		return nil, err
21281	}
21282	defer googleapi.CloseBody(res)
21283	if err := googleapi.CheckResponse(res); err != nil {
21284		return nil, err
21285	}
21286	ret := &BulkEditLineItemAssignedTargetingOptionsResponse{
21287		ServerResponse: googleapi.ServerResponse{
21288			Header:         res.Header,
21289			HTTPStatusCode: res.StatusCode,
21290		},
21291	}
21292	target := &ret
21293	if err := gensupport.DecodeResponse(target, res); err != nil {
21294		return nil, err
21295	}
21296	return ret, nil
21297	// {
21298	//   "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 .",
21299	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}:bulkEditLineItemAssignedTargetingOptions",
21300	//   "httpMethod": "POST",
21301	//   "id": "displayvideo.advertisers.lineItems.bulkEditLineItemAssignedTargetingOptions",
21302	//   "parameterOrder": [
21303	//     "advertiserId",
21304	//     "lineItemId"
21305	//   ],
21306	//   "parameters": {
21307	//     "advertiserId": {
21308	//       "description": "Required. The ID of the advertiser the line item belongs to.",
21309	//       "format": "int64",
21310	//       "location": "path",
21311	//       "pattern": "^[^/]+$",
21312	//       "required": true,
21313	//       "type": "string"
21314	//     },
21315	//     "lineItemId": {
21316	//       "description": "Required. The ID of the line item the assigned targeting option will belong to.",
21317	//       "format": "int64",
21318	//       "location": "path",
21319	//       "pattern": "^[^/]+$",
21320	//       "required": true,
21321	//       "type": "string"
21322	//     }
21323	//   },
21324	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}:bulkEditLineItemAssignedTargetingOptions",
21325	//   "request": {
21326	//     "$ref": "BulkEditLineItemAssignedTargetingOptionsRequest"
21327	//   },
21328	//   "response": {
21329	//     "$ref": "BulkEditLineItemAssignedTargetingOptionsResponse"
21330	//   },
21331	//   "scopes": [
21332	//     "https://www.googleapis.com/auth/display-video"
21333	//   ]
21334	// }
21335
21336}
21337
21338// method id "displayvideo.advertisers.lineItems.bulkListLineItemAssignedTargetingOptions":
21339
21340type AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall struct {
21341	s            *Service
21342	advertiserId int64
21343	lineItemId   int64
21344	urlParams_   gensupport.URLParams
21345	ifNoneMatch_ string
21346	ctx_         context.Context
21347	header_      http.Header
21348}
21349
21350// BulkListLineItemAssignedTargetingOptions: Lists assigned targeting
21351// options of a line item across targeting types.
21352//
21353// - advertiserId: The ID of the advertiser the line item belongs to.
21354// - lineItemId: The ID of the line item to list assigned targeting
21355//   options for.
21356func (r *AdvertisersLineItemsService) BulkListLineItemAssignedTargetingOptions(advertiserId int64, lineItemId int64) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
21357	c := &AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
21358	c.advertiserId = advertiserId
21359	c.lineItemId = lineItemId
21360	return c
21361}
21362
21363// Filter sets the optional parameter "filter": Allows filtering by
21364// assigned targeting option properties. Supported syntax: * Filter
21365// expressions are made up of one or more restrictions. * Restrictions
21366// can be combined by the logical operator `OR` on the same field. * A
21367// restriction has the form of `{field} {operator} {value}`. * The
21368// operator must be `EQUALS (=)`. * Supported fields: - `targetingType`
21369// - `inheritance` Examples: * AssignedTargetingOptions of targeting
21370// type TARGETING_TYPE_PROXIMITY_LOCATION_LIST or TARGETING_TYPE_CHANNEL
21371// `targetingType="TARGETING_TYPE_PROXIMITY_LOCATION_LIST" OR
21372// targetingType="TARGETING_TYPE_CHANNEL" * AssignedTargetingOptions
21373// with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER
21374// `inheritance="NOT_INHERITED" OR inheritance="INHERITED_FROM_PARTNER"
21375// The length of this field should be no more than 500 characters.
21376func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) Filter(filter string) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
21377	c.urlParams_.Set("filter", filter)
21378	return c
21379}
21380
21381// OrderBy sets the optional parameter "orderBy": Field by which to sort
21382// the list. Acceptable values are: * `targetingType` (default) The
21383// default sorting order is ascending. To specify descending order for a
21384// field, a suffix "desc" should be added to the field name. Example:
21385// `targetingType desc`.
21386func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) OrderBy(orderBy string) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
21387	c.urlParams_.Set("orderBy", orderBy)
21388	return c
21389}
21390
21391// PageSize sets the optional parameter "pageSize": Requested page size.
21392// The size must be an integer between `1` and `5000`. If unspecified,
21393// the default is '5000'. Returns error code `INVALID_ARGUMENT` if an
21394// invalid value is specified.
21395func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) PageSize(pageSize int64) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
21396	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
21397	return c
21398}
21399
21400// PageToken sets the optional parameter "pageToken": A token that lets
21401// the client fetch the next page of results. Typically, this is the
21402// value of next_page_token returned from the previous call to
21403// `BulkListLineItemAssignedTargetingOptions` method. If not specified,
21404// the first page of results will be returned.
21405func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) PageToken(pageToken string) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
21406	c.urlParams_.Set("pageToken", pageToken)
21407	return c
21408}
21409
21410// Fields allows partial responses to be retrieved. See
21411// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
21412// for more information.
21413func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
21414	c.urlParams_.Set("fields", googleapi.CombineFields(s))
21415	return c
21416}
21417
21418// IfNoneMatch sets the optional parameter which makes the operation
21419// fail if the object's ETag matches the given value. This is useful for
21420// getting updates only after the object has changed since the last
21421// request. Use googleapi.IsNotModified to check whether the response
21422// error from Do is the result of In-None-Match.
21423func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) IfNoneMatch(entityTag string) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
21424	c.ifNoneMatch_ = entityTag
21425	return c
21426}
21427
21428// Context sets the context to be used in this call's Do method. Any
21429// pending HTTP request will be aborted if the provided context is
21430// canceled.
21431func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) Context(ctx context.Context) *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall {
21432	c.ctx_ = ctx
21433	return c
21434}
21435
21436// Header returns an http.Header that can be modified by the caller to
21437// add HTTP headers to the request.
21438func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) Header() http.Header {
21439	if c.header_ == nil {
21440		c.header_ = make(http.Header)
21441	}
21442	return c.header_
21443}
21444
21445func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
21446	reqHeaders := make(http.Header)
21447	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
21448	for k, v := range c.header_ {
21449		reqHeaders[k] = v
21450	}
21451	reqHeaders.Set("User-Agent", c.s.userAgent())
21452	if c.ifNoneMatch_ != "" {
21453		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
21454	}
21455	var body io.Reader = nil
21456	c.urlParams_.Set("alt", alt)
21457	c.urlParams_.Set("prettyPrint", "false")
21458	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}:bulkListLineItemAssignedTargetingOptions")
21459	urls += "?" + c.urlParams_.Encode()
21460	req, err := http.NewRequest("GET", urls, body)
21461	if err != nil {
21462		return nil, err
21463	}
21464	req.Header = reqHeaders
21465	googleapi.Expand(req.URL, map[string]string{
21466		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
21467		"lineItemId":   strconv.FormatInt(c.lineItemId, 10),
21468	})
21469	return gensupport.SendRequest(c.ctx_, c.s.client, req)
21470}
21471
21472// Do executes the "displayvideo.advertisers.lineItems.bulkListLineItemAssignedTargetingOptions" call.
21473// Exactly one of *BulkListLineItemAssignedTargetingOptionsResponse or
21474// error will be non-nil. Any non-2xx status code is an error. Response
21475// headers are in either
21476// *BulkListLineItemAssignedTargetingOptionsResponse.ServerResponse.Heade
21477// r or (if a response was returned at all) in
21478// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
21479// whether the returned error was because http.StatusNotModified was
21480// returned.
21481func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkListLineItemAssignedTargetingOptionsResponse, error) {
21482	gensupport.SetOptions(c.urlParams_, opts...)
21483	res, err := c.doRequest("json")
21484	if res != nil && res.StatusCode == http.StatusNotModified {
21485		if res.Body != nil {
21486			res.Body.Close()
21487		}
21488		return nil, &googleapi.Error{
21489			Code:   res.StatusCode,
21490			Header: res.Header,
21491		}
21492	}
21493	if err != nil {
21494		return nil, err
21495	}
21496	defer googleapi.CloseBody(res)
21497	if err := googleapi.CheckResponse(res); err != nil {
21498		return nil, err
21499	}
21500	ret := &BulkListLineItemAssignedTargetingOptionsResponse{
21501		ServerResponse: googleapi.ServerResponse{
21502			Header:         res.Header,
21503			HTTPStatusCode: res.StatusCode,
21504		},
21505	}
21506	target := &ret
21507	if err := gensupport.DecodeResponse(target, res); err != nil {
21508		return nil, err
21509	}
21510	return ret, nil
21511	// {
21512	//   "description": "Lists assigned targeting options of a line item across targeting types.",
21513	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}:bulkListLineItemAssignedTargetingOptions",
21514	//   "httpMethod": "GET",
21515	//   "id": "displayvideo.advertisers.lineItems.bulkListLineItemAssignedTargetingOptions",
21516	//   "parameterOrder": [
21517	//     "advertiserId",
21518	//     "lineItemId"
21519	//   ],
21520	//   "parameters": {
21521	//     "advertiserId": {
21522	//       "description": "Required. The ID of the advertiser the line item belongs to.",
21523	//       "format": "int64",
21524	//       "location": "path",
21525	//       "pattern": "^[^/]+$",
21526	//       "required": true,
21527	//       "type": "string"
21528	//     },
21529	//     "filter": {
21530	//       "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.",
21531	//       "location": "query",
21532	//       "type": "string"
21533	//     },
21534	//     "lineItemId": {
21535	//       "description": "Required. The ID of the line item to list assigned targeting options for.",
21536	//       "format": "int64",
21537	//       "location": "path",
21538	//       "pattern": "^[^/]+$",
21539	//       "required": true,
21540	//       "type": "string"
21541	//     },
21542	//     "orderBy": {
21543	//       "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`.",
21544	//       "location": "query",
21545	//       "type": "string"
21546	//     },
21547	//     "pageSize": {
21548	//       "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.",
21549	//       "format": "int32",
21550	//       "location": "query",
21551	//       "type": "integer"
21552	//     },
21553	//     "pageToken": {
21554	//       "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.",
21555	//       "location": "query",
21556	//       "type": "string"
21557	//     }
21558	//   },
21559	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}:bulkListLineItemAssignedTargetingOptions",
21560	//   "response": {
21561	//     "$ref": "BulkListLineItemAssignedTargetingOptionsResponse"
21562	//   },
21563	//   "scopes": [
21564	//     "https://www.googleapis.com/auth/display-video"
21565	//   ]
21566	// }
21567
21568}
21569
21570// Pages invokes f for each page of results.
21571// A non-nil error returned from f will halt the iteration.
21572// The provided context supersedes any context provided to the Context method.
21573func (c *AdvertisersLineItemsBulkListLineItemAssignedTargetingOptionsCall) Pages(ctx context.Context, f func(*BulkListLineItemAssignedTargetingOptionsResponse) error) error {
21574	c.ctx_ = ctx
21575	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
21576	for {
21577		x, err := c.Do()
21578		if err != nil {
21579			return err
21580		}
21581		if err := f(x); err != nil {
21582			return err
21583		}
21584		if x.NextPageToken == "" {
21585			return nil
21586		}
21587		c.PageToken(x.NextPageToken)
21588	}
21589}
21590
21591// method id "displayvideo.advertisers.lineItems.create":
21592
21593type AdvertisersLineItemsCreateCall struct {
21594	s            *Service
21595	advertiserId int64
21596	lineitem     *LineItem
21597	urlParams_   gensupport.URLParams
21598	ctx_         context.Context
21599	header_      http.Header
21600}
21601
21602// Create: Creates a new line item. Returns the newly created line item
21603// if successful.
21604//
21605// - advertiserId: Output only. The unique ID of the advertiser the line
21606//   item belongs to.
21607func (r *AdvertisersLineItemsService) Create(advertiserId int64, lineitem *LineItem) *AdvertisersLineItemsCreateCall {
21608	c := &AdvertisersLineItemsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
21609	c.advertiserId = advertiserId
21610	c.lineitem = lineitem
21611	return c
21612}
21613
21614// Fields allows partial responses to be retrieved. See
21615// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
21616// for more information.
21617func (c *AdvertisersLineItemsCreateCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsCreateCall {
21618	c.urlParams_.Set("fields", googleapi.CombineFields(s))
21619	return c
21620}
21621
21622// Context sets the context to be used in this call's Do method. Any
21623// pending HTTP request will be aborted if the provided context is
21624// canceled.
21625func (c *AdvertisersLineItemsCreateCall) Context(ctx context.Context) *AdvertisersLineItemsCreateCall {
21626	c.ctx_ = ctx
21627	return c
21628}
21629
21630// Header returns an http.Header that can be modified by the caller to
21631// add HTTP headers to the request.
21632func (c *AdvertisersLineItemsCreateCall) Header() http.Header {
21633	if c.header_ == nil {
21634		c.header_ = make(http.Header)
21635	}
21636	return c.header_
21637}
21638
21639func (c *AdvertisersLineItemsCreateCall) doRequest(alt string) (*http.Response, error) {
21640	reqHeaders := make(http.Header)
21641	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
21642	for k, v := range c.header_ {
21643		reqHeaders[k] = v
21644	}
21645	reqHeaders.Set("User-Agent", c.s.userAgent())
21646	var body io.Reader = nil
21647	body, err := googleapi.WithoutDataWrapper.JSONReader(c.lineitem)
21648	if err != nil {
21649		return nil, err
21650	}
21651	reqHeaders.Set("Content-Type", "application/json")
21652	c.urlParams_.Set("alt", alt)
21653	c.urlParams_.Set("prettyPrint", "false")
21654	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems")
21655	urls += "?" + c.urlParams_.Encode()
21656	req, err := http.NewRequest("POST", urls, body)
21657	if err != nil {
21658		return nil, err
21659	}
21660	req.Header = reqHeaders
21661	googleapi.Expand(req.URL, map[string]string{
21662		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
21663	})
21664	return gensupport.SendRequest(c.ctx_, c.s.client, req)
21665}
21666
21667// Do executes the "displayvideo.advertisers.lineItems.create" call.
21668// Exactly one of *LineItem or error will be non-nil. Any non-2xx status
21669// code is an error. Response headers are in either
21670// *LineItem.ServerResponse.Header or (if a response was returned at
21671// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
21672// to check whether the returned error was because
21673// http.StatusNotModified was returned.
21674func (c *AdvertisersLineItemsCreateCall) Do(opts ...googleapi.CallOption) (*LineItem, error) {
21675	gensupport.SetOptions(c.urlParams_, opts...)
21676	res, err := c.doRequest("json")
21677	if res != nil && res.StatusCode == http.StatusNotModified {
21678		if res.Body != nil {
21679			res.Body.Close()
21680		}
21681		return nil, &googleapi.Error{
21682			Code:   res.StatusCode,
21683			Header: res.Header,
21684		}
21685	}
21686	if err != nil {
21687		return nil, err
21688	}
21689	defer googleapi.CloseBody(res)
21690	if err := googleapi.CheckResponse(res); err != nil {
21691		return nil, err
21692	}
21693	ret := &LineItem{
21694		ServerResponse: googleapi.ServerResponse{
21695			Header:         res.Header,
21696			HTTPStatusCode: res.StatusCode,
21697		},
21698	}
21699	target := &ret
21700	if err := gensupport.DecodeResponse(target, res); err != nil {
21701		return nil, err
21702	}
21703	return ret, nil
21704	// {
21705	//   "description": "Creates a new line item. Returns the newly created line item if successful.",
21706	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems",
21707	//   "httpMethod": "POST",
21708	//   "id": "displayvideo.advertisers.lineItems.create",
21709	//   "parameterOrder": [
21710	//     "advertiserId"
21711	//   ],
21712	//   "parameters": {
21713	//     "advertiserId": {
21714	//       "description": "Output only. The unique ID of the advertiser the line item belongs to.",
21715	//       "format": "int64",
21716	//       "location": "path",
21717	//       "pattern": "^[^/]+$",
21718	//       "required": true,
21719	//       "type": "string"
21720	//     }
21721	//   },
21722	//   "path": "v1/advertisers/{+advertiserId}/lineItems",
21723	//   "request": {
21724	//     "$ref": "LineItem"
21725	//   },
21726	//   "response": {
21727	//     "$ref": "LineItem"
21728	//   },
21729	//   "scopes": [
21730	//     "https://www.googleapis.com/auth/display-video"
21731	//   ]
21732	// }
21733
21734}
21735
21736// method id "displayvideo.advertisers.lineItems.delete":
21737
21738type AdvertisersLineItemsDeleteCall struct {
21739	s            *Service
21740	advertiserId int64
21741	lineItemId   int64
21742	urlParams_   gensupport.URLParams
21743	ctx_         context.Context
21744	header_      http.Header
21745}
21746
21747// Delete: Deletes a line item. Returns error code `NOT_FOUND` if the
21748// line item does not exist. The line item should be archived first,
21749// i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to
21750// delete it.
21751//
21752// - advertiserId: The ID of the advertiser this line item belongs to.
21753// - lineItemId: The ID of the line item we need to fetch.
21754func (r *AdvertisersLineItemsService) Delete(advertiserId int64, lineItemId int64) *AdvertisersLineItemsDeleteCall {
21755	c := &AdvertisersLineItemsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
21756	c.advertiserId = advertiserId
21757	c.lineItemId = lineItemId
21758	return c
21759}
21760
21761// Fields allows partial responses to be retrieved. See
21762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
21763// for more information.
21764func (c *AdvertisersLineItemsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsDeleteCall {
21765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
21766	return c
21767}
21768
21769// Context sets the context to be used in this call's Do method. Any
21770// pending HTTP request will be aborted if the provided context is
21771// canceled.
21772func (c *AdvertisersLineItemsDeleteCall) Context(ctx context.Context) *AdvertisersLineItemsDeleteCall {
21773	c.ctx_ = ctx
21774	return c
21775}
21776
21777// Header returns an http.Header that can be modified by the caller to
21778// add HTTP headers to the request.
21779func (c *AdvertisersLineItemsDeleteCall) Header() http.Header {
21780	if c.header_ == nil {
21781		c.header_ = make(http.Header)
21782	}
21783	return c.header_
21784}
21785
21786func (c *AdvertisersLineItemsDeleteCall) doRequest(alt string) (*http.Response, error) {
21787	reqHeaders := make(http.Header)
21788	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
21789	for k, v := range c.header_ {
21790		reqHeaders[k] = v
21791	}
21792	reqHeaders.Set("User-Agent", c.s.userAgent())
21793	var body io.Reader = nil
21794	c.urlParams_.Set("alt", alt)
21795	c.urlParams_.Set("prettyPrint", "false")
21796	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}")
21797	urls += "?" + c.urlParams_.Encode()
21798	req, err := http.NewRequest("DELETE", urls, body)
21799	if err != nil {
21800		return nil, err
21801	}
21802	req.Header = reqHeaders
21803	googleapi.Expand(req.URL, map[string]string{
21804		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
21805		"lineItemId":   strconv.FormatInt(c.lineItemId, 10),
21806	})
21807	return gensupport.SendRequest(c.ctx_, c.s.client, req)
21808}
21809
21810// Do executes the "displayvideo.advertisers.lineItems.delete" call.
21811// Exactly one of *Empty or error will be non-nil. Any non-2xx status
21812// code is an error. Response headers are in either
21813// *Empty.ServerResponse.Header or (if a response was returned at all)
21814// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
21815// check whether the returned error was because http.StatusNotModified
21816// was returned.
21817func (c *AdvertisersLineItemsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
21818	gensupport.SetOptions(c.urlParams_, opts...)
21819	res, err := c.doRequest("json")
21820	if res != nil && res.StatusCode == http.StatusNotModified {
21821		if res.Body != nil {
21822			res.Body.Close()
21823		}
21824		return nil, &googleapi.Error{
21825			Code:   res.StatusCode,
21826			Header: res.Header,
21827		}
21828	}
21829	if err != nil {
21830		return nil, err
21831	}
21832	defer googleapi.CloseBody(res)
21833	if err := googleapi.CheckResponse(res); err != nil {
21834		return nil, err
21835	}
21836	ret := &Empty{
21837		ServerResponse: googleapi.ServerResponse{
21838			Header:         res.Header,
21839			HTTPStatusCode: res.StatusCode,
21840		},
21841	}
21842	target := &ret
21843	if err := gensupport.DecodeResponse(target, res); err != nil {
21844		return nil, err
21845	}
21846	return ret, nil
21847	// {
21848	//   "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.",
21849	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}",
21850	//   "httpMethod": "DELETE",
21851	//   "id": "displayvideo.advertisers.lineItems.delete",
21852	//   "parameterOrder": [
21853	//     "advertiserId",
21854	//     "lineItemId"
21855	//   ],
21856	//   "parameters": {
21857	//     "advertiserId": {
21858	//       "description": "The ID of the advertiser this line item belongs to.",
21859	//       "format": "int64",
21860	//       "location": "path",
21861	//       "pattern": "^[^/]+$",
21862	//       "required": true,
21863	//       "type": "string"
21864	//     },
21865	//     "lineItemId": {
21866	//       "description": "The ID of the line item we need to fetch.",
21867	//       "format": "int64",
21868	//       "location": "path",
21869	//       "pattern": "^[^/]+$",
21870	//       "required": true,
21871	//       "type": "string"
21872	//     }
21873	//   },
21874	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}",
21875	//   "response": {
21876	//     "$ref": "Empty"
21877	//   },
21878	//   "scopes": [
21879	//     "https://www.googleapis.com/auth/display-video"
21880	//   ]
21881	// }
21882
21883}
21884
21885// method id "displayvideo.advertisers.lineItems.generateDefault":
21886
21887type AdvertisersLineItemsGenerateDefaultCall struct {
21888	s                              *Service
21889	advertiserId                   int64
21890	generatedefaultlineitemrequest *GenerateDefaultLineItemRequest
21891	urlParams_                     gensupport.URLParams
21892	ctx_                           context.Context
21893	header_                        http.Header
21894}
21895
21896// GenerateDefault: Creates a new line item with settings (including
21897// targeting) inherited from the insertion order and an
21898// `ENTITY_STATUS_DRAFT` entity_status. Returns the newly created line
21899// item if successful. There are default values based on the three
21900// fields: * The insertion order's insertion_order_type * The insertion
21901// order's automation_type * The given line_item_type
21902//
21903// - advertiserId: The ID of the advertiser this line item belongs to.
21904func (r *AdvertisersLineItemsService) GenerateDefault(advertiserId int64, generatedefaultlineitemrequest *GenerateDefaultLineItemRequest) *AdvertisersLineItemsGenerateDefaultCall {
21905	c := &AdvertisersLineItemsGenerateDefaultCall{s: r.s, urlParams_: make(gensupport.URLParams)}
21906	c.advertiserId = advertiserId
21907	c.generatedefaultlineitemrequest = generatedefaultlineitemrequest
21908	return c
21909}
21910
21911// Fields allows partial responses to be retrieved. See
21912// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
21913// for more information.
21914func (c *AdvertisersLineItemsGenerateDefaultCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsGenerateDefaultCall {
21915	c.urlParams_.Set("fields", googleapi.CombineFields(s))
21916	return c
21917}
21918
21919// Context sets the context to be used in this call's Do method. Any
21920// pending HTTP request will be aborted if the provided context is
21921// canceled.
21922func (c *AdvertisersLineItemsGenerateDefaultCall) Context(ctx context.Context) *AdvertisersLineItemsGenerateDefaultCall {
21923	c.ctx_ = ctx
21924	return c
21925}
21926
21927// Header returns an http.Header that can be modified by the caller to
21928// add HTTP headers to the request.
21929func (c *AdvertisersLineItemsGenerateDefaultCall) Header() http.Header {
21930	if c.header_ == nil {
21931		c.header_ = make(http.Header)
21932	}
21933	return c.header_
21934}
21935
21936func (c *AdvertisersLineItemsGenerateDefaultCall) doRequest(alt string) (*http.Response, error) {
21937	reqHeaders := make(http.Header)
21938	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
21939	for k, v := range c.header_ {
21940		reqHeaders[k] = v
21941	}
21942	reqHeaders.Set("User-Agent", c.s.userAgent())
21943	var body io.Reader = nil
21944	body, err := googleapi.WithoutDataWrapper.JSONReader(c.generatedefaultlineitemrequest)
21945	if err != nil {
21946		return nil, err
21947	}
21948	reqHeaders.Set("Content-Type", "application/json")
21949	c.urlParams_.Set("alt", alt)
21950	c.urlParams_.Set("prettyPrint", "false")
21951	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems:generateDefault")
21952	urls += "?" + c.urlParams_.Encode()
21953	req, err := http.NewRequest("POST", urls, body)
21954	if err != nil {
21955		return nil, err
21956	}
21957	req.Header = reqHeaders
21958	googleapi.Expand(req.URL, map[string]string{
21959		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
21960	})
21961	return gensupport.SendRequest(c.ctx_, c.s.client, req)
21962}
21963
21964// Do executes the "displayvideo.advertisers.lineItems.generateDefault" call.
21965// Exactly one of *LineItem or error will be non-nil. Any non-2xx status
21966// code is an error. Response headers are in either
21967// *LineItem.ServerResponse.Header or (if a response was returned at
21968// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
21969// to check whether the returned error was because
21970// http.StatusNotModified was returned.
21971func (c *AdvertisersLineItemsGenerateDefaultCall) Do(opts ...googleapi.CallOption) (*LineItem, error) {
21972	gensupport.SetOptions(c.urlParams_, opts...)
21973	res, err := c.doRequest("json")
21974	if res != nil && res.StatusCode == http.StatusNotModified {
21975		if res.Body != nil {
21976			res.Body.Close()
21977		}
21978		return nil, &googleapi.Error{
21979			Code:   res.StatusCode,
21980			Header: res.Header,
21981		}
21982	}
21983	if err != nil {
21984		return nil, err
21985	}
21986	defer googleapi.CloseBody(res)
21987	if err := googleapi.CheckResponse(res); err != nil {
21988		return nil, err
21989	}
21990	ret := &LineItem{
21991		ServerResponse: googleapi.ServerResponse{
21992			Header:         res.Header,
21993			HTTPStatusCode: res.StatusCode,
21994		},
21995	}
21996	target := &ret
21997	if err := gensupport.DecodeResponse(target, res); err != nil {
21998		return nil, err
21999	}
22000	return ret, nil
22001	// {
22002	//   "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",
22003	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems:generateDefault",
22004	//   "httpMethod": "POST",
22005	//   "id": "displayvideo.advertisers.lineItems.generateDefault",
22006	//   "parameterOrder": [
22007	//     "advertiserId"
22008	//   ],
22009	//   "parameters": {
22010	//     "advertiserId": {
22011	//       "description": "Required. The ID of the advertiser this line item belongs to.",
22012	//       "format": "int64",
22013	//       "location": "path",
22014	//       "pattern": "^[^/]+$",
22015	//       "required": true,
22016	//       "type": "string"
22017	//     }
22018	//   },
22019	//   "path": "v1/advertisers/{+advertiserId}/lineItems:generateDefault",
22020	//   "request": {
22021	//     "$ref": "GenerateDefaultLineItemRequest"
22022	//   },
22023	//   "response": {
22024	//     "$ref": "LineItem"
22025	//   },
22026	//   "scopes": [
22027	//     "https://www.googleapis.com/auth/display-video"
22028	//   ]
22029	// }
22030
22031}
22032
22033// method id "displayvideo.advertisers.lineItems.get":
22034
22035type AdvertisersLineItemsGetCall struct {
22036	s            *Service
22037	advertiserId int64
22038	lineItemId   int64
22039	urlParams_   gensupport.URLParams
22040	ifNoneMatch_ string
22041	ctx_         context.Context
22042	header_      http.Header
22043}
22044
22045// Get: Gets a line item.
22046//
22047// - advertiserId: The ID of the advertiser this line item belongs to.
22048// - lineItemId: The ID of the line item to fetch.
22049func (r *AdvertisersLineItemsService) Get(advertiserId int64, lineItemId int64) *AdvertisersLineItemsGetCall {
22050	c := &AdvertisersLineItemsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
22051	c.advertiserId = advertiserId
22052	c.lineItemId = lineItemId
22053	return c
22054}
22055
22056// Fields allows partial responses to be retrieved. See
22057// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
22058// for more information.
22059func (c *AdvertisersLineItemsGetCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsGetCall {
22060	c.urlParams_.Set("fields", googleapi.CombineFields(s))
22061	return c
22062}
22063
22064// IfNoneMatch sets the optional parameter which makes the operation
22065// fail if the object's ETag matches the given value. This is useful for
22066// getting updates only after the object has changed since the last
22067// request. Use googleapi.IsNotModified to check whether the response
22068// error from Do is the result of In-None-Match.
22069func (c *AdvertisersLineItemsGetCall) IfNoneMatch(entityTag string) *AdvertisersLineItemsGetCall {
22070	c.ifNoneMatch_ = entityTag
22071	return c
22072}
22073
22074// Context sets the context to be used in this call's Do method. Any
22075// pending HTTP request will be aborted if the provided context is
22076// canceled.
22077func (c *AdvertisersLineItemsGetCall) Context(ctx context.Context) *AdvertisersLineItemsGetCall {
22078	c.ctx_ = ctx
22079	return c
22080}
22081
22082// Header returns an http.Header that can be modified by the caller to
22083// add HTTP headers to the request.
22084func (c *AdvertisersLineItemsGetCall) Header() http.Header {
22085	if c.header_ == nil {
22086		c.header_ = make(http.Header)
22087	}
22088	return c.header_
22089}
22090
22091func (c *AdvertisersLineItemsGetCall) doRequest(alt string) (*http.Response, error) {
22092	reqHeaders := make(http.Header)
22093	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
22094	for k, v := range c.header_ {
22095		reqHeaders[k] = v
22096	}
22097	reqHeaders.Set("User-Agent", c.s.userAgent())
22098	if c.ifNoneMatch_ != "" {
22099		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
22100	}
22101	var body io.Reader = nil
22102	c.urlParams_.Set("alt", alt)
22103	c.urlParams_.Set("prettyPrint", "false")
22104	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}")
22105	urls += "?" + c.urlParams_.Encode()
22106	req, err := http.NewRequest("GET", urls, body)
22107	if err != nil {
22108		return nil, err
22109	}
22110	req.Header = reqHeaders
22111	googleapi.Expand(req.URL, map[string]string{
22112		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
22113		"lineItemId":   strconv.FormatInt(c.lineItemId, 10),
22114	})
22115	return gensupport.SendRequest(c.ctx_, c.s.client, req)
22116}
22117
22118// Do executes the "displayvideo.advertisers.lineItems.get" call.
22119// Exactly one of *LineItem or error will be non-nil. Any non-2xx status
22120// code is an error. Response headers are in either
22121// *LineItem.ServerResponse.Header or (if a response was returned at
22122// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
22123// to check whether the returned error was because
22124// http.StatusNotModified was returned.
22125func (c *AdvertisersLineItemsGetCall) Do(opts ...googleapi.CallOption) (*LineItem, error) {
22126	gensupport.SetOptions(c.urlParams_, opts...)
22127	res, err := c.doRequest("json")
22128	if res != nil && res.StatusCode == http.StatusNotModified {
22129		if res.Body != nil {
22130			res.Body.Close()
22131		}
22132		return nil, &googleapi.Error{
22133			Code:   res.StatusCode,
22134			Header: res.Header,
22135		}
22136	}
22137	if err != nil {
22138		return nil, err
22139	}
22140	defer googleapi.CloseBody(res)
22141	if err := googleapi.CheckResponse(res); err != nil {
22142		return nil, err
22143	}
22144	ret := &LineItem{
22145		ServerResponse: googleapi.ServerResponse{
22146			Header:         res.Header,
22147			HTTPStatusCode: res.StatusCode,
22148		},
22149	}
22150	target := &ret
22151	if err := gensupport.DecodeResponse(target, res); err != nil {
22152		return nil, err
22153	}
22154	return ret, nil
22155	// {
22156	//   "description": "Gets a line item.",
22157	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}",
22158	//   "httpMethod": "GET",
22159	//   "id": "displayvideo.advertisers.lineItems.get",
22160	//   "parameterOrder": [
22161	//     "advertiserId",
22162	//     "lineItemId"
22163	//   ],
22164	//   "parameters": {
22165	//     "advertiserId": {
22166	//       "description": "Required. The ID of the advertiser this line item belongs to.",
22167	//       "format": "int64",
22168	//       "location": "path",
22169	//       "pattern": "^[^/]+$",
22170	//       "required": true,
22171	//       "type": "string"
22172	//     },
22173	//     "lineItemId": {
22174	//       "description": "Required. The ID of the line item to fetch.",
22175	//       "format": "int64",
22176	//       "location": "path",
22177	//       "pattern": "^[^/]+$",
22178	//       "required": true,
22179	//       "type": "string"
22180	//     }
22181	//   },
22182	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}",
22183	//   "response": {
22184	//     "$ref": "LineItem"
22185	//   },
22186	//   "scopes": [
22187	//     "https://www.googleapis.com/auth/display-video"
22188	//   ]
22189	// }
22190
22191}
22192
22193// method id "displayvideo.advertisers.lineItems.list":
22194
22195type AdvertisersLineItemsListCall struct {
22196	s            *Service
22197	advertiserId int64
22198	urlParams_   gensupport.URLParams
22199	ifNoneMatch_ string
22200	ctx_         context.Context
22201	header_      http.Header
22202}
22203
22204// List: Lists line items in an advertiser. The order is defined by the
22205// order_by parameter. If a filter by entity_status is not specified,
22206// line items with `ENTITY_STATUS_ARCHIVED` will not be included in the
22207// results.
22208//
22209// - advertiserId: The ID of the advertiser to list line items for.
22210func (r *AdvertisersLineItemsService) List(advertiserId int64) *AdvertisersLineItemsListCall {
22211	c := &AdvertisersLineItemsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
22212	c.advertiserId = advertiserId
22213	return c
22214}
22215
22216// Filter sets the optional parameter "filter": Allows filtering by line
22217// item properties. Supported syntax: * Filter expressions are made up
22218// of one or more restrictions. * Restrictions can be combined by `AND`
22219// or `OR` logical operators. A sequence of restrictions implicitly uses
22220// `AND`. * A restriction has the form of `{field} {operator} {value}`.
22221// * The operator used on `flight.dateRange.endDate` must be LESS THAN
22222// (<). * The operator used on `updateTime` must be `GREATER THAN OR
22223// EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)`. * The operator used
22224// on `warningMessages` must be `HAS (:)`. * The operators used on all
22225// other fields must be `EQUALS (=)`. * Supported fields: - `campaignId`
22226// - `displayName` - `insertionOrderId` - `entityStatus` - `lineItemId`
22227// - `lineItemType` - `flight.dateRange.endDate` (input formatted as
22228// YYYY-MM-DD) - `warningMessages` - `flight.triggerId` - `updateTime`
22229// (input in ISO 8601 format, or YYYY-MM-DDTHH:MM:SSZ) * The operator
22230// can be `NO LESS THAN (>=)` or `NO GREATER THAN (<=)`. - `updateTime`
22231// (format of ISO 8601) Examples: * All line items under an insertion
22232// order: `insertionOrderId="1234" * All `ENTITY_STATUS_ACTIVE` or
22233// `ENTITY_STATUS_PAUSED` and `LINE_ITEM_TYPE_DISPLAY_DEFAULT` line
22234// items under an advertiser: `(entityStatus="ENTITY_STATUS_ACTIVE" OR
22235// entityStatus="ENTITY_STATUS_PAUSED") AND
22236// lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" * All line items whose
22237// flight dates end before March 28, 2019:
22238// `flight.dateRange.endDate<"2019-03-28" * All line items that have
22239// `NO_VALID_CREATIVE` in `warningMessages`:
22240// `warningMessages:"NO_VALID_CREATIVE" * All line items with an update
22241// time less than or equal to `2020-11-04T18:54:47Z (format of ISO
22242// 8601)`: `updateTime<="2020-11-04T18:54:47Z" * All line items with an
22243// update time greater than or equal to `2020-11-04T18:54:47Z (format of
22244// ISO 8601)`: `updateTime>="2020-11-04T18:54:47Z" The length of this
22245// field should be no more than 500 characters.
22246func (c *AdvertisersLineItemsListCall) Filter(filter string) *AdvertisersLineItemsListCall {
22247	c.urlParams_.Set("filter", filter)
22248	return c
22249}
22250
22251// OrderBy sets the optional parameter "orderBy": Field by which to sort
22252// the list. Acceptable values are: * "displayName" (default) *
22253// "entityStatus" * “flight.dateRange.endDate” * "updateTime" The
22254// default sorting order is ascending. To specify descending order for a
22255// field, a suffix "desc" should be added to the field name. Example:
22256// `displayName desc`.
22257func (c *AdvertisersLineItemsListCall) OrderBy(orderBy string) *AdvertisersLineItemsListCall {
22258	c.urlParams_.Set("orderBy", orderBy)
22259	return c
22260}
22261
22262// PageSize sets the optional parameter "pageSize": Requested page size.
22263// Must be between `1` and `100`. If unspecified will default to `100`.
22264// Returns error code `INVALID_ARGUMENT` if an invalid value is
22265// specified.
22266func (c *AdvertisersLineItemsListCall) PageSize(pageSize int64) *AdvertisersLineItemsListCall {
22267	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
22268	return c
22269}
22270
22271// PageToken sets the optional parameter "pageToken": A token
22272// identifying a page of results the server should return. Typically,
22273// this is the value of next_page_token returned from the previous call
22274// to `ListLineItems` method. If not specified, the first page of
22275// results will be returned.
22276func (c *AdvertisersLineItemsListCall) PageToken(pageToken string) *AdvertisersLineItemsListCall {
22277	c.urlParams_.Set("pageToken", pageToken)
22278	return c
22279}
22280
22281// Fields allows partial responses to be retrieved. See
22282// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
22283// for more information.
22284func (c *AdvertisersLineItemsListCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsListCall {
22285	c.urlParams_.Set("fields", googleapi.CombineFields(s))
22286	return c
22287}
22288
22289// IfNoneMatch sets the optional parameter which makes the operation
22290// fail if the object's ETag matches the given value. This is useful for
22291// getting updates only after the object has changed since the last
22292// request. Use googleapi.IsNotModified to check whether the response
22293// error from Do is the result of In-None-Match.
22294func (c *AdvertisersLineItemsListCall) IfNoneMatch(entityTag string) *AdvertisersLineItemsListCall {
22295	c.ifNoneMatch_ = entityTag
22296	return c
22297}
22298
22299// Context sets the context to be used in this call's Do method. Any
22300// pending HTTP request will be aborted if the provided context is
22301// canceled.
22302func (c *AdvertisersLineItemsListCall) Context(ctx context.Context) *AdvertisersLineItemsListCall {
22303	c.ctx_ = ctx
22304	return c
22305}
22306
22307// Header returns an http.Header that can be modified by the caller to
22308// add HTTP headers to the request.
22309func (c *AdvertisersLineItemsListCall) Header() http.Header {
22310	if c.header_ == nil {
22311		c.header_ = make(http.Header)
22312	}
22313	return c.header_
22314}
22315
22316func (c *AdvertisersLineItemsListCall) doRequest(alt string) (*http.Response, error) {
22317	reqHeaders := make(http.Header)
22318	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
22319	for k, v := range c.header_ {
22320		reqHeaders[k] = v
22321	}
22322	reqHeaders.Set("User-Agent", c.s.userAgent())
22323	if c.ifNoneMatch_ != "" {
22324		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
22325	}
22326	var body io.Reader = nil
22327	c.urlParams_.Set("alt", alt)
22328	c.urlParams_.Set("prettyPrint", "false")
22329	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems")
22330	urls += "?" + c.urlParams_.Encode()
22331	req, err := http.NewRequest("GET", urls, body)
22332	if err != nil {
22333		return nil, err
22334	}
22335	req.Header = reqHeaders
22336	googleapi.Expand(req.URL, map[string]string{
22337		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
22338	})
22339	return gensupport.SendRequest(c.ctx_, c.s.client, req)
22340}
22341
22342// Do executes the "displayvideo.advertisers.lineItems.list" call.
22343// Exactly one of *ListLineItemsResponse or error will be non-nil. Any
22344// non-2xx status code is an error. Response headers are in either
22345// *ListLineItemsResponse.ServerResponse.Header or (if a response was
22346// returned at all) in error.(*googleapi.Error).Header. Use
22347// googleapi.IsNotModified to check whether the returned error was
22348// because http.StatusNotModified was returned.
22349func (c *AdvertisersLineItemsListCall) Do(opts ...googleapi.CallOption) (*ListLineItemsResponse, error) {
22350	gensupport.SetOptions(c.urlParams_, opts...)
22351	res, err := c.doRequest("json")
22352	if res != nil && res.StatusCode == http.StatusNotModified {
22353		if res.Body != nil {
22354			res.Body.Close()
22355		}
22356		return nil, &googleapi.Error{
22357			Code:   res.StatusCode,
22358			Header: res.Header,
22359		}
22360	}
22361	if err != nil {
22362		return nil, err
22363	}
22364	defer googleapi.CloseBody(res)
22365	if err := googleapi.CheckResponse(res); err != nil {
22366		return nil, err
22367	}
22368	ret := &ListLineItemsResponse{
22369		ServerResponse: googleapi.ServerResponse{
22370			Header:         res.Header,
22371			HTTPStatusCode: res.StatusCode,
22372		},
22373	}
22374	target := &ret
22375	if err := gensupport.DecodeResponse(target, res); err != nil {
22376		return nil, err
22377	}
22378	return ret, nil
22379	// {
22380	//   "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.",
22381	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems",
22382	//   "httpMethod": "GET",
22383	//   "id": "displayvideo.advertisers.lineItems.list",
22384	//   "parameterOrder": [
22385	//     "advertiserId"
22386	//   ],
22387	//   "parameters": {
22388	//     "advertiserId": {
22389	//       "description": "Required. The ID of the advertiser to list line items for.",
22390	//       "format": "int64",
22391	//       "location": "path",
22392	//       "pattern": "^[^/]+$",
22393	//       "required": true,
22394	//       "type": "string"
22395	//     },
22396	//     "filter": {
22397	//       "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 fields: - `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) * The operator can be `NO LESS THAN (\u003e=)` or `NO GREATER THAN (\u003c=)`. - `updateTime` (format of ISO 8601) 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\"` The length of this field should be no more than 500 characters.",
22398	//       "location": "query",
22399	//       "type": "string"
22400	//     },
22401	//     "orderBy": {
22402	//       "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`.",
22403	//       "location": "query",
22404	//       "type": "string"
22405	//     },
22406	//     "pageSize": {
22407	//       "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.",
22408	//       "format": "int32",
22409	//       "location": "query",
22410	//       "type": "integer"
22411	//     },
22412	//     "pageToken": {
22413	//       "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.",
22414	//       "location": "query",
22415	//       "type": "string"
22416	//     }
22417	//   },
22418	//   "path": "v1/advertisers/{+advertiserId}/lineItems",
22419	//   "response": {
22420	//     "$ref": "ListLineItemsResponse"
22421	//   },
22422	//   "scopes": [
22423	//     "https://www.googleapis.com/auth/display-video"
22424	//   ]
22425	// }
22426
22427}
22428
22429// Pages invokes f for each page of results.
22430// A non-nil error returned from f will halt the iteration.
22431// The provided context supersedes any context provided to the Context method.
22432func (c *AdvertisersLineItemsListCall) Pages(ctx context.Context, f func(*ListLineItemsResponse) error) error {
22433	c.ctx_ = ctx
22434	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
22435	for {
22436		x, err := c.Do()
22437		if err != nil {
22438			return err
22439		}
22440		if err := f(x); err != nil {
22441			return err
22442		}
22443		if x.NextPageToken == "" {
22444			return nil
22445		}
22446		c.PageToken(x.NextPageToken)
22447	}
22448}
22449
22450// method id "displayvideo.advertisers.lineItems.patch":
22451
22452type AdvertisersLineItemsPatchCall struct {
22453	s            *Service
22454	advertiserId int64
22455	lineItemId   int64
22456	lineitem     *LineItem
22457	urlParams_   gensupport.URLParams
22458	ctx_         context.Context
22459	header_      http.Header
22460}
22461
22462// Patch: Updates an existing line item. Returns the updated line item
22463// if successful.
22464//
22465// - advertiserId: Output only. The unique ID of the advertiser the line
22466//   item belongs to.
22467// - lineItemId: Output only. The unique ID of the line item. Assigned
22468//   by the system.
22469func (r *AdvertisersLineItemsService) Patch(advertiserId int64, lineItemId int64, lineitem *LineItem) *AdvertisersLineItemsPatchCall {
22470	c := &AdvertisersLineItemsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
22471	c.advertiserId = advertiserId
22472	c.lineItemId = lineItemId
22473	c.lineitem = lineitem
22474	return c
22475}
22476
22477// UpdateMask sets the optional parameter "updateMask": Required. The
22478// mask to control which fields to update.
22479func (c *AdvertisersLineItemsPatchCall) UpdateMask(updateMask string) *AdvertisersLineItemsPatchCall {
22480	c.urlParams_.Set("updateMask", updateMask)
22481	return c
22482}
22483
22484// Fields allows partial responses to be retrieved. See
22485// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
22486// for more information.
22487func (c *AdvertisersLineItemsPatchCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsPatchCall {
22488	c.urlParams_.Set("fields", googleapi.CombineFields(s))
22489	return c
22490}
22491
22492// Context sets the context to be used in this call's Do method. Any
22493// pending HTTP request will be aborted if the provided context is
22494// canceled.
22495func (c *AdvertisersLineItemsPatchCall) Context(ctx context.Context) *AdvertisersLineItemsPatchCall {
22496	c.ctx_ = ctx
22497	return c
22498}
22499
22500// Header returns an http.Header that can be modified by the caller to
22501// add HTTP headers to the request.
22502func (c *AdvertisersLineItemsPatchCall) Header() http.Header {
22503	if c.header_ == nil {
22504		c.header_ = make(http.Header)
22505	}
22506	return c.header_
22507}
22508
22509func (c *AdvertisersLineItemsPatchCall) doRequest(alt string) (*http.Response, error) {
22510	reqHeaders := make(http.Header)
22511	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
22512	for k, v := range c.header_ {
22513		reqHeaders[k] = v
22514	}
22515	reqHeaders.Set("User-Agent", c.s.userAgent())
22516	var body io.Reader = nil
22517	body, err := googleapi.WithoutDataWrapper.JSONReader(c.lineitem)
22518	if err != nil {
22519		return nil, err
22520	}
22521	reqHeaders.Set("Content-Type", "application/json")
22522	c.urlParams_.Set("alt", alt)
22523	c.urlParams_.Set("prettyPrint", "false")
22524	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}")
22525	urls += "?" + c.urlParams_.Encode()
22526	req, err := http.NewRequest("PATCH", urls, body)
22527	if err != nil {
22528		return nil, err
22529	}
22530	req.Header = reqHeaders
22531	googleapi.Expand(req.URL, map[string]string{
22532		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
22533		"lineItemId":   strconv.FormatInt(c.lineItemId, 10),
22534	})
22535	return gensupport.SendRequest(c.ctx_, c.s.client, req)
22536}
22537
22538// Do executes the "displayvideo.advertisers.lineItems.patch" call.
22539// Exactly one of *LineItem or error will be non-nil. Any non-2xx status
22540// code is an error. Response headers are in either
22541// *LineItem.ServerResponse.Header or (if a response was returned at
22542// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
22543// to check whether the returned error was because
22544// http.StatusNotModified was returned.
22545func (c *AdvertisersLineItemsPatchCall) Do(opts ...googleapi.CallOption) (*LineItem, error) {
22546	gensupport.SetOptions(c.urlParams_, opts...)
22547	res, err := c.doRequest("json")
22548	if res != nil && res.StatusCode == http.StatusNotModified {
22549		if res.Body != nil {
22550			res.Body.Close()
22551		}
22552		return nil, &googleapi.Error{
22553			Code:   res.StatusCode,
22554			Header: res.Header,
22555		}
22556	}
22557	if err != nil {
22558		return nil, err
22559	}
22560	defer googleapi.CloseBody(res)
22561	if err := googleapi.CheckResponse(res); err != nil {
22562		return nil, err
22563	}
22564	ret := &LineItem{
22565		ServerResponse: googleapi.ServerResponse{
22566			Header:         res.Header,
22567			HTTPStatusCode: res.StatusCode,
22568		},
22569	}
22570	target := &ret
22571	if err := gensupport.DecodeResponse(target, res); err != nil {
22572		return nil, err
22573	}
22574	return ret, nil
22575	// {
22576	//   "description": "Updates an existing line item. Returns the updated line item if successful.",
22577	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}",
22578	//   "httpMethod": "PATCH",
22579	//   "id": "displayvideo.advertisers.lineItems.patch",
22580	//   "parameterOrder": [
22581	//     "advertiserId",
22582	//     "lineItemId"
22583	//   ],
22584	//   "parameters": {
22585	//     "advertiserId": {
22586	//       "description": "Output only. The unique ID of the advertiser the line item belongs to.",
22587	//       "format": "int64",
22588	//       "location": "path",
22589	//       "pattern": "^[^/]+$",
22590	//       "required": true,
22591	//       "type": "string"
22592	//     },
22593	//     "lineItemId": {
22594	//       "description": "Output only. The unique ID of the line item. Assigned by the system.",
22595	//       "format": "int64",
22596	//       "location": "path",
22597	//       "pattern": "^[^/]+$",
22598	//       "required": true,
22599	//       "type": "string"
22600	//     },
22601	//     "updateMask": {
22602	//       "description": "Required. The mask to control which fields to update.",
22603	//       "format": "google-fieldmask",
22604	//       "location": "query",
22605	//       "type": "string"
22606	//     }
22607	//   },
22608	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}",
22609	//   "request": {
22610	//     "$ref": "LineItem"
22611	//   },
22612	//   "response": {
22613	//     "$ref": "LineItem"
22614	//   },
22615	//   "scopes": [
22616	//     "https://www.googleapis.com/auth/display-video"
22617	//   ]
22618	// }
22619
22620}
22621
22622// method id "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create":
22623
22624type AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall struct {
22625	s                       *Service
22626	advertiserId            int64
22627	lineItemId              int64
22628	targetingType           string
22629	assignedtargetingoption *AssignedTargetingOption
22630	urlParams_              gensupport.URLParams
22631	ctx_                    context.Context
22632	header_                 http.Header
22633}
22634
22635// Create: Assigns a targeting option to a line item. Returns the
22636// assigned targeting option if successful.
22637//
22638// - advertiserId: The ID of the advertiser the line item belongs to.
22639// - lineItemId: The ID of the line item the assigned targeting option
22640//   will belong to.
22641// - targetingType: Identifies the type of this assigned targeting
22642//   option.
22643func (r *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService) Create(advertiserId int64, lineItemId int64, targetingType string, assignedtargetingoption *AssignedTargetingOption) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall {
22644	c := &AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
22645	c.advertiserId = advertiserId
22646	c.lineItemId = lineItemId
22647	c.targetingType = targetingType
22648	c.assignedtargetingoption = assignedtargetingoption
22649	return c
22650}
22651
22652// Fields allows partial responses to be retrieved. See
22653// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
22654// for more information.
22655func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall {
22656	c.urlParams_.Set("fields", googleapi.CombineFields(s))
22657	return c
22658}
22659
22660// Context sets the context to be used in this call's Do method. Any
22661// pending HTTP request will be aborted if the provided context is
22662// canceled.
22663func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall) Context(ctx context.Context) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall {
22664	c.ctx_ = ctx
22665	return c
22666}
22667
22668// Header returns an http.Header that can be modified by the caller to
22669// add HTTP headers to the request.
22670func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall) Header() http.Header {
22671	if c.header_ == nil {
22672		c.header_ = make(http.Header)
22673	}
22674	return c.header_
22675}
22676
22677func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall) doRequest(alt string) (*http.Response, error) {
22678	reqHeaders := make(http.Header)
22679	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
22680	for k, v := range c.header_ {
22681		reqHeaders[k] = v
22682	}
22683	reqHeaders.Set("User-Agent", c.s.userAgent())
22684	var body io.Reader = nil
22685	body, err := googleapi.WithoutDataWrapper.JSONReader(c.assignedtargetingoption)
22686	if err != nil {
22687		return nil, err
22688	}
22689	reqHeaders.Set("Content-Type", "application/json")
22690	c.urlParams_.Set("alt", alt)
22691	c.urlParams_.Set("prettyPrint", "false")
22692	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
22693	urls += "?" + c.urlParams_.Encode()
22694	req, err := http.NewRequest("POST", urls, body)
22695	if err != nil {
22696		return nil, err
22697	}
22698	req.Header = reqHeaders
22699	googleapi.Expand(req.URL, map[string]string{
22700		"advertiserId":  strconv.FormatInt(c.advertiserId, 10),
22701		"lineItemId":    strconv.FormatInt(c.lineItemId, 10),
22702		"targetingType": c.targetingType,
22703	})
22704	return gensupport.SendRequest(c.ctx_, c.s.client, req)
22705}
22706
22707// Do executes the "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create" call.
22708// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
22709// non-2xx status code is an error. Response headers are in either
22710// *AssignedTargetingOption.ServerResponse.Header or (if a response was
22711// returned at all) in error.(*googleapi.Error).Header. Use
22712// googleapi.IsNotModified to check whether the returned error was
22713// because http.StatusNotModified was returned.
22714func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsCreateCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
22715	gensupport.SetOptions(c.urlParams_, opts...)
22716	res, err := c.doRequest("json")
22717	if res != nil && res.StatusCode == http.StatusNotModified {
22718		if res.Body != nil {
22719			res.Body.Close()
22720		}
22721		return nil, &googleapi.Error{
22722			Code:   res.StatusCode,
22723			Header: res.Header,
22724		}
22725	}
22726	if err != nil {
22727		return nil, err
22728	}
22729	defer googleapi.CloseBody(res)
22730	if err := googleapi.CheckResponse(res); err != nil {
22731		return nil, err
22732	}
22733	ret := &AssignedTargetingOption{
22734		ServerResponse: googleapi.ServerResponse{
22735			Header:         res.Header,
22736			HTTPStatusCode: res.StatusCode,
22737		},
22738	}
22739	target := &ret
22740	if err := gensupport.DecodeResponse(target, res); err != nil {
22741		return nil, err
22742	}
22743	return ret, nil
22744	// {
22745	//   "description": "Assigns a targeting option to a line item. Returns the assigned targeting option if successful.",
22746	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
22747	//   "httpMethod": "POST",
22748	//   "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create",
22749	//   "parameterOrder": [
22750	//     "advertiserId",
22751	//     "lineItemId",
22752	//     "targetingType"
22753	//   ],
22754	//   "parameters": {
22755	//     "advertiserId": {
22756	//       "description": "Required. The ID of the advertiser the line item belongs to.",
22757	//       "format": "int64",
22758	//       "location": "path",
22759	//       "pattern": "^[^/]+$",
22760	//       "required": true,
22761	//       "type": "string"
22762	//     },
22763	//     "lineItemId": {
22764	//       "description": "Required. The ID of the line item the assigned targeting option will belong to.",
22765	//       "format": "int64",
22766	//       "location": "path",
22767	//       "pattern": "^[^/]+$",
22768	//       "required": true,
22769	//       "type": "string"
22770	//     },
22771	//     "targetingType": {
22772	//       "description": "Required. Identifies the type of this assigned targeting option.",
22773	//       "enum": [
22774	//         "TARGETING_TYPE_UNSPECIFIED",
22775	//         "TARGETING_TYPE_CHANNEL",
22776	//         "TARGETING_TYPE_APP_CATEGORY",
22777	//         "TARGETING_TYPE_APP",
22778	//         "TARGETING_TYPE_URL",
22779	//         "TARGETING_TYPE_DAY_AND_TIME",
22780	//         "TARGETING_TYPE_AGE_RANGE",
22781	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
22782	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
22783	//         "TARGETING_TYPE_GENDER",
22784	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
22785	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
22786	//         "TARGETING_TYPE_PARENTAL_STATUS",
22787	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
22788	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
22789	//         "TARGETING_TYPE_DEVICE_TYPE",
22790	//         "TARGETING_TYPE_AUDIENCE_GROUP",
22791	//         "TARGETING_TYPE_BROWSER",
22792	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
22793	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
22794	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
22795	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
22796	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
22797	//         "TARGETING_TYPE_ENVIRONMENT",
22798	//         "TARGETING_TYPE_CARRIER_AND_ISP",
22799	//         "TARGETING_TYPE_OPERATING_SYSTEM",
22800	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
22801	//         "TARGETING_TYPE_KEYWORD",
22802	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
22803	//         "TARGETING_TYPE_VIEWABILITY",
22804	//         "TARGETING_TYPE_CATEGORY",
22805	//         "TARGETING_TYPE_INVENTORY_SOURCE",
22806	//         "TARGETING_TYPE_LANGUAGE",
22807	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
22808	//         "TARGETING_TYPE_GEO_REGION",
22809	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
22810	//         "TARGETING_TYPE_EXCHANGE",
22811	//         "TARGETING_TYPE_SUB_EXCHANGE"
22812	//       ],
22813	//       "enumDescriptions": [
22814	//         "Default value when type is not specified or is unknown in this version.",
22815	//         "Target a channel (a custom group of related websites or apps).",
22816	//         "Target an app category (for example, education or puzzle games).",
22817	//         "Target a specific app (for example, Angry Birds).",
22818	//         "Target a specific url (for example, quora.com).",
22819	//         "Target ads during a chosen time period on a specific day.",
22820	//         "Target ads to a specific age range (for example, 18-24).",
22821	//         "Target ads to the specified regions on a regional location list.",
22822	//         "Target ads to the specified points of interest on a proximity location list.",
22823	//         "Target ads to a specific gender (for example, female or male).",
22824	//         "Target a specific video player size for video ads.",
22825	//         "Target user rewarded content for video ads.",
22826	//         "Target ads to a specific parental status (for example, parent or not a parent).",
22827	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
22828	//         "Target ads in a specific content outstream position.",
22829	//         "Target ads to a specific device type (for example, tablet or connected TV).",
22830	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
22831	//         "Target ads to specific web browsers (for example, Chrome).",
22832	//         "Target ads to a specific household income range (for example, top 10%).",
22833	//         "Target ads in a specific on screen position.",
22834	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
22835	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
22836	//         "Filter website content by sensitive categories (for example, adult).",
22837	//         "Target ads to a specific environment (for example, web or app).",
22838	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
22839	//         "Target ads to a specific operating system (for example, macOS).",
22840	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
22841	//         "Target ads to a specific keyword (for example, dog or retriever).",
22842	//         "Target ads to a specific negative keyword list.",
22843	//         "Target ads to a specific viewability (for example, 80% viewable).",
22844	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
22845	//         "Purchase impressions from specific deals and auction packages.",
22846	//         "Target ads to a specific language (for example, English or Japanese).",
22847	//         "Target ads to ads.txt authorized sellers.",
22848	//         "Target ads to a specific regional location (for example, a city or state).",
22849	//         "Purchase impressions from a group of deals and auction packages.",
22850	//         "Purchase impressions from specific exchanges.",
22851	//         "Purchase impressions from specific sub-exchanges."
22852	//       ],
22853	//       "location": "path",
22854	//       "pattern": "^[^/]+$",
22855	//       "required": true,
22856	//       "type": "string"
22857	//     }
22858	//   },
22859	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
22860	//   "request": {
22861	//     "$ref": "AssignedTargetingOption"
22862	//   },
22863	//   "response": {
22864	//     "$ref": "AssignedTargetingOption"
22865	//   },
22866	//   "scopes": [
22867	//     "https://www.googleapis.com/auth/display-video"
22868	//   ]
22869	// }
22870
22871}
22872
22873// method id "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete":
22874
22875type AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall struct {
22876	s                         *Service
22877	advertiserId              int64
22878	lineItemId                int64
22879	targetingType             string
22880	assignedTargetingOptionId string
22881	urlParams_                gensupport.URLParams
22882	ctx_                      context.Context
22883	header_                   http.Header
22884}
22885
22886// Delete: Deletes an assigned targeting option from a line item.
22887//
22888// - advertiserId: The ID of the advertiser the line item belongs to.
22889// - assignedTargetingOptionId: The ID of the assigned targeting option
22890//   to delete.
22891// - lineItemId: The ID of the line item the assigned targeting option
22892//   belongs to.
22893// - targetingType: Identifies the type of this assigned targeting
22894//   option.
22895func (r *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService) Delete(advertiserId int64, lineItemId int64, targetingType string, assignedTargetingOptionId string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall {
22896	c := &AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
22897	c.advertiserId = advertiserId
22898	c.lineItemId = lineItemId
22899	c.targetingType = targetingType
22900	c.assignedTargetingOptionId = assignedTargetingOptionId
22901	return c
22902}
22903
22904// Fields allows partial responses to be retrieved. See
22905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
22906// for more information.
22907func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall {
22908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
22909	return c
22910}
22911
22912// Context sets the context to be used in this call's Do method. Any
22913// pending HTTP request will be aborted if the provided context is
22914// canceled.
22915func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall) Context(ctx context.Context) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall {
22916	c.ctx_ = ctx
22917	return c
22918}
22919
22920// Header returns an http.Header that can be modified by the caller to
22921// add HTTP headers to the request.
22922func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall) Header() http.Header {
22923	if c.header_ == nil {
22924		c.header_ = make(http.Header)
22925	}
22926	return c.header_
22927}
22928
22929func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall) doRequest(alt string) (*http.Response, error) {
22930	reqHeaders := make(http.Header)
22931	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
22932	for k, v := range c.header_ {
22933		reqHeaders[k] = v
22934	}
22935	reqHeaders.Set("User-Agent", c.s.userAgent())
22936	var body io.Reader = nil
22937	c.urlParams_.Set("alt", alt)
22938	c.urlParams_.Set("prettyPrint", "false")
22939	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
22940	urls += "?" + c.urlParams_.Encode()
22941	req, err := http.NewRequest("DELETE", urls, body)
22942	if err != nil {
22943		return nil, err
22944	}
22945	req.Header = reqHeaders
22946	googleapi.Expand(req.URL, map[string]string{
22947		"advertiserId":              strconv.FormatInt(c.advertiserId, 10),
22948		"lineItemId":                strconv.FormatInt(c.lineItemId, 10),
22949		"targetingType":             c.targetingType,
22950		"assignedTargetingOptionId": c.assignedTargetingOptionId,
22951	})
22952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
22953}
22954
22955// Do executes the "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete" call.
22956// Exactly one of *Empty or error will be non-nil. Any non-2xx status
22957// code is an error. Response headers are in either
22958// *Empty.ServerResponse.Header or (if a response was returned at all)
22959// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
22960// check whether the returned error was because http.StatusNotModified
22961// was returned.
22962func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
22963	gensupport.SetOptions(c.urlParams_, opts...)
22964	res, err := c.doRequest("json")
22965	if res != nil && res.StatusCode == http.StatusNotModified {
22966		if res.Body != nil {
22967			res.Body.Close()
22968		}
22969		return nil, &googleapi.Error{
22970			Code:   res.StatusCode,
22971			Header: res.Header,
22972		}
22973	}
22974	if err != nil {
22975		return nil, err
22976	}
22977	defer googleapi.CloseBody(res)
22978	if err := googleapi.CheckResponse(res); err != nil {
22979		return nil, err
22980	}
22981	ret := &Empty{
22982		ServerResponse: googleapi.ServerResponse{
22983			Header:         res.Header,
22984			HTTPStatusCode: res.StatusCode,
22985		},
22986	}
22987	target := &ret
22988	if err := gensupport.DecodeResponse(target, res); err != nil {
22989		return nil, err
22990	}
22991	return ret, nil
22992	// {
22993	//   "description": "Deletes an assigned targeting option from a line item.",
22994	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
22995	//   "httpMethod": "DELETE",
22996	//   "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete",
22997	//   "parameterOrder": [
22998	//     "advertiserId",
22999	//     "lineItemId",
23000	//     "targetingType",
23001	//     "assignedTargetingOptionId"
23002	//   ],
23003	//   "parameters": {
23004	//     "advertiserId": {
23005	//       "description": "Required. The ID of the advertiser the line item belongs to.",
23006	//       "format": "int64",
23007	//       "location": "path",
23008	//       "pattern": "^[^/]+$",
23009	//       "required": true,
23010	//       "type": "string"
23011	//     },
23012	//     "assignedTargetingOptionId": {
23013	//       "description": "Required. The ID of the assigned targeting option to delete.",
23014	//       "location": "path",
23015	//       "pattern": "^[^/]+$",
23016	//       "required": true,
23017	//       "type": "string"
23018	//     },
23019	//     "lineItemId": {
23020	//       "description": "Required. The ID of the line item the assigned targeting option belongs to.",
23021	//       "format": "int64",
23022	//       "location": "path",
23023	//       "pattern": "^[^/]+$",
23024	//       "required": true,
23025	//       "type": "string"
23026	//     },
23027	//     "targetingType": {
23028	//       "description": "Required. Identifies the type of this assigned targeting option.",
23029	//       "enum": [
23030	//         "TARGETING_TYPE_UNSPECIFIED",
23031	//         "TARGETING_TYPE_CHANNEL",
23032	//         "TARGETING_TYPE_APP_CATEGORY",
23033	//         "TARGETING_TYPE_APP",
23034	//         "TARGETING_TYPE_URL",
23035	//         "TARGETING_TYPE_DAY_AND_TIME",
23036	//         "TARGETING_TYPE_AGE_RANGE",
23037	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
23038	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
23039	//         "TARGETING_TYPE_GENDER",
23040	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
23041	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
23042	//         "TARGETING_TYPE_PARENTAL_STATUS",
23043	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
23044	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
23045	//         "TARGETING_TYPE_DEVICE_TYPE",
23046	//         "TARGETING_TYPE_AUDIENCE_GROUP",
23047	//         "TARGETING_TYPE_BROWSER",
23048	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
23049	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
23050	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
23051	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
23052	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
23053	//         "TARGETING_TYPE_ENVIRONMENT",
23054	//         "TARGETING_TYPE_CARRIER_AND_ISP",
23055	//         "TARGETING_TYPE_OPERATING_SYSTEM",
23056	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
23057	//         "TARGETING_TYPE_KEYWORD",
23058	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
23059	//         "TARGETING_TYPE_VIEWABILITY",
23060	//         "TARGETING_TYPE_CATEGORY",
23061	//         "TARGETING_TYPE_INVENTORY_SOURCE",
23062	//         "TARGETING_TYPE_LANGUAGE",
23063	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
23064	//         "TARGETING_TYPE_GEO_REGION",
23065	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
23066	//         "TARGETING_TYPE_EXCHANGE",
23067	//         "TARGETING_TYPE_SUB_EXCHANGE"
23068	//       ],
23069	//       "enumDescriptions": [
23070	//         "Default value when type is not specified or is unknown in this version.",
23071	//         "Target a channel (a custom group of related websites or apps).",
23072	//         "Target an app category (for example, education or puzzle games).",
23073	//         "Target a specific app (for example, Angry Birds).",
23074	//         "Target a specific url (for example, quora.com).",
23075	//         "Target ads during a chosen time period on a specific day.",
23076	//         "Target ads to a specific age range (for example, 18-24).",
23077	//         "Target ads to the specified regions on a regional location list.",
23078	//         "Target ads to the specified points of interest on a proximity location list.",
23079	//         "Target ads to a specific gender (for example, female or male).",
23080	//         "Target a specific video player size for video ads.",
23081	//         "Target user rewarded content for video ads.",
23082	//         "Target ads to a specific parental status (for example, parent or not a parent).",
23083	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
23084	//         "Target ads in a specific content outstream position.",
23085	//         "Target ads to a specific device type (for example, tablet or connected TV).",
23086	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
23087	//         "Target ads to specific web browsers (for example, Chrome).",
23088	//         "Target ads to a specific household income range (for example, top 10%).",
23089	//         "Target ads in a specific on screen position.",
23090	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
23091	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
23092	//         "Filter website content by sensitive categories (for example, adult).",
23093	//         "Target ads to a specific environment (for example, web or app).",
23094	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
23095	//         "Target ads to a specific operating system (for example, macOS).",
23096	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
23097	//         "Target ads to a specific keyword (for example, dog or retriever).",
23098	//         "Target ads to a specific negative keyword list.",
23099	//         "Target ads to a specific viewability (for example, 80% viewable).",
23100	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
23101	//         "Purchase impressions from specific deals and auction packages.",
23102	//         "Target ads to a specific language (for example, English or Japanese).",
23103	//         "Target ads to ads.txt authorized sellers.",
23104	//         "Target ads to a specific regional location (for example, a city or state).",
23105	//         "Purchase impressions from a group of deals and auction packages.",
23106	//         "Purchase impressions from specific exchanges.",
23107	//         "Purchase impressions from specific sub-exchanges."
23108	//       ],
23109	//       "location": "path",
23110	//       "pattern": "^[^/]+$",
23111	//       "required": true,
23112	//       "type": "string"
23113	//     }
23114	//   },
23115	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
23116	//   "response": {
23117	//     "$ref": "Empty"
23118	//   },
23119	//   "scopes": [
23120	//     "https://www.googleapis.com/auth/display-video"
23121	//   ]
23122	// }
23123
23124}
23125
23126// method id "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.get":
23127
23128type AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall struct {
23129	s                         *Service
23130	advertiserId              int64
23131	lineItemId                int64
23132	targetingType             string
23133	assignedTargetingOptionId string
23134	urlParams_                gensupport.URLParams
23135	ifNoneMatch_              string
23136	ctx_                      context.Context
23137	header_                   http.Header
23138}
23139
23140// Get: Gets a single targeting option assigned to a line item.
23141//
23142// - advertiserId: The ID of the advertiser the line item belongs to.
23143// - assignedTargetingOptionId: An identifier unique to the targeting
23144//   type in this line item that identifies the assigned targeting
23145//   option being requested.
23146// - lineItemId: The ID of the line item the assigned targeting option
23147//   belongs to.
23148// - targetingType: Identifies the type of this assigned targeting
23149//   option.
23150func (r *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService) Get(advertiserId int64, lineItemId int64, targetingType string, assignedTargetingOptionId string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall {
23151	c := &AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
23152	c.advertiserId = advertiserId
23153	c.lineItemId = lineItemId
23154	c.targetingType = targetingType
23155	c.assignedTargetingOptionId = assignedTargetingOptionId
23156	return c
23157}
23158
23159// Fields allows partial responses to be retrieved. See
23160// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
23161// for more information.
23162func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall {
23163	c.urlParams_.Set("fields", googleapi.CombineFields(s))
23164	return c
23165}
23166
23167// IfNoneMatch sets the optional parameter which makes the operation
23168// fail if the object's ETag matches the given value. This is useful for
23169// getting updates only after the object has changed since the last
23170// request. Use googleapi.IsNotModified to check whether the response
23171// error from Do is the result of In-None-Match.
23172func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall) IfNoneMatch(entityTag string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall {
23173	c.ifNoneMatch_ = entityTag
23174	return c
23175}
23176
23177// Context sets the context to be used in this call's Do method. Any
23178// pending HTTP request will be aborted if the provided context is
23179// canceled.
23180func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall) Context(ctx context.Context) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall {
23181	c.ctx_ = ctx
23182	return c
23183}
23184
23185// Header returns an http.Header that can be modified by the caller to
23186// add HTTP headers to the request.
23187func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall) Header() http.Header {
23188	if c.header_ == nil {
23189		c.header_ = make(http.Header)
23190	}
23191	return c.header_
23192}
23193
23194func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall) doRequest(alt string) (*http.Response, error) {
23195	reqHeaders := make(http.Header)
23196	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
23197	for k, v := range c.header_ {
23198		reqHeaders[k] = v
23199	}
23200	reqHeaders.Set("User-Agent", c.s.userAgent())
23201	if c.ifNoneMatch_ != "" {
23202		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
23203	}
23204	var body io.Reader = nil
23205	c.urlParams_.Set("alt", alt)
23206	c.urlParams_.Set("prettyPrint", "false")
23207	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
23208	urls += "?" + c.urlParams_.Encode()
23209	req, err := http.NewRequest("GET", urls, body)
23210	if err != nil {
23211		return nil, err
23212	}
23213	req.Header = reqHeaders
23214	googleapi.Expand(req.URL, map[string]string{
23215		"advertiserId":              strconv.FormatInt(c.advertiserId, 10),
23216		"lineItemId":                strconv.FormatInt(c.lineItemId, 10),
23217		"targetingType":             c.targetingType,
23218		"assignedTargetingOptionId": c.assignedTargetingOptionId,
23219	})
23220	return gensupport.SendRequest(c.ctx_, c.s.client, req)
23221}
23222
23223// Do executes the "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.get" call.
23224// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
23225// non-2xx status code is an error. Response headers are in either
23226// *AssignedTargetingOption.ServerResponse.Header or (if a response was
23227// returned at all) in error.(*googleapi.Error).Header. Use
23228// googleapi.IsNotModified to check whether the returned error was
23229// because http.StatusNotModified was returned.
23230func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsGetCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
23231	gensupport.SetOptions(c.urlParams_, opts...)
23232	res, err := c.doRequest("json")
23233	if res != nil && res.StatusCode == http.StatusNotModified {
23234		if res.Body != nil {
23235			res.Body.Close()
23236		}
23237		return nil, &googleapi.Error{
23238			Code:   res.StatusCode,
23239			Header: res.Header,
23240		}
23241	}
23242	if err != nil {
23243		return nil, err
23244	}
23245	defer googleapi.CloseBody(res)
23246	if err := googleapi.CheckResponse(res); err != nil {
23247		return nil, err
23248	}
23249	ret := &AssignedTargetingOption{
23250		ServerResponse: googleapi.ServerResponse{
23251			Header:         res.Header,
23252			HTTPStatusCode: res.StatusCode,
23253		},
23254	}
23255	target := &ret
23256	if err := gensupport.DecodeResponse(target, res); err != nil {
23257		return nil, err
23258	}
23259	return ret, nil
23260	// {
23261	//   "description": "Gets a single targeting option assigned to a line item.",
23262	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
23263	//   "httpMethod": "GET",
23264	//   "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.get",
23265	//   "parameterOrder": [
23266	//     "advertiserId",
23267	//     "lineItemId",
23268	//     "targetingType",
23269	//     "assignedTargetingOptionId"
23270	//   ],
23271	//   "parameters": {
23272	//     "advertiserId": {
23273	//       "description": "Required. The ID of the advertiser the line item belongs to.",
23274	//       "format": "int64",
23275	//       "location": "path",
23276	//       "pattern": "^[^/]+$",
23277	//       "required": true,
23278	//       "type": "string"
23279	//     },
23280	//     "assignedTargetingOptionId": {
23281	//       "description": "Required. An identifier unique to the targeting type in this line item that identifies the assigned targeting option being requested.",
23282	//       "location": "path",
23283	//       "pattern": "^[^/]+$",
23284	//       "required": true,
23285	//       "type": "string"
23286	//     },
23287	//     "lineItemId": {
23288	//       "description": "Required. The ID of the line item the assigned targeting option belongs to.",
23289	//       "format": "int64",
23290	//       "location": "path",
23291	//       "pattern": "^[^/]+$",
23292	//       "required": true,
23293	//       "type": "string"
23294	//     },
23295	//     "targetingType": {
23296	//       "description": "Required. Identifies the type of this assigned targeting option.",
23297	//       "enum": [
23298	//         "TARGETING_TYPE_UNSPECIFIED",
23299	//         "TARGETING_TYPE_CHANNEL",
23300	//         "TARGETING_TYPE_APP_CATEGORY",
23301	//         "TARGETING_TYPE_APP",
23302	//         "TARGETING_TYPE_URL",
23303	//         "TARGETING_TYPE_DAY_AND_TIME",
23304	//         "TARGETING_TYPE_AGE_RANGE",
23305	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
23306	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
23307	//         "TARGETING_TYPE_GENDER",
23308	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
23309	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
23310	//         "TARGETING_TYPE_PARENTAL_STATUS",
23311	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
23312	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
23313	//         "TARGETING_TYPE_DEVICE_TYPE",
23314	//         "TARGETING_TYPE_AUDIENCE_GROUP",
23315	//         "TARGETING_TYPE_BROWSER",
23316	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
23317	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
23318	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
23319	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
23320	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
23321	//         "TARGETING_TYPE_ENVIRONMENT",
23322	//         "TARGETING_TYPE_CARRIER_AND_ISP",
23323	//         "TARGETING_TYPE_OPERATING_SYSTEM",
23324	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
23325	//         "TARGETING_TYPE_KEYWORD",
23326	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
23327	//         "TARGETING_TYPE_VIEWABILITY",
23328	//         "TARGETING_TYPE_CATEGORY",
23329	//         "TARGETING_TYPE_INVENTORY_SOURCE",
23330	//         "TARGETING_TYPE_LANGUAGE",
23331	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
23332	//         "TARGETING_TYPE_GEO_REGION",
23333	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
23334	//         "TARGETING_TYPE_EXCHANGE",
23335	//         "TARGETING_TYPE_SUB_EXCHANGE"
23336	//       ],
23337	//       "enumDescriptions": [
23338	//         "Default value when type is not specified or is unknown in this version.",
23339	//         "Target a channel (a custom group of related websites or apps).",
23340	//         "Target an app category (for example, education or puzzle games).",
23341	//         "Target a specific app (for example, Angry Birds).",
23342	//         "Target a specific url (for example, quora.com).",
23343	//         "Target ads during a chosen time period on a specific day.",
23344	//         "Target ads to a specific age range (for example, 18-24).",
23345	//         "Target ads to the specified regions on a regional location list.",
23346	//         "Target ads to the specified points of interest on a proximity location list.",
23347	//         "Target ads to a specific gender (for example, female or male).",
23348	//         "Target a specific video player size for video ads.",
23349	//         "Target user rewarded content for video ads.",
23350	//         "Target ads to a specific parental status (for example, parent or not a parent).",
23351	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
23352	//         "Target ads in a specific content outstream position.",
23353	//         "Target ads to a specific device type (for example, tablet or connected TV).",
23354	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
23355	//         "Target ads to specific web browsers (for example, Chrome).",
23356	//         "Target ads to a specific household income range (for example, top 10%).",
23357	//         "Target ads in a specific on screen position.",
23358	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
23359	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
23360	//         "Filter website content by sensitive categories (for example, adult).",
23361	//         "Target ads to a specific environment (for example, web or app).",
23362	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
23363	//         "Target ads to a specific operating system (for example, macOS).",
23364	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
23365	//         "Target ads to a specific keyword (for example, dog or retriever).",
23366	//         "Target ads to a specific negative keyword list.",
23367	//         "Target ads to a specific viewability (for example, 80% viewable).",
23368	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
23369	//         "Purchase impressions from specific deals and auction packages.",
23370	//         "Target ads to a specific language (for example, English or Japanese).",
23371	//         "Target ads to ads.txt authorized sellers.",
23372	//         "Target ads to a specific regional location (for example, a city or state).",
23373	//         "Purchase impressions from a group of deals and auction packages.",
23374	//         "Purchase impressions from specific exchanges.",
23375	//         "Purchase impressions from specific sub-exchanges."
23376	//       ],
23377	//       "location": "path",
23378	//       "pattern": "^[^/]+$",
23379	//       "required": true,
23380	//       "type": "string"
23381	//     }
23382	//   },
23383	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
23384	//   "response": {
23385	//     "$ref": "AssignedTargetingOption"
23386	//   },
23387	//   "scopes": [
23388	//     "https://www.googleapis.com/auth/display-video"
23389	//   ]
23390	// }
23391
23392}
23393
23394// method id "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.list":
23395
23396type AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall struct {
23397	s             *Service
23398	advertiserId  int64
23399	lineItemId    int64
23400	targetingType string
23401	urlParams_    gensupport.URLParams
23402	ifNoneMatch_  string
23403	ctx_          context.Context
23404	header_       http.Header
23405}
23406
23407// List: Lists the targeting options assigned to a line item.
23408//
23409// - advertiserId: The ID of the advertiser the line item belongs to.
23410// - lineItemId: The ID of the line item to list assigned targeting
23411//   options for.
23412// - targetingType: Identifies the type of assigned targeting options to
23413//   list.
23414func (r *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsService) List(advertiserId int64, lineItemId int64, targetingType string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
23415	c := &AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
23416	c.advertiserId = advertiserId
23417	c.lineItemId = lineItemId
23418	c.targetingType = targetingType
23419	return c
23420}
23421
23422// Filter sets the optional parameter "filter": Allows filtering by
23423// assigned targeting option properties. Supported syntax: * Filter
23424// expressions are made up of one or more restrictions. * Restrictions
23425// can be combined by the logical operator `OR`. * A restriction has the
23426// form of `{field} {operator} {value}`. * The operator must be `EQUALS
23427// (=)`. * Supported fields: - `assignedTargetingOptionId` -
23428// `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2
23429// `assignedTargetingOptionId="1" OR assignedTargetingOptionId="2" *
23430// AssignedTargetingOptions with inheritance status of NOT_INHERITED or
23431// INHERITED_FROM_PARTNER `inheritance="NOT_INHERITED" OR
23432// inheritance="INHERITED_FROM_PARTNER" The length of this field should
23433// be no more than 500 characters.
23434func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) Filter(filter string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
23435	c.urlParams_.Set("filter", filter)
23436	return c
23437}
23438
23439// OrderBy sets the optional parameter "orderBy": Field by which to sort
23440// the list. Acceptable values are: * `assignedTargetingOptionId`
23441// (default) The default sorting order is ascending. To specify
23442// descending order for a field, a suffix "desc" should be added to the
23443// field name. Example: `assignedTargetingOptionId desc`.
23444func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) OrderBy(orderBy string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
23445	c.urlParams_.Set("orderBy", orderBy)
23446	return c
23447}
23448
23449// PageSize sets the optional parameter "pageSize": Requested page size.
23450// Must be between `1` and `100`. If unspecified will default to `100`.
23451// Returns error code `INVALID_ARGUMENT` if an invalid value is
23452// specified.
23453func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) PageSize(pageSize int64) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
23454	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
23455	return c
23456}
23457
23458// PageToken sets the optional parameter "pageToken": A token
23459// identifying a page of results the server should return. Typically,
23460// this is the value of next_page_token returned from the previous call
23461// to `ListLineItemAssignedTargetingOptions` method. If not specified,
23462// the first page of results will be returned.
23463func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) PageToken(pageToken string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
23464	c.urlParams_.Set("pageToken", pageToken)
23465	return c
23466}
23467
23468// Fields allows partial responses to be retrieved. See
23469// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
23470// for more information.
23471func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) Fields(s ...googleapi.Field) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
23472	c.urlParams_.Set("fields", googleapi.CombineFields(s))
23473	return c
23474}
23475
23476// IfNoneMatch sets the optional parameter which makes the operation
23477// fail if the object's ETag matches the given value. This is useful for
23478// getting updates only after the object has changed since the last
23479// request. Use googleapi.IsNotModified to check whether the response
23480// error from Do is the result of In-None-Match.
23481func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) IfNoneMatch(entityTag string) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
23482	c.ifNoneMatch_ = entityTag
23483	return c
23484}
23485
23486// Context sets the context to be used in this call's Do method. Any
23487// pending HTTP request will be aborted if the provided context is
23488// canceled.
23489func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) Context(ctx context.Context) *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall {
23490	c.ctx_ = ctx
23491	return c
23492}
23493
23494// Header returns an http.Header that can be modified by the caller to
23495// add HTTP headers to the request.
23496func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) Header() http.Header {
23497	if c.header_ == nil {
23498		c.header_ = make(http.Header)
23499	}
23500	return c.header_
23501}
23502
23503func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) doRequest(alt string) (*http.Response, error) {
23504	reqHeaders := make(http.Header)
23505	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
23506	for k, v := range c.header_ {
23507		reqHeaders[k] = v
23508	}
23509	reqHeaders.Set("User-Agent", c.s.userAgent())
23510	if c.ifNoneMatch_ != "" {
23511		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
23512	}
23513	var body io.Reader = nil
23514	c.urlParams_.Set("alt", alt)
23515	c.urlParams_.Set("prettyPrint", "false")
23516	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
23517	urls += "?" + c.urlParams_.Encode()
23518	req, err := http.NewRequest("GET", urls, body)
23519	if err != nil {
23520		return nil, err
23521	}
23522	req.Header = reqHeaders
23523	googleapi.Expand(req.URL, map[string]string{
23524		"advertiserId":  strconv.FormatInt(c.advertiserId, 10),
23525		"lineItemId":    strconv.FormatInt(c.lineItemId, 10),
23526		"targetingType": c.targetingType,
23527	})
23528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
23529}
23530
23531// Do executes the "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.list" call.
23532// Exactly one of *ListLineItemAssignedTargetingOptionsResponse or error
23533// will be non-nil. Any non-2xx status code is an error. Response
23534// headers are in either
23535// *ListLineItemAssignedTargetingOptionsResponse.ServerResponse.Header
23536// or (if a response was returned at all) in
23537// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
23538// whether the returned error was because http.StatusNotModified was
23539// returned.
23540func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) Do(opts ...googleapi.CallOption) (*ListLineItemAssignedTargetingOptionsResponse, error) {
23541	gensupport.SetOptions(c.urlParams_, opts...)
23542	res, err := c.doRequest("json")
23543	if res != nil && res.StatusCode == http.StatusNotModified {
23544		if res.Body != nil {
23545			res.Body.Close()
23546		}
23547		return nil, &googleapi.Error{
23548			Code:   res.StatusCode,
23549			Header: res.Header,
23550		}
23551	}
23552	if err != nil {
23553		return nil, err
23554	}
23555	defer googleapi.CloseBody(res)
23556	if err := googleapi.CheckResponse(res); err != nil {
23557		return nil, err
23558	}
23559	ret := &ListLineItemAssignedTargetingOptionsResponse{
23560		ServerResponse: googleapi.ServerResponse{
23561			Header:         res.Header,
23562			HTTPStatusCode: res.StatusCode,
23563		},
23564	}
23565	target := &ret
23566	if err := gensupport.DecodeResponse(target, res); err != nil {
23567		return nil, err
23568	}
23569	return ret, nil
23570	// {
23571	//   "description": "Lists the targeting options assigned to a line item.",
23572	//   "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
23573	//   "httpMethod": "GET",
23574	//   "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.list",
23575	//   "parameterOrder": [
23576	//     "advertiserId",
23577	//     "lineItemId",
23578	//     "targetingType"
23579	//   ],
23580	//   "parameters": {
23581	//     "advertiserId": {
23582	//       "description": "Required. The ID of the advertiser the line item belongs to.",
23583	//       "format": "int64",
23584	//       "location": "path",
23585	//       "pattern": "^[^/]+$",
23586	//       "required": true,
23587	//       "type": "string"
23588	//     },
23589	//     "filter": {
23590	//       "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.",
23591	//       "location": "query",
23592	//       "type": "string"
23593	//     },
23594	//     "lineItemId": {
23595	//       "description": "Required. The ID of the line item to list assigned targeting options for.",
23596	//       "format": "int64",
23597	//       "location": "path",
23598	//       "pattern": "^[^/]+$",
23599	//       "required": true,
23600	//       "type": "string"
23601	//     },
23602	//     "orderBy": {
23603	//       "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`.",
23604	//       "location": "query",
23605	//       "type": "string"
23606	//     },
23607	//     "pageSize": {
23608	//       "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.",
23609	//       "format": "int32",
23610	//       "location": "query",
23611	//       "type": "integer"
23612	//     },
23613	//     "pageToken": {
23614	//       "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.",
23615	//       "location": "query",
23616	//       "type": "string"
23617	//     },
23618	//     "targetingType": {
23619	//       "description": "Required. Identifies the type of assigned targeting options to list.",
23620	//       "enum": [
23621	//         "TARGETING_TYPE_UNSPECIFIED",
23622	//         "TARGETING_TYPE_CHANNEL",
23623	//         "TARGETING_TYPE_APP_CATEGORY",
23624	//         "TARGETING_TYPE_APP",
23625	//         "TARGETING_TYPE_URL",
23626	//         "TARGETING_TYPE_DAY_AND_TIME",
23627	//         "TARGETING_TYPE_AGE_RANGE",
23628	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
23629	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
23630	//         "TARGETING_TYPE_GENDER",
23631	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
23632	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
23633	//         "TARGETING_TYPE_PARENTAL_STATUS",
23634	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
23635	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
23636	//         "TARGETING_TYPE_DEVICE_TYPE",
23637	//         "TARGETING_TYPE_AUDIENCE_GROUP",
23638	//         "TARGETING_TYPE_BROWSER",
23639	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
23640	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
23641	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
23642	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
23643	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
23644	//         "TARGETING_TYPE_ENVIRONMENT",
23645	//         "TARGETING_TYPE_CARRIER_AND_ISP",
23646	//         "TARGETING_TYPE_OPERATING_SYSTEM",
23647	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
23648	//         "TARGETING_TYPE_KEYWORD",
23649	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
23650	//         "TARGETING_TYPE_VIEWABILITY",
23651	//         "TARGETING_TYPE_CATEGORY",
23652	//         "TARGETING_TYPE_INVENTORY_SOURCE",
23653	//         "TARGETING_TYPE_LANGUAGE",
23654	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
23655	//         "TARGETING_TYPE_GEO_REGION",
23656	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
23657	//         "TARGETING_TYPE_EXCHANGE",
23658	//         "TARGETING_TYPE_SUB_EXCHANGE"
23659	//       ],
23660	//       "enumDescriptions": [
23661	//         "Default value when type is not specified or is unknown in this version.",
23662	//         "Target a channel (a custom group of related websites or apps).",
23663	//         "Target an app category (for example, education or puzzle games).",
23664	//         "Target a specific app (for example, Angry Birds).",
23665	//         "Target a specific url (for example, quora.com).",
23666	//         "Target ads during a chosen time period on a specific day.",
23667	//         "Target ads to a specific age range (for example, 18-24).",
23668	//         "Target ads to the specified regions on a regional location list.",
23669	//         "Target ads to the specified points of interest on a proximity location list.",
23670	//         "Target ads to a specific gender (for example, female or male).",
23671	//         "Target a specific video player size for video ads.",
23672	//         "Target user rewarded content for video ads.",
23673	//         "Target ads to a specific parental status (for example, parent or not a parent).",
23674	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
23675	//         "Target ads in a specific content outstream position.",
23676	//         "Target ads to a specific device type (for example, tablet or connected TV).",
23677	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
23678	//         "Target ads to specific web browsers (for example, Chrome).",
23679	//         "Target ads to a specific household income range (for example, top 10%).",
23680	//         "Target ads in a specific on screen position.",
23681	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
23682	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
23683	//         "Filter website content by sensitive categories (for example, adult).",
23684	//         "Target ads to a specific environment (for example, web or app).",
23685	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
23686	//         "Target ads to a specific operating system (for example, macOS).",
23687	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
23688	//         "Target ads to a specific keyword (for example, dog or retriever).",
23689	//         "Target ads to a specific negative keyword list.",
23690	//         "Target ads to a specific viewability (for example, 80% viewable).",
23691	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
23692	//         "Purchase impressions from specific deals and auction packages.",
23693	//         "Target ads to a specific language (for example, English or Japanese).",
23694	//         "Target ads to ads.txt authorized sellers.",
23695	//         "Target ads to a specific regional location (for example, a city or state).",
23696	//         "Purchase impressions from a group of deals and auction packages.",
23697	//         "Purchase impressions from specific exchanges.",
23698	//         "Purchase impressions from specific sub-exchanges."
23699	//       ],
23700	//       "location": "path",
23701	//       "pattern": "^[^/]+$",
23702	//       "required": true,
23703	//       "type": "string"
23704	//     }
23705	//   },
23706	//   "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
23707	//   "response": {
23708	//     "$ref": "ListLineItemAssignedTargetingOptionsResponse"
23709	//   },
23710	//   "scopes": [
23711	//     "https://www.googleapis.com/auth/display-video"
23712	//   ]
23713	// }
23714
23715}
23716
23717// Pages invokes f for each page of results.
23718// A non-nil error returned from f will halt the iteration.
23719// The provided context supersedes any context provided to the Context method.
23720func (c *AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsListCall) Pages(ctx context.Context, f func(*ListLineItemAssignedTargetingOptionsResponse) error) error {
23721	c.ctx_ = ctx
23722	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
23723	for {
23724		x, err := c.Do()
23725		if err != nil {
23726			return err
23727		}
23728		if err := f(x); err != nil {
23729			return err
23730		}
23731		if x.NextPageToken == "" {
23732			return nil
23733		}
23734		c.PageToken(x.NextPageToken)
23735	}
23736}
23737
23738// method id "displayvideo.advertisers.locationLists.create":
23739
23740type AdvertisersLocationListsCreateCall struct {
23741	s            *Service
23742	advertiserId int64
23743	locationlist *LocationList
23744	urlParams_   gensupport.URLParams
23745	ctx_         context.Context
23746	header_      http.Header
23747}
23748
23749// Create: Creates a new location list. Returns the newly created
23750// location list if successful.
23751//
23752// - advertiserId: The ID of the DV360 advertiser to which the location
23753//   list belongs.
23754func (r *AdvertisersLocationListsService) Create(advertiserId int64, locationlist *LocationList) *AdvertisersLocationListsCreateCall {
23755	c := &AdvertisersLocationListsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
23756	c.advertiserId = advertiserId
23757	c.locationlist = locationlist
23758	return c
23759}
23760
23761// Fields allows partial responses to be retrieved. See
23762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
23763// for more information.
23764func (c *AdvertisersLocationListsCreateCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsCreateCall {
23765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
23766	return c
23767}
23768
23769// Context sets the context to be used in this call's Do method. Any
23770// pending HTTP request will be aborted if the provided context is
23771// canceled.
23772func (c *AdvertisersLocationListsCreateCall) Context(ctx context.Context) *AdvertisersLocationListsCreateCall {
23773	c.ctx_ = ctx
23774	return c
23775}
23776
23777// Header returns an http.Header that can be modified by the caller to
23778// add HTTP headers to the request.
23779func (c *AdvertisersLocationListsCreateCall) Header() http.Header {
23780	if c.header_ == nil {
23781		c.header_ = make(http.Header)
23782	}
23783	return c.header_
23784}
23785
23786func (c *AdvertisersLocationListsCreateCall) doRequest(alt string) (*http.Response, error) {
23787	reqHeaders := make(http.Header)
23788	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
23789	for k, v := range c.header_ {
23790		reqHeaders[k] = v
23791	}
23792	reqHeaders.Set("User-Agent", c.s.userAgent())
23793	var body io.Reader = nil
23794	body, err := googleapi.WithoutDataWrapper.JSONReader(c.locationlist)
23795	if err != nil {
23796		return nil, err
23797	}
23798	reqHeaders.Set("Content-Type", "application/json")
23799	c.urlParams_.Set("alt", alt)
23800	c.urlParams_.Set("prettyPrint", "false")
23801	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/locationLists")
23802	urls += "?" + c.urlParams_.Encode()
23803	req, err := http.NewRequest("POST", urls, body)
23804	if err != nil {
23805		return nil, err
23806	}
23807	req.Header = reqHeaders
23808	googleapi.Expand(req.URL, map[string]string{
23809		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
23810	})
23811	return gensupport.SendRequest(c.ctx_, c.s.client, req)
23812}
23813
23814// Do executes the "displayvideo.advertisers.locationLists.create" call.
23815// Exactly one of *LocationList or error will be non-nil. Any non-2xx
23816// status code is an error. Response headers are in either
23817// *LocationList.ServerResponse.Header or (if a response was returned at
23818// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
23819// to check whether the returned error was because
23820// http.StatusNotModified was returned.
23821func (c *AdvertisersLocationListsCreateCall) Do(opts ...googleapi.CallOption) (*LocationList, error) {
23822	gensupport.SetOptions(c.urlParams_, opts...)
23823	res, err := c.doRequest("json")
23824	if res != nil && res.StatusCode == http.StatusNotModified {
23825		if res.Body != nil {
23826			res.Body.Close()
23827		}
23828		return nil, &googleapi.Error{
23829			Code:   res.StatusCode,
23830			Header: res.Header,
23831		}
23832	}
23833	if err != nil {
23834		return nil, err
23835	}
23836	defer googleapi.CloseBody(res)
23837	if err := googleapi.CheckResponse(res); err != nil {
23838		return nil, err
23839	}
23840	ret := &LocationList{
23841		ServerResponse: googleapi.ServerResponse{
23842			Header:         res.Header,
23843			HTTPStatusCode: res.StatusCode,
23844		},
23845	}
23846	target := &ret
23847	if err := gensupport.DecodeResponse(target, res); err != nil {
23848		return nil, err
23849	}
23850	return ret, nil
23851	// {
23852	//   "description": "Creates a new location list. Returns the newly created location list if successful.",
23853	//   "flatPath": "v1/advertisers/{advertisersId}/locationLists",
23854	//   "httpMethod": "POST",
23855	//   "id": "displayvideo.advertisers.locationLists.create",
23856	//   "parameterOrder": [
23857	//     "advertiserId"
23858	//   ],
23859	//   "parameters": {
23860	//     "advertiserId": {
23861	//       "description": "Required. The ID of the DV360 advertiser to which the location list belongs.",
23862	//       "format": "int64",
23863	//       "location": "path",
23864	//       "pattern": "^[^/]+$",
23865	//       "required": true,
23866	//       "type": "string"
23867	//     }
23868	//   },
23869	//   "path": "v1/advertisers/{+advertiserId}/locationLists",
23870	//   "request": {
23871	//     "$ref": "LocationList"
23872	//   },
23873	//   "response": {
23874	//     "$ref": "LocationList"
23875	//   },
23876	//   "scopes": [
23877	//     "https://www.googleapis.com/auth/display-video"
23878	//   ]
23879	// }
23880
23881}
23882
23883// method id "displayvideo.advertisers.locationLists.get":
23884
23885type AdvertisersLocationListsGetCall struct {
23886	s              *Service
23887	advertiserId   int64
23888	locationListId int64
23889	urlParams_     gensupport.URLParams
23890	ifNoneMatch_   string
23891	ctx_           context.Context
23892	header_        http.Header
23893}
23894
23895// Get: Gets a location list.
23896//
23897// - advertiserId: The ID of the DV360 advertiser to which the fetched
23898//   location list belongs.
23899// - locationListId: The ID of the location list to fetch.
23900func (r *AdvertisersLocationListsService) Get(advertiserId int64, locationListId int64) *AdvertisersLocationListsGetCall {
23901	c := &AdvertisersLocationListsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
23902	c.advertiserId = advertiserId
23903	c.locationListId = locationListId
23904	return c
23905}
23906
23907// Fields allows partial responses to be retrieved. See
23908// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
23909// for more information.
23910func (c *AdvertisersLocationListsGetCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsGetCall {
23911	c.urlParams_.Set("fields", googleapi.CombineFields(s))
23912	return c
23913}
23914
23915// IfNoneMatch sets the optional parameter which makes the operation
23916// fail if the object's ETag matches the given value. This is useful for
23917// getting updates only after the object has changed since the last
23918// request. Use googleapi.IsNotModified to check whether the response
23919// error from Do is the result of In-None-Match.
23920func (c *AdvertisersLocationListsGetCall) IfNoneMatch(entityTag string) *AdvertisersLocationListsGetCall {
23921	c.ifNoneMatch_ = entityTag
23922	return c
23923}
23924
23925// Context sets the context to be used in this call's Do method. Any
23926// pending HTTP request will be aborted if the provided context is
23927// canceled.
23928func (c *AdvertisersLocationListsGetCall) Context(ctx context.Context) *AdvertisersLocationListsGetCall {
23929	c.ctx_ = ctx
23930	return c
23931}
23932
23933// Header returns an http.Header that can be modified by the caller to
23934// add HTTP headers to the request.
23935func (c *AdvertisersLocationListsGetCall) Header() http.Header {
23936	if c.header_ == nil {
23937		c.header_ = make(http.Header)
23938	}
23939	return c.header_
23940}
23941
23942func (c *AdvertisersLocationListsGetCall) doRequest(alt string) (*http.Response, error) {
23943	reqHeaders := make(http.Header)
23944	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
23945	for k, v := range c.header_ {
23946		reqHeaders[k] = v
23947	}
23948	reqHeaders.Set("User-Agent", c.s.userAgent())
23949	if c.ifNoneMatch_ != "" {
23950		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
23951	}
23952	var body io.Reader = nil
23953	c.urlParams_.Set("alt", alt)
23954	c.urlParams_.Set("prettyPrint", "false")
23955	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/locationLists/{+locationListId}")
23956	urls += "?" + c.urlParams_.Encode()
23957	req, err := http.NewRequest("GET", urls, body)
23958	if err != nil {
23959		return nil, err
23960	}
23961	req.Header = reqHeaders
23962	googleapi.Expand(req.URL, map[string]string{
23963		"advertiserId":   strconv.FormatInt(c.advertiserId, 10),
23964		"locationListId": strconv.FormatInt(c.locationListId, 10),
23965	})
23966	return gensupport.SendRequest(c.ctx_, c.s.client, req)
23967}
23968
23969// Do executes the "displayvideo.advertisers.locationLists.get" call.
23970// Exactly one of *LocationList or error will be non-nil. Any non-2xx
23971// status code is an error. Response headers are in either
23972// *LocationList.ServerResponse.Header or (if a response was returned at
23973// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
23974// to check whether the returned error was because
23975// http.StatusNotModified was returned.
23976func (c *AdvertisersLocationListsGetCall) Do(opts ...googleapi.CallOption) (*LocationList, error) {
23977	gensupport.SetOptions(c.urlParams_, opts...)
23978	res, err := c.doRequest("json")
23979	if res != nil && res.StatusCode == http.StatusNotModified {
23980		if res.Body != nil {
23981			res.Body.Close()
23982		}
23983		return nil, &googleapi.Error{
23984			Code:   res.StatusCode,
23985			Header: res.Header,
23986		}
23987	}
23988	if err != nil {
23989		return nil, err
23990	}
23991	defer googleapi.CloseBody(res)
23992	if err := googleapi.CheckResponse(res); err != nil {
23993		return nil, err
23994	}
23995	ret := &LocationList{
23996		ServerResponse: googleapi.ServerResponse{
23997			Header:         res.Header,
23998			HTTPStatusCode: res.StatusCode,
23999		},
24000	}
24001	target := &ret
24002	if err := gensupport.DecodeResponse(target, res); err != nil {
24003		return nil, err
24004	}
24005	return ret, nil
24006	// {
24007	//   "description": "Gets a location list.",
24008	//   "flatPath": "v1/advertisers/{advertisersId}/locationLists/{locationListsId}",
24009	//   "httpMethod": "GET",
24010	//   "id": "displayvideo.advertisers.locationLists.get",
24011	//   "parameterOrder": [
24012	//     "advertiserId",
24013	//     "locationListId"
24014	//   ],
24015	//   "parameters": {
24016	//     "advertiserId": {
24017	//       "description": "Required. The ID of the DV360 advertiser to which the fetched location list belongs.",
24018	//       "format": "int64",
24019	//       "location": "path",
24020	//       "pattern": "^[^/]+$",
24021	//       "required": true,
24022	//       "type": "string"
24023	//     },
24024	//     "locationListId": {
24025	//       "description": "Required. The ID of the location list to fetch.",
24026	//       "format": "int64",
24027	//       "location": "path",
24028	//       "pattern": "^[^/]+$",
24029	//       "required": true,
24030	//       "type": "string"
24031	//     }
24032	//   },
24033	//   "path": "v1/advertisers/{+advertiserId}/locationLists/{+locationListId}",
24034	//   "response": {
24035	//     "$ref": "LocationList"
24036	//   },
24037	//   "scopes": [
24038	//     "https://www.googleapis.com/auth/display-video"
24039	//   ]
24040	// }
24041
24042}
24043
24044// method id "displayvideo.advertisers.locationLists.list":
24045
24046type AdvertisersLocationListsListCall struct {
24047	s            *Service
24048	advertiserId int64
24049	urlParams_   gensupport.URLParams
24050	ifNoneMatch_ string
24051	ctx_         context.Context
24052	header_      http.Header
24053}
24054
24055// List: Lists location lists based on a given advertiser id.
24056//
24057// - advertiserId: The ID of the DV360 advertiser to which the fetched
24058//   location lists belong.
24059func (r *AdvertisersLocationListsService) List(advertiserId int64) *AdvertisersLocationListsListCall {
24060	c := &AdvertisersLocationListsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24061	c.advertiserId = advertiserId
24062	return c
24063}
24064
24065// Filter sets the optional parameter "filter": Allows filtering by
24066// location list fields. Supported syntax: * Filter expressions are made
24067// up of one or more restrictions. * Restrictions can be combined by
24068// `AND` or `OR` logical operators. A sequence of restrictions
24069// implicitly uses `AND`. * A restriction has the form of `{field}
24070// {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported
24071// fields: - `locationType` Examples: * All regional location list:
24072// `locationType="TARGETING_LOCATION_TYPE_REGIONAL" * All proximity
24073// location list: `locationType="TARGETING_LOCATION_TYPE_PROXIMITY"
24074func (c *AdvertisersLocationListsListCall) Filter(filter string) *AdvertisersLocationListsListCall {
24075	c.urlParams_.Set("filter", filter)
24076	return c
24077}
24078
24079// OrderBy sets the optional parameter "orderBy": Field by which to sort
24080// the list. Acceptable values are: * `locationListId` (default) *
24081// `displayName` The default sorting order is ascending. To specify
24082// descending order for a field, a suffix "desc" should be added to the
24083// field name. Example: `displayName desc`.
24084func (c *AdvertisersLocationListsListCall) OrderBy(orderBy string) *AdvertisersLocationListsListCall {
24085	c.urlParams_.Set("orderBy", orderBy)
24086	return c
24087}
24088
24089// PageSize sets the optional parameter "pageSize": Requested page size.
24090// Must be between `1` and `100`. Defaults to `100` if not set. Returns
24091// error code `INVALID_ARGUMENT` if an invalid value is specified.
24092func (c *AdvertisersLocationListsListCall) PageSize(pageSize int64) *AdvertisersLocationListsListCall {
24093	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
24094	return c
24095}
24096
24097// PageToken sets the optional parameter "pageToken": A token
24098// identifying a page of results the server should return. Typically,
24099// this is the value of next_page_token returned from the previous call
24100// to `ListLocationLists` method. If not specified, the first page of
24101// results will be returned.
24102func (c *AdvertisersLocationListsListCall) PageToken(pageToken string) *AdvertisersLocationListsListCall {
24103	c.urlParams_.Set("pageToken", pageToken)
24104	return c
24105}
24106
24107// Fields allows partial responses to be retrieved. See
24108// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24109// for more information.
24110func (c *AdvertisersLocationListsListCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsListCall {
24111	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24112	return c
24113}
24114
24115// IfNoneMatch sets the optional parameter which makes the operation
24116// fail if the object's ETag matches the given value. This is useful for
24117// getting updates only after the object has changed since the last
24118// request. Use googleapi.IsNotModified to check whether the response
24119// error from Do is the result of In-None-Match.
24120func (c *AdvertisersLocationListsListCall) IfNoneMatch(entityTag string) *AdvertisersLocationListsListCall {
24121	c.ifNoneMatch_ = entityTag
24122	return c
24123}
24124
24125// Context sets the context to be used in this call's Do method. Any
24126// pending HTTP request will be aborted if the provided context is
24127// canceled.
24128func (c *AdvertisersLocationListsListCall) Context(ctx context.Context) *AdvertisersLocationListsListCall {
24129	c.ctx_ = ctx
24130	return c
24131}
24132
24133// Header returns an http.Header that can be modified by the caller to
24134// add HTTP headers to the request.
24135func (c *AdvertisersLocationListsListCall) Header() http.Header {
24136	if c.header_ == nil {
24137		c.header_ = make(http.Header)
24138	}
24139	return c.header_
24140}
24141
24142func (c *AdvertisersLocationListsListCall) doRequest(alt string) (*http.Response, error) {
24143	reqHeaders := make(http.Header)
24144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
24145	for k, v := range c.header_ {
24146		reqHeaders[k] = v
24147	}
24148	reqHeaders.Set("User-Agent", c.s.userAgent())
24149	if c.ifNoneMatch_ != "" {
24150		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
24151	}
24152	var body io.Reader = nil
24153	c.urlParams_.Set("alt", alt)
24154	c.urlParams_.Set("prettyPrint", "false")
24155	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/locationLists")
24156	urls += "?" + c.urlParams_.Encode()
24157	req, err := http.NewRequest("GET", urls, body)
24158	if err != nil {
24159		return nil, err
24160	}
24161	req.Header = reqHeaders
24162	googleapi.Expand(req.URL, map[string]string{
24163		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
24164	})
24165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24166}
24167
24168// Do executes the "displayvideo.advertisers.locationLists.list" call.
24169// Exactly one of *ListLocationListsResponse or error will be non-nil.
24170// Any non-2xx status code is an error. Response headers are in either
24171// *ListLocationListsResponse.ServerResponse.Header or (if a response
24172// was returned at all) in error.(*googleapi.Error).Header. Use
24173// googleapi.IsNotModified to check whether the returned error was
24174// because http.StatusNotModified was returned.
24175func (c *AdvertisersLocationListsListCall) Do(opts ...googleapi.CallOption) (*ListLocationListsResponse, error) {
24176	gensupport.SetOptions(c.urlParams_, opts...)
24177	res, err := c.doRequest("json")
24178	if res != nil && res.StatusCode == http.StatusNotModified {
24179		if res.Body != nil {
24180			res.Body.Close()
24181		}
24182		return nil, &googleapi.Error{
24183			Code:   res.StatusCode,
24184			Header: res.Header,
24185		}
24186	}
24187	if err != nil {
24188		return nil, err
24189	}
24190	defer googleapi.CloseBody(res)
24191	if err := googleapi.CheckResponse(res); err != nil {
24192		return nil, err
24193	}
24194	ret := &ListLocationListsResponse{
24195		ServerResponse: googleapi.ServerResponse{
24196			Header:         res.Header,
24197			HTTPStatusCode: res.StatusCode,
24198		},
24199	}
24200	target := &ret
24201	if err := gensupport.DecodeResponse(target, res); err != nil {
24202		return nil, err
24203	}
24204	return ret, nil
24205	// {
24206	//   "description": "Lists location lists based on a given advertiser id.",
24207	//   "flatPath": "v1/advertisers/{advertisersId}/locationLists",
24208	//   "httpMethod": "GET",
24209	//   "id": "displayvideo.advertisers.locationLists.list",
24210	//   "parameterOrder": [
24211	//     "advertiserId"
24212	//   ],
24213	//   "parameters": {
24214	//     "advertiserId": {
24215	//       "description": "Required. The ID of the DV360 advertiser to which the fetched location lists belong.",
24216	//       "format": "int64",
24217	//       "location": "path",
24218	//       "pattern": "^[^/]+$",
24219	//       "required": true,
24220	//       "type": "string"
24221	//     },
24222	//     "filter": {
24223	//       "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\"`",
24224	//       "location": "query",
24225	//       "type": "string"
24226	//     },
24227	//     "orderBy": {
24228	//       "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`.",
24229	//       "location": "query",
24230	//       "type": "string"
24231	//     },
24232	//     "pageSize": {
24233	//       "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.",
24234	//       "format": "int32",
24235	//       "location": "query",
24236	//       "type": "integer"
24237	//     },
24238	//     "pageToken": {
24239	//       "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.",
24240	//       "location": "query",
24241	//       "type": "string"
24242	//     }
24243	//   },
24244	//   "path": "v1/advertisers/{+advertiserId}/locationLists",
24245	//   "response": {
24246	//     "$ref": "ListLocationListsResponse"
24247	//   },
24248	//   "scopes": [
24249	//     "https://www.googleapis.com/auth/display-video"
24250	//   ]
24251	// }
24252
24253}
24254
24255// Pages invokes f for each page of results.
24256// A non-nil error returned from f will halt the iteration.
24257// The provided context supersedes any context provided to the Context method.
24258func (c *AdvertisersLocationListsListCall) Pages(ctx context.Context, f func(*ListLocationListsResponse) error) error {
24259	c.ctx_ = ctx
24260	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
24261	for {
24262		x, err := c.Do()
24263		if err != nil {
24264			return err
24265		}
24266		if err := f(x); err != nil {
24267			return err
24268		}
24269		if x.NextPageToken == "" {
24270			return nil
24271		}
24272		c.PageToken(x.NextPageToken)
24273	}
24274}
24275
24276// method id "displayvideo.advertisers.locationLists.patch":
24277
24278type AdvertisersLocationListsPatchCall struct {
24279	s              *Service
24280	advertiserId   int64
24281	locationListId int64
24282	locationlist   *LocationList
24283	urlParams_     gensupport.URLParams
24284	ctx_           context.Context
24285	header_        http.Header
24286}
24287
24288// Patch: Updates a location list. Returns the updated location list if
24289// successful.
24290//
24291// - advertiserId: The ID of the DV360 advertiser to which the location
24292//   lists belongs.
24293// - locationListId: Output only. The unique ID of the location list.
24294//   Assigned by the system.
24295func (r *AdvertisersLocationListsService) Patch(advertiserId int64, locationListId int64, locationlist *LocationList) *AdvertisersLocationListsPatchCall {
24296	c := &AdvertisersLocationListsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24297	c.advertiserId = advertiserId
24298	c.locationListId = locationListId
24299	c.locationlist = locationlist
24300	return c
24301}
24302
24303// UpdateMask sets the optional parameter "updateMask": Required. The
24304// mask to control which fields to update.
24305func (c *AdvertisersLocationListsPatchCall) UpdateMask(updateMask string) *AdvertisersLocationListsPatchCall {
24306	c.urlParams_.Set("updateMask", updateMask)
24307	return c
24308}
24309
24310// Fields allows partial responses to be retrieved. See
24311// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24312// for more information.
24313func (c *AdvertisersLocationListsPatchCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsPatchCall {
24314	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24315	return c
24316}
24317
24318// Context sets the context to be used in this call's Do method. Any
24319// pending HTTP request will be aborted if the provided context is
24320// canceled.
24321func (c *AdvertisersLocationListsPatchCall) Context(ctx context.Context) *AdvertisersLocationListsPatchCall {
24322	c.ctx_ = ctx
24323	return c
24324}
24325
24326// Header returns an http.Header that can be modified by the caller to
24327// add HTTP headers to the request.
24328func (c *AdvertisersLocationListsPatchCall) Header() http.Header {
24329	if c.header_ == nil {
24330		c.header_ = make(http.Header)
24331	}
24332	return c.header_
24333}
24334
24335func (c *AdvertisersLocationListsPatchCall) doRequest(alt string) (*http.Response, error) {
24336	reqHeaders := make(http.Header)
24337	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
24338	for k, v := range c.header_ {
24339		reqHeaders[k] = v
24340	}
24341	reqHeaders.Set("User-Agent", c.s.userAgent())
24342	var body io.Reader = nil
24343	body, err := googleapi.WithoutDataWrapper.JSONReader(c.locationlist)
24344	if err != nil {
24345		return nil, err
24346	}
24347	reqHeaders.Set("Content-Type", "application/json")
24348	c.urlParams_.Set("alt", alt)
24349	c.urlParams_.Set("prettyPrint", "false")
24350	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/locationLists/{locationListId}")
24351	urls += "?" + c.urlParams_.Encode()
24352	req, err := http.NewRequest("PATCH", urls, body)
24353	if err != nil {
24354		return nil, err
24355	}
24356	req.Header = reqHeaders
24357	googleapi.Expand(req.URL, map[string]string{
24358		"advertiserId":   strconv.FormatInt(c.advertiserId, 10),
24359		"locationListId": strconv.FormatInt(c.locationListId, 10),
24360	})
24361	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24362}
24363
24364// Do executes the "displayvideo.advertisers.locationLists.patch" call.
24365// Exactly one of *LocationList or error will be non-nil. Any non-2xx
24366// status code is an error. Response headers are in either
24367// *LocationList.ServerResponse.Header or (if a response was returned at
24368// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
24369// to check whether the returned error was because
24370// http.StatusNotModified was returned.
24371func (c *AdvertisersLocationListsPatchCall) Do(opts ...googleapi.CallOption) (*LocationList, error) {
24372	gensupport.SetOptions(c.urlParams_, opts...)
24373	res, err := c.doRequest("json")
24374	if res != nil && res.StatusCode == http.StatusNotModified {
24375		if res.Body != nil {
24376			res.Body.Close()
24377		}
24378		return nil, &googleapi.Error{
24379			Code:   res.StatusCode,
24380			Header: res.Header,
24381		}
24382	}
24383	if err != nil {
24384		return nil, err
24385	}
24386	defer googleapi.CloseBody(res)
24387	if err := googleapi.CheckResponse(res); err != nil {
24388		return nil, err
24389	}
24390	ret := &LocationList{
24391		ServerResponse: googleapi.ServerResponse{
24392			Header:         res.Header,
24393			HTTPStatusCode: res.StatusCode,
24394		},
24395	}
24396	target := &ret
24397	if err := gensupport.DecodeResponse(target, res); err != nil {
24398		return nil, err
24399	}
24400	return ret, nil
24401	// {
24402	//   "description": "Updates a location list. Returns the updated location list if successful.",
24403	//   "flatPath": "v1/advertisers/{advertisersId}/locationLists/{locationListId}",
24404	//   "httpMethod": "PATCH",
24405	//   "id": "displayvideo.advertisers.locationLists.patch",
24406	//   "parameterOrder": [
24407	//     "advertiserId",
24408	//     "locationListId"
24409	//   ],
24410	//   "parameters": {
24411	//     "advertiserId": {
24412	//       "description": "Required. The ID of the DV360 advertiser to which the location lists belongs.",
24413	//       "format": "int64",
24414	//       "location": "path",
24415	//       "pattern": "^[^/]+$",
24416	//       "required": true,
24417	//       "type": "string"
24418	//     },
24419	//     "locationListId": {
24420	//       "description": "Output only. The unique ID of the location list. Assigned by the system.",
24421	//       "format": "int64",
24422	//       "location": "path",
24423	//       "required": true,
24424	//       "type": "string"
24425	//     },
24426	//     "updateMask": {
24427	//       "description": "Required. The mask to control which fields to update.",
24428	//       "format": "google-fieldmask",
24429	//       "location": "query",
24430	//       "type": "string"
24431	//     }
24432	//   },
24433	//   "path": "v1/advertisers/{+advertiserId}/locationLists/{locationListId}",
24434	//   "request": {
24435	//     "$ref": "LocationList"
24436	//   },
24437	//   "response": {
24438	//     "$ref": "LocationList"
24439	//   },
24440	//   "scopes": [
24441	//     "https://www.googleapis.com/auth/display-video"
24442	//   ]
24443	// }
24444
24445}
24446
24447// method id "displayvideo.advertisers.locationLists.assignedLocations.bulkEdit":
24448
24449type AdvertisersLocationListsAssignedLocationsBulkEditCall struct {
24450	s                                *Service
24451	advertiserId                     int64
24452	locationListId                   int64
24453	bulkeditassignedlocationsrequest *BulkEditAssignedLocationsRequest
24454	urlParams_                       gensupport.URLParams
24455	ctx_                             context.Context
24456	header_                          http.Header
24457}
24458
24459// BulkEdit: Bulk edits multiple assignments between locations and a
24460// single location list. The operation will delete the assigned
24461// locations provided in
24462// BulkEditAssignedLocationsRequest.deleted_assigned_locations and then
24463// create the assigned locations provided in
24464// BulkEditAssignedLocationsRequest.created_assigned_locations.
24465//
24466// - advertiserId: The ID of the DV360 advertiser to which the location
24467//   list belongs.
24468// - locationListId: The ID of the location list to which these
24469//   assignments are assigned.
24470func (r *AdvertisersLocationListsAssignedLocationsService) BulkEdit(advertiserId int64, locationListId int64, bulkeditassignedlocationsrequest *BulkEditAssignedLocationsRequest) *AdvertisersLocationListsAssignedLocationsBulkEditCall {
24471	c := &AdvertisersLocationListsAssignedLocationsBulkEditCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24472	c.advertiserId = advertiserId
24473	c.locationListId = locationListId
24474	c.bulkeditassignedlocationsrequest = bulkeditassignedlocationsrequest
24475	return c
24476}
24477
24478// Fields allows partial responses to be retrieved. See
24479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24480// for more information.
24481func (c *AdvertisersLocationListsAssignedLocationsBulkEditCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsAssignedLocationsBulkEditCall {
24482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24483	return c
24484}
24485
24486// Context sets the context to be used in this call's Do method. Any
24487// pending HTTP request will be aborted if the provided context is
24488// canceled.
24489func (c *AdvertisersLocationListsAssignedLocationsBulkEditCall) Context(ctx context.Context) *AdvertisersLocationListsAssignedLocationsBulkEditCall {
24490	c.ctx_ = ctx
24491	return c
24492}
24493
24494// Header returns an http.Header that can be modified by the caller to
24495// add HTTP headers to the request.
24496func (c *AdvertisersLocationListsAssignedLocationsBulkEditCall) Header() http.Header {
24497	if c.header_ == nil {
24498		c.header_ = make(http.Header)
24499	}
24500	return c.header_
24501}
24502
24503func (c *AdvertisersLocationListsAssignedLocationsBulkEditCall) doRequest(alt string) (*http.Response, error) {
24504	reqHeaders := make(http.Header)
24505	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
24506	for k, v := range c.header_ {
24507		reqHeaders[k] = v
24508	}
24509	reqHeaders.Set("User-Agent", c.s.userAgent())
24510	var body io.Reader = nil
24511	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditassignedlocationsrequest)
24512	if err != nil {
24513		return nil, err
24514	}
24515	reqHeaders.Set("Content-Type", "application/json")
24516	c.urlParams_.Set("alt", alt)
24517	c.urlParams_.Set("prettyPrint", "false")
24518	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/locationLists/{+locationListId}/assignedLocations:bulkEdit")
24519	urls += "?" + c.urlParams_.Encode()
24520	req, err := http.NewRequest("POST", urls, body)
24521	if err != nil {
24522		return nil, err
24523	}
24524	req.Header = reqHeaders
24525	googleapi.Expand(req.URL, map[string]string{
24526		"advertiserId":   strconv.FormatInt(c.advertiserId, 10),
24527		"locationListId": strconv.FormatInt(c.locationListId, 10),
24528	})
24529	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24530}
24531
24532// Do executes the "displayvideo.advertisers.locationLists.assignedLocations.bulkEdit" call.
24533// Exactly one of *BulkEditAssignedLocationsResponse or error will be
24534// non-nil. Any non-2xx status code is an error. Response headers are in
24535// either *BulkEditAssignedLocationsResponse.ServerResponse.Header or
24536// (if a response was returned at all) in
24537// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
24538// whether the returned error was because http.StatusNotModified was
24539// returned.
24540func (c *AdvertisersLocationListsAssignedLocationsBulkEditCall) Do(opts ...googleapi.CallOption) (*BulkEditAssignedLocationsResponse, error) {
24541	gensupport.SetOptions(c.urlParams_, opts...)
24542	res, err := c.doRequest("json")
24543	if res != nil && res.StatusCode == http.StatusNotModified {
24544		if res.Body != nil {
24545			res.Body.Close()
24546		}
24547		return nil, &googleapi.Error{
24548			Code:   res.StatusCode,
24549			Header: res.Header,
24550		}
24551	}
24552	if err != nil {
24553		return nil, err
24554	}
24555	defer googleapi.CloseBody(res)
24556	if err := googleapi.CheckResponse(res); err != nil {
24557		return nil, err
24558	}
24559	ret := &BulkEditAssignedLocationsResponse{
24560		ServerResponse: googleapi.ServerResponse{
24561			Header:         res.Header,
24562			HTTPStatusCode: res.StatusCode,
24563		},
24564	}
24565	target := &ret
24566	if err := gensupport.DecodeResponse(target, res); err != nil {
24567		return nil, err
24568	}
24569	return ret, nil
24570	// {
24571	//   "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.",
24572	//   "flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListsId}/assignedLocations:bulkEdit",
24573	//   "httpMethod": "POST",
24574	//   "id": "displayvideo.advertisers.locationLists.assignedLocations.bulkEdit",
24575	//   "parameterOrder": [
24576	//     "advertiserId",
24577	//     "locationListId"
24578	//   ],
24579	//   "parameters": {
24580	//     "advertiserId": {
24581	//       "description": "Required. The ID of the DV360 advertiser to which the location list belongs.",
24582	//       "format": "int64",
24583	//       "location": "path",
24584	//       "required": true,
24585	//       "type": "string"
24586	//     },
24587	//     "locationListId": {
24588	//       "description": "Required. The ID of the location list to which these assignments are assigned.",
24589	//       "format": "int64",
24590	//       "location": "path",
24591	//       "pattern": "^[^/]+$",
24592	//       "required": true,
24593	//       "type": "string"
24594	//     }
24595	//   },
24596	//   "path": "v1/advertisers/{advertiserId}/locationLists/{+locationListId}/assignedLocations:bulkEdit",
24597	//   "request": {
24598	//     "$ref": "BulkEditAssignedLocationsRequest"
24599	//   },
24600	//   "response": {
24601	//     "$ref": "BulkEditAssignedLocationsResponse"
24602	//   },
24603	//   "scopes": [
24604	//     "https://www.googleapis.com/auth/display-video"
24605	//   ]
24606	// }
24607
24608}
24609
24610// method id "displayvideo.advertisers.locationLists.assignedLocations.create":
24611
24612type AdvertisersLocationListsAssignedLocationsCreateCall struct {
24613	s                *Service
24614	advertiserId     int64
24615	locationListId   int64
24616	assignedlocation *AssignedLocation
24617	urlParams_       gensupport.URLParams
24618	ctx_             context.Context
24619	header_          http.Header
24620}
24621
24622// Create: Creates an assignment between a location and a location list.
24623//
24624// - advertiserId: The ID of the DV360 advertiser to which the location
24625//   list belongs.
24626// - locationListId: The ID of the location list for which the
24627//   assignment will be created.
24628func (r *AdvertisersLocationListsAssignedLocationsService) Create(advertiserId int64, locationListId int64, assignedlocation *AssignedLocation) *AdvertisersLocationListsAssignedLocationsCreateCall {
24629	c := &AdvertisersLocationListsAssignedLocationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24630	c.advertiserId = advertiserId
24631	c.locationListId = locationListId
24632	c.assignedlocation = assignedlocation
24633	return c
24634}
24635
24636// Fields allows partial responses to be retrieved. See
24637// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24638// for more information.
24639func (c *AdvertisersLocationListsAssignedLocationsCreateCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsAssignedLocationsCreateCall {
24640	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24641	return c
24642}
24643
24644// Context sets the context to be used in this call's Do method. Any
24645// pending HTTP request will be aborted if the provided context is
24646// canceled.
24647func (c *AdvertisersLocationListsAssignedLocationsCreateCall) Context(ctx context.Context) *AdvertisersLocationListsAssignedLocationsCreateCall {
24648	c.ctx_ = ctx
24649	return c
24650}
24651
24652// Header returns an http.Header that can be modified by the caller to
24653// add HTTP headers to the request.
24654func (c *AdvertisersLocationListsAssignedLocationsCreateCall) Header() http.Header {
24655	if c.header_ == nil {
24656		c.header_ = make(http.Header)
24657	}
24658	return c.header_
24659}
24660
24661func (c *AdvertisersLocationListsAssignedLocationsCreateCall) doRequest(alt string) (*http.Response, error) {
24662	reqHeaders := make(http.Header)
24663	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
24664	for k, v := range c.header_ {
24665		reqHeaders[k] = v
24666	}
24667	reqHeaders.Set("User-Agent", c.s.userAgent())
24668	var body io.Reader = nil
24669	body, err := googleapi.WithoutDataWrapper.JSONReader(c.assignedlocation)
24670	if err != nil {
24671		return nil, err
24672	}
24673	reqHeaders.Set("Content-Type", "application/json")
24674	c.urlParams_.Set("alt", alt)
24675	c.urlParams_.Set("prettyPrint", "false")
24676	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations")
24677	urls += "?" + c.urlParams_.Encode()
24678	req, err := http.NewRequest("POST", urls, body)
24679	if err != nil {
24680		return nil, err
24681	}
24682	req.Header = reqHeaders
24683	googleapi.Expand(req.URL, map[string]string{
24684		"advertiserId":   strconv.FormatInt(c.advertiserId, 10),
24685		"locationListId": strconv.FormatInt(c.locationListId, 10),
24686	})
24687	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24688}
24689
24690// Do executes the "displayvideo.advertisers.locationLists.assignedLocations.create" call.
24691// Exactly one of *AssignedLocation or error will be non-nil. Any
24692// non-2xx status code is an error. Response headers are in either
24693// *AssignedLocation.ServerResponse.Header or (if a response was
24694// returned at all) in error.(*googleapi.Error).Header. Use
24695// googleapi.IsNotModified to check whether the returned error was
24696// because http.StatusNotModified was returned.
24697func (c *AdvertisersLocationListsAssignedLocationsCreateCall) Do(opts ...googleapi.CallOption) (*AssignedLocation, error) {
24698	gensupport.SetOptions(c.urlParams_, opts...)
24699	res, err := c.doRequest("json")
24700	if res != nil && res.StatusCode == http.StatusNotModified {
24701		if res.Body != nil {
24702			res.Body.Close()
24703		}
24704		return nil, &googleapi.Error{
24705			Code:   res.StatusCode,
24706			Header: res.Header,
24707		}
24708	}
24709	if err != nil {
24710		return nil, err
24711	}
24712	defer googleapi.CloseBody(res)
24713	if err := googleapi.CheckResponse(res); err != nil {
24714		return nil, err
24715	}
24716	ret := &AssignedLocation{
24717		ServerResponse: googleapi.ServerResponse{
24718			Header:         res.Header,
24719			HTTPStatusCode: res.StatusCode,
24720		},
24721	}
24722	target := &ret
24723	if err := gensupport.DecodeResponse(target, res); err != nil {
24724		return nil, err
24725	}
24726	return ret, nil
24727	// {
24728	//   "description": "Creates an assignment between a location and a location list.",
24729	//   "flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations",
24730	//   "httpMethod": "POST",
24731	//   "id": "displayvideo.advertisers.locationLists.assignedLocations.create",
24732	//   "parameterOrder": [
24733	//     "advertiserId",
24734	//     "locationListId"
24735	//   ],
24736	//   "parameters": {
24737	//     "advertiserId": {
24738	//       "description": "Required. The ID of the DV360 advertiser to which the location list belongs.",
24739	//       "format": "int64",
24740	//       "location": "path",
24741	//       "required": true,
24742	//       "type": "string"
24743	//     },
24744	//     "locationListId": {
24745	//       "description": "Required. The ID of the location list for which the assignment will be created.",
24746	//       "format": "int64",
24747	//       "location": "path",
24748	//       "required": true,
24749	//       "type": "string"
24750	//     }
24751	//   },
24752	//   "path": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations",
24753	//   "request": {
24754	//     "$ref": "AssignedLocation"
24755	//   },
24756	//   "response": {
24757	//     "$ref": "AssignedLocation"
24758	//   },
24759	//   "scopes": [
24760	//     "https://www.googleapis.com/auth/display-video"
24761	//   ]
24762	// }
24763
24764}
24765
24766// method id "displayvideo.advertisers.locationLists.assignedLocations.delete":
24767
24768type AdvertisersLocationListsAssignedLocationsDeleteCall struct {
24769	s                  *Service
24770	advertiserId       int64
24771	locationListId     int64
24772	assignedLocationId int64
24773	urlParams_         gensupport.URLParams
24774	ctx_               context.Context
24775	header_            http.Header
24776}
24777
24778// Delete: Deletes the assignment between a location and a location
24779// list.
24780//
24781// - advertiserId: The ID of the DV360 advertiser to which the location
24782//   list belongs.
24783// - assignedLocationId: The ID of the assigned location to delete.
24784// - locationListId: The ID of the location list to which this
24785//   assignment is assigned.
24786func (r *AdvertisersLocationListsAssignedLocationsService) Delete(advertiserId int64, locationListId int64, assignedLocationId int64) *AdvertisersLocationListsAssignedLocationsDeleteCall {
24787	c := &AdvertisersLocationListsAssignedLocationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24788	c.advertiserId = advertiserId
24789	c.locationListId = locationListId
24790	c.assignedLocationId = assignedLocationId
24791	return c
24792}
24793
24794// Fields allows partial responses to be retrieved. See
24795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24796// for more information.
24797func (c *AdvertisersLocationListsAssignedLocationsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsAssignedLocationsDeleteCall {
24798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24799	return c
24800}
24801
24802// Context sets the context to be used in this call's Do method. Any
24803// pending HTTP request will be aborted if the provided context is
24804// canceled.
24805func (c *AdvertisersLocationListsAssignedLocationsDeleteCall) Context(ctx context.Context) *AdvertisersLocationListsAssignedLocationsDeleteCall {
24806	c.ctx_ = ctx
24807	return c
24808}
24809
24810// Header returns an http.Header that can be modified by the caller to
24811// add HTTP headers to the request.
24812func (c *AdvertisersLocationListsAssignedLocationsDeleteCall) Header() http.Header {
24813	if c.header_ == nil {
24814		c.header_ = make(http.Header)
24815	}
24816	return c.header_
24817}
24818
24819func (c *AdvertisersLocationListsAssignedLocationsDeleteCall) doRequest(alt string) (*http.Response, error) {
24820	reqHeaders := make(http.Header)
24821	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
24822	for k, v := range c.header_ {
24823		reqHeaders[k] = v
24824	}
24825	reqHeaders.Set("User-Agent", c.s.userAgent())
24826	var body io.Reader = nil
24827	c.urlParams_.Set("alt", alt)
24828	c.urlParams_.Set("prettyPrint", "false")
24829	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations/{+assignedLocationId}")
24830	urls += "?" + c.urlParams_.Encode()
24831	req, err := http.NewRequest("DELETE", urls, body)
24832	if err != nil {
24833		return nil, err
24834	}
24835	req.Header = reqHeaders
24836	googleapi.Expand(req.URL, map[string]string{
24837		"advertiserId":       strconv.FormatInt(c.advertiserId, 10),
24838		"locationListId":     strconv.FormatInt(c.locationListId, 10),
24839		"assignedLocationId": strconv.FormatInt(c.assignedLocationId, 10),
24840	})
24841	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24842}
24843
24844// Do executes the "displayvideo.advertisers.locationLists.assignedLocations.delete" call.
24845// Exactly one of *Empty or error will be non-nil. Any non-2xx status
24846// code is an error. Response headers are in either
24847// *Empty.ServerResponse.Header or (if a response was returned at all)
24848// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
24849// check whether the returned error was because http.StatusNotModified
24850// was returned.
24851func (c *AdvertisersLocationListsAssignedLocationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
24852	gensupport.SetOptions(c.urlParams_, opts...)
24853	res, err := c.doRequest("json")
24854	if res != nil && res.StatusCode == http.StatusNotModified {
24855		if res.Body != nil {
24856			res.Body.Close()
24857		}
24858		return nil, &googleapi.Error{
24859			Code:   res.StatusCode,
24860			Header: res.Header,
24861		}
24862	}
24863	if err != nil {
24864		return nil, err
24865	}
24866	defer googleapi.CloseBody(res)
24867	if err := googleapi.CheckResponse(res); err != nil {
24868		return nil, err
24869	}
24870	ret := &Empty{
24871		ServerResponse: googleapi.ServerResponse{
24872			Header:         res.Header,
24873			HTTPStatusCode: res.StatusCode,
24874		},
24875	}
24876	target := &ret
24877	if err := gensupport.DecodeResponse(target, res); err != nil {
24878		return nil, err
24879	}
24880	return ret, nil
24881	// {
24882	//   "description": "Deletes the assignment between a location and a location list.",
24883	//   "flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations/{assignedLocationsId}",
24884	//   "httpMethod": "DELETE",
24885	//   "id": "displayvideo.advertisers.locationLists.assignedLocations.delete",
24886	//   "parameterOrder": [
24887	//     "advertiserId",
24888	//     "locationListId",
24889	//     "assignedLocationId"
24890	//   ],
24891	//   "parameters": {
24892	//     "advertiserId": {
24893	//       "description": "Required. The ID of the DV360 advertiser to which the location list belongs.",
24894	//       "format": "int64",
24895	//       "location": "path",
24896	//       "required": true,
24897	//       "type": "string"
24898	//     },
24899	//     "assignedLocationId": {
24900	//       "description": "Required. The ID of the assigned location to delete.",
24901	//       "format": "int64",
24902	//       "location": "path",
24903	//       "pattern": "^[^/]+$",
24904	//       "required": true,
24905	//       "type": "string"
24906	//     },
24907	//     "locationListId": {
24908	//       "description": "Required. The ID of the location list to which this assignment is assigned.",
24909	//       "format": "int64",
24910	//       "location": "path",
24911	//       "required": true,
24912	//       "type": "string"
24913	//     }
24914	//   },
24915	//   "path": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations/{+assignedLocationId}",
24916	//   "response": {
24917	//     "$ref": "Empty"
24918	//   },
24919	//   "scopes": [
24920	//     "https://www.googleapis.com/auth/display-video"
24921	//   ]
24922	// }
24923
24924}
24925
24926// method id "displayvideo.advertisers.locationLists.assignedLocations.list":
24927
24928type AdvertisersLocationListsAssignedLocationsListCall struct {
24929	s              *Service
24930	advertiserId   int64
24931	locationListId int64
24932	urlParams_     gensupport.URLParams
24933	ifNoneMatch_   string
24934	ctx_           context.Context
24935	header_        http.Header
24936}
24937
24938// List: Lists locations assigned to a location list.
24939//
24940// - advertiserId: The ID of the DV360 advertiser to which the location
24941//   list belongs.
24942// - locationListId: The ID of the location list to which these
24943//   assignments are assigned.
24944func (r *AdvertisersLocationListsAssignedLocationsService) List(advertiserId int64, locationListId int64) *AdvertisersLocationListsAssignedLocationsListCall {
24945	c := &AdvertisersLocationListsAssignedLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24946	c.advertiserId = advertiserId
24947	c.locationListId = locationListId
24948	return c
24949}
24950
24951// Filter sets the optional parameter "filter": Allows filtering by
24952// location list assignment fields. Supported syntax: * Filter
24953// expressions are made up of one or more restrictions. * Restrictions
24954// can be combined by the logical operator `OR`. * A restriction has the
24955// form of `{field} {operator} {value}`. * The operator must be `EQUALS
24956// (=)`. * Supported fields: - `assignedLocationId` The length of this
24957// field should be no more than 500 characters.
24958func (c *AdvertisersLocationListsAssignedLocationsListCall) Filter(filter string) *AdvertisersLocationListsAssignedLocationsListCall {
24959	c.urlParams_.Set("filter", filter)
24960	return c
24961}
24962
24963// OrderBy sets the optional parameter "orderBy": Field by which to sort
24964// the list. Acceptable values are: * `assignedLocationId` (default) The
24965// default sorting order is ascending. To specify descending order for a
24966// field, a suffix " desc" should be added to the field name. Example:
24967// `assignedLocationId desc`.
24968func (c *AdvertisersLocationListsAssignedLocationsListCall) OrderBy(orderBy string) *AdvertisersLocationListsAssignedLocationsListCall {
24969	c.urlParams_.Set("orderBy", orderBy)
24970	return c
24971}
24972
24973// PageSize sets the optional parameter "pageSize": Requested page size.
24974// Must be between `1` and `100`. If unspecified will default to `100`.
24975// Returns error code `INVALID_ARGUMENT` if an invalid value is
24976// specified.
24977func (c *AdvertisersLocationListsAssignedLocationsListCall) PageSize(pageSize int64) *AdvertisersLocationListsAssignedLocationsListCall {
24978	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
24979	return c
24980}
24981
24982// PageToken sets the optional parameter "pageToken": A token
24983// identifying a page of results the server should return. Typically,
24984// this is the value of next_page_token returned from the previous call
24985// to `ListAssignedLocations` method. If not specified, the first page
24986// of results will be returned.
24987func (c *AdvertisersLocationListsAssignedLocationsListCall) PageToken(pageToken string) *AdvertisersLocationListsAssignedLocationsListCall {
24988	c.urlParams_.Set("pageToken", pageToken)
24989	return c
24990}
24991
24992// Fields allows partial responses to be retrieved. See
24993// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24994// for more information.
24995func (c *AdvertisersLocationListsAssignedLocationsListCall) Fields(s ...googleapi.Field) *AdvertisersLocationListsAssignedLocationsListCall {
24996	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24997	return c
24998}
24999
25000// IfNoneMatch sets the optional parameter which makes the operation
25001// fail if the object's ETag matches the given value. This is useful for
25002// getting updates only after the object has changed since the last
25003// request. Use googleapi.IsNotModified to check whether the response
25004// error from Do is the result of In-None-Match.
25005func (c *AdvertisersLocationListsAssignedLocationsListCall) IfNoneMatch(entityTag string) *AdvertisersLocationListsAssignedLocationsListCall {
25006	c.ifNoneMatch_ = entityTag
25007	return c
25008}
25009
25010// Context sets the context to be used in this call's Do method. Any
25011// pending HTTP request will be aborted if the provided context is
25012// canceled.
25013func (c *AdvertisersLocationListsAssignedLocationsListCall) Context(ctx context.Context) *AdvertisersLocationListsAssignedLocationsListCall {
25014	c.ctx_ = ctx
25015	return c
25016}
25017
25018// Header returns an http.Header that can be modified by the caller to
25019// add HTTP headers to the request.
25020func (c *AdvertisersLocationListsAssignedLocationsListCall) Header() http.Header {
25021	if c.header_ == nil {
25022		c.header_ = make(http.Header)
25023	}
25024	return c.header_
25025}
25026
25027func (c *AdvertisersLocationListsAssignedLocationsListCall) doRequest(alt string) (*http.Response, error) {
25028	reqHeaders := make(http.Header)
25029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
25030	for k, v := range c.header_ {
25031		reqHeaders[k] = v
25032	}
25033	reqHeaders.Set("User-Agent", c.s.userAgent())
25034	if c.ifNoneMatch_ != "" {
25035		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
25036	}
25037	var body io.Reader = nil
25038	c.urlParams_.Set("alt", alt)
25039	c.urlParams_.Set("prettyPrint", "false")
25040	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations")
25041	urls += "?" + c.urlParams_.Encode()
25042	req, err := http.NewRequest("GET", urls, body)
25043	if err != nil {
25044		return nil, err
25045	}
25046	req.Header = reqHeaders
25047	googleapi.Expand(req.URL, map[string]string{
25048		"advertiserId":   strconv.FormatInt(c.advertiserId, 10),
25049		"locationListId": strconv.FormatInt(c.locationListId, 10),
25050	})
25051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25052}
25053
25054// Do executes the "displayvideo.advertisers.locationLists.assignedLocations.list" call.
25055// Exactly one of *ListAssignedLocationsResponse or error will be
25056// non-nil. Any non-2xx status code is an error. Response headers are in
25057// either *ListAssignedLocationsResponse.ServerResponse.Header or (if a
25058// response was returned at all) in error.(*googleapi.Error).Header. Use
25059// googleapi.IsNotModified to check whether the returned error was
25060// because http.StatusNotModified was returned.
25061func (c *AdvertisersLocationListsAssignedLocationsListCall) Do(opts ...googleapi.CallOption) (*ListAssignedLocationsResponse, error) {
25062	gensupport.SetOptions(c.urlParams_, opts...)
25063	res, err := c.doRequest("json")
25064	if res != nil && res.StatusCode == http.StatusNotModified {
25065		if res.Body != nil {
25066			res.Body.Close()
25067		}
25068		return nil, &googleapi.Error{
25069			Code:   res.StatusCode,
25070			Header: res.Header,
25071		}
25072	}
25073	if err != nil {
25074		return nil, err
25075	}
25076	defer googleapi.CloseBody(res)
25077	if err := googleapi.CheckResponse(res); err != nil {
25078		return nil, err
25079	}
25080	ret := &ListAssignedLocationsResponse{
25081		ServerResponse: googleapi.ServerResponse{
25082			Header:         res.Header,
25083			HTTPStatusCode: res.StatusCode,
25084		},
25085	}
25086	target := &ret
25087	if err := gensupport.DecodeResponse(target, res); err != nil {
25088		return nil, err
25089	}
25090	return ret, nil
25091	// {
25092	//   "description": "Lists locations assigned to a location list.",
25093	//   "flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations",
25094	//   "httpMethod": "GET",
25095	//   "id": "displayvideo.advertisers.locationLists.assignedLocations.list",
25096	//   "parameterOrder": [
25097	//     "advertiserId",
25098	//     "locationListId"
25099	//   ],
25100	//   "parameters": {
25101	//     "advertiserId": {
25102	//       "description": "Required. The ID of the DV360 advertiser to which the location list belongs.",
25103	//       "format": "int64",
25104	//       "location": "path",
25105	//       "required": true,
25106	//       "type": "string"
25107	//     },
25108	//     "filter": {
25109	//       "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.",
25110	//       "location": "query",
25111	//       "type": "string"
25112	//     },
25113	//     "locationListId": {
25114	//       "description": "Required. The ID of the location list to which these assignments are assigned.",
25115	//       "format": "int64",
25116	//       "location": "path",
25117	//       "required": true,
25118	//       "type": "string"
25119	//     },
25120	//     "orderBy": {
25121	//       "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`.",
25122	//       "location": "query",
25123	//       "type": "string"
25124	//     },
25125	//     "pageSize": {
25126	//       "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.",
25127	//       "format": "int32",
25128	//       "location": "query",
25129	//       "type": "integer"
25130	//     },
25131	//     "pageToken": {
25132	//       "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.",
25133	//       "location": "query",
25134	//       "type": "string"
25135	//     }
25136	//   },
25137	//   "path": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations",
25138	//   "response": {
25139	//     "$ref": "ListAssignedLocationsResponse"
25140	//   },
25141	//   "scopes": [
25142	//     "https://www.googleapis.com/auth/display-video"
25143	//   ]
25144	// }
25145
25146}
25147
25148// Pages invokes f for each page of results.
25149// A non-nil error returned from f will halt the iteration.
25150// The provided context supersedes any context provided to the Context method.
25151func (c *AdvertisersLocationListsAssignedLocationsListCall) Pages(ctx context.Context, f func(*ListAssignedLocationsResponse) error) error {
25152	c.ctx_ = ctx
25153	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
25154	for {
25155		x, err := c.Do()
25156		if err != nil {
25157			return err
25158		}
25159		if err := f(x); err != nil {
25160			return err
25161		}
25162		if x.NextPageToken == "" {
25163			return nil
25164		}
25165		c.PageToken(x.NextPageToken)
25166	}
25167}
25168
25169// method id "displayvideo.advertisers.manualTriggers.activate":
25170
25171type AdvertisersManualTriggersActivateCall struct {
25172	s                            *Service
25173	advertiserId                 int64
25174	triggerId                    int64
25175	activatemanualtriggerrequest *ActivateManualTriggerRequest
25176	urlParams_                   gensupport.URLParams
25177	ctx_                         context.Context
25178	header_                      http.Header
25179}
25180
25181// Activate: Activates a manual trigger. Each activation of the manual
25182// trigger must be at least 5 minutes apart, otherwise an error will be
25183// returned.
25184//
25185// - advertiserId: The ID of the advertiser that the manual trigger
25186//   belongs.
25187// - triggerId: The ID of the manual trigger to activate.
25188func (r *AdvertisersManualTriggersService) Activate(advertiserId int64, triggerId int64, activatemanualtriggerrequest *ActivateManualTriggerRequest) *AdvertisersManualTriggersActivateCall {
25189	c := &AdvertisersManualTriggersActivateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25190	c.advertiserId = advertiserId
25191	c.triggerId = triggerId
25192	c.activatemanualtriggerrequest = activatemanualtriggerrequest
25193	return c
25194}
25195
25196// Fields allows partial responses to be retrieved. See
25197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25198// for more information.
25199func (c *AdvertisersManualTriggersActivateCall) Fields(s ...googleapi.Field) *AdvertisersManualTriggersActivateCall {
25200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25201	return c
25202}
25203
25204// Context sets the context to be used in this call's Do method. Any
25205// pending HTTP request will be aborted if the provided context is
25206// canceled.
25207func (c *AdvertisersManualTriggersActivateCall) Context(ctx context.Context) *AdvertisersManualTriggersActivateCall {
25208	c.ctx_ = ctx
25209	return c
25210}
25211
25212// Header returns an http.Header that can be modified by the caller to
25213// add HTTP headers to the request.
25214func (c *AdvertisersManualTriggersActivateCall) Header() http.Header {
25215	if c.header_ == nil {
25216		c.header_ = make(http.Header)
25217	}
25218	return c.header_
25219}
25220
25221func (c *AdvertisersManualTriggersActivateCall) doRequest(alt string) (*http.Response, error) {
25222	reqHeaders := make(http.Header)
25223	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
25224	for k, v := range c.header_ {
25225		reqHeaders[k] = v
25226	}
25227	reqHeaders.Set("User-Agent", c.s.userAgent())
25228	var body io.Reader = nil
25229	body, err := googleapi.WithoutDataWrapper.JSONReader(c.activatemanualtriggerrequest)
25230	if err != nil {
25231		return nil, err
25232	}
25233	reqHeaders.Set("Content-Type", "application/json")
25234	c.urlParams_.Set("alt", alt)
25235	c.urlParams_.Set("prettyPrint", "false")
25236	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:activate")
25237	urls += "?" + c.urlParams_.Encode()
25238	req, err := http.NewRequest("POST", urls, body)
25239	if err != nil {
25240		return nil, err
25241	}
25242	req.Header = reqHeaders
25243	googleapi.Expand(req.URL, map[string]string{
25244		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
25245		"triggerId":    strconv.FormatInt(c.triggerId, 10),
25246	})
25247	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25248}
25249
25250// Do executes the "displayvideo.advertisers.manualTriggers.activate" call.
25251// Exactly one of *ManualTrigger or error will be non-nil. Any non-2xx
25252// status code is an error. Response headers are in either
25253// *ManualTrigger.ServerResponse.Header or (if a response was returned
25254// at all) in error.(*googleapi.Error).Header. Use
25255// googleapi.IsNotModified to check whether the returned error was
25256// because http.StatusNotModified was returned.
25257func (c *AdvertisersManualTriggersActivateCall) Do(opts ...googleapi.CallOption) (*ManualTrigger, error) {
25258	gensupport.SetOptions(c.urlParams_, opts...)
25259	res, err := c.doRequest("json")
25260	if res != nil && res.StatusCode == http.StatusNotModified {
25261		if res.Body != nil {
25262			res.Body.Close()
25263		}
25264		return nil, &googleapi.Error{
25265			Code:   res.StatusCode,
25266			Header: res.Header,
25267		}
25268	}
25269	if err != nil {
25270		return nil, err
25271	}
25272	defer googleapi.CloseBody(res)
25273	if err := googleapi.CheckResponse(res); err != nil {
25274		return nil, err
25275	}
25276	ret := &ManualTrigger{
25277		ServerResponse: googleapi.ServerResponse{
25278			Header:         res.Header,
25279			HTTPStatusCode: res.StatusCode,
25280		},
25281	}
25282	target := &ret
25283	if err := gensupport.DecodeResponse(target, res); err != nil {
25284		return nil, err
25285	}
25286	return ret, nil
25287	// {
25288	//   "description": "Activates a manual trigger. Each activation of the manual trigger must be at least 5 minutes apart, otherwise an error will be returned.",
25289	//   "flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}:activate",
25290	//   "httpMethod": "POST",
25291	//   "id": "displayvideo.advertisers.manualTriggers.activate",
25292	//   "parameterOrder": [
25293	//     "advertiserId",
25294	//     "triggerId"
25295	//   ],
25296	//   "parameters": {
25297	//     "advertiserId": {
25298	//       "description": "Required. The ID of the advertiser that the manual trigger belongs.",
25299	//       "format": "int64",
25300	//       "location": "path",
25301	//       "pattern": "^[^/]+$",
25302	//       "required": true,
25303	//       "type": "string"
25304	//     },
25305	//     "triggerId": {
25306	//       "description": "Required. The ID of the manual trigger to activate.",
25307	//       "format": "int64",
25308	//       "location": "path",
25309	//       "pattern": "^[^/]+$",
25310	//       "required": true,
25311	//       "type": "string"
25312	//     }
25313	//   },
25314	//   "path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:activate",
25315	//   "request": {
25316	//     "$ref": "ActivateManualTriggerRequest"
25317	//   },
25318	//   "response": {
25319	//     "$ref": "ManualTrigger"
25320	//   },
25321	//   "scopes": [
25322	//     "https://www.googleapis.com/auth/display-video"
25323	//   ]
25324	// }
25325
25326}
25327
25328// method id "displayvideo.advertisers.manualTriggers.create":
25329
25330type AdvertisersManualTriggersCreateCall struct {
25331	s             *Service
25332	advertiserId  int64
25333	manualtrigger *ManualTrigger
25334	urlParams_    gensupport.URLParams
25335	ctx_          context.Context
25336	header_       http.Header
25337}
25338
25339// Create: Creates a new manual trigger. Returns the newly created
25340// manual trigger if successful.
25341//
25342// - advertiserId: Immutable. The unique ID of the advertiser that the
25343//   manual trigger belongs to.
25344func (r *AdvertisersManualTriggersService) Create(advertiserId int64, manualtrigger *ManualTrigger) *AdvertisersManualTriggersCreateCall {
25345	c := &AdvertisersManualTriggersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25346	c.advertiserId = advertiserId
25347	c.manualtrigger = manualtrigger
25348	return c
25349}
25350
25351// Fields allows partial responses to be retrieved. See
25352// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25353// for more information.
25354func (c *AdvertisersManualTriggersCreateCall) Fields(s ...googleapi.Field) *AdvertisersManualTriggersCreateCall {
25355	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25356	return c
25357}
25358
25359// Context sets the context to be used in this call's Do method. Any
25360// pending HTTP request will be aborted if the provided context is
25361// canceled.
25362func (c *AdvertisersManualTriggersCreateCall) Context(ctx context.Context) *AdvertisersManualTriggersCreateCall {
25363	c.ctx_ = ctx
25364	return c
25365}
25366
25367// Header returns an http.Header that can be modified by the caller to
25368// add HTTP headers to the request.
25369func (c *AdvertisersManualTriggersCreateCall) Header() http.Header {
25370	if c.header_ == nil {
25371		c.header_ = make(http.Header)
25372	}
25373	return c.header_
25374}
25375
25376func (c *AdvertisersManualTriggersCreateCall) doRequest(alt string) (*http.Response, error) {
25377	reqHeaders := make(http.Header)
25378	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
25379	for k, v := range c.header_ {
25380		reqHeaders[k] = v
25381	}
25382	reqHeaders.Set("User-Agent", c.s.userAgent())
25383	var body io.Reader = nil
25384	body, err := googleapi.WithoutDataWrapper.JSONReader(c.manualtrigger)
25385	if err != nil {
25386		return nil, err
25387	}
25388	reqHeaders.Set("Content-Type", "application/json")
25389	c.urlParams_.Set("alt", alt)
25390	c.urlParams_.Set("prettyPrint", "false")
25391	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/manualTriggers")
25392	urls += "?" + c.urlParams_.Encode()
25393	req, err := http.NewRequest("POST", urls, body)
25394	if err != nil {
25395		return nil, err
25396	}
25397	req.Header = reqHeaders
25398	googleapi.Expand(req.URL, map[string]string{
25399		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
25400	})
25401	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25402}
25403
25404// Do executes the "displayvideo.advertisers.manualTriggers.create" call.
25405// Exactly one of *ManualTrigger or error will be non-nil. Any non-2xx
25406// status code is an error. Response headers are in either
25407// *ManualTrigger.ServerResponse.Header or (if a response was returned
25408// at all) in error.(*googleapi.Error).Header. Use
25409// googleapi.IsNotModified to check whether the returned error was
25410// because http.StatusNotModified was returned.
25411func (c *AdvertisersManualTriggersCreateCall) Do(opts ...googleapi.CallOption) (*ManualTrigger, error) {
25412	gensupport.SetOptions(c.urlParams_, opts...)
25413	res, err := c.doRequest("json")
25414	if res != nil && res.StatusCode == http.StatusNotModified {
25415		if res.Body != nil {
25416			res.Body.Close()
25417		}
25418		return nil, &googleapi.Error{
25419			Code:   res.StatusCode,
25420			Header: res.Header,
25421		}
25422	}
25423	if err != nil {
25424		return nil, err
25425	}
25426	defer googleapi.CloseBody(res)
25427	if err := googleapi.CheckResponse(res); err != nil {
25428		return nil, err
25429	}
25430	ret := &ManualTrigger{
25431		ServerResponse: googleapi.ServerResponse{
25432			Header:         res.Header,
25433			HTTPStatusCode: res.StatusCode,
25434		},
25435	}
25436	target := &ret
25437	if err := gensupport.DecodeResponse(target, res); err != nil {
25438		return nil, err
25439	}
25440	return ret, nil
25441	// {
25442	//   "description": "Creates a new manual trigger. Returns the newly created manual trigger if successful.",
25443	//   "flatPath": "v1/advertisers/{advertisersId}/manualTriggers",
25444	//   "httpMethod": "POST",
25445	//   "id": "displayvideo.advertisers.manualTriggers.create",
25446	//   "parameterOrder": [
25447	//     "advertiserId"
25448	//   ],
25449	//   "parameters": {
25450	//     "advertiserId": {
25451	//       "description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.",
25452	//       "format": "int64",
25453	//       "location": "path",
25454	//       "pattern": "^[^/]+$",
25455	//       "required": true,
25456	//       "type": "string"
25457	//     }
25458	//   },
25459	//   "path": "v1/advertisers/{+advertiserId}/manualTriggers",
25460	//   "request": {
25461	//     "$ref": "ManualTrigger"
25462	//   },
25463	//   "response": {
25464	//     "$ref": "ManualTrigger"
25465	//   },
25466	//   "scopes": [
25467	//     "https://www.googleapis.com/auth/display-video"
25468	//   ]
25469	// }
25470
25471}
25472
25473// method id "displayvideo.advertisers.manualTriggers.deactivate":
25474
25475type AdvertisersManualTriggersDeactivateCall struct {
25476	s                              *Service
25477	advertiserId                   int64
25478	triggerId                      int64
25479	deactivatemanualtriggerrequest *DeactivateManualTriggerRequest
25480	urlParams_                     gensupport.URLParams
25481	ctx_                           context.Context
25482	header_                        http.Header
25483}
25484
25485// Deactivate: Deactivates a manual trigger.
25486//
25487// - advertiserId: The ID of the advertiser that the manual trigger
25488//   belongs.
25489// - triggerId: The ID of the manual trigger to deactivate.
25490func (r *AdvertisersManualTriggersService) Deactivate(advertiserId int64, triggerId int64, deactivatemanualtriggerrequest *DeactivateManualTriggerRequest) *AdvertisersManualTriggersDeactivateCall {
25491	c := &AdvertisersManualTriggersDeactivateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25492	c.advertiserId = advertiserId
25493	c.triggerId = triggerId
25494	c.deactivatemanualtriggerrequest = deactivatemanualtriggerrequest
25495	return c
25496}
25497
25498// Fields allows partial responses to be retrieved. See
25499// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25500// for more information.
25501func (c *AdvertisersManualTriggersDeactivateCall) Fields(s ...googleapi.Field) *AdvertisersManualTriggersDeactivateCall {
25502	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25503	return c
25504}
25505
25506// Context sets the context to be used in this call's Do method. Any
25507// pending HTTP request will be aborted if the provided context is
25508// canceled.
25509func (c *AdvertisersManualTriggersDeactivateCall) Context(ctx context.Context) *AdvertisersManualTriggersDeactivateCall {
25510	c.ctx_ = ctx
25511	return c
25512}
25513
25514// Header returns an http.Header that can be modified by the caller to
25515// add HTTP headers to the request.
25516func (c *AdvertisersManualTriggersDeactivateCall) Header() http.Header {
25517	if c.header_ == nil {
25518		c.header_ = make(http.Header)
25519	}
25520	return c.header_
25521}
25522
25523func (c *AdvertisersManualTriggersDeactivateCall) doRequest(alt string) (*http.Response, error) {
25524	reqHeaders := make(http.Header)
25525	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
25526	for k, v := range c.header_ {
25527		reqHeaders[k] = v
25528	}
25529	reqHeaders.Set("User-Agent", c.s.userAgent())
25530	var body io.Reader = nil
25531	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deactivatemanualtriggerrequest)
25532	if err != nil {
25533		return nil, err
25534	}
25535	reqHeaders.Set("Content-Type", "application/json")
25536	c.urlParams_.Set("alt", alt)
25537	c.urlParams_.Set("prettyPrint", "false")
25538	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:deactivate")
25539	urls += "?" + c.urlParams_.Encode()
25540	req, err := http.NewRequest("POST", urls, body)
25541	if err != nil {
25542		return nil, err
25543	}
25544	req.Header = reqHeaders
25545	googleapi.Expand(req.URL, map[string]string{
25546		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
25547		"triggerId":    strconv.FormatInt(c.triggerId, 10),
25548	})
25549	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25550}
25551
25552// Do executes the "displayvideo.advertisers.manualTriggers.deactivate" call.
25553// Exactly one of *ManualTrigger or error will be non-nil. Any non-2xx
25554// status code is an error. Response headers are in either
25555// *ManualTrigger.ServerResponse.Header or (if a response was returned
25556// at all) in error.(*googleapi.Error).Header. Use
25557// googleapi.IsNotModified to check whether the returned error was
25558// because http.StatusNotModified was returned.
25559func (c *AdvertisersManualTriggersDeactivateCall) Do(opts ...googleapi.CallOption) (*ManualTrigger, error) {
25560	gensupport.SetOptions(c.urlParams_, opts...)
25561	res, err := c.doRequest("json")
25562	if res != nil && res.StatusCode == http.StatusNotModified {
25563		if res.Body != nil {
25564			res.Body.Close()
25565		}
25566		return nil, &googleapi.Error{
25567			Code:   res.StatusCode,
25568			Header: res.Header,
25569		}
25570	}
25571	if err != nil {
25572		return nil, err
25573	}
25574	defer googleapi.CloseBody(res)
25575	if err := googleapi.CheckResponse(res); err != nil {
25576		return nil, err
25577	}
25578	ret := &ManualTrigger{
25579		ServerResponse: googleapi.ServerResponse{
25580			Header:         res.Header,
25581			HTTPStatusCode: res.StatusCode,
25582		},
25583	}
25584	target := &ret
25585	if err := gensupport.DecodeResponse(target, res); err != nil {
25586		return nil, err
25587	}
25588	return ret, nil
25589	// {
25590	//   "description": "Deactivates a manual trigger.",
25591	//   "flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}:deactivate",
25592	//   "httpMethod": "POST",
25593	//   "id": "displayvideo.advertisers.manualTriggers.deactivate",
25594	//   "parameterOrder": [
25595	//     "advertiserId",
25596	//     "triggerId"
25597	//   ],
25598	//   "parameters": {
25599	//     "advertiserId": {
25600	//       "description": "Required. The ID of the advertiser that the manual trigger belongs.",
25601	//       "format": "int64",
25602	//       "location": "path",
25603	//       "pattern": "^[^/]+$",
25604	//       "required": true,
25605	//       "type": "string"
25606	//     },
25607	//     "triggerId": {
25608	//       "description": "Required. The ID of the manual trigger to deactivate.",
25609	//       "format": "int64",
25610	//       "location": "path",
25611	//       "pattern": "^[^/]+$",
25612	//       "required": true,
25613	//       "type": "string"
25614	//     }
25615	//   },
25616	//   "path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:deactivate",
25617	//   "request": {
25618	//     "$ref": "DeactivateManualTriggerRequest"
25619	//   },
25620	//   "response": {
25621	//     "$ref": "ManualTrigger"
25622	//   },
25623	//   "scopes": [
25624	//     "https://www.googleapis.com/auth/display-video"
25625	//   ]
25626	// }
25627
25628}
25629
25630// method id "displayvideo.advertisers.manualTriggers.get":
25631
25632type AdvertisersManualTriggersGetCall struct {
25633	s            *Service
25634	advertiserId int64
25635	triggerId    int64
25636	urlParams_   gensupport.URLParams
25637	ifNoneMatch_ string
25638	ctx_         context.Context
25639	header_      http.Header
25640}
25641
25642// Get: Gets a manual trigger.
25643//
25644// - advertiserId: The ID of the advertiser this manual trigger belongs
25645//   to.
25646// - triggerId: The ID of the manual trigger to fetch.
25647func (r *AdvertisersManualTriggersService) Get(advertiserId int64, triggerId int64) *AdvertisersManualTriggersGetCall {
25648	c := &AdvertisersManualTriggersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25649	c.advertiserId = advertiserId
25650	c.triggerId = triggerId
25651	return c
25652}
25653
25654// Fields allows partial responses to be retrieved. See
25655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25656// for more information.
25657func (c *AdvertisersManualTriggersGetCall) Fields(s ...googleapi.Field) *AdvertisersManualTriggersGetCall {
25658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25659	return c
25660}
25661
25662// IfNoneMatch sets the optional parameter which makes the operation
25663// fail if the object's ETag matches the given value. This is useful for
25664// getting updates only after the object has changed since the last
25665// request. Use googleapi.IsNotModified to check whether the response
25666// error from Do is the result of In-None-Match.
25667func (c *AdvertisersManualTriggersGetCall) IfNoneMatch(entityTag string) *AdvertisersManualTriggersGetCall {
25668	c.ifNoneMatch_ = entityTag
25669	return c
25670}
25671
25672// Context sets the context to be used in this call's Do method. Any
25673// pending HTTP request will be aborted if the provided context is
25674// canceled.
25675func (c *AdvertisersManualTriggersGetCall) Context(ctx context.Context) *AdvertisersManualTriggersGetCall {
25676	c.ctx_ = ctx
25677	return c
25678}
25679
25680// Header returns an http.Header that can be modified by the caller to
25681// add HTTP headers to the request.
25682func (c *AdvertisersManualTriggersGetCall) Header() http.Header {
25683	if c.header_ == nil {
25684		c.header_ = make(http.Header)
25685	}
25686	return c.header_
25687}
25688
25689func (c *AdvertisersManualTriggersGetCall) doRequest(alt string) (*http.Response, error) {
25690	reqHeaders := make(http.Header)
25691	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
25692	for k, v := range c.header_ {
25693		reqHeaders[k] = v
25694	}
25695	reqHeaders.Set("User-Agent", c.s.userAgent())
25696	if c.ifNoneMatch_ != "" {
25697		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
25698	}
25699	var body io.Reader = nil
25700	c.urlParams_.Set("alt", alt)
25701	c.urlParams_.Set("prettyPrint", "false")
25702	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}")
25703	urls += "?" + c.urlParams_.Encode()
25704	req, err := http.NewRequest("GET", urls, body)
25705	if err != nil {
25706		return nil, err
25707	}
25708	req.Header = reqHeaders
25709	googleapi.Expand(req.URL, map[string]string{
25710		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
25711		"triggerId":    strconv.FormatInt(c.triggerId, 10),
25712	})
25713	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25714}
25715
25716// Do executes the "displayvideo.advertisers.manualTriggers.get" call.
25717// Exactly one of *ManualTrigger or error will be non-nil. Any non-2xx
25718// status code is an error. Response headers are in either
25719// *ManualTrigger.ServerResponse.Header or (if a response was returned
25720// at all) in error.(*googleapi.Error).Header. Use
25721// googleapi.IsNotModified to check whether the returned error was
25722// because http.StatusNotModified was returned.
25723func (c *AdvertisersManualTriggersGetCall) Do(opts ...googleapi.CallOption) (*ManualTrigger, error) {
25724	gensupport.SetOptions(c.urlParams_, opts...)
25725	res, err := c.doRequest("json")
25726	if res != nil && res.StatusCode == http.StatusNotModified {
25727		if res.Body != nil {
25728			res.Body.Close()
25729		}
25730		return nil, &googleapi.Error{
25731			Code:   res.StatusCode,
25732			Header: res.Header,
25733		}
25734	}
25735	if err != nil {
25736		return nil, err
25737	}
25738	defer googleapi.CloseBody(res)
25739	if err := googleapi.CheckResponse(res); err != nil {
25740		return nil, err
25741	}
25742	ret := &ManualTrigger{
25743		ServerResponse: googleapi.ServerResponse{
25744			Header:         res.Header,
25745			HTTPStatusCode: res.StatusCode,
25746		},
25747	}
25748	target := &ret
25749	if err := gensupport.DecodeResponse(target, res); err != nil {
25750		return nil, err
25751	}
25752	return ret, nil
25753	// {
25754	//   "description": "Gets a manual trigger.",
25755	//   "flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}",
25756	//   "httpMethod": "GET",
25757	//   "id": "displayvideo.advertisers.manualTriggers.get",
25758	//   "parameterOrder": [
25759	//     "advertiserId",
25760	//     "triggerId"
25761	//   ],
25762	//   "parameters": {
25763	//     "advertiserId": {
25764	//       "description": "Required. The ID of the advertiser this manual trigger belongs to.",
25765	//       "format": "int64",
25766	//       "location": "path",
25767	//       "pattern": "^[^/]+$",
25768	//       "required": true,
25769	//       "type": "string"
25770	//     },
25771	//     "triggerId": {
25772	//       "description": "Required. The ID of the manual trigger to fetch.",
25773	//       "format": "int64",
25774	//       "location": "path",
25775	//       "pattern": "^[^/]+$",
25776	//       "required": true,
25777	//       "type": "string"
25778	//     }
25779	//   },
25780	//   "path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}",
25781	//   "response": {
25782	//     "$ref": "ManualTrigger"
25783	//   },
25784	//   "scopes": [
25785	//     "https://www.googleapis.com/auth/display-video"
25786	//   ]
25787	// }
25788
25789}
25790
25791// method id "displayvideo.advertisers.manualTriggers.list":
25792
25793type AdvertisersManualTriggersListCall struct {
25794	s            *Service
25795	advertiserId int64
25796	urlParams_   gensupport.URLParams
25797	ifNoneMatch_ string
25798	ctx_         context.Context
25799	header_      http.Header
25800}
25801
25802// List: Lists manual triggers that are accessible to the current user
25803// for a given advertiser ID. The order is defined by the order_by
25804// parameter. A single advertiser_id is required.
25805//
25806// - advertiserId: The ID of the advertiser that the fetched manual
25807//   triggers belong to.
25808func (r *AdvertisersManualTriggersService) List(advertiserId int64) *AdvertisersManualTriggersListCall {
25809	c := &AdvertisersManualTriggersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25810	c.advertiserId = advertiserId
25811	return c
25812}
25813
25814// Filter sets the optional parameter "filter": Allows filtering by
25815// manual trigger properties. Supported syntax: * Filter expressions are
25816// made up of one or more restrictions. * Restrictions can be combined
25817// by `AND` or `OR` logical operators. A sequence of restrictions
25818// implicitly uses `AND`. * A restriction has the form of `{field}
25819// {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported
25820// fields: - `displayName` - `state` Examples: * All active manual
25821// triggers under an advertiser: `state="ACTIVE" The length of this
25822// field should be no more than 500 characters.
25823func (c *AdvertisersManualTriggersListCall) Filter(filter string) *AdvertisersManualTriggersListCall {
25824	c.urlParams_.Set("filter", filter)
25825	return c
25826}
25827
25828// OrderBy sets the optional parameter "orderBy": Field by which to sort
25829// the list. Acceptable values are: * `displayName` (default) * `state`
25830// The default sorting order is ascending. To specify descending order
25831// for a field, a suffix "desc" should be added to the field name. For
25832// example, `displayName desc`.
25833func (c *AdvertisersManualTriggersListCall) OrderBy(orderBy string) *AdvertisersManualTriggersListCall {
25834	c.urlParams_.Set("orderBy", orderBy)
25835	return c
25836}
25837
25838// PageSize sets the optional parameter "pageSize": Requested page size.
25839// Must be between `1` and `100`. If unspecified will default to `100`.
25840func (c *AdvertisersManualTriggersListCall) PageSize(pageSize int64) *AdvertisersManualTriggersListCall {
25841	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
25842	return c
25843}
25844
25845// PageToken sets the optional parameter "pageToken": A token
25846// identifying a page of results the server should return. Typically,
25847// this is the value of next_page_token returned from the previous call
25848// to `ListManualTriggers` method. If not specified, the first page of
25849// results will be returned.
25850func (c *AdvertisersManualTriggersListCall) PageToken(pageToken string) *AdvertisersManualTriggersListCall {
25851	c.urlParams_.Set("pageToken", pageToken)
25852	return c
25853}
25854
25855// Fields allows partial responses to be retrieved. See
25856// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25857// for more information.
25858func (c *AdvertisersManualTriggersListCall) Fields(s ...googleapi.Field) *AdvertisersManualTriggersListCall {
25859	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25860	return c
25861}
25862
25863// IfNoneMatch sets the optional parameter which makes the operation
25864// fail if the object's ETag matches the given value. This is useful for
25865// getting updates only after the object has changed since the last
25866// request. Use googleapi.IsNotModified to check whether the response
25867// error from Do is the result of In-None-Match.
25868func (c *AdvertisersManualTriggersListCall) IfNoneMatch(entityTag string) *AdvertisersManualTriggersListCall {
25869	c.ifNoneMatch_ = entityTag
25870	return c
25871}
25872
25873// Context sets the context to be used in this call's Do method. Any
25874// pending HTTP request will be aborted if the provided context is
25875// canceled.
25876func (c *AdvertisersManualTriggersListCall) Context(ctx context.Context) *AdvertisersManualTriggersListCall {
25877	c.ctx_ = ctx
25878	return c
25879}
25880
25881// Header returns an http.Header that can be modified by the caller to
25882// add HTTP headers to the request.
25883func (c *AdvertisersManualTriggersListCall) Header() http.Header {
25884	if c.header_ == nil {
25885		c.header_ = make(http.Header)
25886	}
25887	return c.header_
25888}
25889
25890func (c *AdvertisersManualTriggersListCall) doRequest(alt string) (*http.Response, error) {
25891	reqHeaders := make(http.Header)
25892	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
25893	for k, v := range c.header_ {
25894		reqHeaders[k] = v
25895	}
25896	reqHeaders.Set("User-Agent", c.s.userAgent())
25897	if c.ifNoneMatch_ != "" {
25898		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
25899	}
25900	var body io.Reader = nil
25901	c.urlParams_.Set("alt", alt)
25902	c.urlParams_.Set("prettyPrint", "false")
25903	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/manualTriggers")
25904	urls += "?" + c.urlParams_.Encode()
25905	req, err := http.NewRequest("GET", urls, body)
25906	if err != nil {
25907		return nil, err
25908	}
25909	req.Header = reqHeaders
25910	googleapi.Expand(req.URL, map[string]string{
25911		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
25912	})
25913	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25914}
25915
25916// Do executes the "displayvideo.advertisers.manualTriggers.list" call.
25917// Exactly one of *ListManualTriggersResponse or error will be non-nil.
25918// Any non-2xx status code is an error. Response headers are in either
25919// *ListManualTriggersResponse.ServerResponse.Header or (if a response
25920// was returned at all) in error.(*googleapi.Error).Header. Use
25921// googleapi.IsNotModified to check whether the returned error was
25922// because http.StatusNotModified was returned.
25923func (c *AdvertisersManualTriggersListCall) Do(opts ...googleapi.CallOption) (*ListManualTriggersResponse, error) {
25924	gensupport.SetOptions(c.urlParams_, opts...)
25925	res, err := c.doRequest("json")
25926	if res != nil && res.StatusCode == http.StatusNotModified {
25927		if res.Body != nil {
25928			res.Body.Close()
25929		}
25930		return nil, &googleapi.Error{
25931			Code:   res.StatusCode,
25932			Header: res.Header,
25933		}
25934	}
25935	if err != nil {
25936		return nil, err
25937	}
25938	defer googleapi.CloseBody(res)
25939	if err := googleapi.CheckResponse(res); err != nil {
25940		return nil, err
25941	}
25942	ret := &ListManualTriggersResponse{
25943		ServerResponse: googleapi.ServerResponse{
25944			Header:         res.Header,
25945			HTTPStatusCode: res.StatusCode,
25946		},
25947	}
25948	target := &ret
25949	if err := gensupport.DecodeResponse(target, res); err != nil {
25950		return nil, err
25951	}
25952	return ret, nil
25953	// {
25954	//   "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.",
25955	//   "flatPath": "v1/advertisers/{advertisersId}/manualTriggers",
25956	//   "httpMethod": "GET",
25957	//   "id": "displayvideo.advertisers.manualTriggers.list",
25958	//   "parameterOrder": [
25959	//     "advertiserId"
25960	//   ],
25961	//   "parameters": {
25962	//     "advertiserId": {
25963	//       "description": "Required. The ID of the advertiser that the fetched manual triggers belong to.",
25964	//       "format": "int64",
25965	//       "location": "path",
25966	//       "pattern": "^[^/]+$",
25967	//       "required": true,
25968	//       "type": "string"
25969	//     },
25970	//     "filter": {
25971	//       "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.",
25972	//       "location": "query",
25973	//       "type": "string"
25974	//     },
25975	//     "orderBy": {
25976	//       "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`.",
25977	//       "location": "query",
25978	//       "type": "string"
25979	//     },
25980	//     "pageSize": {
25981	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
25982	//       "format": "int32",
25983	//       "location": "query",
25984	//       "type": "integer"
25985	//     },
25986	//     "pageToken": {
25987	//       "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.",
25988	//       "location": "query",
25989	//       "type": "string"
25990	//     }
25991	//   },
25992	//   "path": "v1/advertisers/{+advertiserId}/manualTriggers",
25993	//   "response": {
25994	//     "$ref": "ListManualTriggersResponse"
25995	//   },
25996	//   "scopes": [
25997	//     "https://www.googleapis.com/auth/display-video"
25998	//   ]
25999	// }
26000
26001}
26002
26003// Pages invokes f for each page of results.
26004// A non-nil error returned from f will halt the iteration.
26005// The provided context supersedes any context provided to the Context method.
26006func (c *AdvertisersManualTriggersListCall) Pages(ctx context.Context, f func(*ListManualTriggersResponse) error) error {
26007	c.ctx_ = ctx
26008	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
26009	for {
26010		x, err := c.Do()
26011		if err != nil {
26012			return err
26013		}
26014		if err := f(x); err != nil {
26015			return err
26016		}
26017		if x.NextPageToken == "" {
26018			return nil
26019		}
26020		c.PageToken(x.NextPageToken)
26021	}
26022}
26023
26024// method id "displayvideo.advertisers.manualTriggers.patch":
26025
26026type AdvertisersManualTriggersPatchCall struct {
26027	s             *Service
26028	advertiserId  int64
26029	triggerId     int64
26030	manualtrigger *ManualTrigger
26031	urlParams_    gensupport.URLParams
26032	ctx_          context.Context
26033	header_       http.Header
26034}
26035
26036// Patch: Updates a manual trigger. Returns the updated manual trigger
26037// if successful.
26038//
26039// - advertiserId: Immutable. The unique ID of the advertiser that the
26040//   manual trigger belongs to.
26041// - triggerId: Output only. The unique ID of the manual trigger.
26042func (r *AdvertisersManualTriggersService) Patch(advertiserId int64, triggerId int64, manualtrigger *ManualTrigger) *AdvertisersManualTriggersPatchCall {
26043	c := &AdvertisersManualTriggersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26044	c.advertiserId = advertiserId
26045	c.triggerId = triggerId
26046	c.manualtrigger = manualtrigger
26047	return c
26048}
26049
26050// UpdateMask sets the optional parameter "updateMask": Required. The
26051// mask to control which fields to update.
26052func (c *AdvertisersManualTriggersPatchCall) UpdateMask(updateMask string) *AdvertisersManualTriggersPatchCall {
26053	c.urlParams_.Set("updateMask", updateMask)
26054	return c
26055}
26056
26057// Fields allows partial responses to be retrieved. See
26058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26059// for more information.
26060func (c *AdvertisersManualTriggersPatchCall) Fields(s ...googleapi.Field) *AdvertisersManualTriggersPatchCall {
26061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26062	return c
26063}
26064
26065// Context sets the context to be used in this call's Do method. Any
26066// pending HTTP request will be aborted if the provided context is
26067// canceled.
26068func (c *AdvertisersManualTriggersPatchCall) Context(ctx context.Context) *AdvertisersManualTriggersPatchCall {
26069	c.ctx_ = ctx
26070	return c
26071}
26072
26073// Header returns an http.Header that can be modified by the caller to
26074// add HTTP headers to the request.
26075func (c *AdvertisersManualTriggersPatchCall) Header() http.Header {
26076	if c.header_ == nil {
26077		c.header_ = make(http.Header)
26078	}
26079	return c.header_
26080}
26081
26082func (c *AdvertisersManualTriggersPatchCall) doRequest(alt string) (*http.Response, error) {
26083	reqHeaders := make(http.Header)
26084	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
26085	for k, v := range c.header_ {
26086		reqHeaders[k] = v
26087	}
26088	reqHeaders.Set("User-Agent", c.s.userAgent())
26089	var body io.Reader = nil
26090	body, err := googleapi.WithoutDataWrapper.JSONReader(c.manualtrigger)
26091	if err != nil {
26092		return nil, err
26093	}
26094	reqHeaders.Set("Content-Type", "application/json")
26095	c.urlParams_.Set("alt", alt)
26096	c.urlParams_.Set("prettyPrint", "false")
26097	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}")
26098	urls += "?" + c.urlParams_.Encode()
26099	req, err := http.NewRequest("PATCH", urls, body)
26100	if err != nil {
26101		return nil, err
26102	}
26103	req.Header = reqHeaders
26104	googleapi.Expand(req.URL, map[string]string{
26105		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
26106		"triggerId":    strconv.FormatInt(c.triggerId, 10),
26107	})
26108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26109}
26110
26111// Do executes the "displayvideo.advertisers.manualTriggers.patch" call.
26112// Exactly one of *ManualTrigger or error will be non-nil. Any non-2xx
26113// status code is an error. Response headers are in either
26114// *ManualTrigger.ServerResponse.Header or (if a response was returned
26115// at all) in error.(*googleapi.Error).Header. Use
26116// googleapi.IsNotModified to check whether the returned error was
26117// because http.StatusNotModified was returned.
26118func (c *AdvertisersManualTriggersPatchCall) Do(opts ...googleapi.CallOption) (*ManualTrigger, error) {
26119	gensupport.SetOptions(c.urlParams_, opts...)
26120	res, err := c.doRequest("json")
26121	if res != nil && res.StatusCode == http.StatusNotModified {
26122		if res.Body != nil {
26123			res.Body.Close()
26124		}
26125		return nil, &googleapi.Error{
26126			Code:   res.StatusCode,
26127			Header: res.Header,
26128		}
26129	}
26130	if err != nil {
26131		return nil, err
26132	}
26133	defer googleapi.CloseBody(res)
26134	if err := googleapi.CheckResponse(res); err != nil {
26135		return nil, err
26136	}
26137	ret := &ManualTrigger{
26138		ServerResponse: googleapi.ServerResponse{
26139			Header:         res.Header,
26140			HTTPStatusCode: res.StatusCode,
26141		},
26142	}
26143	target := &ret
26144	if err := gensupport.DecodeResponse(target, res); err != nil {
26145		return nil, err
26146	}
26147	return ret, nil
26148	// {
26149	//   "description": "Updates a manual trigger. Returns the updated manual trigger if successful.",
26150	//   "flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}",
26151	//   "httpMethod": "PATCH",
26152	//   "id": "displayvideo.advertisers.manualTriggers.patch",
26153	//   "parameterOrder": [
26154	//     "advertiserId",
26155	//     "triggerId"
26156	//   ],
26157	//   "parameters": {
26158	//     "advertiserId": {
26159	//       "description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.",
26160	//       "format": "int64",
26161	//       "location": "path",
26162	//       "pattern": "^[^/]+$",
26163	//       "required": true,
26164	//       "type": "string"
26165	//     },
26166	//     "triggerId": {
26167	//       "description": "Output only. The unique ID of the manual trigger.",
26168	//       "format": "int64",
26169	//       "location": "path",
26170	//       "pattern": "^[^/]+$",
26171	//       "required": true,
26172	//       "type": "string"
26173	//     },
26174	//     "updateMask": {
26175	//       "description": "Required. The mask to control which fields to update.",
26176	//       "format": "google-fieldmask",
26177	//       "location": "query",
26178	//       "type": "string"
26179	//     }
26180	//   },
26181	//   "path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}",
26182	//   "request": {
26183	//     "$ref": "ManualTrigger"
26184	//   },
26185	//   "response": {
26186	//     "$ref": "ManualTrigger"
26187	//   },
26188	//   "scopes": [
26189	//     "https://www.googleapis.com/auth/display-video"
26190	//   ]
26191	// }
26192
26193}
26194
26195// method id "displayvideo.advertisers.negativeKeywordLists.create":
26196
26197type AdvertisersNegativeKeywordListsCreateCall struct {
26198	s                   *Service
26199	advertiserId        int64
26200	negativekeywordlist *NegativeKeywordList
26201	urlParams_          gensupport.URLParams
26202	ctx_                context.Context
26203	header_             http.Header
26204}
26205
26206// Create: Creates a new negative keyword list. Returns the newly
26207// created negative keyword list if successful.
26208//
26209// - advertiserId: The ID of the DV360 advertiser to which the negative
26210//   keyword list will belong.
26211func (r *AdvertisersNegativeKeywordListsService) Create(advertiserId int64, negativekeywordlist *NegativeKeywordList) *AdvertisersNegativeKeywordListsCreateCall {
26212	c := &AdvertisersNegativeKeywordListsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26213	c.advertiserId = advertiserId
26214	c.negativekeywordlist = negativekeywordlist
26215	return c
26216}
26217
26218// Fields allows partial responses to be retrieved. See
26219// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26220// for more information.
26221func (c *AdvertisersNegativeKeywordListsCreateCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsCreateCall {
26222	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26223	return c
26224}
26225
26226// Context sets the context to be used in this call's Do method. Any
26227// pending HTTP request will be aborted if the provided context is
26228// canceled.
26229func (c *AdvertisersNegativeKeywordListsCreateCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsCreateCall {
26230	c.ctx_ = ctx
26231	return c
26232}
26233
26234// Header returns an http.Header that can be modified by the caller to
26235// add HTTP headers to the request.
26236func (c *AdvertisersNegativeKeywordListsCreateCall) Header() http.Header {
26237	if c.header_ == nil {
26238		c.header_ = make(http.Header)
26239	}
26240	return c.header_
26241}
26242
26243func (c *AdvertisersNegativeKeywordListsCreateCall) doRequest(alt string) (*http.Response, error) {
26244	reqHeaders := make(http.Header)
26245	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
26246	for k, v := range c.header_ {
26247		reqHeaders[k] = v
26248	}
26249	reqHeaders.Set("User-Agent", c.s.userAgent())
26250	var body io.Reader = nil
26251	body, err := googleapi.WithoutDataWrapper.JSONReader(c.negativekeywordlist)
26252	if err != nil {
26253		return nil, err
26254	}
26255	reqHeaders.Set("Content-Type", "application/json")
26256	c.urlParams_.Set("alt", alt)
26257	c.urlParams_.Set("prettyPrint", "false")
26258	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/negativeKeywordLists")
26259	urls += "?" + c.urlParams_.Encode()
26260	req, err := http.NewRequest("POST", urls, body)
26261	if err != nil {
26262		return nil, err
26263	}
26264	req.Header = reqHeaders
26265	googleapi.Expand(req.URL, map[string]string{
26266		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
26267	})
26268	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26269}
26270
26271// Do executes the "displayvideo.advertisers.negativeKeywordLists.create" call.
26272// Exactly one of *NegativeKeywordList or error will be non-nil. Any
26273// non-2xx status code is an error. Response headers are in either
26274// *NegativeKeywordList.ServerResponse.Header or (if a response was
26275// returned at all) in error.(*googleapi.Error).Header. Use
26276// googleapi.IsNotModified to check whether the returned error was
26277// because http.StatusNotModified was returned.
26278func (c *AdvertisersNegativeKeywordListsCreateCall) Do(opts ...googleapi.CallOption) (*NegativeKeywordList, error) {
26279	gensupport.SetOptions(c.urlParams_, opts...)
26280	res, err := c.doRequest("json")
26281	if res != nil && res.StatusCode == http.StatusNotModified {
26282		if res.Body != nil {
26283			res.Body.Close()
26284		}
26285		return nil, &googleapi.Error{
26286			Code:   res.StatusCode,
26287			Header: res.Header,
26288		}
26289	}
26290	if err != nil {
26291		return nil, err
26292	}
26293	defer googleapi.CloseBody(res)
26294	if err := googleapi.CheckResponse(res); err != nil {
26295		return nil, err
26296	}
26297	ret := &NegativeKeywordList{
26298		ServerResponse: googleapi.ServerResponse{
26299			Header:         res.Header,
26300			HTTPStatusCode: res.StatusCode,
26301		},
26302	}
26303	target := &ret
26304	if err := gensupport.DecodeResponse(target, res); err != nil {
26305		return nil, err
26306	}
26307	return ret, nil
26308	// {
26309	//   "description": "Creates a new negative keyword list. Returns the newly created negative keyword list if successful.",
26310	//   "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists",
26311	//   "httpMethod": "POST",
26312	//   "id": "displayvideo.advertisers.negativeKeywordLists.create",
26313	//   "parameterOrder": [
26314	//     "advertiserId"
26315	//   ],
26316	//   "parameters": {
26317	//     "advertiserId": {
26318	//       "description": "Required. The ID of the DV360 advertiser to which the negative keyword list will belong.",
26319	//       "format": "int64",
26320	//       "location": "path",
26321	//       "pattern": "^[^/]+$",
26322	//       "required": true,
26323	//       "type": "string"
26324	//     }
26325	//   },
26326	//   "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists",
26327	//   "request": {
26328	//     "$ref": "NegativeKeywordList"
26329	//   },
26330	//   "response": {
26331	//     "$ref": "NegativeKeywordList"
26332	//   },
26333	//   "scopes": [
26334	//     "https://www.googleapis.com/auth/display-video"
26335	//   ]
26336	// }
26337
26338}
26339
26340// method id "displayvideo.advertisers.negativeKeywordLists.delete":
26341
26342type AdvertisersNegativeKeywordListsDeleteCall struct {
26343	s                     *Service
26344	advertiserId          int64
26345	negativeKeywordListId int64
26346	urlParams_            gensupport.URLParams
26347	ctx_                  context.Context
26348	header_               http.Header
26349}
26350
26351// Delete: Deletes a negative keyword list given an advertiser ID and a
26352// negative keyword list ID.
26353//
26354// - advertiserId: The ID of the DV360 advertiser to which the negative
26355//   keyword list belongs.
26356// - negativeKeywordListId: The ID of the negative keyword list to
26357//   delete.
26358func (r *AdvertisersNegativeKeywordListsService) Delete(advertiserId int64, negativeKeywordListId int64) *AdvertisersNegativeKeywordListsDeleteCall {
26359	c := &AdvertisersNegativeKeywordListsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26360	c.advertiserId = advertiserId
26361	c.negativeKeywordListId = negativeKeywordListId
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 *AdvertisersNegativeKeywordListsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsDeleteCall {
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 *AdvertisersNegativeKeywordListsDeleteCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsDeleteCall {
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 *AdvertisersNegativeKeywordListsDeleteCall) Header() http.Header {
26384	if c.header_ == nil {
26385		c.header_ = make(http.Header)
26386	}
26387	return c.header_
26388}
26389
26390func (c *AdvertisersNegativeKeywordListsDeleteCall) doRequest(alt string) (*http.Response, error) {
26391	reqHeaders := make(http.Header)
26392	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
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}/negativeKeywordLists/{+negativeKeywordListId}")
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		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
26410	})
26411	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26412}
26413
26414// Do executes the "displayvideo.advertisers.negativeKeywordLists.delete" call.
26415// Exactly one of *Empty or error will be non-nil. Any non-2xx status
26416// code is an error. Response headers are in either
26417// *Empty.ServerResponse.Header or (if a response was returned at all)
26418// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
26419// check whether the returned error was because http.StatusNotModified
26420// was returned.
26421func (c *AdvertisersNegativeKeywordListsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
26422	gensupport.SetOptions(c.urlParams_, opts...)
26423	res, err := c.doRequest("json")
26424	if res != nil && res.StatusCode == http.StatusNotModified {
26425		if res.Body != nil {
26426			res.Body.Close()
26427		}
26428		return nil, &googleapi.Error{
26429			Code:   res.StatusCode,
26430			Header: res.Header,
26431		}
26432	}
26433	if err != nil {
26434		return nil, err
26435	}
26436	defer googleapi.CloseBody(res)
26437	if err := googleapi.CheckResponse(res); err != nil {
26438		return nil, err
26439	}
26440	ret := &Empty{
26441		ServerResponse: googleapi.ServerResponse{
26442			Header:         res.Header,
26443			HTTPStatusCode: res.StatusCode,
26444		},
26445	}
26446	target := &ret
26447	if err := gensupport.DecodeResponse(target, res); err != nil {
26448		return nil, err
26449	}
26450	return ret, nil
26451	// {
26452	//   "description": "Deletes a negative keyword list given an advertiser ID and a negative keyword list ID.",
26453	//   "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}",
26454	//   "httpMethod": "DELETE",
26455	//   "id": "displayvideo.advertisers.negativeKeywordLists.delete",
26456	//   "parameterOrder": [
26457	//     "advertiserId",
26458	//     "negativeKeywordListId"
26459	//   ],
26460	//   "parameters": {
26461	//     "advertiserId": {
26462	//       "description": "Required. The ID of the DV360 advertiser to which the negative keyword list belongs.",
26463	//       "format": "int64",
26464	//       "location": "path",
26465	//       "pattern": "^[^/]+$",
26466	//       "required": true,
26467	//       "type": "string"
26468	//     },
26469	//     "negativeKeywordListId": {
26470	//       "description": "Required. The ID of the negative keyword list to delete.",
26471	//       "format": "int64",
26472	//       "location": "path",
26473	//       "pattern": "^[^/]+$",
26474	//       "required": true,
26475	//       "type": "string"
26476	//     }
26477	//   },
26478	//   "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}",
26479	//   "response": {
26480	//     "$ref": "Empty"
26481	//   },
26482	//   "scopes": [
26483	//     "https://www.googleapis.com/auth/display-video"
26484	//   ]
26485	// }
26486
26487}
26488
26489// method id "displayvideo.advertisers.negativeKeywordLists.get":
26490
26491type AdvertisersNegativeKeywordListsGetCall struct {
26492	s                     *Service
26493	advertiserId          int64
26494	negativeKeywordListId int64
26495	urlParams_            gensupport.URLParams
26496	ifNoneMatch_          string
26497	ctx_                  context.Context
26498	header_               http.Header
26499}
26500
26501// Get: Gets a negative keyword list given an advertiser ID and a
26502// negative keyword list ID.
26503//
26504// - advertiserId: The ID of the DV360 advertiser to which the fetched
26505//   negative keyword list belongs.
26506// - negativeKeywordListId: The ID of the negative keyword list to
26507//   fetch.
26508func (r *AdvertisersNegativeKeywordListsService) Get(advertiserId int64, negativeKeywordListId int64) *AdvertisersNegativeKeywordListsGetCall {
26509	c := &AdvertisersNegativeKeywordListsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26510	c.advertiserId = advertiserId
26511	c.negativeKeywordListId = negativeKeywordListId
26512	return c
26513}
26514
26515// Fields allows partial responses to be retrieved. See
26516// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26517// for more information.
26518func (c *AdvertisersNegativeKeywordListsGetCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsGetCall {
26519	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26520	return c
26521}
26522
26523// IfNoneMatch sets the optional parameter which makes the operation
26524// fail if the object's ETag matches the given value. This is useful for
26525// getting updates only after the object has changed since the last
26526// request. Use googleapi.IsNotModified to check whether the response
26527// error from Do is the result of In-None-Match.
26528func (c *AdvertisersNegativeKeywordListsGetCall) IfNoneMatch(entityTag string) *AdvertisersNegativeKeywordListsGetCall {
26529	c.ifNoneMatch_ = entityTag
26530	return c
26531}
26532
26533// Context sets the context to be used in this call's Do method. Any
26534// pending HTTP request will be aborted if the provided context is
26535// canceled.
26536func (c *AdvertisersNegativeKeywordListsGetCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsGetCall {
26537	c.ctx_ = ctx
26538	return c
26539}
26540
26541// Header returns an http.Header that can be modified by the caller to
26542// add HTTP headers to the request.
26543func (c *AdvertisersNegativeKeywordListsGetCall) Header() http.Header {
26544	if c.header_ == nil {
26545		c.header_ = make(http.Header)
26546	}
26547	return c.header_
26548}
26549
26550func (c *AdvertisersNegativeKeywordListsGetCall) doRequest(alt string) (*http.Response, error) {
26551	reqHeaders := make(http.Header)
26552	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
26553	for k, v := range c.header_ {
26554		reqHeaders[k] = v
26555	}
26556	reqHeaders.Set("User-Agent", c.s.userAgent())
26557	if c.ifNoneMatch_ != "" {
26558		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
26559	}
26560	var body io.Reader = nil
26561	c.urlParams_.Set("alt", alt)
26562	c.urlParams_.Set("prettyPrint", "false")
26563	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}")
26564	urls += "?" + c.urlParams_.Encode()
26565	req, err := http.NewRequest("GET", urls, body)
26566	if err != nil {
26567		return nil, err
26568	}
26569	req.Header = reqHeaders
26570	googleapi.Expand(req.URL, map[string]string{
26571		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
26572		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
26573	})
26574	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26575}
26576
26577// Do executes the "displayvideo.advertisers.negativeKeywordLists.get" call.
26578// Exactly one of *NegativeKeywordList or error will be non-nil. Any
26579// non-2xx status code is an error. Response headers are in either
26580// *NegativeKeywordList.ServerResponse.Header or (if a response was
26581// returned at all) in error.(*googleapi.Error).Header. Use
26582// googleapi.IsNotModified to check whether the returned error was
26583// because http.StatusNotModified was returned.
26584func (c *AdvertisersNegativeKeywordListsGetCall) Do(opts ...googleapi.CallOption) (*NegativeKeywordList, error) {
26585	gensupport.SetOptions(c.urlParams_, opts...)
26586	res, err := c.doRequest("json")
26587	if res != nil && res.StatusCode == http.StatusNotModified {
26588		if res.Body != nil {
26589			res.Body.Close()
26590		}
26591		return nil, &googleapi.Error{
26592			Code:   res.StatusCode,
26593			Header: res.Header,
26594		}
26595	}
26596	if err != nil {
26597		return nil, err
26598	}
26599	defer googleapi.CloseBody(res)
26600	if err := googleapi.CheckResponse(res); err != nil {
26601		return nil, err
26602	}
26603	ret := &NegativeKeywordList{
26604		ServerResponse: googleapi.ServerResponse{
26605			Header:         res.Header,
26606			HTTPStatusCode: res.StatusCode,
26607		},
26608	}
26609	target := &ret
26610	if err := gensupport.DecodeResponse(target, res); err != nil {
26611		return nil, err
26612	}
26613	return ret, nil
26614	// {
26615	//   "description": "Gets a negative keyword list given an advertiser ID and a negative keyword list ID.",
26616	//   "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}",
26617	//   "httpMethod": "GET",
26618	//   "id": "displayvideo.advertisers.negativeKeywordLists.get",
26619	//   "parameterOrder": [
26620	//     "advertiserId",
26621	//     "negativeKeywordListId"
26622	//   ],
26623	//   "parameters": {
26624	//     "advertiserId": {
26625	//       "description": "Required. The ID of the DV360 advertiser to which the fetched negative keyword list belongs.",
26626	//       "format": "int64",
26627	//       "location": "path",
26628	//       "pattern": "^[^/]+$",
26629	//       "required": true,
26630	//       "type": "string"
26631	//     },
26632	//     "negativeKeywordListId": {
26633	//       "description": "Required. The ID of the negative keyword list to fetch.",
26634	//       "format": "int64",
26635	//       "location": "path",
26636	//       "pattern": "^[^/]+$",
26637	//       "required": true,
26638	//       "type": "string"
26639	//     }
26640	//   },
26641	//   "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}",
26642	//   "response": {
26643	//     "$ref": "NegativeKeywordList"
26644	//   },
26645	//   "scopes": [
26646	//     "https://www.googleapis.com/auth/display-video"
26647	//   ]
26648	// }
26649
26650}
26651
26652// method id "displayvideo.advertisers.negativeKeywordLists.list":
26653
26654type AdvertisersNegativeKeywordListsListCall struct {
26655	s            *Service
26656	advertiserId int64
26657	urlParams_   gensupport.URLParams
26658	ifNoneMatch_ string
26659	ctx_         context.Context
26660	header_      http.Header
26661}
26662
26663// List: Lists negative keyword lists based on a given advertiser id.
26664//
26665// - advertiserId: The ID of the DV360 advertiser to which the fetched
26666//   negative keyword lists belong.
26667func (r *AdvertisersNegativeKeywordListsService) List(advertiserId int64) *AdvertisersNegativeKeywordListsListCall {
26668	c := &AdvertisersNegativeKeywordListsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26669	c.advertiserId = advertiserId
26670	return c
26671}
26672
26673// PageSize sets the optional parameter "pageSize": Requested page size.
26674// Must be between `1` and `100`. Defaults to `100` if not set. Returns
26675// error code `INVALID_ARGUMENT` if an invalid value is specified.
26676func (c *AdvertisersNegativeKeywordListsListCall) PageSize(pageSize int64) *AdvertisersNegativeKeywordListsListCall {
26677	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
26678	return c
26679}
26680
26681// PageToken sets the optional parameter "pageToken": A token
26682// identifying a page of results the server should return. Typically,
26683// this is the value of next_page_token returned from the previous call
26684// to `ListNegativeKeywordLists` method. If not specified, the first
26685// page of results will be returned.
26686func (c *AdvertisersNegativeKeywordListsListCall) PageToken(pageToken string) *AdvertisersNegativeKeywordListsListCall {
26687	c.urlParams_.Set("pageToken", pageToken)
26688	return c
26689}
26690
26691// Fields allows partial responses to be retrieved. See
26692// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26693// for more information.
26694func (c *AdvertisersNegativeKeywordListsListCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsListCall {
26695	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26696	return c
26697}
26698
26699// IfNoneMatch sets the optional parameter which makes the operation
26700// fail if the object's ETag matches the given value. This is useful for
26701// getting updates only after the object has changed since the last
26702// request. Use googleapi.IsNotModified to check whether the response
26703// error from Do is the result of In-None-Match.
26704func (c *AdvertisersNegativeKeywordListsListCall) IfNoneMatch(entityTag string) *AdvertisersNegativeKeywordListsListCall {
26705	c.ifNoneMatch_ = entityTag
26706	return c
26707}
26708
26709// Context sets the context to be used in this call's Do method. Any
26710// pending HTTP request will be aborted if the provided context is
26711// canceled.
26712func (c *AdvertisersNegativeKeywordListsListCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsListCall {
26713	c.ctx_ = ctx
26714	return c
26715}
26716
26717// Header returns an http.Header that can be modified by the caller to
26718// add HTTP headers to the request.
26719func (c *AdvertisersNegativeKeywordListsListCall) Header() http.Header {
26720	if c.header_ == nil {
26721		c.header_ = make(http.Header)
26722	}
26723	return c.header_
26724}
26725
26726func (c *AdvertisersNegativeKeywordListsListCall) doRequest(alt string) (*http.Response, error) {
26727	reqHeaders := make(http.Header)
26728	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
26729	for k, v := range c.header_ {
26730		reqHeaders[k] = v
26731	}
26732	reqHeaders.Set("User-Agent", c.s.userAgent())
26733	if c.ifNoneMatch_ != "" {
26734		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
26735	}
26736	var body io.Reader = nil
26737	c.urlParams_.Set("alt", alt)
26738	c.urlParams_.Set("prettyPrint", "false")
26739	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/negativeKeywordLists")
26740	urls += "?" + c.urlParams_.Encode()
26741	req, err := http.NewRequest("GET", urls, body)
26742	if err != nil {
26743		return nil, err
26744	}
26745	req.Header = reqHeaders
26746	googleapi.Expand(req.URL, map[string]string{
26747		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
26748	})
26749	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26750}
26751
26752// Do executes the "displayvideo.advertisers.negativeKeywordLists.list" call.
26753// Exactly one of *ListNegativeKeywordListsResponse or error will be
26754// non-nil. Any non-2xx status code is an error. Response headers are in
26755// either *ListNegativeKeywordListsResponse.ServerResponse.Header or (if
26756// a response was returned at all) in error.(*googleapi.Error).Header.
26757// Use googleapi.IsNotModified to check whether the returned error was
26758// because http.StatusNotModified was returned.
26759func (c *AdvertisersNegativeKeywordListsListCall) Do(opts ...googleapi.CallOption) (*ListNegativeKeywordListsResponse, error) {
26760	gensupport.SetOptions(c.urlParams_, opts...)
26761	res, err := c.doRequest("json")
26762	if res != nil && res.StatusCode == http.StatusNotModified {
26763		if res.Body != nil {
26764			res.Body.Close()
26765		}
26766		return nil, &googleapi.Error{
26767			Code:   res.StatusCode,
26768			Header: res.Header,
26769		}
26770	}
26771	if err != nil {
26772		return nil, err
26773	}
26774	defer googleapi.CloseBody(res)
26775	if err := googleapi.CheckResponse(res); err != nil {
26776		return nil, err
26777	}
26778	ret := &ListNegativeKeywordListsResponse{
26779		ServerResponse: googleapi.ServerResponse{
26780			Header:         res.Header,
26781			HTTPStatusCode: res.StatusCode,
26782		},
26783	}
26784	target := &ret
26785	if err := gensupport.DecodeResponse(target, res); err != nil {
26786		return nil, err
26787	}
26788	return ret, nil
26789	// {
26790	//   "description": "Lists negative keyword lists based on a given advertiser id.",
26791	//   "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists",
26792	//   "httpMethod": "GET",
26793	//   "id": "displayvideo.advertisers.negativeKeywordLists.list",
26794	//   "parameterOrder": [
26795	//     "advertiserId"
26796	//   ],
26797	//   "parameters": {
26798	//     "advertiserId": {
26799	//       "description": "Required. The ID of the DV360 advertiser to which the fetched negative keyword lists belong.",
26800	//       "format": "int64",
26801	//       "location": "path",
26802	//       "pattern": "^[^/]+$",
26803	//       "required": true,
26804	//       "type": "string"
26805	//     },
26806	//     "pageSize": {
26807	//       "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.",
26808	//       "format": "int32",
26809	//       "location": "query",
26810	//       "type": "integer"
26811	//     },
26812	//     "pageToken": {
26813	//       "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.",
26814	//       "location": "query",
26815	//       "type": "string"
26816	//     }
26817	//   },
26818	//   "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists",
26819	//   "response": {
26820	//     "$ref": "ListNegativeKeywordListsResponse"
26821	//   },
26822	//   "scopes": [
26823	//     "https://www.googleapis.com/auth/display-video"
26824	//   ]
26825	// }
26826
26827}
26828
26829// Pages invokes f for each page of results.
26830// A non-nil error returned from f will halt the iteration.
26831// The provided context supersedes any context provided to the Context method.
26832func (c *AdvertisersNegativeKeywordListsListCall) Pages(ctx context.Context, f func(*ListNegativeKeywordListsResponse) error) error {
26833	c.ctx_ = ctx
26834	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
26835	for {
26836		x, err := c.Do()
26837		if err != nil {
26838			return err
26839		}
26840		if err := f(x); err != nil {
26841			return err
26842		}
26843		if x.NextPageToken == "" {
26844			return nil
26845		}
26846		c.PageToken(x.NextPageToken)
26847	}
26848}
26849
26850// method id "displayvideo.advertisers.negativeKeywordLists.patch":
26851
26852type AdvertisersNegativeKeywordListsPatchCall struct {
26853	s                     *Service
26854	advertiserId          int64
26855	negativeKeywordListId int64
26856	negativekeywordlist   *NegativeKeywordList
26857	urlParams_            gensupport.URLParams
26858	ctx_                  context.Context
26859	header_               http.Header
26860}
26861
26862// Patch: Updates a negative keyword list. Returns the updated negative
26863// keyword list if successful.
26864//
26865// - advertiserId: The ID of the DV360 advertiser to which the negative
26866//   keyword list belongs.
26867// - negativeKeywordListId: Output only. The unique ID of the negative
26868//   keyword list. Assigned by the system.
26869func (r *AdvertisersNegativeKeywordListsService) Patch(advertiserId int64, negativeKeywordListId int64, negativekeywordlist *NegativeKeywordList) *AdvertisersNegativeKeywordListsPatchCall {
26870	c := &AdvertisersNegativeKeywordListsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26871	c.advertiserId = advertiserId
26872	c.negativeKeywordListId = negativeKeywordListId
26873	c.negativekeywordlist = negativekeywordlist
26874	return c
26875}
26876
26877// UpdateMask sets the optional parameter "updateMask": Required. The
26878// mask to control which fields to update.
26879func (c *AdvertisersNegativeKeywordListsPatchCall) UpdateMask(updateMask string) *AdvertisersNegativeKeywordListsPatchCall {
26880	c.urlParams_.Set("updateMask", updateMask)
26881	return c
26882}
26883
26884// Fields allows partial responses to be retrieved. See
26885// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26886// for more information.
26887func (c *AdvertisersNegativeKeywordListsPatchCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsPatchCall {
26888	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26889	return c
26890}
26891
26892// Context sets the context to be used in this call's Do method. Any
26893// pending HTTP request will be aborted if the provided context is
26894// canceled.
26895func (c *AdvertisersNegativeKeywordListsPatchCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsPatchCall {
26896	c.ctx_ = ctx
26897	return c
26898}
26899
26900// Header returns an http.Header that can be modified by the caller to
26901// add HTTP headers to the request.
26902func (c *AdvertisersNegativeKeywordListsPatchCall) Header() http.Header {
26903	if c.header_ == nil {
26904		c.header_ = make(http.Header)
26905	}
26906	return c.header_
26907}
26908
26909func (c *AdvertisersNegativeKeywordListsPatchCall) doRequest(alt string) (*http.Response, error) {
26910	reqHeaders := make(http.Header)
26911	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
26912	for k, v := range c.header_ {
26913		reqHeaders[k] = v
26914	}
26915	reqHeaders.Set("User-Agent", c.s.userAgent())
26916	var body io.Reader = nil
26917	body, err := googleapi.WithoutDataWrapper.JSONReader(c.negativekeywordlist)
26918	if err != nil {
26919		return nil, err
26920	}
26921	reqHeaders.Set("Content-Type", "application/json")
26922	c.urlParams_.Set("alt", alt)
26923	c.urlParams_.Set("prettyPrint", "false")
26924	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/negativeKeywordLists/{negativeKeywordListId}")
26925	urls += "?" + c.urlParams_.Encode()
26926	req, err := http.NewRequest("PATCH", urls, body)
26927	if err != nil {
26928		return nil, err
26929	}
26930	req.Header = reqHeaders
26931	googleapi.Expand(req.URL, map[string]string{
26932		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
26933		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
26934	})
26935	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26936}
26937
26938// Do executes the "displayvideo.advertisers.negativeKeywordLists.patch" call.
26939// Exactly one of *NegativeKeywordList or error will be non-nil. Any
26940// non-2xx status code is an error. Response headers are in either
26941// *NegativeKeywordList.ServerResponse.Header or (if a response was
26942// returned at all) in error.(*googleapi.Error).Header. Use
26943// googleapi.IsNotModified to check whether the returned error was
26944// because http.StatusNotModified was returned.
26945func (c *AdvertisersNegativeKeywordListsPatchCall) Do(opts ...googleapi.CallOption) (*NegativeKeywordList, error) {
26946	gensupport.SetOptions(c.urlParams_, opts...)
26947	res, err := c.doRequest("json")
26948	if res != nil && res.StatusCode == http.StatusNotModified {
26949		if res.Body != nil {
26950			res.Body.Close()
26951		}
26952		return nil, &googleapi.Error{
26953			Code:   res.StatusCode,
26954			Header: res.Header,
26955		}
26956	}
26957	if err != nil {
26958		return nil, err
26959	}
26960	defer googleapi.CloseBody(res)
26961	if err := googleapi.CheckResponse(res); err != nil {
26962		return nil, err
26963	}
26964	ret := &NegativeKeywordList{
26965		ServerResponse: googleapi.ServerResponse{
26966			Header:         res.Header,
26967			HTTPStatusCode: res.StatusCode,
26968		},
26969	}
26970	target := &ret
26971	if err := gensupport.DecodeResponse(target, res); err != nil {
26972		return nil, err
26973	}
26974	return ret, nil
26975	// {
26976	//   "description": "Updates a negative keyword list. Returns the updated negative keyword list if successful.",
26977	//   "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListId}",
26978	//   "httpMethod": "PATCH",
26979	//   "id": "displayvideo.advertisers.negativeKeywordLists.patch",
26980	//   "parameterOrder": [
26981	//     "advertiserId",
26982	//     "negativeKeywordListId"
26983	//   ],
26984	//   "parameters": {
26985	//     "advertiserId": {
26986	//       "description": "Required. The ID of the DV360 advertiser to which the negative keyword list belongs.",
26987	//       "format": "int64",
26988	//       "location": "path",
26989	//       "pattern": "^[^/]+$",
26990	//       "required": true,
26991	//       "type": "string"
26992	//     },
26993	//     "negativeKeywordListId": {
26994	//       "description": "Output only. The unique ID of the negative keyword list. Assigned by the system.",
26995	//       "format": "int64",
26996	//       "location": "path",
26997	//       "required": true,
26998	//       "type": "string"
26999	//     },
27000	//     "updateMask": {
27001	//       "description": "Required. The mask to control which fields to update.",
27002	//       "format": "google-fieldmask",
27003	//       "location": "query",
27004	//       "type": "string"
27005	//     }
27006	//   },
27007	//   "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{negativeKeywordListId}",
27008	//   "request": {
27009	//     "$ref": "NegativeKeywordList"
27010	//   },
27011	//   "response": {
27012	//     "$ref": "NegativeKeywordList"
27013	//   },
27014	//   "scopes": [
27015	//     "https://www.googleapis.com/auth/display-video"
27016	//   ]
27017	// }
27018
27019}
27020
27021// method id "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.bulkEdit":
27022
27023type AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall struct {
27024	s                               *Service
27025	advertiserId                    int64
27026	negativeKeywordListId           int64
27027	bulkeditnegativekeywordsrequest *BulkEditNegativeKeywordsRequest
27028	urlParams_                      gensupport.URLParams
27029	ctx_                            context.Context
27030	header_                         http.Header
27031}
27032
27033// BulkEdit: Bulk edits negative keywords in a single negative keyword
27034// list. The operation will delete the negative keywords provided in
27035// BulkEditNegativeKeywordsRequest.deleted_negative_keywords and then
27036// create the negative keywords provided in
27037// BulkEditNegativeKeywordsRequest.created_negative_keywords. This
27038// operation is guaranteed to be atomic and will never result in a
27039// partial success or partial failure.
27040//
27041// - advertiserId: The ID of the DV360 advertiser to which the parent
27042//   negative keyword list belongs.
27043// - negativeKeywordListId: The ID of the parent negative keyword list
27044//   to which the negative keywords belong.
27045func (r *AdvertisersNegativeKeywordListsNegativeKeywordsService) BulkEdit(advertiserId int64, negativeKeywordListId int64, bulkeditnegativekeywordsrequest *BulkEditNegativeKeywordsRequest) *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall {
27046	c := &AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27047	c.advertiserId = advertiserId
27048	c.negativeKeywordListId = negativeKeywordListId
27049	c.bulkeditnegativekeywordsrequest = bulkeditnegativekeywordsrequest
27050	return c
27051}
27052
27053// Fields allows partial responses to be retrieved. See
27054// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27055// for more information.
27056func (c *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall {
27057	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27058	return c
27059}
27060
27061// Context sets the context to be used in this call's Do method. Any
27062// pending HTTP request will be aborted if the provided context is
27063// canceled.
27064func (c *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall {
27065	c.ctx_ = ctx
27066	return c
27067}
27068
27069// Header returns an http.Header that can be modified by the caller to
27070// add HTTP headers to the request.
27071func (c *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall) Header() http.Header {
27072	if c.header_ == nil {
27073		c.header_ = make(http.Header)
27074	}
27075	return c.header_
27076}
27077
27078func (c *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall) doRequest(alt string) (*http.Response, error) {
27079	reqHeaders := make(http.Header)
27080	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
27081	for k, v := range c.header_ {
27082		reqHeaders[k] = v
27083	}
27084	reqHeaders.Set("User-Agent", c.s.userAgent())
27085	var body io.Reader = nil
27086	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditnegativekeywordsrequest)
27087	if err != nil {
27088		return nil, err
27089	}
27090	reqHeaders.Set("Content-Type", "application/json")
27091	c.urlParams_.Set("alt", alt)
27092	c.urlParams_.Set("prettyPrint", "false")
27093	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:bulkEdit")
27094	urls += "?" + c.urlParams_.Encode()
27095	req, err := http.NewRequest("POST", urls, body)
27096	if err != nil {
27097		return nil, err
27098	}
27099	req.Header = reqHeaders
27100	googleapi.Expand(req.URL, map[string]string{
27101		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
27102		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
27103	})
27104	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27105}
27106
27107// Do executes the "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.bulkEdit" call.
27108// Exactly one of *BulkEditNegativeKeywordsResponse or error will be
27109// non-nil. Any non-2xx status code is an error. Response headers are in
27110// either *BulkEditNegativeKeywordsResponse.ServerResponse.Header or (if
27111// a response was returned at all) in error.(*googleapi.Error).Header.
27112// Use googleapi.IsNotModified to check whether the returned error was
27113// because http.StatusNotModified was returned.
27114func (c *AdvertisersNegativeKeywordListsNegativeKeywordsBulkEditCall) Do(opts ...googleapi.CallOption) (*BulkEditNegativeKeywordsResponse, error) {
27115	gensupport.SetOptions(c.urlParams_, opts...)
27116	res, err := c.doRequest("json")
27117	if res != nil && res.StatusCode == http.StatusNotModified {
27118		if res.Body != nil {
27119			res.Body.Close()
27120		}
27121		return nil, &googleapi.Error{
27122			Code:   res.StatusCode,
27123			Header: res.Header,
27124		}
27125	}
27126	if err != nil {
27127		return nil, err
27128	}
27129	defer googleapi.CloseBody(res)
27130	if err := googleapi.CheckResponse(res); err != nil {
27131		return nil, err
27132	}
27133	ret := &BulkEditNegativeKeywordsResponse{
27134		ServerResponse: googleapi.ServerResponse{
27135			Header:         res.Header,
27136			HTTPStatusCode: res.StatusCode,
27137		},
27138	}
27139	target := &ret
27140	if err := gensupport.DecodeResponse(target, res); err != nil {
27141		return nil, err
27142	}
27143	return ret, nil
27144	// {
27145	//   "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.",
27146	//   "flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords:bulkEdit",
27147	//   "httpMethod": "POST",
27148	//   "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.bulkEdit",
27149	//   "parameterOrder": [
27150	//     "advertiserId",
27151	//     "negativeKeywordListId"
27152	//   ],
27153	//   "parameters": {
27154	//     "advertiserId": {
27155	//       "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.",
27156	//       "format": "int64",
27157	//       "location": "path",
27158	//       "required": true,
27159	//       "type": "string"
27160	//     },
27161	//     "negativeKeywordListId": {
27162	//       "description": "Required. The ID of the parent negative keyword list to which the negative keywords belong.",
27163	//       "format": "int64",
27164	//       "location": "path",
27165	//       "pattern": "^[^/]+$",
27166	//       "required": true,
27167	//       "type": "string"
27168	//     }
27169	//   },
27170	//   "path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:bulkEdit",
27171	//   "request": {
27172	//     "$ref": "BulkEditNegativeKeywordsRequest"
27173	//   },
27174	//   "response": {
27175	//     "$ref": "BulkEditNegativeKeywordsResponse"
27176	//   },
27177	//   "scopes": [
27178	//     "https://www.googleapis.com/auth/display-video"
27179	//   ]
27180	// }
27181
27182}
27183
27184// method id "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.create":
27185
27186type AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall struct {
27187	s                     *Service
27188	advertiserId          int64
27189	negativeKeywordListId int64
27190	negativekeyword       *NegativeKeyword
27191	urlParams_            gensupport.URLParams
27192	ctx_                  context.Context
27193	header_               http.Header
27194}
27195
27196// Create: Creates a negative keyword in a negative keyword list.
27197//
27198// - advertiserId: The ID of the DV360 advertiser to which the parent
27199//   negative keyword list belongs.
27200// - negativeKeywordListId: The ID of the parent negative keyword list
27201//   in which the negative keyword will be created.
27202func (r *AdvertisersNegativeKeywordListsNegativeKeywordsService) Create(advertiserId int64, negativeKeywordListId int64, negativekeyword *NegativeKeyword) *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall {
27203	c := &AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27204	c.advertiserId = advertiserId
27205	c.negativeKeywordListId = negativeKeywordListId
27206	c.negativekeyword = negativekeyword
27207	return c
27208}
27209
27210// Fields allows partial responses to be retrieved. See
27211// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27212// for more information.
27213func (c *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall {
27214	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27215	return c
27216}
27217
27218// Context sets the context to be used in this call's Do method. Any
27219// pending HTTP request will be aborted if the provided context is
27220// canceled.
27221func (c *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall {
27222	c.ctx_ = ctx
27223	return c
27224}
27225
27226// Header returns an http.Header that can be modified by the caller to
27227// add HTTP headers to the request.
27228func (c *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall) Header() http.Header {
27229	if c.header_ == nil {
27230		c.header_ = make(http.Header)
27231	}
27232	return c.header_
27233}
27234
27235func (c *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall) doRequest(alt string) (*http.Response, error) {
27236	reqHeaders := make(http.Header)
27237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
27238	for k, v := range c.header_ {
27239		reqHeaders[k] = v
27240	}
27241	reqHeaders.Set("User-Agent", c.s.userAgent())
27242	var body io.Reader = nil
27243	body, err := googleapi.WithoutDataWrapper.JSONReader(c.negativekeyword)
27244	if err != nil {
27245		return nil, err
27246	}
27247	reqHeaders.Set("Content-Type", "application/json")
27248	c.urlParams_.Set("alt", alt)
27249	c.urlParams_.Set("prettyPrint", "false")
27250	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords")
27251	urls += "?" + c.urlParams_.Encode()
27252	req, err := http.NewRequest("POST", urls, body)
27253	if err != nil {
27254		return nil, err
27255	}
27256	req.Header = reqHeaders
27257	googleapi.Expand(req.URL, map[string]string{
27258		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
27259		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
27260	})
27261	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27262}
27263
27264// Do executes the "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.create" call.
27265// Exactly one of *NegativeKeyword or error will be non-nil. Any non-2xx
27266// status code is an error. Response headers are in either
27267// *NegativeKeyword.ServerResponse.Header or (if a response was returned
27268// at all) in error.(*googleapi.Error).Header. Use
27269// googleapi.IsNotModified to check whether the returned error was
27270// because http.StatusNotModified was returned.
27271func (c *AdvertisersNegativeKeywordListsNegativeKeywordsCreateCall) Do(opts ...googleapi.CallOption) (*NegativeKeyword, error) {
27272	gensupport.SetOptions(c.urlParams_, opts...)
27273	res, err := c.doRequest("json")
27274	if res != nil && res.StatusCode == http.StatusNotModified {
27275		if res.Body != nil {
27276			res.Body.Close()
27277		}
27278		return nil, &googleapi.Error{
27279			Code:   res.StatusCode,
27280			Header: res.Header,
27281		}
27282	}
27283	if err != nil {
27284		return nil, err
27285	}
27286	defer googleapi.CloseBody(res)
27287	if err := googleapi.CheckResponse(res); err != nil {
27288		return nil, err
27289	}
27290	ret := &NegativeKeyword{
27291		ServerResponse: googleapi.ServerResponse{
27292			Header:         res.Header,
27293			HTTPStatusCode: res.StatusCode,
27294		},
27295	}
27296	target := &ret
27297	if err := gensupport.DecodeResponse(target, res); err != nil {
27298		return nil, err
27299	}
27300	return ret, nil
27301	// {
27302	//   "description": "Creates a negative keyword in a negative keyword list.",
27303	//   "flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords",
27304	//   "httpMethod": "POST",
27305	//   "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.create",
27306	//   "parameterOrder": [
27307	//     "advertiserId",
27308	//     "negativeKeywordListId"
27309	//   ],
27310	//   "parameters": {
27311	//     "advertiserId": {
27312	//       "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.",
27313	//       "format": "int64",
27314	//       "location": "path",
27315	//       "required": true,
27316	//       "type": "string"
27317	//     },
27318	//     "negativeKeywordListId": {
27319	//       "description": "Required. The ID of the parent negative keyword list in which the negative keyword will be created.",
27320	//       "format": "int64",
27321	//       "location": "path",
27322	//       "pattern": "^[^/]+$",
27323	//       "required": true,
27324	//       "type": "string"
27325	//     }
27326	//   },
27327	//   "path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords",
27328	//   "request": {
27329	//     "$ref": "NegativeKeyword"
27330	//   },
27331	//   "response": {
27332	//     "$ref": "NegativeKeyword"
27333	//   },
27334	//   "scopes": [
27335	//     "https://www.googleapis.com/auth/display-video"
27336	//   ]
27337	// }
27338
27339}
27340
27341// method id "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.delete":
27342
27343type AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall struct {
27344	s                     *Service
27345	advertiserId          int64
27346	negativeKeywordListId int64
27347	keywordValue          string
27348	urlParams_            gensupport.URLParams
27349	ctx_                  context.Context
27350	header_               http.Header
27351}
27352
27353// Delete: Deletes a negative keyword from a negative keyword list.
27354//
27355// - advertiserId: The ID of the DV360 advertiser to which the parent
27356//   negative keyword list belongs.
27357// - keywordValue: The keyword value of the negative keyword to delete.
27358// - negativeKeywordListId: The ID of the parent negative keyword list
27359//   to which the negative keyword belongs.
27360func (r *AdvertisersNegativeKeywordListsNegativeKeywordsService) Delete(advertiserId int64, negativeKeywordListId int64, keywordValue string) *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall {
27361	c := &AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27362	c.advertiserId = advertiserId
27363	c.negativeKeywordListId = negativeKeywordListId
27364	c.keywordValue = keywordValue
27365	return c
27366}
27367
27368// Fields allows partial responses to be retrieved. See
27369// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27370// for more information.
27371func (c *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall {
27372	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27373	return c
27374}
27375
27376// Context sets the context to be used in this call's Do method. Any
27377// pending HTTP request will be aborted if the provided context is
27378// canceled.
27379func (c *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall {
27380	c.ctx_ = ctx
27381	return c
27382}
27383
27384// Header returns an http.Header that can be modified by the caller to
27385// add HTTP headers to the request.
27386func (c *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall) Header() http.Header {
27387	if c.header_ == nil {
27388		c.header_ = make(http.Header)
27389	}
27390	return c.header_
27391}
27392
27393func (c *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall) doRequest(alt string) (*http.Response, error) {
27394	reqHeaders := make(http.Header)
27395	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
27396	for k, v := range c.header_ {
27397		reqHeaders[k] = v
27398	}
27399	reqHeaders.Set("User-Agent", c.s.userAgent())
27400	var body io.Reader = nil
27401	c.urlParams_.Set("alt", alt)
27402	c.urlParams_.Set("prettyPrint", "false")
27403	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords/{+keywordValue}")
27404	urls += "?" + c.urlParams_.Encode()
27405	req, err := http.NewRequest("DELETE", urls, body)
27406	if err != nil {
27407		return nil, err
27408	}
27409	req.Header = reqHeaders
27410	googleapi.Expand(req.URL, map[string]string{
27411		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
27412		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
27413		"keywordValue":          c.keywordValue,
27414	})
27415	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27416}
27417
27418// Do executes the "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.delete" call.
27419// Exactly one of *Empty or error will be non-nil. Any non-2xx status
27420// code is an error. Response headers are in either
27421// *Empty.ServerResponse.Header or (if a response was returned at all)
27422// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
27423// check whether the returned error was because http.StatusNotModified
27424// was returned.
27425func (c *AdvertisersNegativeKeywordListsNegativeKeywordsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
27426	gensupport.SetOptions(c.urlParams_, opts...)
27427	res, err := c.doRequest("json")
27428	if res != nil && res.StatusCode == http.StatusNotModified {
27429		if res.Body != nil {
27430			res.Body.Close()
27431		}
27432		return nil, &googleapi.Error{
27433			Code:   res.StatusCode,
27434			Header: res.Header,
27435		}
27436	}
27437	if err != nil {
27438		return nil, err
27439	}
27440	defer googleapi.CloseBody(res)
27441	if err := googleapi.CheckResponse(res); err != nil {
27442		return nil, err
27443	}
27444	ret := &Empty{
27445		ServerResponse: googleapi.ServerResponse{
27446			Header:         res.Header,
27447			HTTPStatusCode: res.StatusCode,
27448		},
27449	}
27450	target := &ret
27451	if err := gensupport.DecodeResponse(target, res); err != nil {
27452		return nil, err
27453	}
27454	return ret, nil
27455	// {
27456	//   "description": "Deletes a negative keyword from a negative keyword list.",
27457	//   "flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords/{negativeKeywordsId}",
27458	//   "httpMethod": "DELETE",
27459	//   "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.delete",
27460	//   "parameterOrder": [
27461	//     "advertiserId",
27462	//     "negativeKeywordListId",
27463	//     "keywordValue"
27464	//   ],
27465	//   "parameters": {
27466	//     "advertiserId": {
27467	//       "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.",
27468	//       "format": "int64",
27469	//       "location": "path",
27470	//       "required": true,
27471	//       "type": "string"
27472	//     },
27473	//     "keywordValue": {
27474	//       "description": "Required. The keyword value of the negative keyword to delete.",
27475	//       "location": "path",
27476	//       "pattern": "^[^/]+$",
27477	//       "required": true,
27478	//       "type": "string"
27479	//     },
27480	//     "negativeKeywordListId": {
27481	//       "description": "Required. The ID of the parent negative keyword list to which the negative keyword belongs.",
27482	//       "format": "int64",
27483	//       "location": "path",
27484	//       "pattern": "^[^/]+$",
27485	//       "required": true,
27486	//       "type": "string"
27487	//     }
27488	//   },
27489	//   "path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords/{+keywordValue}",
27490	//   "response": {
27491	//     "$ref": "Empty"
27492	//   },
27493	//   "scopes": [
27494	//     "https://www.googleapis.com/auth/display-video"
27495	//   ]
27496	// }
27497
27498}
27499
27500// method id "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.list":
27501
27502type AdvertisersNegativeKeywordListsNegativeKeywordsListCall struct {
27503	s                     *Service
27504	advertiserId          int64
27505	negativeKeywordListId int64
27506	urlParams_            gensupport.URLParams
27507	ifNoneMatch_          string
27508	ctx_                  context.Context
27509	header_               http.Header
27510}
27511
27512// List: Lists negative keywords in a negative keyword list.
27513//
27514// - advertiserId: The ID of the DV360 advertiser to which the parent
27515//   negative keyword list belongs.
27516// - negativeKeywordListId: The ID of the parent negative keyword list
27517//   to which the requested negative keywords belong.
27518func (r *AdvertisersNegativeKeywordListsNegativeKeywordsService) List(advertiserId int64, negativeKeywordListId int64) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
27519	c := &AdvertisersNegativeKeywordListsNegativeKeywordsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27520	c.advertiserId = advertiserId
27521	c.negativeKeywordListId = negativeKeywordListId
27522	return c
27523}
27524
27525// Filter sets the optional parameter "filter": Allows filtering by
27526// negative keyword fields. Supported syntax: * Filter expressions for
27527// negative keyword currently can only contain at most one *
27528// restriction. * A restriction has the form of `{field} {operator}
27529// {value}`. * The operator must be `CONTAINS (:)`. * Supported fields:
27530// - `keywordValue` Examples: * All negative keywords for which the
27531// keyword value contains "google": `keywordValue : "google"
27532func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) Filter(filter string) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
27533	c.urlParams_.Set("filter", filter)
27534	return c
27535}
27536
27537// OrderBy sets the optional parameter "orderBy": Field by which to sort
27538// the list. Acceptable values are: * `keywordValue` (default) The
27539// default sorting order is ascending. To specify descending order for a
27540// field, a suffix " desc" should be added to the field name. Example:
27541// `keywordValue desc`.
27542func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) OrderBy(orderBy string) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
27543	c.urlParams_.Set("orderBy", orderBy)
27544	return c
27545}
27546
27547// PageSize sets the optional parameter "pageSize": Requested page size.
27548// Must be between `1` and `1000`. If unspecified will default to `100`.
27549// Returns error code `INVALID_ARGUMENT` if an invalid value is
27550// specified.
27551func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) PageSize(pageSize int64) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
27552	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
27553	return c
27554}
27555
27556// PageToken sets the optional parameter "pageToken": A token
27557// identifying a page of results the server should return. Typically,
27558// this is the value of next_page_token returned from the previous call
27559// to `ListNegativeKeywords` method. If not specified, the first page of
27560// results will be returned.
27561func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) PageToken(pageToken string) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
27562	c.urlParams_.Set("pageToken", pageToken)
27563	return c
27564}
27565
27566// Fields allows partial responses to be retrieved. See
27567// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27568// for more information.
27569func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
27570	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27571	return c
27572}
27573
27574// IfNoneMatch sets the optional parameter which makes the operation
27575// fail if the object's ETag matches the given value. This is useful for
27576// getting updates only after the object has changed since the last
27577// request. Use googleapi.IsNotModified to check whether the response
27578// error from Do is the result of In-None-Match.
27579func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) IfNoneMatch(entityTag string) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
27580	c.ifNoneMatch_ = entityTag
27581	return c
27582}
27583
27584// Context sets the context to be used in this call's Do method. Any
27585// pending HTTP request will be aborted if the provided context is
27586// canceled.
27587func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsNegativeKeywordsListCall {
27588	c.ctx_ = ctx
27589	return c
27590}
27591
27592// Header returns an http.Header that can be modified by the caller to
27593// add HTTP headers to the request.
27594func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) Header() http.Header {
27595	if c.header_ == nil {
27596		c.header_ = make(http.Header)
27597	}
27598	return c.header_
27599}
27600
27601func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) doRequest(alt string) (*http.Response, error) {
27602	reqHeaders := make(http.Header)
27603	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
27604	for k, v := range c.header_ {
27605		reqHeaders[k] = v
27606	}
27607	reqHeaders.Set("User-Agent", c.s.userAgent())
27608	if c.ifNoneMatch_ != "" {
27609		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
27610	}
27611	var body io.Reader = nil
27612	c.urlParams_.Set("alt", alt)
27613	c.urlParams_.Set("prettyPrint", "false")
27614	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords")
27615	urls += "?" + c.urlParams_.Encode()
27616	req, err := http.NewRequest("GET", urls, body)
27617	if err != nil {
27618		return nil, err
27619	}
27620	req.Header = reqHeaders
27621	googleapi.Expand(req.URL, map[string]string{
27622		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
27623		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
27624	})
27625	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27626}
27627
27628// Do executes the "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.list" call.
27629// Exactly one of *ListNegativeKeywordsResponse or error will be
27630// non-nil. Any non-2xx status code is an error. Response headers are in
27631// either *ListNegativeKeywordsResponse.ServerResponse.Header or (if a
27632// response was returned at all) in error.(*googleapi.Error).Header. Use
27633// googleapi.IsNotModified to check whether the returned error was
27634// because http.StatusNotModified was returned.
27635func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) Do(opts ...googleapi.CallOption) (*ListNegativeKeywordsResponse, error) {
27636	gensupport.SetOptions(c.urlParams_, opts...)
27637	res, err := c.doRequest("json")
27638	if res != nil && res.StatusCode == http.StatusNotModified {
27639		if res.Body != nil {
27640			res.Body.Close()
27641		}
27642		return nil, &googleapi.Error{
27643			Code:   res.StatusCode,
27644			Header: res.Header,
27645		}
27646	}
27647	if err != nil {
27648		return nil, err
27649	}
27650	defer googleapi.CloseBody(res)
27651	if err := googleapi.CheckResponse(res); err != nil {
27652		return nil, err
27653	}
27654	ret := &ListNegativeKeywordsResponse{
27655		ServerResponse: googleapi.ServerResponse{
27656			Header:         res.Header,
27657			HTTPStatusCode: res.StatusCode,
27658		},
27659	}
27660	target := &ret
27661	if err := gensupport.DecodeResponse(target, res); err != nil {
27662		return nil, err
27663	}
27664	return ret, nil
27665	// {
27666	//   "description": "Lists negative keywords in a negative keyword list.",
27667	//   "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords",
27668	//   "httpMethod": "GET",
27669	//   "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.list",
27670	//   "parameterOrder": [
27671	//     "advertiserId",
27672	//     "negativeKeywordListId"
27673	//   ],
27674	//   "parameters": {
27675	//     "advertiserId": {
27676	//       "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.",
27677	//       "format": "int64",
27678	//       "location": "path",
27679	//       "pattern": "^[^/]+$",
27680	//       "required": true,
27681	//       "type": "string"
27682	//     },
27683	//     "filter": {
27684	//       "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\"`",
27685	//       "location": "query",
27686	//       "type": "string"
27687	//     },
27688	//     "negativeKeywordListId": {
27689	//       "description": "Required. The ID of the parent negative keyword list to which the requested negative keywords belong.",
27690	//       "format": "int64",
27691	//       "location": "path",
27692	//       "pattern": "^[^/]+$",
27693	//       "required": true,
27694	//       "type": "string"
27695	//     },
27696	//     "orderBy": {
27697	//       "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`.",
27698	//       "location": "query",
27699	//       "type": "string"
27700	//     },
27701	//     "pageSize": {
27702	//       "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.",
27703	//       "format": "int32",
27704	//       "location": "query",
27705	//       "type": "integer"
27706	//     },
27707	//     "pageToken": {
27708	//       "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.",
27709	//       "location": "query",
27710	//       "type": "string"
27711	//     }
27712	//   },
27713	//   "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords",
27714	//   "response": {
27715	//     "$ref": "ListNegativeKeywordsResponse"
27716	//   },
27717	//   "scopes": [
27718	//     "https://www.googleapis.com/auth/display-video"
27719	//   ]
27720	// }
27721
27722}
27723
27724// Pages invokes f for each page of results.
27725// A non-nil error returned from f will halt the iteration.
27726// The provided context supersedes any context provided to the Context method.
27727func (c *AdvertisersNegativeKeywordListsNegativeKeywordsListCall) Pages(ctx context.Context, f func(*ListNegativeKeywordsResponse) error) error {
27728	c.ctx_ = ctx
27729	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
27730	for {
27731		x, err := c.Do()
27732		if err != nil {
27733			return err
27734		}
27735		if err := f(x); err != nil {
27736			return err
27737		}
27738		if x.NextPageToken == "" {
27739			return nil
27740		}
27741		c.PageToken(x.NextPageToken)
27742	}
27743}
27744
27745// method id "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.replace":
27746
27747type AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall struct {
27748	s                              *Service
27749	advertiserId                   int64
27750	negativeKeywordListId          int64
27751	replacenegativekeywordsrequest *ReplaceNegativeKeywordsRequest
27752	urlParams_                     gensupport.URLParams
27753	ctx_                           context.Context
27754	header_                        http.Header
27755}
27756
27757// Replace: Replaces all negative keywords in a single negative keyword
27758// list. The operation will replace the keywords in a negative keyword
27759// list with keywords provided in
27760// ReplaceNegativeKeywordsRequest.new_negative_keywords.
27761//
27762// - advertiserId: The ID of the DV360 advertiser to which the parent
27763//   negative keyword list belongs.
27764// - negativeKeywordListId: The ID of the parent negative keyword list
27765//   to which the negative keywords belong.
27766func (r *AdvertisersNegativeKeywordListsNegativeKeywordsService) Replace(advertiserId int64, negativeKeywordListId int64, replacenegativekeywordsrequest *ReplaceNegativeKeywordsRequest) *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall {
27767	c := &AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27768	c.advertiserId = advertiserId
27769	c.negativeKeywordListId = negativeKeywordListId
27770	c.replacenegativekeywordsrequest = replacenegativekeywordsrequest
27771	return c
27772}
27773
27774// Fields allows partial responses to be retrieved. See
27775// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27776// for more information.
27777func (c *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall) Fields(s ...googleapi.Field) *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall {
27778	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27779	return c
27780}
27781
27782// Context sets the context to be used in this call's Do method. Any
27783// pending HTTP request will be aborted if the provided context is
27784// canceled.
27785func (c *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall) Context(ctx context.Context) *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall {
27786	c.ctx_ = ctx
27787	return c
27788}
27789
27790// Header returns an http.Header that can be modified by the caller to
27791// add HTTP headers to the request.
27792func (c *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall) Header() http.Header {
27793	if c.header_ == nil {
27794		c.header_ = make(http.Header)
27795	}
27796	return c.header_
27797}
27798
27799func (c *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall) doRequest(alt string) (*http.Response, error) {
27800	reqHeaders := make(http.Header)
27801	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
27802	for k, v := range c.header_ {
27803		reqHeaders[k] = v
27804	}
27805	reqHeaders.Set("User-Agent", c.s.userAgent())
27806	var body io.Reader = nil
27807	body, err := googleapi.WithoutDataWrapper.JSONReader(c.replacenegativekeywordsrequest)
27808	if err != nil {
27809		return nil, err
27810	}
27811	reqHeaders.Set("Content-Type", "application/json")
27812	c.urlParams_.Set("alt", alt)
27813	c.urlParams_.Set("prettyPrint", "false")
27814	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:replace")
27815	urls += "?" + c.urlParams_.Encode()
27816	req, err := http.NewRequest("POST", urls, body)
27817	if err != nil {
27818		return nil, err
27819	}
27820	req.Header = reqHeaders
27821	googleapi.Expand(req.URL, map[string]string{
27822		"advertiserId":          strconv.FormatInt(c.advertiserId, 10),
27823		"negativeKeywordListId": strconv.FormatInt(c.negativeKeywordListId, 10),
27824	})
27825	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27826}
27827
27828// Do executes the "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.replace" call.
27829// Exactly one of *ReplaceNegativeKeywordsResponse or error will be
27830// non-nil. Any non-2xx status code is an error. Response headers are in
27831// either *ReplaceNegativeKeywordsResponse.ServerResponse.Header or (if
27832// a response was returned at all) in error.(*googleapi.Error).Header.
27833// Use googleapi.IsNotModified to check whether the returned error was
27834// because http.StatusNotModified was returned.
27835func (c *AdvertisersNegativeKeywordListsNegativeKeywordsReplaceCall) Do(opts ...googleapi.CallOption) (*ReplaceNegativeKeywordsResponse, error) {
27836	gensupport.SetOptions(c.urlParams_, opts...)
27837	res, err := c.doRequest("json")
27838	if res != nil && res.StatusCode == http.StatusNotModified {
27839		if res.Body != nil {
27840			res.Body.Close()
27841		}
27842		return nil, &googleapi.Error{
27843			Code:   res.StatusCode,
27844			Header: res.Header,
27845		}
27846	}
27847	if err != nil {
27848		return nil, err
27849	}
27850	defer googleapi.CloseBody(res)
27851	if err := googleapi.CheckResponse(res); err != nil {
27852		return nil, err
27853	}
27854	ret := &ReplaceNegativeKeywordsResponse{
27855		ServerResponse: googleapi.ServerResponse{
27856			Header:         res.Header,
27857			HTTPStatusCode: res.StatusCode,
27858		},
27859	}
27860	target := &ret
27861	if err := gensupport.DecodeResponse(target, res); err != nil {
27862		return nil, err
27863	}
27864	return ret, nil
27865	// {
27866	//   "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.",
27867	//   "flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords:replace",
27868	//   "httpMethod": "POST",
27869	//   "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.replace",
27870	//   "parameterOrder": [
27871	//     "advertiserId",
27872	//     "negativeKeywordListId"
27873	//   ],
27874	//   "parameters": {
27875	//     "advertiserId": {
27876	//       "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.",
27877	//       "format": "int64",
27878	//       "location": "path",
27879	//       "required": true,
27880	//       "type": "string"
27881	//     },
27882	//     "negativeKeywordListId": {
27883	//       "description": "Required. The ID of the parent negative keyword list to which the negative keywords belong.",
27884	//       "format": "int64",
27885	//       "location": "path",
27886	//       "pattern": "^[^/]+$",
27887	//       "required": true,
27888	//       "type": "string"
27889	//     }
27890	//   },
27891	//   "path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:replace",
27892	//   "request": {
27893	//     "$ref": "ReplaceNegativeKeywordsRequest"
27894	//   },
27895	//   "response": {
27896	//     "$ref": "ReplaceNegativeKeywordsResponse"
27897	//   },
27898	//   "scopes": [
27899	//     "https://www.googleapis.com/auth/display-video"
27900	//   ]
27901	// }
27902
27903}
27904
27905// method id "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.create":
27906
27907type AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall struct {
27908	s                       *Service
27909	advertiserId            int64
27910	targetingType           string
27911	assignedtargetingoption *AssignedTargetingOption
27912	urlParams_              gensupport.URLParams
27913	ctx_                    context.Context
27914	header_                 http.Header
27915}
27916
27917// Create: Assigns a targeting option to an advertiser. Returns the
27918// assigned targeting option if successful.
27919//
27920// - advertiserId: The ID of the advertiser.
27921// - targetingType: Identifies the type of this assigned targeting
27922//   option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` *
27923//   `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
27924//   `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
27925func (r *AdvertisersTargetingTypesAssignedTargetingOptionsService) Create(advertiserId int64, targetingType string, assignedtargetingoption *AssignedTargetingOption) *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall {
27926	c := &AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27927	c.advertiserId = advertiserId
27928	c.targetingType = targetingType
27929	c.assignedtargetingoption = assignedtargetingoption
27930	return c
27931}
27932
27933// Fields allows partial responses to be retrieved. See
27934// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27935// for more information.
27936func (c *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall) Fields(s ...googleapi.Field) *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall {
27937	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27938	return c
27939}
27940
27941// Context sets the context to be used in this call's Do method. Any
27942// pending HTTP request will be aborted if the provided context is
27943// canceled.
27944func (c *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall) Context(ctx context.Context) *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall {
27945	c.ctx_ = ctx
27946	return c
27947}
27948
27949// Header returns an http.Header that can be modified by the caller to
27950// add HTTP headers to the request.
27951func (c *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall) Header() http.Header {
27952	if c.header_ == nil {
27953		c.header_ = make(http.Header)
27954	}
27955	return c.header_
27956}
27957
27958func (c *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall) doRequest(alt string) (*http.Response, error) {
27959	reqHeaders := make(http.Header)
27960	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
27961	for k, v := range c.header_ {
27962		reqHeaders[k] = v
27963	}
27964	reqHeaders.Set("User-Agent", c.s.userAgent())
27965	var body io.Reader = nil
27966	body, err := googleapi.WithoutDataWrapper.JSONReader(c.assignedtargetingoption)
27967	if err != nil {
27968		return nil, err
27969	}
27970	reqHeaders.Set("Content-Type", "application/json")
27971	c.urlParams_.Set("alt", alt)
27972	c.urlParams_.Set("prettyPrint", "false")
27973	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
27974	urls += "?" + c.urlParams_.Encode()
27975	req, err := http.NewRequest("POST", urls, body)
27976	if err != nil {
27977		return nil, err
27978	}
27979	req.Header = reqHeaders
27980	googleapi.Expand(req.URL, map[string]string{
27981		"advertiserId":  strconv.FormatInt(c.advertiserId, 10),
27982		"targetingType": c.targetingType,
27983	})
27984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27985}
27986
27987// Do executes the "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.create" call.
27988// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
27989// non-2xx status code is an error. Response headers are in either
27990// *AssignedTargetingOption.ServerResponse.Header or (if a response was
27991// returned at all) in error.(*googleapi.Error).Header. Use
27992// googleapi.IsNotModified to check whether the returned error was
27993// because http.StatusNotModified was returned.
27994func (c *AdvertisersTargetingTypesAssignedTargetingOptionsCreateCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
27995	gensupport.SetOptions(c.urlParams_, opts...)
27996	res, err := c.doRequest("json")
27997	if res != nil && res.StatusCode == http.StatusNotModified {
27998		if res.Body != nil {
27999			res.Body.Close()
28000		}
28001		return nil, &googleapi.Error{
28002			Code:   res.StatusCode,
28003			Header: res.Header,
28004		}
28005	}
28006	if err != nil {
28007		return nil, err
28008	}
28009	defer googleapi.CloseBody(res)
28010	if err := googleapi.CheckResponse(res); err != nil {
28011		return nil, err
28012	}
28013	ret := &AssignedTargetingOption{
28014		ServerResponse: googleapi.ServerResponse{
28015			Header:         res.Header,
28016			HTTPStatusCode: res.StatusCode,
28017		},
28018	}
28019	target := &ret
28020	if err := gensupport.DecodeResponse(target, res); err != nil {
28021		return nil, err
28022	}
28023	return ret, nil
28024	// {
28025	//   "description": "Assigns a targeting option to an advertiser. Returns the assigned targeting option if successful.",
28026	//   "flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
28027	//   "httpMethod": "POST",
28028	//   "id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.create",
28029	//   "parameterOrder": [
28030	//     "advertiserId",
28031	//     "targetingType"
28032	//   ],
28033	//   "parameters": {
28034	//     "advertiserId": {
28035	//       "description": "Required. The ID of the advertiser.",
28036	//       "format": "int64",
28037	//       "location": "path",
28038	//       "pattern": "^[^/]+$",
28039	//       "required": true,
28040	//       "type": "string"
28041	//     },
28042	//     "targetingType": {
28043	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`",
28044	//       "enum": [
28045	//         "TARGETING_TYPE_UNSPECIFIED",
28046	//         "TARGETING_TYPE_CHANNEL",
28047	//         "TARGETING_TYPE_APP_CATEGORY",
28048	//         "TARGETING_TYPE_APP",
28049	//         "TARGETING_TYPE_URL",
28050	//         "TARGETING_TYPE_DAY_AND_TIME",
28051	//         "TARGETING_TYPE_AGE_RANGE",
28052	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
28053	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
28054	//         "TARGETING_TYPE_GENDER",
28055	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
28056	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
28057	//         "TARGETING_TYPE_PARENTAL_STATUS",
28058	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
28059	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
28060	//         "TARGETING_TYPE_DEVICE_TYPE",
28061	//         "TARGETING_TYPE_AUDIENCE_GROUP",
28062	//         "TARGETING_TYPE_BROWSER",
28063	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
28064	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
28065	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
28066	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
28067	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
28068	//         "TARGETING_TYPE_ENVIRONMENT",
28069	//         "TARGETING_TYPE_CARRIER_AND_ISP",
28070	//         "TARGETING_TYPE_OPERATING_SYSTEM",
28071	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
28072	//         "TARGETING_TYPE_KEYWORD",
28073	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
28074	//         "TARGETING_TYPE_VIEWABILITY",
28075	//         "TARGETING_TYPE_CATEGORY",
28076	//         "TARGETING_TYPE_INVENTORY_SOURCE",
28077	//         "TARGETING_TYPE_LANGUAGE",
28078	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
28079	//         "TARGETING_TYPE_GEO_REGION",
28080	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
28081	//         "TARGETING_TYPE_EXCHANGE",
28082	//         "TARGETING_TYPE_SUB_EXCHANGE"
28083	//       ],
28084	//       "enumDescriptions": [
28085	//         "Default value when type is not specified or is unknown in this version.",
28086	//         "Target a channel (a custom group of related websites or apps).",
28087	//         "Target an app category (for example, education or puzzle games).",
28088	//         "Target a specific app (for example, Angry Birds).",
28089	//         "Target a specific url (for example, quora.com).",
28090	//         "Target ads during a chosen time period on a specific day.",
28091	//         "Target ads to a specific age range (for example, 18-24).",
28092	//         "Target ads to the specified regions on a regional location list.",
28093	//         "Target ads to the specified points of interest on a proximity location list.",
28094	//         "Target ads to a specific gender (for example, female or male).",
28095	//         "Target a specific video player size for video ads.",
28096	//         "Target user rewarded content for video ads.",
28097	//         "Target ads to a specific parental status (for example, parent or not a parent).",
28098	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
28099	//         "Target ads in a specific content outstream position.",
28100	//         "Target ads to a specific device type (for example, tablet or connected TV).",
28101	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
28102	//         "Target ads to specific web browsers (for example, Chrome).",
28103	//         "Target ads to a specific household income range (for example, top 10%).",
28104	//         "Target ads in a specific on screen position.",
28105	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
28106	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
28107	//         "Filter website content by sensitive categories (for example, adult).",
28108	//         "Target ads to a specific environment (for example, web or app).",
28109	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
28110	//         "Target ads to a specific operating system (for example, macOS).",
28111	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
28112	//         "Target ads to a specific keyword (for example, dog or retriever).",
28113	//         "Target ads to a specific negative keyword list.",
28114	//         "Target ads to a specific viewability (for example, 80% viewable).",
28115	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
28116	//         "Purchase impressions from specific deals and auction packages.",
28117	//         "Target ads to a specific language (for example, English or Japanese).",
28118	//         "Target ads to ads.txt authorized sellers.",
28119	//         "Target ads to a specific regional location (for example, a city or state).",
28120	//         "Purchase impressions from a group of deals and auction packages.",
28121	//         "Purchase impressions from specific exchanges.",
28122	//         "Purchase impressions from specific sub-exchanges."
28123	//       ],
28124	//       "location": "path",
28125	//       "pattern": "^[^/]+$",
28126	//       "required": true,
28127	//       "type": "string"
28128	//     }
28129	//   },
28130	//   "path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
28131	//   "request": {
28132	//     "$ref": "AssignedTargetingOption"
28133	//   },
28134	//   "response": {
28135	//     "$ref": "AssignedTargetingOption"
28136	//   },
28137	//   "scopes": [
28138	//     "https://www.googleapis.com/auth/display-video"
28139	//   ]
28140	// }
28141
28142}
28143
28144// method id "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.delete":
28145
28146type AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall struct {
28147	s                         *Service
28148	advertiserId              int64
28149	targetingType             string
28150	assignedTargetingOptionId string
28151	urlParams_                gensupport.URLParams
28152	ctx_                      context.Context
28153	header_                   http.Header
28154}
28155
28156// Delete: Deletes an assigned targeting option from an advertiser.
28157//
28158// - advertiserId: The ID of the advertiser.
28159// - assignedTargetingOptionId: The ID of the assigned targeting option
28160//   to delete.
28161// - targetingType: Identifies the type of this assigned targeting
28162//   option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` *
28163//   `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
28164//   `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
28165func (r *AdvertisersTargetingTypesAssignedTargetingOptionsService) Delete(advertiserId int64, targetingType string, assignedTargetingOptionId string) *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall {
28166	c := &AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28167	c.advertiserId = advertiserId
28168	c.targetingType = targetingType
28169	c.assignedTargetingOptionId = assignedTargetingOptionId
28170	return c
28171}
28172
28173// Fields allows partial responses to be retrieved. See
28174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28175// for more information.
28176func (c *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall) Fields(s ...googleapi.Field) *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall {
28177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28178	return c
28179}
28180
28181// Context sets the context to be used in this call's Do method. Any
28182// pending HTTP request will be aborted if the provided context is
28183// canceled.
28184func (c *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall) Context(ctx context.Context) *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall {
28185	c.ctx_ = ctx
28186	return c
28187}
28188
28189// Header returns an http.Header that can be modified by the caller to
28190// add HTTP headers to the request.
28191func (c *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall) Header() http.Header {
28192	if c.header_ == nil {
28193		c.header_ = make(http.Header)
28194	}
28195	return c.header_
28196}
28197
28198func (c *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall) doRequest(alt string) (*http.Response, error) {
28199	reqHeaders := make(http.Header)
28200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
28201	for k, v := range c.header_ {
28202		reqHeaders[k] = v
28203	}
28204	reqHeaders.Set("User-Agent", c.s.userAgent())
28205	var body io.Reader = nil
28206	c.urlParams_.Set("alt", alt)
28207	c.urlParams_.Set("prettyPrint", "false")
28208	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
28209	urls += "?" + c.urlParams_.Encode()
28210	req, err := http.NewRequest("DELETE", urls, body)
28211	if err != nil {
28212		return nil, err
28213	}
28214	req.Header = reqHeaders
28215	googleapi.Expand(req.URL, map[string]string{
28216		"advertiserId":              strconv.FormatInt(c.advertiserId, 10),
28217		"targetingType":             c.targetingType,
28218		"assignedTargetingOptionId": c.assignedTargetingOptionId,
28219	})
28220	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28221}
28222
28223// Do executes the "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.delete" call.
28224// Exactly one of *Empty or error will be non-nil. Any non-2xx status
28225// code is an error. Response headers are in either
28226// *Empty.ServerResponse.Header or (if a response was returned at all)
28227// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
28228// check whether the returned error was because http.StatusNotModified
28229// was returned.
28230func (c *AdvertisersTargetingTypesAssignedTargetingOptionsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
28231	gensupport.SetOptions(c.urlParams_, opts...)
28232	res, err := c.doRequest("json")
28233	if res != nil && res.StatusCode == http.StatusNotModified {
28234		if res.Body != nil {
28235			res.Body.Close()
28236		}
28237		return nil, &googleapi.Error{
28238			Code:   res.StatusCode,
28239			Header: res.Header,
28240		}
28241	}
28242	if err != nil {
28243		return nil, err
28244	}
28245	defer googleapi.CloseBody(res)
28246	if err := googleapi.CheckResponse(res); err != nil {
28247		return nil, err
28248	}
28249	ret := &Empty{
28250		ServerResponse: googleapi.ServerResponse{
28251			Header:         res.Header,
28252			HTTPStatusCode: res.StatusCode,
28253		},
28254	}
28255	target := &ret
28256	if err := gensupport.DecodeResponse(target, res); err != nil {
28257		return nil, err
28258	}
28259	return ret, nil
28260	// {
28261	//   "description": "Deletes an assigned targeting option from an advertiser.",
28262	//   "flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
28263	//   "httpMethod": "DELETE",
28264	//   "id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.delete",
28265	//   "parameterOrder": [
28266	//     "advertiserId",
28267	//     "targetingType",
28268	//     "assignedTargetingOptionId"
28269	//   ],
28270	//   "parameters": {
28271	//     "advertiserId": {
28272	//       "description": "Required. The ID of the advertiser.",
28273	//       "format": "int64",
28274	//       "location": "path",
28275	//       "pattern": "^[^/]+$",
28276	//       "required": true,
28277	//       "type": "string"
28278	//     },
28279	//     "assignedTargetingOptionId": {
28280	//       "description": "Required. The ID of the assigned targeting option to delete.",
28281	//       "location": "path",
28282	//       "pattern": "^[^/]+$",
28283	//       "required": true,
28284	//       "type": "string"
28285	//     },
28286	//     "targetingType": {
28287	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`",
28288	//       "enum": [
28289	//         "TARGETING_TYPE_UNSPECIFIED",
28290	//         "TARGETING_TYPE_CHANNEL",
28291	//         "TARGETING_TYPE_APP_CATEGORY",
28292	//         "TARGETING_TYPE_APP",
28293	//         "TARGETING_TYPE_URL",
28294	//         "TARGETING_TYPE_DAY_AND_TIME",
28295	//         "TARGETING_TYPE_AGE_RANGE",
28296	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
28297	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
28298	//         "TARGETING_TYPE_GENDER",
28299	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
28300	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
28301	//         "TARGETING_TYPE_PARENTAL_STATUS",
28302	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
28303	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
28304	//         "TARGETING_TYPE_DEVICE_TYPE",
28305	//         "TARGETING_TYPE_AUDIENCE_GROUP",
28306	//         "TARGETING_TYPE_BROWSER",
28307	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
28308	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
28309	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
28310	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
28311	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
28312	//         "TARGETING_TYPE_ENVIRONMENT",
28313	//         "TARGETING_TYPE_CARRIER_AND_ISP",
28314	//         "TARGETING_TYPE_OPERATING_SYSTEM",
28315	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
28316	//         "TARGETING_TYPE_KEYWORD",
28317	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
28318	//         "TARGETING_TYPE_VIEWABILITY",
28319	//         "TARGETING_TYPE_CATEGORY",
28320	//         "TARGETING_TYPE_INVENTORY_SOURCE",
28321	//         "TARGETING_TYPE_LANGUAGE",
28322	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
28323	//         "TARGETING_TYPE_GEO_REGION",
28324	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
28325	//         "TARGETING_TYPE_EXCHANGE",
28326	//         "TARGETING_TYPE_SUB_EXCHANGE"
28327	//       ],
28328	//       "enumDescriptions": [
28329	//         "Default value when type is not specified or is unknown in this version.",
28330	//         "Target a channel (a custom group of related websites or apps).",
28331	//         "Target an app category (for example, education or puzzle games).",
28332	//         "Target a specific app (for example, Angry Birds).",
28333	//         "Target a specific url (for example, quora.com).",
28334	//         "Target ads during a chosen time period on a specific day.",
28335	//         "Target ads to a specific age range (for example, 18-24).",
28336	//         "Target ads to the specified regions on a regional location list.",
28337	//         "Target ads to the specified points of interest on a proximity location list.",
28338	//         "Target ads to a specific gender (for example, female or male).",
28339	//         "Target a specific video player size for video ads.",
28340	//         "Target user rewarded content for video ads.",
28341	//         "Target ads to a specific parental status (for example, parent or not a parent).",
28342	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
28343	//         "Target ads in a specific content outstream position.",
28344	//         "Target ads to a specific device type (for example, tablet or connected TV).",
28345	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
28346	//         "Target ads to specific web browsers (for example, Chrome).",
28347	//         "Target ads to a specific household income range (for example, top 10%).",
28348	//         "Target ads in a specific on screen position.",
28349	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
28350	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
28351	//         "Filter website content by sensitive categories (for example, adult).",
28352	//         "Target ads to a specific environment (for example, web or app).",
28353	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
28354	//         "Target ads to a specific operating system (for example, macOS).",
28355	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
28356	//         "Target ads to a specific keyword (for example, dog or retriever).",
28357	//         "Target ads to a specific negative keyword list.",
28358	//         "Target ads to a specific viewability (for example, 80% viewable).",
28359	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
28360	//         "Purchase impressions from specific deals and auction packages.",
28361	//         "Target ads to a specific language (for example, English or Japanese).",
28362	//         "Target ads to ads.txt authorized sellers.",
28363	//         "Target ads to a specific regional location (for example, a city or state).",
28364	//         "Purchase impressions from a group of deals and auction packages.",
28365	//         "Purchase impressions from specific exchanges.",
28366	//         "Purchase impressions from specific sub-exchanges."
28367	//       ],
28368	//       "location": "path",
28369	//       "pattern": "^[^/]+$",
28370	//       "required": true,
28371	//       "type": "string"
28372	//     }
28373	//   },
28374	//   "path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
28375	//   "response": {
28376	//     "$ref": "Empty"
28377	//   },
28378	//   "scopes": [
28379	//     "https://www.googleapis.com/auth/display-video"
28380	//   ]
28381	// }
28382
28383}
28384
28385// method id "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.get":
28386
28387type AdvertisersTargetingTypesAssignedTargetingOptionsGetCall struct {
28388	s                         *Service
28389	advertiserId              int64
28390	targetingType             string
28391	assignedTargetingOptionId string
28392	urlParams_                gensupport.URLParams
28393	ifNoneMatch_              string
28394	ctx_                      context.Context
28395	header_                   http.Header
28396}
28397
28398// Get: Gets a single targeting option assigned to an advertiser.
28399//
28400// - advertiserId: The ID of the advertiser.
28401// - assignedTargetingOptionId: An identifier unique to the targeting
28402//   type in this advertiser that identifies the assigned targeting
28403//   option being requested.
28404// - targetingType: Identifies the type of this assigned targeting
28405//   option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` *
28406//   `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
28407//   `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
28408func (r *AdvertisersTargetingTypesAssignedTargetingOptionsService) Get(advertiserId int64, targetingType string, assignedTargetingOptionId string) *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall {
28409	c := &AdvertisersTargetingTypesAssignedTargetingOptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28410	c.advertiserId = advertiserId
28411	c.targetingType = targetingType
28412	c.assignedTargetingOptionId = assignedTargetingOptionId
28413	return c
28414}
28415
28416// Fields allows partial responses to be retrieved. See
28417// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28418// for more information.
28419func (c *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall) Fields(s ...googleapi.Field) *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall {
28420	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28421	return c
28422}
28423
28424// IfNoneMatch sets the optional parameter which makes the operation
28425// fail if the object's ETag matches the given value. This is useful for
28426// getting updates only after the object has changed since the last
28427// request. Use googleapi.IsNotModified to check whether the response
28428// error from Do is the result of In-None-Match.
28429func (c *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall) IfNoneMatch(entityTag string) *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall {
28430	c.ifNoneMatch_ = entityTag
28431	return c
28432}
28433
28434// Context sets the context to be used in this call's Do method. Any
28435// pending HTTP request will be aborted if the provided context is
28436// canceled.
28437func (c *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall) Context(ctx context.Context) *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall {
28438	c.ctx_ = ctx
28439	return c
28440}
28441
28442// Header returns an http.Header that can be modified by the caller to
28443// add HTTP headers to the request.
28444func (c *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall) Header() http.Header {
28445	if c.header_ == nil {
28446		c.header_ = make(http.Header)
28447	}
28448	return c.header_
28449}
28450
28451func (c *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall) doRequest(alt string) (*http.Response, error) {
28452	reqHeaders := make(http.Header)
28453	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
28454	for k, v := range c.header_ {
28455		reqHeaders[k] = v
28456	}
28457	reqHeaders.Set("User-Agent", c.s.userAgent())
28458	if c.ifNoneMatch_ != "" {
28459		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
28460	}
28461	var body io.Reader = nil
28462	c.urlParams_.Set("alt", alt)
28463	c.urlParams_.Set("prettyPrint", "false")
28464	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
28465	urls += "?" + c.urlParams_.Encode()
28466	req, err := http.NewRequest("GET", urls, body)
28467	if err != nil {
28468		return nil, err
28469	}
28470	req.Header = reqHeaders
28471	googleapi.Expand(req.URL, map[string]string{
28472		"advertiserId":              strconv.FormatInt(c.advertiserId, 10),
28473		"targetingType":             c.targetingType,
28474		"assignedTargetingOptionId": c.assignedTargetingOptionId,
28475	})
28476	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28477}
28478
28479// Do executes the "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.get" call.
28480// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
28481// non-2xx status code is an error. Response headers are in either
28482// *AssignedTargetingOption.ServerResponse.Header or (if a response was
28483// returned at all) in error.(*googleapi.Error).Header. Use
28484// googleapi.IsNotModified to check whether the returned error was
28485// because http.StatusNotModified was returned.
28486func (c *AdvertisersTargetingTypesAssignedTargetingOptionsGetCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
28487	gensupport.SetOptions(c.urlParams_, opts...)
28488	res, err := c.doRequest("json")
28489	if res != nil && res.StatusCode == http.StatusNotModified {
28490		if res.Body != nil {
28491			res.Body.Close()
28492		}
28493		return nil, &googleapi.Error{
28494			Code:   res.StatusCode,
28495			Header: res.Header,
28496		}
28497	}
28498	if err != nil {
28499		return nil, err
28500	}
28501	defer googleapi.CloseBody(res)
28502	if err := googleapi.CheckResponse(res); err != nil {
28503		return nil, err
28504	}
28505	ret := &AssignedTargetingOption{
28506		ServerResponse: googleapi.ServerResponse{
28507			Header:         res.Header,
28508			HTTPStatusCode: res.StatusCode,
28509		},
28510	}
28511	target := &ret
28512	if err := gensupport.DecodeResponse(target, res); err != nil {
28513		return nil, err
28514	}
28515	return ret, nil
28516	// {
28517	//   "description": "Gets a single targeting option assigned to an advertiser.",
28518	//   "flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
28519	//   "httpMethod": "GET",
28520	//   "id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.get",
28521	//   "parameterOrder": [
28522	//     "advertiserId",
28523	//     "targetingType",
28524	//     "assignedTargetingOptionId"
28525	//   ],
28526	//   "parameters": {
28527	//     "advertiserId": {
28528	//       "description": "Required. The ID of the advertiser.",
28529	//       "format": "int64",
28530	//       "location": "path",
28531	//       "pattern": "^[^/]+$",
28532	//       "required": true,
28533	//       "type": "string"
28534	//     },
28535	//     "assignedTargetingOptionId": {
28536	//       "description": "Required. An identifier unique to the targeting type in this advertiser that identifies the assigned targeting option being requested.",
28537	//       "location": "path",
28538	//       "pattern": "^[^/]+$",
28539	//       "required": true,
28540	//       "type": "string"
28541	//     },
28542	//     "targetingType": {
28543	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`",
28544	//       "enum": [
28545	//         "TARGETING_TYPE_UNSPECIFIED",
28546	//         "TARGETING_TYPE_CHANNEL",
28547	//         "TARGETING_TYPE_APP_CATEGORY",
28548	//         "TARGETING_TYPE_APP",
28549	//         "TARGETING_TYPE_URL",
28550	//         "TARGETING_TYPE_DAY_AND_TIME",
28551	//         "TARGETING_TYPE_AGE_RANGE",
28552	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
28553	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
28554	//         "TARGETING_TYPE_GENDER",
28555	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
28556	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
28557	//         "TARGETING_TYPE_PARENTAL_STATUS",
28558	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
28559	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
28560	//         "TARGETING_TYPE_DEVICE_TYPE",
28561	//         "TARGETING_TYPE_AUDIENCE_GROUP",
28562	//         "TARGETING_TYPE_BROWSER",
28563	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
28564	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
28565	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
28566	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
28567	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
28568	//         "TARGETING_TYPE_ENVIRONMENT",
28569	//         "TARGETING_TYPE_CARRIER_AND_ISP",
28570	//         "TARGETING_TYPE_OPERATING_SYSTEM",
28571	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
28572	//         "TARGETING_TYPE_KEYWORD",
28573	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
28574	//         "TARGETING_TYPE_VIEWABILITY",
28575	//         "TARGETING_TYPE_CATEGORY",
28576	//         "TARGETING_TYPE_INVENTORY_SOURCE",
28577	//         "TARGETING_TYPE_LANGUAGE",
28578	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
28579	//         "TARGETING_TYPE_GEO_REGION",
28580	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
28581	//         "TARGETING_TYPE_EXCHANGE",
28582	//         "TARGETING_TYPE_SUB_EXCHANGE"
28583	//       ],
28584	//       "enumDescriptions": [
28585	//         "Default value when type is not specified or is unknown in this version.",
28586	//         "Target a channel (a custom group of related websites or apps).",
28587	//         "Target an app category (for example, education or puzzle games).",
28588	//         "Target a specific app (for example, Angry Birds).",
28589	//         "Target a specific url (for example, quora.com).",
28590	//         "Target ads during a chosen time period on a specific day.",
28591	//         "Target ads to a specific age range (for example, 18-24).",
28592	//         "Target ads to the specified regions on a regional location list.",
28593	//         "Target ads to the specified points of interest on a proximity location list.",
28594	//         "Target ads to a specific gender (for example, female or male).",
28595	//         "Target a specific video player size for video ads.",
28596	//         "Target user rewarded content for video ads.",
28597	//         "Target ads to a specific parental status (for example, parent or not a parent).",
28598	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
28599	//         "Target ads in a specific content outstream position.",
28600	//         "Target ads to a specific device type (for example, tablet or connected TV).",
28601	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
28602	//         "Target ads to specific web browsers (for example, Chrome).",
28603	//         "Target ads to a specific household income range (for example, top 10%).",
28604	//         "Target ads in a specific on screen position.",
28605	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
28606	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
28607	//         "Filter website content by sensitive categories (for example, adult).",
28608	//         "Target ads to a specific environment (for example, web or app).",
28609	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
28610	//         "Target ads to a specific operating system (for example, macOS).",
28611	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
28612	//         "Target ads to a specific keyword (for example, dog or retriever).",
28613	//         "Target ads to a specific negative keyword list.",
28614	//         "Target ads to a specific viewability (for example, 80% viewable).",
28615	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
28616	//         "Purchase impressions from specific deals and auction packages.",
28617	//         "Target ads to a specific language (for example, English or Japanese).",
28618	//         "Target ads to ads.txt authorized sellers.",
28619	//         "Target ads to a specific regional location (for example, a city or state).",
28620	//         "Purchase impressions from a group of deals and auction packages.",
28621	//         "Purchase impressions from specific exchanges.",
28622	//         "Purchase impressions from specific sub-exchanges."
28623	//       ],
28624	//       "location": "path",
28625	//       "pattern": "^[^/]+$",
28626	//       "required": true,
28627	//       "type": "string"
28628	//     }
28629	//   },
28630	//   "path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
28631	//   "response": {
28632	//     "$ref": "AssignedTargetingOption"
28633	//   },
28634	//   "scopes": [
28635	//     "https://www.googleapis.com/auth/display-video"
28636	//   ]
28637	// }
28638
28639}
28640
28641// method id "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.list":
28642
28643type AdvertisersTargetingTypesAssignedTargetingOptionsListCall struct {
28644	s             *Service
28645	advertiserId  int64
28646	targetingType string
28647	urlParams_    gensupport.URLParams
28648	ifNoneMatch_  string
28649	ctx_          context.Context
28650	header_       http.Header
28651}
28652
28653// List: Lists the targeting options assigned to an advertiser.
28654//
28655// - advertiserId: The ID of the advertiser.
28656// - targetingType: Identifies the type of assigned targeting options to
28657//   list. Supported targeting types: * `TARGETING_TYPE_CHANNEL` *
28658//   `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` *
28659//   `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.
28660func (r *AdvertisersTargetingTypesAssignedTargetingOptionsService) List(advertiserId int64, targetingType string) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
28661	c := &AdvertisersTargetingTypesAssignedTargetingOptionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28662	c.advertiserId = advertiserId
28663	c.targetingType = targetingType
28664	return c
28665}
28666
28667// Filter sets the optional parameter "filter": Allows filtering by
28668// assigned targeting option properties. Supported syntax: * Filter
28669// expressions are made up of one or more restrictions. * Restrictions
28670// can be combined by the logical operator `OR`. * A restriction has the
28671// form of `{field} {operator} {value}`. * The operator must be `EQUALS
28672// (=)`. * Supported fields: - `assignedTargetingOptionId` Examples: *
28673// AssignedTargetingOption with ID 123456
28674// `assignedTargetingOptionId="123456" The length of this field should
28675// be no more than 500 characters.
28676func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) Filter(filter string) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
28677	c.urlParams_.Set("filter", filter)
28678	return c
28679}
28680
28681// OrderBy sets the optional parameter "orderBy": Field by which to sort
28682// the list. Acceptable values are: * `assignedTargetingOptionId`
28683// (default) The default sorting order is ascending. To specify
28684// descending order for a field, a suffix "desc" should be added to the
28685// field name. Example: `assignedTargetingOptionId desc`.
28686func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) OrderBy(orderBy string) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
28687	c.urlParams_.Set("orderBy", orderBy)
28688	return c
28689}
28690
28691// PageSize sets the optional parameter "pageSize": Requested page size.
28692// Must be between `1` and `100`. If unspecified will default to `100`.
28693// Returns error code `INVALID_ARGUMENT` if an invalid value is
28694// specified.
28695func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) PageSize(pageSize int64) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
28696	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
28697	return c
28698}
28699
28700// PageToken sets the optional parameter "pageToken": A token
28701// identifying a page of results the server should return. Typically,
28702// this is the value of next_page_token returned from the previous call
28703// to `ListAdvertiserAssignedTargetingOptions` method. If not specified,
28704// the first page of results will be returned.
28705func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) PageToken(pageToken string) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
28706	c.urlParams_.Set("pageToken", pageToken)
28707	return c
28708}
28709
28710// Fields allows partial responses to be retrieved. See
28711// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28712// for more information.
28713func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) Fields(s ...googleapi.Field) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
28714	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28715	return c
28716}
28717
28718// IfNoneMatch sets the optional parameter which makes the operation
28719// fail if the object's ETag matches the given value. This is useful for
28720// getting updates only after the object has changed since the last
28721// request. Use googleapi.IsNotModified to check whether the response
28722// error from Do is the result of In-None-Match.
28723func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) IfNoneMatch(entityTag string) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
28724	c.ifNoneMatch_ = entityTag
28725	return c
28726}
28727
28728// Context sets the context to be used in this call's Do method. Any
28729// pending HTTP request will be aborted if the provided context is
28730// canceled.
28731func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) Context(ctx context.Context) *AdvertisersTargetingTypesAssignedTargetingOptionsListCall {
28732	c.ctx_ = ctx
28733	return c
28734}
28735
28736// Header returns an http.Header that can be modified by the caller to
28737// add HTTP headers to the request.
28738func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) Header() http.Header {
28739	if c.header_ == nil {
28740		c.header_ = make(http.Header)
28741	}
28742	return c.header_
28743}
28744
28745func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) doRequest(alt string) (*http.Response, error) {
28746	reqHeaders := make(http.Header)
28747	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
28748	for k, v := range c.header_ {
28749		reqHeaders[k] = v
28750	}
28751	reqHeaders.Set("User-Agent", c.s.userAgent())
28752	if c.ifNoneMatch_ != "" {
28753		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
28754	}
28755	var body io.Reader = nil
28756	c.urlParams_.Set("alt", alt)
28757	c.urlParams_.Set("prettyPrint", "false")
28758	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
28759	urls += "?" + c.urlParams_.Encode()
28760	req, err := http.NewRequest("GET", urls, body)
28761	if err != nil {
28762		return nil, err
28763	}
28764	req.Header = reqHeaders
28765	googleapi.Expand(req.URL, map[string]string{
28766		"advertiserId":  strconv.FormatInt(c.advertiserId, 10),
28767		"targetingType": c.targetingType,
28768	})
28769	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28770}
28771
28772// Do executes the "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.list" call.
28773// Exactly one of *ListAdvertiserAssignedTargetingOptionsResponse or
28774// error will be non-nil. Any non-2xx status code is an error. Response
28775// headers are in either
28776// *ListAdvertiserAssignedTargetingOptionsResponse.ServerResponse.Header
28777// or (if a response was returned at all) in
28778// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
28779// whether the returned error was because http.StatusNotModified was
28780// returned.
28781func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) Do(opts ...googleapi.CallOption) (*ListAdvertiserAssignedTargetingOptionsResponse, error) {
28782	gensupport.SetOptions(c.urlParams_, opts...)
28783	res, err := c.doRequest("json")
28784	if res != nil && res.StatusCode == http.StatusNotModified {
28785		if res.Body != nil {
28786			res.Body.Close()
28787		}
28788		return nil, &googleapi.Error{
28789			Code:   res.StatusCode,
28790			Header: res.Header,
28791		}
28792	}
28793	if err != nil {
28794		return nil, err
28795	}
28796	defer googleapi.CloseBody(res)
28797	if err := googleapi.CheckResponse(res); err != nil {
28798		return nil, err
28799	}
28800	ret := &ListAdvertiserAssignedTargetingOptionsResponse{
28801		ServerResponse: googleapi.ServerResponse{
28802			Header:         res.Header,
28803			HTTPStatusCode: res.StatusCode,
28804		},
28805	}
28806	target := &ret
28807	if err := gensupport.DecodeResponse(target, res); err != nil {
28808		return nil, err
28809	}
28810	return ret, nil
28811	// {
28812	//   "description": "Lists the targeting options assigned to an advertiser.",
28813	//   "flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
28814	//   "httpMethod": "GET",
28815	//   "id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.list",
28816	//   "parameterOrder": [
28817	//     "advertiserId",
28818	//     "targetingType"
28819	//   ],
28820	//   "parameters": {
28821	//     "advertiserId": {
28822	//       "description": "Required. The ID of the advertiser.",
28823	//       "format": "int64",
28824	//       "location": "path",
28825	//       "pattern": "^[^/]+$",
28826	//       "required": true,
28827	//       "type": "string"
28828	//     },
28829	//     "filter": {
28830	//       "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.",
28831	//       "location": "query",
28832	//       "type": "string"
28833	//     },
28834	//     "orderBy": {
28835	//       "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`.",
28836	//       "location": "query",
28837	//       "type": "string"
28838	//     },
28839	//     "pageSize": {
28840	//       "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.",
28841	//       "format": "int32",
28842	//       "location": "query",
28843	//       "type": "integer"
28844	//     },
28845	//     "pageToken": {
28846	//       "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.",
28847	//       "location": "query",
28848	//       "type": "string"
28849	//     },
28850	//     "targetingType": {
28851	//       "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_SENSITIVE_CATEGORY_EXCLUSION`",
28852	//       "enum": [
28853	//         "TARGETING_TYPE_UNSPECIFIED",
28854	//         "TARGETING_TYPE_CHANNEL",
28855	//         "TARGETING_TYPE_APP_CATEGORY",
28856	//         "TARGETING_TYPE_APP",
28857	//         "TARGETING_TYPE_URL",
28858	//         "TARGETING_TYPE_DAY_AND_TIME",
28859	//         "TARGETING_TYPE_AGE_RANGE",
28860	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
28861	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
28862	//         "TARGETING_TYPE_GENDER",
28863	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
28864	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
28865	//         "TARGETING_TYPE_PARENTAL_STATUS",
28866	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
28867	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
28868	//         "TARGETING_TYPE_DEVICE_TYPE",
28869	//         "TARGETING_TYPE_AUDIENCE_GROUP",
28870	//         "TARGETING_TYPE_BROWSER",
28871	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
28872	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
28873	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
28874	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
28875	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
28876	//         "TARGETING_TYPE_ENVIRONMENT",
28877	//         "TARGETING_TYPE_CARRIER_AND_ISP",
28878	//         "TARGETING_TYPE_OPERATING_SYSTEM",
28879	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
28880	//         "TARGETING_TYPE_KEYWORD",
28881	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
28882	//         "TARGETING_TYPE_VIEWABILITY",
28883	//         "TARGETING_TYPE_CATEGORY",
28884	//         "TARGETING_TYPE_INVENTORY_SOURCE",
28885	//         "TARGETING_TYPE_LANGUAGE",
28886	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
28887	//         "TARGETING_TYPE_GEO_REGION",
28888	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
28889	//         "TARGETING_TYPE_EXCHANGE",
28890	//         "TARGETING_TYPE_SUB_EXCHANGE"
28891	//       ],
28892	//       "enumDescriptions": [
28893	//         "Default value when type is not specified or is unknown in this version.",
28894	//         "Target a channel (a custom group of related websites or apps).",
28895	//         "Target an app category (for example, education or puzzle games).",
28896	//         "Target a specific app (for example, Angry Birds).",
28897	//         "Target a specific url (for example, quora.com).",
28898	//         "Target ads during a chosen time period on a specific day.",
28899	//         "Target ads to a specific age range (for example, 18-24).",
28900	//         "Target ads to the specified regions on a regional location list.",
28901	//         "Target ads to the specified points of interest on a proximity location list.",
28902	//         "Target ads to a specific gender (for example, female or male).",
28903	//         "Target a specific video player size for video ads.",
28904	//         "Target user rewarded content for video ads.",
28905	//         "Target ads to a specific parental status (for example, parent or not a parent).",
28906	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
28907	//         "Target ads in a specific content outstream position.",
28908	//         "Target ads to a specific device type (for example, tablet or connected TV).",
28909	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
28910	//         "Target ads to specific web browsers (for example, Chrome).",
28911	//         "Target ads to a specific household income range (for example, top 10%).",
28912	//         "Target ads in a specific on screen position.",
28913	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
28914	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
28915	//         "Filter website content by sensitive categories (for example, adult).",
28916	//         "Target ads to a specific environment (for example, web or app).",
28917	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
28918	//         "Target ads to a specific operating system (for example, macOS).",
28919	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
28920	//         "Target ads to a specific keyword (for example, dog or retriever).",
28921	//         "Target ads to a specific negative keyword list.",
28922	//         "Target ads to a specific viewability (for example, 80% viewable).",
28923	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
28924	//         "Purchase impressions from specific deals and auction packages.",
28925	//         "Target ads to a specific language (for example, English or Japanese).",
28926	//         "Target ads to ads.txt authorized sellers.",
28927	//         "Target ads to a specific regional location (for example, a city or state).",
28928	//         "Purchase impressions from a group of deals and auction packages.",
28929	//         "Purchase impressions from specific exchanges.",
28930	//         "Purchase impressions from specific sub-exchanges."
28931	//       ],
28932	//       "location": "path",
28933	//       "pattern": "^[^/]+$",
28934	//       "required": true,
28935	//       "type": "string"
28936	//     }
28937	//   },
28938	//   "path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
28939	//   "response": {
28940	//     "$ref": "ListAdvertiserAssignedTargetingOptionsResponse"
28941	//   },
28942	//   "scopes": [
28943	//     "https://www.googleapis.com/auth/display-video"
28944	//   ]
28945	// }
28946
28947}
28948
28949// Pages invokes f for each page of results.
28950// A non-nil error returned from f will halt the iteration.
28951// The provided context supersedes any context provided to the Context method.
28952func (c *AdvertisersTargetingTypesAssignedTargetingOptionsListCall) Pages(ctx context.Context, f func(*ListAdvertiserAssignedTargetingOptionsResponse) error) error {
28953	c.ctx_ = ctx
28954	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
28955	for {
28956		x, err := c.Do()
28957		if err != nil {
28958			return err
28959		}
28960		if err := f(x); err != nil {
28961			return err
28962		}
28963		if x.NextPageToken == "" {
28964			return nil
28965		}
28966		c.PageToken(x.NextPageToken)
28967	}
28968}
28969
28970// method id "displayvideo.combinedAudiences.get":
28971
28972type CombinedAudiencesGetCall struct {
28973	s                  *Service
28974	combinedAudienceId int64
28975	urlParams_         gensupport.URLParams
28976	ifNoneMatch_       string
28977	ctx_               context.Context
28978	header_            http.Header
28979}
28980
28981// Get: Gets a combined audience.
28982//
28983// - combinedAudienceId: The ID of the combined audience to fetch.
28984func (r *CombinedAudiencesService) Get(combinedAudienceId int64) *CombinedAudiencesGetCall {
28985	c := &CombinedAudiencesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28986	c.combinedAudienceId = combinedAudienceId
28987	return c
28988}
28989
28990// AdvertiserId sets the optional parameter "advertiserId": The ID of
28991// the advertiser that has access to the fetched combined audience.
28992func (c *CombinedAudiencesGetCall) AdvertiserId(advertiserId int64) *CombinedAudiencesGetCall {
28993	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
28994	return c
28995}
28996
28997// PartnerId sets the optional parameter "partnerId": The ID of the
28998// partner that has access to the fetched combined audience.
28999func (c *CombinedAudiencesGetCall) PartnerId(partnerId int64) *CombinedAudiencesGetCall {
29000	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
29001	return c
29002}
29003
29004// Fields allows partial responses to be retrieved. See
29005// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29006// for more information.
29007func (c *CombinedAudiencesGetCall) Fields(s ...googleapi.Field) *CombinedAudiencesGetCall {
29008	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29009	return c
29010}
29011
29012// IfNoneMatch sets the optional parameter which makes the operation
29013// fail if the object's ETag matches the given value. This is useful for
29014// getting updates only after the object has changed since the last
29015// request. Use googleapi.IsNotModified to check whether the response
29016// error from Do is the result of In-None-Match.
29017func (c *CombinedAudiencesGetCall) IfNoneMatch(entityTag string) *CombinedAudiencesGetCall {
29018	c.ifNoneMatch_ = entityTag
29019	return c
29020}
29021
29022// Context sets the context to be used in this call's Do method. Any
29023// pending HTTP request will be aborted if the provided context is
29024// canceled.
29025func (c *CombinedAudiencesGetCall) Context(ctx context.Context) *CombinedAudiencesGetCall {
29026	c.ctx_ = ctx
29027	return c
29028}
29029
29030// Header returns an http.Header that can be modified by the caller to
29031// add HTTP headers to the request.
29032func (c *CombinedAudiencesGetCall) Header() http.Header {
29033	if c.header_ == nil {
29034		c.header_ = make(http.Header)
29035	}
29036	return c.header_
29037}
29038
29039func (c *CombinedAudiencesGetCall) doRequest(alt string) (*http.Response, error) {
29040	reqHeaders := make(http.Header)
29041	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
29042	for k, v := range c.header_ {
29043		reqHeaders[k] = v
29044	}
29045	reqHeaders.Set("User-Agent", c.s.userAgent())
29046	if c.ifNoneMatch_ != "" {
29047		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
29048	}
29049	var body io.Reader = nil
29050	c.urlParams_.Set("alt", alt)
29051	c.urlParams_.Set("prettyPrint", "false")
29052	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/combinedAudiences/{+combinedAudienceId}")
29053	urls += "?" + c.urlParams_.Encode()
29054	req, err := http.NewRequest("GET", urls, body)
29055	if err != nil {
29056		return nil, err
29057	}
29058	req.Header = reqHeaders
29059	googleapi.Expand(req.URL, map[string]string{
29060		"combinedAudienceId": strconv.FormatInt(c.combinedAudienceId, 10),
29061	})
29062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29063}
29064
29065// Do executes the "displayvideo.combinedAudiences.get" call.
29066// Exactly one of *CombinedAudience or error will be non-nil. Any
29067// non-2xx status code is an error. Response headers are in either
29068// *CombinedAudience.ServerResponse.Header or (if a response was
29069// returned at all) in error.(*googleapi.Error).Header. Use
29070// googleapi.IsNotModified to check whether the returned error was
29071// because http.StatusNotModified was returned.
29072func (c *CombinedAudiencesGetCall) Do(opts ...googleapi.CallOption) (*CombinedAudience, error) {
29073	gensupport.SetOptions(c.urlParams_, opts...)
29074	res, err := c.doRequest("json")
29075	if res != nil && res.StatusCode == http.StatusNotModified {
29076		if res.Body != nil {
29077			res.Body.Close()
29078		}
29079		return nil, &googleapi.Error{
29080			Code:   res.StatusCode,
29081			Header: res.Header,
29082		}
29083	}
29084	if err != nil {
29085		return nil, err
29086	}
29087	defer googleapi.CloseBody(res)
29088	if err := googleapi.CheckResponse(res); err != nil {
29089		return nil, err
29090	}
29091	ret := &CombinedAudience{
29092		ServerResponse: googleapi.ServerResponse{
29093			Header:         res.Header,
29094			HTTPStatusCode: res.StatusCode,
29095		},
29096	}
29097	target := &ret
29098	if err := gensupport.DecodeResponse(target, res); err != nil {
29099		return nil, err
29100	}
29101	return ret, nil
29102	// {
29103	//   "description": "Gets a combined audience.",
29104	//   "flatPath": "v1/combinedAudiences/{combinedAudiencesId}",
29105	//   "httpMethod": "GET",
29106	//   "id": "displayvideo.combinedAudiences.get",
29107	//   "parameterOrder": [
29108	//     "combinedAudienceId"
29109	//   ],
29110	//   "parameters": {
29111	//     "advertiserId": {
29112	//       "description": "The ID of the advertiser that has access to the fetched combined audience.",
29113	//       "format": "int64",
29114	//       "location": "query",
29115	//       "type": "string"
29116	//     },
29117	//     "combinedAudienceId": {
29118	//       "description": "Required. The ID of the combined audience to fetch.",
29119	//       "format": "int64",
29120	//       "location": "path",
29121	//       "pattern": "^[^/]+$",
29122	//       "required": true,
29123	//       "type": "string"
29124	//     },
29125	//     "partnerId": {
29126	//       "description": "The ID of the partner that has access to the fetched combined audience.",
29127	//       "format": "int64",
29128	//       "location": "query",
29129	//       "type": "string"
29130	//     }
29131	//   },
29132	//   "path": "v1/combinedAudiences/{+combinedAudienceId}",
29133	//   "response": {
29134	//     "$ref": "CombinedAudience"
29135	//   },
29136	//   "scopes": [
29137	//     "https://www.googleapis.com/auth/display-video"
29138	//   ]
29139	// }
29140
29141}
29142
29143// method id "displayvideo.combinedAudiences.list":
29144
29145type CombinedAudiencesListCall struct {
29146	s            *Service
29147	urlParams_   gensupport.URLParams
29148	ifNoneMatch_ string
29149	ctx_         context.Context
29150	header_      http.Header
29151}
29152
29153// List: Lists combined audiences. The order is defined by the order_by
29154// parameter.
29155func (r *CombinedAudiencesService) List() *CombinedAudiencesListCall {
29156	c := &CombinedAudiencesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29157	return c
29158}
29159
29160// AdvertiserId sets the optional parameter "advertiserId": The ID of
29161// the advertiser that has access to the fetched combined audiences.
29162func (c *CombinedAudiencesListCall) AdvertiserId(advertiserId int64) *CombinedAudiencesListCall {
29163	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
29164	return c
29165}
29166
29167// Filter sets the optional parameter "filter": Allows filtering by
29168// combined audience fields. Supported syntax: * Filter expressions for
29169// combined audiences currently can only contain at most one
29170// restriction. * A restriction has the form of `{field} {operator}
29171// {value}`. * The operator must be `CONTAINS (:)`. * Supported fields:
29172// - `displayName` Examples: * All combined audiences for which the
29173// display name contains "Google": `displayName : "Google". The length
29174// of this field should be no more than 500 characters.
29175func (c *CombinedAudiencesListCall) Filter(filter string) *CombinedAudiencesListCall {
29176	c.urlParams_.Set("filter", filter)
29177	return c
29178}
29179
29180// OrderBy sets the optional parameter "orderBy": Field by which to sort
29181// the list. Acceptable values are: * `combinedAudienceId` (default) *
29182// `displayName` The default sorting order is ascending. To specify
29183// descending order for a field, a suffix "desc" should be added to the
29184// field name. Example: `displayName desc`.
29185func (c *CombinedAudiencesListCall) OrderBy(orderBy string) *CombinedAudiencesListCall {
29186	c.urlParams_.Set("orderBy", orderBy)
29187	return c
29188}
29189
29190// PageSize sets the optional parameter "pageSize": Requested page size.
29191// Must be between `1` and `100`. If unspecified will default to `100`.
29192// Returns error code `INVALID_ARGUMENT` if an invalid value is
29193// specified.
29194func (c *CombinedAudiencesListCall) PageSize(pageSize int64) *CombinedAudiencesListCall {
29195	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
29196	return c
29197}
29198
29199// PageToken sets the optional parameter "pageToken": A token
29200// identifying a page of results the server should return. Typically,
29201// this is the value of next_page_token returned from the previous call
29202// to `ListCombinedAudiences` method. If not specified, the first page
29203// of results will be returned.
29204func (c *CombinedAudiencesListCall) PageToken(pageToken string) *CombinedAudiencesListCall {
29205	c.urlParams_.Set("pageToken", pageToken)
29206	return c
29207}
29208
29209// PartnerId sets the optional parameter "partnerId": The ID of the
29210// partner that has access to the fetched combined audiences.
29211func (c *CombinedAudiencesListCall) PartnerId(partnerId int64) *CombinedAudiencesListCall {
29212	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
29213	return c
29214}
29215
29216// Fields allows partial responses to be retrieved. See
29217// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29218// for more information.
29219func (c *CombinedAudiencesListCall) Fields(s ...googleapi.Field) *CombinedAudiencesListCall {
29220	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29221	return c
29222}
29223
29224// IfNoneMatch sets the optional parameter which makes the operation
29225// fail if the object's ETag matches the given value. This is useful for
29226// getting updates only after the object has changed since the last
29227// request. Use googleapi.IsNotModified to check whether the response
29228// error from Do is the result of In-None-Match.
29229func (c *CombinedAudiencesListCall) IfNoneMatch(entityTag string) *CombinedAudiencesListCall {
29230	c.ifNoneMatch_ = entityTag
29231	return c
29232}
29233
29234// Context sets the context to be used in this call's Do method. Any
29235// pending HTTP request will be aborted if the provided context is
29236// canceled.
29237func (c *CombinedAudiencesListCall) Context(ctx context.Context) *CombinedAudiencesListCall {
29238	c.ctx_ = ctx
29239	return c
29240}
29241
29242// Header returns an http.Header that can be modified by the caller to
29243// add HTTP headers to the request.
29244func (c *CombinedAudiencesListCall) Header() http.Header {
29245	if c.header_ == nil {
29246		c.header_ = make(http.Header)
29247	}
29248	return c.header_
29249}
29250
29251func (c *CombinedAudiencesListCall) doRequest(alt string) (*http.Response, error) {
29252	reqHeaders := make(http.Header)
29253	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
29254	for k, v := range c.header_ {
29255		reqHeaders[k] = v
29256	}
29257	reqHeaders.Set("User-Agent", c.s.userAgent())
29258	if c.ifNoneMatch_ != "" {
29259		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
29260	}
29261	var body io.Reader = nil
29262	c.urlParams_.Set("alt", alt)
29263	c.urlParams_.Set("prettyPrint", "false")
29264	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/combinedAudiences")
29265	urls += "?" + c.urlParams_.Encode()
29266	req, err := http.NewRequest("GET", urls, body)
29267	if err != nil {
29268		return nil, err
29269	}
29270	req.Header = reqHeaders
29271	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29272}
29273
29274// Do executes the "displayvideo.combinedAudiences.list" call.
29275// Exactly one of *ListCombinedAudiencesResponse or error will be
29276// non-nil. Any non-2xx status code is an error. Response headers are in
29277// either *ListCombinedAudiencesResponse.ServerResponse.Header or (if a
29278// response was returned at all) in error.(*googleapi.Error).Header. Use
29279// googleapi.IsNotModified to check whether the returned error was
29280// because http.StatusNotModified was returned.
29281func (c *CombinedAudiencesListCall) Do(opts ...googleapi.CallOption) (*ListCombinedAudiencesResponse, error) {
29282	gensupport.SetOptions(c.urlParams_, opts...)
29283	res, err := c.doRequest("json")
29284	if res != nil && res.StatusCode == http.StatusNotModified {
29285		if res.Body != nil {
29286			res.Body.Close()
29287		}
29288		return nil, &googleapi.Error{
29289			Code:   res.StatusCode,
29290			Header: res.Header,
29291		}
29292	}
29293	if err != nil {
29294		return nil, err
29295	}
29296	defer googleapi.CloseBody(res)
29297	if err := googleapi.CheckResponse(res); err != nil {
29298		return nil, err
29299	}
29300	ret := &ListCombinedAudiencesResponse{
29301		ServerResponse: googleapi.ServerResponse{
29302			Header:         res.Header,
29303			HTTPStatusCode: res.StatusCode,
29304		},
29305	}
29306	target := &ret
29307	if err := gensupport.DecodeResponse(target, res); err != nil {
29308		return nil, err
29309	}
29310	return ret, nil
29311	// {
29312	//   "description": "Lists combined audiences. The order is defined by the order_by parameter.",
29313	//   "flatPath": "v1/combinedAudiences",
29314	//   "httpMethod": "GET",
29315	//   "id": "displayvideo.combinedAudiences.list",
29316	//   "parameterOrder": [],
29317	//   "parameters": {
29318	//     "advertiserId": {
29319	//       "description": "The ID of the advertiser that has access to the fetched combined audiences.",
29320	//       "format": "int64",
29321	//       "location": "query",
29322	//       "type": "string"
29323	//     },
29324	//     "filter": {
29325	//       "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.",
29326	//       "location": "query",
29327	//       "type": "string"
29328	//     },
29329	//     "orderBy": {
29330	//       "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`.",
29331	//       "location": "query",
29332	//       "type": "string"
29333	//     },
29334	//     "pageSize": {
29335	//       "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.",
29336	//       "format": "int32",
29337	//       "location": "query",
29338	//       "type": "integer"
29339	//     },
29340	//     "pageToken": {
29341	//       "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.",
29342	//       "location": "query",
29343	//       "type": "string"
29344	//     },
29345	//     "partnerId": {
29346	//       "description": "The ID of the partner that has access to the fetched combined audiences.",
29347	//       "format": "int64",
29348	//       "location": "query",
29349	//       "type": "string"
29350	//     }
29351	//   },
29352	//   "path": "v1/combinedAudiences",
29353	//   "response": {
29354	//     "$ref": "ListCombinedAudiencesResponse"
29355	//   },
29356	//   "scopes": [
29357	//     "https://www.googleapis.com/auth/display-video"
29358	//   ]
29359	// }
29360
29361}
29362
29363// Pages invokes f for each page of results.
29364// A non-nil error returned from f will halt the iteration.
29365// The provided context supersedes any context provided to the Context method.
29366func (c *CombinedAudiencesListCall) Pages(ctx context.Context, f func(*ListCombinedAudiencesResponse) error) error {
29367	c.ctx_ = ctx
29368	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
29369	for {
29370		x, err := c.Do()
29371		if err != nil {
29372			return err
29373		}
29374		if err := f(x); err != nil {
29375			return err
29376		}
29377		if x.NextPageToken == "" {
29378			return nil
29379		}
29380		c.PageToken(x.NextPageToken)
29381	}
29382}
29383
29384// method id "displayvideo.customBiddingAlgorithms.get":
29385
29386type CustomBiddingAlgorithmsGetCall struct {
29387	s                        *Service
29388	customBiddingAlgorithmId int64
29389	urlParams_               gensupport.URLParams
29390	ifNoneMatch_             string
29391	ctx_                     context.Context
29392	header_                  http.Header
29393}
29394
29395// Get: Gets a custom bidding algorithm.
29396//
29397// - customBiddingAlgorithmId: The ID of the custom bidding algorithm to
29398//   fetch.
29399func (r *CustomBiddingAlgorithmsService) Get(customBiddingAlgorithmId int64) *CustomBiddingAlgorithmsGetCall {
29400	c := &CustomBiddingAlgorithmsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29401	c.customBiddingAlgorithmId = customBiddingAlgorithmId
29402	return c
29403}
29404
29405// AdvertiserId sets the optional parameter "advertiserId": The ID of
29406// the DV360 partner that has access to the custom bidding algorithm.
29407func (c *CustomBiddingAlgorithmsGetCall) AdvertiserId(advertiserId int64) *CustomBiddingAlgorithmsGetCall {
29408	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
29409	return c
29410}
29411
29412// PartnerId sets the optional parameter "partnerId": The ID of the
29413// DV360 partner that has access to the custom bidding algorithm.
29414func (c *CustomBiddingAlgorithmsGetCall) PartnerId(partnerId int64) *CustomBiddingAlgorithmsGetCall {
29415	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
29416	return c
29417}
29418
29419// Fields allows partial responses to be retrieved. See
29420// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29421// for more information.
29422func (c *CustomBiddingAlgorithmsGetCall) Fields(s ...googleapi.Field) *CustomBiddingAlgorithmsGetCall {
29423	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29424	return c
29425}
29426
29427// IfNoneMatch sets the optional parameter which makes the operation
29428// fail if the object's ETag matches the given value. This is useful for
29429// getting updates only after the object has changed since the last
29430// request. Use googleapi.IsNotModified to check whether the response
29431// error from Do is the result of In-None-Match.
29432func (c *CustomBiddingAlgorithmsGetCall) IfNoneMatch(entityTag string) *CustomBiddingAlgorithmsGetCall {
29433	c.ifNoneMatch_ = entityTag
29434	return c
29435}
29436
29437// Context sets the context to be used in this call's Do method. Any
29438// pending HTTP request will be aborted if the provided context is
29439// canceled.
29440func (c *CustomBiddingAlgorithmsGetCall) Context(ctx context.Context) *CustomBiddingAlgorithmsGetCall {
29441	c.ctx_ = ctx
29442	return c
29443}
29444
29445// Header returns an http.Header that can be modified by the caller to
29446// add HTTP headers to the request.
29447func (c *CustomBiddingAlgorithmsGetCall) Header() http.Header {
29448	if c.header_ == nil {
29449		c.header_ = make(http.Header)
29450	}
29451	return c.header_
29452}
29453
29454func (c *CustomBiddingAlgorithmsGetCall) doRequest(alt string) (*http.Response, error) {
29455	reqHeaders := make(http.Header)
29456	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
29457	for k, v := range c.header_ {
29458		reqHeaders[k] = v
29459	}
29460	reqHeaders.Set("User-Agent", c.s.userAgent())
29461	if c.ifNoneMatch_ != "" {
29462		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
29463	}
29464	var body io.Reader = nil
29465	c.urlParams_.Set("alt", alt)
29466	c.urlParams_.Set("prettyPrint", "false")
29467	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}")
29468	urls += "?" + c.urlParams_.Encode()
29469	req, err := http.NewRequest("GET", urls, body)
29470	if err != nil {
29471		return nil, err
29472	}
29473	req.Header = reqHeaders
29474	googleapi.Expand(req.URL, map[string]string{
29475		"customBiddingAlgorithmId": strconv.FormatInt(c.customBiddingAlgorithmId, 10),
29476	})
29477	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29478}
29479
29480// Do executes the "displayvideo.customBiddingAlgorithms.get" call.
29481// Exactly one of *CustomBiddingAlgorithm or error will be non-nil. Any
29482// non-2xx status code is an error. Response headers are in either
29483// *CustomBiddingAlgorithm.ServerResponse.Header or (if a response was
29484// returned at all) in error.(*googleapi.Error).Header. Use
29485// googleapi.IsNotModified to check whether the returned error was
29486// because http.StatusNotModified was returned.
29487func (c *CustomBiddingAlgorithmsGetCall) Do(opts ...googleapi.CallOption) (*CustomBiddingAlgorithm, error) {
29488	gensupport.SetOptions(c.urlParams_, opts...)
29489	res, err := c.doRequest("json")
29490	if res != nil && res.StatusCode == http.StatusNotModified {
29491		if res.Body != nil {
29492			res.Body.Close()
29493		}
29494		return nil, &googleapi.Error{
29495			Code:   res.StatusCode,
29496			Header: res.Header,
29497		}
29498	}
29499	if err != nil {
29500		return nil, err
29501	}
29502	defer googleapi.CloseBody(res)
29503	if err := googleapi.CheckResponse(res); err != nil {
29504		return nil, err
29505	}
29506	ret := &CustomBiddingAlgorithm{
29507		ServerResponse: googleapi.ServerResponse{
29508			Header:         res.Header,
29509			HTTPStatusCode: res.StatusCode,
29510		},
29511	}
29512	target := &ret
29513	if err := gensupport.DecodeResponse(target, res); err != nil {
29514		return nil, err
29515	}
29516	return ret, nil
29517	// {
29518	//   "description": "Gets a custom bidding algorithm.",
29519	//   "flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}",
29520	//   "httpMethod": "GET",
29521	//   "id": "displayvideo.customBiddingAlgorithms.get",
29522	//   "parameterOrder": [
29523	//     "customBiddingAlgorithmId"
29524	//   ],
29525	//   "parameters": {
29526	//     "advertiserId": {
29527	//       "description": "The ID of the DV360 partner that has access to the custom bidding algorithm.",
29528	//       "format": "int64",
29529	//       "location": "query",
29530	//       "type": "string"
29531	//     },
29532	//     "customBiddingAlgorithmId": {
29533	//       "description": "Required. The ID of the custom bidding algorithm to fetch.",
29534	//       "format": "int64",
29535	//       "location": "path",
29536	//       "pattern": "^[^/]+$",
29537	//       "required": true,
29538	//       "type": "string"
29539	//     },
29540	//     "partnerId": {
29541	//       "description": "The ID of the DV360 partner that has access to the custom bidding algorithm.",
29542	//       "format": "int64",
29543	//       "location": "query",
29544	//       "type": "string"
29545	//     }
29546	//   },
29547	//   "path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}",
29548	//   "response": {
29549	//     "$ref": "CustomBiddingAlgorithm"
29550	//   },
29551	//   "scopes": [
29552	//     "https://www.googleapis.com/auth/display-video"
29553	//   ]
29554	// }
29555
29556}
29557
29558// method id "displayvideo.customBiddingAlgorithms.list":
29559
29560type CustomBiddingAlgorithmsListCall struct {
29561	s            *Service
29562	urlParams_   gensupport.URLParams
29563	ifNoneMatch_ string
29564	ctx_         context.Context
29565	header_      http.Header
29566}
29567
29568// List: Lists custom bidding algorithms that are accessible to the
29569// current user and can be used in bidding stratgies. The order is
29570// defined by the order_by parameter.
29571func (r *CustomBiddingAlgorithmsService) List() *CustomBiddingAlgorithmsListCall {
29572	c := &CustomBiddingAlgorithmsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29573	return c
29574}
29575
29576// AdvertiserId sets the optional parameter "advertiserId": The ID of
29577// the DV360 advertiser that has access to the custom bidding algorithm.
29578func (c *CustomBiddingAlgorithmsListCall) AdvertiserId(advertiserId int64) *CustomBiddingAlgorithmsListCall {
29579	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
29580	return c
29581}
29582
29583// Filter sets the optional parameter "filter": Allows filtering by
29584// custom bidding algorithm fields. Supported syntax: * Filter
29585// expressions are made up of one or more restrictions. * Restrictions
29586// can be combined by `AND`. A sequence of restrictions * implicitly
29587// uses `AND`. * A restriction has the form of `{field} {operator}
29588// {value}`. * The operator must be `CONTAINS (:)` or `EQUALS (=)`. *
29589// The operator must be `CONTAINS (:)` for the following field: -
29590// `displayName` * The operator must be `EQUALS (=)` for the following
29591// field: - `customBiddingAlgorithmType` * For `displayName`, the value
29592// is a string. We return all custom bidding algorithms whose
29593// display_name contains such string. * For
29594// `customBiddingAlgorithmType`, the value is a string. We return all
29595// algorithms whose custom_bidding_algorithm_type is equal to the given
29596// type. Examples: * All custom bidding algorithms for which the display
29597// name contains "politics": `displayName:politics`. * All custom
29598// bidding algorithms for which the type is "SCRIPT_BASED":
29599// `customBiddingAlgorithmType=SCRIPT_BASED` The length of this field
29600// should be no more than 500 characters.
29601func (c *CustomBiddingAlgorithmsListCall) Filter(filter string) *CustomBiddingAlgorithmsListCall {
29602	c.urlParams_.Set("filter", filter)
29603	return c
29604}
29605
29606// OrderBy sets the optional parameter "orderBy": Field by which to sort
29607// the list. Acceptable values are: * `displayName` (default) The
29608// default sorting order is ascending. To specify descending order for a
29609// field, a suffix "desc" should be added to the field name. Example:
29610// `displayName desc`.
29611func (c *CustomBiddingAlgorithmsListCall) OrderBy(orderBy string) *CustomBiddingAlgorithmsListCall {
29612	c.urlParams_.Set("orderBy", orderBy)
29613	return c
29614}
29615
29616// PageSize sets the optional parameter "pageSize": Requested page size.
29617// Must be between `1` and `100`. If unspecified will default to `100`.
29618// Returns error code `INVALID_ARGUMENT` if an invalid value is
29619// specified.
29620func (c *CustomBiddingAlgorithmsListCall) PageSize(pageSize int64) *CustomBiddingAlgorithmsListCall {
29621	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
29622	return c
29623}
29624
29625// PageToken sets the optional parameter "pageToken": A token
29626// identifying a page of results the server should return. Typically,
29627// this is the value of next_page_token returned from the previous call
29628// to `ListCustomBiddingAlgorithms` method. If not specified, the first
29629// page of results will be returned.
29630func (c *CustomBiddingAlgorithmsListCall) PageToken(pageToken string) *CustomBiddingAlgorithmsListCall {
29631	c.urlParams_.Set("pageToken", pageToken)
29632	return c
29633}
29634
29635// PartnerId sets the optional parameter "partnerId": The ID of the
29636// DV360 partner that has access to the custom bidding algorithm.
29637func (c *CustomBiddingAlgorithmsListCall) PartnerId(partnerId int64) *CustomBiddingAlgorithmsListCall {
29638	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
29639	return c
29640}
29641
29642// Fields allows partial responses to be retrieved. See
29643// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29644// for more information.
29645func (c *CustomBiddingAlgorithmsListCall) Fields(s ...googleapi.Field) *CustomBiddingAlgorithmsListCall {
29646	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29647	return c
29648}
29649
29650// IfNoneMatch sets the optional parameter which makes the operation
29651// fail if the object's ETag matches the given value. This is useful for
29652// getting updates only after the object has changed since the last
29653// request. Use googleapi.IsNotModified to check whether the response
29654// error from Do is the result of In-None-Match.
29655func (c *CustomBiddingAlgorithmsListCall) IfNoneMatch(entityTag string) *CustomBiddingAlgorithmsListCall {
29656	c.ifNoneMatch_ = entityTag
29657	return c
29658}
29659
29660// Context sets the context to be used in this call's Do method. Any
29661// pending HTTP request will be aborted if the provided context is
29662// canceled.
29663func (c *CustomBiddingAlgorithmsListCall) Context(ctx context.Context) *CustomBiddingAlgorithmsListCall {
29664	c.ctx_ = ctx
29665	return c
29666}
29667
29668// Header returns an http.Header that can be modified by the caller to
29669// add HTTP headers to the request.
29670func (c *CustomBiddingAlgorithmsListCall) Header() http.Header {
29671	if c.header_ == nil {
29672		c.header_ = make(http.Header)
29673	}
29674	return c.header_
29675}
29676
29677func (c *CustomBiddingAlgorithmsListCall) doRequest(alt string) (*http.Response, error) {
29678	reqHeaders := make(http.Header)
29679	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
29680	for k, v := range c.header_ {
29681		reqHeaders[k] = v
29682	}
29683	reqHeaders.Set("User-Agent", c.s.userAgent())
29684	if c.ifNoneMatch_ != "" {
29685		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
29686	}
29687	var body io.Reader = nil
29688	c.urlParams_.Set("alt", alt)
29689	c.urlParams_.Set("prettyPrint", "false")
29690	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/customBiddingAlgorithms")
29691	urls += "?" + c.urlParams_.Encode()
29692	req, err := http.NewRequest("GET", urls, body)
29693	if err != nil {
29694		return nil, err
29695	}
29696	req.Header = reqHeaders
29697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29698}
29699
29700// Do executes the "displayvideo.customBiddingAlgorithms.list" call.
29701// Exactly one of *ListCustomBiddingAlgorithmsResponse or error will be
29702// non-nil. Any non-2xx status code is an error. Response headers are in
29703// either *ListCustomBiddingAlgorithmsResponse.ServerResponse.Header or
29704// (if a response was returned at all) in
29705// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
29706// whether the returned error was because http.StatusNotModified was
29707// returned.
29708func (c *CustomBiddingAlgorithmsListCall) Do(opts ...googleapi.CallOption) (*ListCustomBiddingAlgorithmsResponse, error) {
29709	gensupport.SetOptions(c.urlParams_, opts...)
29710	res, err := c.doRequest("json")
29711	if res != nil && res.StatusCode == http.StatusNotModified {
29712		if res.Body != nil {
29713			res.Body.Close()
29714		}
29715		return nil, &googleapi.Error{
29716			Code:   res.StatusCode,
29717			Header: res.Header,
29718		}
29719	}
29720	if err != nil {
29721		return nil, err
29722	}
29723	defer googleapi.CloseBody(res)
29724	if err := googleapi.CheckResponse(res); err != nil {
29725		return nil, err
29726	}
29727	ret := &ListCustomBiddingAlgorithmsResponse{
29728		ServerResponse: googleapi.ServerResponse{
29729			Header:         res.Header,
29730			HTTPStatusCode: res.StatusCode,
29731		},
29732	}
29733	target := &ret
29734	if err := gensupport.DecodeResponse(target, res); err != nil {
29735		return nil, err
29736	}
29737	return ret, nil
29738	// {
29739	//   "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.",
29740	//   "flatPath": "v1/customBiddingAlgorithms",
29741	//   "httpMethod": "GET",
29742	//   "id": "displayvideo.customBiddingAlgorithms.list",
29743	//   "parameterOrder": [],
29744	//   "parameters": {
29745	//     "advertiserId": {
29746	//       "description": "The ID of the DV360 advertiser that has access to the custom bidding algorithm.",
29747	//       "format": "int64",
29748	//       "location": "query",
29749	//       "type": "string"
29750	//     },
29751	//     "filter": {
29752	//       "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` * 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. 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` The length of this field should be no more than 500 characters.",
29753	//       "location": "query",
29754	//       "type": "string"
29755	//     },
29756	//     "orderBy": {
29757	//       "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`.",
29758	//       "location": "query",
29759	//       "type": "string"
29760	//     },
29761	//     "pageSize": {
29762	//       "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.",
29763	//       "format": "int32",
29764	//       "location": "query",
29765	//       "type": "integer"
29766	//     },
29767	//     "pageToken": {
29768	//       "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.",
29769	//       "location": "query",
29770	//       "type": "string"
29771	//     },
29772	//     "partnerId": {
29773	//       "description": "The ID of the DV360 partner that has access to the custom bidding algorithm.",
29774	//       "format": "int64",
29775	//       "location": "query",
29776	//       "type": "string"
29777	//     }
29778	//   },
29779	//   "path": "v1/customBiddingAlgorithms",
29780	//   "response": {
29781	//     "$ref": "ListCustomBiddingAlgorithmsResponse"
29782	//   },
29783	//   "scopes": [
29784	//     "https://www.googleapis.com/auth/display-video"
29785	//   ]
29786	// }
29787
29788}
29789
29790// Pages invokes f for each page of results.
29791// A non-nil error returned from f will halt the iteration.
29792// The provided context supersedes any context provided to the Context method.
29793func (c *CustomBiddingAlgorithmsListCall) Pages(ctx context.Context, f func(*ListCustomBiddingAlgorithmsResponse) error) error {
29794	c.ctx_ = ctx
29795	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
29796	for {
29797		x, err := c.Do()
29798		if err != nil {
29799			return err
29800		}
29801		if err := f(x); err != nil {
29802			return err
29803		}
29804		if x.NextPageToken == "" {
29805			return nil
29806		}
29807		c.PageToken(x.NextPageToken)
29808	}
29809}
29810
29811// method id "displayvideo.customLists.get":
29812
29813type CustomListsGetCall struct {
29814	s            *Service
29815	customListId int64
29816	urlParams_   gensupport.URLParams
29817	ifNoneMatch_ string
29818	ctx_         context.Context
29819	header_      http.Header
29820}
29821
29822// Get: Gets a custom list.
29823//
29824// - customListId: The ID of the custom list to fetch.
29825func (r *CustomListsService) Get(customListId int64) *CustomListsGetCall {
29826	c := &CustomListsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29827	c.customListId = customListId
29828	return c
29829}
29830
29831// AdvertiserId sets the optional parameter "advertiserId": The ID of
29832// the DV360 advertiser that has access to the fetched custom lists.
29833func (c *CustomListsGetCall) AdvertiserId(advertiserId int64) *CustomListsGetCall {
29834	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
29835	return c
29836}
29837
29838// Fields allows partial responses to be retrieved. See
29839// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29840// for more information.
29841func (c *CustomListsGetCall) Fields(s ...googleapi.Field) *CustomListsGetCall {
29842	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29843	return c
29844}
29845
29846// IfNoneMatch sets the optional parameter which makes the operation
29847// fail if the object's ETag matches the given value. This is useful for
29848// getting updates only after the object has changed since the last
29849// request. Use googleapi.IsNotModified to check whether the response
29850// error from Do is the result of In-None-Match.
29851func (c *CustomListsGetCall) IfNoneMatch(entityTag string) *CustomListsGetCall {
29852	c.ifNoneMatch_ = entityTag
29853	return c
29854}
29855
29856// Context sets the context to be used in this call's Do method. Any
29857// pending HTTP request will be aborted if the provided context is
29858// canceled.
29859func (c *CustomListsGetCall) Context(ctx context.Context) *CustomListsGetCall {
29860	c.ctx_ = ctx
29861	return c
29862}
29863
29864// Header returns an http.Header that can be modified by the caller to
29865// add HTTP headers to the request.
29866func (c *CustomListsGetCall) Header() http.Header {
29867	if c.header_ == nil {
29868		c.header_ = make(http.Header)
29869	}
29870	return c.header_
29871}
29872
29873func (c *CustomListsGetCall) doRequest(alt string) (*http.Response, error) {
29874	reqHeaders := make(http.Header)
29875	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
29876	for k, v := range c.header_ {
29877		reqHeaders[k] = v
29878	}
29879	reqHeaders.Set("User-Agent", c.s.userAgent())
29880	if c.ifNoneMatch_ != "" {
29881		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
29882	}
29883	var body io.Reader = nil
29884	c.urlParams_.Set("alt", alt)
29885	c.urlParams_.Set("prettyPrint", "false")
29886	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/customLists/{+customListId}")
29887	urls += "?" + c.urlParams_.Encode()
29888	req, err := http.NewRequest("GET", urls, body)
29889	if err != nil {
29890		return nil, err
29891	}
29892	req.Header = reqHeaders
29893	googleapi.Expand(req.URL, map[string]string{
29894		"customListId": strconv.FormatInt(c.customListId, 10),
29895	})
29896	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29897}
29898
29899// Do executes the "displayvideo.customLists.get" call.
29900// Exactly one of *CustomList or error will be non-nil. Any non-2xx
29901// status code is an error. Response headers are in either
29902// *CustomList.ServerResponse.Header or (if a response was returned at
29903// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
29904// to check whether the returned error was because
29905// http.StatusNotModified was returned.
29906func (c *CustomListsGetCall) Do(opts ...googleapi.CallOption) (*CustomList, error) {
29907	gensupport.SetOptions(c.urlParams_, opts...)
29908	res, err := c.doRequest("json")
29909	if res != nil && res.StatusCode == http.StatusNotModified {
29910		if res.Body != nil {
29911			res.Body.Close()
29912		}
29913		return nil, &googleapi.Error{
29914			Code:   res.StatusCode,
29915			Header: res.Header,
29916		}
29917	}
29918	if err != nil {
29919		return nil, err
29920	}
29921	defer googleapi.CloseBody(res)
29922	if err := googleapi.CheckResponse(res); err != nil {
29923		return nil, err
29924	}
29925	ret := &CustomList{
29926		ServerResponse: googleapi.ServerResponse{
29927			Header:         res.Header,
29928			HTTPStatusCode: res.StatusCode,
29929		},
29930	}
29931	target := &ret
29932	if err := gensupport.DecodeResponse(target, res); err != nil {
29933		return nil, err
29934	}
29935	return ret, nil
29936	// {
29937	//   "description": "Gets a custom list.",
29938	//   "flatPath": "v1/customLists/{customListsId}",
29939	//   "httpMethod": "GET",
29940	//   "id": "displayvideo.customLists.get",
29941	//   "parameterOrder": [
29942	//     "customListId"
29943	//   ],
29944	//   "parameters": {
29945	//     "advertiserId": {
29946	//       "description": "The ID of the DV360 advertiser that has access to the fetched custom lists.",
29947	//       "format": "int64",
29948	//       "location": "query",
29949	//       "type": "string"
29950	//     },
29951	//     "customListId": {
29952	//       "description": "Required. The ID of the custom list to fetch.",
29953	//       "format": "int64",
29954	//       "location": "path",
29955	//       "pattern": "^[^/]+$",
29956	//       "required": true,
29957	//       "type": "string"
29958	//     }
29959	//   },
29960	//   "path": "v1/customLists/{+customListId}",
29961	//   "response": {
29962	//     "$ref": "CustomList"
29963	//   },
29964	//   "scopes": [
29965	//     "https://www.googleapis.com/auth/display-video"
29966	//   ]
29967	// }
29968
29969}
29970
29971// method id "displayvideo.customLists.list":
29972
29973type CustomListsListCall struct {
29974	s            *Service
29975	urlParams_   gensupport.URLParams
29976	ifNoneMatch_ string
29977	ctx_         context.Context
29978	header_      http.Header
29979}
29980
29981// List: Lists custom lists. The order is defined by the order_by
29982// parameter.
29983func (r *CustomListsService) List() *CustomListsListCall {
29984	c := &CustomListsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29985	return c
29986}
29987
29988// AdvertiserId sets the optional parameter "advertiserId": The ID of
29989// the DV360 advertiser that has access to the fetched custom lists.
29990func (c *CustomListsListCall) AdvertiserId(advertiserId int64) *CustomListsListCall {
29991	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
29992	return c
29993}
29994
29995// Filter sets the optional parameter "filter": Allows filtering by
29996// custom list fields. Supported syntax: * Filter expressions for custom
29997// lists currently can only contain at most one restriction. * A
29998// restriction has the form of `{field} {operator} {value}`. * The
29999// operator must be `CONTAINS (:)`. * Supported fields: - `displayName`
30000// Examples: * All custom lists for which the display name contains
30001// "Google": `displayName : "Google". The length of this field should
30002// be no more than 500 characters.
30003func (c *CustomListsListCall) Filter(filter string) *CustomListsListCall {
30004	c.urlParams_.Set("filter", filter)
30005	return c
30006}
30007
30008// OrderBy sets the optional parameter "orderBy": Field by which to sort
30009// the list. Acceptable values are: * `customListId` (default) *
30010// `displayName` The default sorting order is ascending. To specify
30011// descending order for a field, a suffix "desc" should be added to the
30012// field name. Example: `displayName desc`.
30013func (c *CustomListsListCall) OrderBy(orderBy string) *CustomListsListCall {
30014	c.urlParams_.Set("orderBy", orderBy)
30015	return c
30016}
30017
30018// PageSize sets the optional parameter "pageSize": Requested page size.
30019// Must be between `1` and `100`. If unspecified will default to `100`.
30020// Returns error code `INVALID_ARGUMENT` if an invalid value is
30021// specified.
30022func (c *CustomListsListCall) PageSize(pageSize int64) *CustomListsListCall {
30023	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
30024	return c
30025}
30026
30027// PageToken sets the optional parameter "pageToken": A token
30028// identifying a page of results the server should return. Typically,
30029// this is the value of next_page_token returned from the previous call
30030// to `ListCustomLists` method. If not specified, the first page of
30031// results will be returned.
30032func (c *CustomListsListCall) PageToken(pageToken string) *CustomListsListCall {
30033	c.urlParams_.Set("pageToken", pageToken)
30034	return c
30035}
30036
30037// Fields allows partial responses to be retrieved. See
30038// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30039// for more information.
30040func (c *CustomListsListCall) Fields(s ...googleapi.Field) *CustomListsListCall {
30041	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30042	return c
30043}
30044
30045// IfNoneMatch sets the optional parameter which makes the operation
30046// fail if the object's ETag matches the given value. This is useful for
30047// getting updates only after the object has changed since the last
30048// request. Use googleapi.IsNotModified to check whether the response
30049// error from Do is the result of In-None-Match.
30050func (c *CustomListsListCall) IfNoneMatch(entityTag string) *CustomListsListCall {
30051	c.ifNoneMatch_ = entityTag
30052	return c
30053}
30054
30055// Context sets the context to be used in this call's Do method. Any
30056// pending HTTP request will be aborted if the provided context is
30057// canceled.
30058func (c *CustomListsListCall) Context(ctx context.Context) *CustomListsListCall {
30059	c.ctx_ = ctx
30060	return c
30061}
30062
30063// Header returns an http.Header that can be modified by the caller to
30064// add HTTP headers to the request.
30065func (c *CustomListsListCall) Header() http.Header {
30066	if c.header_ == nil {
30067		c.header_ = make(http.Header)
30068	}
30069	return c.header_
30070}
30071
30072func (c *CustomListsListCall) doRequest(alt string) (*http.Response, error) {
30073	reqHeaders := make(http.Header)
30074	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
30075	for k, v := range c.header_ {
30076		reqHeaders[k] = v
30077	}
30078	reqHeaders.Set("User-Agent", c.s.userAgent())
30079	if c.ifNoneMatch_ != "" {
30080		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30081	}
30082	var body io.Reader = nil
30083	c.urlParams_.Set("alt", alt)
30084	c.urlParams_.Set("prettyPrint", "false")
30085	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/customLists")
30086	urls += "?" + c.urlParams_.Encode()
30087	req, err := http.NewRequest("GET", urls, body)
30088	if err != nil {
30089		return nil, err
30090	}
30091	req.Header = reqHeaders
30092	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30093}
30094
30095// Do executes the "displayvideo.customLists.list" call.
30096// Exactly one of *ListCustomListsResponse or error will be non-nil. Any
30097// non-2xx status code is an error. Response headers are in either
30098// *ListCustomListsResponse.ServerResponse.Header or (if a response was
30099// returned at all) in error.(*googleapi.Error).Header. Use
30100// googleapi.IsNotModified to check whether the returned error was
30101// because http.StatusNotModified was returned.
30102func (c *CustomListsListCall) Do(opts ...googleapi.CallOption) (*ListCustomListsResponse, error) {
30103	gensupport.SetOptions(c.urlParams_, opts...)
30104	res, err := c.doRequest("json")
30105	if res != nil && res.StatusCode == http.StatusNotModified {
30106		if res.Body != nil {
30107			res.Body.Close()
30108		}
30109		return nil, &googleapi.Error{
30110			Code:   res.StatusCode,
30111			Header: res.Header,
30112		}
30113	}
30114	if err != nil {
30115		return nil, err
30116	}
30117	defer googleapi.CloseBody(res)
30118	if err := googleapi.CheckResponse(res); err != nil {
30119		return nil, err
30120	}
30121	ret := &ListCustomListsResponse{
30122		ServerResponse: googleapi.ServerResponse{
30123			Header:         res.Header,
30124			HTTPStatusCode: res.StatusCode,
30125		},
30126	}
30127	target := &ret
30128	if err := gensupport.DecodeResponse(target, res); err != nil {
30129		return nil, err
30130	}
30131	return ret, nil
30132	// {
30133	//   "description": "Lists custom lists. The order is defined by the order_by parameter.",
30134	//   "flatPath": "v1/customLists",
30135	//   "httpMethod": "GET",
30136	//   "id": "displayvideo.customLists.list",
30137	//   "parameterOrder": [],
30138	//   "parameters": {
30139	//     "advertiserId": {
30140	//       "description": "The ID of the DV360 advertiser that has access to the fetched custom lists.",
30141	//       "format": "int64",
30142	//       "location": "query",
30143	//       "type": "string"
30144	//     },
30145	//     "filter": {
30146	//       "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.",
30147	//       "location": "query",
30148	//       "type": "string"
30149	//     },
30150	//     "orderBy": {
30151	//       "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`.",
30152	//       "location": "query",
30153	//       "type": "string"
30154	//     },
30155	//     "pageSize": {
30156	//       "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.",
30157	//       "format": "int32",
30158	//       "location": "query",
30159	//       "type": "integer"
30160	//     },
30161	//     "pageToken": {
30162	//       "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.",
30163	//       "location": "query",
30164	//       "type": "string"
30165	//     }
30166	//   },
30167	//   "path": "v1/customLists",
30168	//   "response": {
30169	//     "$ref": "ListCustomListsResponse"
30170	//   },
30171	//   "scopes": [
30172	//     "https://www.googleapis.com/auth/display-video"
30173	//   ]
30174	// }
30175
30176}
30177
30178// Pages invokes f for each page of results.
30179// A non-nil error returned from f will halt the iteration.
30180// The provided context supersedes any context provided to the Context method.
30181func (c *CustomListsListCall) Pages(ctx context.Context, f func(*ListCustomListsResponse) error) error {
30182	c.ctx_ = ctx
30183	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
30184	for {
30185		x, err := c.Do()
30186		if err != nil {
30187			return err
30188		}
30189		if err := f(x); err != nil {
30190			return err
30191		}
30192		if x.NextPageToken == "" {
30193			return nil
30194		}
30195		c.PageToken(x.NextPageToken)
30196	}
30197}
30198
30199// method id "displayvideo.firstAndThirdPartyAudiences.get":
30200
30201type FirstAndThirdPartyAudiencesGetCall struct {
30202	s                            *Service
30203	firstAndThirdPartyAudienceId int64
30204	urlParams_                   gensupport.URLParams
30205	ifNoneMatch_                 string
30206	ctx_                         context.Context
30207	header_                      http.Header
30208}
30209
30210// Get: Gets a first and third party audience.
30211//
30212// - firstAndThirdPartyAudienceId: The ID of the first and third party
30213//   audience to fetch.
30214func (r *FirstAndThirdPartyAudiencesService) Get(firstAndThirdPartyAudienceId int64) *FirstAndThirdPartyAudiencesGetCall {
30215	c := &FirstAndThirdPartyAudiencesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30216	c.firstAndThirdPartyAudienceId = firstAndThirdPartyAudienceId
30217	return c
30218}
30219
30220// AdvertiserId sets the optional parameter "advertiserId": The ID of
30221// the advertiser that has access to the fetched first and third party
30222// audience.
30223func (c *FirstAndThirdPartyAudiencesGetCall) AdvertiserId(advertiserId int64) *FirstAndThirdPartyAudiencesGetCall {
30224	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
30225	return c
30226}
30227
30228// PartnerId sets the optional parameter "partnerId": The ID of the
30229// partner that has access to the fetched first and third party
30230// audience.
30231func (c *FirstAndThirdPartyAudiencesGetCall) PartnerId(partnerId int64) *FirstAndThirdPartyAudiencesGetCall {
30232	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
30233	return c
30234}
30235
30236// Fields allows partial responses to be retrieved. See
30237// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30238// for more information.
30239func (c *FirstAndThirdPartyAudiencesGetCall) Fields(s ...googleapi.Field) *FirstAndThirdPartyAudiencesGetCall {
30240	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30241	return c
30242}
30243
30244// IfNoneMatch sets the optional parameter which makes the operation
30245// fail if the object's ETag matches the given value. This is useful for
30246// getting updates only after the object has changed since the last
30247// request. Use googleapi.IsNotModified to check whether the response
30248// error from Do is the result of In-None-Match.
30249func (c *FirstAndThirdPartyAudiencesGetCall) IfNoneMatch(entityTag string) *FirstAndThirdPartyAudiencesGetCall {
30250	c.ifNoneMatch_ = entityTag
30251	return c
30252}
30253
30254// Context sets the context to be used in this call's Do method. Any
30255// pending HTTP request will be aborted if the provided context is
30256// canceled.
30257func (c *FirstAndThirdPartyAudiencesGetCall) Context(ctx context.Context) *FirstAndThirdPartyAudiencesGetCall {
30258	c.ctx_ = ctx
30259	return c
30260}
30261
30262// Header returns an http.Header that can be modified by the caller to
30263// add HTTP headers to the request.
30264func (c *FirstAndThirdPartyAudiencesGetCall) Header() http.Header {
30265	if c.header_ == nil {
30266		c.header_ = make(http.Header)
30267	}
30268	return c.header_
30269}
30270
30271func (c *FirstAndThirdPartyAudiencesGetCall) doRequest(alt string) (*http.Response, error) {
30272	reqHeaders := make(http.Header)
30273	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
30274	for k, v := range c.header_ {
30275		reqHeaders[k] = v
30276	}
30277	reqHeaders.Set("User-Agent", c.s.userAgent())
30278	if c.ifNoneMatch_ != "" {
30279		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30280	}
30281	var body io.Reader = nil
30282	c.urlParams_.Set("alt", alt)
30283	c.urlParams_.Set("prettyPrint", "false")
30284	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}")
30285	urls += "?" + c.urlParams_.Encode()
30286	req, err := http.NewRequest("GET", urls, body)
30287	if err != nil {
30288		return nil, err
30289	}
30290	req.Header = reqHeaders
30291	googleapi.Expand(req.URL, map[string]string{
30292		"firstAndThirdPartyAudienceId": strconv.FormatInt(c.firstAndThirdPartyAudienceId, 10),
30293	})
30294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30295}
30296
30297// Do executes the "displayvideo.firstAndThirdPartyAudiences.get" call.
30298// Exactly one of *FirstAndThirdPartyAudience or error will be non-nil.
30299// Any non-2xx status code is an error. Response headers are in either
30300// *FirstAndThirdPartyAudience.ServerResponse.Header or (if a response
30301// was returned at all) in error.(*googleapi.Error).Header. Use
30302// googleapi.IsNotModified to check whether the returned error was
30303// because http.StatusNotModified was returned.
30304func (c *FirstAndThirdPartyAudiencesGetCall) Do(opts ...googleapi.CallOption) (*FirstAndThirdPartyAudience, error) {
30305	gensupport.SetOptions(c.urlParams_, opts...)
30306	res, err := c.doRequest("json")
30307	if res != nil && res.StatusCode == http.StatusNotModified {
30308		if res.Body != nil {
30309			res.Body.Close()
30310		}
30311		return nil, &googleapi.Error{
30312			Code:   res.StatusCode,
30313			Header: res.Header,
30314		}
30315	}
30316	if err != nil {
30317		return nil, err
30318	}
30319	defer googleapi.CloseBody(res)
30320	if err := googleapi.CheckResponse(res); err != nil {
30321		return nil, err
30322	}
30323	ret := &FirstAndThirdPartyAudience{
30324		ServerResponse: googleapi.ServerResponse{
30325			Header:         res.Header,
30326			HTTPStatusCode: res.StatusCode,
30327		},
30328	}
30329	target := &ret
30330	if err := gensupport.DecodeResponse(target, res); err != nil {
30331		return nil, err
30332	}
30333	return ret, nil
30334	// {
30335	//   "description": "Gets a first and third party audience.",
30336	//   "flatPath": "v1/firstAndThirdPartyAudiences/{firstAndThirdPartyAudiencesId}",
30337	//   "httpMethod": "GET",
30338	//   "id": "displayvideo.firstAndThirdPartyAudiences.get",
30339	//   "parameterOrder": [
30340	//     "firstAndThirdPartyAudienceId"
30341	//   ],
30342	//   "parameters": {
30343	//     "advertiserId": {
30344	//       "description": "The ID of the advertiser that has access to the fetched first and third party audience.",
30345	//       "format": "int64",
30346	//       "location": "query",
30347	//       "type": "string"
30348	//     },
30349	//     "firstAndThirdPartyAudienceId": {
30350	//       "description": "Required. The ID of the first and third party audience to fetch.",
30351	//       "format": "int64",
30352	//       "location": "path",
30353	//       "pattern": "^[^/]+$",
30354	//       "required": true,
30355	//       "type": "string"
30356	//     },
30357	//     "partnerId": {
30358	//       "description": "The ID of the partner that has access to the fetched first and third party audience.",
30359	//       "format": "int64",
30360	//       "location": "query",
30361	//       "type": "string"
30362	//     }
30363	//   },
30364	//   "path": "v1/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}",
30365	//   "response": {
30366	//     "$ref": "FirstAndThirdPartyAudience"
30367	//   },
30368	//   "scopes": [
30369	//     "https://www.googleapis.com/auth/display-video"
30370	//   ]
30371	// }
30372
30373}
30374
30375// method id "displayvideo.firstAndThirdPartyAudiences.list":
30376
30377type FirstAndThirdPartyAudiencesListCall struct {
30378	s            *Service
30379	urlParams_   gensupport.URLParams
30380	ifNoneMatch_ string
30381	ctx_         context.Context
30382	header_      http.Header
30383}
30384
30385// List: Lists first and third party audiences. The order is defined by
30386// the order_by parameter.
30387func (r *FirstAndThirdPartyAudiencesService) List() *FirstAndThirdPartyAudiencesListCall {
30388	c := &FirstAndThirdPartyAudiencesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30389	return c
30390}
30391
30392// AdvertiserId sets the optional parameter "advertiserId": The ID of
30393// the advertiser that has access to the fetched first and third party
30394// audiences.
30395func (c *FirstAndThirdPartyAudiencesListCall) AdvertiserId(advertiserId int64) *FirstAndThirdPartyAudiencesListCall {
30396	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
30397	return c
30398}
30399
30400// Filter sets the optional parameter "filter": Allows filtering by
30401// first and third party audience fields. Supported syntax: * Filter
30402// expressions for first and third party audiences currently can only
30403// contain at most one restriction. * A restriction has the form of
30404// `{field} {operator} {value}`. * The operator must be `CONTAINS (:)`.
30405// * Supported fields: - `displayName` Examples: * All first and third
30406// party audiences for which the display name contains "Google":
30407// `displayName : "Google". The length of this field should be no more
30408// than 500 characters.
30409func (c *FirstAndThirdPartyAudiencesListCall) Filter(filter string) *FirstAndThirdPartyAudiencesListCall {
30410	c.urlParams_.Set("filter", filter)
30411	return c
30412}
30413
30414// OrderBy sets the optional parameter "orderBy": Field by which to sort
30415// the list. Acceptable values are: * `firstAndThirdPartyAudienceId`
30416// (default) * `displayName` The default sorting order is ascending. To
30417// specify descending order for a field, a suffix "desc" should be added
30418// to the field name. Example: `displayName desc`.
30419func (c *FirstAndThirdPartyAudiencesListCall) OrderBy(orderBy string) *FirstAndThirdPartyAudiencesListCall {
30420	c.urlParams_.Set("orderBy", orderBy)
30421	return c
30422}
30423
30424// PageSize sets the optional parameter "pageSize": Requested page size.
30425// Must be between `1` and `100`. If unspecified will default to `100`.
30426// Returns error code `INVALID_ARGUMENT` if an invalid value is
30427// specified.
30428func (c *FirstAndThirdPartyAudiencesListCall) PageSize(pageSize int64) *FirstAndThirdPartyAudiencesListCall {
30429	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
30430	return c
30431}
30432
30433// PageToken sets the optional parameter "pageToken": A token
30434// identifying a page of results the server should return. Typically,
30435// this is the value of next_page_token returned from the previous call
30436// to `ListFirstAndThirdPartyAudiences` method. If not specified, the
30437// first page of results will be returned.
30438func (c *FirstAndThirdPartyAudiencesListCall) PageToken(pageToken string) *FirstAndThirdPartyAudiencesListCall {
30439	c.urlParams_.Set("pageToken", pageToken)
30440	return c
30441}
30442
30443// PartnerId sets the optional parameter "partnerId": The ID of the
30444// partner that has access to the fetched first and third party
30445// audiences.
30446func (c *FirstAndThirdPartyAudiencesListCall) PartnerId(partnerId int64) *FirstAndThirdPartyAudiencesListCall {
30447	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
30448	return c
30449}
30450
30451// Fields allows partial responses to be retrieved. See
30452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30453// for more information.
30454func (c *FirstAndThirdPartyAudiencesListCall) Fields(s ...googleapi.Field) *FirstAndThirdPartyAudiencesListCall {
30455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30456	return c
30457}
30458
30459// IfNoneMatch sets the optional parameter which makes the operation
30460// fail if the object's ETag matches the given value. This is useful for
30461// getting updates only after the object has changed since the last
30462// request. Use googleapi.IsNotModified to check whether the response
30463// error from Do is the result of In-None-Match.
30464func (c *FirstAndThirdPartyAudiencesListCall) IfNoneMatch(entityTag string) *FirstAndThirdPartyAudiencesListCall {
30465	c.ifNoneMatch_ = entityTag
30466	return c
30467}
30468
30469// Context sets the context to be used in this call's Do method. Any
30470// pending HTTP request will be aborted if the provided context is
30471// canceled.
30472func (c *FirstAndThirdPartyAudiencesListCall) Context(ctx context.Context) *FirstAndThirdPartyAudiencesListCall {
30473	c.ctx_ = ctx
30474	return c
30475}
30476
30477// Header returns an http.Header that can be modified by the caller to
30478// add HTTP headers to the request.
30479func (c *FirstAndThirdPartyAudiencesListCall) Header() http.Header {
30480	if c.header_ == nil {
30481		c.header_ = make(http.Header)
30482	}
30483	return c.header_
30484}
30485
30486func (c *FirstAndThirdPartyAudiencesListCall) doRequest(alt string) (*http.Response, error) {
30487	reqHeaders := make(http.Header)
30488	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
30489	for k, v := range c.header_ {
30490		reqHeaders[k] = v
30491	}
30492	reqHeaders.Set("User-Agent", c.s.userAgent())
30493	if c.ifNoneMatch_ != "" {
30494		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30495	}
30496	var body io.Reader = nil
30497	c.urlParams_.Set("alt", alt)
30498	c.urlParams_.Set("prettyPrint", "false")
30499	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/firstAndThirdPartyAudiences")
30500	urls += "?" + c.urlParams_.Encode()
30501	req, err := http.NewRequest("GET", urls, body)
30502	if err != nil {
30503		return nil, err
30504	}
30505	req.Header = reqHeaders
30506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30507}
30508
30509// Do executes the "displayvideo.firstAndThirdPartyAudiences.list" call.
30510// Exactly one of *ListFirstAndThirdPartyAudiencesResponse or error will
30511// be non-nil. Any non-2xx status code is an error. Response headers are
30512// in either
30513// *ListFirstAndThirdPartyAudiencesResponse.ServerResponse.Header or (if
30514// a response was returned at all) in error.(*googleapi.Error).Header.
30515// Use googleapi.IsNotModified to check whether the returned error was
30516// because http.StatusNotModified was returned.
30517func (c *FirstAndThirdPartyAudiencesListCall) Do(opts ...googleapi.CallOption) (*ListFirstAndThirdPartyAudiencesResponse, error) {
30518	gensupport.SetOptions(c.urlParams_, opts...)
30519	res, err := c.doRequest("json")
30520	if res != nil && res.StatusCode == http.StatusNotModified {
30521		if res.Body != nil {
30522			res.Body.Close()
30523		}
30524		return nil, &googleapi.Error{
30525			Code:   res.StatusCode,
30526			Header: res.Header,
30527		}
30528	}
30529	if err != nil {
30530		return nil, err
30531	}
30532	defer googleapi.CloseBody(res)
30533	if err := googleapi.CheckResponse(res); err != nil {
30534		return nil, err
30535	}
30536	ret := &ListFirstAndThirdPartyAudiencesResponse{
30537		ServerResponse: googleapi.ServerResponse{
30538			Header:         res.Header,
30539			HTTPStatusCode: res.StatusCode,
30540		},
30541	}
30542	target := &ret
30543	if err := gensupport.DecodeResponse(target, res); err != nil {
30544		return nil, err
30545	}
30546	return ret, nil
30547	// {
30548	//   "description": "Lists first and third party audiences. The order is defined by the order_by parameter.",
30549	//   "flatPath": "v1/firstAndThirdPartyAudiences",
30550	//   "httpMethod": "GET",
30551	//   "id": "displayvideo.firstAndThirdPartyAudiences.list",
30552	//   "parameterOrder": [],
30553	//   "parameters": {
30554	//     "advertiserId": {
30555	//       "description": "The ID of the advertiser that has access to the fetched first and third party audiences.",
30556	//       "format": "int64",
30557	//       "location": "query",
30558	//       "type": "string"
30559	//     },
30560	//     "filter": {
30561	//       "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.",
30562	//       "location": "query",
30563	//       "type": "string"
30564	//     },
30565	//     "orderBy": {
30566	//       "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`.",
30567	//       "location": "query",
30568	//       "type": "string"
30569	//     },
30570	//     "pageSize": {
30571	//       "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.",
30572	//       "format": "int32",
30573	//       "location": "query",
30574	//       "type": "integer"
30575	//     },
30576	//     "pageToken": {
30577	//       "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.",
30578	//       "location": "query",
30579	//       "type": "string"
30580	//     },
30581	//     "partnerId": {
30582	//       "description": "The ID of the partner that has access to the fetched first and third party audiences.",
30583	//       "format": "int64",
30584	//       "location": "query",
30585	//       "type": "string"
30586	//     }
30587	//   },
30588	//   "path": "v1/firstAndThirdPartyAudiences",
30589	//   "response": {
30590	//     "$ref": "ListFirstAndThirdPartyAudiencesResponse"
30591	//   },
30592	//   "scopes": [
30593	//     "https://www.googleapis.com/auth/display-video"
30594	//   ]
30595	// }
30596
30597}
30598
30599// Pages invokes f for each page of results.
30600// A non-nil error returned from f will halt the iteration.
30601// The provided context supersedes any context provided to the Context method.
30602func (c *FirstAndThirdPartyAudiencesListCall) Pages(ctx context.Context, f func(*ListFirstAndThirdPartyAudiencesResponse) error) error {
30603	c.ctx_ = ctx
30604	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
30605	for {
30606		x, err := c.Do()
30607		if err != nil {
30608			return err
30609		}
30610		if err := f(x); err != nil {
30611			return err
30612		}
30613		if x.NextPageToken == "" {
30614			return nil
30615		}
30616		c.PageToken(x.NextPageToken)
30617	}
30618}
30619
30620// method id "displayvideo.floodlightGroups.get":
30621
30622type FloodlightGroupsGetCall struct {
30623	s                 *Service
30624	floodlightGroupId int64
30625	urlParams_        gensupport.URLParams
30626	ifNoneMatch_      string
30627	ctx_              context.Context
30628	header_           http.Header
30629}
30630
30631// Get: Gets a Floodlight group.
30632//
30633// - floodlightGroupId: The ID of the Floodlight group to fetch.
30634func (r *FloodlightGroupsService) Get(floodlightGroupId int64) *FloodlightGroupsGetCall {
30635	c := &FloodlightGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30636	c.floodlightGroupId = floodlightGroupId
30637	return c
30638}
30639
30640// PartnerId sets the optional parameter "partnerId": Required. The
30641// partner context by which the Floodlight group is being accessed.
30642func (c *FloodlightGroupsGetCall) PartnerId(partnerId int64) *FloodlightGroupsGetCall {
30643	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
30644	return c
30645}
30646
30647// Fields allows partial responses to be retrieved. See
30648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30649// for more information.
30650func (c *FloodlightGroupsGetCall) Fields(s ...googleapi.Field) *FloodlightGroupsGetCall {
30651	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30652	return c
30653}
30654
30655// IfNoneMatch sets the optional parameter which makes the operation
30656// fail if the object's ETag matches the given value. This is useful for
30657// getting updates only after the object has changed since the last
30658// request. Use googleapi.IsNotModified to check whether the response
30659// error from Do is the result of In-None-Match.
30660func (c *FloodlightGroupsGetCall) IfNoneMatch(entityTag string) *FloodlightGroupsGetCall {
30661	c.ifNoneMatch_ = entityTag
30662	return c
30663}
30664
30665// Context sets the context to be used in this call's Do method. Any
30666// pending HTTP request will be aborted if the provided context is
30667// canceled.
30668func (c *FloodlightGroupsGetCall) Context(ctx context.Context) *FloodlightGroupsGetCall {
30669	c.ctx_ = ctx
30670	return c
30671}
30672
30673// Header returns an http.Header that can be modified by the caller to
30674// add HTTP headers to the request.
30675func (c *FloodlightGroupsGetCall) Header() http.Header {
30676	if c.header_ == nil {
30677		c.header_ = make(http.Header)
30678	}
30679	return c.header_
30680}
30681
30682func (c *FloodlightGroupsGetCall) doRequest(alt string) (*http.Response, error) {
30683	reqHeaders := make(http.Header)
30684	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
30685	for k, v := range c.header_ {
30686		reqHeaders[k] = v
30687	}
30688	reqHeaders.Set("User-Agent", c.s.userAgent())
30689	if c.ifNoneMatch_ != "" {
30690		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30691	}
30692	var body io.Reader = nil
30693	c.urlParams_.Set("alt", alt)
30694	c.urlParams_.Set("prettyPrint", "false")
30695	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/floodlightGroups/{+floodlightGroupId}")
30696	urls += "?" + c.urlParams_.Encode()
30697	req, err := http.NewRequest("GET", urls, body)
30698	if err != nil {
30699		return nil, err
30700	}
30701	req.Header = reqHeaders
30702	googleapi.Expand(req.URL, map[string]string{
30703		"floodlightGroupId": strconv.FormatInt(c.floodlightGroupId, 10),
30704	})
30705	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30706}
30707
30708// Do executes the "displayvideo.floodlightGroups.get" call.
30709// Exactly one of *FloodlightGroup or error will be non-nil. Any non-2xx
30710// status code is an error. Response headers are in either
30711// *FloodlightGroup.ServerResponse.Header or (if a response was returned
30712// at all) in error.(*googleapi.Error).Header. Use
30713// googleapi.IsNotModified to check whether the returned error was
30714// because http.StatusNotModified was returned.
30715func (c *FloodlightGroupsGetCall) Do(opts ...googleapi.CallOption) (*FloodlightGroup, error) {
30716	gensupport.SetOptions(c.urlParams_, opts...)
30717	res, err := c.doRequest("json")
30718	if res != nil && res.StatusCode == http.StatusNotModified {
30719		if res.Body != nil {
30720			res.Body.Close()
30721		}
30722		return nil, &googleapi.Error{
30723			Code:   res.StatusCode,
30724			Header: res.Header,
30725		}
30726	}
30727	if err != nil {
30728		return nil, err
30729	}
30730	defer googleapi.CloseBody(res)
30731	if err := googleapi.CheckResponse(res); err != nil {
30732		return nil, err
30733	}
30734	ret := &FloodlightGroup{
30735		ServerResponse: googleapi.ServerResponse{
30736			Header:         res.Header,
30737			HTTPStatusCode: res.StatusCode,
30738		},
30739	}
30740	target := &ret
30741	if err := gensupport.DecodeResponse(target, res); err != nil {
30742		return nil, err
30743	}
30744	return ret, nil
30745	// {
30746	//   "description": "Gets a Floodlight group.",
30747	//   "flatPath": "v1/floodlightGroups/{floodlightGroupsId}",
30748	//   "httpMethod": "GET",
30749	//   "id": "displayvideo.floodlightGroups.get",
30750	//   "parameterOrder": [
30751	//     "floodlightGroupId"
30752	//   ],
30753	//   "parameters": {
30754	//     "floodlightGroupId": {
30755	//       "description": "Required. The ID of the Floodlight group to fetch.",
30756	//       "format": "int64",
30757	//       "location": "path",
30758	//       "pattern": "^[^/]+$",
30759	//       "required": true,
30760	//       "type": "string"
30761	//     },
30762	//     "partnerId": {
30763	//       "description": "Required. The partner context by which the Floodlight group is being accessed.",
30764	//       "format": "int64",
30765	//       "location": "query",
30766	//       "type": "string"
30767	//     }
30768	//   },
30769	//   "path": "v1/floodlightGroups/{+floodlightGroupId}",
30770	//   "response": {
30771	//     "$ref": "FloodlightGroup"
30772	//   },
30773	//   "scopes": [
30774	//     "https://www.googleapis.com/auth/display-video"
30775	//   ]
30776	// }
30777
30778}
30779
30780// method id "displayvideo.floodlightGroups.patch":
30781
30782type FloodlightGroupsPatchCall struct {
30783	s                 *Service
30784	floodlightGroupId int64
30785	floodlightgroup   *FloodlightGroup
30786	urlParams_        gensupport.URLParams
30787	ctx_              context.Context
30788	header_           http.Header
30789}
30790
30791// Patch: Updates an existing Floodlight group. Returns the updated
30792// Floodlight group if successful.
30793//
30794// - floodlightGroupId: Output only. The unique ID of the Floodlight
30795//   group. Assigned by the system.
30796func (r *FloodlightGroupsService) Patch(floodlightGroupId int64, floodlightgroup *FloodlightGroup) *FloodlightGroupsPatchCall {
30797	c := &FloodlightGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30798	c.floodlightGroupId = floodlightGroupId
30799	c.floodlightgroup = floodlightgroup
30800	return c
30801}
30802
30803// PartnerId sets the optional parameter "partnerId": Required. The
30804// partner context by which the Floodlight group is being accessed.
30805func (c *FloodlightGroupsPatchCall) PartnerId(partnerId int64) *FloodlightGroupsPatchCall {
30806	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
30807	return c
30808}
30809
30810// UpdateMask sets the optional parameter "updateMask": Required. The
30811// mask to control which fields to update.
30812func (c *FloodlightGroupsPatchCall) UpdateMask(updateMask string) *FloodlightGroupsPatchCall {
30813	c.urlParams_.Set("updateMask", updateMask)
30814	return c
30815}
30816
30817// Fields allows partial responses to be retrieved. See
30818// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30819// for more information.
30820func (c *FloodlightGroupsPatchCall) Fields(s ...googleapi.Field) *FloodlightGroupsPatchCall {
30821	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30822	return c
30823}
30824
30825// Context sets the context to be used in this call's Do method. Any
30826// pending HTTP request will be aborted if the provided context is
30827// canceled.
30828func (c *FloodlightGroupsPatchCall) Context(ctx context.Context) *FloodlightGroupsPatchCall {
30829	c.ctx_ = ctx
30830	return c
30831}
30832
30833// Header returns an http.Header that can be modified by the caller to
30834// add HTTP headers to the request.
30835func (c *FloodlightGroupsPatchCall) Header() http.Header {
30836	if c.header_ == nil {
30837		c.header_ = make(http.Header)
30838	}
30839	return c.header_
30840}
30841
30842func (c *FloodlightGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
30843	reqHeaders := make(http.Header)
30844	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
30845	for k, v := range c.header_ {
30846		reqHeaders[k] = v
30847	}
30848	reqHeaders.Set("User-Agent", c.s.userAgent())
30849	var body io.Reader = nil
30850	body, err := googleapi.WithoutDataWrapper.JSONReader(c.floodlightgroup)
30851	if err != nil {
30852		return nil, err
30853	}
30854	reqHeaders.Set("Content-Type", "application/json")
30855	c.urlParams_.Set("alt", alt)
30856	c.urlParams_.Set("prettyPrint", "false")
30857	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/floodlightGroups/{floodlightGroupId}")
30858	urls += "?" + c.urlParams_.Encode()
30859	req, err := http.NewRequest("PATCH", urls, body)
30860	if err != nil {
30861		return nil, err
30862	}
30863	req.Header = reqHeaders
30864	googleapi.Expand(req.URL, map[string]string{
30865		"floodlightGroupId": strconv.FormatInt(c.floodlightGroupId, 10),
30866	})
30867	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30868}
30869
30870// Do executes the "displayvideo.floodlightGroups.patch" call.
30871// Exactly one of *FloodlightGroup or error will be non-nil. Any non-2xx
30872// status code is an error. Response headers are in either
30873// *FloodlightGroup.ServerResponse.Header or (if a response was returned
30874// at all) in error.(*googleapi.Error).Header. Use
30875// googleapi.IsNotModified to check whether the returned error was
30876// because http.StatusNotModified was returned.
30877func (c *FloodlightGroupsPatchCall) Do(opts ...googleapi.CallOption) (*FloodlightGroup, error) {
30878	gensupport.SetOptions(c.urlParams_, opts...)
30879	res, err := c.doRequest("json")
30880	if res != nil && res.StatusCode == http.StatusNotModified {
30881		if res.Body != nil {
30882			res.Body.Close()
30883		}
30884		return nil, &googleapi.Error{
30885			Code:   res.StatusCode,
30886			Header: res.Header,
30887		}
30888	}
30889	if err != nil {
30890		return nil, err
30891	}
30892	defer googleapi.CloseBody(res)
30893	if err := googleapi.CheckResponse(res); err != nil {
30894		return nil, err
30895	}
30896	ret := &FloodlightGroup{
30897		ServerResponse: googleapi.ServerResponse{
30898			Header:         res.Header,
30899			HTTPStatusCode: res.StatusCode,
30900		},
30901	}
30902	target := &ret
30903	if err := gensupport.DecodeResponse(target, res); err != nil {
30904		return nil, err
30905	}
30906	return ret, nil
30907	// {
30908	//   "description": "Updates an existing Floodlight group. Returns the updated Floodlight group if successful.",
30909	//   "flatPath": "v1/floodlightGroups/{floodlightGroupId}",
30910	//   "httpMethod": "PATCH",
30911	//   "id": "displayvideo.floodlightGroups.patch",
30912	//   "parameterOrder": [
30913	//     "floodlightGroupId"
30914	//   ],
30915	//   "parameters": {
30916	//     "floodlightGroupId": {
30917	//       "description": "Output only. The unique ID of the Floodlight group. Assigned by the system.",
30918	//       "format": "int64",
30919	//       "location": "path",
30920	//       "required": true,
30921	//       "type": "string"
30922	//     },
30923	//     "partnerId": {
30924	//       "description": "Required. The partner context by which the Floodlight group is being accessed.",
30925	//       "format": "int64",
30926	//       "location": "query",
30927	//       "type": "string"
30928	//     },
30929	//     "updateMask": {
30930	//       "description": "Required. The mask to control which fields to update.",
30931	//       "format": "google-fieldmask",
30932	//       "location": "query",
30933	//       "type": "string"
30934	//     }
30935	//   },
30936	//   "path": "v1/floodlightGroups/{floodlightGroupId}",
30937	//   "request": {
30938	//     "$ref": "FloodlightGroup"
30939	//   },
30940	//   "response": {
30941	//     "$ref": "FloodlightGroup"
30942	//   },
30943	//   "scopes": [
30944	//     "https://www.googleapis.com/auth/display-video"
30945	//   ]
30946	// }
30947
30948}
30949
30950// method id "displayvideo.googleAudiences.get":
30951
30952type GoogleAudiencesGetCall struct {
30953	s                *Service
30954	googleAudienceId int64
30955	urlParams_       gensupport.URLParams
30956	ifNoneMatch_     string
30957	ctx_             context.Context
30958	header_          http.Header
30959}
30960
30961// Get: Gets a Google audience.
30962//
30963// - googleAudienceId: The ID of the Google audience to fetch.
30964func (r *GoogleAudiencesService) Get(googleAudienceId int64) *GoogleAudiencesGetCall {
30965	c := &GoogleAudiencesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30966	c.googleAudienceId = googleAudienceId
30967	return c
30968}
30969
30970// AdvertiserId sets the optional parameter "advertiserId": The ID of
30971// the advertiser that has access to the fetched Google audience.
30972func (c *GoogleAudiencesGetCall) AdvertiserId(advertiserId int64) *GoogleAudiencesGetCall {
30973	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
30974	return c
30975}
30976
30977// PartnerId sets the optional parameter "partnerId": The ID of the
30978// partner that has access to the fetched Google audience.
30979func (c *GoogleAudiencesGetCall) PartnerId(partnerId int64) *GoogleAudiencesGetCall {
30980	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
30981	return c
30982}
30983
30984// Fields allows partial responses to be retrieved. See
30985// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30986// for more information.
30987func (c *GoogleAudiencesGetCall) Fields(s ...googleapi.Field) *GoogleAudiencesGetCall {
30988	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30989	return c
30990}
30991
30992// IfNoneMatch sets the optional parameter which makes the operation
30993// fail if the object's ETag matches the given value. This is useful for
30994// getting updates only after the object has changed since the last
30995// request. Use googleapi.IsNotModified to check whether the response
30996// error from Do is the result of In-None-Match.
30997func (c *GoogleAudiencesGetCall) IfNoneMatch(entityTag string) *GoogleAudiencesGetCall {
30998	c.ifNoneMatch_ = entityTag
30999	return c
31000}
31001
31002// Context sets the context to be used in this call's Do method. Any
31003// pending HTTP request will be aborted if the provided context is
31004// canceled.
31005func (c *GoogleAudiencesGetCall) Context(ctx context.Context) *GoogleAudiencesGetCall {
31006	c.ctx_ = ctx
31007	return c
31008}
31009
31010// Header returns an http.Header that can be modified by the caller to
31011// add HTTP headers to the request.
31012func (c *GoogleAudiencesGetCall) Header() http.Header {
31013	if c.header_ == nil {
31014		c.header_ = make(http.Header)
31015	}
31016	return c.header_
31017}
31018
31019func (c *GoogleAudiencesGetCall) doRequest(alt string) (*http.Response, error) {
31020	reqHeaders := make(http.Header)
31021	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
31022	for k, v := range c.header_ {
31023		reqHeaders[k] = v
31024	}
31025	reqHeaders.Set("User-Agent", c.s.userAgent())
31026	if c.ifNoneMatch_ != "" {
31027		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31028	}
31029	var body io.Reader = nil
31030	c.urlParams_.Set("alt", alt)
31031	c.urlParams_.Set("prettyPrint", "false")
31032	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/googleAudiences/{+googleAudienceId}")
31033	urls += "?" + c.urlParams_.Encode()
31034	req, err := http.NewRequest("GET", urls, body)
31035	if err != nil {
31036		return nil, err
31037	}
31038	req.Header = reqHeaders
31039	googleapi.Expand(req.URL, map[string]string{
31040		"googleAudienceId": strconv.FormatInt(c.googleAudienceId, 10),
31041	})
31042	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31043}
31044
31045// Do executes the "displayvideo.googleAudiences.get" call.
31046// Exactly one of *GoogleAudience or error will be non-nil. Any non-2xx
31047// status code is an error. Response headers are in either
31048// *GoogleAudience.ServerResponse.Header or (if a response was returned
31049// at all) in error.(*googleapi.Error).Header. Use
31050// googleapi.IsNotModified to check whether the returned error was
31051// because http.StatusNotModified was returned.
31052func (c *GoogleAudiencesGetCall) Do(opts ...googleapi.CallOption) (*GoogleAudience, error) {
31053	gensupport.SetOptions(c.urlParams_, opts...)
31054	res, err := c.doRequest("json")
31055	if res != nil && res.StatusCode == http.StatusNotModified {
31056		if res.Body != nil {
31057			res.Body.Close()
31058		}
31059		return nil, &googleapi.Error{
31060			Code:   res.StatusCode,
31061			Header: res.Header,
31062		}
31063	}
31064	if err != nil {
31065		return nil, err
31066	}
31067	defer googleapi.CloseBody(res)
31068	if err := googleapi.CheckResponse(res); err != nil {
31069		return nil, err
31070	}
31071	ret := &GoogleAudience{
31072		ServerResponse: googleapi.ServerResponse{
31073			Header:         res.Header,
31074			HTTPStatusCode: res.StatusCode,
31075		},
31076	}
31077	target := &ret
31078	if err := gensupport.DecodeResponse(target, res); err != nil {
31079		return nil, err
31080	}
31081	return ret, nil
31082	// {
31083	//   "description": "Gets a Google audience.",
31084	//   "flatPath": "v1/googleAudiences/{googleAudiencesId}",
31085	//   "httpMethod": "GET",
31086	//   "id": "displayvideo.googleAudiences.get",
31087	//   "parameterOrder": [
31088	//     "googleAudienceId"
31089	//   ],
31090	//   "parameters": {
31091	//     "advertiserId": {
31092	//       "description": "The ID of the advertiser that has access to the fetched Google audience.",
31093	//       "format": "int64",
31094	//       "location": "query",
31095	//       "type": "string"
31096	//     },
31097	//     "googleAudienceId": {
31098	//       "description": "Required. The ID of the Google audience to fetch.",
31099	//       "format": "int64",
31100	//       "location": "path",
31101	//       "pattern": "^[^/]+$",
31102	//       "required": true,
31103	//       "type": "string"
31104	//     },
31105	//     "partnerId": {
31106	//       "description": "The ID of the partner that has access to the fetched Google audience.",
31107	//       "format": "int64",
31108	//       "location": "query",
31109	//       "type": "string"
31110	//     }
31111	//   },
31112	//   "path": "v1/googleAudiences/{+googleAudienceId}",
31113	//   "response": {
31114	//     "$ref": "GoogleAudience"
31115	//   },
31116	//   "scopes": [
31117	//     "https://www.googleapis.com/auth/display-video"
31118	//   ]
31119	// }
31120
31121}
31122
31123// method id "displayvideo.googleAudiences.list":
31124
31125type GoogleAudiencesListCall struct {
31126	s            *Service
31127	urlParams_   gensupport.URLParams
31128	ifNoneMatch_ string
31129	ctx_         context.Context
31130	header_      http.Header
31131}
31132
31133// List: Lists Google audiences. The order is defined by the order_by
31134// parameter.
31135func (r *GoogleAudiencesService) List() *GoogleAudiencesListCall {
31136	c := &GoogleAudiencesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31137	return c
31138}
31139
31140// AdvertiserId sets the optional parameter "advertiserId": The ID of
31141// the advertiser that has access to the fetched Google audiences.
31142func (c *GoogleAudiencesListCall) AdvertiserId(advertiserId int64) *GoogleAudiencesListCall {
31143	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
31144	return c
31145}
31146
31147// Filter sets the optional parameter "filter": Allows filtering by
31148// Google audience fields. Supported syntax: * Filter expressions for
31149// Google audiences currently can only contain at most one restriction.
31150// * A restriction has the form of `{field} {operator} {value}`. * The
31151// operator must be `CONTAINS (:)`. * Supported fields: - `displayName`
31152// Examples: * All Google audiences for which the display name contains
31153// "Google": `displayName : "Google". The length of this field should
31154// be no more than 500 characters.
31155func (c *GoogleAudiencesListCall) Filter(filter string) *GoogleAudiencesListCall {
31156	c.urlParams_.Set("filter", filter)
31157	return c
31158}
31159
31160// OrderBy sets the optional parameter "orderBy": Field by which to sort
31161// the list. Acceptable values are: * `googleAudienceId` (default) *
31162// `displayName` The default sorting order is ascending. To specify
31163// descending order for a field, a suffix "desc" should be added to the
31164// field name. Example: `displayName desc`.
31165func (c *GoogleAudiencesListCall) OrderBy(orderBy string) *GoogleAudiencesListCall {
31166	c.urlParams_.Set("orderBy", orderBy)
31167	return c
31168}
31169
31170// PageSize sets the optional parameter "pageSize": Requested page size.
31171// Must be between `1` and `100`. If unspecified will default to `100`.
31172// Returns error code `INVALID_ARGUMENT` if an invalid value is
31173// specified.
31174func (c *GoogleAudiencesListCall) PageSize(pageSize int64) *GoogleAudiencesListCall {
31175	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
31176	return c
31177}
31178
31179// PageToken sets the optional parameter "pageToken": A token
31180// identifying a page of results the server should return. Typically,
31181// this is the value of next_page_token returned from the previous call
31182// to `ListGoogleAudiences` method. If not specified, the first page of
31183// results will be returned.
31184func (c *GoogleAudiencesListCall) PageToken(pageToken string) *GoogleAudiencesListCall {
31185	c.urlParams_.Set("pageToken", pageToken)
31186	return c
31187}
31188
31189// PartnerId sets the optional parameter "partnerId": The ID of the
31190// partner that has access to the fetched Google audiences.
31191func (c *GoogleAudiencesListCall) PartnerId(partnerId int64) *GoogleAudiencesListCall {
31192	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
31193	return c
31194}
31195
31196// Fields allows partial responses to be retrieved. See
31197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31198// for more information.
31199func (c *GoogleAudiencesListCall) Fields(s ...googleapi.Field) *GoogleAudiencesListCall {
31200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31201	return c
31202}
31203
31204// IfNoneMatch sets the optional parameter which makes the operation
31205// fail if the object's ETag matches the given value. This is useful for
31206// getting updates only after the object has changed since the last
31207// request. Use googleapi.IsNotModified to check whether the response
31208// error from Do is the result of In-None-Match.
31209func (c *GoogleAudiencesListCall) IfNoneMatch(entityTag string) *GoogleAudiencesListCall {
31210	c.ifNoneMatch_ = entityTag
31211	return c
31212}
31213
31214// Context sets the context to be used in this call's Do method. Any
31215// pending HTTP request will be aborted if the provided context is
31216// canceled.
31217func (c *GoogleAudiencesListCall) Context(ctx context.Context) *GoogleAudiencesListCall {
31218	c.ctx_ = ctx
31219	return c
31220}
31221
31222// Header returns an http.Header that can be modified by the caller to
31223// add HTTP headers to the request.
31224func (c *GoogleAudiencesListCall) Header() http.Header {
31225	if c.header_ == nil {
31226		c.header_ = make(http.Header)
31227	}
31228	return c.header_
31229}
31230
31231func (c *GoogleAudiencesListCall) doRequest(alt string) (*http.Response, error) {
31232	reqHeaders := make(http.Header)
31233	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
31234	for k, v := range c.header_ {
31235		reqHeaders[k] = v
31236	}
31237	reqHeaders.Set("User-Agent", c.s.userAgent())
31238	if c.ifNoneMatch_ != "" {
31239		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31240	}
31241	var body io.Reader = nil
31242	c.urlParams_.Set("alt", alt)
31243	c.urlParams_.Set("prettyPrint", "false")
31244	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/googleAudiences")
31245	urls += "?" + c.urlParams_.Encode()
31246	req, err := http.NewRequest("GET", urls, body)
31247	if err != nil {
31248		return nil, err
31249	}
31250	req.Header = reqHeaders
31251	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31252}
31253
31254// Do executes the "displayvideo.googleAudiences.list" call.
31255// Exactly one of *ListGoogleAudiencesResponse or error will be non-nil.
31256// Any non-2xx status code is an error. Response headers are in either
31257// *ListGoogleAudiencesResponse.ServerResponse.Header or (if a response
31258// was returned at all) in error.(*googleapi.Error).Header. Use
31259// googleapi.IsNotModified to check whether the returned error was
31260// because http.StatusNotModified was returned.
31261func (c *GoogleAudiencesListCall) Do(opts ...googleapi.CallOption) (*ListGoogleAudiencesResponse, error) {
31262	gensupport.SetOptions(c.urlParams_, opts...)
31263	res, err := c.doRequest("json")
31264	if res != nil && res.StatusCode == http.StatusNotModified {
31265		if res.Body != nil {
31266			res.Body.Close()
31267		}
31268		return nil, &googleapi.Error{
31269			Code:   res.StatusCode,
31270			Header: res.Header,
31271		}
31272	}
31273	if err != nil {
31274		return nil, err
31275	}
31276	defer googleapi.CloseBody(res)
31277	if err := googleapi.CheckResponse(res); err != nil {
31278		return nil, err
31279	}
31280	ret := &ListGoogleAudiencesResponse{
31281		ServerResponse: googleapi.ServerResponse{
31282			Header:         res.Header,
31283			HTTPStatusCode: res.StatusCode,
31284		},
31285	}
31286	target := &ret
31287	if err := gensupport.DecodeResponse(target, res); err != nil {
31288		return nil, err
31289	}
31290	return ret, nil
31291	// {
31292	//   "description": "Lists Google audiences. The order is defined by the order_by parameter.",
31293	//   "flatPath": "v1/googleAudiences",
31294	//   "httpMethod": "GET",
31295	//   "id": "displayvideo.googleAudiences.list",
31296	//   "parameterOrder": [],
31297	//   "parameters": {
31298	//     "advertiserId": {
31299	//       "description": "The ID of the advertiser that has access to the fetched Google audiences.",
31300	//       "format": "int64",
31301	//       "location": "query",
31302	//       "type": "string"
31303	//     },
31304	//     "filter": {
31305	//       "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.",
31306	//       "location": "query",
31307	//       "type": "string"
31308	//     },
31309	//     "orderBy": {
31310	//       "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`.",
31311	//       "location": "query",
31312	//       "type": "string"
31313	//     },
31314	//     "pageSize": {
31315	//       "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.",
31316	//       "format": "int32",
31317	//       "location": "query",
31318	//       "type": "integer"
31319	//     },
31320	//     "pageToken": {
31321	//       "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.",
31322	//       "location": "query",
31323	//       "type": "string"
31324	//     },
31325	//     "partnerId": {
31326	//       "description": "The ID of the partner that has access to the fetched Google audiences.",
31327	//       "format": "int64",
31328	//       "location": "query",
31329	//       "type": "string"
31330	//     }
31331	//   },
31332	//   "path": "v1/googleAudiences",
31333	//   "response": {
31334	//     "$ref": "ListGoogleAudiencesResponse"
31335	//   },
31336	//   "scopes": [
31337	//     "https://www.googleapis.com/auth/display-video"
31338	//   ]
31339	// }
31340
31341}
31342
31343// Pages invokes f for each page of results.
31344// A non-nil error returned from f will halt the iteration.
31345// The provided context supersedes any context provided to the Context method.
31346func (c *GoogleAudiencesListCall) Pages(ctx context.Context, f func(*ListGoogleAudiencesResponse) error) error {
31347	c.ctx_ = ctx
31348	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
31349	for {
31350		x, err := c.Do()
31351		if err != nil {
31352			return err
31353		}
31354		if err := f(x); err != nil {
31355			return err
31356		}
31357		if x.NextPageToken == "" {
31358			return nil
31359		}
31360		c.PageToken(x.NextPageToken)
31361	}
31362}
31363
31364// method id "displayvideo.inventorySourceGroups.create":
31365
31366type InventorySourceGroupsCreateCall struct {
31367	s                    *Service
31368	inventorysourcegroup *InventorySourceGroup
31369	urlParams_           gensupport.URLParams
31370	ctx_                 context.Context
31371	header_              http.Header
31372}
31373
31374// Create: Creates a new inventory source group. Returns the newly
31375// created inventory source group if successful.
31376func (r *InventorySourceGroupsService) Create(inventorysourcegroup *InventorySourceGroup) *InventorySourceGroupsCreateCall {
31377	c := &InventorySourceGroupsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31378	c.inventorysourcegroup = inventorysourcegroup
31379	return c
31380}
31381
31382// AdvertiserId sets the optional parameter "advertiserId": The ID of
31383// the advertiser that owns the inventory source group. The parent
31384// partner will not have access to this group.
31385func (c *InventorySourceGroupsCreateCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsCreateCall {
31386	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
31387	return c
31388}
31389
31390// PartnerId sets the optional parameter "partnerId": The ID of the
31391// partner that owns the inventory source group. Only this partner will
31392// have write access to this group. Only advertisers to which this group
31393// is explicitly shared will have read access to this group.
31394func (c *InventorySourceGroupsCreateCall) PartnerId(partnerId int64) *InventorySourceGroupsCreateCall {
31395	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
31396	return c
31397}
31398
31399// Fields allows partial responses to be retrieved. See
31400// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31401// for more information.
31402func (c *InventorySourceGroupsCreateCall) Fields(s ...googleapi.Field) *InventorySourceGroupsCreateCall {
31403	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31404	return c
31405}
31406
31407// Context sets the context to be used in this call's Do method. Any
31408// pending HTTP request will be aborted if the provided context is
31409// canceled.
31410func (c *InventorySourceGroupsCreateCall) Context(ctx context.Context) *InventorySourceGroupsCreateCall {
31411	c.ctx_ = ctx
31412	return c
31413}
31414
31415// Header returns an http.Header that can be modified by the caller to
31416// add HTTP headers to the request.
31417func (c *InventorySourceGroupsCreateCall) Header() http.Header {
31418	if c.header_ == nil {
31419		c.header_ = make(http.Header)
31420	}
31421	return c.header_
31422}
31423
31424func (c *InventorySourceGroupsCreateCall) doRequest(alt string) (*http.Response, error) {
31425	reqHeaders := make(http.Header)
31426	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
31427	for k, v := range c.header_ {
31428		reqHeaders[k] = v
31429	}
31430	reqHeaders.Set("User-Agent", c.s.userAgent())
31431	var body io.Reader = nil
31432	body, err := googleapi.WithoutDataWrapper.JSONReader(c.inventorysourcegroup)
31433	if err != nil {
31434		return nil, err
31435	}
31436	reqHeaders.Set("Content-Type", "application/json")
31437	c.urlParams_.Set("alt", alt)
31438	c.urlParams_.Set("prettyPrint", "false")
31439	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups")
31440	urls += "?" + c.urlParams_.Encode()
31441	req, err := http.NewRequest("POST", urls, body)
31442	if err != nil {
31443		return nil, err
31444	}
31445	req.Header = reqHeaders
31446	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31447}
31448
31449// Do executes the "displayvideo.inventorySourceGroups.create" call.
31450// Exactly one of *InventorySourceGroup or error will be non-nil. Any
31451// non-2xx status code is an error. Response headers are in either
31452// *InventorySourceGroup.ServerResponse.Header or (if a response was
31453// returned at all) in error.(*googleapi.Error).Header. Use
31454// googleapi.IsNotModified to check whether the returned error was
31455// because http.StatusNotModified was returned.
31456func (c *InventorySourceGroupsCreateCall) Do(opts ...googleapi.CallOption) (*InventorySourceGroup, error) {
31457	gensupport.SetOptions(c.urlParams_, opts...)
31458	res, err := c.doRequest("json")
31459	if res != nil && res.StatusCode == http.StatusNotModified {
31460		if res.Body != nil {
31461			res.Body.Close()
31462		}
31463		return nil, &googleapi.Error{
31464			Code:   res.StatusCode,
31465			Header: res.Header,
31466		}
31467	}
31468	if err != nil {
31469		return nil, err
31470	}
31471	defer googleapi.CloseBody(res)
31472	if err := googleapi.CheckResponse(res); err != nil {
31473		return nil, err
31474	}
31475	ret := &InventorySourceGroup{
31476		ServerResponse: googleapi.ServerResponse{
31477			Header:         res.Header,
31478			HTTPStatusCode: res.StatusCode,
31479		},
31480	}
31481	target := &ret
31482	if err := gensupport.DecodeResponse(target, res); err != nil {
31483		return nil, err
31484	}
31485	return ret, nil
31486	// {
31487	//   "description": "Creates a new inventory source group. Returns the newly created inventory source group if successful.",
31488	//   "flatPath": "v1/inventorySourceGroups",
31489	//   "httpMethod": "POST",
31490	//   "id": "displayvideo.inventorySourceGroups.create",
31491	//   "parameterOrder": [],
31492	//   "parameters": {
31493	//     "advertiserId": {
31494	//       "description": "The ID of the advertiser that owns the inventory source group. The parent partner will not have access to this group.",
31495	//       "format": "int64",
31496	//       "location": "query",
31497	//       "type": "string"
31498	//     },
31499	//     "partnerId": {
31500	//       "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.",
31501	//       "format": "int64",
31502	//       "location": "query",
31503	//       "type": "string"
31504	//     }
31505	//   },
31506	//   "path": "v1/inventorySourceGroups",
31507	//   "request": {
31508	//     "$ref": "InventorySourceGroup"
31509	//   },
31510	//   "response": {
31511	//     "$ref": "InventorySourceGroup"
31512	//   },
31513	//   "scopes": [
31514	//     "https://www.googleapis.com/auth/display-video"
31515	//   ]
31516	// }
31517
31518}
31519
31520// method id "displayvideo.inventorySourceGroups.delete":
31521
31522type InventorySourceGroupsDeleteCall struct {
31523	s                      *Service
31524	inventorySourceGroupId int64
31525	urlParams_             gensupport.URLParams
31526	ctx_                   context.Context
31527	header_                http.Header
31528}
31529
31530// Delete: Deletes an inventory source group.
31531//
31532// - inventorySourceGroupId: The ID of the inventory source group to
31533//   delete.
31534func (r *InventorySourceGroupsService) Delete(inventorySourceGroupId int64) *InventorySourceGroupsDeleteCall {
31535	c := &InventorySourceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31536	c.inventorySourceGroupId = inventorySourceGroupId
31537	return c
31538}
31539
31540// AdvertiserId sets the optional parameter "advertiserId": The ID of
31541// the advertiser that owns the inventory source group. The parent
31542// partner does not have access to this group.
31543func (c *InventorySourceGroupsDeleteCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsDeleteCall {
31544	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
31545	return c
31546}
31547
31548// PartnerId sets the optional parameter "partnerId": The ID of the
31549// partner that owns the inventory source group. Only this partner has
31550// write access to this group.
31551func (c *InventorySourceGroupsDeleteCall) PartnerId(partnerId int64) *InventorySourceGroupsDeleteCall {
31552	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
31553	return c
31554}
31555
31556// Fields allows partial responses to be retrieved. See
31557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31558// for more information.
31559func (c *InventorySourceGroupsDeleteCall) Fields(s ...googleapi.Field) *InventorySourceGroupsDeleteCall {
31560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31561	return c
31562}
31563
31564// Context sets the context to be used in this call's Do method. Any
31565// pending HTTP request will be aborted if the provided context is
31566// canceled.
31567func (c *InventorySourceGroupsDeleteCall) Context(ctx context.Context) *InventorySourceGroupsDeleteCall {
31568	c.ctx_ = ctx
31569	return c
31570}
31571
31572// Header returns an http.Header that can be modified by the caller to
31573// add HTTP headers to the request.
31574func (c *InventorySourceGroupsDeleteCall) Header() http.Header {
31575	if c.header_ == nil {
31576		c.header_ = make(http.Header)
31577	}
31578	return c.header_
31579}
31580
31581func (c *InventorySourceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
31582	reqHeaders := make(http.Header)
31583	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
31584	for k, v := range c.header_ {
31585		reqHeaders[k] = v
31586	}
31587	reqHeaders.Set("User-Agent", c.s.userAgent())
31588	var body io.Reader = nil
31589	c.urlParams_.Set("alt", alt)
31590	c.urlParams_.Set("prettyPrint", "false")
31591	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{+inventorySourceGroupId}")
31592	urls += "?" + c.urlParams_.Encode()
31593	req, err := http.NewRequest("DELETE", urls, body)
31594	if err != nil {
31595		return nil, err
31596	}
31597	req.Header = reqHeaders
31598	googleapi.Expand(req.URL, map[string]string{
31599		"inventorySourceGroupId": strconv.FormatInt(c.inventorySourceGroupId, 10),
31600	})
31601	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31602}
31603
31604// Do executes the "displayvideo.inventorySourceGroups.delete" call.
31605// Exactly one of *Empty or error will be non-nil. Any non-2xx status
31606// code is an error. Response headers are in either
31607// *Empty.ServerResponse.Header or (if a response was returned at all)
31608// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
31609// check whether the returned error was because http.StatusNotModified
31610// was returned.
31611func (c *InventorySourceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
31612	gensupport.SetOptions(c.urlParams_, opts...)
31613	res, err := c.doRequest("json")
31614	if res != nil && res.StatusCode == http.StatusNotModified {
31615		if res.Body != nil {
31616			res.Body.Close()
31617		}
31618		return nil, &googleapi.Error{
31619			Code:   res.StatusCode,
31620			Header: res.Header,
31621		}
31622	}
31623	if err != nil {
31624		return nil, err
31625	}
31626	defer googleapi.CloseBody(res)
31627	if err := googleapi.CheckResponse(res); err != nil {
31628		return nil, err
31629	}
31630	ret := &Empty{
31631		ServerResponse: googleapi.ServerResponse{
31632			Header:         res.Header,
31633			HTTPStatusCode: res.StatusCode,
31634		},
31635	}
31636	target := &ret
31637	if err := gensupport.DecodeResponse(target, res); err != nil {
31638		return nil, err
31639	}
31640	return ret, nil
31641	// {
31642	//   "description": "Deletes an inventory source group.",
31643	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}",
31644	//   "httpMethod": "DELETE",
31645	//   "id": "displayvideo.inventorySourceGroups.delete",
31646	//   "parameterOrder": [
31647	//     "inventorySourceGroupId"
31648	//   ],
31649	//   "parameters": {
31650	//     "advertiserId": {
31651	//       "description": "The ID of the advertiser that owns the inventory source group. The parent partner does not have access to this group.",
31652	//       "format": "int64",
31653	//       "location": "query",
31654	//       "type": "string"
31655	//     },
31656	//     "inventorySourceGroupId": {
31657	//       "description": "Required. The ID of the inventory source group to delete.",
31658	//       "format": "int64",
31659	//       "location": "path",
31660	//       "pattern": "^[^/]+$",
31661	//       "required": true,
31662	//       "type": "string"
31663	//     },
31664	//     "partnerId": {
31665	//       "description": "The ID of the partner that owns the inventory source group. Only this partner has write access to this group.",
31666	//       "format": "int64",
31667	//       "location": "query",
31668	//       "type": "string"
31669	//     }
31670	//   },
31671	//   "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}",
31672	//   "response": {
31673	//     "$ref": "Empty"
31674	//   },
31675	//   "scopes": [
31676	//     "https://www.googleapis.com/auth/display-video"
31677	//   ]
31678	// }
31679
31680}
31681
31682// method id "displayvideo.inventorySourceGroups.get":
31683
31684type InventorySourceGroupsGetCall struct {
31685	s                      *Service
31686	inventorySourceGroupId int64
31687	urlParams_             gensupport.URLParams
31688	ifNoneMatch_           string
31689	ctx_                   context.Context
31690	header_                http.Header
31691}
31692
31693// Get: Gets an inventory source group.
31694//
31695// - inventorySourceGroupId: The ID of the inventory source group to
31696//   fetch.
31697func (r *InventorySourceGroupsService) Get(inventorySourceGroupId int64) *InventorySourceGroupsGetCall {
31698	c := &InventorySourceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31699	c.inventorySourceGroupId = inventorySourceGroupId
31700	return c
31701}
31702
31703// AdvertiserId sets the optional parameter "advertiserId": The ID of
31704// the advertiser that has access to the inventory source group. If an
31705// inventory source group is partner-owned, only advertisers to which
31706// the group is explicitly shared can access the group.
31707func (c *InventorySourceGroupsGetCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsGetCall {
31708	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
31709	return c
31710}
31711
31712// PartnerId sets the optional parameter "partnerId": The ID of the
31713// partner that has access to the inventory source group. A partner
31714// cannot access an advertiser-owned inventory source group.
31715func (c *InventorySourceGroupsGetCall) PartnerId(partnerId int64) *InventorySourceGroupsGetCall {
31716	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
31717	return c
31718}
31719
31720// Fields allows partial responses to be retrieved. See
31721// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31722// for more information.
31723func (c *InventorySourceGroupsGetCall) Fields(s ...googleapi.Field) *InventorySourceGroupsGetCall {
31724	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31725	return c
31726}
31727
31728// IfNoneMatch sets the optional parameter which makes the operation
31729// fail if the object's ETag matches the given value. This is useful for
31730// getting updates only after the object has changed since the last
31731// request. Use googleapi.IsNotModified to check whether the response
31732// error from Do is the result of In-None-Match.
31733func (c *InventorySourceGroupsGetCall) IfNoneMatch(entityTag string) *InventorySourceGroupsGetCall {
31734	c.ifNoneMatch_ = entityTag
31735	return c
31736}
31737
31738// Context sets the context to be used in this call's Do method. Any
31739// pending HTTP request will be aborted if the provided context is
31740// canceled.
31741func (c *InventorySourceGroupsGetCall) Context(ctx context.Context) *InventorySourceGroupsGetCall {
31742	c.ctx_ = ctx
31743	return c
31744}
31745
31746// Header returns an http.Header that can be modified by the caller to
31747// add HTTP headers to the request.
31748func (c *InventorySourceGroupsGetCall) Header() http.Header {
31749	if c.header_ == nil {
31750		c.header_ = make(http.Header)
31751	}
31752	return c.header_
31753}
31754
31755func (c *InventorySourceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
31756	reqHeaders := make(http.Header)
31757	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
31758	for k, v := range c.header_ {
31759		reqHeaders[k] = v
31760	}
31761	reqHeaders.Set("User-Agent", c.s.userAgent())
31762	if c.ifNoneMatch_ != "" {
31763		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31764	}
31765	var body io.Reader = nil
31766	c.urlParams_.Set("alt", alt)
31767	c.urlParams_.Set("prettyPrint", "false")
31768	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{+inventorySourceGroupId}")
31769	urls += "?" + c.urlParams_.Encode()
31770	req, err := http.NewRequest("GET", urls, body)
31771	if err != nil {
31772		return nil, err
31773	}
31774	req.Header = reqHeaders
31775	googleapi.Expand(req.URL, map[string]string{
31776		"inventorySourceGroupId": strconv.FormatInt(c.inventorySourceGroupId, 10),
31777	})
31778	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31779}
31780
31781// Do executes the "displayvideo.inventorySourceGroups.get" call.
31782// Exactly one of *InventorySourceGroup or error will be non-nil. Any
31783// non-2xx status code is an error. Response headers are in either
31784// *InventorySourceGroup.ServerResponse.Header or (if a response was
31785// returned at all) in error.(*googleapi.Error).Header. Use
31786// googleapi.IsNotModified to check whether the returned error was
31787// because http.StatusNotModified was returned.
31788func (c *InventorySourceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InventorySourceGroup, error) {
31789	gensupport.SetOptions(c.urlParams_, opts...)
31790	res, err := c.doRequest("json")
31791	if res != nil && res.StatusCode == http.StatusNotModified {
31792		if res.Body != nil {
31793			res.Body.Close()
31794		}
31795		return nil, &googleapi.Error{
31796			Code:   res.StatusCode,
31797			Header: res.Header,
31798		}
31799	}
31800	if err != nil {
31801		return nil, err
31802	}
31803	defer googleapi.CloseBody(res)
31804	if err := googleapi.CheckResponse(res); err != nil {
31805		return nil, err
31806	}
31807	ret := &InventorySourceGroup{
31808		ServerResponse: googleapi.ServerResponse{
31809			Header:         res.Header,
31810			HTTPStatusCode: res.StatusCode,
31811		},
31812	}
31813	target := &ret
31814	if err := gensupport.DecodeResponse(target, res); err != nil {
31815		return nil, err
31816	}
31817	return ret, nil
31818	// {
31819	//   "description": "Gets an inventory source group.",
31820	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}",
31821	//   "httpMethod": "GET",
31822	//   "id": "displayvideo.inventorySourceGroups.get",
31823	//   "parameterOrder": [
31824	//     "inventorySourceGroupId"
31825	//   ],
31826	//   "parameters": {
31827	//     "advertiserId": {
31828	//       "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.",
31829	//       "format": "int64",
31830	//       "location": "query",
31831	//       "type": "string"
31832	//     },
31833	//     "inventorySourceGroupId": {
31834	//       "description": "Required. The ID of the inventory source group to fetch.",
31835	//       "format": "int64",
31836	//       "location": "path",
31837	//       "pattern": "^[^/]+$",
31838	//       "required": true,
31839	//       "type": "string"
31840	//     },
31841	//     "partnerId": {
31842	//       "description": "The ID of the partner that has access to the inventory source group. A partner cannot access an advertiser-owned inventory source group.",
31843	//       "format": "int64",
31844	//       "location": "query",
31845	//       "type": "string"
31846	//     }
31847	//   },
31848	//   "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}",
31849	//   "response": {
31850	//     "$ref": "InventorySourceGroup"
31851	//   },
31852	//   "scopes": [
31853	//     "https://www.googleapis.com/auth/display-video"
31854	//   ]
31855	// }
31856
31857}
31858
31859// method id "displayvideo.inventorySourceGroups.list":
31860
31861type InventorySourceGroupsListCall struct {
31862	s            *Service
31863	urlParams_   gensupport.URLParams
31864	ifNoneMatch_ string
31865	ctx_         context.Context
31866	header_      http.Header
31867}
31868
31869// List: Lists inventory source groups that are accessible to the
31870// current user. The order is defined by the order_by parameter.
31871func (r *InventorySourceGroupsService) List() *InventorySourceGroupsListCall {
31872	c := &InventorySourceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31873	return c
31874}
31875
31876// AdvertiserId sets the optional parameter "advertiserId": The ID of
31877// the advertiser that has access to the inventory source group. If an
31878// inventory source group is partner-owned, only advertisers to which
31879// the group is explicitly shared can access the group.
31880func (c *InventorySourceGroupsListCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsListCall {
31881	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
31882	return c
31883}
31884
31885// Filter sets the optional parameter "filter": Allows filtering by
31886// inventory source group properties. Supported syntax: * Filter
31887// expressions are made up of one or more restrictions. * Restrictions
31888// can be combined by the logical operator `OR`. * A restriction has the
31889// form of `{field} {operator} {value}`. * The operator must be `EQUALS
31890// (=)`. * Supported fields: - `inventorySourceGroupId` The length of
31891// this field should be no more than 500 characters.
31892func (c *InventorySourceGroupsListCall) Filter(filter string) *InventorySourceGroupsListCall {
31893	c.urlParams_.Set("filter", filter)
31894	return c
31895}
31896
31897// OrderBy sets the optional parameter "orderBy": Field by which to sort
31898// the list. Acceptable values are: * `displayName` (default) *
31899// `inventorySourceGroupId` The default sorting order is ascending. To
31900// specify descending order for a field, a suffix "desc" should be added
31901// to the field name. For example, `displayName desc`.
31902func (c *InventorySourceGroupsListCall) OrderBy(orderBy string) *InventorySourceGroupsListCall {
31903	c.urlParams_.Set("orderBy", orderBy)
31904	return c
31905}
31906
31907// PageSize sets the optional parameter "pageSize": Requested page size.
31908// Must be between `1` and `100`. If unspecified will default to `100`.
31909func (c *InventorySourceGroupsListCall) PageSize(pageSize int64) *InventorySourceGroupsListCall {
31910	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
31911	return c
31912}
31913
31914// PageToken sets the optional parameter "pageToken": A token
31915// identifying a page of results the server should return. Typically,
31916// this is the value of next_page_token returned from the previous call
31917// to `ListInventorySources` method. If not specified, the first page of
31918// results will be returned.
31919func (c *InventorySourceGroupsListCall) PageToken(pageToken string) *InventorySourceGroupsListCall {
31920	c.urlParams_.Set("pageToken", pageToken)
31921	return c
31922}
31923
31924// PartnerId sets the optional parameter "partnerId": The ID of the
31925// partner that has access to the inventory source group. A partner
31926// cannot access advertiser-owned inventory source groups.
31927func (c *InventorySourceGroupsListCall) PartnerId(partnerId int64) *InventorySourceGroupsListCall {
31928	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
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 *InventorySourceGroupsListCall) Fields(s ...googleapi.Field) *InventorySourceGroupsListCall {
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 *InventorySourceGroupsListCall) IfNoneMatch(entityTag string) *InventorySourceGroupsListCall {
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 *InventorySourceGroupsListCall) Context(ctx context.Context) *InventorySourceGroupsListCall {
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 *InventorySourceGroupsListCall) Header() http.Header {
31961	if c.header_ == nil {
31962		c.header_ = make(http.Header)
31963	}
31964	return c.header_
31965}
31966
31967func (c *InventorySourceGroupsListCall) doRequest(alt string) (*http.Response, error) {
31968	reqHeaders := make(http.Header)
31969	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
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/inventorySourceGroups")
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.inventorySourceGroups.list" call.
31991// Exactly one of *ListInventorySourceGroupsResponse or error will be
31992// non-nil. Any non-2xx status code is an error. Response headers are in
31993// either *ListInventorySourceGroupsResponse.ServerResponse.Header or
31994// (if a response was returned at all) in
31995// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
31996// whether the returned error was because http.StatusNotModified was
31997// returned.
31998func (c *InventorySourceGroupsListCall) Do(opts ...googleapi.CallOption) (*ListInventorySourceGroupsResponse, error) {
31999	gensupport.SetOptions(c.urlParams_, opts...)
32000	res, err := c.doRequest("json")
32001	if res != nil && res.StatusCode == http.StatusNotModified {
32002		if res.Body != nil {
32003			res.Body.Close()
32004		}
32005		return nil, &googleapi.Error{
32006			Code:   res.StatusCode,
32007			Header: res.Header,
32008		}
32009	}
32010	if err != nil {
32011		return nil, err
32012	}
32013	defer googleapi.CloseBody(res)
32014	if err := googleapi.CheckResponse(res); err != nil {
32015		return nil, err
32016	}
32017	ret := &ListInventorySourceGroupsResponse{
32018		ServerResponse: googleapi.ServerResponse{
32019			Header:         res.Header,
32020			HTTPStatusCode: res.StatusCode,
32021		},
32022	}
32023	target := &ret
32024	if err := gensupport.DecodeResponse(target, res); err != nil {
32025		return nil, err
32026	}
32027	return ret, nil
32028	// {
32029	//   "description": "Lists inventory source groups that are accessible to the current user. The order is defined by the order_by parameter.",
32030	//   "flatPath": "v1/inventorySourceGroups",
32031	//   "httpMethod": "GET",
32032	//   "id": "displayvideo.inventorySourceGroups.list",
32033	//   "parameterOrder": [],
32034	//   "parameters": {
32035	//     "advertiserId": {
32036	//       "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.",
32037	//       "format": "int64",
32038	//       "location": "query",
32039	//       "type": "string"
32040	//     },
32041	//     "filter": {
32042	//       "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.",
32043	//       "location": "query",
32044	//       "type": "string"
32045	//     },
32046	//     "orderBy": {
32047	//       "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`.",
32048	//       "location": "query",
32049	//       "type": "string"
32050	//     },
32051	//     "pageSize": {
32052	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
32053	//       "format": "int32",
32054	//       "location": "query",
32055	//       "type": "integer"
32056	//     },
32057	//     "pageToken": {
32058	//       "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.",
32059	//       "location": "query",
32060	//       "type": "string"
32061	//     },
32062	//     "partnerId": {
32063	//       "description": "The ID of the partner that has access to the inventory source group. A partner cannot access advertiser-owned inventory source groups.",
32064	//       "format": "int64",
32065	//       "location": "query",
32066	//       "type": "string"
32067	//     }
32068	//   },
32069	//   "path": "v1/inventorySourceGroups",
32070	//   "response": {
32071	//     "$ref": "ListInventorySourceGroupsResponse"
32072	//   },
32073	//   "scopes": [
32074	//     "https://www.googleapis.com/auth/display-video"
32075	//   ]
32076	// }
32077
32078}
32079
32080// Pages invokes f for each page of results.
32081// A non-nil error returned from f will halt the iteration.
32082// The provided context supersedes any context provided to the Context method.
32083func (c *InventorySourceGroupsListCall) Pages(ctx context.Context, f func(*ListInventorySourceGroupsResponse) error) error {
32084	c.ctx_ = ctx
32085	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
32086	for {
32087		x, err := c.Do()
32088		if err != nil {
32089			return err
32090		}
32091		if err := f(x); err != nil {
32092			return err
32093		}
32094		if x.NextPageToken == "" {
32095			return nil
32096		}
32097		c.PageToken(x.NextPageToken)
32098	}
32099}
32100
32101// method id "displayvideo.inventorySourceGroups.patch":
32102
32103type InventorySourceGroupsPatchCall struct {
32104	s                      *Service
32105	inventorySourceGroupId int64
32106	inventorysourcegroup   *InventorySourceGroup
32107	urlParams_             gensupport.URLParams
32108	ctx_                   context.Context
32109	header_                http.Header
32110}
32111
32112// Patch: Updates an inventory source group. Returns the updated
32113// inventory source group if successful.
32114//
32115// - inventorySourceGroupId: Output only. The unique ID of the inventory
32116//   source group. Assigned by the system.
32117func (r *InventorySourceGroupsService) Patch(inventorySourceGroupId int64, inventorysourcegroup *InventorySourceGroup) *InventorySourceGroupsPatchCall {
32118	c := &InventorySourceGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32119	c.inventorySourceGroupId = inventorySourceGroupId
32120	c.inventorysourcegroup = inventorysourcegroup
32121	return c
32122}
32123
32124// AdvertiserId sets the optional parameter "advertiserId": The ID of
32125// the advertiser that owns the inventory source group. The parent
32126// partner does not have access to this group.
32127func (c *InventorySourceGroupsPatchCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsPatchCall {
32128	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
32129	return c
32130}
32131
32132// PartnerId sets the optional parameter "partnerId": The ID of the
32133// partner that owns the inventory source group. Only this partner has
32134// write access to this group.
32135func (c *InventorySourceGroupsPatchCall) PartnerId(partnerId int64) *InventorySourceGroupsPatchCall {
32136	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
32137	return c
32138}
32139
32140// UpdateMask sets the optional parameter "updateMask": Required. The
32141// mask to control which fields to update.
32142func (c *InventorySourceGroupsPatchCall) UpdateMask(updateMask string) *InventorySourceGroupsPatchCall {
32143	c.urlParams_.Set("updateMask", updateMask)
32144	return c
32145}
32146
32147// Fields allows partial responses to be retrieved. See
32148// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32149// for more information.
32150func (c *InventorySourceGroupsPatchCall) Fields(s ...googleapi.Field) *InventorySourceGroupsPatchCall {
32151	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32152	return c
32153}
32154
32155// Context sets the context to be used in this call's Do method. Any
32156// pending HTTP request will be aborted if the provided context is
32157// canceled.
32158func (c *InventorySourceGroupsPatchCall) Context(ctx context.Context) *InventorySourceGroupsPatchCall {
32159	c.ctx_ = ctx
32160	return c
32161}
32162
32163// Header returns an http.Header that can be modified by the caller to
32164// add HTTP headers to the request.
32165func (c *InventorySourceGroupsPatchCall) Header() http.Header {
32166	if c.header_ == nil {
32167		c.header_ = make(http.Header)
32168	}
32169	return c.header_
32170}
32171
32172func (c *InventorySourceGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
32173	reqHeaders := make(http.Header)
32174	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
32175	for k, v := range c.header_ {
32176		reqHeaders[k] = v
32177	}
32178	reqHeaders.Set("User-Agent", c.s.userAgent())
32179	var body io.Reader = nil
32180	body, err := googleapi.WithoutDataWrapper.JSONReader(c.inventorysourcegroup)
32181	if err != nil {
32182		return nil, err
32183	}
32184	reqHeaders.Set("Content-Type", "application/json")
32185	c.urlParams_.Set("alt", alt)
32186	c.urlParams_.Set("prettyPrint", "false")
32187	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{inventorySourceGroupId}")
32188	urls += "?" + c.urlParams_.Encode()
32189	req, err := http.NewRequest("PATCH", urls, body)
32190	if err != nil {
32191		return nil, err
32192	}
32193	req.Header = reqHeaders
32194	googleapi.Expand(req.URL, map[string]string{
32195		"inventorySourceGroupId": strconv.FormatInt(c.inventorySourceGroupId, 10),
32196	})
32197	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32198}
32199
32200// Do executes the "displayvideo.inventorySourceGroups.patch" call.
32201// Exactly one of *InventorySourceGroup or error will be non-nil. Any
32202// non-2xx status code is an error. Response headers are in either
32203// *InventorySourceGroup.ServerResponse.Header or (if a response was
32204// returned at all) in error.(*googleapi.Error).Header. Use
32205// googleapi.IsNotModified to check whether the returned error was
32206// because http.StatusNotModified was returned.
32207func (c *InventorySourceGroupsPatchCall) Do(opts ...googleapi.CallOption) (*InventorySourceGroup, error) {
32208	gensupport.SetOptions(c.urlParams_, opts...)
32209	res, err := c.doRequest("json")
32210	if res != nil && res.StatusCode == http.StatusNotModified {
32211		if res.Body != nil {
32212			res.Body.Close()
32213		}
32214		return nil, &googleapi.Error{
32215			Code:   res.StatusCode,
32216			Header: res.Header,
32217		}
32218	}
32219	if err != nil {
32220		return nil, err
32221	}
32222	defer googleapi.CloseBody(res)
32223	if err := googleapi.CheckResponse(res); err != nil {
32224		return nil, err
32225	}
32226	ret := &InventorySourceGroup{
32227		ServerResponse: googleapi.ServerResponse{
32228			Header:         res.Header,
32229			HTTPStatusCode: res.StatusCode,
32230		},
32231	}
32232	target := &ret
32233	if err := gensupport.DecodeResponse(target, res); err != nil {
32234		return nil, err
32235	}
32236	return ret, nil
32237	// {
32238	//   "description": "Updates an inventory source group. Returns the updated inventory source group if successful.",
32239	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupId}",
32240	//   "httpMethod": "PATCH",
32241	//   "id": "displayvideo.inventorySourceGroups.patch",
32242	//   "parameterOrder": [
32243	//     "inventorySourceGroupId"
32244	//   ],
32245	//   "parameters": {
32246	//     "advertiserId": {
32247	//       "description": "The ID of the advertiser that owns the inventory source group. The parent partner does not have access to this group.",
32248	//       "format": "int64",
32249	//       "location": "query",
32250	//       "type": "string"
32251	//     },
32252	//     "inventorySourceGroupId": {
32253	//       "description": "Output only. The unique ID of the inventory source group. Assigned by the system.",
32254	//       "format": "int64",
32255	//       "location": "path",
32256	//       "required": true,
32257	//       "type": "string"
32258	//     },
32259	//     "partnerId": {
32260	//       "description": "The ID of the partner that owns the inventory source group. Only this partner has write access to this group.",
32261	//       "format": "int64",
32262	//       "location": "query",
32263	//       "type": "string"
32264	//     },
32265	//     "updateMask": {
32266	//       "description": "Required. The mask to control which fields to update.",
32267	//       "format": "google-fieldmask",
32268	//       "location": "query",
32269	//       "type": "string"
32270	//     }
32271	//   },
32272	//   "path": "v1/inventorySourceGroups/{inventorySourceGroupId}",
32273	//   "request": {
32274	//     "$ref": "InventorySourceGroup"
32275	//   },
32276	//   "response": {
32277	//     "$ref": "InventorySourceGroup"
32278	//   },
32279	//   "scopes": [
32280	//     "https://www.googleapis.com/auth/display-video"
32281	//   ]
32282	// }
32283
32284}
32285
32286// method id "displayvideo.inventorySourceGroups.assignedInventorySources.bulkEdit":
32287
32288type InventorySourceGroupsAssignedInventorySourcesBulkEditCall struct {
32289	s                                       *Service
32290	inventorySourceGroupId                  int64
32291	bulkeditassignedinventorysourcesrequest *BulkEditAssignedInventorySourcesRequest
32292	urlParams_                              gensupport.URLParams
32293	ctx_                                    context.Context
32294	header_                                 http.Header
32295}
32296
32297// BulkEdit: Bulk edits multiple assignments between inventory sources
32298// and a single inventory source group. The operation will delete the
32299// assigned inventory sources provided in
32300// BulkEditAssignedInventorySourcesRequest.deleted_assigned_inventory_sou
32301// rces and then create the assigned inventory sources provided in
32302// BulkEditAssignedInventorySourcesRequest.created_assigned_inventory_sou
32303// rces.
32304//
32305// - inventorySourceGroupId: The ID of the inventory source group to
32306//   which the assignments are assigned.
32307func (r *InventorySourceGroupsAssignedInventorySourcesService) BulkEdit(inventorySourceGroupId int64, bulkeditassignedinventorysourcesrequest *BulkEditAssignedInventorySourcesRequest) *InventorySourceGroupsAssignedInventorySourcesBulkEditCall {
32308	c := &InventorySourceGroupsAssignedInventorySourcesBulkEditCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32309	c.inventorySourceGroupId = inventorySourceGroupId
32310	c.bulkeditassignedinventorysourcesrequest = bulkeditassignedinventorysourcesrequest
32311	return c
32312}
32313
32314// Fields allows partial responses to be retrieved. See
32315// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32316// for more information.
32317func (c *InventorySourceGroupsAssignedInventorySourcesBulkEditCall) Fields(s ...googleapi.Field) *InventorySourceGroupsAssignedInventorySourcesBulkEditCall {
32318	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32319	return c
32320}
32321
32322// Context sets the context to be used in this call's Do method. Any
32323// pending HTTP request will be aborted if the provided context is
32324// canceled.
32325func (c *InventorySourceGroupsAssignedInventorySourcesBulkEditCall) Context(ctx context.Context) *InventorySourceGroupsAssignedInventorySourcesBulkEditCall {
32326	c.ctx_ = ctx
32327	return c
32328}
32329
32330// Header returns an http.Header that can be modified by the caller to
32331// add HTTP headers to the request.
32332func (c *InventorySourceGroupsAssignedInventorySourcesBulkEditCall) Header() http.Header {
32333	if c.header_ == nil {
32334		c.header_ = make(http.Header)
32335	}
32336	return c.header_
32337}
32338
32339func (c *InventorySourceGroupsAssignedInventorySourcesBulkEditCall) doRequest(alt string) (*http.Response, error) {
32340	reqHeaders := make(http.Header)
32341	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
32342	for k, v := range c.header_ {
32343		reqHeaders[k] = v
32344	}
32345	reqHeaders.Set("User-Agent", c.s.userAgent())
32346	var body io.Reader = nil
32347	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditassignedinventorysourcesrequest)
32348	if err != nil {
32349		return nil, err
32350	}
32351	reqHeaders.Set("Content-Type", "application/json")
32352	c.urlParams_.Set("alt", alt)
32353	c.urlParams_.Set("prettyPrint", "false")
32354	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources:bulkEdit")
32355	urls += "?" + c.urlParams_.Encode()
32356	req, err := http.NewRequest("POST", urls, body)
32357	if err != nil {
32358		return nil, err
32359	}
32360	req.Header = reqHeaders
32361	googleapi.Expand(req.URL, map[string]string{
32362		"inventorySourceGroupId": strconv.FormatInt(c.inventorySourceGroupId, 10),
32363	})
32364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32365}
32366
32367// Do executes the "displayvideo.inventorySourceGroups.assignedInventorySources.bulkEdit" call.
32368// Exactly one of *BulkEditAssignedInventorySourcesResponse or error
32369// will be non-nil. Any non-2xx status code is an error. Response
32370// headers are in either
32371// *BulkEditAssignedInventorySourcesResponse.ServerResponse.Header or
32372// (if a response was returned at all) in
32373// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
32374// whether the returned error was because http.StatusNotModified was
32375// returned.
32376func (c *InventorySourceGroupsAssignedInventorySourcesBulkEditCall) Do(opts ...googleapi.CallOption) (*BulkEditAssignedInventorySourcesResponse, error) {
32377	gensupport.SetOptions(c.urlParams_, opts...)
32378	res, err := c.doRequest("json")
32379	if res != nil && res.StatusCode == http.StatusNotModified {
32380		if res.Body != nil {
32381			res.Body.Close()
32382		}
32383		return nil, &googleapi.Error{
32384			Code:   res.StatusCode,
32385			Header: res.Header,
32386		}
32387	}
32388	if err != nil {
32389		return nil, err
32390	}
32391	defer googleapi.CloseBody(res)
32392	if err := googleapi.CheckResponse(res); err != nil {
32393		return nil, err
32394	}
32395	ret := &BulkEditAssignedInventorySourcesResponse{
32396		ServerResponse: googleapi.ServerResponse{
32397			Header:         res.Header,
32398			HTTPStatusCode: res.StatusCode,
32399		},
32400	}
32401	target := &ret
32402	if err := gensupport.DecodeResponse(target, res); err != nil {
32403		return nil, err
32404	}
32405	return ret, nil
32406	// {
32407	//   "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.",
32408	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources:bulkEdit",
32409	//   "httpMethod": "POST",
32410	//   "id": "displayvideo.inventorySourceGroups.assignedInventorySources.bulkEdit",
32411	//   "parameterOrder": [
32412	//     "inventorySourceGroupId"
32413	//   ],
32414	//   "parameters": {
32415	//     "inventorySourceGroupId": {
32416	//       "description": "Required. The ID of the inventory source group to which the assignments are assigned.",
32417	//       "format": "int64",
32418	//       "location": "path",
32419	//       "pattern": "^[^/]+$",
32420	//       "required": true,
32421	//       "type": "string"
32422	//     }
32423	//   },
32424	//   "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources:bulkEdit",
32425	//   "request": {
32426	//     "$ref": "BulkEditAssignedInventorySourcesRequest"
32427	//   },
32428	//   "response": {
32429	//     "$ref": "BulkEditAssignedInventorySourcesResponse"
32430	//   },
32431	//   "scopes": [
32432	//     "https://www.googleapis.com/auth/display-video"
32433	//   ]
32434	// }
32435
32436}
32437
32438// method id "displayvideo.inventorySourceGroups.assignedInventorySources.create":
32439
32440type InventorySourceGroupsAssignedInventorySourcesCreateCall struct {
32441	s                       *Service
32442	inventorySourceGroupId  int64
32443	assignedinventorysource *AssignedInventorySource
32444	urlParams_              gensupport.URLParams
32445	ctx_                    context.Context
32446	header_                 http.Header
32447}
32448
32449// Create: Creates an assignment between an inventory source and an
32450// inventory source group.
32451//
32452// - inventorySourceGroupId: The ID of the inventory source group to
32453//   which the assignment will be assigned.
32454func (r *InventorySourceGroupsAssignedInventorySourcesService) Create(inventorySourceGroupId int64, assignedinventorysource *AssignedInventorySource) *InventorySourceGroupsAssignedInventorySourcesCreateCall {
32455	c := &InventorySourceGroupsAssignedInventorySourcesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32456	c.inventorySourceGroupId = inventorySourceGroupId
32457	c.assignedinventorysource = assignedinventorysource
32458	return c
32459}
32460
32461// AdvertiserId sets the optional parameter "advertiserId": The ID of
32462// the advertiser that owns the parent inventory source group. The
32463// parent partner will not have access to this assigned inventory
32464// source.
32465func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsAssignedInventorySourcesCreateCall {
32466	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
32467	return c
32468}
32469
32470// PartnerId sets the optional parameter "partnerId": The ID of the
32471// partner that owns the parent inventory source group. Only this
32472// partner will have write access to this assigned inventory source.
32473func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) PartnerId(partnerId int64) *InventorySourceGroupsAssignedInventorySourcesCreateCall {
32474	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
32475	return c
32476}
32477
32478// Fields allows partial responses to be retrieved. See
32479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32480// for more information.
32481func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) Fields(s ...googleapi.Field) *InventorySourceGroupsAssignedInventorySourcesCreateCall {
32482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32483	return c
32484}
32485
32486// Context sets the context to be used in this call's Do method. Any
32487// pending HTTP request will be aborted if the provided context is
32488// canceled.
32489func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) Context(ctx context.Context) *InventorySourceGroupsAssignedInventorySourcesCreateCall {
32490	c.ctx_ = ctx
32491	return c
32492}
32493
32494// Header returns an http.Header that can be modified by the caller to
32495// add HTTP headers to the request.
32496func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) Header() http.Header {
32497	if c.header_ == nil {
32498		c.header_ = make(http.Header)
32499	}
32500	return c.header_
32501}
32502
32503func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) doRequest(alt string) (*http.Response, error) {
32504	reqHeaders := make(http.Header)
32505	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
32506	for k, v := range c.header_ {
32507		reqHeaders[k] = v
32508	}
32509	reqHeaders.Set("User-Agent", c.s.userAgent())
32510	var body io.Reader = nil
32511	body, err := googleapi.WithoutDataWrapper.JSONReader(c.assignedinventorysource)
32512	if err != nil {
32513		return nil, err
32514	}
32515	reqHeaders.Set("Content-Type", "application/json")
32516	c.urlParams_.Set("alt", alt)
32517	c.urlParams_.Set("prettyPrint", "false")
32518	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources")
32519	urls += "?" + c.urlParams_.Encode()
32520	req, err := http.NewRequest("POST", urls, body)
32521	if err != nil {
32522		return nil, err
32523	}
32524	req.Header = reqHeaders
32525	googleapi.Expand(req.URL, map[string]string{
32526		"inventorySourceGroupId": strconv.FormatInt(c.inventorySourceGroupId, 10),
32527	})
32528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32529}
32530
32531// Do executes the "displayvideo.inventorySourceGroups.assignedInventorySources.create" call.
32532// Exactly one of *AssignedInventorySource or error will be non-nil. Any
32533// non-2xx status code is an error. Response headers are in either
32534// *AssignedInventorySource.ServerResponse.Header or (if a response was
32535// returned at all) in error.(*googleapi.Error).Header. Use
32536// googleapi.IsNotModified to check whether the returned error was
32537// because http.StatusNotModified was returned.
32538func (c *InventorySourceGroupsAssignedInventorySourcesCreateCall) Do(opts ...googleapi.CallOption) (*AssignedInventorySource, error) {
32539	gensupport.SetOptions(c.urlParams_, opts...)
32540	res, err := c.doRequest("json")
32541	if res != nil && res.StatusCode == http.StatusNotModified {
32542		if res.Body != nil {
32543			res.Body.Close()
32544		}
32545		return nil, &googleapi.Error{
32546			Code:   res.StatusCode,
32547			Header: res.Header,
32548		}
32549	}
32550	if err != nil {
32551		return nil, err
32552	}
32553	defer googleapi.CloseBody(res)
32554	if err := googleapi.CheckResponse(res); err != nil {
32555		return nil, err
32556	}
32557	ret := &AssignedInventorySource{
32558		ServerResponse: googleapi.ServerResponse{
32559			Header:         res.Header,
32560			HTTPStatusCode: res.StatusCode,
32561		},
32562	}
32563	target := &ret
32564	if err := gensupport.DecodeResponse(target, res); err != nil {
32565		return nil, err
32566	}
32567	return ret, nil
32568	// {
32569	//   "description": "Creates an assignment between an inventory source and an inventory source group.",
32570	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources",
32571	//   "httpMethod": "POST",
32572	//   "id": "displayvideo.inventorySourceGroups.assignedInventorySources.create",
32573	//   "parameterOrder": [
32574	//     "inventorySourceGroupId"
32575	//   ],
32576	//   "parameters": {
32577	//     "advertiserId": {
32578	//       "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.",
32579	//       "format": "int64",
32580	//       "location": "query",
32581	//       "type": "string"
32582	//     },
32583	//     "inventorySourceGroupId": {
32584	//       "description": "Required. The ID of the inventory source group to which the assignment will be assigned.",
32585	//       "format": "int64",
32586	//       "location": "path",
32587	//       "pattern": "^[^/]+$",
32588	//       "required": true,
32589	//       "type": "string"
32590	//     },
32591	//     "partnerId": {
32592	//       "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.",
32593	//       "format": "int64",
32594	//       "location": "query",
32595	//       "type": "string"
32596	//     }
32597	//   },
32598	//   "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources",
32599	//   "request": {
32600	//     "$ref": "AssignedInventorySource"
32601	//   },
32602	//   "response": {
32603	//     "$ref": "AssignedInventorySource"
32604	//   },
32605	//   "scopes": [
32606	//     "https://www.googleapis.com/auth/display-video"
32607	//   ]
32608	// }
32609
32610}
32611
32612// method id "displayvideo.inventorySourceGroups.assignedInventorySources.delete":
32613
32614type InventorySourceGroupsAssignedInventorySourcesDeleteCall struct {
32615	s                         *Service
32616	inventorySourceGroupId    int64
32617	assignedInventorySourceId int64
32618	urlParams_                gensupport.URLParams
32619	ctx_                      context.Context
32620	header_                   http.Header
32621}
32622
32623// Delete: Deletes the assignment between an inventory source and an
32624// inventory source group.
32625//
32626// - assignedInventorySourceId: The ID of the assigned inventory source
32627//   to delete.
32628// - inventorySourceGroupId: The ID of the inventory source group to
32629//   which this assignment is assigned.
32630func (r *InventorySourceGroupsAssignedInventorySourcesService) Delete(inventorySourceGroupId int64, assignedInventorySourceId int64) *InventorySourceGroupsAssignedInventorySourcesDeleteCall {
32631	c := &InventorySourceGroupsAssignedInventorySourcesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32632	c.inventorySourceGroupId = inventorySourceGroupId
32633	c.assignedInventorySourceId = assignedInventorySourceId
32634	return c
32635}
32636
32637// AdvertiserId sets the optional parameter "advertiserId": The ID of
32638// the advertiser that owns the parent inventory source group. The
32639// parent partner does not have access to this assigned inventory
32640// source.
32641func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsAssignedInventorySourcesDeleteCall {
32642	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
32643	return c
32644}
32645
32646// PartnerId sets the optional parameter "partnerId": The ID of the
32647// partner that owns the parent inventory source group. Only this
32648// partner has write access to this assigned inventory source.
32649func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) PartnerId(partnerId int64) *InventorySourceGroupsAssignedInventorySourcesDeleteCall {
32650	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
32651	return c
32652}
32653
32654// Fields allows partial responses to be retrieved. See
32655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32656// for more information.
32657func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) Fields(s ...googleapi.Field) *InventorySourceGroupsAssignedInventorySourcesDeleteCall {
32658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32659	return c
32660}
32661
32662// Context sets the context to be used in this call's Do method. Any
32663// pending HTTP request will be aborted if the provided context is
32664// canceled.
32665func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) Context(ctx context.Context) *InventorySourceGroupsAssignedInventorySourcesDeleteCall {
32666	c.ctx_ = ctx
32667	return c
32668}
32669
32670// Header returns an http.Header that can be modified by the caller to
32671// add HTTP headers to the request.
32672func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) Header() http.Header {
32673	if c.header_ == nil {
32674		c.header_ = make(http.Header)
32675	}
32676	return c.header_
32677}
32678
32679func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) doRequest(alt string) (*http.Response, error) {
32680	reqHeaders := make(http.Header)
32681	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
32682	for k, v := range c.header_ {
32683		reqHeaders[k] = v
32684	}
32685	reqHeaders.Set("User-Agent", c.s.userAgent())
32686	var body io.Reader = nil
32687	c.urlParams_.Set("alt", alt)
32688	c.urlParams_.Set("prettyPrint", "false")
32689	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources/{+assignedInventorySourceId}")
32690	urls += "?" + c.urlParams_.Encode()
32691	req, err := http.NewRequest("DELETE", urls, body)
32692	if err != nil {
32693		return nil, err
32694	}
32695	req.Header = reqHeaders
32696	googleapi.Expand(req.URL, map[string]string{
32697		"inventorySourceGroupId":    strconv.FormatInt(c.inventorySourceGroupId, 10),
32698		"assignedInventorySourceId": strconv.FormatInt(c.assignedInventorySourceId, 10),
32699	})
32700	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32701}
32702
32703// Do executes the "displayvideo.inventorySourceGroups.assignedInventorySources.delete" call.
32704// Exactly one of *Empty or error will be non-nil. Any non-2xx status
32705// code is an error. Response headers are in either
32706// *Empty.ServerResponse.Header or (if a response was returned at all)
32707// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
32708// check whether the returned error was because http.StatusNotModified
32709// was returned.
32710func (c *InventorySourceGroupsAssignedInventorySourcesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
32711	gensupport.SetOptions(c.urlParams_, opts...)
32712	res, err := c.doRequest("json")
32713	if res != nil && res.StatusCode == http.StatusNotModified {
32714		if res.Body != nil {
32715			res.Body.Close()
32716		}
32717		return nil, &googleapi.Error{
32718			Code:   res.StatusCode,
32719			Header: res.Header,
32720		}
32721	}
32722	if err != nil {
32723		return nil, err
32724	}
32725	defer googleapi.CloseBody(res)
32726	if err := googleapi.CheckResponse(res); err != nil {
32727		return nil, err
32728	}
32729	ret := &Empty{
32730		ServerResponse: googleapi.ServerResponse{
32731			Header:         res.Header,
32732			HTTPStatusCode: res.StatusCode,
32733		},
32734	}
32735	target := &ret
32736	if err := gensupport.DecodeResponse(target, res); err != nil {
32737		return nil, err
32738	}
32739	return ret, nil
32740	// {
32741	//   "description": "Deletes the assignment between an inventory source and an inventory source group.",
32742	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources/{assignedInventorySourcesId}",
32743	//   "httpMethod": "DELETE",
32744	//   "id": "displayvideo.inventorySourceGroups.assignedInventorySources.delete",
32745	//   "parameterOrder": [
32746	//     "inventorySourceGroupId",
32747	//     "assignedInventorySourceId"
32748	//   ],
32749	//   "parameters": {
32750	//     "advertiserId": {
32751	//       "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.",
32752	//       "format": "int64",
32753	//       "location": "query",
32754	//       "type": "string"
32755	//     },
32756	//     "assignedInventorySourceId": {
32757	//       "description": "Required. The ID of the assigned inventory source to delete.",
32758	//       "format": "int64",
32759	//       "location": "path",
32760	//       "pattern": "^[^/]+$",
32761	//       "required": true,
32762	//       "type": "string"
32763	//     },
32764	//     "inventorySourceGroupId": {
32765	//       "description": "Required. The ID of the inventory source group to which this assignment is assigned.",
32766	//       "format": "int64",
32767	//       "location": "path",
32768	//       "pattern": "^[^/]+$",
32769	//       "required": true,
32770	//       "type": "string"
32771	//     },
32772	//     "partnerId": {
32773	//       "description": "The ID of the partner that owns the parent inventory source group. Only this partner has write access to this assigned inventory source.",
32774	//       "format": "int64",
32775	//       "location": "query",
32776	//       "type": "string"
32777	//     }
32778	//   },
32779	//   "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources/{+assignedInventorySourceId}",
32780	//   "response": {
32781	//     "$ref": "Empty"
32782	//   },
32783	//   "scopes": [
32784	//     "https://www.googleapis.com/auth/display-video"
32785	//   ]
32786	// }
32787
32788}
32789
32790// method id "displayvideo.inventorySourceGroups.assignedInventorySources.list":
32791
32792type InventorySourceGroupsAssignedInventorySourcesListCall struct {
32793	s                      *Service
32794	inventorySourceGroupId int64
32795	urlParams_             gensupport.URLParams
32796	ifNoneMatch_           string
32797	ctx_                   context.Context
32798	header_                http.Header
32799}
32800
32801// List: Lists inventory sources assigned to an inventory source group.
32802//
32803// - inventorySourceGroupId: The ID of the inventory source group to
32804//   which these assignments are assigned.
32805func (r *InventorySourceGroupsAssignedInventorySourcesService) List(inventorySourceGroupId int64) *InventorySourceGroupsAssignedInventorySourcesListCall {
32806	c := &InventorySourceGroupsAssignedInventorySourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32807	c.inventorySourceGroupId = inventorySourceGroupId
32808	return c
32809}
32810
32811// AdvertiserId sets the optional parameter "advertiserId": The ID of
32812// the advertiser that has access to the assignment. If the parent
32813// inventory source group is partner-owned, only advertisers to which
32814// the parent group is explicitly shared can access the assigned
32815// inventory source.
32816func (c *InventorySourceGroupsAssignedInventorySourcesListCall) AdvertiserId(advertiserId int64) *InventorySourceGroupsAssignedInventorySourcesListCall {
32817	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
32818	return c
32819}
32820
32821// Filter sets the optional parameter "filter": Allows filtering by
32822// assigned inventory source fields. Supported syntax: * Filter
32823// expressions are made up of one or more restrictions. * Restrictions
32824// can be combined by the logical operator `OR`. * A restriction has the
32825// form of `{field} {operator} {value}`. * The operator must be `EQUALS
32826// (=)`. * Supported fields: - `assignedInventorySourceId` The length of
32827// this field should be no more than 500 characters.
32828func (c *InventorySourceGroupsAssignedInventorySourcesListCall) Filter(filter string) *InventorySourceGroupsAssignedInventorySourcesListCall {
32829	c.urlParams_.Set("filter", filter)
32830	return c
32831}
32832
32833// OrderBy sets the optional parameter "orderBy": Field by which to sort
32834// the list. Acceptable values are: * `assignedInventorySourceId`
32835// (default) The default sorting order is ascending. To specify
32836// descending order for a field, a suffix " desc" should be added to the
32837// field name. Example: `assignedInventorySourceId desc`.
32838func (c *InventorySourceGroupsAssignedInventorySourcesListCall) OrderBy(orderBy string) *InventorySourceGroupsAssignedInventorySourcesListCall {
32839	c.urlParams_.Set("orderBy", orderBy)
32840	return c
32841}
32842
32843// PageSize sets the optional parameter "pageSize": Requested page size.
32844// Must be between `1` and `100`. If unspecified will default to `100`.
32845// Returns error code `INVALID_ARGUMENT` if an invalid value is
32846// specified.
32847func (c *InventorySourceGroupsAssignedInventorySourcesListCall) PageSize(pageSize int64) *InventorySourceGroupsAssignedInventorySourcesListCall {
32848	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
32849	return c
32850}
32851
32852// PageToken sets the optional parameter "pageToken": A token
32853// identifying a page of results the server should return. Typically,
32854// this is the value of next_page_token returned from the previous call
32855// to `ListAssignedInventorySources` method. If not specified, the first
32856// page of results will be returned.
32857func (c *InventorySourceGroupsAssignedInventorySourcesListCall) PageToken(pageToken string) *InventorySourceGroupsAssignedInventorySourcesListCall {
32858	c.urlParams_.Set("pageToken", pageToken)
32859	return c
32860}
32861
32862// PartnerId sets the optional parameter "partnerId": The ID of the
32863// partner that has access to the assignment. If the parent inventory
32864// source group is advertiser-owned, the assignment cannot be accessed
32865// via a partner.
32866func (c *InventorySourceGroupsAssignedInventorySourcesListCall) PartnerId(partnerId int64) *InventorySourceGroupsAssignedInventorySourcesListCall {
32867	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
32868	return c
32869}
32870
32871// Fields allows partial responses to be retrieved. See
32872// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32873// for more information.
32874func (c *InventorySourceGroupsAssignedInventorySourcesListCall) Fields(s ...googleapi.Field) *InventorySourceGroupsAssignedInventorySourcesListCall {
32875	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32876	return c
32877}
32878
32879// IfNoneMatch sets the optional parameter which makes the operation
32880// fail if the object's ETag matches the given value. This is useful for
32881// getting updates only after the object has changed since the last
32882// request. Use googleapi.IsNotModified to check whether the response
32883// error from Do is the result of In-None-Match.
32884func (c *InventorySourceGroupsAssignedInventorySourcesListCall) IfNoneMatch(entityTag string) *InventorySourceGroupsAssignedInventorySourcesListCall {
32885	c.ifNoneMatch_ = entityTag
32886	return c
32887}
32888
32889// Context sets the context to be used in this call's Do method. Any
32890// pending HTTP request will be aborted if the provided context is
32891// canceled.
32892func (c *InventorySourceGroupsAssignedInventorySourcesListCall) Context(ctx context.Context) *InventorySourceGroupsAssignedInventorySourcesListCall {
32893	c.ctx_ = ctx
32894	return c
32895}
32896
32897// Header returns an http.Header that can be modified by the caller to
32898// add HTTP headers to the request.
32899func (c *InventorySourceGroupsAssignedInventorySourcesListCall) Header() http.Header {
32900	if c.header_ == nil {
32901		c.header_ = make(http.Header)
32902	}
32903	return c.header_
32904}
32905
32906func (c *InventorySourceGroupsAssignedInventorySourcesListCall) doRequest(alt string) (*http.Response, error) {
32907	reqHeaders := make(http.Header)
32908	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
32909	for k, v := range c.header_ {
32910		reqHeaders[k] = v
32911	}
32912	reqHeaders.Set("User-Agent", c.s.userAgent())
32913	if c.ifNoneMatch_ != "" {
32914		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
32915	}
32916	var body io.Reader = nil
32917	c.urlParams_.Set("alt", alt)
32918	c.urlParams_.Set("prettyPrint", "false")
32919	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources")
32920	urls += "?" + c.urlParams_.Encode()
32921	req, err := http.NewRequest("GET", urls, body)
32922	if err != nil {
32923		return nil, err
32924	}
32925	req.Header = reqHeaders
32926	googleapi.Expand(req.URL, map[string]string{
32927		"inventorySourceGroupId": strconv.FormatInt(c.inventorySourceGroupId, 10),
32928	})
32929	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32930}
32931
32932// Do executes the "displayvideo.inventorySourceGroups.assignedInventorySources.list" call.
32933// Exactly one of *ListAssignedInventorySourcesResponse or error will be
32934// non-nil. Any non-2xx status code is an error. Response headers are in
32935// either *ListAssignedInventorySourcesResponse.ServerResponse.Header or
32936// (if a response was returned at all) in
32937// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
32938// whether the returned error was because http.StatusNotModified was
32939// returned.
32940func (c *InventorySourceGroupsAssignedInventorySourcesListCall) Do(opts ...googleapi.CallOption) (*ListAssignedInventorySourcesResponse, error) {
32941	gensupport.SetOptions(c.urlParams_, opts...)
32942	res, err := c.doRequest("json")
32943	if res != nil && res.StatusCode == http.StatusNotModified {
32944		if res.Body != nil {
32945			res.Body.Close()
32946		}
32947		return nil, &googleapi.Error{
32948			Code:   res.StatusCode,
32949			Header: res.Header,
32950		}
32951	}
32952	if err != nil {
32953		return nil, err
32954	}
32955	defer googleapi.CloseBody(res)
32956	if err := googleapi.CheckResponse(res); err != nil {
32957		return nil, err
32958	}
32959	ret := &ListAssignedInventorySourcesResponse{
32960		ServerResponse: googleapi.ServerResponse{
32961			Header:         res.Header,
32962			HTTPStatusCode: res.StatusCode,
32963		},
32964	}
32965	target := &ret
32966	if err := gensupport.DecodeResponse(target, res); err != nil {
32967		return nil, err
32968	}
32969	return ret, nil
32970	// {
32971	//   "description": "Lists inventory sources assigned to an inventory source group.",
32972	//   "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources",
32973	//   "httpMethod": "GET",
32974	//   "id": "displayvideo.inventorySourceGroups.assignedInventorySources.list",
32975	//   "parameterOrder": [
32976	//     "inventorySourceGroupId"
32977	//   ],
32978	//   "parameters": {
32979	//     "advertiserId": {
32980	//       "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.",
32981	//       "format": "int64",
32982	//       "location": "query",
32983	//       "type": "string"
32984	//     },
32985	//     "filter": {
32986	//       "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.",
32987	//       "location": "query",
32988	//       "type": "string"
32989	//     },
32990	//     "inventorySourceGroupId": {
32991	//       "description": "Required. The ID of the inventory source group to which these assignments are assigned.",
32992	//       "format": "int64",
32993	//       "location": "path",
32994	//       "pattern": "^[^/]+$",
32995	//       "required": true,
32996	//       "type": "string"
32997	//     },
32998	//     "orderBy": {
32999	//       "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`.",
33000	//       "location": "query",
33001	//       "type": "string"
33002	//     },
33003	//     "pageSize": {
33004	//       "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.",
33005	//       "format": "int32",
33006	//       "location": "query",
33007	//       "type": "integer"
33008	//     },
33009	//     "pageToken": {
33010	//       "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.",
33011	//       "location": "query",
33012	//       "type": "string"
33013	//     },
33014	//     "partnerId": {
33015	//       "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.",
33016	//       "format": "int64",
33017	//       "location": "query",
33018	//       "type": "string"
33019	//     }
33020	//   },
33021	//   "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources",
33022	//   "response": {
33023	//     "$ref": "ListAssignedInventorySourcesResponse"
33024	//   },
33025	//   "scopes": [
33026	//     "https://www.googleapis.com/auth/display-video"
33027	//   ]
33028	// }
33029
33030}
33031
33032// Pages invokes f for each page of results.
33033// A non-nil error returned from f will halt the iteration.
33034// The provided context supersedes any context provided to the Context method.
33035func (c *InventorySourceGroupsAssignedInventorySourcesListCall) Pages(ctx context.Context, f func(*ListAssignedInventorySourcesResponse) error) error {
33036	c.ctx_ = ctx
33037	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
33038	for {
33039		x, err := c.Do()
33040		if err != nil {
33041			return err
33042		}
33043		if err := f(x); err != nil {
33044			return err
33045		}
33046		if x.NextPageToken == "" {
33047			return nil
33048		}
33049		c.PageToken(x.NextPageToken)
33050	}
33051}
33052
33053// method id "displayvideo.inventorySources.get":
33054
33055type InventorySourcesGetCall struct {
33056	s                 *Service
33057	inventorySourceId int64
33058	urlParams_        gensupport.URLParams
33059	ifNoneMatch_      string
33060	ctx_              context.Context
33061	header_           http.Header
33062}
33063
33064// Get: Gets an inventory source.
33065//
33066// - inventorySourceId: The ID of the inventory source to fetch.
33067func (r *InventorySourcesService) Get(inventorySourceId int64) *InventorySourcesGetCall {
33068	c := &InventorySourcesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33069	c.inventorySourceId = inventorySourceId
33070	return c
33071}
33072
33073// PartnerId sets the optional parameter "partnerId": Required. The ID
33074// of the DV360 partner to which the fetched inventory source is
33075// permissioned.
33076func (c *InventorySourcesGetCall) PartnerId(partnerId int64) *InventorySourcesGetCall {
33077	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
33078	return c
33079}
33080
33081// Fields allows partial responses to be retrieved. See
33082// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33083// for more information.
33084func (c *InventorySourcesGetCall) Fields(s ...googleapi.Field) *InventorySourcesGetCall {
33085	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33086	return c
33087}
33088
33089// IfNoneMatch sets the optional parameter which makes the operation
33090// fail if the object's ETag matches the given value. This is useful for
33091// getting updates only after the object has changed since the last
33092// request. Use googleapi.IsNotModified to check whether the response
33093// error from Do is the result of In-None-Match.
33094func (c *InventorySourcesGetCall) IfNoneMatch(entityTag string) *InventorySourcesGetCall {
33095	c.ifNoneMatch_ = entityTag
33096	return c
33097}
33098
33099// Context sets the context to be used in this call's Do method. Any
33100// pending HTTP request will be aborted if the provided context is
33101// canceled.
33102func (c *InventorySourcesGetCall) Context(ctx context.Context) *InventorySourcesGetCall {
33103	c.ctx_ = ctx
33104	return c
33105}
33106
33107// Header returns an http.Header that can be modified by the caller to
33108// add HTTP headers to the request.
33109func (c *InventorySourcesGetCall) Header() http.Header {
33110	if c.header_ == nil {
33111		c.header_ = make(http.Header)
33112	}
33113	return c.header_
33114}
33115
33116func (c *InventorySourcesGetCall) doRequest(alt string) (*http.Response, error) {
33117	reqHeaders := make(http.Header)
33118	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
33119	for k, v := range c.header_ {
33120		reqHeaders[k] = v
33121	}
33122	reqHeaders.Set("User-Agent", c.s.userAgent())
33123	if c.ifNoneMatch_ != "" {
33124		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33125	}
33126	var body io.Reader = nil
33127	c.urlParams_.Set("alt", alt)
33128	c.urlParams_.Set("prettyPrint", "false")
33129	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySources/{+inventorySourceId}")
33130	urls += "?" + c.urlParams_.Encode()
33131	req, err := http.NewRequest("GET", urls, body)
33132	if err != nil {
33133		return nil, err
33134	}
33135	req.Header = reqHeaders
33136	googleapi.Expand(req.URL, map[string]string{
33137		"inventorySourceId": strconv.FormatInt(c.inventorySourceId, 10),
33138	})
33139	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33140}
33141
33142// Do executes the "displayvideo.inventorySources.get" call.
33143// Exactly one of *InventorySource or error will be non-nil. Any non-2xx
33144// status code is an error. Response headers are in either
33145// *InventorySource.ServerResponse.Header or (if a response was returned
33146// at all) in error.(*googleapi.Error).Header. Use
33147// googleapi.IsNotModified to check whether the returned error was
33148// because http.StatusNotModified was returned.
33149func (c *InventorySourcesGetCall) Do(opts ...googleapi.CallOption) (*InventorySource, error) {
33150	gensupport.SetOptions(c.urlParams_, opts...)
33151	res, err := c.doRequest("json")
33152	if res != nil && res.StatusCode == http.StatusNotModified {
33153		if res.Body != nil {
33154			res.Body.Close()
33155		}
33156		return nil, &googleapi.Error{
33157			Code:   res.StatusCode,
33158			Header: res.Header,
33159		}
33160	}
33161	if err != nil {
33162		return nil, err
33163	}
33164	defer googleapi.CloseBody(res)
33165	if err := googleapi.CheckResponse(res); err != nil {
33166		return nil, err
33167	}
33168	ret := &InventorySource{
33169		ServerResponse: googleapi.ServerResponse{
33170			Header:         res.Header,
33171			HTTPStatusCode: res.StatusCode,
33172		},
33173	}
33174	target := &ret
33175	if err := gensupport.DecodeResponse(target, res); err != nil {
33176		return nil, err
33177	}
33178	return ret, nil
33179	// {
33180	//   "description": "Gets an inventory source.",
33181	//   "flatPath": "v1/inventorySources/{inventorySourcesId}",
33182	//   "httpMethod": "GET",
33183	//   "id": "displayvideo.inventorySources.get",
33184	//   "parameterOrder": [
33185	//     "inventorySourceId"
33186	//   ],
33187	//   "parameters": {
33188	//     "inventorySourceId": {
33189	//       "description": "Required. The ID of the inventory source to fetch.",
33190	//       "format": "int64",
33191	//       "location": "path",
33192	//       "pattern": "^[^/]+$",
33193	//       "required": true,
33194	//       "type": "string"
33195	//     },
33196	//     "partnerId": {
33197	//       "description": "Required. The ID of the DV360 partner to which the fetched inventory source is permissioned.",
33198	//       "format": "int64",
33199	//       "location": "query",
33200	//       "type": "string"
33201	//     }
33202	//   },
33203	//   "path": "v1/inventorySources/{+inventorySourceId}",
33204	//   "response": {
33205	//     "$ref": "InventorySource"
33206	//   },
33207	//   "scopes": [
33208	//     "https://www.googleapis.com/auth/display-video"
33209	//   ]
33210	// }
33211
33212}
33213
33214// method id "displayvideo.inventorySources.list":
33215
33216type InventorySourcesListCall struct {
33217	s            *Service
33218	urlParams_   gensupport.URLParams
33219	ifNoneMatch_ string
33220	ctx_         context.Context
33221	header_      http.Header
33222}
33223
33224// List: Lists inventory sources that are accessible to the current
33225// user. The order is defined by the order_by parameter. If a filter by
33226// entity_status is not specified, inventory sources with entity status
33227// `ENTITY_STATUS_ARCHIVED` will not be included in the results.
33228func (r *InventorySourcesService) List() *InventorySourcesListCall {
33229	c := &InventorySourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33230	return c
33231}
33232
33233// AdvertiserId sets the optional parameter "advertiserId": The ID of
33234// the advertiser that has access to the inventory source.
33235func (c *InventorySourcesListCall) AdvertiserId(advertiserId int64) *InventorySourcesListCall {
33236	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
33237	return c
33238}
33239
33240// Filter sets the optional parameter "filter": Allows filtering by
33241// inventory source properties. Supported syntax: * Filter expressions
33242// are made up of one or more restrictions. * Restrictions can be
33243// combined by `AND` or `OR` logical operators. A sequence of
33244// restrictions implicitly uses `AND`. * A restriction has the form of
33245// `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. *
33246// Supported fields: - `status.entityStatus` - `commitment` -
33247// `deliveryMethod` - `rateDetails.rateType` - `exchange` Examples: *
33248// All active inventory sources:
33249// `status.entityStatus="ENTITY_STATUS_ACTIVE" * Inventory sources
33250// belonging to Google Ad Manager or Rubicon exchanges:
33251// `exchange="EXCHANGE_GOOGLE_AD_MANAGER" OR
33252// exchange="EXCHANGE_RUBICON" The length of this field should be no
33253// more than 500 characters.
33254func (c *InventorySourcesListCall) Filter(filter string) *InventorySourcesListCall {
33255	c.urlParams_.Set("filter", filter)
33256	return c
33257}
33258
33259// OrderBy sets the optional parameter "orderBy": Field by which to sort
33260// the list. Acceptable values are: * `displayName` (default) The
33261// default sorting order is ascending. To specify descending order for a
33262// field, a suffix "desc" should be added to the field name. For
33263// example, `displayName desc`.
33264func (c *InventorySourcesListCall) OrderBy(orderBy string) *InventorySourcesListCall {
33265	c.urlParams_.Set("orderBy", orderBy)
33266	return c
33267}
33268
33269// PageSize sets the optional parameter "pageSize": Requested page size.
33270// Must be between `1` and `100`. If unspecified will default to `100`.
33271func (c *InventorySourcesListCall) PageSize(pageSize int64) *InventorySourcesListCall {
33272	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
33273	return c
33274}
33275
33276// PageToken sets the optional parameter "pageToken": A token
33277// identifying a page of results the server should return. Typically,
33278// this is the value of next_page_token returned from the previous call
33279// to `ListInventorySources` method. If not specified, the first page of
33280// results will be returned.
33281func (c *InventorySourcesListCall) PageToken(pageToken string) *InventorySourcesListCall {
33282	c.urlParams_.Set("pageToken", pageToken)
33283	return c
33284}
33285
33286// PartnerId sets the optional parameter "partnerId": The ID of the
33287// partner that has access to the inventory source.
33288func (c *InventorySourcesListCall) PartnerId(partnerId int64) *InventorySourcesListCall {
33289	c.urlParams_.Set("partnerId", fmt.Sprint(partnerId))
33290	return c
33291}
33292
33293// Fields allows partial responses to be retrieved. See
33294// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33295// for more information.
33296func (c *InventorySourcesListCall) Fields(s ...googleapi.Field) *InventorySourcesListCall {
33297	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33298	return c
33299}
33300
33301// IfNoneMatch sets the optional parameter which makes the operation
33302// fail if the object's ETag matches the given value. This is useful for
33303// getting updates only after the object has changed since the last
33304// request. Use googleapi.IsNotModified to check whether the response
33305// error from Do is the result of In-None-Match.
33306func (c *InventorySourcesListCall) IfNoneMatch(entityTag string) *InventorySourcesListCall {
33307	c.ifNoneMatch_ = entityTag
33308	return c
33309}
33310
33311// Context sets the context to be used in this call's Do method. Any
33312// pending HTTP request will be aborted if the provided context is
33313// canceled.
33314func (c *InventorySourcesListCall) Context(ctx context.Context) *InventorySourcesListCall {
33315	c.ctx_ = ctx
33316	return c
33317}
33318
33319// Header returns an http.Header that can be modified by the caller to
33320// add HTTP headers to the request.
33321func (c *InventorySourcesListCall) Header() http.Header {
33322	if c.header_ == nil {
33323		c.header_ = make(http.Header)
33324	}
33325	return c.header_
33326}
33327
33328func (c *InventorySourcesListCall) doRequest(alt string) (*http.Response, error) {
33329	reqHeaders := make(http.Header)
33330	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
33331	for k, v := range c.header_ {
33332		reqHeaders[k] = v
33333	}
33334	reqHeaders.Set("User-Agent", c.s.userAgent())
33335	if c.ifNoneMatch_ != "" {
33336		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33337	}
33338	var body io.Reader = nil
33339	c.urlParams_.Set("alt", alt)
33340	c.urlParams_.Set("prettyPrint", "false")
33341	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/inventorySources")
33342	urls += "?" + c.urlParams_.Encode()
33343	req, err := http.NewRequest("GET", urls, body)
33344	if err != nil {
33345		return nil, err
33346	}
33347	req.Header = reqHeaders
33348	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33349}
33350
33351// Do executes the "displayvideo.inventorySources.list" call.
33352// Exactly one of *ListInventorySourcesResponse or error will be
33353// non-nil. Any non-2xx status code is an error. Response headers are in
33354// either *ListInventorySourcesResponse.ServerResponse.Header or (if a
33355// response was returned at all) in error.(*googleapi.Error).Header. Use
33356// googleapi.IsNotModified to check whether the returned error was
33357// because http.StatusNotModified was returned.
33358func (c *InventorySourcesListCall) Do(opts ...googleapi.CallOption) (*ListInventorySourcesResponse, error) {
33359	gensupport.SetOptions(c.urlParams_, opts...)
33360	res, err := c.doRequest("json")
33361	if res != nil && res.StatusCode == http.StatusNotModified {
33362		if res.Body != nil {
33363			res.Body.Close()
33364		}
33365		return nil, &googleapi.Error{
33366			Code:   res.StatusCode,
33367			Header: res.Header,
33368		}
33369	}
33370	if err != nil {
33371		return nil, err
33372	}
33373	defer googleapi.CloseBody(res)
33374	if err := googleapi.CheckResponse(res); err != nil {
33375		return nil, err
33376	}
33377	ret := &ListInventorySourcesResponse{
33378		ServerResponse: googleapi.ServerResponse{
33379			Header:         res.Header,
33380			HTTPStatusCode: res.StatusCode,
33381		},
33382	}
33383	target := &ret
33384	if err := gensupport.DecodeResponse(target, res); err != nil {
33385		return nil, err
33386	}
33387	return ret, nil
33388	// {
33389	//   "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.",
33390	//   "flatPath": "v1/inventorySources",
33391	//   "httpMethod": "GET",
33392	//   "id": "displayvideo.inventorySources.list",
33393	//   "parameterOrder": [],
33394	//   "parameters": {
33395	//     "advertiserId": {
33396	//       "description": "The ID of the advertiser that has access to the inventory source.",
33397	//       "format": "int64",
33398	//       "location": "query",
33399	//       "type": "string"
33400	//     },
33401	//     "filter": {
33402	//       "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.",
33403	//       "location": "query",
33404	//       "type": "string"
33405	//     },
33406	//     "orderBy": {
33407	//       "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`.",
33408	//       "location": "query",
33409	//       "type": "string"
33410	//     },
33411	//     "pageSize": {
33412	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
33413	//       "format": "int32",
33414	//       "location": "query",
33415	//       "type": "integer"
33416	//     },
33417	//     "pageToken": {
33418	//       "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.",
33419	//       "location": "query",
33420	//       "type": "string"
33421	//     },
33422	//     "partnerId": {
33423	//       "description": "The ID of the partner that has access to the inventory source.",
33424	//       "format": "int64",
33425	//       "location": "query",
33426	//       "type": "string"
33427	//     }
33428	//   },
33429	//   "path": "v1/inventorySources",
33430	//   "response": {
33431	//     "$ref": "ListInventorySourcesResponse"
33432	//   },
33433	//   "scopes": [
33434	//     "https://www.googleapis.com/auth/display-video"
33435	//   ]
33436	// }
33437
33438}
33439
33440// Pages invokes f for each page of results.
33441// A non-nil error returned from f will halt the iteration.
33442// The provided context supersedes any context provided to the Context method.
33443func (c *InventorySourcesListCall) Pages(ctx context.Context, f func(*ListInventorySourcesResponse) error) error {
33444	c.ctx_ = ctx
33445	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
33446	for {
33447		x, err := c.Do()
33448		if err != nil {
33449			return err
33450		}
33451		if err := f(x); err != nil {
33452			return err
33453		}
33454		if x.NextPageToken == "" {
33455			return nil
33456		}
33457		c.PageToken(x.NextPageToken)
33458	}
33459}
33460
33461// method id "displayvideo.media.download":
33462
33463type MediaDownloadCall struct {
33464	s            *Service
33465	resourceName string
33466	urlParams_   gensupport.URLParams
33467	ifNoneMatch_ string
33468	ctx_         context.Context
33469	header_      http.Header
33470}
33471
33472// Download: Downloads media. Download is supported on the URI
33473// `/download/{resource_name=**}?alt=media.` **Note**: Download requests
33474// will not be successful without including `alt=media` query string.
33475//
33476// - resourceName: Name of the media that is being downloaded. See
33477//   ReadRequest.resource_name.
33478func (r *MediaService) Download(resourceName string) *MediaDownloadCall {
33479	c := &MediaDownloadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33480	c.resourceName = resourceName
33481	return c
33482}
33483
33484// Fields allows partial responses to be retrieved. See
33485// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33486// for more information.
33487func (c *MediaDownloadCall) Fields(s ...googleapi.Field) *MediaDownloadCall {
33488	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33489	return c
33490}
33491
33492// IfNoneMatch sets the optional parameter which makes the operation
33493// fail if the object's ETag matches the given value. This is useful for
33494// getting updates only after the object has changed since the last
33495// request. Use googleapi.IsNotModified to check whether the response
33496// error from Do is the result of In-None-Match.
33497func (c *MediaDownloadCall) IfNoneMatch(entityTag string) *MediaDownloadCall {
33498	c.ifNoneMatch_ = entityTag
33499	return c
33500}
33501
33502// Context sets the context to be used in this call's Do and Download
33503// methods. Any pending HTTP request will be aborted if the provided
33504// context is canceled.
33505func (c *MediaDownloadCall) Context(ctx context.Context) *MediaDownloadCall {
33506	c.ctx_ = ctx
33507	return c
33508}
33509
33510// Header returns an http.Header that can be modified by the caller to
33511// add HTTP headers to the request.
33512func (c *MediaDownloadCall) Header() http.Header {
33513	if c.header_ == nil {
33514		c.header_ = make(http.Header)
33515	}
33516	return c.header_
33517}
33518
33519func (c *MediaDownloadCall) doRequest(alt string) (*http.Response, error) {
33520	reqHeaders := make(http.Header)
33521	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
33522	for k, v := range c.header_ {
33523		reqHeaders[k] = v
33524	}
33525	reqHeaders.Set("User-Agent", c.s.userAgent())
33526	if c.ifNoneMatch_ != "" {
33527		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33528	}
33529	var body io.Reader = nil
33530	c.urlParams_.Set("alt", alt)
33531	c.urlParams_.Set("prettyPrint", "false")
33532	urls := googleapi.ResolveRelative(c.s.BasePath, "download/{+resourceName}")
33533	urls += "?" + c.urlParams_.Encode()
33534	req, err := http.NewRequest("GET", urls, body)
33535	if err != nil {
33536		return nil, err
33537	}
33538	req.Header = reqHeaders
33539	googleapi.Expand(req.URL, map[string]string{
33540		"resourceName": c.resourceName,
33541	})
33542	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33543}
33544
33545// Download fetches the API endpoint's "media" value, instead of the normal
33546// API response value. If the returned error is nil, the Response is guaranteed to
33547// have a 2xx status code. Callers must close the Response.Body as usual.
33548func (c *MediaDownloadCall) Download(opts ...googleapi.CallOption) (*http.Response, error) {
33549	gensupport.SetOptions(c.urlParams_, opts...)
33550	res, err := c.doRequest("media")
33551	if err != nil {
33552		return nil, err
33553	}
33554	if err := googleapi.CheckResponse(res); err != nil {
33555		res.Body.Close()
33556		return nil, err
33557	}
33558	return res, nil
33559}
33560
33561// Do executes the "displayvideo.media.download" call.
33562// Exactly one of *GoogleBytestreamMedia or error will be non-nil. Any
33563// non-2xx status code is an error. Response headers are in either
33564// *GoogleBytestreamMedia.ServerResponse.Header or (if a response was
33565// returned at all) in error.(*googleapi.Error).Header. Use
33566// googleapi.IsNotModified to check whether the returned error was
33567// because http.StatusNotModified was returned.
33568func (c *MediaDownloadCall) Do(opts ...googleapi.CallOption) (*GoogleBytestreamMedia, error) {
33569	gensupport.SetOptions(c.urlParams_, opts...)
33570	res, err := c.doRequest("json")
33571	if res != nil && res.StatusCode == http.StatusNotModified {
33572		if res.Body != nil {
33573			res.Body.Close()
33574		}
33575		return nil, &googleapi.Error{
33576			Code:   res.StatusCode,
33577			Header: res.Header,
33578		}
33579	}
33580	if err != nil {
33581		return nil, err
33582	}
33583	defer googleapi.CloseBody(res)
33584	if err := googleapi.CheckResponse(res); err != nil {
33585		return nil, err
33586	}
33587	ret := &GoogleBytestreamMedia{
33588		ServerResponse: googleapi.ServerResponse{
33589			Header:         res.Header,
33590			HTTPStatusCode: res.StatusCode,
33591		},
33592	}
33593	target := &ret
33594	if err := gensupport.DecodeResponse(target, res); err != nil {
33595		return nil, err
33596	}
33597	return ret, nil
33598	// {
33599	//   "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.",
33600	//   "flatPath": "download/{downloadId}",
33601	//   "httpMethod": "GET",
33602	//   "id": "displayvideo.media.download",
33603	//   "parameterOrder": [
33604	//     "resourceName"
33605	//   ],
33606	//   "parameters": {
33607	//     "resourceName": {
33608	//       "description": "Name of the media that is being downloaded. See ReadRequest.resource_name.",
33609	//       "location": "path",
33610	//       "pattern": "^.*$",
33611	//       "required": true,
33612	//       "type": "string"
33613	//     }
33614	//   },
33615	//   "path": "download/{+resourceName}",
33616	//   "response": {
33617	//     "$ref": "GoogleBytestreamMedia"
33618	//   },
33619	//   "scopes": [
33620	//     "https://www.googleapis.com/auth/display-video",
33621	//     "https://www.googleapis.com/auth/doubleclickbidmanager"
33622	//   ],
33623	//   "supportsMediaDownload": true
33624	// }
33625
33626}
33627
33628// method id "displayvideo.partners.bulkEditPartnerAssignedTargetingOptions":
33629
33630type PartnersBulkEditPartnerAssignedTargetingOptionsCall struct {
33631	s                                              *Service
33632	partnerId                                      int64
33633	bulkeditpartnerassignedtargetingoptionsrequest *BulkEditPartnerAssignedTargetingOptionsRequest
33634	urlParams_                                     gensupport.URLParams
33635	ctx_                                           context.Context
33636	header_                                        http.Header
33637}
33638
33639// BulkEditPartnerAssignedTargetingOptions: Bulk edits targeting options
33640// under a single partner. The operation will delete the assigned
33641// targeting options provided in
33642// BulkEditPartnerAssignedTargetingOptionsRequest.deleteRequests and
33643// then create the assigned targeting options provided in
33644// BulkEditPartnerAssignedTargetingOptionsRequest.createRequests .
33645//
33646// - partnerId: The ID of the partner.
33647func (r *PartnersService) BulkEditPartnerAssignedTargetingOptions(partnerId int64, bulkeditpartnerassignedtargetingoptionsrequest *BulkEditPartnerAssignedTargetingOptionsRequest) *PartnersBulkEditPartnerAssignedTargetingOptionsCall {
33648	c := &PartnersBulkEditPartnerAssignedTargetingOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33649	c.partnerId = partnerId
33650	c.bulkeditpartnerassignedtargetingoptionsrequest = bulkeditpartnerassignedtargetingoptionsrequest
33651	return c
33652}
33653
33654// Fields allows partial responses to be retrieved. See
33655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33656// for more information.
33657func (c *PartnersBulkEditPartnerAssignedTargetingOptionsCall) Fields(s ...googleapi.Field) *PartnersBulkEditPartnerAssignedTargetingOptionsCall {
33658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33659	return c
33660}
33661
33662// Context sets the context to be used in this call's Do method. Any
33663// pending HTTP request will be aborted if the provided context is
33664// canceled.
33665func (c *PartnersBulkEditPartnerAssignedTargetingOptionsCall) Context(ctx context.Context) *PartnersBulkEditPartnerAssignedTargetingOptionsCall {
33666	c.ctx_ = ctx
33667	return c
33668}
33669
33670// Header returns an http.Header that can be modified by the caller to
33671// add HTTP headers to the request.
33672func (c *PartnersBulkEditPartnerAssignedTargetingOptionsCall) Header() http.Header {
33673	if c.header_ == nil {
33674		c.header_ = make(http.Header)
33675	}
33676	return c.header_
33677}
33678
33679func (c *PartnersBulkEditPartnerAssignedTargetingOptionsCall) doRequest(alt string) (*http.Response, error) {
33680	reqHeaders := make(http.Header)
33681	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
33682	for k, v := range c.header_ {
33683		reqHeaders[k] = v
33684	}
33685	reqHeaders.Set("User-Agent", c.s.userAgent())
33686	var body io.Reader = nil
33687	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditpartnerassignedtargetingoptionsrequest)
33688	if err != nil {
33689		return nil, err
33690	}
33691	reqHeaders.Set("Content-Type", "application/json")
33692	c.urlParams_.Set("alt", alt)
33693	c.urlParams_.Set("prettyPrint", "false")
33694	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}:bulkEditPartnerAssignedTargetingOptions")
33695	urls += "?" + c.urlParams_.Encode()
33696	req, err := http.NewRequest("POST", urls, body)
33697	if err != nil {
33698		return nil, err
33699	}
33700	req.Header = reqHeaders
33701	googleapi.Expand(req.URL, map[string]string{
33702		"partnerId": strconv.FormatInt(c.partnerId, 10),
33703	})
33704	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33705}
33706
33707// Do executes the "displayvideo.partners.bulkEditPartnerAssignedTargetingOptions" call.
33708// Exactly one of *BulkEditPartnerAssignedTargetingOptionsResponse or
33709// error will be non-nil. Any non-2xx status code is an error. Response
33710// headers are in either
33711// *BulkEditPartnerAssignedTargetingOptionsResponse.ServerResponse.Header
33712//  or (if a response was returned at all) in
33713// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
33714// whether the returned error was because http.StatusNotModified was
33715// returned.
33716func (c *PartnersBulkEditPartnerAssignedTargetingOptionsCall) Do(opts ...googleapi.CallOption) (*BulkEditPartnerAssignedTargetingOptionsResponse, error) {
33717	gensupport.SetOptions(c.urlParams_, opts...)
33718	res, err := c.doRequest("json")
33719	if res != nil && res.StatusCode == http.StatusNotModified {
33720		if res.Body != nil {
33721			res.Body.Close()
33722		}
33723		return nil, &googleapi.Error{
33724			Code:   res.StatusCode,
33725			Header: res.Header,
33726		}
33727	}
33728	if err != nil {
33729		return nil, err
33730	}
33731	defer googleapi.CloseBody(res)
33732	if err := googleapi.CheckResponse(res); err != nil {
33733		return nil, err
33734	}
33735	ret := &BulkEditPartnerAssignedTargetingOptionsResponse{
33736		ServerResponse: googleapi.ServerResponse{
33737			Header:         res.Header,
33738			HTTPStatusCode: res.StatusCode,
33739		},
33740	}
33741	target := &ret
33742	if err := gensupport.DecodeResponse(target, res); err != nil {
33743		return nil, err
33744	}
33745	return ret, nil
33746	// {
33747	//   "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 .",
33748	//   "flatPath": "v1/partners/{partnersId}:bulkEditPartnerAssignedTargetingOptions",
33749	//   "httpMethod": "POST",
33750	//   "id": "displayvideo.partners.bulkEditPartnerAssignedTargetingOptions",
33751	//   "parameterOrder": [
33752	//     "partnerId"
33753	//   ],
33754	//   "parameters": {
33755	//     "partnerId": {
33756	//       "description": "Required. The ID of the partner.",
33757	//       "format": "int64",
33758	//       "location": "path",
33759	//       "pattern": "^[^/]+$",
33760	//       "required": true,
33761	//       "type": "string"
33762	//     }
33763	//   },
33764	//   "path": "v1/partners/{+partnerId}:bulkEditPartnerAssignedTargetingOptions",
33765	//   "request": {
33766	//     "$ref": "BulkEditPartnerAssignedTargetingOptionsRequest"
33767	//   },
33768	//   "response": {
33769	//     "$ref": "BulkEditPartnerAssignedTargetingOptionsResponse"
33770	//   },
33771	//   "scopes": [
33772	//     "https://www.googleapis.com/auth/display-video"
33773	//   ]
33774	// }
33775
33776}
33777
33778// method id "displayvideo.partners.get":
33779
33780type PartnersGetCall struct {
33781	s            *Service
33782	partnerId    int64
33783	urlParams_   gensupport.URLParams
33784	ifNoneMatch_ string
33785	ctx_         context.Context
33786	header_      http.Header
33787}
33788
33789// Get: Gets a partner.
33790//
33791// - partnerId: The ID of the partner to fetch.
33792func (r *PartnersService) Get(partnerId int64) *PartnersGetCall {
33793	c := &PartnersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33794	c.partnerId = partnerId
33795	return c
33796}
33797
33798// Fields allows partial responses to be retrieved. See
33799// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33800// for more information.
33801func (c *PartnersGetCall) Fields(s ...googleapi.Field) *PartnersGetCall {
33802	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33803	return c
33804}
33805
33806// IfNoneMatch sets the optional parameter which makes the operation
33807// fail if the object's ETag matches the given value. This is useful for
33808// getting updates only after the object has changed since the last
33809// request. Use googleapi.IsNotModified to check whether the response
33810// error from Do is the result of In-None-Match.
33811func (c *PartnersGetCall) IfNoneMatch(entityTag string) *PartnersGetCall {
33812	c.ifNoneMatch_ = entityTag
33813	return c
33814}
33815
33816// Context sets the context to be used in this call's Do method. Any
33817// pending HTTP request will be aborted if the provided context is
33818// canceled.
33819func (c *PartnersGetCall) Context(ctx context.Context) *PartnersGetCall {
33820	c.ctx_ = ctx
33821	return c
33822}
33823
33824// Header returns an http.Header that can be modified by the caller to
33825// add HTTP headers to the request.
33826func (c *PartnersGetCall) Header() http.Header {
33827	if c.header_ == nil {
33828		c.header_ = make(http.Header)
33829	}
33830	return c.header_
33831}
33832
33833func (c *PartnersGetCall) doRequest(alt string) (*http.Response, error) {
33834	reqHeaders := make(http.Header)
33835	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
33836	for k, v := range c.header_ {
33837		reqHeaders[k] = v
33838	}
33839	reqHeaders.Set("User-Agent", c.s.userAgent())
33840	if c.ifNoneMatch_ != "" {
33841		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33842	}
33843	var body io.Reader = nil
33844	c.urlParams_.Set("alt", alt)
33845	c.urlParams_.Set("prettyPrint", "false")
33846	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}")
33847	urls += "?" + c.urlParams_.Encode()
33848	req, err := http.NewRequest("GET", urls, body)
33849	if err != nil {
33850		return nil, err
33851	}
33852	req.Header = reqHeaders
33853	googleapi.Expand(req.URL, map[string]string{
33854		"partnerId": strconv.FormatInt(c.partnerId, 10),
33855	})
33856	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33857}
33858
33859// Do executes the "displayvideo.partners.get" call.
33860// Exactly one of *Partner or error will be non-nil. Any non-2xx status
33861// code is an error. Response headers are in either
33862// *Partner.ServerResponse.Header or (if a response was returned at all)
33863// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
33864// check whether the returned error was because http.StatusNotModified
33865// was returned.
33866func (c *PartnersGetCall) Do(opts ...googleapi.CallOption) (*Partner, error) {
33867	gensupport.SetOptions(c.urlParams_, opts...)
33868	res, err := c.doRequest("json")
33869	if res != nil && res.StatusCode == http.StatusNotModified {
33870		if res.Body != nil {
33871			res.Body.Close()
33872		}
33873		return nil, &googleapi.Error{
33874			Code:   res.StatusCode,
33875			Header: res.Header,
33876		}
33877	}
33878	if err != nil {
33879		return nil, err
33880	}
33881	defer googleapi.CloseBody(res)
33882	if err := googleapi.CheckResponse(res); err != nil {
33883		return nil, err
33884	}
33885	ret := &Partner{
33886		ServerResponse: googleapi.ServerResponse{
33887			Header:         res.Header,
33888			HTTPStatusCode: res.StatusCode,
33889		},
33890	}
33891	target := &ret
33892	if err := gensupport.DecodeResponse(target, res); err != nil {
33893		return nil, err
33894	}
33895	return ret, nil
33896	// {
33897	//   "description": "Gets a partner.",
33898	//   "flatPath": "v1/partners/{partnersId}",
33899	//   "httpMethod": "GET",
33900	//   "id": "displayvideo.partners.get",
33901	//   "parameterOrder": [
33902	//     "partnerId"
33903	//   ],
33904	//   "parameters": {
33905	//     "partnerId": {
33906	//       "description": "Required. The ID of the partner to fetch.",
33907	//       "format": "int64",
33908	//       "location": "path",
33909	//       "pattern": "^[^/]+$",
33910	//       "required": true,
33911	//       "type": "string"
33912	//     }
33913	//   },
33914	//   "path": "v1/partners/{+partnerId}",
33915	//   "response": {
33916	//     "$ref": "Partner"
33917	//   },
33918	//   "scopes": [
33919	//     "https://www.googleapis.com/auth/display-video"
33920	//   ]
33921	// }
33922
33923}
33924
33925// method id "displayvideo.partners.list":
33926
33927type PartnersListCall struct {
33928	s            *Service
33929	urlParams_   gensupport.URLParams
33930	ifNoneMatch_ string
33931	ctx_         context.Context
33932	header_      http.Header
33933}
33934
33935// List: Lists partners that are accessible to the current user. The
33936// order is defined by the order_by parameter.
33937func (r *PartnersService) List() *PartnersListCall {
33938	c := &PartnersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33939	return c
33940}
33941
33942// Filter sets the optional parameter "filter": Allows filtering by
33943// partner properties. Supported syntax: * Filter expressions are made
33944// up of one or more restrictions. * Restrictions can be combined by
33945// `AND` or `OR` logical operators. A sequence of restrictions
33946// implicitly uses `AND`. * A restriction has the form of `{field}
33947// {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported
33948// fields: - `entityStatus` Examples: * All active partners:
33949// `entityStatus="ENTITY_STATUS_ACTIVE" The length of this field should
33950// be no more than 500 characters.
33951func (c *PartnersListCall) Filter(filter string) *PartnersListCall {
33952	c.urlParams_.Set("filter", filter)
33953	return c
33954}
33955
33956// OrderBy sets the optional parameter "orderBy": Field by which to sort
33957// the list. Acceptable values are: * `displayName` The default sorting
33958// order is ascending. To specify descending order for a field, a suffix
33959// "desc" should be added to the field name. For example, `displayName
33960// desc`.
33961func (c *PartnersListCall) OrderBy(orderBy string) *PartnersListCall {
33962	c.urlParams_.Set("orderBy", orderBy)
33963	return c
33964}
33965
33966// PageSize sets the optional parameter "pageSize": Requested page size.
33967// Must be between `1` and `100`. If unspecified will default to `100`.
33968func (c *PartnersListCall) PageSize(pageSize int64) *PartnersListCall {
33969	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
33970	return c
33971}
33972
33973// PageToken sets the optional parameter "pageToken": A token
33974// identifying a page of results the server should return. Typically,
33975// this is the value of next_page_token returned from the previous call
33976// to `ListPartners` method. If not specified, the first page of results
33977// will be returned.
33978func (c *PartnersListCall) PageToken(pageToken string) *PartnersListCall {
33979	c.urlParams_.Set("pageToken", pageToken)
33980	return c
33981}
33982
33983// Fields allows partial responses to be retrieved. See
33984// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33985// for more information.
33986func (c *PartnersListCall) Fields(s ...googleapi.Field) *PartnersListCall {
33987	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33988	return c
33989}
33990
33991// IfNoneMatch sets the optional parameter which makes the operation
33992// fail if the object's ETag matches the given value. This is useful for
33993// getting updates only after the object has changed since the last
33994// request. Use googleapi.IsNotModified to check whether the response
33995// error from Do is the result of In-None-Match.
33996func (c *PartnersListCall) IfNoneMatch(entityTag string) *PartnersListCall {
33997	c.ifNoneMatch_ = entityTag
33998	return c
33999}
34000
34001// Context sets the context to be used in this call's Do method. Any
34002// pending HTTP request will be aborted if the provided context is
34003// canceled.
34004func (c *PartnersListCall) Context(ctx context.Context) *PartnersListCall {
34005	c.ctx_ = ctx
34006	return c
34007}
34008
34009// Header returns an http.Header that can be modified by the caller to
34010// add HTTP headers to the request.
34011func (c *PartnersListCall) Header() http.Header {
34012	if c.header_ == nil {
34013		c.header_ = make(http.Header)
34014	}
34015	return c.header_
34016}
34017
34018func (c *PartnersListCall) doRequest(alt string) (*http.Response, error) {
34019	reqHeaders := make(http.Header)
34020	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
34021	for k, v := range c.header_ {
34022		reqHeaders[k] = v
34023	}
34024	reqHeaders.Set("User-Agent", c.s.userAgent())
34025	if c.ifNoneMatch_ != "" {
34026		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
34027	}
34028	var body io.Reader = nil
34029	c.urlParams_.Set("alt", alt)
34030	c.urlParams_.Set("prettyPrint", "false")
34031	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners")
34032	urls += "?" + c.urlParams_.Encode()
34033	req, err := http.NewRequest("GET", urls, body)
34034	if err != nil {
34035		return nil, err
34036	}
34037	req.Header = reqHeaders
34038	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34039}
34040
34041// Do executes the "displayvideo.partners.list" call.
34042// Exactly one of *ListPartnersResponse or error will be non-nil. Any
34043// non-2xx status code is an error. Response headers are in either
34044// *ListPartnersResponse.ServerResponse.Header or (if a response was
34045// returned at all) in error.(*googleapi.Error).Header. Use
34046// googleapi.IsNotModified to check whether the returned error was
34047// because http.StatusNotModified was returned.
34048func (c *PartnersListCall) Do(opts ...googleapi.CallOption) (*ListPartnersResponse, error) {
34049	gensupport.SetOptions(c.urlParams_, opts...)
34050	res, err := c.doRequest("json")
34051	if res != nil && res.StatusCode == http.StatusNotModified {
34052		if res.Body != nil {
34053			res.Body.Close()
34054		}
34055		return nil, &googleapi.Error{
34056			Code:   res.StatusCode,
34057			Header: res.Header,
34058		}
34059	}
34060	if err != nil {
34061		return nil, err
34062	}
34063	defer googleapi.CloseBody(res)
34064	if err := googleapi.CheckResponse(res); err != nil {
34065		return nil, err
34066	}
34067	ret := &ListPartnersResponse{
34068		ServerResponse: googleapi.ServerResponse{
34069			Header:         res.Header,
34070			HTTPStatusCode: res.StatusCode,
34071		},
34072	}
34073	target := &ret
34074	if err := gensupport.DecodeResponse(target, res); err != nil {
34075		return nil, err
34076	}
34077	return ret, nil
34078	// {
34079	//   "description": "Lists partners that are accessible to the current user. The order is defined by the order_by parameter.",
34080	//   "flatPath": "v1/partners",
34081	//   "httpMethod": "GET",
34082	//   "id": "displayvideo.partners.list",
34083	//   "parameterOrder": [],
34084	//   "parameters": {
34085	//     "filter": {
34086	//       "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.",
34087	//       "location": "query",
34088	//       "type": "string"
34089	//     },
34090	//     "orderBy": {
34091	//       "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`.",
34092	//       "location": "query",
34093	//       "type": "string"
34094	//     },
34095	//     "pageSize": {
34096	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
34097	//       "format": "int32",
34098	//       "location": "query",
34099	//       "type": "integer"
34100	//     },
34101	//     "pageToken": {
34102	//       "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.",
34103	//       "location": "query",
34104	//       "type": "string"
34105	//     }
34106	//   },
34107	//   "path": "v1/partners",
34108	//   "response": {
34109	//     "$ref": "ListPartnersResponse"
34110	//   },
34111	//   "scopes": [
34112	//     "https://www.googleapis.com/auth/display-video"
34113	//   ]
34114	// }
34115
34116}
34117
34118// Pages invokes f for each page of results.
34119// A non-nil error returned from f will halt the iteration.
34120// The provided context supersedes any context provided to the Context method.
34121func (c *PartnersListCall) Pages(ctx context.Context, f func(*ListPartnersResponse) error) error {
34122	c.ctx_ = ctx
34123	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
34124	for {
34125		x, err := c.Do()
34126		if err != nil {
34127			return err
34128		}
34129		if err := f(x); err != nil {
34130			return err
34131		}
34132		if x.NextPageToken == "" {
34133			return nil
34134		}
34135		c.PageToken(x.NextPageToken)
34136	}
34137}
34138
34139// method id "displayvideo.partners.channels.create":
34140
34141type PartnersChannelsCreateCall struct {
34142	s          *Service
34143	partnerId  int64
34144	channel    *Channel
34145	urlParams_ gensupport.URLParams
34146	ctx_       context.Context
34147	header_    http.Header
34148}
34149
34150// Create: Creates a new channel. Returns the newly created channel if
34151// successful.
34152//
34153// - partnerId: The ID of the partner that owns the created channel.
34154func (r *PartnersChannelsService) Create(partnerId int64, channel *Channel) *PartnersChannelsCreateCall {
34155	c := &PartnersChannelsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34156	c.partnerId = partnerId
34157	c.channel = channel
34158	return c
34159}
34160
34161// AdvertiserId sets the optional parameter "advertiserId": The ID of
34162// the advertiser that owns the created channel.
34163func (c *PartnersChannelsCreateCall) AdvertiserId(advertiserId int64) *PartnersChannelsCreateCall {
34164	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
34165	return c
34166}
34167
34168// Fields allows partial responses to be retrieved. See
34169// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34170// for more information.
34171func (c *PartnersChannelsCreateCall) Fields(s ...googleapi.Field) *PartnersChannelsCreateCall {
34172	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34173	return c
34174}
34175
34176// Context sets the context to be used in this call's Do method. Any
34177// pending HTTP request will be aborted if the provided context is
34178// canceled.
34179func (c *PartnersChannelsCreateCall) Context(ctx context.Context) *PartnersChannelsCreateCall {
34180	c.ctx_ = ctx
34181	return c
34182}
34183
34184// Header returns an http.Header that can be modified by the caller to
34185// add HTTP headers to the request.
34186func (c *PartnersChannelsCreateCall) Header() http.Header {
34187	if c.header_ == nil {
34188		c.header_ = make(http.Header)
34189	}
34190	return c.header_
34191}
34192
34193func (c *PartnersChannelsCreateCall) doRequest(alt string) (*http.Response, error) {
34194	reqHeaders := make(http.Header)
34195	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
34196	for k, v := range c.header_ {
34197		reqHeaders[k] = v
34198	}
34199	reqHeaders.Set("User-Agent", c.s.userAgent())
34200	var body io.Reader = nil
34201	body, err := googleapi.WithoutDataWrapper.JSONReader(c.channel)
34202	if err != nil {
34203		return nil, err
34204	}
34205	reqHeaders.Set("Content-Type", "application/json")
34206	c.urlParams_.Set("alt", alt)
34207	c.urlParams_.Set("prettyPrint", "false")
34208	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/channels")
34209	urls += "?" + c.urlParams_.Encode()
34210	req, err := http.NewRequest("POST", urls, body)
34211	if err != nil {
34212		return nil, err
34213	}
34214	req.Header = reqHeaders
34215	googleapi.Expand(req.URL, map[string]string{
34216		"partnerId": strconv.FormatInt(c.partnerId, 10),
34217	})
34218	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34219}
34220
34221// Do executes the "displayvideo.partners.channels.create" call.
34222// Exactly one of *Channel or error will be non-nil. Any non-2xx status
34223// code is an error. Response headers are in either
34224// *Channel.ServerResponse.Header or (if a response was returned at all)
34225// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
34226// check whether the returned error was because http.StatusNotModified
34227// was returned.
34228func (c *PartnersChannelsCreateCall) Do(opts ...googleapi.CallOption) (*Channel, error) {
34229	gensupport.SetOptions(c.urlParams_, opts...)
34230	res, err := c.doRequest("json")
34231	if res != nil && res.StatusCode == http.StatusNotModified {
34232		if res.Body != nil {
34233			res.Body.Close()
34234		}
34235		return nil, &googleapi.Error{
34236			Code:   res.StatusCode,
34237			Header: res.Header,
34238		}
34239	}
34240	if err != nil {
34241		return nil, err
34242	}
34243	defer googleapi.CloseBody(res)
34244	if err := googleapi.CheckResponse(res); err != nil {
34245		return nil, err
34246	}
34247	ret := &Channel{
34248		ServerResponse: googleapi.ServerResponse{
34249			Header:         res.Header,
34250			HTTPStatusCode: res.StatusCode,
34251		},
34252	}
34253	target := &ret
34254	if err := gensupport.DecodeResponse(target, res); err != nil {
34255		return nil, err
34256	}
34257	return ret, nil
34258	// {
34259	//   "description": "Creates a new channel. Returns the newly created channel if successful.",
34260	//   "flatPath": "v1/partners/{partnersId}/channels",
34261	//   "httpMethod": "POST",
34262	//   "id": "displayvideo.partners.channels.create",
34263	//   "parameterOrder": [
34264	//     "partnerId"
34265	//   ],
34266	//   "parameters": {
34267	//     "advertiserId": {
34268	//       "description": "The ID of the advertiser that owns the created channel.",
34269	//       "format": "int64",
34270	//       "location": "query",
34271	//       "type": "string"
34272	//     },
34273	//     "partnerId": {
34274	//       "description": "The ID of the partner that owns the created channel.",
34275	//       "format": "int64",
34276	//       "location": "path",
34277	//       "pattern": "^[^/]+$",
34278	//       "required": true,
34279	//       "type": "string"
34280	//     }
34281	//   },
34282	//   "path": "v1/partners/{+partnerId}/channels",
34283	//   "request": {
34284	//     "$ref": "Channel"
34285	//   },
34286	//   "response": {
34287	//     "$ref": "Channel"
34288	//   },
34289	//   "scopes": [
34290	//     "https://www.googleapis.com/auth/display-video"
34291	//   ]
34292	// }
34293
34294}
34295
34296// method id "displayvideo.partners.channels.get":
34297
34298type PartnersChannelsGetCall struct {
34299	s            *Service
34300	partnerId    int64
34301	channelId    int64
34302	urlParams_   gensupport.URLParams
34303	ifNoneMatch_ string
34304	ctx_         context.Context
34305	header_      http.Header
34306}
34307
34308// Get: Gets a channel for a partner or advertiser.
34309//
34310// - channelId: The ID of the channel to fetch.
34311// - partnerId: The ID of the partner that owns the fetched channel.
34312func (r *PartnersChannelsService) Get(partnerId int64, channelId int64) *PartnersChannelsGetCall {
34313	c := &PartnersChannelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34314	c.partnerId = partnerId
34315	c.channelId = channelId
34316	return c
34317}
34318
34319// AdvertiserId sets the optional parameter "advertiserId": The ID of
34320// the advertiser that owns the fetched channel.
34321func (c *PartnersChannelsGetCall) AdvertiserId(advertiserId int64) *PartnersChannelsGetCall {
34322	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
34323	return c
34324}
34325
34326// Fields allows partial responses to be retrieved. See
34327// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34328// for more information.
34329func (c *PartnersChannelsGetCall) Fields(s ...googleapi.Field) *PartnersChannelsGetCall {
34330	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34331	return c
34332}
34333
34334// IfNoneMatch sets the optional parameter which makes the operation
34335// fail if the object's ETag matches the given value. This is useful for
34336// getting updates only after the object has changed since the last
34337// request. Use googleapi.IsNotModified to check whether the response
34338// error from Do is the result of In-None-Match.
34339func (c *PartnersChannelsGetCall) IfNoneMatch(entityTag string) *PartnersChannelsGetCall {
34340	c.ifNoneMatch_ = entityTag
34341	return c
34342}
34343
34344// Context sets the context to be used in this call's Do method. Any
34345// pending HTTP request will be aborted if the provided context is
34346// canceled.
34347func (c *PartnersChannelsGetCall) Context(ctx context.Context) *PartnersChannelsGetCall {
34348	c.ctx_ = ctx
34349	return c
34350}
34351
34352// Header returns an http.Header that can be modified by the caller to
34353// add HTTP headers to the request.
34354func (c *PartnersChannelsGetCall) Header() http.Header {
34355	if c.header_ == nil {
34356		c.header_ = make(http.Header)
34357	}
34358	return c.header_
34359}
34360
34361func (c *PartnersChannelsGetCall) doRequest(alt string) (*http.Response, error) {
34362	reqHeaders := make(http.Header)
34363	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
34364	for k, v := range c.header_ {
34365		reqHeaders[k] = v
34366	}
34367	reqHeaders.Set("User-Agent", c.s.userAgent())
34368	if c.ifNoneMatch_ != "" {
34369		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
34370	}
34371	var body io.Reader = nil
34372	c.urlParams_.Set("alt", alt)
34373	c.urlParams_.Set("prettyPrint", "false")
34374	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/channels/{+channelId}")
34375	urls += "?" + c.urlParams_.Encode()
34376	req, err := http.NewRequest("GET", urls, body)
34377	if err != nil {
34378		return nil, err
34379	}
34380	req.Header = reqHeaders
34381	googleapi.Expand(req.URL, map[string]string{
34382		"partnerId": strconv.FormatInt(c.partnerId, 10),
34383		"channelId": strconv.FormatInt(c.channelId, 10),
34384	})
34385	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34386}
34387
34388// Do executes the "displayvideo.partners.channels.get" call.
34389// Exactly one of *Channel or error will be non-nil. Any non-2xx status
34390// code is an error. Response headers are in either
34391// *Channel.ServerResponse.Header or (if a response was returned at all)
34392// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
34393// check whether the returned error was because http.StatusNotModified
34394// was returned.
34395func (c *PartnersChannelsGetCall) Do(opts ...googleapi.CallOption) (*Channel, error) {
34396	gensupport.SetOptions(c.urlParams_, opts...)
34397	res, err := c.doRequest("json")
34398	if res != nil && res.StatusCode == http.StatusNotModified {
34399		if res.Body != nil {
34400			res.Body.Close()
34401		}
34402		return nil, &googleapi.Error{
34403			Code:   res.StatusCode,
34404			Header: res.Header,
34405		}
34406	}
34407	if err != nil {
34408		return nil, err
34409	}
34410	defer googleapi.CloseBody(res)
34411	if err := googleapi.CheckResponse(res); err != nil {
34412		return nil, err
34413	}
34414	ret := &Channel{
34415		ServerResponse: googleapi.ServerResponse{
34416			Header:         res.Header,
34417			HTTPStatusCode: res.StatusCode,
34418		},
34419	}
34420	target := &ret
34421	if err := gensupport.DecodeResponse(target, res); err != nil {
34422		return nil, err
34423	}
34424	return ret, nil
34425	// {
34426	//   "description": "Gets a channel for a partner or advertiser.",
34427	//   "flatPath": "v1/partners/{partnersId}/channels/{channelsId}",
34428	//   "httpMethod": "GET",
34429	//   "id": "displayvideo.partners.channels.get",
34430	//   "parameterOrder": [
34431	//     "partnerId",
34432	//     "channelId"
34433	//   ],
34434	//   "parameters": {
34435	//     "advertiserId": {
34436	//       "description": "The ID of the advertiser that owns the fetched channel.",
34437	//       "format": "int64",
34438	//       "location": "query",
34439	//       "type": "string"
34440	//     },
34441	//     "channelId": {
34442	//       "description": "Required. The ID of the channel to fetch.",
34443	//       "format": "int64",
34444	//       "location": "path",
34445	//       "pattern": "^[^/]+$",
34446	//       "required": true,
34447	//       "type": "string"
34448	//     },
34449	//     "partnerId": {
34450	//       "description": "The ID of the partner that owns the fetched channel.",
34451	//       "format": "int64",
34452	//       "location": "path",
34453	//       "pattern": "^[^/]+$",
34454	//       "required": true,
34455	//       "type": "string"
34456	//     }
34457	//   },
34458	//   "path": "v1/partners/{+partnerId}/channels/{+channelId}",
34459	//   "response": {
34460	//     "$ref": "Channel"
34461	//   },
34462	//   "scopes": [
34463	//     "https://www.googleapis.com/auth/display-video"
34464	//   ]
34465	// }
34466
34467}
34468
34469// method id "displayvideo.partners.channels.list":
34470
34471type PartnersChannelsListCall struct {
34472	s            *Service
34473	partnerId    int64
34474	urlParams_   gensupport.URLParams
34475	ifNoneMatch_ string
34476	ctx_         context.Context
34477	header_      http.Header
34478}
34479
34480// List: Lists channels for a partner or advertiser.
34481//
34482// - partnerId: The ID of the partner that owns the channels.
34483func (r *PartnersChannelsService) List(partnerId int64) *PartnersChannelsListCall {
34484	c := &PartnersChannelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34485	c.partnerId = partnerId
34486	return c
34487}
34488
34489// AdvertiserId sets the optional parameter "advertiserId": The ID of
34490// the advertiser that owns the channels.
34491func (c *PartnersChannelsListCall) AdvertiserId(advertiserId int64) *PartnersChannelsListCall {
34492	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
34493	return c
34494}
34495
34496// Filter sets the optional parameter "filter": Allows filtering by
34497// channel fields. Supported syntax: * Filter expressions for channel
34498// currently can only contain at most one * restriction. * A restriction
34499// has the form of `{field} {operator} {value}`. * The operator must be
34500// `CONTAINS (:)`. * Supported fields: - `displayName` Examples: * All
34501// channels for which the display name contains "google": `displayName :
34502// "google". The length of this field should be no more than 500
34503// characters.
34504func (c *PartnersChannelsListCall) Filter(filter string) *PartnersChannelsListCall {
34505	c.urlParams_.Set("filter", filter)
34506	return c
34507}
34508
34509// OrderBy sets the optional parameter "orderBy": Field by which to sort
34510// the list. Acceptable values are: * `displayName` (default) *
34511// `channelId` The default sorting order is ascending. To specify
34512// descending order for a field, a suffix " desc" should be added to the
34513// field name. Example: `displayName desc`.
34514func (c *PartnersChannelsListCall) OrderBy(orderBy string) *PartnersChannelsListCall {
34515	c.urlParams_.Set("orderBy", orderBy)
34516	return c
34517}
34518
34519// PageSize sets the optional parameter "pageSize": Requested page size.
34520// Must be between `1` and `100`. If unspecified will default to `100`.
34521// Returns error code `INVALID_ARGUMENT` if an invalid value is
34522// specified.
34523func (c *PartnersChannelsListCall) PageSize(pageSize int64) *PartnersChannelsListCall {
34524	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
34525	return c
34526}
34527
34528// PageToken sets the optional parameter "pageToken": A token
34529// identifying a page of results the server should return. Typically,
34530// this is the value of next_page_token returned from the previous call
34531// to `ListChannels` method. If not specified, the first page of results
34532// will be returned.
34533func (c *PartnersChannelsListCall) PageToken(pageToken string) *PartnersChannelsListCall {
34534	c.urlParams_.Set("pageToken", pageToken)
34535	return c
34536}
34537
34538// Fields allows partial responses to be retrieved. See
34539// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34540// for more information.
34541func (c *PartnersChannelsListCall) Fields(s ...googleapi.Field) *PartnersChannelsListCall {
34542	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34543	return c
34544}
34545
34546// IfNoneMatch sets the optional parameter which makes the operation
34547// fail if the object's ETag matches the given value. This is useful for
34548// getting updates only after the object has changed since the last
34549// request. Use googleapi.IsNotModified to check whether the response
34550// error from Do is the result of In-None-Match.
34551func (c *PartnersChannelsListCall) IfNoneMatch(entityTag string) *PartnersChannelsListCall {
34552	c.ifNoneMatch_ = entityTag
34553	return c
34554}
34555
34556// Context sets the context to be used in this call's Do method. Any
34557// pending HTTP request will be aborted if the provided context is
34558// canceled.
34559func (c *PartnersChannelsListCall) Context(ctx context.Context) *PartnersChannelsListCall {
34560	c.ctx_ = ctx
34561	return c
34562}
34563
34564// Header returns an http.Header that can be modified by the caller to
34565// add HTTP headers to the request.
34566func (c *PartnersChannelsListCall) Header() http.Header {
34567	if c.header_ == nil {
34568		c.header_ = make(http.Header)
34569	}
34570	return c.header_
34571}
34572
34573func (c *PartnersChannelsListCall) doRequest(alt string) (*http.Response, error) {
34574	reqHeaders := make(http.Header)
34575	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
34576	for k, v := range c.header_ {
34577		reqHeaders[k] = v
34578	}
34579	reqHeaders.Set("User-Agent", c.s.userAgent())
34580	if c.ifNoneMatch_ != "" {
34581		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
34582	}
34583	var body io.Reader = nil
34584	c.urlParams_.Set("alt", alt)
34585	c.urlParams_.Set("prettyPrint", "false")
34586	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/channels")
34587	urls += "?" + c.urlParams_.Encode()
34588	req, err := http.NewRequest("GET", urls, body)
34589	if err != nil {
34590		return nil, err
34591	}
34592	req.Header = reqHeaders
34593	googleapi.Expand(req.URL, map[string]string{
34594		"partnerId": strconv.FormatInt(c.partnerId, 10),
34595	})
34596	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34597}
34598
34599// Do executes the "displayvideo.partners.channels.list" call.
34600// Exactly one of *ListChannelsResponse or error will be non-nil. Any
34601// non-2xx status code is an error. Response headers are in either
34602// *ListChannelsResponse.ServerResponse.Header or (if a response was
34603// returned at all) in error.(*googleapi.Error).Header. Use
34604// googleapi.IsNotModified to check whether the returned error was
34605// because http.StatusNotModified was returned.
34606func (c *PartnersChannelsListCall) Do(opts ...googleapi.CallOption) (*ListChannelsResponse, error) {
34607	gensupport.SetOptions(c.urlParams_, opts...)
34608	res, err := c.doRequest("json")
34609	if res != nil && res.StatusCode == http.StatusNotModified {
34610		if res.Body != nil {
34611			res.Body.Close()
34612		}
34613		return nil, &googleapi.Error{
34614			Code:   res.StatusCode,
34615			Header: res.Header,
34616		}
34617	}
34618	if err != nil {
34619		return nil, err
34620	}
34621	defer googleapi.CloseBody(res)
34622	if err := googleapi.CheckResponse(res); err != nil {
34623		return nil, err
34624	}
34625	ret := &ListChannelsResponse{
34626		ServerResponse: googleapi.ServerResponse{
34627			Header:         res.Header,
34628			HTTPStatusCode: res.StatusCode,
34629		},
34630	}
34631	target := &ret
34632	if err := gensupport.DecodeResponse(target, res); err != nil {
34633		return nil, err
34634	}
34635	return ret, nil
34636	// {
34637	//   "description": "Lists channels for a partner or advertiser.",
34638	//   "flatPath": "v1/partners/{partnersId}/channels",
34639	//   "httpMethod": "GET",
34640	//   "id": "displayvideo.partners.channels.list",
34641	//   "parameterOrder": [
34642	//     "partnerId"
34643	//   ],
34644	//   "parameters": {
34645	//     "advertiserId": {
34646	//       "description": "The ID of the advertiser that owns the channels.",
34647	//       "format": "int64",
34648	//       "location": "query",
34649	//       "type": "string"
34650	//     },
34651	//     "filter": {
34652	//       "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.",
34653	//       "location": "query",
34654	//       "type": "string"
34655	//     },
34656	//     "orderBy": {
34657	//       "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`.",
34658	//       "location": "query",
34659	//       "type": "string"
34660	//     },
34661	//     "pageSize": {
34662	//       "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.",
34663	//       "format": "int32",
34664	//       "location": "query",
34665	//       "type": "integer"
34666	//     },
34667	//     "pageToken": {
34668	//       "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.",
34669	//       "location": "query",
34670	//       "type": "string"
34671	//     },
34672	//     "partnerId": {
34673	//       "description": "The ID of the partner that owns the channels.",
34674	//       "format": "int64",
34675	//       "location": "path",
34676	//       "pattern": "^[^/]+$",
34677	//       "required": true,
34678	//       "type": "string"
34679	//     }
34680	//   },
34681	//   "path": "v1/partners/{+partnerId}/channels",
34682	//   "response": {
34683	//     "$ref": "ListChannelsResponse"
34684	//   },
34685	//   "scopes": [
34686	//     "https://www.googleapis.com/auth/display-video"
34687	//   ]
34688	// }
34689
34690}
34691
34692// Pages invokes f for each page of results.
34693// A non-nil error returned from f will halt the iteration.
34694// The provided context supersedes any context provided to the Context method.
34695func (c *PartnersChannelsListCall) Pages(ctx context.Context, f func(*ListChannelsResponse) error) error {
34696	c.ctx_ = ctx
34697	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
34698	for {
34699		x, err := c.Do()
34700		if err != nil {
34701			return err
34702		}
34703		if err := f(x); err != nil {
34704			return err
34705		}
34706		if x.NextPageToken == "" {
34707			return nil
34708		}
34709		c.PageToken(x.NextPageToken)
34710	}
34711}
34712
34713// method id "displayvideo.partners.channels.patch":
34714
34715type PartnersChannelsPatchCall struct {
34716	s          *Service
34717	partnerId  int64
34718	channelId  int64
34719	channel    *Channel
34720	urlParams_ gensupport.URLParams
34721	ctx_       context.Context
34722	header_    http.Header
34723}
34724
34725// Patch: Updates a channel. Returns the updated channel if successful.
34726//
34727// - channelId: Output only. The unique ID of the channel. Assigned by
34728//   the system.
34729// - partnerId: The ID of the partner that owns the created channel.
34730func (r *PartnersChannelsService) Patch(partnerId int64, channelId int64, channel *Channel) *PartnersChannelsPatchCall {
34731	c := &PartnersChannelsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34732	c.partnerId = partnerId
34733	c.channelId = channelId
34734	c.channel = channel
34735	return c
34736}
34737
34738// AdvertiserId sets the optional parameter "advertiserId": The ID of
34739// the advertiser that owns the created channel.
34740func (c *PartnersChannelsPatchCall) AdvertiserId(advertiserId int64) *PartnersChannelsPatchCall {
34741	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
34742	return c
34743}
34744
34745// UpdateMask sets the optional parameter "updateMask": Required. The
34746// mask to control which fields to update.
34747func (c *PartnersChannelsPatchCall) UpdateMask(updateMask string) *PartnersChannelsPatchCall {
34748	c.urlParams_.Set("updateMask", updateMask)
34749	return c
34750}
34751
34752// Fields allows partial responses to be retrieved. See
34753// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34754// for more information.
34755func (c *PartnersChannelsPatchCall) Fields(s ...googleapi.Field) *PartnersChannelsPatchCall {
34756	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34757	return c
34758}
34759
34760// Context sets the context to be used in this call's Do method. Any
34761// pending HTTP request will be aborted if the provided context is
34762// canceled.
34763func (c *PartnersChannelsPatchCall) Context(ctx context.Context) *PartnersChannelsPatchCall {
34764	c.ctx_ = ctx
34765	return c
34766}
34767
34768// Header returns an http.Header that can be modified by the caller to
34769// add HTTP headers to the request.
34770func (c *PartnersChannelsPatchCall) Header() http.Header {
34771	if c.header_ == nil {
34772		c.header_ = make(http.Header)
34773	}
34774	return c.header_
34775}
34776
34777func (c *PartnersChannelsPatchCall) doRequest(alt string) (*http.Response, error) {
34778	reqHeaders := make(http.Header)
34779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
34780	for k, v := range c.header_ {
34781		reqHeaders[k] = v
34782	}
34783	reqHeaders.Set("User-Agent", c.s.userAgent())
34784	var body io.Reader = nil
34785	body, err := googleapi.WithoutDataWrapper.JSONReader(c.channel)
34786	if err != nil {
34787		return nil, err
34788	}
34789	reqHeaders.Set("Content-Type", "application/json")
34790	c.urlParams_.Set("alt", alt)
34791	c.urlParams_.Set("prettyPrint", "false")
34792	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/channels/{channelId}")
34793	urls += "?" + c.urlParams_.Encode()
34794	req, err := http.NewRequest("PATCH", urls, body)
34795	if err != nil {
34796		return nil, err
34797	}
34798	req.Header = reqHeaders
34799	googleapi.Expand(req.URL, map[string]string{
34800		"partnerId": strconv.FormatInt(c.partnerId, 10),
34801		"channelId": strconv.FormatInt(c.channelId, 10),
34802	})
34803	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34804}
34805
34806// Do executes the "displayvideo.partners.channels.patch" call.
34807// Exactly one of *Channel or error will be non-nil. Any non-2xx status
34808// code is an error. Response headers are in either
34809// *Channel.ServerResponse.Header or (if a response was returned at all)
34810// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
34811// check whether the returned error was because http.StatusNotModified
34812// was returned.
34813func (c *PartnersChannelsPatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) {
34814	gensupport.SetOptions(c.urlParams_, opts...)
34815	res, err := c.doRequest("json")
34816	if res != nil && res.StatusCode == http.StatusNotModified {
34817		if res.Body != nil {
34818			res.Body.Close()
34819		}
34820		return nil, &googleapi.Error{
34821			Code:   res.StatusCode,
34822			Header: res.Header,
34823		}
34824	}
34825	if err != nil {
34826		return nil, err
34827	}
34828	defer googleapi.CloseBody(res)
34829	if err := googleapi.CheckResponse(res); err != nil {
34830		return nil, err
34831	}
34832	ret := &Channel{
34833		ServerResponse: googleapi.ServerResponse{
34834			Header:         res.Header,
34835			HTTPStatusCode: res.StatusCode,
34836		},
34837	}
34838	target := &ret
34839	if err := gensupport.DecodeResponse(target, res); err != nil {
34840		return nil, err
34841	}
34842	return ret, nil
34843	// {
34844	//   "description": "Updates a channel. Returns the updated channel if successful.",
34845	//   "flatPath": "v1/partners/{partnersId}/channels/{channelId}",
34846	//   "httpMethod": "PATCH",
34847	//   "id": "displayvideo.partners.channels.patch",
34848	//   "parameterOrder": [
34849	//     "partnerId",
34850	//     "channelId"
34851	//   ],
34852	//   "parameters": {
34853	//     "advertiserId": {
34854	//       "description": "The ID of the advertiser that owns the created channel.",
34855	//       "format": "int64",
34856	//       "location": "query",
34857	//       "type": "string"
34858	//     },
34859	//     "channelId": {
34860	//       "description": "Output only. The unique ID of the channel. Assigned by the system.",
34861	//       "format": "int64",
34862	//       "location": "path",
34863	//       "required": true,
34864	//       "type": "string"
34865	//     },
34866	//     "partnerId": {
34867	//       "description": "The ID of the partner that owns the created channel.",
34868	//       "format": "int64",
34869	//       "location": "path",
34870	//       "pattern": "^[^/]+$",
34871	//       "required": true,
34872	//       "type": "string"
34873	//     },
34874	//     "updateMask": {
34875	//       "description": "Required. The mask to control which fields to update.",
34876	//       "format": "google-fieldmask",
34877	//       "location": "query",
34878	//       "type": "string"
34879	//     }
34880	//   },
34881	//   "path": "v1/partners/{+partnerId}/channels/{channelId}",
34882	//   "request": {
34883	//     "$ref": "Channel"
34884	//   },
34885	//   "response": {
34886	//     "$ref": "Channel"
34887	//   },
34888	//   "scopes": [
34889	//     "https://www.googleapis.com/auth/display-video"
34890	//   ]
34891	// }
34892
34893}
34894
34895// method id "displayvideo.partners.channels.sites.bulkEdit":
34896
34897type PartnersChannelsSitesBulkEditCall struct {
34898	s                    *Service
34899	partnerId            int64
34900	channelId            int64
34901	bulkeditsitesrequest *BulkEditSitesRequest
34902	urlParams_           gensupport.URLParams
34903	ctx_                 context.Context
34904	header_              http.Header
34905}
34906
34907// BulkEdit: Bulk edits sites under a single channel. The operation will
34908// delete the sites provided in BulkEditSitesRequest.deleted_sites and
34909// then create the sites provided in BulkEditSitesRequest.created_sites.
34910//
34911// - channelId: The ID of the parent channel to which the sites belong.
34912// - partnerId: The ID of the partner that owns the parent channel.
34913func (r *PartnersChannelsSitesService) BulkEdit(partnerId int64, channelId int64, bulkeditsitesrequest *BulkEditSitesRequest) *PartnersChannelsSitesBulkEditCall {
34914	c := &PartnersChannelsSitesBulkEditCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34915	c.partnerId = partnerId
34916	c.channelId = channelId
34917	c.bulkeditsitesrequest = bulkeditsitesrequest
34918	return c
34919}
34920
34921// Fields allows partial responses to be retrieved. See
34922// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34923// for more information.
34924func (c *PartnersChannelsSitesBulkEditCall) Fields(s ...googleapi.Field) *PartnersChannelsSitesBulkEditCall {
34925	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34926	return c
34927}
34928
34929// Context sets the context to be used in this call's Do method. Any
34930// pending HTTP request will be aborted if the provided context is
34931// canceled.
34932func (c *PartnersChannelsSitesBulkEditCall) Context(ctx context.Context) *PartnersChannelsSitesBulkEditCall {
34933	c.ctx_ = ctx
34934	return c
34935}
34936
34937// Header returns an http.Header that can be modified by the caller to
34938// add HTTP headers to the request.
34939func (c *PartnersChannelsSitesBulkEditCall) Header() http.Header {
34940	if c.header_ == nil {
34941		c.header_ = make(http.Header)
34942	}
34943	return c.header_
34944}
34945
34946func (c *PartnersChannelsSitesBulkEditCall) doRequest(alt string) (*http.Response, error) {
34947	reqHeaders := make(http.Header)
34948	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
34949	for k, v := range c.header_ {
34950		reqHeaders[k] = v
34951	}
34952	reqHeaders.Set("User-Agent", c.s.userAgent())
34953	var body io.Reader = nil
34954	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditsitesrequest)
34955	if err != nil {
34956		return nil, err
34957	}
34958	reqHeaders.Set("Content-Type", "application/json")
34959	c.urlParams_.Set("alt", alt)
34960	c.urlParams_.Set("prettyPrint", "false")
34961	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{partnerId}/channels/{+channelId}/sites:bulkEdit")
34962	urls += "?" + c.urlParams_.Encode()
34963	req, err := http.NewRequest("POST", urls, body)
34964	if err != nil {
34965		return nil, err
34966	}
34967	req.Header = reqHeaders
34968	googleapi.Expand(req.URL, map[string]string{
34969		"partnerId": strconv.FormatInt(c.partnerId, 10),
34970		"channelId": strconv.FormatInt(c.channelId, 10),
34971	})
34972	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34973}
34974
34975// Do executes the "displayvideo.partners.channels.sites.bulkEdit" call.
34976// Exactly one of *BulkEditSitesResponse or error will be non-nil. Any
34977// non-2xx status code is an error. Response headers are in either
34978// *BulkEditSitesResponse.ServerResponse.Header or (if a response was
34979// returned at all) in error.(*googleapi.Error).Header. Use
34980// googleapi.IsNotModified to check whether the returned error was
34981// because http.StatusNotModified was returned.
34982func (c *PartnersChannelsSitesBulkEditCall) Do(opts ...googleapi.CallOption) (*BulkEditSitesResponse, error) {
34983	gensupport.SetOptions(c.urlParams_, opts...)
34984	res, err := c.doRequest("json")
34985	if res != nil && res.StatusCode == http.StatusNotModified {
34986		if res.Body != nil {
34987			res.Body.Close()
34988		}
34989		return nil, &googleapi.Error{
34990			Code:   res.StatusCode,
34991			Header: res.Header,
34992		}
34993	}
34994	if err != nil {
34995		return nil, err
34996	}
34997	defer googleapi.CloseBody(res)
34998	if err := googleapi.CheckResponse(res); err != nil {
34999		return nil, err
35000	}
35001	ret := &BulkEditSitesResponse{
35002		ServerResponse: googleapi.ServerResponse{
35003			Header:         res.Header,
35004			HTTPStatusCode: res.StatusCode,
35005		},
35006	}
35007	target := &ret
35008	if err := gensupport.DecodeResponse(target, res); err != nil {
35009		return nil, err
35010	}
35011	return ret, nil
35012	// {
35013	//   "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.",
35014	//   "flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites:bulkEdit",
35015	//   "httpMethod": "POST",
35016	//   "id": "displayvideo.partners.channels.sites.bulkEdit",
35017	//   "parameterOrder": [
35018	//     "partnerId",
35019	//     "channelId"
35020	//   ],
35021	//   "parameters": {
35022	//     "channelId": {
35023	//       "description": "Required. The ID of the parent channel to which the sites belong.",
35024	//       "format": "int64",
35025	//       "location": "path",
35026	//       "pattern": "^[^/]+$",
35027	//       "required": true,
35028	//       "type": "string"
35029	//     },
35030	//     "partnerId": {
35031	//       "description": "The ID of the partner that owns the parent channel.",
35032	//       "format": "int64",
35033	//       "location": "path",
35034	//       "required": true,
35035	//       "type": "string"
35036	//     }
35037	//   },
35038	//   "path": "v1/partners/{partnerId}/channels/{+channelId}/sites:bulkEdit",
35039	//   "request": {
35040	//     "$ref": "BulkEditSitesRequest"
35041	//   },
35042	//   "response": {
35043	//     "$ref": "BulkEditSitesResponse"
35044	//   },
35045	//   "scopes": [
35046	//     "https://www.googleapis.com/auth/display-video"
35047	//   ]
35048	// }
35049
35050}
35051
35052// method id "displayvideo.partners.channels.sites.create":
35053
35054type PartnersChannelsSitesCreateCall struct {
35055	s          *Service
35056	partnerId  int64
35057	channelId  int64
35058	site       *Site
35059	urlParams_ gensupport.URLParams
35060	ctx_       context.Context
35061	header_    http.Header
35062}
35063
35064// Create: Creates a site in a channel.
35065//
35066// - channelId: The ID of the parent channel in which the site will be
35067//   created.
35068// - partnerId: The ID of the partner that owns the parent channel.
35069func (r *PartnersChannelsSitesService) Create(partnerId int64, channelId int64, site *Site) *PartnersChannelsSitesCreateCall {
35070	c := &PartnersChannelsSitesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35071	c.partnerId = partnerId
35072	c.channelId = channelId
35073	c.site = site
35074	return c
35075}
35076
35077// AdvertiserId sets the optional parameter "advertiserId": The ID of
35078// the advertiser that owns the parent channel.
35079func (c *PartnersChannelsSitesCreateCall) AdvertiserId(advertiserId int64) *PartnersChannelsSitesCreateCall {
35080	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
35081	return c
35082}
35083
35084// Fields allows partial responses to be retrieved. See
35085// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35086// for more information.
35087func (c *PartnersChannelsSitesCreateCall) Fields(s ...googleapi.Field) *PartnersChannelsSitesCreateCall {
35088	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35089	return c
35090}
35091
35092// Context sets the context to be used in this call's Do method. Any
35093// pending HTTP request will be aborted if the provided context is
35094// canceled.
35095func (c *PartnersChannelsSitesCreateCall) Context(ctx context.Context) *PartnersChannelsSitesCreateCall {
35096	c.ctx_ = ctx
35097	return c
35098}
35099
35100// Header returns an http.Header that can be modified by the caller to
35101// add HTTP headers to the request.
35102func (c *PartnersChannelsSitesCreateCall) Header() http.Header {
35103	if c.header_ == nil {
35104		c.header_ = make(http.Header)
35105	}
35106	return c.header_
35107}
35108
35109func (c *PartnersChannelsSitesCreateCall) doRequest(alt string) (*http.Response, error) {
35110	reqHeaders := make(http.Header)
35111	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
35112	for k, v := range c.header_ {
35113		reqHeaders[k] = v
35114	}
35115	reqHeaders.Set("User-Agent", c.s.userAgent())
35116	var body io.Reader = nil
35117	body, err := googleapi.WithoutDataWrapper.JSONReader(c.site)
35118	if err != nil {
35119		return nil, err
35120	}
35121	reqHeaders.Set("Content-Type", "application/json")
35122	c.urlParams_.Set("alt", alt)
35123	c.urlParams_.Set("prettyPrint", "false")
35124	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{partnerId}/channels/{+channelId}/sites")
35125	urls += "?" + c.urlParams_.Encode()
35126	req, err := http.NewRequest("POST", urls, body)
35127	if err != nil {
35128		return nil, err
35129	}
35130	req.Header = reqHeaders
35131	googleapi.Expand(req.URL, map[string]string{
35132		"partnerId": strconv.FormatInt(c.partnerId, 10),
35133		"channelId": strconv.FormatInt(c.channelId, 10),
35134	})
35135	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35136}
35137
35138// Do executes the "displayvideo.partners.channels.sites.create" call.
35139// Exactly one of *Site or error will be non-nil. Any non-2xx status
35140// code is an error. Response headers are in either
35141// *Site.ServerResponse.Header or (if a response was returned at all) in
35142// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
35143// whether the returned error was because http.StatusNotModified was
35144// returned.
35145func (c *PartnersChannelsSitesCreateCall) Do(opts ...googleapi.CallOption) (*Site, error) {
35146	gensupport.SetOptions(c.urlParams_, opts...)
35147	res, err := c.doRequest("json")
35148	if res != nil && res.StatusCode == http.StatusNotModified {
35149		if res.Body != nil {
35150			res.Body.Close()
35151		}
35152		return nil, &googleapi.Error{
35153			Code:   res.StatusCode,
35154			Header: res.Header,
35155		}
35156	}
35157	if err != nil {
35158		return nil, err
35159	}
35160	defer googleapi.CloseBody(res)
35161	if err := googleapi.CheckResponse(res); err != nil {
35162		return nil, err
35163	}
35164	ret := &Site{
35165		ServerResponse: googleapi.ServerResponse{
35166			Header:         res.Header,
35167			HTTPStatusCode: res.StatusCode,
35168		},
35169	}
35170	target := &ret
35171	if err := gensupport.DecodeResponse(target, res); err != nil {
35172		return nil, err
35173	}
35174	return ret, nil
35175	// {
35176	//   "description": "Creates a site in a channel.",
35177	//   "flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites",
35178	//   "httpMethod": "POST",
35179	//   "id": "displayvideo.partners.channels.sites.create",
35180	//   "parameterOrder": [
35181	//     "partnerId",
35182	//     "channelId"
35183	//   ],
35184	//   "parameters": {
35185	//     "advertiserId": {
35186	//       "description": "The ID of the advertiser that owns the parent channel.",
35187	//       "format": "int64",
35188	//       "location": "query",
35189	//       "type": "string"
35190	//     },
35191	//     "channelId": {
35192	//       "description": "Required. The ID of the parent channel in which the site will be created.",
35193	//       "format": "int64",
35194	//       "location": "path",
35195	//       "pattern": "^[^/]+$",
35196	//       "required": true,
35197	//       "type": "string"
35198	//     },
35199	//     "partnerId": {
35200	//       "description": "The ID of the partner that owns the parent channel.",
35201	//       "format": "int64",
35202	//       "location": "path",
35203	//       "required": true,
35204	//       "type": "string"
35205	//     }
35206	//   },
35207	//   "path": "v1/partners/{partnerId}/channels/{+channelId}/sites",
35208	//   "request": {
35209	//     "$ref": "Site"
35210	//   },
35211	//   "response": {
35212	//     "$ref": "Site"
35213	//   },
35214	//   "scopes": [
35215	//     "https://www.googleapis.com/auth/display-video"
35216	//   ]
35217	// }
35218
35219}
35220
35221// method id "displayvideo.partners.channels.sites.delete":
35222
35223type PartnersChannelsSitesDeleteCall struct {
35224	s          *Service
35225	partnerId  int64
35226	channelId  int64
35227	urlOrAppId string
35228	urlParams_ gensupport.URLParams
35229	ctx_       context.Context
35230	header_    http.Header
35231}
35232
35233// Delete: Deletes a site from a channel.
35234//
35235// - channelId: The ID of the parent channel to which the site belongs.
35236// - partnerId: The ID of the partner that owns the parent channel.
35237// - urlOrAppId: The URL or app ID of the site to delete.
35238func (r *PartnersChannelsSitesService) Delete(partnerId int64, channelId int64, urlOrAppId string) *PartnersChannelsSitesDeleteCall {
35239	c := &PartnersChannelsSitesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35240	c.partnerId = partnerId
35241	c.channelId = channelId
35242	c.urlOrAppId = urlOrAppId
35243	return c
35244}
35245
35246// AdvertiserId sets the optional parameter "advertiserId": The ID of
35247// the advertiser that owns the parent channel.
35248func (c *PartnersChannelsSitesDeleteCall) AdvertiserId(advertiserId int64) *PartnersChannelsSitesDeleteCall {
35249	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
35250	return c
35251}
35252
35253// Fields allows partial responses to be retrieved. See
35254// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35255// for more information.
35256func (c *PartnersChannelsSitesDeleteCall) Fields(s ...googleapi.Field) *PartnersChannelsSitesDeleteCall {
35257	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35258	return c
35259}
35260
35261// Context sets the context to be used in this call's Do method. Any
35262// pending HTTP request will be aborted if the provided context is
35263// canceled.
35264func (c *PartnersChannelsSitesDeleteCall) Context(ctx context.Context) *PartnersChannelsSitesDeleteCall {
35265	c.ctx_ = ctx
35266	return c
35267}
35268
35269// Header returns an http.Header that can be modified by the caller to
35270// add HTTP headers to the request.
35271func (c *PartnersChannelsSitesDeleteCall) Header() http.Header {
35272	if c.header_ == nil {
35273		c.header_ = make(http.Header)
35274	}
35275	return c.header_
35276}
35277
35278func (c *PartnersChannelsSitesDeleteCall) doRequest(alt string) (*http.Response, error) {
35279	reqHeaders := make(http.Header)
35280	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
35281	for k, v := range c.header_ {
35282		reqHeaders[k] = v
35283	}
35284	reqHeaders.Set("User-Agent", c.s.userAgent())
35285	var body io.Reader = nil
35286	c.urlParams_.Set("alt", alt)
35287	c.urlParams_.Set("prettyPrint", "false")
35288	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{partnerId}/channels/{+channelId}/sites/{+urlOrAppId}")
35289	urls += "?" + c.urlParams_.Encode()
35290	req, err := http.NewRequest("DELETE", urls, body)
35291	if err != nil {
35292		return nil, err
35293	}
35294	req.Header = reqHeaders
35295	googleapi.Expand(req.URL, map[string]string{
35296		"partnerId":  strconv.FormatInt(c.partnerId, 10),
35297		"channelId":  strconv.FormatInt(c.channelId, 10),
35298		"urlOrAppId": c.urlOrAppId,
35299	})
35300	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35301}
35302
35303// Do executes the "displayvideo.partners.channels.sites.delete" call.
35304// Exactly one of *Empty or error will be non-nil. Any non-2xx status
35305// code is an error. Response headers are in either
35306// *Empty.ServerResponse.Header or (if a response was returned at all)
35307// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
35308// check whether the returned error was because http.StatusNotModified
35309// was returned.
35310func (c *PartnersChannelsSitesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
35311	gensupport.SetOptions(c.urlParams_, opts...)
35312	res, err := c.doRequest("json")
35313	if res != nil && res.StatusCode == http.StatusNotModified {
35314		if res.Body != nil {
35315			res.Body.Close()
35316		}
35317		return nil, &googleapi.Error{
35318			Code:   res.StatusCode,
35319			Header: res.Header,
35320		}
35321	}
35322	if err != nil {
35323		return nil, err
35324	}
35325	defer googleapi.CloseBody(res)
35326	if err := googleapi.CheckResponse(res); err != nil {
35327		return nil, err
35328	}
35329	ret := &Empty{
35330		ServerResponse: googleapi.ServerResponse{
35331			Header:         res.Header,
35332			HTTPStatusCode: res.StatusCode,
35333		},
35334	}
35335	target := &ret
35336	if err := gensupport.DecodeResponse(target, res); err != nil {
35337		return nil, err
35338	}
35339	return ret, nil
35340	// {
35341	//   "description": "Deletes a site from a channel.",
35342	//   "flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites/{sitesId}",
35343	//   "httpMethod": "DELETE",
35344	//   "id": "displayvideo.partners.channels.sites.delete",
35345	//   "parameterOrder": [
35346	//     "partnerId",
35347	//     "channelId",
35348	//     "urlOrAppId"
35349	//   ],
35350	//   "parameters": {
35351	//     "advertiserId": {
35352	//       "description": "The ID of the advertiser that owns the parent channel.",
35353	//       "format": "int64",
35354	//       "location": "query",
35355	//       "type": "string"
35356	//     },
35357	//     "channelId": {
35358	//       "description": "Required. The ID of the parent channel to which the site belongs.",
35359	//       "format": "int64",
35360	//       "location": "path",
35361	//       "pattern": "^[^/]+$",
35362	//       "required": true,
35363	//       "type": "string"
35364	//     },
35365	//     "partnerId": {
35366	//       "description": "The ID of the partner that owns the parent channel.",
35367	//       "format": "int64",
35368	//       "location": "path",
35369	//       "required": true,
35370	//       "type": "string"
35371	//     },
35372	//     "urlOrAppId": {
35373	//       "description": "Required. The URL or app ID of the site to delete.",
35374	//       "location": "path",
35375	//       "pattern": "^[^/]+$",
35376	//       "required": true,
35377	//       "type": "string"
35378	//     }
35379	//   },
35380	//   "path": "v1/partners/{partnerId}/channels/{+channelId}/sites/{+urlOrAppId}",
35381	//   "response": {
35382	//     "$ref": "Empty"
35383	//   },
35384	//   "scopes": [
35385	//     "https://www.googleapis.com/auth/display-video"
35386	//   ]
35387	// }
35388
35389}
35390
35391// method id "displayvideo.partners.channels.sites.list":
35392
35393type PartnersChannelsSitesListCall struct {
35394	s            *Service
35395	partnerId    int64
35396	channelId    int64
35397	urlParams_   gensupport.URLParams
35398	ifNoneMatch_ string
35399	ctx_         context.Context
35400	header_      http.Header
35401}
35402
35403// List: Lists sites in a channel.
35404//
35405// - channelId: The ID of the parent channel to which the requested
35406//   sites belong.
35407// - partnerId: The ID of the partner that owns the parent channel.
35408func (r *PartnersChannelsSitesService) List(partnerId int64, channelId int64) *PartnersChannelsSitesListCall {
35409	c := &PartnersChannelsSitesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35410	c.partnerId = partnerId
35411	c.channelId = channelId
35412	return c
35413}
35414
35415// AdvertiserId sets the optional parameter "advertiserId": The ID of
35416// the advertiser that owns the parent channel.
35417func (c *PartnersChannelsSitesListCall) AdvertiserId(advertiserId int64) *PartnersChannelsSitesListCall {
35418	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
35419	return c
35420}
35421
35422// Filter sets the optional parameter "filter": Allows filtering by site
35423// fields. Supported syntax: * Filter expressions for site currently can
35424// only contain at most one * restriction. * A restriction has the form
35425// of `{field} {operator} {value}`. * The operator must be `CONTAINS
35426// (:)`. * Supported fields: - `urlOrAppId` Examples: * All sites for
35427// which the URL or app ID contains "google": `urlOrAppId : "google"
35428func (c *PartnersChannelsSitesListCall) Filter(filter string) *PartnersChannelsSitesListCall {
35429	c.urlParams_.Set("filter", filter)
35430	return c
35431}
35432
35433// OrderBy sets the optional parameter "orderBy": Field by which to sort
35434// the list. Acceptable values are: * `urlOrAppId` (default) The default
35435// sorting order is ascending. To specify descending order for a field,
35436// a suffix " desc" should be added to the field name. Example:
35437// `urlOrAppId desc`.
35438func (c *PartnersChannelsSitesListCall) OrderBy(orderBy string) *PartnersChannelsSitesListCall {
35439	c.urlParams_.Set("orderBy", orderBy)
35440	return c
35441}
35442
35443// PageSize sets the optional parameter "pageSize": Requested page size.
35444// Must be between `1` and `10000`. If unspecified will default to
35445// `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is
35446// specified.
35447func (c *PartnersChannelsSitesListCall) PageSize(pageSize int64) *PartnersChannelsSitesListCall {
35448	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
35449	return c
35450}
35451
35452// PageToken sets the optional parameter "pageToken": A token
35453// identifying a page of results the server should return. Typically,
35454// this is the value of next_page_token returned from the previous call
35455// to `ListSites` method. If not specified, the first page of results
35456// will be returned.
35457func (c *PartnersChannelsSitesListCall) PageToken(pageToken string) *PartnersChannelsSitesListCall {
35458	c.urlParams_.Set("pageToken", pageToken)
35459	return c
35460}
35461
35462// Fields allows partial responses to be retrieved. See
35463// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35464// for more information.
35465func (c *PartnersChannelsSitesListCall) Fields(s ...googleapi.Field) *PartnersChannelsSitesListCall {
35466	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35467	return c
35468}
35469
35470// IfNoneMatch sets the optional parameter which makes the operation
35471// fail if the object's ETag matches the given value. This is useful for
35472// getting updates only after the object has changed since the last
35473// request. Use googleapi.IsNotModified to check whether the response
35474// error from Do is the result of In-None-Match.
35475func (c *PartnersChannelsSitesListCall) IfNoneMatch(entityTag string) *PartnersChannelsSitesListCall {
35476	c.ifNoneMatch_ = entityTag
35477	return c
35478}
35479
35480// Context sets the context to be used in this call's Do method. Any
35481// pending HTTP request will be aborted if the provided context is
35482// canceled.
35483func (c *PartnersChannelsSitesListCall) Context(ctx context.Context) *PartnersChannelsSitesListCall {
35484	c.ctx_ = ctx
35485	return c
35486}
35487
35488// Header returns an http.Header that can be modified by the caller to
35489// add HTTP headers to the request.
35490func (c *PartnersChannelsSitesListCall) Header() http.Header {
35491	if c.header_ == nil {
35492		c.header_ = make(http.Header)
35493	}
35494	return c.header_
35495}
35496
35497func (c *PartnersChannelsSitesListCall) doRequest(alt string) (*http.Response, error) {
35498	reqHeaders := make(http.Header)
35499	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
35500	for k, v := range c.header_ {
35501		reqHeaders[k] = v
35502	}
35503	reqHeaders.Set("User-Agent", c.s.userAgent())
35504	if c.ifNoneMatch_ != "" {
35505		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35506	}
35507	var body io.Reader = nil
35508	c.urlParams_.Set("alt", alt)
35509	c.urlParams_.Set("prettyPrint", "false")
35510	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/channels/{+channelId}/sites")
35511	urls += "?" + c.urlParams_.Encode()
35512	req, err := http.NewRequest("GET", urls, body)
35513	if err != nil {
35514		return nil, err
35515	}
35516	req.Header = reqHeaders
35517	googleapi.Expand(req.URL, map[string]string{
35518		"partnerId": strconv.FormatInt(c.partnerId, 10),
35519		"channelId": strconv.FormatInt(c.channelId, 10),
35520	})
35521	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35522}
35523
35524// Do executes the "displayvideo.partners.channels.sites.list" call.
35525// Exactly one of *ListSitesResponse or error will be non-nil. Any
35526// non-2xx status code is an error. Response headers are in either
35527// *ListSitesResponse.ServerResponse.Header or (if a response was
35528// returned at all) in error.(*googleapi.Error).Header. Use
35529// googleapi.IsNotModified to check whether the returned error was
35530// because http.StatusNotModified was returned.
35531func (c *PartnersChannelsSitesListCall) Do(opts ...googleapi.CallOption) (*ListSitesResponse, error) {
35532	gensupport.SetOptions(c.urlParams_, opts...)
35533	res, err := c.doRequest("json")
35534	if res != nil && res.StatusCode == http.StatusNotModified {
35535		if res.Body != nil {
35536			res.Body.Close()
35537		}
35538		return nil, &googleapi.Error{
35539			Code:   res.StatusCode,
35540			Header: res.Header,
35541		}
35542	}
35543	if err != nil {
35544		return nil, err
35545	}
35546	defer googleapi.CloseBody(res)
35547	if err := googleapi.CheckResponse(res); err != nil {
35548		return nil, err
35549	}
35550	ret := &ListSitesResponse{
35551		ServerResponse: googleapi.ServerResponse{
35552			Header:         res.Header,
35553			HTTPStatusCode: res.StatusCode,
35554		},
35555	}
35556	target := &ret
35557	if err := gensupport.DecodeResponse(target, res); err != nil {
35558		return nil, err
35559	}
35560	return ret, nil
35561	// {
35562	//   "description": "Lists sites in a channel.",
35563	//   "flatPath": "v1/partners/{partnersId}/channels/{channelsId}/sites",
35564	//   "httpMethod": "GET",
35565	//   "id": "displayvideo.partners.channels.sites.list",
35566	//   "parameterOrder": [
35567	//     "partnerId",
35568	//     "channelId"
35569	//   ],
35570	//   "parameters": {
35571	//     "advertiserId": {
35572	//       "description": "The ID of the advertiser that owns the parent channel.",
35573	//       "format": "int64",
35574	//       "location": "query",
35575	//       "type": "string"
35576	//     },
35577	//     "channelId": {
35578	//       "description": "Required. The ID of the parent channel to which the requested sites belong.",
35579	//       "format": "int64",
35580	//       "location": "path",
35581	//       "pattern": "^[^/]+$",
35582	//       "required": true,
35583	//       "type": "string"
35584	//     },
35585	//     "filter": {
35586	//       "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\"`",
35587	//       "location": "query",
35588	//       "type": "string"
35589	//     },
35590	//     "orderBy": {
35591	//       "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`.",
35592	//       "location": "query",
35593	//       "type": "string"
35594	//     },
35595	//     "pageSize": {
35596	//       "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.",
35597	//       "format": "int32",
35598	//       "location": "query",
35599	//       "type": "integer"
35600	//     },
35601	//     "pageToken": {
35602	//       "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.",
35603	//       "location": "query",
35604	//       "type": "string"
35605	//     },
35606	//     "partnerId": {
35607	//       "description": "The ID of the partner that owns the parent channel.",
35608	//       "format": "int64",
35609	//       "location": "path",
35610	//       "pattern": "^[^/]+$",
35611	//       "required": true,
35612	//       "type": "string"
35613	//     }
35614	//   },
35615	//   "path": "v1/partners/{+partnerId}/channels/{+channelId}/sites",
35616	//   "response": {
35617	//     "$ref": "ListSitesResponse"
35618	//   },
35619	//   "scopes": [
35620	//     "https://www.googleapis.com/auth/display-video"
35621	//   ]
35622	// }
35623
35624}
35625
35626// Pages invokes f for each page of results.
35627// A non-nil error returned from f will halt the iteration.
35628// The provided context supersedes any context provided to the Context method.
35629func (c *PartnersChannelsSitesListCall) Pages(ctx context.Context, f func(*ListSitesResponse) error) error {
35630	c.ctx_ = ctx
35631	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
35632	for {
35633		x, err := c.Do()
35634		if err != nil {
35635			return err
35636		}
35637		if err := f(x); err != nil {
35638			return err
35639		}
35640		if x.NextPageToken == "" {
35641			return nil
35642		}
35643		c.PageToken(x.NextPageToken)
35644	}
35645}
35646
35647// method id "displayvideo.partners.channels.sites.replace":
35648
35649type PartnersChannelsSitesReplaceCall struct {
35650	s                   *Service
35651	partnerId           int64
35652	channelId           int64
35653	replacesitesrequest *ReplaceSitesRequest
35654	urlParams_          gensupport.URLParams
35655	ctx_                context.Context
35656	header_             http.Header
35657}
35658
35659// Replace: Replaces all of the sites under a single channel. The
35660// operation will replace the sites under a channel with the sites
35661// provided in ReplaceSitesRequest.new_sites.
35662//
35663// - channelId: The ID of the parent channel whose sites will be
35664//   replaced.
35665// - partnerId: The ID of the partner that owns the parent channel.
35666func (r *PartnersChannelsSitesService) Replace(partnerId int64, channelId int64, replacesitesrequest *ReplaceSitesRequest) *PartnersChannelsSitesReplaceCall {
35667	c := &PartnersChannelsSitesReplaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35668	c.partnerId = partnerId
35669	c.channelId = channelId
35670	c.replacesitesrequest = replacesitesrequest
35671	return c
35672}
35673
35674// Fields allows partial responses to be retrieved. See
35675// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35676// for more information.
35677func (c *PartnersChannelsSitesReplaceCall) Fields(s ...googleapi.Field) *PartnersChannelsSitesReplaceCall {
35678	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35679	return c
35680}
35681
35682// Context sets the context to be used in this call's Do method. Any
35683// pending HTTP request will be aborted if the provided context is
35684// canceled.
35685func (c *PartnersChannelsSitesReplaceCall) Context(ctx context.Context) *PartnersChannelsSitesReplaceCall {
35686	c.ctx_ = ctx
35687	return c
35688}
35689
35690// Header returns an http.Header that can be modified by the caller to
35691// add HTTP headers to the request.
35692func (c *PartnersChannelsSitesReplaceCall) Header() http.Header {
35693	if c.header_ == nil {
35694		c.header_ = make(http.Header)
35695	}
35696	return c.header_
35697}
35698
35699func (c *PartnersChannelsSitesReplaceCall) doRequest(alt string) (*http.Response, error) {
35700	reqHeaders := make(http.Header)
35701	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
35702	for k, v := range c.header_ {
35703		reqHeaders[k] = v
35704	}
35705	reqHeaders.Set("User-Agent", c.s.userAgent())
35706	var body io.Reader = nil
35707	body, err := googleapi.WithoutDataWrapper.JSONReader(c.replacesitesrequest)
35708	if err != nil {
35709		return nil, err
35710	}
35711	reqHeaders.Set("Content-Type", "application/json")
35712	c.urlParams_.Set("alt", alt)
35713	c.urlParams_.Set("prettyPrint", "false")
35714	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{partnerId}/channels/{+channelId}/sites:replace")
35715	urls += "?" + c.urlParams_.Encode()
35716	req, err := http.NewRequest("POST", urls, body)
35717	if err != nil {
35718		return nil, err
35719	}
35720	req.Header = reqHeaders
35721	googleapi.Expand(req.URL, map[string]string{
35722		"partnerId": strconv.FormatInt(c.partnerId, 10),
35723		"channelId": strconv.FormatInt(c.channelId, 10),
35724	})
35725	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35726}
35727
35728// Do executes the "displayvideo.partners.channels.sites.replace" call.
35729// Exactly one of *ReplaceSitesResponse or error will be non-nil. Any
35730// non-2xx status code is an error. Response headers are in either
35731// *ReplaceSitesResponse.ServerResponse.Header or (if a response was
35732// returned at all) in error.(*googleapi.Error).Header. Use
35733// googleapi.IsNotModified to check whether the returned error was
35734// because http.StatusNotModified was returned.
35735func (c *PartnersChannelsSitesReplaceCall) Do(opts ...googleapi.CallOption) (*ReplaceSitesResponse, error) {
35736	gensupport.SetOptions(c.urlParams_, opts...)
35737	res, err := c.doRequest("json")
35738	if res != nil && res.StatusCode == http.StatusNotModified {
35739		if res.Body != nil {
35740			res.Body.Close()
35741		}
35742		return nil, &googleapi.Error{
35743			Code:   res.StatusCode,
35744			Header: res.Header,
35745		}
35746	}
35747	if err != nil {
35748		return nil, err
35749	}
35750	defer googleapi.CloseBody(res)
35751	if err := googleapi.CheckResponse(res); err != nil {
35752		return nil, err
35753	}
35754	ret := &ReplaceSitesResponse{
35755		ServerResponse: googleapi.ServerResponse{
35756			Header:         res.Header,
35757			HTTPStatusCode: res.StatusCode,
35758		},
35759	}
35760	target := &ret
35761	if err := gensupport.DecodeResponse(target, res); err != nil {
35762		return nil, err
35763	}
35764	return ret, nil
35765	// {
35766	//   "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.",
35767	//   "flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites:replace",
35768	//   "httpMethod": "POST",
35769	//   "id": "displayvideo.partners.channels.sites.replace",
35770	//   "parameterOrder": [
35771	//     "partnerId",
35772	//     "channelId"
35773	//   ],
35774	//   "parameters": {
35775	//     "channelId": {
35776	//       "description": "Required. The ID of the parent channel whose sites will be replaced.",
35777	//       "format": "int64",
35778	//       "location": "path",
35779	//       "pattern": "^[^/]+$",
35780	//       "required": true,
35781	//       "type": "string"
35782	//     },
35783	//     "partnerId": {
35784	//       "description": "The ID of the partner that owns the parent channel.",
35785	//       "format": "int64",
35786	//       "location": "path",
35787	//       "required": true,
35788	//       "type": "string"
35789	//     }
35790	//   },
35791	//   "path": "v1/partners/{partnerId}/channels/{+channelId}/sites:replace",
35792	//   "request": {
35793	//     "$ref": "ReplaceSitesRequest"
35794	//   },
35795	//   "response": {
35796	//     "$ref": "ReplaceSitesResponse"
35797	//   },
35798	//   "scopes": [
35799	//     "https://www.googleapis.com/auth/display-video"
35800	//   ]
35801	// }
35802
35803}
35804
35805// method id "displayvideo.partners.targetingTypes.assignedTargetingOptions.create":
35806
35807type PartnersTargetingTypesAssignedTargetingOptionsCreateCall struct {
35808	s                       *Service
35809	partnerId               int64
35810	targetingType           string
35811	assignedtargetingoption *AssignedTargetingOption
35812	urlParams_              gensupport.URLParams
35813	ctx_                    context.Context
35814	header_                 http.Header
35815}
35816
35817// Create: Assigns a targeting option to a partner. Returns the assigned
35818// targeting option if successful.
35819//
35820// - partnerId: The ID of the partner.
35821// - targetingType: Identifies the type of this assigned targeting
35822//   option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`.
35823func (r *PartnersTargetingTypesAssignedTargetingOptionsService) Create(partnerId int64, targetingType string, assignedtargetingoption *AssignedTargetingOption) *PartnersTargetingTypesAssignedTargetingOptionsCreateCall {
35824	c := &PartnersTargetingTypesAssignedTargetingOptionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35825	c.partnerId = partnerId
35826	c.targetingType = targetingType
35827	c.assignedtargetingoption = assignedtargetingoption
35828	return c
35829}
35830
35831// Fields allows partial responses to be retrieved. See
35832// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35833// for more information.
35834func (c *PartnersTargetingTypesAssignedTargetingOptionsCreateCall) Fields(s ...googleapi.Field) *PartnersTargetingTypesAssignedTargetingOptionsCreateCall {
35835	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35836	return c
35837}
35838
35839// Context sets the context to be used in this call's Do method. Any
35840// pending HTTP request will be aborted if the provided context is
35841// canceled.
35842func (c *PartnersTargetingTypesAssignedTargetingOptionsCreateCall) Context(ctx context.Context) *PartnersTargetingTypesAssignedTargetingOptionsCreateCall {
35843	c.ctx_ = ctx
35844	return c
35845}
35846
35847// Header returns an http.Header that can be modified by the caller to
35848// add HTTP headers to the request.
35849func (c *PartnersTargetingTypesAssignedTargetingOptionsCreateCall) Header() http.Header {
35850	if c.header_ == nil {
35851		c.header_ = make(http.Header)
35852	}
35853	return c.header_
35854}
35855
35856func (c *PartnersTargetingTypesAssignedTargetingOptionsCreateCall) doRequest(alt string) (*http.Response, error) {
35857	reqHeaders := make(http.Header)
35858	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
35859	for k, v := range c.header_ {
35860		reqHeaders[k] = v
35861	}
35862	reqHeaders.Set("User-Agent", c.s.userAgent())
35863	var body io.Reader = nil
35864	body, err := googleapi.WithoutDataWrapper.JSONReader(c.assignedtargetingoption)
35865	if err != nil {
35866		return nil, err
35867	}
35868	reqHeaders.Set("Content-Type", "application/json")
35869	c.urlParams_.Set("alt", alt)
35870	c.urlParams_.Set("prettyPrint", "false")
35871	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
35872	urls += "?" + c.urlParams_.Encode()
35873	req, err := http.NewRequest("POST", urls, body)
35874	if err != nil {
35875		return nil, err
35876	}
35877	req.Header = reqHeaders
35878	googleapi.Expand(req.URL, map[string]string{
35879		"partnerId":     strconv.FormatInt(c.partnerId, 10),
35880		"targetingType": c.targetingType,
35881	})
35882	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35883}
35884
35885// Do executes the "displayvideo.partners.targetingTypes.assignedTargetingOptions.create" call.
35886// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
35887// non-2xx status code is an error. Response headers are in either
35888// *AssignedTargetingOption.ServerResponse.Header or (if a response was
35889// returned at all) in error.(*googleapi.Error).Header. Use
35890// googleapi.IsNotModified to check whether the returned error was
35891// because http.StatusNotModified was returned.
35892func (c *PartnersTargetingTypesAssignedTargetingOptionsCreateCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
35893	gensupport.SetOptions(c.urlParams_, opts...)
35894	res, err := c.doRequest("json")
35895	if res != nil && res.StatusCode == http.StatusNotModified {
35896		if res.Body != nil {
35897			res.Body.Close()
35898		}
35899		return nil, &googleapi.Error{
35900			Code:   res.StatusCode,
35901			Header: res.Header,
35902		}
35903	}
35904	if err != nil {
35905		return nil, err
35906	}
35907	defer googleapi.CloseBody(res)
35908	if err := googleapi.CheckResponse(res); err != nil {
35909		return nil, err
35910	}
35911	ret := &AssignedTargetingOption{
35912		ServerResponse: googleapi.ServerResponse{
35913			Header:         res.Header,
35914			HTTPStatusCode: res.StatusCode,
35915		},
35916	}
35917	target := &ret
35918	if err := gensupport.DecodeResponse(target, res); err != nil {
35919		return nil, err
35920	}
35921	return ret, nil
35922	// {
35923	//   "description": "Assigns a targeting option to a partner. Returns the assigned targeting option if successful.",
35924	//   "flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
35925	//   "httpMethod": "POST",
35926	//   "id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.create",
35927	//   "parameterOrder": [
35928	//     "partnerId",
35929	//     "targetingType"
35930	//   ],
35931	//   "parameters": {
35932	//     "partnerId": {
35933	//       "description": "Required. The ID of the partner.",
35934	//       "format": "int64",
35935	//       "location": "path",
35936	//       "pattern": "^[^/]+$",
35937	//       "required": true,
35938	//       "type": "string"
35939	//     },
35940	//     "targetingType": {
35941	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`",
35942	//       "enum": [
35943	//         "TARGETING_TYPE_UNSPECIFIED",
35944	//         "TARGETING_TYPE_CHANNEL",
35945	//         "TARGETING_TYPE_APP_CATEGORY",
35946	//         "TARGETING_TYPE_APP",
35947	//         "TARGETING_TYPE_URL",
35948	//         "TARGETING_TYPE_DAY_AND_TIME",
35949	//         "TARGETING_TYPE_AGE_RANGE",
35950	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
35951	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
35952	//         "TARGETING_TYPE_GENDER",
35953	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
35954	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
35955	//         "TARGETING_TYPE_PARENTAL_STATUS",
35956	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
35957	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
35958	//         "TARGETING_TYPE_DEVICE_TYPE",
35959	//         "TARGETING_TYPE_AUDIENCE_GROUP",
35960	//         "TARGETING_TYPE_BROWSER",
35961	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
35962	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
35963	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
35964	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
35965	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
35966	//         "TARGETING_TYPE_ENVIRONMENT",
35967	//         "TARGETING_TYPE_CARRIER_AND_ISP",
35968	//         "TARGETING_TYPE_OPERATING_SYSTEM",
35969	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
35970	//         "TARGETING_TYPE_KEYWORD",
35971	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
35972	//         "TARGETING_TYPE_VIEWABILITY",
35973	//         "TARGETING_TYPE_CATEGORY",
35974	//         "TARGETING_TYPE_INVENTORY_SOURCE",
35975	//         "TARGETING_TYPE_LANGUAGE",
35976	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
35977	//         "TARGETING_TYPE_GEO_REGION",
35978	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
35979	//         "TARGETING_TYPE_EXCHANGE",
35980	//         "TARGETING_TYPE_SUB_EXCHANGE"
35981	//       ],
35982	//       "enumDescriptions": [
35983	//         "Default value when type is not specified or is unknown in this version.",
35984	//         "Target a channel (a custom group of related websites or apps).",
35985	//         "Target an app category (for example, education or puzzle games).",
35986	//         "Target a specific app (for example, Angry Birds).",
35987	//         "Target a specific url (for example, quora.com).",
35988	//         "Target ads during a chosen time period on a specific day.",
35989	//         "Target ads to a specific age range (for example, 18-24).",
35990	//         "Target ads to the specified regions on a regional location list.",
35991	//         "Target ads to the specified points of interest on a proximity location list.",
35992	//         "Target ads to a specific gender (for example, female or male).",
35993	//         "Target a specific video player size for video ads.",
35994	//         "Target user rewarded content for video ads.",
35995	//         "Target ads to a specific parental status (for example, parent or not a parent).",
35996	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
35997	//         "Target ads in a specific content outstream position.",
35998	//         "Target ads to a specific device type (for example, tablet or connected TV).",
35999	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
36000	//         "Target ads to specific web browsers (for example, Chrome).",
36001	//         "Target ads to a specific household income range (for example, top 10%).",
36002	//         "Target ads in a specific on screen position.",
36003	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
36004	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
36005	//         "Filter website content by sensitive categories (for example, adult).",
36006	//         "Target ads to a specific environment (for example, web or app).",
36007	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
36008	//         "Target ads to a specific operating system (for example, macOS).",
36009	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
36010	//         "Target ads to a specific keyword (for example, dog or retriever).",
36011	//         "Target ads to a specific negative keyword list.",
36012	//         "Target ads to a specific viewability (for example, 80% viewable).",
36013	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
36014	//         "Purchase impressions from specific deals and auction packages.",
36015	//         "Target ads to a specific language (for example, English or Japanese).",
36016	//         "Target ads to ads.txt authorized sellers.",
36017	//         "Target ads to a specific regional location (for example, a city or state).",
36018	//         "Purchase impressions from a group of deals and auction packages.",
36019	//         "Purchase impressions from specific exchanges.",
36020	//         "Purchase impressions from specific sub-exchanges."
36021	//       ],
36022	//       "location": "path",
36023	//       "pattern": "^[^/]+$",
36024	//       "required": true,
36025	//       "type": "string"
36026	//     }
36027	//   },
36028	//   "path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
36029	//   "request": {
36030	//     "$ref": "AssignedTargetingOption"
36031	//   },
36032	//   "response": {
36033	//     "$ref": "AssignedTargetingOption"
36034	//   },
36035	//   "scopes": [
36036	//     "https://www.googleapis.com/auth/display-video"
36037	//   ]
36038	// }
36039
36040}
36041
36042// method id "displayvideo.partners.targetingTypes.assignedTargetingOptions.delete":
36043
36044type PartnersTargetingTypesAssignedTargetingOptionsDeleteCall struct {
36045	s                         *Service
36046	partnerId                 int64
36047	targetingType             string
36048	assignedTargetingOptionId string
36049	urlParams_                gensupport.URLParams
36050	ctx_                      context.Context
36051	header_                   http.Header
36052}
36053
36054// Delete: Deletes an assigned targeting option from a partner.
36055//
36056// - assignedTargetingOptionId: The ID of the assigned targeting option
36057//   to delete.
36058// - partnerId: The ID of the partner.
36059// - targetingType: Identifies the type of this assigned targeting
36060//   option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`.
36061func (r *PartnersTargetingTypesAssignedTargetingOptionsService) Delete(partnerId int64, targetingType string, assignedTargetingOptionId string) *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall {
36062	c := &PartnersTargetingTypesAssignedTargetingOptionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36063	c.partnerId = partnerId
36064	c.targetingType = targetingType
36065	c.assignedTargetingOptionId = assignedTargetingOptionId
36066	return c
36067}
36068
36069// Fields allows partial responses to be retrieved. See
36070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36071// for more information.
36072func (c *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall) Fields(s ...googleapi.Field) *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall {
36073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36074	return c
36075}
36076
36077// Context sets the context to be used in this call's Do method. Any
36078// pending HTTP request will be aborted if the provided context is
36079// canceled.
36080func (c *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall) Context(ctx context.Context) *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall {
36081	c.ctx_ = ctx
36082	return c
36083}
36084
36085// Header returns an http.Header that can be modified by the caller to
36086// add HTTP headers to the request.
36087func (c *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall) Header() http.Header {
36088	if c.header_ == nil {
36089		c.header_ = make(http.Header)
36090	}
36091	return c.header_
36092}
36093
36094func (c *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall) doRequest(alt string) (*http.Response, error) {
36095	reqHeaders := make(http.Header)
36096	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
36097	for k, v := range c.header_ {
36098		reqHeaders[k] = v
36099	}
36100	reqHeaders.Set("User-Agent", c.s.userAgent())
36101	var body io.Reader = nil
36102	c.urlParams_.Set("alt", alt)
36103	c.urlParams_.Set("prettyPrint", "false")
36104	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
36105	urls += "?" + c.urlParams_.Encode()
36106	req, err := http.NewRequest("DELETE", urls, body)
36107	if err != nil {
36108		return nil, err
36109	}
36110	req.Header = reqHeaders
36111	googleapi.Expand(req.URL, map[string]string{
36112		"partnerId":                 strconv.FormatInt(c.partnerId, 10),
36113		"targetingType":             c.targetingType,
36114		"assignedTargetingOptionId": c.assignedTargetingOptionId,
36115	})
36116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36117}
36118
36119// Do executes the "displayvideo.partners.targetingTypes.assignedTargetingOptions.delete" call.
36120// Exactly one of *Empty or error will be non-nil. Any non-2xx status
36121// code is an error. Response headers are in either
36122// *Empty.ServerResponse.Header or (if a response was returned at all)
36123// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
36124// check whether the returned error was because http.StatusNotModified
36125// was returned.
36126func (c *PartnersTargetingTypesAssignedTargetingOptionsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
36127	gensupport.SetOptions(c.urlParams_, opts...)
36128	res, err := c.doRequest("json")
36129	if res != nil && res.StatusCode == http.StatusNotModified {
36130		if res.Body != nil {
36131			res.Body.Close()
36132		}
36133		return nil, &googleapi.Error{
36134			Code:   res.StatusCode,
36135			Header: res.Header,
36136		}
36137	}
36138	if err != nil {
36139		return nil, err
36140	}
36141	defer googleapi.CloseBody(res)
36142	if err := googleapi.CheckResponse(res); err != nil {
36143		return nil, err
36144	}
36145	ret := &Empty{
36146		ServerResponse: googleapi.ServerResponse{
36147			Header:         res.Header,
36148			HTTPStatusCode: res.StatusCode,
36149		},
36150	}
36151	target := &ret
36152	if err := gensupport.DecodeResponse(target, res); err != nil {
36153		return nil, err
36154	}
36155	return ret, nil
36156	// {
36157	//   "description": "Deletes an assigned targeting option from a partner.",
36158	//   "flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
36159	//   "httpMethod": "DELETE",
36160	//   "id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.delete",
36161	//   "parameterOrder": [
36162	//     "partnerId",
36163	//     "targetingType",
36164	//     "assignedTargetingOptionId"
36165	//   ],
36166	//   "parameters": {
36167	//     "assignedTargetingOptionId": {
36168	//       "description": "Required. The ID of the assigned targeting option to delete.",
36169	//       "location": "path",
36170	//       "pattern": "^[^/]+$",
36171	//       "required": true,
36172	//       "type": "string"
36173	//     },
36174	//     "partnerId": {
36175	//       "description": "Required. The ID of the partner.",
36176	//       "format": "int64",
36177	//       "location": "path",
36178	//       "pattern": "^[^/]+$",
36179	//       "required": true,
36180	//       "type": "string"
36181	//     },
36182	//     "targetingType": {
36183	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`",
36184	//       "enum": [
36185	//         "TARGETING_TYPE_UNSPECIFIED",
36186	//         "TARGETING_TYPE_CHANNEL",
36187	//         "TARGETING_TYPE_APP_CATEGORY",
36188	//         "TARGETING_TYPE_APP",
36189	//         "TARGETING_TYPE_URL",
36190	//         "TARGETING_TYPE_DAY_AND_TIME",
36191	//         "TARGETING_TYPE_AGE_RANGE",
36192	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
36193	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
36194	//         "TARGETING_TYPE_GENDER",
36195	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
36196	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
36197	//         "TARGETING_TYPE_PARENTAL_STATUS",
36198	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
36199	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
36200	//         "TARGETING_TYPE_DEVICE_TYPE",
36201	//         "TARGETING_TYPE_AUDIENCE_GROUP",
36202	//         "TARGETING_TYPE_BROWSER",
36203	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
36204	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
36205	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
36206	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
36207	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
36208	//         "TARGETING_TYPE_ENVIRONMENT",
36209	//         "TARGETING_TYPE_CARRIER_AND_ISP",
36210	//         "TARGETING_TYPE_OPERATING_SYSTEM",
36211	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
36212	//         "TARGETING_TYPE_KEYWORD",
36213	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
36214	//         "TARGETING_TYPE_VIEWABILITY",
36215	//         "TARGETING_TYPE_CATEGORY",
36216	//         "TARGETING_TYPE_INVENTORY_SOURCE",
36217	//         "TARGETING_TYPE_LANGUAGE",
36218	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
36219	//         "TARGETING_TYPE_GEO_REGION",
36220	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
36221	//         "TARGETING_TYPE_EXCHANGE",
36222	//         "TARGETING_TYPE_SUB_EXCHANGE"
36223	//       ],
36224	//       "enumDescriptions": [
36225	//         "Default value when type is not specified or is unknown in this version.",
36226	//         "Target a channel (a custom group of related websites or apps).",
36227	//         "Target an app category (for example, education or puzzle games).",
36228	//         "Target a specific app (for example, Angry Birds).",
36229	//         "Target a specific url (for example, quora.com).",
36230	//         "Target ads during a chosen time period on a specific day.",
36231	//         "Target ads to a specific age range (for example, 18-24).",
36232	//         "Target ads to the specified regions on a regional location list.",
36233	//         "Target ads to the specified points of interest on a proximity location list.",
36234	//         "Target ads to a specific gender (for example, female or male).",
36235	//         "Target a specific video player size for video ads.",
36236	//         "Target user rewarded content for video ads.",
36237	//         "Target ads to a specific parental status (for example, parent or not a parent).",
36238	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
36239	//         "Target ads in a specific content outstream position.",
36240	//         "Target ads to a specific device type (for example, tablet or connected TV).",
36241	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
36242	//         "Target ads to specific web browsers (for example, Chrome).",
36243	//         "Target ads to a specific household income range (for example, top 10%).",
36244	//         "Target ads in a specific on screen position.",
36245	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
36246	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
36247	//         "Filter website content by sensitive categories (for example, adult).",
36248	//         "Target ads to a specific environment (for example, web or app).",
36249	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
36250	//         "Target ads to a specific operating system (for example, macOS).",
36251	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
36252	//         "Target ads to a specific keyword (for example, dog or retriever).",
36253	//         "Target ads to a specific negative keyword list.",
36254	//         "Target ads to a specific viewability (for example, 80% viewable).",
36255	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
36256	//         "Purchase impressions from specific deals and auction packages.",
36257	//         "Target ads to a specific language (for example, English or Japanese).",
36258	//         "Target ads to ads.txt authorized sellers.",
36259	//         "Target ads to a specific regional location (for example, a city or state).",
36260	//         "Purchase impressions from a group of deals and auction packages.",
36261	//         "Purchase impressions from specific exchanges.",
36262	//         "Purchase impressions from specific sub-exchanges."
36263	//       ],
36264	//       "location": "path",
36265	//       "pattern": "^[^/]+$",
36266	//       "required": true,
36267	//       "type": "string"
36268	//     }
36269	//   },
36270	//   "path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
36271	//   "response": {
36272	//     "$ref": "Empty"
36273	//   },
36274	//   "scopes": [
36275	//     "https://www.googleapis.com/auth/display-video"
36276	//   ]
36277	// }
36278
36279}
36280
36281// method id "displayvideo.partners.targetingTypes.assignedTargetingOptions.get":
36282
36283type PartnersTargetingTypesAssignedTargetingOptionsGetCall struct {
36284	s                         *Service
36285	partnerId                 int64
36286	targetingType             string
36287	assignedTargetingOptionId string
36288	urlParams_                gensupport.URLParams
36289	ifNoneMatch_              string
36290	ctx_                      context.Context
36291	header_                   http.Header
36292}
36293
36294// Get: Gets a single targeting option assigned to a partner.
36295//
36296// - assignedTargetingOptionId: An identifier unique to the targeting
36297//   type in this partner that identifies the assigned targeting option
36298//   being requested.
36299// - partnerId: The ID of the partner.
36300// - targetingType: Identifies the type of this assigned targeting
36301//   option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`.
36302func (r *PartnersTargetingTypesAssignedTargetingOptionsService) Get(partnerId int64, targetingType string, assignedTargetingOptionId string) *PartnersTargetingTypesAssignedTargetingOptionsGetCall {
36303	c := &PartnersTargetingTypesAssignedTargetingOptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36304	c.partnerId = partnerId
36305	c.targetingType = targetingType
36306	c.assignedTargetingOptionId = assignedTargetingOptionId
36307	return c
36308}
36309
36310// Fields allows partial responses to be retrieved. See
36311// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36312// for more information.
36313func (c *PartnersTargetingTypesAssignedTargetingOptionsGetCall) Fields(s ...googleapi.Field) *PartnersTargetingTypesAssignedTargetingOptionsGetCall {
36314	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36315	return c
36316}
36317
36318// IfNoneMatch sets the optional parameter which makes the operation
36319// fail if the object's ETag matches the given value. This is useful for
36320// getting updates only after the object has changed since the last
36321// request. Use googleapi.IsNotModified to check whether the response
36322// error from Do is the result of In-None-Match.
36323func (c *PartnersTargetingTypesAssignedTargetingOptionsGetCall) IfNoneMatch(entityTag string) *PartnersTargetingTypesAssignedTargetingOptionsGetCall {
36324	c.ifNoneMatch_ = entityTag
36325	return c
36326}
36327
36328// Context sets the context to be used in this call's Do method. Any
36329// pending HTTP request will be aborted if the provided context is
36330// canceled.
36331func (c *PartnersTargetingTypesAssignedTargetingOptionsGetCall) Context(ctx context.Context) *PartnersTargetingTypesAssignedTargetingOptionsGetCall {
36332	c.ctx_ = ctx
36333	return c
36334}
36335
36336// Header returns an http.Header that can be modified by the caller to
36337// add HTTP headers to the request.
36338func (c *PartnersTargetingTypesAssignedTargetingOptionsGetCall) Header() http.Header {
36339	if c.header_ == nil {
36340		c.header_ = make(http.Header)
36341	}
36342	return c.header_
36343}
36344
36345func (c *PartnersTargetingTypesAssignedTargetingOptionsGetCall) doRequest(alt string) (*http.Response, error) {
36346	reqHeaders := make(http.Header)
36347	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
36348	for k, v := range c.header_ {
36349		reqHeaders[k] = v
36350	}
36351	reqHeaders.Set("User-Agent", c.s.userAgent())
36352	if c.ifNoneMatch_ != "" {
36353		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36354	}
36355	var body io.Reader = nil
36356	c.urlParams_.Set("alt", alt)
36357	c.urlParams_.Set("prettyPrint", "false")
36358	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}")
36359	urls += "?" + c.urlParams_.Encode()
36360	req, err := http.NewRequest("GET", urls, body)
36361	if err != nil {
36362		return nil, err
36363	}
36364	req.Header = reqHeaders
36365	googleapi.Expand(req.URL, map[string]string{
36366		"partnerId":                 strconv.FormatInt(c.partnerId, 10),
36367		"targetingType":             c.targetingType,
36368		"assignedTargetingOptionId": c.assignedTargetingOptionId,
36369	})
36370	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36371}
36372
36373// Do executes the "displayvideo.partners.targetingTypes.assignedTargetingOptions.get" call.
36374// Exactly one of *AssignedTargetingOption or error will be non-nil. Any
36375// non-2xx status code is an error. Response headers are in either
36376// *AssignedTargetingOption.ServerResponse.Header or (if a response was
36377// returned at all) in error.(*googleapi.Error).Header. Use
36378// googleapi.IsNotModified to check whether the returned error was
36379// because http.StatusNotModified was returned.
36380func (c *PartnersTargetingTypesAssignedTargetingOptionsGetCall) Do(opts ...googleapi.CallOption) (*AssignedTargetingOption, error) {
36381	gensupport.SetOptions(c.urlParams_, opts...)
36382	res, err := c.doRequest("json")
36383	if res != nil && res.StatusCode == http.StatusNotModified {
36384		if res.Body != nil {
36385			res.Body.Close()
36386		}
36387		return nil, &googleapi.Error{
36388			Code:   res.StatusCode,
36389			Header: res.Header,
36390		}
36391	}
36392	if err != nil {
36393		return nil, err
36394	}
36395	defer googleapi.CloseBody(res)
36396	if err := googleapi.CheckResponse(res); err != nil {
36397		return nil, err
36398	}
36399	ret := &AssignedTargetingOption{
36400		ServerResponse: googleapi.ServerResponse{
36401			Header:         res.Header,
36402			HTTPStatusCode: res.StatusCode,
36403		},
36404	}
36405	target := &ret
36406	if err := gensupport.DecodeResponse(target, res); err != nil {
36407		return nil, err
36408	}
36409	return ret, nil
36410	// {
36411	//   "description": "Gets a single targeting option assigned to a partner.",
36412	//   "flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}",
36413	//   "httpMethod": "GET",
36414	//   "id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.get",
36415	//   "parameterOrder": [
36416	//     "partnerId",
36417	//     "targetingType",
36418	//     "assignedTargetingOptionId"
36419	//   ],
36420	//   "parameters": {
36421	//     "assignedTargetingOptionId": {
36422	//       "description": "Required. An identifier unique to the targeting type in this partner that identifies the assigned targeting option being requested.",
36423	//       "location": "path",
36424	//       "pattern": "^[^/]+$",
36425	//       "required": true,
36426	//       "type": "string"
36427	//     },
36428	//     "partnerId": {
36429	//       "description": "Required. The ID of the partner.",
36430	//       "format": "int64",
36431	//       "location": "path",
36432	//       "pattern": "^[^/]+$",
36433	//       "required": true,
36434	//       "type": "string"
36435	//     },
36436	//     "targetingType": {
36437	//       "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`",
36438	//       "enum": [
36439	//         "TARGETING_TYPE_UNSPECIFIED",
36440	//         "TARGETING_TYPE_CHANNEL",
36441	//         "TARGETING_TYPE_APP_CATEGORY",
36442	//         "TARGETING_TYPE_APP",
36443	//         "TARGETING_TYPE_URL",
36444	//         "TARGETING_TYPE_DAY_AND_TIME",
36445	//         "TARGETING_TYPE_AGE_RANGE",
36446	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
36447	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
36448	//         "TARGETING_TYPE_GENDER",
36449	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
36450	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
36451	//         "TARGETING_TYPE_PARENTAL_STATUS",
36452	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
36453	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
36454	//         "TARGETING_TYPE_DEVICE_TYPE",
36455	//         "TARGETING_TYPE_AUDIENCE_GROUP",
36456	//         "TARGETING_TYPE_BROWSER",
36457	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
36458	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
36459	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
36460	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
36461	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
36462	//         "TARGETING_TYPE_ENVIRONMENT",
36463	//         "TARGETING_TYPE_CARRIER_AND_ISP",
36464	//         "TARGETING_TYPE_OPERATING_SYSTEM",
36465	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
36466	//         "TARGETING_TYPE_KEYWORD",
36467	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
36468	//         "TARGETING_TYPE_VIEWABILITY",
36469	//         "TARGETING_TYPE_CATEGORY",
36470	//         "TARGETING_TYPE_INVENTORY_SOURCE",
36471	//         "TARGETING_TYPE_LANGUAGE",
36472	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
36473	//         "TARGETING_TYPE_GEO_REGION",
36474	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
36475	//         "TARGETING_TYPE_EXCHANGE",
36476	//         "TARGETING_TYPE_SUB_EXCHANGE"
36477	//       ],
36478	//       "enumDescriptions": [
36479	//         "Default value when type is not specified or is unknown in this version.",
36480	//         "Target a channel (a custom group of related websites or apps).",
36481	//         "Target an app category (for example, education or puzzle games).",
36482	//         "Target a specific app (for example, Angry Birds).",
36483	//         "Target a specific url (for example, quora.com).",
36484	//         "Target ads during a chosen time period on a specific day.",
36485	//         "Target ads to a specific age range (for example, 18-24).",
36486	//         "Target ads to the specified regions on a regional location list.",
36487	//         "Target ads to the specified points of interest on a proximity location list.",
36488	//         "Target ads to a specific gender (for example, female or male).",
36489	//         "Target a specific video player size for video ads.",
36490	//         "Target user rewarded content for video ads.",
36491	//         "Target ads to a specific parental status (for example, parent or not a parent).",
36492	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
36493	//         "Target ads in a specific content outstream position.",
36494	//         "Target ads to a specific device type (for example, tablet or connected TV).",
36495	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
36496	//         "Target ads to specific web browsers (for example, Chrome).",
36497	//         "Target ads to a specific household income range (for example, top 10%).",
36498	//         "Target ads in a specific on screen position.",
36499	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
36500	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
36501	//         "Filter website content by sensitive categories (for example, adult).",
36502	//         "Target ads to a specific environment (for example, web or app).",
36503	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
36504	//         "Target ads to a specific operating system (for example, macOS).",
36505	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
36506	//         "Target ads to a specific keyword (for example, dog or retriever).",
36507	//         "Target ads to a specific negative keyword list.",
36508	//         "Target ads to a specific viewability (for example, 80% viewable).",
36509	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
36510	//         "Purchase impressions from specific deals and auction packages.",
36511	//         "Target ads to a specific language (for example, English or Japanese).",
36512	//         "Target ads to ads.txt authorized sellers.",
36513	//         "Target ads to a specific regional location (for example, a city or state).",
36514	//         "Purchase impressions from a group of deals and auction packages.",
36515	//         "Purchase impressions from specific exchanges.",
36516	//         "Purchase impressions from specific sub-exchanges."
36517	//       ],
36518	//       "location": "path",
36519	//       "pattern": "^[^/]+$",
36520	//       "required": true,
36521	//       "type": "string"
36522	//     }
36523	//   },
36524	//   "path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}",
36525	//   "response": {
36526	//     "$ref": "AssignedTargetingOption"
36527	//   },
36528	//   "scopes": [
36529	//     "https://www.googleapis.com/auth/display-video"
36530	//   ]
36531	// }
36532
36533}
36534
36535// method id "displayvideo.partners.targetingTypes.assignedTargetingOptions.list":
36536
36537type PartnersTargetingTypesAssignedTargetingOptionsListCall struct {
36538	s             *Service
36539	partnerId     int64
36540	targetingType string
36541	urlParams_    gensupport.URLParams
36542	ifNoneMatch_  string
36543	ctx_          context.Context
36544	header_       http.Header
36545}
36546
36547// List: Lists the targeting options assigned to a partner.
36548//
36549// - partnerId: The ID of the partner.
36550// - targetingType: Identifies the type of assigned targeting options to
36551//   list. Supported targeting types: * `TARGETING_TYPE_CHANNEL`.
36552func (r *PartnersTargetingTypesAssignedTargetingOptionsService) List(partnerId int64, targetingType string) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
36553	c := &PartnersTargetingTypesAssignedTargetingOptionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36554	c.partnerId = partnerId
36555	c.targetingType = targetingType
36556	return c
36557}
36558
36559// Filter sets the optional parameter "filter": Allows filtering by
36560// assigned targeting option properties. Supported syntax: * Filter
36561// expressions are made up of one or more restrictions. * Restrictions
36562// can be combined by the logical operator `OR`. * A restriction has the
36563// form of `{field} {operator} {value}`. * The operator must be `EQUALS
36564// (=)`. * Supported fields: - `assignedTargetingOptionId` Examples: *
36565// AssignedTargetingOption with ID 123456
36566// `assignedTargetingOptionId="123456" The length of this field should
36567// be no more than 500 characters.
36568func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) Filter(filter string) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
36569	c.urlParams_.Set("filter", filter)
36570	return c
36571}
36572
36573// OrderBy sets the optional parameter "orderBy": Field by which to sort
36574// the list. Acceptable values are: * `assignedTargetingOptionId`
36575// (default) The default sorting order is ascending. To specify
36576// descending order for a field, a suffix "desc" should be added to the
36577// field name. Example: `assignedTargetingOptionId desc`.
36578func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) OrderBy(orderBy string) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
36579	c.urlParams_.Set("orderBy", orderBy)
36580	return c
36581}
36582
36583// PageSize sets the optional parameter "pageSize": Requested page size.
36584// Must be between `1` and `100`. If unspecified will default to `100`.
36585// Returns error code `INVALID_ARGUMENT` if an invalid value is
36586// specified.
36587func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) PageSize(pageSize int64) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
36588	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
36589	return c
36590}
36591
36592// PageToken sets the optional parameter "pageToken": A token
36593// identifying a page of results the server should return. Typically,
36594// this is the value of next_page_token returned from the previous call
36595// to `ListPartnerAssignedTargetingOptions` method. If not specified,
36596// the first page of results will be returned.
36597func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) PageToken(pageToken string) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
36598	c.urlParams_.Set("pageToken", pageToken)
36599	return c
36600}
36601
36602// Fields allows partial responses to be retrieved. See
36603// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36604// for more information.
36605func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) Fields(s ...googleapi.Field) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
36606	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36607	return c
36608}
36609
36610// IfNoneMatch sets the optional parameter which makes the operation
36611// fail if the object's ETag matches the given value. This is useful for
36612// getting updates only after the object has changed since the last
36613// request. Use googleapi.IsNotModified to check whether the response
36614// error from Do is the result of In-None-Match.
36615func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) IfNoneMatch(entityTag string) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
36616	c.ifNoneMatch_ = entityTag
36617	return c
36618}
36619
36620// Context sets the context to be used in this call's Do method. Any
36621// pending HTTP request will be aborted if the provided context is
36622// canceled.
36623func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) Context(ctx context.Context) *PartnersTargetingTypesAssignedTargetingOptionsListCall {
36624	c.ctx_ = ctx
36625	return c
36626}
36627
36628// Header returns an http.Header that can be modified by the caller to
36629// add HTTP headers to the request.
36630func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) Header() http.Header {
36631	if c.header_ == nil {
36632		c.header_ = make(http.Header)
36633	}
36634	return c.header_
36635}
36636
36637func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) doRequest(alt string) (*http.Response, error) {
36638	reqHeaders := make(http.Header)
36639	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
36640	for k, v := range c.header_ {
36641		reqHeaders[k] = v
36642	}
36643	reqHeaders.Set("User-Agent", c.s.userAgent())
36644	if c.ifNoneMatch_ != "" {
36645		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36646	}
36647	var body io.Reader = nil
36648	c.urlParams_.Set("alt", alt)
36649	c.urlParams_.Set("prettyPrint", "false")
36650	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions")
36651	urls += "?" + c.urlParams_.Encode()
36652	req, err := http.NewRequest("GET", urls, body)
36653	if err != nil {
36654		return nil, err
36655	}
36656	req.Header = reqHeaders
36657	googleapi.Expand(req.URL, map[string]string{
36658		"partnerId":     strconv.FormatInt(c.partnerId, 10),
36659		"targetingType": c.targetingType,
36660	})
36661	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36662}
36663
36664// Do executes the "displayvideo.partners.targetingTypes.assignedTargetingOptions.list" call.
36665// Exactly one of *ListPartnerAssignedTargetingOptionsResponse or error
36666// will be non-nil. Any non-2xx status code is an error. Response
36667// headers are in either
36668// *ListPartnerAssignedTargetingOptionsResponse.ServerResponse.Header or
36669// (if a response was returned at all) in
36670// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
36671// whether the returned error was because http.StatusNotModified was
36672// returned.
36673func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) Do(opts ...googleapi.CallOption) (*ListPartnerAssignedTargetingOptionsResponse, error) {
36674	gensupport.SetOptions(c.urlParams_, opts...)
36675	res, err := c.doRequest("json")
36676	if res != nil && res.StatusCode == http.StatusNotModified {
36677		if res.Body != nil {
36678			res.Body.Close()
36679		}
36680		return nil, &googleapi.Error{
36681			Code:   res.StatusCode,
36682			Header: res.Header,
36683		}
36684	}
36685	if err != nil {
36686		return nil, err
36687	}
36688	defer googleapi.CloseBody(res)
36689	if err := googleapi.CheckResponse(res); err != nil {
36690		return nil, err
36691	}
36692	ret := &ListPartnerAssignedTargetingOptionsResponse{
36693		ServerResponse: googleapi.ServerResponse{
36694			Header:         res.Header,
36695			HTTPStatusCode: res.StatusCode,
36696		},
36697	}
36698	target := &ret
36699	if err := gensupport.DecodeResponse(target, res); err != nil {
36700		return nil, err
36701	}
36702	return ret, nil
36703	// {
36704	//   "description": "Lists the targeting options assigned to a partner.",
36705	//   "flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions",
36706	//   "httpMethod": "GET",
36707	//   "id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.list",
36708	//   "parameterOrder": [
36709	//     "partnerId",
36710	//     "targetingType"
36711	//   ],
36712	//   "parameters": {
36713	//     "filter": {
36714	//       "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.",
36715	//       "location": "query",
36716	//       "type": "string"
36717	//     },
36718	//     "orderBy": {
36719	//       "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`.",
36720	//       "location": "query",
36721	//       "type": "string"
36722	//     },
36723	//     "pageSize": {
36724	//       "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.",
36725	//       "format": "int32",
36726	//       "location": "query",
36727	//       "type": "integer"
36728	//     },
36729	//     "pageToken": {
36730	//       "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.",
36731	//       "location": "query",
36732	//       "type": "string"
36733	//     },
36734	//     "partnerId": {
36735	//       "description": "Required. The ID of the partner.",
36736	//       "format": "int64",
36737	//       "location": "path",
36738	//       "pattern": "^[^/]+$",
36739	//       "required": true,
36740	//       "type": "string"
36741	//     },
36742	//     "targetingType": {
36743	//       "description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL`",
36744	//       "enum": [
36745	//         "TARGETING_TYPE_UNSPECIFIED",
36746	//         "TARGETING_TYPE_CHANNEL",
36747	//         "TARGETING_TYPE_APP_CATEGORY",
36748	//         "TARGETING_TYPE_APP",
36749	//         "TARGETING_TYPE_URL",
36750	//         "TARGETING_TYPE_DAY_AND_TIME",
36751	//         "TARGETING_TYPE_AGE_RANGE",
36752	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
36753	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
36754	//         "TARGETING_TYPE_GENDER",
36755	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
36756	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
36757	//         "TARGETING_TYPE_PARENTAL_STATUS",
36758	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
36759	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
36760	//         "TARGETING_TYPE_DEVICE_TYPE",
36761	//         "TARGETING_TYPE_AUDIENCE_GROUP",
36762	//         "TARGETING_TYPE_BROWSER",
36763	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
36764	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
36765	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
36766	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
36767	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
36768	//         "TARGETING_TYPE_ENVIRONMENT",
36769	//         "TARGETING_TYPE_CARRIER_AND_ISP",
36770	//         "TARGETING_TYPE_OPERATING_SYSTEM",
36771	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
36772	//         "TARGETING_TYPE_KEYWORD",
36773	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
36774	//         "TARGETING_TYPE_VIEWABILITY",
36775	//         "TARGETING_TYPE_CATEGORY",
36776	//         "TARGETING_TYPE_INVENTORY_SOURCE",
36777	//         "TARGETING_TYPE_LANGUAGE",
36778	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
36779	//         "TARGETING_TYPE_GEO_REGION",
36780	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
36781	//         "TARGETING_TYPE_EXCHANGE",
36782	//         "TARGETING_TYPE_SUB_EXCHANGE"
36783	//       ],
36784	//       "enumDescriptions": [
36785	//         "Default value when type is not specified or is unknown in this version.",
36786	//         "Target a channel (a custom group of related websites or apps).",
36787	//         "Target an app category (for example, education or puzzle games).",
36788	//         "Target a specific app (for example, Angry Birds).",
36789	//         "Target a specific url (for example, quora.com).",
36790	//         "Target ads during a chosen time period on a specific day.",
36791	//         "Target ads to a specific age range (for example, 18-24).",
36792	//         "Target ads to the specified regions on a regional location list.",
36793	//         "Target ads to the specified points of interest on a proximity location list.",
36794	//         "Target ads to a specific gender (for example, female or male).",
36795	//         "Target a specific video player size for video ads.",
36796	//         "Target user rewarded content for video ads.",
36797	//         "Target ads to a specific parental status (for example, parent or not a parent).",
36798	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
36799	//         "Target ads in a specific content outstream position.",
36800	//         "Target ads to a specific device type (for example, tablet or connected TV).",
36801	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
36802	//         "Target ads to specific web browsers (for example, Chrome).",
36803	//         "Target ads to a specific household income range (for example, top 10%).",
36804	//         "Target ads in a specific on screen position.",
36805	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
36806	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
36807	//         "Filter website content by sensitive categories (for example, adult).",
36808	//         "Target ads to a specific environment (for example, web or app).",
36809	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
36810	//         "Target ads to a specific operating system (for example, macOS).",
36811	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
36812	//         "Target ads to a specific keyword (for example, dog or retriever).",
36813	//         "Target ads to a specific negative keyword list.",
36814	//         "Target ads to a specific viewability (for example, 80% viewable).",
36815	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
36816	//         "Purchase impressions from specific deals and auction packages.",
36817	//         "Target ads to a specific language (for example, English or Japanese).",
36818	//         "Target ads to ads.txt authorized sellers.",
36819	//         "Target ads to a specific regional location (for example, a city or state).",
36820	//         "Purchase impressions from a group of deals and auction packages.",
36821	//         "Purchase impressions from specific exchanges.",
36822	//         "Purchase impressions from specific sub-exchanges."
36823	//       ],
36824	//       "location": "path",
36825	//       "pattern": "^[^/]+$",
36826	//       "required": true,
36827	//       "type": "string"
36828	//     }
36829	//   },
36830	//   "path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions",
36831	//   "response": {
36832	//     "$ref": "ListPartnerAssignedTargetingOptionsResponse"
36833	//   },
36834	//   "scopes": [
36835	//     "https://www.googleapis.com/auth/display-video"
36836	//   ]
36837	// }
36838
36839}
36840
36841// Pages invokes f for each page of results.
36842// A non-nil error returned from f will halt the iteration.
36843// The provided context supersedes any context provided to the Context method.
36844func (c *PartnersTargetingTypesAssignedTargetingOptionsListCall) Pages(ctx context.Context, f func(*ListPartnerAssignedTargetingOptionsResponse) error) error {
36845	c.ctx_ = ctx
36846	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
36847	for {
36848		x, err := c.Do()
36849		if err != nil {
36850			return err
36851		}
36852		if err := f(x); err != nil {
36853			return err
36854		}
36855		if x.NextPageToken == "" {
36856			return nil
36857		}
36858		c.PageToken(x.NextPageToken)
36859	}
36860}
36861
36862// method id "displayvideo.sdfdownloadtasks.create":
36863
36864type SdfdownloadtasksCreateCall struct {
36865	s                            *Service
36866	createsdfdownloadtaskrequest *CreateSdfDownloadTaskRequest
36867	urlParams_                   gensupport.URLParams
36868	ctx_                         context.Context
36869	header_                      http.Header
36870}
36871
36872// Create: Creates an SDF Download Task. Returns an Operation. An SDF
36873// Download Task is a long-running, asynchronous operation. The metadata
36874// type of this operation is SdfDownloadTaskMetadata. If the request is
36875// successful, the response type of the operation is SdfDownloadTask.
36876// The response will not include the download files, which must be
36877// retrieved with media.download. The state of operation can be
36878// retrieved with sdfdownloadtask.operations.get. Any errors can be
36879// found in the error.message. Note that error.details is expected to be
36880// empty.
36881func (r *SdfdownloadtasksService) Create(createsdfdownloadtaskrequest *CreateSdfDownloadTaskRequest) *SdfdownloadtasksCreateCall {
36882	c := &SdfdownloadtasksCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36883	c.createsdfdownloadtaskrequest = createsdfdownloadtaskrequest
36884	return c
36885}
36886
36887// Fields allows partial responses to be retrieved. See
36888// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36889// for more information.
36890func (c *SdfdownloadtasksCreateCall) Fields(s ...googleapi.Field) *SdfdownloadtasksCreateCall {
36891	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36892	return c
36893}
36894
36895// Context sets the context to be used in this call's Do method. Any
36896// pending HTTP request will be aborted if the provided context is
36897// canceled.
36898func (c *SdfdownloadtasksCreateCall) Context(ctx context.Context) *SdfdownloadtasksCreateCall {
36899	c.ctx_ = ctx
36900	return c
36901}
36902
36903// Header returns an http.Header that can be modified by the caller to
36904// add HTTP headers to the request.
36905func (c *SdfdownloadtasksCreateCall) Header() http.Header {
36906	if c.header_ == nil {
36907		c.header_ = make(http.Header)
36908	}
36909	return c.header_
36910}
36911
36912func (c *SdfdownloadtasksCreateCall) doRequest(alt string) (*http.Response, error) {
36913	reqHeaders := make(http.Header)
36914	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
36915	for k, v := range c.header_ {
36916		reqHeaders[k] = v
36917	}
36918	reqHeaders.Set("User-Agent", c.s.userAgent())
36919	var body io.Reader = nil
36920	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createsdfdownloadtaskrequest)
36921	if err != nil {
36922		return nil, err
36923	}
36924	reqHeaders.Set("Content-Type", "application/json")
36925	c.urlParams_.Set("alt", alt)
36926	c.urlParams_.Set("prettyPrint", "false")
36927	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/sdfdownloadtasks")
36928	urls += "?" + c.urlParams_.Encode()
36929	req, err := http.NewRequest("POST", urls, body)
36930	if err != nil {
36931		return nil, err
36932	}
36933	req.Header = reqHeaders
36934	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36935}
36936
36937// Do executes the "displayvideo.sdfdownloadtasks.create" call.
36938// Exactly one of *Operation or error will be non-nil. Any non-2xx
36939// status code is an error. Response headers are in either
36940// *Operation.ServerResponse.Header or (if a response was returned at
36941// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
36942// to check whether the returned error was because
36943// http.StatusNotModified was returned.
36944func (c *SdfdownloadtasksCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
36945	gensupport.SetOptions(c.urlParams_, opts...)
36946	res, err := c.doRequest("json")
36947	if res != nil && res.StatusCode == http.StatusNotModified {
36948		if res.Body != nil {
36949			res.Body.Close()
36950		}
36951		return nil, &googleapi.Error{
36952			Code:   res.StatusCode,
36953			Header: res.Header,
36954		}
36955	}
36956	if err != nil {
36957		return nil, err
36958	}
36959	defer googleapi.CloseBody(res)
36960	if err := googleapi.CheckResponse(res); err != nil {
36961		return nil, err
36962	}
36963	ret := &Operation{
36964		ServerResponse: googleapi.ServerResponse{
36965			Header:         res.Header,
36966			HTTPStatusCode: res.StatusCode,
36967		},
36968	}
36969	target := &ret
36970	if err := gensupport.DecodeResponse(target, res); err != nil {
36971		return nil, err
36972	}
36973	return ret, nil
36974	// {
36975	//   "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.",
36976	//   "flatPath": "v1/sdfdownloadtasks",
36977	//   "httpMethod": "POST",
36978	//   "id": "displayvideo.sdfdownloadtasks.create",
36979	//   "parameterOrder": [],
36980	//   "parameters": {},
36981	//   "path": "v1/sdfdownloadtasks",
36982	//   "request": {
36983	//     "$ref": "CreateSdfDownloadTaskRequest"
36984	//   },
36985	//   "response": {
36986	//     "$ref": "Operation"
36987	//   },
36988	//   "scopes": [
36989	//     "https://www.googleapis.com/auth/display-video"
36990	//   ]
36991	// }
36992
36993}
36994
36995// method id "displayvideo.sdfdownloadtasks.operations.get":
36996
36997type SdfdownloadtasksOperationsGetCall struct {
36998	s            *Service
36999	name         string
37000	urlParams_   gensupport.URLParams
37001	ifNoneMatch_ string
37002	ctx_         context.Context
37003	header_      http.Header
37004}
37005
37006// Get: Gets the latest state of an asynchronous SDF download task
37007// operation. Clients should poll this method at intervals of 30
37008// seconds.
37009//
37010// - name: The name of the operation resource.
37011func (r *SdfdownloadtasksOperationsService) Get(name string) *SdfdownloadtasksOperationsGetCall {
37012	c := &SdfdownloadtasksOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37013	c.name = name
37014	return c
37015}
37016
37017// Fields allows partial responses to be retrieved. See
37018// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37019// for more information.
37020func (c *SdfdownloadtasksOperationsGetCall) Fields(s ...googleapi.Field) *SdfdownloadtasksOperationsGetCall {
37021	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37022	return c
37023}
37024
37025// IfNoneMatch sets the optional parameter which makes the operation
37026// fail if the object's ETag matches the given value. This is useful for
37027// getting updates only after the object has changed since the last
37028// request. Use googleapi.IsNotModified to check whether the response
37029// error from Do is the result of In-None-Match.
37030func (c *SdfdownloadtasksOperationsGetCall) IfNoneMatch(entityTag string) *SdfdownloadtasksOperationsGetCall {
37031	c.ifNoneMatch_ = entityTag
37032	return c
37033}
37034
37035// Context sets the context to be used in this call's Do method. Any
37036// pending HTTP request will be aborted if the provided context is
37037// canceled.
37038func (c *SdfdownloadtasksOperationsGetCall) Context(ctx context.Context) *SdfdownloadtasksOperationsGetCall {
37039	c.ctx_ = ctx
37040	return c
37041}
37042
37043// Header returns an http.Header that can be modified by the caller to
37044// add HTTP headers to the request.
37045func (c *SdfdownloadtasksOperationsGetCall) Header() http.Header {
37046	if c.header_ == nil {
37047		c.header_ = make(http.Header)
37048	}
37049	return c.header_
37050}
37051
37052func (c *SdfdownloadtasksOperationsGetCall) doRequest(alt string) (*http.Response, error) {
37053	reqHeaders := make(http.Header)
37054	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
37055	for k, v := range c.header_ {
37056		reqHeaders[k] = v
37057	}
37058	reqHeaders.Set("User-Agent", c.s.userAgent())
37059	if c.ifNoneMatch_ != "" {
37060		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
37061	}
37062	var body io.Reader = nil
37063	c.urlParams_.Set("alt", alt)
37064	c.urlParams_.Set("prettyPrint", "false")
37065	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
37066	urls += "?" + c.urlParams_.Encode()
37067	req, err := http.NewRequest("GET", urls, body)
37068	if err != nil {
37069		return nil, err
37070	}
37071	req.Header = reqHeaders
37072	googleapi.Expand(req.URL, map[string]string{
37073		"name": c.name,
37074	})
37075	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37076}
37077
37078// Do executes the "displayvideo.sdfdownloadtasks.operations.get" call.
37079// Exactly one of *Operation or error will be non-nil. Any non-2xx
37080// status code is an error. Response headers are in either
37081// *Operation.ServerResponse.Header or (if a response was returned at
37082// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
37083// to check whether the returned error was because
37084// http.StatusNotModified was returned.
37085func (c *SdfdownloadtasksOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
37086	gensupport.SetOptions(c.urlParams_, opts...)
37087	res, err := c.doRequest("json")
37088	if res != nil && res.StatusCode == http.StatusNotModified {
37089		if res.Body != nil {
37090			res.Body.Close()
37091		}
37092		return nil, &googleapi.Error{
37093			Code:   res.StatusCode,
37094			Header: res.Header,
37095		}
37096	}
37097	if err != nil {
37098		return nil, err
37099	}
37100	defer googleapi.CloseBody(res)
37101	if err := googleapi.CheckResponse(res); err != nil {
37102		return nil, err
37103	}
37104	ret := &Operation{
37105		ServerResponse: googleapi.ServerResponse{
37106			Header:         res.Header,
37107			HTTPStatusCode: res.StatusCode,
37108		},
37109	}
37110	target := &ret
37111	if err := gensupport.DecodeResponse(target, res); err != nil {
37112		return nil, err
37113	}
37114	return ret, nil
37115	// {
37116	//   "description": "Gets the latest state of an asynchronous SDF download task operation. Clients should poll this method at intervals of 30 seconds.",
37117	//   "flatPath": "v1/sdfdownloadtasks/operations/{operationsId}",
37118	//   "httpMethod": "GET",
37119	//   "id": "displayvideo.sdfdownloadtasks.operations.get",
37120	//   "parameterOrder": [
37121	//     "name"
37122	//   ],
37123	//   "parameters": {
37124	//     "name": {
37125	//       "description": "The name of the operation resource.",
37126	//       "location": "path",
37127	//       "pattern": "^sdfdownloadtasks/operations/[^/]+$",
37128	//       "required": true,
37129	//       "type": "string"
37130	//     }
37131	//   },
37132	//   "path": "v1/{+name}",
37133	//   "response": {
37134	//     "$ref": "Operation"
37135	//   },
37136	//   "scopes": [
37137	//     "https://www.googleapis.com/auth/display-video",
37138	//     "https://www.googleapis.com/auth/doubleclickbidmanager"
37139	//   ]
37140	// }
37141
37142}
37143
37144// method id "displayvideo.targetingTypes.targetingOptions.get":
37145
37146type TargetingTypesTargetingOptionsGetCall struct {
37147	s                 *Service
37148	targetingType     string
37149	targetingOptionId string
37150	urlParams_        gensupport.URLParams
37151	ifNoneMatch_      string
37152	ctx_              context.Context
37153	header_           http.Header
37154}
37155
37156// Get: Gets a single targeting option.
37157//
37158// - targetingOptionId: The ID of the of targeting option to retrieve.
37159// - targetingType: The type of targeting option to retrieve.
37160func (r *TargetingTypesTargetingOptionsService) Get(targetingType string, targetingOptionId string) *TargetingTypesTargetingOptionsGetCall {
37161	c := &TargetingTypesTargetingOptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37162	c.targetingType = targetingType
37163	c.targetingOptionId = targetingOptionId
37164	return c
37165}
37166
37167// AdvertiserId sets the optional parameter "advertiserId": Required.
37168// The Advertiser this request is being made in the context of.
37169func (c *TargetingTypesTargetingOptionsGetCall) AdvertiserId(advertiserId int64) *TargetingTypesTargetingOptionsGetCall {
37170	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
37171	return c
37172}
37173
37174// Fields allows partial responses to be retrieved. See
37175// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37176// for more information.
37177func (c *TargetingTypesTargetingOptionsGetCall) Fields(s ...googleapi.Field) *TargetingTypesTargetingOptionsGetCall {
37178	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37179	return c
37180}
37181
37182// IfNoneMatch sets the optional parameter which makes the operation
37183// fail if the object's ETag matches the given value. This is useful for
37184// getting updates only after the object has changed since the last
37185// request. Use googleapi.IsNotModified to check whether the response
37186// error from Do is the result of In-None-Match.
37187func (c *TargetingTypesTargetingOptionsGetCall) IfNoneMatch(entityTag string) *TargetingTypesTargetingOptionsGetCall {
37188	c.ifNoneMatch_ = entityTag
37189	return c
37190}
37191
37192// Context sets the context to be used in this call's Do method. Any
37193// pending HTTP request will be aborted if the provided context is
37194// canceled.
37195func (c *TargetingTypesTargetingOptionsGetCall) Context(ctx context.Context) *TargetingTypesTargetingOptionsGetCall {
37196	c.ctx_ = ctx
37197	return c
37198}
37199
37200// Header returns an http.Header that can be modified by the caller to
37201// add HTTP headers to the request.
37202func (c *TargetingTypesTargetingOptionsGetCall) Header() http.Header {
37203	if c.header_ == nil {
37204		c.header_ = make(http.Header)
37205	}
37206	return c.header_
37207}
37208
37209func (c *TargetingTypesTargetingOptionsGetCall) doRequest(alt string) (*http.Response, error) {
37210	reqHeaders := make(http.Header)
37211	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
37212	for k, v := range c.header_ {
37213		reqHeaders[k] = v
37214	}
37215	reqHeaders.Set("User-Agent", c.s.userAgent())
37216	if c.ifNoneMatch_ != "" {
37217		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
37218	}
37219	var body io.Reader = nil
37220	c.urlParams_.Set("alt", alt)
37221	c.urlParams_.Set("prettyPrint", "false")
37222	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/targetingTypes/{+targetingType}/targetingOptions/{+targetingOptionId}")
37223	urls += "?" + c.urlParams_.Encode()
37224	req, err := http.NewRequest("GET", urls, body)
37225	if err != nil {
37226		return nil, err
37227	}
37228	req.Header = reqHeaders
37229	googleapi.Expand(req.URL, map[string]string{
37230		"targetingType":     c.targetingType,
37231		"targetingOptionId": c.targetingOptionId,
37232	})
37233	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37234}
37235
37236// Do executes the "displayvideo.targetingTypes.targetingOptions.get" call.
37237// Exactly one of *TargetingOption or error will be non-nil. Any non-2xx
37238// status code is an error. Response headers are in either
37239// *TargetingOption.ServerResponse.Header or (if a response was returned
37240// at all) in error.(*googleapi.Error).Header. Use
37241// googleapi.IsNotModified to check whether the returned error was
37242// because http.StatusNotModified was returned.
37243func (c *TargetingTypesTargetingOptionsGetCall) Do(opts ...googleapi.CallOption) (*TargetingOption, error) {
37244	gensupport.SetOptions(c.urlParams_, opts...)
37245	res, err := c.doRequest("json")
37246	if res != nil && res.StatusCode == http.StatusNotModified {
37247		if res.Body != nil {
37248			res.Body.Close()
37249		}
37250		return nil, &googleapi.Error{
37251			Code:   res.StatusCode,
37252			Header: res.Header,
37253		}
37254	}
37255	if err != nil {
37256		return nil, err
37257	}
37258	defer googleapi.CloseBody(res)
37259	if err := googleapi.CheckResponse(res); err != nil {
37260		return nil, err
37261	}
37262	ret := &TargetingOption{
37263		ServerResponse: googleapi.ServerResponse{
37264			Header:         res.Header,
37265			HTTPStatusCode: res.StatusCode,
37266		},
37267	}
37268	target := &ret
37269	if err := gensupport.DecodeResponse(target, res); err != nil {
37270		return nil, err
37271	}
37272	return ret, nil
37273	// {
37274	//   "description": "Gets a single targeting option.",
37275	//   "flatPath": "v1/targetingTypes/{targetingTypesId}/targetingOptions/{targetingOptionsId}",
37276	//   "httpMethod": "GET",
37277	//   "id": "displayvideo.targetingTypes.targetingOptions.get",
37278	//   "parameterOrder": [
37279	//     "targetingType",
37280	//     "targetingOptionId"
37281	//   ],
37282	//   "parameters": {
37283	//     "advertiserId": {
37284	//       "description": "Required. The Advertiser this request is being made in the context of.",
37285	//       "format": "int64",
37286	//       "location": "query",
37287	//       "type": "string"
37288	//     },
37289	//     "targetingOptionId": {
37290	//       "description": "Required. The ID of the of targeting option to retrieve.",
37291	//       "location": "path",
37292	//       "pattern": "^[^/]+$",
37293	//       "required": true,
37294	//       "type": "string"
37295	//     },
37296	//     "targetingType": {
37297	//       "description": "Required. The type of targeting option to retrieve.",
37298	//       "enum": [
37299	//         "TARGETING_TYPE_UNSPECIFIED",
37300	//         "TARGETING_TYPE_CHANNEL",
37301	//         "TARGETING_TYPE_APP_CATEGORY",
37302	//         "TARGETING_TYPE_APP",
37303	//         "TARGETING_TYPE_URL",
37304	//         "TARGETING_TYPE_DAY_AND_TIME",
37305	//         "TARGETING_TYPE_AGE_RANGE",
37306	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
37307	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
37308	//         "TARGETING_TYPE_GENDER",
37309	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
37310	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
37311	//         "TARGETING_TYPE_PARENTAL_STATUS",
37312	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
37313	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
37314	//         "TARGETING_TYPE_DEVICE_TYPE",
37315	//         "TARGETING_TYPE_AUDIENCE_GROUP",
37316	//         "TARGETING_TYPE_BROWSER",
37317	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
37318	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
37319	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
37320	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
37321	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
37322	//         "TARGETING_TYPE_ENVIRONMENT",
37323	//         "TARGETING_TYPE_CARRIER_AND_ISP",
37324	//         "TARGETING_TYPE_OPERATING_SYSTEM",
37325	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
37326	//         "TARGETING_TYPE_KEYWORD",
37327	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
37328	//         "TARGETING_TYPE_VIEWABILITY",
37329	//         "TARGETING_TYPE_CATEGORY",
37330	//         "TARGETING_TYPE_INVENTORY_SOURCE",
37331	//         "TARGETING_TYPE_LANGUAGE",
37332	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
37333	//         "TARGETING_TYPE_GEO_REGION",
37334	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
37335	//         "TARGETING_TYPE_EXCHANGE",
37336	//         "TARGETING_TYPE_SUB_EXCHANGE"
37337	//       ],
37338	//       "enumDescriptions": [
37339	//         "Default value when type is not specified or is unknown in this version.",
37340	//         "Target a channel (a custom group of related websites or apps).",
37341	//         "Target an app category (for example, education or puzzle games).",
37342	//         "Target a specific app (for example, Angry Birds).",
37343	//         "Target a specific url (for example, quora.com).",
37344	//         "Target ads during a chosen time period on a specific day.",
37345	//         "Target ads to a specific age range (for example, 18-24).",
37346	//         "Target ads to the specified regions on a regional location list.",
37347	//         "Target ads to the specified points of interest on a proximity location list.",
37348	//         "Target ads to a specific gender (for example, female or male).",
37349	//         "Target a specific video player size for video ads.",
37350	//         "Target user rewarded content for video ads.",
37351	//         "Target ads to a specific parental status (for example, parent or not a parent).",
37352	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
37353	//         "Target ads in a specific content outstream position.",
37354	//         "Target ads to a specific device type (for example, tablet or connected TV).",
37355	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
37356	//         "Target ads to specific web browsers (for example, Chrome).",
37357	//         "Target ads to a specific household income range (for example, top 10%).",
37358	//         "Target ads in a specific on screen position.",
37359	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
37360	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
37361	//         "Filter website content by sensitive categories (for example, adult).",
37362	//         "Target ads to a specific environment (for example, web or app).",
37363	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
37364	//         "Target ads to a specific operating system (for example, macOS).",
37365	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
37366	//         "Target ads to a specific keyword (for example, dog or retriever).",
37367	//         "Target ads to a specific negative keyword list.",
37368	//         "Target ads to a specific viewability (for example, 80% viewable).",
37369	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
37370	//         "Purchase impressions from specific deals and auction packages.",
37371	//         "Target ads to a specific language (for example, English or Japanese).",
37372	//         "Target ads to ads.txt authorized sellers.",
37373	//         "Target ads to a specific regional location (for example, a city or state).",
37374	//         "Purchase impressions from a group of deals and auction packages.",
37375	//         "Purchase impressions from specific exchanges.",
37376	//         "Purchase impressions from specific sub-exchanges."
37377	//       ],
37378	//       "location": "path",
37379	//       "pattern": "^[^/]+$",
37380	//       "required": true,
37381	//       "type": "string"
37382	//     }
37383	//   },
37384	//   "path": "v1/targetingTypes/{+targetingType}/targetingOptions/{+targetingOptionId}",
37385	//   "response": {
37386	//     "$ref": "TargetingOption"
37387	//   },
37388	//   "scopes": [
37389	//     "https://www.googleapis.com/auth/display-video"
37390	//   ]
37391	// }
37392
37393}
37394
37395// method id "displayvideo.targetingTypes.targetingOptions.list":
37396
37397type TargetingTypesTargetingOptionsListCall struct {
37398	s             *Service
37399	targetingType string
37400	urlParams_    gensupport.URLParams
37401	ifNoneMatch_  string
37402	ctx_          context.Context
37403	header_       http.Header
37404}
37405
37406// List: Lists targeting options of a given type.
37407//
37408// - targetingType: The type of targeting option to be listed.
37409func (r *TargetingTypesTargetingOptionsService) List(targetingType string) *TargetingTypesTargetingOptionsListCall {
37410	c := &TargetingTypesTargetingOptionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37411	c.targetingType = targetingType
37412	return c
37413}
37414
37415// AdvertiserId sets the optional parameter "advertiserId": Required.
37416// The Advertiser this request is being made in the context of.
37417func (c *TargetingTypesTargetingOptionsListCall) AdvertiserId(advertiserId int64) *TargetingTypesTargetingOptionsListCall {
37418	c.urlParams_.Set("advertiserId", fmt.Sprint(advertiserId))
37419	return c
37420}
37421
37422// Filter sets the optional parameter "filter": Allows filtering by
37423// targeting option properties. Supported syntax: * Filter expressions
37424// are made up of one or more restrictions. * Restrictions can be
37425// combined by `OR` logical operators. * A restriction has the form of
37426// `{field} {operator} {value}`. * The operator must be "=" (equal
37427// sign). * Supported fields: - `carrierAndIspDetails.type` -
37428// `geoRegionDetails.geoRegionType` - `targetingOptionId` Examples: *
37429// All `GEO REGION` targeting options that belong to sub type
37430// `GEO_REGION_TYPE_COUNTRY` or `GEO_REGION_TYPE_STATE`:
37431// `geoRegionDetails.geoRegionType="GEO_REGION_TYPE_COUNTRY" OR
37432// geoRegionDetails.geoRegionType="GEO_REGION_TYPE_STATE" * All
37433// `CARRIER AND ISP` targeting options that belong to sub type
37434// `CARRIER_AND_ISP_TYPE_CARRIER`:
37435// `carrierAndIspDetails.type="CARRIER_AND_ISP_TYPE_CARRIER". The
37436// length of this field should be no more than 500 characters.
37437func (c *TargetingTypesTargetingOptionsListCall) Filter(filter string) *TargetingTypesTargetingOptionsListCall {
37438	c.urlParams_.Set("filter", filter)
37439	return c
37440}
37441
37442// OrderBy sets the optional parameter "orderBy": Field by which to sort
37443// the list. Acceptable values are: * `targetingOptionId` (default) The
37444// default sorting order is ascending. To specify descending order for a
37445// field, a suffix "desc" should be added to the field name. Example:
37446// `targetingOptionId desc`.
37447func (c *TargetingTypesTargetingOptionsListCall) OrderBy(orderBy string) *TargetingTypesTargetingOptionsListCall {
37448	c.urlParams_.Set("orderBy", orderBy)
37449	return c
37450}
37451
37452// PageSize sets the optional parameter "pageSize": Requested page size.
37453// Must be between `1` and `100`. If unspecified will default to `100`.
37454// Returns error code `INVALID_ARGUMENT` if an invalid value is
37455// specified.
37456func (c *TargetingTypesTargetingOptionsListCall) PageSize(pageSize int64) *TargetingTypesTargetingOptionsListCall {
37457	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
37458	return c
37459}
37460
37461// PageToken sets the optional parameter "pageToken": A token
37462// identifying a page of results the server should return. Typically,
37463// this is the value of next_page_token returned from the previous call
37464// to `ListTargetingOptions` method. If not specified, the first page of
37465// results will be returned.
37466func (c *TargetingTypesTargetingOptionsListCall) PageToken(pageToken string) *TargetingTypesTargetingOptionsListCall {
37467	c.urlParams_.Set("pageToken", pageToken)
37468	return c
37469}
37470
37471// Fields allows partial responses to be retrieved. See
37472// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37473// for more information.
37474func (c *TargetingTypesTargetingOptionsListCall) Fields(s ...googleapi.Field) *TargetingTypesTargetingOptionsListCall {
37475	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37476	return c
37477}
37478
37479// IfNoneMatch sets the optional parameter which makes the operation
37480// fail if the object's ETag matches the given value. This is useful for
37481// getting updates only after the object has changed since the last
37482// request. Use googleapi.IsNotModified to check whether the response
37483// error from Do is the result of In-None-Match.
37484func (c *TargetingTypesTargetingOptionsListCall) IfNoneMatch(entityTag string) *TargetingTypesTargetingOptionsListCall {
37485	c.ifNoneMatch_ = entityTag
37486	return c
37487}
37488
37489// Context sets the context to be used in this call's Do method. Any
37490// pending HTTP request will be aborted if the provided context is
37491// canceled.
37492func (c *TargetingTypesTargetingOptionsListCall) Context(ctx context.Context) *TargetingTypesTargetingOptionsListCall {
37493	c.ctx_ = ctx
37494	return c
37495}
37496
37497// Header returns an http.Header that can be modified by the caller to
37498// add HTTP headers to the request.
37499func (c *TargetingTypesTargetingOptionsListCall) Header() http.Header {
37500	if c.header_ == nil {
37501		c.header_ = make(http.Header)
37502	}
37503	return c.header_
37504}
37505
37506func (c *TargetingTypesTargetingOptionsListCall) doRequest(alt string) (*http.Response, error) {
37507	reqHeaders := make(http.Header)
37508	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
37509	for k, v := range c.header_ {
37510		reqHeaders[k] = v
37511	}
37512	reqHeaders.Set("User-Agent", c.s.userAgent())
37513	if c.ifNoneMatch_ != "" {
37514		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
37515	}
37516	var body io.Reader = nil
37517	c.urlParams_.Set("alt", alt)
37518	c.urlParams_.Set("prettyPrint", "false")
37519	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/targetingTypes/{+targetingType}/targetingOptions")
37520	urls += "?" + c.urlParams_.Encode()
37521	req, err := http.NewRequest("GET", urls, body)
37522	if err != nil {
37523		return nil, err
37524	}
37525	req.Header = reqHeaders
37526	googleapi.Expand(req.URL, map[string]string{
37527		"targetingType": c.targetingType,
37528	})
37529	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37530}
37531
37532// Do executes the "displayvideo.targetingTypes.targetingOptions.list" call.
37533// Exactly one of *ListTargetingOptionsResponse or error will be
37534// non-nil. Any non-2xx status code is an error. Response headers are in
37535// either *ListTargetingOptionsResponse.ServerResponse.Header or (if a
37536// response was returned at all) in error.(*googleapi.Error).Header. Use
37537// googleapi.IsNotModified to check whether the returned error was
37538// because http.StatusNotModified was returned.
37539func (c *TargetingTypesTargetingOptionsListCall) Do(opts ...googleapi.CallOption) (*ListTargetingOptionsResponse, error) {
37540	gensupport.SetOptions(c.urlParams_, opts...)
37541	res, err := c.doRequest("json")
37542	if res != nil && res.StatusCode == http.StatusNotModified {
37543		if res.Body != nil {
37544			res.Body.Close()
37545		}
37546		return nil, &googleapi.Error{
37547			Code:   res.StatusCode,
37548			Header: res.Header,
37549		}
37550	}
37551	if err != nil {
37552		return nil, err
37553	}
37554	defer googleapi.CloseBody(res)
37555	if err := googleapi.CheckResponse(res); err != nil {
37556		return nil, err
37557	}
37558	ret := &ListTargetingOptionsResponse{
37559		ServerResponse: googleapi.ServerResponse{
37560			Header:         res.Header,
37561			HTTPStatusCode: res.StatusCode,
37562		},
37563	}
37564	target := &ret
37565	if err := gensupport.DecodeResponse(target, res); err != nil {
37566		return nil, err
37567	}
37568	return ret, nil
37569	// {
37570	//   "description": "Lists targeting options of a given type.",
37571	//   "flatPath": "v1/targetingTypes/{targetingTypesId}/targetingOptions",
37572	//   "httpMethod": "GET",
37573	//   "id": "displayvideo.targetingTypes.targetingOptions.list",
37574	//   "parameterOrder": [
37575	//     "targetingType"
37576	//   ],
37577	//   "parameters": {
37578	//     "advertiserId": {
37579	//       "description": "Required. The Advertiser this request is being made in the context of.",
37580	//       "format": "int64",
37581	//       "location": "query",
37582	//       "type": "string"
37583	//     },
37584	//     "filter": {
37585	//       "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.",
37586	//       "location": "query",
37587	//       "type": "string"
37588	//     },
37589	//     "orderBy": {
37590	//       "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`.",
37591	//       "location": "query",
37592	//       "type": "string"
37593	//     },
37594	//     "pageSize": {
37595	//       "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.",
37596	//       "format": "int32",
37597	//       "location": "query",
37598	//       "type": "integer"
37599	//     },
37600	//     "pageToken": {
37601	//       "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.",
37602	//       "location": "query",
37603	//       "type": "string"
37604	//     },
37605	//     "targetingType": {
37606	//       "description": "Required. The type of targeting option to be listed.",
37607	//       "enum": [
37608	//         "TARGETING_TYPE_UNSPECIFIED",
37609	//         "TARGETING_TYPE_CHANNEL",
37610	//         "TARGETING_TYPE_APP_CATEGORY",
37611	//         "TARGETING_TYPE_APP",
37612	//         "TARGETING_TYPE_URL",
37613	//         "TARGETING_TYPE_DAY_AND_TIME",
37614	//         "TARGETING_TYPE_AGE_RANGE",
37615	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
37616	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
37617	//         "TARGETING_TYPE_GENDER",
37618	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
37619	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
37620	//         "TARGETING_TYPE_PARENTAL_STATUS",
37621	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
37622	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
37623	//         "TARGETING_TYPE_DEVICE_TYPE",
37624	//         "TARGETING_TYPE_AUDIENCE_GROUP",
37625	//         "TARGETING_TYPE_BROWSER",
37626	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
37627	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
37628	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
37629	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
37630	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
37631	//         "TARGETING_TYPE_ENVIRONMENT",
37632	//         "TARGETING_TYPE_CARRIER_AND_ISP",
37633	//         "TARGETING_TYPE_OPERATING_SYSTEM",
37634	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
37635	//         "TARGETING_TYPE_KEYWORD",
37636	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
37637	//         "TARGETING_TYPE_VIEWABILITY",
37638	//         "TARGETING_TYPE_CATEGORY",
37639	//         "TARGETING_TYPE_INVENTORY_SOURCE",
37640	//         "TARGETING_TYPE_LANGUAGE",
37641	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
37642	//         "TARGETING_TYPE_GEO_REGION",
37643	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
37644	//         "TARGETING_TYPE_EXCHANGE",
37645	//         "TARGETING_TYPE_SUB_EXCHANGE"
37646	//       ],
37647	//       "enumDescriptions": [
37648	//         "Default value when type is not specified or is unknown in this version.",
37649	//         "Target a channel (a custom group of related websites or apps).",
37650	//         "Target an app category (for example, education or puzzle games).",
37651	//         "Target a specific app (for example, Angry Birds).",
37652	//         "Target a specific url (for example, quora.com).",
37653	//         "Target ads during a chosen time period on a specific day.",
37654	//         "Target ads to a specific age range (for example, 18-24).",
37655	//         "Target ads to the specified regions on a regional location list.",
37656	//         "Target ads to the specified points of interest on a proximity location list.",
37657	//         "Target ads to a specific gender (for example, female or male).",
37658	//         "Target a specific video player size for video ads.",
37659	//         "Target user rewarded content for video ads.",
37660	//         "Target ads to a specific parental status (for example, parent or not a parent).",
37661	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
37662	//         "Target ads in a specific content outstream position.",
37663	//         "Target ads to a specific device type (for example, tablet or connected TV).",
37664	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
37665	//         "Target ads to specific web browsers (for example, Chrome).",
37666	//         "Target ads to a specific household income range (for example, top 10%).",
37667	//         "Target ads in a specific on screen position.",
37668	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
37669	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
37670	//         "Filter website content by sensitive categories (for example, adult).",
37671	//         "Target ads to a specific environment (for example, web or app).",
37672	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
37673	//         "Target ads to a specific operating system (for example, macOS).",
37674	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
37675	//         "Target ads to a specific keyword (for example, dog or retriever).",
37676	//         "Target ads to a specific negative keyword list.",
37677	//         "Target ads to a specific viewability (for example, 80% viewable).",
37678	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
37679	//         "Purchase impressions from specific deals and auction packages.",
37680	//         "Target ads to a specific language (for example, English or Japanese).",
37681	//         "Target ads to ads.txt authorized sellers.",
37682	//         "Target ads to a specific regional location (for example, a city or state).",
37683	//         "Purchase impressions from a group of deals and auction packages.",
37684	//         "Purchase impressions from specific exchanges.",
37685	//         "Purchase impressions from specific sub-exchanges."
37686	//       ],
37687	//       "location": "path",
37688	//       "pattern": "^[^/]+$",
37689	//       "required": true,
37690	//       "type": "string"
37691	//     }
37692	//   },
37693	//   "path": "v1/targetingTypes/{+targetingType}/targetingOptions",
37694	//   "response": {
37695	//     "$ref": "ListTargetingOptionsResponse"
37696	//   },
37697	//   "scopes": [
37698	//     "https://www.googleapis.com/auth/display-video"
37699	//   ]
37700	// }
37701
37702}
37703
37704// Pages invokes f for each page of results.
37705// A non-nil error returned from f will halt the iteration.
37706// The provided context supersedes any context provided to the Context method.
37707func (c *TargetingTypesTargetingOptionsListCall) Pages(ctx context.Context, f func(*ListTargetingOptionsResponse) error) error {
37708	c.ctx_ = ctx
37709	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
37710	for {
37711		x, err := c.Do()
37712		if err != nil {
37713			return err
37714		}
37715		if err := f(x); err != nil {
37716			return err
37717		}
37718		if x.NextPageToken == "" {
37719			return nil
37720		}
37721		c.PageToken(x.NextPageToken)
37722	}
37723}
37724
37725// method id "displayvideo.targetingTypes.targetingOptions.search":
37726
37727type TargetingTypesTargetingOptionsSearchCall struct {
37728	s                             *Service
37729	targetingType                 string
37730	searchtargetingoptionsrequest *SearchTargetingOptionsRequest
37731	urlParams_                    gensupport.URLParams
37732	ctx_                          context.Context
37733	header_                       http.Header
37734}
37735
37736// Search: Searches for targeting options of a given type based on the
37737// given search terms.
37738//
37739// - targetingType: The type of targeting options to retrieve. Accepted
37740//   values are: * `TARGETING_TYPE_GEO_REGION`.
37741func (r *TargetingTypesTargetingOptionsService) Search(targetingType string, searchtargetingoptionsrequest *SearchTargetingOptionsRequest) *TargetingTypesTargetingOptionsSearchCall {
37742	c := &TargetingTypesTargetingOptionsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37743	c.targetingType = targetingType
37744	c.searchtargetingoptionsrequest = searchtargetingoptionsrequest
37745	return c
37746}
37747
37748// Fields allows partial responses to be retrieved. See
37749// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37750// for more information.
37751func (c *TargetingTypesTargetingOptionsSearchCall) Fields(s ...googleapi.Field) *TargetingTypesTargetingOptionsSearchCall {
37752	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37753	return c
37754}
37755
37756// Context sets the context to be used in this call's Do method. Any
37757// pending HTTP request will be aborted if the provided context is
37758// canceled.
37759func (c *TargetingTypesTargetingOptionsSearchCall) Context(ctx context.Context) *TargetingTypesTargetingOptionsSearchCall {
37760	c.ctx_ = ctx
37761	return c
37762}
37763
37764// Header returns an http.Header that can be modified by the caller to
37765// add HTTP headers to the request.
37766func (c *TargetingTypesTargetingOptionsSearchCall) Header() http.Header {
37767	if c.header_ == nil {
37768		c.header_ = make(http.Header)
37769	}
37770	return c.header_
37771}
37772
37773func (c *TargetingTypesTargetingOptionsSearchCall) doRequest(alt string) (*http.Response, error) {
37774	reqHeaders := make(http.Header)
37775	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
37776	for k, v := range c.header_ {
37777		reqHeaders[k] = v
37778	}
37779	reqHeaders.Set("User-Agent", c.s.userAgent())
37780	var body io.Reader = nil
37781	body, err := googleapi.WithoutDataWrapper.JSONReader(c.searchtargetingoptionsrequest)
37782	if err != nil {
37783		return nil, err
37784	}
37785	reqHeaders.Set("Content-Type", "application/json")
37786	c.urlParams_.Set("alt", alt)
37787	c.urlParams_.Set("prettyPrint", "false")
37788	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/targetingTypes/{+targetingType}/targetingOptions:search")
37789	urls += "?" + c.urlParams_.Encode()
37790	req, err := http.NewRequest("POST", urls, body)
37791	if err != nil {
37792		return nil, err
37793	}
37794	req.Header = reqHeaders
37795	googleapi.Expand(req.URL, map[string]string{
37796		"targetingType": c.targetingType,
37797	})
37798	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37799}
37800
37801// Do executes the "displayvideo.targetingTypes.targetingOptions.search" call.
37802// Exactly one of *SearchTargetingOptionsResponse or error will be
37803// non-nil. Any non-2xx status code is an error. Response headers are in
37804// either *SearchTargetingOptionsResponse.ServerResponse.Header or (if a
37805// response was returned at all) in error.(*googleapi.Error).Header. Use
37806// googleapi.IsNotModified to check whether the returned error was
37807// because http.StatusNotModified was returned.
37808func (c *TargetingTypesTargetingOptionsSearchCall) Do(opts ...googleapi.CallOption) (*SearchTargetingOptionsResponse, error) {
37809	gensupport.SetOptions(c.urlParams_, opts...)
37810	res, err := c.doRequest("json")
37811	if res != nil && res.StatusCode == http.StatusNotModified {
37812		if res.Body != nil {
37813			res.Body.Close()
37814		}
37815		return nil, &googleapi.Error{
37816			Code:   res.StatusCode,
37817			Header: res.Header,
37818		}
37819	}
37820	if err != nil {
37821		return nil, err
37822	}
37823	defer googleapi.CloseBody(res)
37824	if err := googleapi.CheckResponse(res); err != nil {
37825		return nil, err
37826	}
37827	ret := &SearchTargetingOptionsResponse{
37828		ServerResponse: googleapi.ServerResponse{
37829			Header:         res.Header,
37830			HTTPStatusCode: res.StatusCode,
37831		},
37832	}
37833	target := &ret
37834	if err := gensupport.DecodeResponse(target, res); err != nil {
37835		return nil, err
37836	}
37837	return ret, nil
37838	// {
37839	//   "description": "Searches for targeting options of a given type based on the given search terms.",
37840	//   "flatPath": "v1/targetingTypes/{targetingTypesId}/targetingOptions:search",
37841	//   "httpMethod": "POST",
37842	//   "id": "displayvideo.targetingTypes.targetingOptions.search",
37843	//   "parameterOrder": [
37844	//     "targetingType"
37845	//   ],
37846	//   "parameters": {
37847	//     "targetingType": {
37848	//       "description": "Required. The type of targeting options to retrieve. Accepted values are: * `TARGETING_TYPE_GEO_REGION`",
37849	//       "enum": [
37850	//         "TARGETING_TYPE_UNSPECIFIED",
37851	//         "TARGETING_TYPE_CHANNEL",
37852	//         "TARGETING_TYPE_APP_CATEGORY",
37853	//         "TARGETING_TYPE_APP",
37854	//         "TARGETING_TYPE_URL",
37855	//         "TARGETING_TYPE_DAY_AND_TIME",
37856	//         "TARGETING_TYPE_AGE_RANGE",
37857	//         "TARGETING_TYPE_REGIONAL_LOCATION_LIST",
37858	//         "TARGETING_TYPE_PROXIMITY_LOCATION_LIST",
37859	//         "TARGETING_TYPE_GENDER",
37860	//         "TARGETING_TYPE_VIDEO_PLAYER_SIZE",
37861	//         "TARGETING_TYPE_USER_REWARDED_CONTENT",
37862	//         "TARGETING_TYPE_PARENTAL_STATUS",
37863	//         "TARGETING_TYPE_CONTENT_INSTREAM_POSITION",
37864	//         "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION",
37865	//         "TARGETING_TYPE_DEVICE_TYPE",
37866	//         "TARGETING_TYPE_AUDIENCE_GROUP",
37867	//         "TARGETING_TYPE_BROWSER",
37868	//         "TARGETING_TYPE_HOUSEHOLD_INCOME",
37869	//         "TARGETING_TYPE_ON_SCREEN_POSITION",
37870	//         "TARGETING_TYPE_THIRD_PARTY_VERIFIER",
37871	//         "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION",
37872	//         "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION",
37873	//         "TARGETING_TYPE_ENVIRONMENT",
37874	//         "TARGETING_TYPE_CARRIER_AND_ISP",
37875	//         "TARGETING_TYPE_OPERATING_SYSTEM",
37876	//         "TARGETING_TYPE_DEVICE_MAKE_MODEL",
37877	//         "TARGETING_TYPE_KEYWORD",
37878	//         "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST",
37879	//         "TARGETING_TYPE_VIEWABILITY",
37880	//         "TARGETING_TYPE_CATEGORY",
37881	//         "TARGETING_TYPE_INVENTORY_SOURCE",
37882	//         "TARGETING_TYPE_LANGUAGE",
37883	//         "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS",
37884	//         "TARGETING_TYPE_GEO_REGION",
37885	//         "TARGETING_TYPE_INVENTORY_SOURCE_GROUP",
37886	//         "TARGETING_TYPE_EXCHANGE",
37887	//         "TARGETING_TYPE_SUB_EXCHANGE"
37888	//       ],
37889	//       "enumDescriptions": [
37890	//         "Default value when type is not specified or is unknown in this version.",
37891	//         "Target a channel (a custom group of related websites or apps).",
37892	//         "Target an app category (for example, education or puzzle games).",
37893	//         "Target a specific app (for example, Angry Birds).",
37894	//         "Target a specific url (for example, quora.com).",
37895	//         "Target ads during a chosen time period on a specific day.",
37896	//         "Target ads to a specific age range (for example, 18-24).",
37897	//         "Target ads to the specified regions on a regional location list.",
37898	//         "Target ads to the specified points of interest on a proximity location list.",
37899	//         "Target ads to a specific gender (for example, female or male).",
37900	//         "Target a specific video player size for video ads.",
37901	//         "Target user rewarded content for video ads.",
37902	//         "Target ads to a specific parental status (for example, parent or not a parent).",
37903	//         "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).",
37904	//         "Target ads in a specific content outstream position.",
37905	//         "Target ads to a specific device type (for example, tablet or connected TV).",
37906	//         "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.",
37907	//         "Target ads to specific web browsers (for example, Chrome).",
37908	//         "Target ads to a specific household income range (for example, top 10%).",
37909	//         "Target ads in a specific on screen position.",
37910	//         "Filter web sites through third party verification (for example, IAS or DoubleVerify).",
37911	//         "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).",
37912	//         "Filter website content by sensitive categories (for example, adult).",
37913	//         "Target ads to a specific environment (for example, web or app).",
37914	//         "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).",
37915	//         "Target ads to a specific operating system (for example, macOS).",
37916	//         "Target ads to a specific device make or model (for example, Roku or Samsung).",
37917	//         "Target ads to a specific keyword (for example, dog or retriever).",
37918	//         "Target ads to a specific negative keyword list.",
37919	//         "Target ads to a specific viewability (for example, 80% viewable).",
37920	//         "Target ads to a specific content category (for example, arts \u0026 entertainment).",
37921	//         "Purchase impressions from specific deals and auction packages.",
37922	//         "Target ads to a specific language (for example, English or Japanese).",
37923	//         "Target ads to ads.txt authorized sellers.",
37924	//         "Target ads to a specific regional location (for example, a city or state).",
37925	//         "Purchase impressions from a group of deals and auction packages.",
37926	//         "Purchase impressions from specific exchanges.",
37927	//         "Purchase impressions from specific sub-exchanges."
37928	//       ],
37929	//       "location": "path",
37930	//       "pattern": "^[^/]+$",
37931	//       "required": true,
37932	//       "type": "string"
37933	//     }
37934	//   },
37935	//   "path": "v1/targetingTypes/{+targetingType}/targetingOptions:search",
37936	//   "request": {
37937	//     "$ref": "SearchTargetingOptionsRequest"
37938	//   },
37939	//   "response": {
37940	//     "$ref": "SearchTargetingOptionsResponse"
37941	//   },
37942	//   "scopes": [
37943	//     "https://www.googleapis.com/auth/display-video"
37944	//   ]
37945	// }
37946
37947}
37948
37949// Pages invokes f for each page of results.
37950// A non-nil error returned from f will halt the iteration.
37951// The provided context supersedes any context provided to the Context method.
37952func (c *TargetingTypesTargetingOptionsSearchCall) Pages(ctx context.Context, f func(*SearchTargetingOptionsResponse) error) error {
37953	c.ctx_ = ctx
37954	defer func(pt string) { c.searchtargetingoptionsrequest.PageToken = pt }(c.searchtargetingoptionsrequest.PageToken) // reset paging to original point
37955	for {
37956		x, err := c.Do()
37957		if err != nil {
37958			return err
37959		}
37960		if err := f(x); err != nil {
37961			return err
37962		}
37963		if x.NextPageToken == "" {
37964			return nil
37965		}
37966		c.searchtargetingoptionsrequest.PageToken = x.NextPageToken
37967	}
37968}
37969
37970// method id "displayvideo.users.bulkEditAssignedUserRoles":
37971
37972type UsersBulkEditAssignedUserRolesCall struct {
37973	s                                *Service
37974	userId                           int64
37975	bulkeditassigneduserrolesrequest *BulkEditAssignedUserRolesRequest
37976	urlParams_                       gensupport.URLParams
37977	ctx_                             context.Context
37978	header_                          http.Header
37979}
37980
37981// BulkEditAssignedUserRoles: Bulk edits user roles for a user. The
37982// operation will delete the assigned user roles provided in
37983// BulkEditAssignedUserRolesRequest.deletedAssignedUserRoles and then
37984// assign the user roles provided in
37985// BulkEditAssignedUserRolesRequest.createdAssignedUserRoles.
37986//
37987// - userId: The ID of the user to which the assigned user roles belong.
37988func (r *UsersService) BulkEditAssignedUserRoles(userId int64, bulkeditassigneduserrolesrequest *BulkEditAssignedUserRolesRequest) *UsersBulkEditAssignedUserRolesCall {
37989	c := &UsersBulkEditAssignedUserRolesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37990	c.userId = userId
37991	c.bulkeditassigneduserrolesrequest = bulkeditassigneduserrolesrequest
37992	return c
37993}
37994
37995// Fields allows partial responses to be retrieved. See
37996// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37997// for more information.
37998func (c *UsersBulkEditAssignedUserRolesCall) Fields(s ...googleapi.Field) *UsersBulkEditAssignedUserRolesCall {
37999	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38000	return c
38001}
38002
38003// Context sets the context to be used in this call's Do method. Any
38004// pending HTTP request will be aborted if the provided context is
38005// canceled.
38006func (c *UsersBulkEditAssignedUserRolesCall) Context(ctx context.Context) *UsersBulkEditAssignedUserRolesCall {
38007	c.ctx_ = ctx
38008	return c
38009}
38010
38011// Header returns an http.Header that can be modified by the caller to
38012// add HTTP headers to the request.
38013func (c *UsersBulkEditAssignedUserRolesCall) Header() http.Header {
38014	if c.header_ == nil {
38015		c.header_ = make(http.Header)
38016	}
38017	return c.header_
38018}
38019
38020func (c *UsersBulkEditAssignedUserRolesCall) doRequest(alt string) (*http.Response, error) {
38021	reqHeaders := make(http.Header)
38022	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
38023	for k, v := range c.header_ {
38024		reqHeaders[k] = v
38025	}
38026	reqHeaders.Set("User-Agent", c.s.userAgent())
38027	var body io.Reader = nil
38028	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkeditassigneduserrolesrequest)
38029	if err != nil {
38030		return nil, err
38031	}
38032	reqHeaders.Set("Content-Type", "application/json")
38033	c.urlParams_.Set("alt", alt)
38034	c.urlParams_.Set("prettyPrint", "false")
38035	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/users/{+userId}:bulkEditAssignedUserRoles")
38036	urls += "?" + c.urlParams_.Encode()
38037	req, err := http.NewRequest("POST", urls, body)
38038	if err != nil {
38039		return nil, err
38040	}
38041	req.Header = reqHeaders
38042	googleapi.Expand(req.URL, map[string]string{
38043		"userId": strconv.FormatInt(c.userId, 10),
38044	})
38045	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38046}
38047
38048// Do executes the "displayvideo.users.bulkEditAssignedUserRoles" call.
38049// Exactly one of *BulkEditAssignedUserRolesResponse or error will be
38050// non-nil. Any non-2xx status code is an error. Response headers are in
38051// either *BulkEditAssignedUserRolesResponse.ServerResponse.Header or
38052// (if a response was returned at all) in
38053// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
38054// whether the returned error was because http.StatusNotModified was
38055// returned.
38056func (c *UsersBulkEditAssignedUserRolesCall) Do(opts ...googleapi.CallOption) (*BulkEditAssignedUserRolesResponse, error) {
38057	gensupport.SetOptions(c.urlParams_, opts...)
38058	res, err := c.doRequest("json")
38059	if res != nil && res.StatusCode == http.StatusNotModified {
38060		if res.Body != nil {
38061			res.Body.Close()
38062		}
38063		return nil, &googleapi.Error{
38064			Code:   res.StatusCode,
38065			Header: res.Header,
38066		}
38067	}
38068	if err != nil {
38069		return nil, err
38070	}
38071	defer googleapi.CloseBody(res)
38072	if err := googleapi.CheckResponse(res); err != nil {
38073		return nil, err
38074	}
38075	ret := &BulkEditAssignedUserRolesResponse{
38076		ServerResponse: googleapi.ServerResponse{
38077			Header:         res.Header,
38078			HTTPStatusCode: res.StatusCode,
38079		},
38080	}
38081	target := &ret
38082	if err := gensupport.DecodeResponse(target, res); err != nil {
38083		return nil, err
38084	}
38085	return ret, nil
38086	// {
38087	//   "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.",
38088	//   "flatPath": "v1/users/{usersId}:bulkEditAssignedUserRoles",
38089	//   "httpMethod": "POST",
38090	//   "id": "displayvideo.users.bulkEditAssignedUserRoles",
38091	//   "parameterOrder": [
38092	//     "userId"
38093	//   ],
38094	//   "parameters": {
38095	//     "userId": {
38096	//       "description": "Required. The ID of the user to which the assigned user roles belong.",
38097	//       "format": "int64",
38098	//       "location": "path",
38099	//       "pattern": "^[^/]+$",
38100	//       "required": true,
38101	//       "type": "string"
38102	//     }
38103	//   },
38104	//   "path": "v1/users/{+userId}:bulkEditAssignedUserRoles",
38105	//   "request": {
38106	//     "$ref": "BulkEditAssignedUserRolesRequest"
38107	//   },
38108	//   "response": {
38109	//     "$ref": "BulkEditAssignedUserRolesResponse"
38110	//   },
38111	//   "scopes": [
38112	//     "https://www.googleapis.com/auth/display-video-user-management"
38113	//   ]
38114	// }
38115
38116}
38117
38118// method id "displayvideo.users.create":
38119
38120type UsersCreateCall struct {
38121	s          *Service
38122	user       *User
38123	urlParams_ gensupport.URLParams
38124	ctx_       context.Context
38125	header_    http.Header
38126}
38127
38128// Create: Creates a new user. Returns the newly created user if
38129// successful.
38130func (r *UsersService) Create(user *User) *UsersCreateCall {
38131	c := &UsersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38132	c.user = user
38133	return c
38134}
38135
38136// Fields allows partial responses to be retrieved. See
38137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38138// for more information.
38139func (c *UsersCreateCall) Fields(s ...googleapi.Field) *UsersCreateCall {
38140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38141	return c
38142}
38143
38144// Context sets the context to be used in this call's Do method. Any
38145// pending HTTP request will be aborted if the provided context is
38146// canceled.
38147func (c *UsersCreateCall) Context(ctx context.Context) *UsersCreateCall {
38148	c.ctx_ = ctx
38149	return c
38150}
38151
38152// Header returns an http.Header that can be modified by the caller to
38153// add HTTP headers to the request.
38154func (c *UsersCreateCall) Header() http.Header {
38155	if c.header_ == nil {
38156		c.header_ = make(http.Header)
38157	}
38158	return c.header_
38159}
38160
38161func (c *UsersCreateCall) doRequest(alt string) (*http.Response, error) {
38162	reqHeaders := make(http.Header)
38163	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
38164	for k, v := range c.header_ {
38165		reqHeaders[k] = v
38166	}
38167	reqHeaders.Set("User-Agent", c.s.userAgent())
38168	var body io.Reader = nil
38169	body, err := googleapi.WithoutDataWrapper.JSONReader(c.user)
38170	if err != nil {
38171		return nil, err
38172	}
38173	reqHeaders.Set("Content-Type", "application/json")
38174	c.urlParams_.Set("alt", alt)
38175	c.urlParams_.Set("prettyPrint", "false")
38176	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/users")
38177	urls += "?" + c.urlParams_.Encode()
38178	req, err := http.NewRequest("POST", urls, body)
38179	if err != nil {
38180		return nil, err
38181	}
38182	req.Header = reqHeaders
38183	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38184}
38185
38186// Do executes the "displayvideo.users.create" call.
38187// Exactly one of *User or error will be non-nil. Any non-2xx status
38188// code is an error. Response headers are in either
38189// *User.ServerResponse.Header or (if a response was returned at all) in
38190// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
38191// whether the returned error was because http.StatusNotModified was
38192// returned.
38193func (c *UsersCreateCall) Do(opts ...googleapi.CallOption) (*User, error) {
38194	gensupport.SetOptions(c.urlParams_, opts...)
38195	res, err := c.doRequest("json")
38196	if res != nil && res.StatusCode == http.StatusNotModified {
38197		if res.Body != nil {
38198			res.Body.Close()
38199		}
38200		return nil, &googleapi.Error{
38201			Code:   res.StatusCode,
38202			Header: res.Header,
38203		}
38204	}
38205	if err != nil {
38206		return nil, err
38207	}
38208	defer googleapi.CloseBody(res)
38209	if err := googleapi.CheckResponse(res); err != nil {
38210		return nil, err
38211	}
38212	ret := &User{
38213		ServerResponse: googleapi.ServerResponse{
38214			Header:         res.Header,
38215			HTTPStatusCode: res.StatusCode,
38216		},
38217	}
38218	target := &ret
38219	if err := gensupport.DecodeResponse(target, res); err != nil {
38220		return nil, err
38221	}
38222	return ret, nil
38223	// {
38224	//   "description": "Creates a new user. Returns the newly created user if successful.",
38225	//   "flatPath": "v1/users",
38226	//   "httpMethod": "POST",
38227	//   "id": "displayvideo.users.create",
38228	//   "parameterOrder": [],
38229	//   "parameters": {},
38230	//   "path": "v1/users",
38231	//   "request": {
38232	//     "$ref": "User"
38233	//   },
38234	//   "response": {
38235	//     "$ref": "User"
38236	//   },
38237	//   "scopes": [
38238	//     "https://www.googleapis.com/auth/display-video-user-management"
38239	//   ]
38240	// }
38241
38242}
38243
38244// method id "displayvideo.users.delete":
38245
38246type UsersDeleteCall struct {
38247	s          *Service
38248	userId     int64
38249	urlParams_ gensupport.URLParams
38250	ctx_       context.Context
38251	header_    http.Header
38252}
38253
38254// Delete: Deletes a user.
38255//
38256// - userId: The ID of the user to delete.
38257func (r *UsersService) Delete(userId int64) *UsersDeleteCall {
38258	c := &UsersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38259	c.userId = userId
38260	return c
38261}
38262
38263// Fields allows partial responses to be retrieved. See
38264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38265// for more information.
38266func (c *UsersDeleteCall) Fields(s ...googleapi.Field) *UsersDeleteCall {
38267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38268	return c
38269}
38270
38271// Context sets the context to be used in this call's Do method. Any
38272// pending HTTP request will be aborted if the provided context is
38273// canceled.
38274func (c *UsersDeleteCall) Context(ctx context.Context) *UsersDeleteCall {
38275	c.ctx_ = ctx
38276	return c
38277}
38278
38279// Header returns an http.Header that can be modified by the caller to
38280// add HTTP headers to the request.
38281func (c *UsersDeleteCall) Header() http.Header {
38282	if c.header_ == nil {
38283		c.header_ = make(http.Header)
38284	}
38285	return c.header_
38286}
38287
38288func (c *UsersDeleteCall) doRequest(alt string) (*http.Response, error) {
38289	reqHeaders := make(http.Header)
38290	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
38291	for k, v := range c.header_ {
38292		reqHeaders[k] = v
38293	}
38294	reqHeaders.Set("User-Agent", c.s.userAgent())
38295	var body io.Reader = nil
38296	c.urlParams_.Set("alt", alt)
38297	c.urlParams_.Set("prettyPrint", "false")
38298	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/users/{+userId}")
38299	urls += "?" + c.urlParams_.Encode()
38300	req, err := http.NewRequest("DELETE", urls, body)
38301	if err != nil {
38302		return nil, err
38303	}
38304	req.Header = reqHeaders
38305	googleapi.Expand(req.URL, map[string]string{
38306		"userId": strconv.FormatInt(c.userId, 10),
38307	})
38308	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38309}
38310
38311// Do executes the "displayvideo.users.delete" call.
38312// Exactly one of *Empty or error will be non-nil. Any non-2xx status
38313// code is an error. Response headers are in either
38314// *Empty.ServerResponse.Header or (if a response was returned at all)
38315// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
38316// check whether the returned error was because http.StatusNotModified
38317// was returned.
38318func (c *UsersDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
38319	gensupport.SetOptions(c.urlParams_, opts...)
38320	res, err := c.doRequest("json")
38321	if res != nil && res.StatusCode == http.StatusNotModified {
38322		if res.Body != nil {
38323			res.Body.Close()
38324		}
38325		return nil, &googleapi.Error{
38326			Code:   res.StatusCode,
38327			Header: res.Header,
38328		}
38329	}
38330	if err != nil {
38331		return nil, err
38332	}
38333	defer googleapi.CloseBody(res)
38334	if err := googleapi.CheckResponse(res); err != nil {
38335		return nil, err
38336	}
38337	ret := &Empty{
38338		ServerResponse: googleapi.ServerResponse{
38339			Header:         res.Header,
38340			HTTPStatusCode: res.StatusCode,
38341		},
38342	}
38343	target := &ret
38344	if err := gensupport.DecodeResponse(target, res); err != nil {
38345		return nil, err
38346	}
38347	return ret, nil
38348	// {
38349	//   "description": "Deletes a user.",
38350	//   "flatPath": "v1/users/{usersId}",
38351	//   "httpMethod": "DELETE",
38352	//   "id": "displayvideo.users.delete",
38353	//   "parameterOrder": [
38354	//     "userId"
38355	//   ],
38356	//   "parameters": {
38357	//     "userId": {
38358	//       "description": "Required. The ID of the user to delete.",
38359	//       "format": "int64",
38360	//       "location": "path",
38361	//       "pattern": "^[^/]+$",
38362	//       "required": true,
38363	//       "type": "string"
38364	//     }
38365	//   },
38366	//   "path": "v1/users/{+userId}",
38367	//   "response": {
38368	//     "$ref": "Empty"
38369	//   },
38370	//   "scopes": [
38371	//     "https://www.googleapis.com/auth/display-video-user-management"
38372	//   ]
38373	// }
38374
38375}
38376
38377// method id "displayvideo.users.get":
38378
38379type UsersGetCall struct {
38380	s            *Service
38381	userId       int64
38382	urlParams_   gensupport.URLParams
38383	ifNoneMatch_ string
38384	ctx_         context.Context
38385	header_      http.Header
38386}
38387
38388// Get: Gets a user.
38389//
38390// - userId: The ID of the user to fetch.
38391func (r *UsersService) Get(userId int64) *UsersGetCall {
38392	c := &UsersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38393	c.userId = userId
38394	return c
38395}
38396
38397// Fields allows partial responses to be retrieved. See
38398// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38399// for more information.
38400func (c *UsersGetCall) Fields(s ...googleapi.Field) *UsersGetCall {
38401	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38402	return c
38403}
38404
38405// IfNoneMatch sets the optional parameter which makes the operation
38406// fail if the object's ETag matches the given value. This is useful for
38407// getting updates only after the object has changed since the last
38408// request. Use googleapi.IsNotModified to check whether the response
38409// error from Do is the result of In-None-Match.
38410func (c *UsersGetCall) IfNoneMatch(entityTag string) *UsersGetCall {
38411	c.ifNoneMatch_ = entityTag
38412	return c
38413}
38414
38415// Context sets the context to be used in this call's Do method. Any
38416// pending HTTP request will be aborted if the provided context is
38417// canceled.
38418func (c *UsersGetCall) Context(ctx context.Context) *UsersGetCall {
38419	c.ctx_ = ctx
38420	return c
38421}
38422
38423// Header returns an http.Header that can be modified by the caller to
38424// add HTTP headers to the request.
38425func (c *UsersGetCall) Header() http.Header {
38426	if c.header_ == nil {
38427		c.header_ = make(http.Header)
38428	}
38429	return c.header_
38430}
38431
38432func (c *UsersGetCall) doRequest(alt string) (*http.Response, error) {
38433	reqHeaders := make(http.Header)
38434	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
38435	for k, v := range c.header_ {
38436		reqHeaders[k] = v
38437	}
38438	reqHeaders.Set("User-Agent", c.s.userAgent())
38439	if c.ifNoneMatch_ != "" {
38440		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
38441	}
38442	var body io.Reader = nil
38443	c.urlParams_.Set("alt", alt)
38444	c.urlParams_.Set("prettyPrint", "false")
38445	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/users/{+userId}")
38446	urls += "?" + c.urlParams_.Encode()
38447	req, err := http.NewRequest("GET", urls, body)
38448	if err != nil {
38449		return nil, err
38450	}
38451	req.Header = reqHeaders
38452	googleapi.Expand(req.URL, map[string]string{
38453		"userId": strconv.FormatInt(c.userId, 10),
38454	})
38455	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38456}
38457
38458// Do executes the "displayvideo.users.get" call.
38459// Exactly one of *User or error will be non-nil. Any non-2xx status
38460// code is an error. Response headers are in either
38461// *User.ServerResponse.Header or (if a response was returned at all) in
38462// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
38463// whether the returned error was because http.StatusNotModified was
38464// returned.
38465func (c *UsersGetCall) Do(opts ...googleapi.CallOption) (*User, error) {
38466	gensupport.SetOptions(c.urlParams_, opts...)
38467	res, err := c.doRequest("json")
38468	if res != nil && res.StatusCode == http.StatusNotModified {
38469		if res.Body != nil {
38470			res.Body.Close()
38471		}
38472		return nil, &googleapi.Error{
38473			Code:   res.StatusCode,
38474			Header: res.Header,
38475		}
38476	}
38477	if err != nil {
38478		return nil, err
38479	}
38480	defer googleapi.CloseBody(res)
38481	if err := googleapi.CheckResponse(res); err != nil {
38482		return nil, err
38483	}
38484	ret := &User{
38485		ServerResponse: googleapi.ServerResponse{
38486			Header:         res.Header,
38487			HTTPStatusCode: res.StatusCode,
38488		},
38489	}
38490	target := &ret
38491	if err := gensupport.DecodeResponse(target, res); err != nil {
38492		return nil, err
38493	}
38494	return ret, nil
38495	// {
38496	//   "description": "Gets a user.",
38497	//   "flatPath": "v1/users/{usersId}",
38498	//   "httpMethod": "GET",
38499	//   "id": "displayvideo.users.get",
38500	//   "parameterOrder": [
38501	//     "userId"
38502	//   ],
38503	//   "parameters": {
38504	//     "userId": {
38505	//       "description": "Required. The ID of the user to fetch.",
38506	//       "format": "int64",
38507	//       "location": "path",
38508	//       "pattern": "^[^/]+$",
38509	//       "required": true,
38510	//       "type": "string"
38511	//     }
38512	//   },
38513	//   "path": "v1/users/{+userId}",
38514	//   "response": {
38515	//     "$ref": "User"
38516	//   },
38517	//   "scopes": [
38518	//     "https://www.googleapis.com/auth/display-video-user-management"
38519	//   ]
38520	// }
38521
38522}
38523
38524// method id "displayvideo.users.list":
38525
38526type UsersListCall struct {
38527	s            *Service
38528	urlParams_   gensupport.URLParams
38529	ifNoneMatch_ string
38530	ctx_         context.Context
38531	header_      http.Header
38532}
38533
38534// List: Lists users that are accessible to the current user. If two
38535// users have user roles on the same partner or advertiser, they can
38536// access each other.
38537func (r *UsersService) List() *UsersListCall {
38538	c := &UsersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38539	return c
38540}
38541
38542// Filter sets the optional parameter "filter": Allows filtering by user
38543// properties. Supported syntax: * Filter expressions are made up of one
38544// or more restrictions. * Restrictions can be combined by the logical
38545// operator `AND`. * A restriction has the form of `{field} {operator}
38546// {value}`. * The operator must be `CONTAINS (:)` or `EQUALS (=)`. *
38547// The operator must be `CONTAINS (:)` for the following fields: -
38548// `displayName` - `email` * The operator must be `EQUALS (=)` for the
38549// following fields: - `assignedUserRole.userRole` -
38550// `assignedUserRole.partnerId` - `assignedUserRole.advertiserId` -
38551// `assignedUserRole.entityType`: A synthetic field of AssignedUserRole
38552// used for filtering. Identifies the type of entity to which the user
38553// role is assigned. Valid values are `Partner` and `Advertiser`. -
38554// `assignedUserRole.parentPartnerId`: A synthetic field of
38555// AssignedUserRole used for filtering. Identifies the parent partner of
38556// the entity to which the user role is assigned." Examples: * The user
38557// with displayName containing `foo`: `displayName:"foo" * The user
38558// with email containing `bar`: `email:"bar" * All users with standard
38559// user roles: `assignedUserRole.userRole="STANDARD" * All users with
38560// user roles for partner 123: `assignedUserRole.partnerId="123" * All
38561// users with user roles for advertiser 123:
38562// `assignedUserRole.advertiserId="123" * All users with partner level
38563// user roles: `entityType="PARTNER" * All users with user roles for
38564// partner 123 and advertisers under partner 123:
38565// `parentPartnerId="123" The length of this field should be no more
38566// than 500 characters.
38567func (c *UsersListCall) Filter(filter string) *UsersListCall {
38568	c.urlParams_.Set("filter", filter)
38569	return c
38570}
38571
38572// OrderBy sets the optional parameter "orderBy": Field by which to sort
38573// the list. Acceptable values are: * `displayName` (default) The
38574// default sorting order is ascending. To specify descending order for a
38575// field, a suffix "desc" should be added to the field name. For
38576// example, `displayName desc`.
38577func (c *UsersListCall) OrderBy(orderBy string) *UsersListCall {
38578	c.urlParams_.Set("orderBy", orderBy)
38579	return c
38580}
38581
38582// PageSize sets the optional parameter "pageSize": Requested page size.
38583// Must be between `1` and `100`. If unspecified will default to `100`.
38584func (c *UsersListCall) PageSize(pageSize int64) *UsersListCall {
38585	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
38586	return c
38587}
38588
38589// PageToken sets the optional parameter "pageToken": A token
38590// identifying a page of results the server should return. Typically,
38591// this is the value of next_page_token returned from the previous call
38592// to `ListUsers` method. If not specified, the first page of results
38593// will be returned.
38594func (c *UsersListCall) PageToken(pageToken string) *UsersListCall {
38595	c.urlParams_.Set("pageToken", pageToken)
38596	return c
38597}
38598
38599// Fields allows partial responses to be retrieved. See
38600// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38601// for more information.
38602func (c *UsersListCall) Fields(s ...googleapi.Field) *UsersListCall {
38603	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38604	return c
38605}
38606
38607// IfNoneMatch sets the optional parameter which makes the operation
38608// fail if the object's ETag matches the given value. This is useful for
38609// getting updates only after the object has changed since the last
38610// request. Use googleapi.IsNotModified to check whether the response
38611// error from Do is the result of In-None-Match.
38612func (c *UsersListCall) IfNoneMatch(entityTag string) *UsersListCall {
38613	c.ifNoneMatch_ = entityTag
38614	return c
38615}
38616
38617// Context sets the context to be used in this call's Do method. Any
38618// pending HTTP request will be aborted if the provided context is
38619// canceled.
38620func (c *UsersListCall) Context(ctx context.Context) *UsersListCall {
38621	c.ctx_ = ctx
38622	return c
38623}
38624
38625// Header returns an http.Header that can be modified by the caller to
38626// add HTTP headers to the request.
38627func (c *UsersListCall) Header() http.Header {
38628	if c.header_ == nil {
38629		c.header_ = make(http.Header)
38630	}
38631	return c.header_
38632}
38633
38634func (c *UsersListCall) doRequest(alt string) (*http.Response, error) {
38635	reqHeaders := make(http.Header)
38636	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
38637	for k, v := range c.header_ {
38638		reqHeaders[k] = v
38639	}
38640	reqHeaders.Set("User-Agent", c.s.userAgent())
38641	if c.ifNoneMatch_ != "" {
38642		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
38643	}
38644	var body io.Reader = nil
38645	c.urlParams_.Set("alt", alt)
38646	c.urlParams_.Set("prettyPrint", "false")
38647	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/users")
38648	urls += "?" + c.urlParams_.Encode()
38649	req, err := http.NewRequest("GET", urls, body)
38650	if err != nil {
38651		return nil, err
38652	}
38653	req.Header = reqHeaders
38654	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38655}
38656
38657// Do executes the "displayvideo.users.list" call.
38658// Exactly one of *ListUsersResponse or error will be non-nil. Any
38659// non-2xx status code is an error. Response headers are in either
38660// *ListUsersResponse.ServerResponse.Header or (if a response was
38661// returned at all) in error.(*googleapi.Error).Header. Use
38662// googleapi.IsNotModified to check whether the returned error was
38663// because http.StatusNotModified was returned.
38664func (c *UsersListCall) Do(opts ...googleapi.CallOption) (*ListUsersResponse, error) {
38665	gensupport.SetOptions(c.urlParams_, opts...)
38666	res, err := c.doRequest("json")
38667	if res != nil && res.StatusCode == http.StatusNotModified {
38668		if res.Body != nil {
38669			res.Body.Close()
38670		}
38671		return nil, &googleapi.Error{
38672			Code:   res.StatusCode,
38673			Header: res.Header,
38674		}
38675	}
38676	if err != nil {
38677		return nil, err
38678	}
38679	defer googleapi.CloseBody(res)
38680	if err := googleapi.CheckResponse(res); err != nil {
38681		return nil, err
38682	}
38683	ret := &ListUsersResponse{
38684		ServerResponse: googleapi.ServerResponse{
38685			Header:         res.Header,
38686			HTTPStatusCode: res.StatusCode,
38687		},
38688	}
38689	target := &ret
38690	if err := gensupport.DecodeResponse(target, res); err != nil {
38691		return nil, err
38692	}
38693	return ret, nil
38694	// {
38695	//   "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.",
38696	//   "flatPath": "v1/users",
38697	//   "httpMethod": "GET",
38698	//   "id": "displayvideo.users.list",
38699	//   "parameterOrder": [],
38700	//   "parameters": {
38701	//     "filter": {
38702	//       "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.",
38703	//       "location": "query",
38704	//       "type": "string"
38705	//     },
38706	//     "orderBy": {
38707	//       "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`.",
38708	//       "location": "query",
38709	//       "type": "string"
38710	//     },
38711	//     "pageSize": {
38712	//       "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.",
38713	//       "format": "int32",
38714	//       "location": "query",
38715	//       "type": "integer"
38716	//     },
38717	//     "pageToken": {
38718	//       "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.",
38719	//       "location": "query",
38720	//       "type": "string"
38721	//     }
38722	//   },
38723	//   "path": "v1/users",
38724	//   "response": {
38725	//     "$ref": "ListUsersResponse"
38726	//   },
38727	//   "scopes": [
38728	//     "https://www.googleapis.com/auth/display-video-user-management"
38729	//   ]
38730	// }
38731
38732}
38733
38734// Pages invokes f for each page of results.
38735// A non-nil error returned from f will halt the iteration.
38736// The provided context supersedes any context provided to the Context method.
38737func (c *UsersListCall) Pages(ctx context.Context, f func(*ListUsersResponse) error) error {
38738	c.ctx_ = ctx
38739	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
38740	for {
38741		x, err := c.Do()
38742		if err != nil {
38743			return err
38744		}
38745		if err := f(x); err != nil {
38746			return err
38747		}
38748		if x.NextPageToken == "" {
38749			return nil
38750		}
38751		c.PageToken(x.NextPageToken)
38752	}
38753}
38754
38755// method id "displayvideo.users.patch":
38756
38757type UsersPatchCall struct {
38758	s          *Service
38759	userId     int64
38760	user       *User
38761	urlParams_ gensupport.URLParams
38762	ctx_       context.Context
38763	header_    http.Header
38764}
38765
38766// Patch: Updates an existing user. Returns the updated user if
38767// successful.
38768//
38769// - userId: Output only. The unique ID of the user. Assigned by the
38770//   system.
38771func (r *UsersService) Patch(userId int64, user *User) *UsersPatchCall {
38772	c := &UsersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38773	c.userId = userId
38774	c.user = user
38775	return c
38776}
38777
38778// UpdateMask sets the optional parameter "updateMask": Required. The
38779// mask to control which fields to update.
38780func (c *UsersPatchCall) UpdateMask(updateMask string) *UsersPatchCall {
38781	c.urlParams_.Set("updateMask", updateMask)
38782	return c
38783}
38784
38785// Fields allows partial responses to be retrieved. See
38786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38787// for more information.
38788func (c *UsersPatchCall) Fields(s ...googleapi.Field) *UsersPatchCall {
38789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38790	return c
38791}
38792
38793// Context sets the context to be used in this call's Do method. Any
38794// pending HTTP request will be aborted if the provided context is
38795// canceled.
38796func (c *UsersPatchCall) Context(ctx context.Context) *UsersPatchCall {
38797	c.ctx_ = ctx
38798	return c
38799}
38800
38801// Header returns an http.Header that can be modified by the caller to
38802// add HTTP headers to the request.
38803func (c *UsersPatchCall) Header() http.Header {
38804	if c.header_ == nil {
38805		c.header_ = make(http.Header)
38806	}
38807	return c.header_
38808}
38809
38810func (c *UsersPatchCall) doRequest(alt string) (*http.Response, error) {
38811	reqHeaders := make(http.Header)
38812	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
38813	for k, v := range c.header_ {
38814		reqHeaders[k] = v
38815	}
38816	reqHeaders.Set("User-Agent", c.s.userAgent())
38817	var body io.Reader = nil
38818	body, err := googleapi.WithoutDataWrapper.JSONReader(c.user)
38819	if err != nil {
38820		return nil, err
38821	}
38822	reqHeaders.Set("Content-Type", "application/json")
38823	c.urlParams_.Set("alt", alt)
38824	c.urlParams_.Set("prettyPrint", "false")
38825	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/users/{+userId}")
38826	urls += "?" + c.urlParams_.Encode()
38827	req, err := http.NewRequest("PATCH", urls, body)
38828	if err != nil {
38829		return nil, err
38830	}
38831	req.Header = reqHeaders
38832	googleapi.Expand(req.URL, map[string]string{
38833		"userId": strconv.FormatInt(c.userId, 10),
38834	})
38835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38836}
38837
38838// Do executes the "displayvideo.users.patch" call.
38839// Exactly one of *User or error will be non-nil. Any non-2xx status
38840// code is an error. Response headers are in either
38841// *User.ServerResponse.Header or (if a response was returned at all) in
38842// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
38843// whether the returned error was because http.StatusNotModified was
38844// returned.
38845func (c *UsersPatchCall) Do(opts ...googleapi.CallOption) (*User, error) {
38846	gensupport.SetOptions(c.urlParams_, opts...)
38847	res, err := c.doRequest("json")
38848	if res != nil && res.StatusCode == http.StatusNotModified {
38849		if res.Body != nil {
38850			res.Body.Close()
38851		}
38852		return nil, &googleapi.Error{
38853			Code:   res.StatusCode,
38854			Header: res.Header,
38855		}
38856	}
38857	if err != nil {
38858		return nil, err
38859	}
38860	defer googleapi.CloseBody(res)
38861	if err := googleapi.CheckResponse(res); err != nil {
38862		return nil, err
38863	}
38864	ret := &User{
38865		ServerResponse: googleapi.ServerResponse{
38866			Header:         res.Header,
38867			HTTPStatusCode: res.StatusCode,
38868		},
38869	}
38870	target := &ret
38871	if err := gensupport.DecodeResponse(target, res); err != nil {
38872		return nil, err
38873	}
38874	return ret, nil
38875	// {
38876	//   "description": "Updates an existing user. Returns the updated user if successful.",
38877	//   "flatPath": "v1/users/{usersId}",
38878	//   "httpMethod": "PATCH",
38879	//   "id": "displayvideo.users.patch",
38880	//   "parameterOrder": [
38881	//     "userId"
38882	//   ],
38883	//   "parameters": {
38884	//     "updateMask": {
38885	//       "description": "Required. The mask to control which fields to update.",
38886	//       "format": "google-fieldmask",
38887	//       "location": "query",
38888	//       "type": "string"
38889	//     },
38890	//     "userId": {
38891	//       "description": "Output only. The unique ID of the user. Assigned by the system.",
38892	//       "format": "int64",
38893	//       "location": "path",
38894	//       "pattern": "^[^/]+$",
38895	//       "required": true,
38896	//       "type": "string"
38897	//     }
38898	//   },
38899	//   "path": "v1/users/{+userId}",
38900	//   "request": {
38901	//     "$ref": "User"
38902	//   },
38903	//   "response": {
38904	//     "$ref": "User"
38905	//   },
38906	//   "scopes": [
38907	//     "https://www.googleapis.com/auth/display-video-user-management"
38908	//   ]
38909	// }
38910
38911}
38912