1// Copyright 2020 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 doubleclicksearch provides access to the Search Ads 360 API.
8//
9// For product documentation, see: https://developers.google.com/search-ads
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/doubleclicksearch/v2"
16//   ...
17//   ctx := context.Background()
18//   doubleclicksearchService, err := doubleclicksearch.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// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
27//
28//   doubleclicksearchService, err := doubleclicksearch.NewService(ctx, option.WithAPIKey("AIza..."))
29//
30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
31//
32//   config := &oauth2.Config{...}
33//   // ...
34//   token, err := config.Exchange(ctx, ...)
35//   doubleclicksearchService, err := doubleclicksearch.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
36//
37// See https://godoc.org/google.golang.org/api/option/ for details on options.
38package doubleclicksearch // import "google.golang.org/api/doubleclicksearch/v2"
39
40import (
41	"bytes"
42	"context"
43	"encoding/json"
44	"errors"
45	"fmt"
46	"io"
47	"net/http"
48	"net/url"
49	"strconv"
50	"strings"
51
52	googleapi "google.golang.org/api/googleapi"
53	gensupport "google.golang.org/api/internal/gensupport"
54	option "google.golang.org/api/option"
55	internaloption "google.golang.org/api/option/internaloption"
56	htransport "google.golang.org/api/transport/http"
57)
58
59// Always reference these packages, just in case the auto-generated code
60// below doesn't.
61var _ = bytes.NewBuffer
62var _ = strconv.Itoa
63var _ = fmt.Sprintf
64var _ = json.NewDecoder
65var _ = io.Copy
66var _ = url.Parse
67var _ = gensupport.MarshalJSON
68var _ = googleapi.Version
69var _ = errors.New
70var _ = strings.Replace
71var _ = context.Canceled
72var _ = internaloption.WithDefaultEndpoint
73
74const apiId = "doubleclicksearch:v2"
75const apiName = "doubleclicksearch"
76const apiVersion = "v2"
77const basePath = "https://www.googleapis.com/"
78const mtlsBasePath = "https://www.mtls.googleapis.com/"
79
80// OAuth2 scopes used by this API.
81const (
82	// View and manage your advertising data in DoubleClick Search
83	DoubleclicksearchScope = "https://www.googleapis.com/auth/doubleclicksearch"
84)
85
86// NewService creates a new Service.
87func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
88	scopesOption := option.WithScopes(
89		"https://www.googleapis.com/auth/doubleclicksearch",
90	)
91	// NOTE: prepend, so we don't override user-specified scopes.
92	opts = append([]option.ClientOption{scopesOption}, opts...)
93	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
94	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
95	client, endpoint, err := htransport.NewClient(ctx, opts...)
96	if err != nil {
97		return nil, err
98	}
99	s, err := New(client)
100	if err != nil {
101		return nil, err
102	}
103	if endpoint != "" {
104		s.BasePath = endpoint
105	}
106	return s, nil
107}
108
109// New creates a new Service. It uses the provided http.Client for requests.
110//
111// Deprecated: please use NewService instead.
112// To provide a custom HTTP client, use option.WithHTTPClient.
113// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
114func New(client *http.Client) (*Service, error) {
115	if client == nil {
116		return nil, errors.New("client is nil")
117	}
118	s := &Service{client: client, BasePath: basePath}
119	s.Conversion = NewConversionService(s)
120	s.Reports = NewReportsService(s)
121	s.SavedColumns = NewSavedColumnsService(s)
122	return s, nil
123}
124
125type Service struct {
126	client    *http.Client
127	BasePath  string // API endpoint base URL
128	UserAgent string // optional additional User-Agent fragment
129
130	Conversion *ConversionService
131
132	Reports *ReportsService
133
134	SavedColumns *SavedColumnsService
135}
136
137func (s *Service) userAgent() string {
138	if s.UserAgent == "" {
139		return googleapi.UserAgent
140	}
141	return googleapi.UserAgent + " " + s.UserAgent
142}
143
144func NewConversionService(s *Service) *ConversionService {
145	rs := &ConversionService{s: s}
146	return rs
147}
148
149type ConversionService struct {
150	s *Service
151}
152
153func NewReportsService(s *Service) *ReportsService {
154	rs := &ReportsService{s: s}
155	return rs
156}
157
158type ReportsService struct {
159	s *Service
160}
161
162func NewSavedColumnsService(s *Service) *SavedColumnsService {
163	rs := &SavedColumnsService{s: s}
164	return rs
165}
166
167type SavedColumnsService struct {
168	s *Service
169}
170
171// Availability: A message containing availability data relevant to
172// DoubleClick Search.
173type Availability struct {
174	// AdvertiserId: DS advertiser ID.
175	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
176
177	// AgencyId: DS agency ID.
178	AgencyId int64 `json:"agencyId,omitempty,string"`
179
180	// AvailabilityTimestamp: The time by which all conversions have been
181	// uploaded, in epoch millis UTC.
182	AvailabilityTimestamp int64 `json:"availabilityTimestamp,omitempty,string"`
183
184	// SegmentationId: The numeric segmentation identifier (for example,
185	// DoubleClick Search
186	// Floodlight activity ID).
187	SegmentationId int64 `json:"segmentationId,omitempty,string"`
188
189	// SegmentationName: The friendly segmentation identifier (for example,
190	// DoubleClick Search
191	// Floodlight activity name).
192	SegmentationName string `json:"segmentationName,omitempty"`
193
194	// SegmentationType: The segmentation type that this availability is for
195	// (its default value is
196	// `FLOODLIGHT`).
197	SegmentationType string `json:"segmentationType,omitempty"`
198
199	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
200	// unconditionally include in API requests. By default, fields with
201	// empty values are omitted from API requests. However, any non-pointer,
202	// non-interface field appearing in ForceSendFields will be sent to the
203	// server regardless of whether the field is empty or not. This may be
204	// used to include empty fields in Patch requests.
205	ForceSendFields []string `json:"-"`
206
207	// NullFields is a list of field names (e.g. "AdvertiserId") to include
208	// in API requests with the JSON null value. By default, fields with
209	// empty values are omitted from API requests. However, any field with
210	// an empty value appearing in NullFields will be sent to the server as
211	// null. It is an error if a field in this list has a non-empty value.
212	// This may be used to include null fields in Patch requests.
213	NullFields []string `json:"-"`
214}
215
216func (s *Availability) MarshalJSON() ([]byte, error) {
217	type NoMethod Availability
218	raw := NoMethod(*s)
219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
220}
221
222// Conversion: A conversion containing data relevant to DoubleClick
223// Search.
224type Conversion struct {
225	// AdGroupId: DS ad group ID.
226	AdGroupId int64 `json:"adGroupId,omitempty,string"`
227
228	// AdId: DS ad ID.
229	AdId int64 `json:"adId,omitempty,string"`
230
231	// AdvertiserId: DS advertiser ID.
232	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
233
234	// AgencyId: DS agency ID.
235	AgencyId int64 `json:"agencyId,omitempty,string"`
236
237	// AttributionModel: Available to advertisers only after contacting
238	// DoubleClick Search customer
239	// support.
240	AttributionModel string `json:"attributionModel,omitempty"`
241
242	// CampaignId: DS campaign ID.
243	CampaignId int64 `json:"campaignId,omitempty,string"`
244
245	// Channel: Sales channel for the product. Acceptable values are:
246	// <ul>
247	// <li>"local": a physical store</li> <li>"online":
248	// an online store</li> </ul>
249	Channel string `json:"channel,omitempty"`
250
251	// ClickId: DS click ID for the conversion.
252	ClickId string `json:"clickId,omitempty"`
253
254	// ConversionId: For offline conversions, advertisers provide this ID.
255	// Advertisers can
256	// specify any ID that is meaningful to them. Each conversion in a
257	// request
258	// must specify a unique ID, and the combination of ID and timestamp
259	// must be
260	// unique amongst all conversions within the advertiser.<br> For
261	// online
262	// conversions, DS copies the `dsConversionId` or
263	// `floodlightOrderId` into this property depending on the
264	// advertiser's Floodlight instructions.
265	ConversionId string `json:"conversionId,omitempty"`
266
267	// ConversionModifiedTimestamp: The time at which the conversion was
268	// last modified, in epoch millis UTC.
269	ConversionModifiedTimestamp int64 `json:"conversionModifiedTimestamp,omitempty,string"`
270
271	// ConversionTimestamp: The time at which the conversion took place, in
272	// epoch millis UTC.
273	ConversionTimestamp string `json:"conversionTimestamp,omitempty"`
274
275	// CountMillis: Available to advertisers only after contacting
276	// DoubleClick Search customer
277	// support.
278	CountMillis int64 `json:"countMillis,omitempty,string"`
279
280	// CriterionId: DS criterion (keyword) ID.
281	CriterionId int64 `json:"criterionId,omitempty,string"`
282
283	// CurrencyCode: The currency code for the conversion's revenue. Should
284	// be in ISO 4217
285	// alphabetic (3-char) format.
286	CurrencyCode string `json:"currencyCode,omitempty"`
287
288	// CustomDimension: Custom dimensions for the conversion, which can be
289	// used to filter data in a
290	// report.
291	CustomDimension []*CustomDimension `json:"customDimension,omitempty"`
292
293	// CustomMetric: Custom metrics for the conversion.
294	CustomMetric []*CustomMetric `json:"customMetric,omitempty"`
295
296	// DeviceType: The type of device on which the conversion occurred.
297	DeviceType string `json:"deviceType,omitempty"`
298
299	// DsConversionId: ID that DoubleClick Search generates for each
300	// conversion.
301	DsConversionId int64 `json:"dsConversionId,omitempty,string"`
302
303	// EngineAccountId: DS engine account ID.
304	EngineAccountId int64 `json:"engineAccountId,omitempty,string"`
305
306	// FloodlightOrderId: The Floodlight order ID provided by the advertiser
307	// for the conversion.
308	FloodlightOrderId string `json:"floodlightOrderId,omitempty"`
309
310	// InventoryAccountId: ID that DS generates and uses to uniquely
311	// identify the inventory account
312	// that contains the product.
313	InventoryAccountId int64 `json:"inventoryAccountId,omitempty,string"`
314
315	// ProductCountry: The country registered for the Merchant Center feed
316	// that contains the
317	// product. Use an ISO 3166 code to specify a country.
318	ProductCountry string `json:"productCountry,omitempty"`
319
320	// ProductGroupId: DS product group ID.
321	ProductGroupId int64 `json:"productGroupId,omitempty,string"`
322
323	// ProductId: The product ID (SKU).
324	ProductId string `json:"productId,omitempty"`
325
326	// ProductLanguage: The language registered for the Merchant Center feed
327	// that contains the
328	// product. Use an ISO 639 code to specify a language.
329	ProductLanguage string `json:"productLanguage,omitempty"`
330
331	// QuantityMillis: The quantity of this conversion, in millis.
332	QuantityMillis int64 `json:"quantityMillis,omitempty,string"`
333
334	// RevenueMicros: The revenue amount of this `TRANSACTION` conversion,
335	// in micros
336	// (value multiplied by 1000000, no decimal). For example, to specify
337	// a
338	// revenue value of "10"  enter "10000000" (10 million) in your request.
339	RevenueMicros string `json:"revenueMicros,omitempty"`
340
341	// SegmentationId: The numeric segmentation identifier (for example,
342	// DoubleClick Search
343	// Floodlight activity ID).
344	SegmentationId int64 `json:"segmentationId,omitempty,string"`
345
346	// SegmentationName: The friendly segmentation identifier (for example,
347	// DoubleClick Search
348	// Floodlight activity name).
349	SegmentationName string `json:"segmentationName,omitempty"`
350
351	// SegmentationType: The segmentation type of this conversion (for
352	// example,
353	// `FLOODLIGHT`).
354	SegmentationType string `json:"segmentationType,omitempty"`
355
356	// State: The state of the conversion, that is, either `ACTIVE`
357	// or
358	// `REMOVED`. Note: state DELETED is deprecated.
359	State string `json:"state,omitempty"`
360
361	// StoreId: The ID of the local store for which the product was
362	// advertised. Applicable
363	// only when the channel is "local".
364	StoreId string `json:"storeId,omitempty"`
365
366	// Type: The type of the conversion, that is, either `ACTION`
367	// or
368	// `TRANSACTION`. An `ACTION` conversion is an action by
369	// the user that has no monetarily quantifiable value, while
370	// a
371	// `TRANSACTION` conversion is an action that does have a
372	// monetarily quantifiable value. Examples are email list
373	// signups
374	// (`ACTION`) versus ecommerce purchases
375	// (`TRANSACTION`).
376	Type string `json:"type,omitempty"`
377
378	// ForceSendFields is a list of field names (e.g. "AdGroupId") to
379	// unconditionally include in API requests. By default, fields with
380	// empty values are omitted from API requests. However, any non-pointer,
381	// non-interface field appearing in ForceSendFields will be sent to the
382	// server regardless of whether the field is empty or not. This may be
383	// used to include empty fields in Patch requests.
384	ForceSendFields []string `json:"-"`
385
386	// NullFields is a list of field names (e.g. "AdGroupId") to include in
387	// API requests with the JSON null value. By default, fields with empty
388	// values are omitted from API requests. However, any field with an
389	// empty value appearing in NullFields will be sent to the server as
390	// null. It is an error if a field in this list has a non-empty value.
391	// This may be used to include null fields in Patch requests.
392	NullFields []string `json:"-"`
393}
394
395func (s *Conversion) MarshalJSON() ([]byte, error) {
396	type NoMethod Conversion
397	raw := NoMethod(*s)
398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
399}
400
401// ConversionList: A list of conversions.
402type ConversionList struct {
403	// Conversion: The conversions being requested.
404	Conversion []*Conversion `json:"conversion,omitempty"`
405
406	// Kind: Identifies this as a ConversionList resource. Value: the fixed
407	// string
408	// <code>doubleclicksearch#conversionList</code>.
409	Kind string `json:"kind,omitempty"`
410
411	// ServerResponse contains the HTTP response code and headers from the
412	// server.
413	googleapi.ServerResponse `json:"-"`
414
415	// ForceSendFields is a list of field names (e.g. "Conversion") to
416	// unconditionally include in API requests. By default, fields with
417	// empty values are omitted from API requests. However, any non-pointer,
418	// non-interface field appearing in ForceSendFields will be sent to the
419	// server regardless of whether the field is empty or not. This may be
420	// used to include empty fields in Patch requests.
421	ForceSendFields []string `json:"-"`
422
423	// NullFields is a list of field names (e.g. "Conversion") to include in
424	// API requests with the JSON null value. By default, fields with empty
425	// values are omitted from API requests. However, any field with an
426	// empty value appearing in NullFields will be sent to the server as
427	// null. It is an error if a field in this list has a non-empty value.
428	// This may be used to include null fields in Patch requests.
429	NullFields []string `json:"-"`
430}
431
432func (s *ConversionList) MarshalJSON() ([]byte, error) {
433	type NoMethod ConversionList
434	raw := NoMethod(*s)
435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
436}
437
438// CustomDimension: A message containing the custom dimension.
439type CustomDimension struct {
440	// Name: Custom dimension name.
441	Name string `json:"name,omitempty"`
442
443	// Value: Custom dimension value.
444	Value string `json:"value,omitempty"`
445
446	// ForceSendFields is a list of field names (e.g. "Name") to
447	// unconditionally include in API requests. By default, fields with
448	// empty values are omitted from API requests. However, any non-pointer,
449	// non-interface field appearing in ForceSendFields will be sent to the
450	// server regardless of whether the field is empty or not. This may be
451	// used to include empty fields in Patch requests.
452	ForceSendFields []string `json:"-"`
453
454	// NullFields is a list of field names (e.g. "Name") to include in API
455	// requests with the JSON null value. By default, fields with empty
456	// values are omitted from API requests. However, any field with an
457	// empty value appearing in NullFields will be sent to the server as
458	// null. It is an error if a field in this list has a non-empty value.
459	// This may be used to include null fields in Patch requests.
460	NullFields []string `json:"-"`
461}
462
463func (s *CustomDimension) MarshalJSON() ([]byte, error) {
464	type NoMethod CustomDimension
465	raw := NoMethod(*s)
466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
467}
468
469// CustomMetric: A message containing the custom metric.
470type CustomMetric struct {
471	// Name: Custom metric name.
472	Name string `json:"name,omitempty"`
473
474	// Value: Custom metric numeric value.
475	Value float64 `json:"value,omitempty"`
476
477	// ForceSendFields is a list of field names (e.g. "Name") to
478	// unconditionally include in API requests. By default, fields with
479	// empty values are omitted from API requests. However, any non-pointer,
480	// non-interface field appearing in ForceSendFields will be sent to the
481	// server regardless of whether the field is empty or not. This may be
482	// used to include empty fields in Patch requests.
483	ForceSendFields []string `json:"-"`
484
485	// NullFields is a list of field names (e.g. "Name") to include in API
486	// requests with the JSON null value. By default, fields with empty
487	// values are omitted from API requests. However, any field with an
488	// empty value appearing in NullFields will be sent to the server as
489	// null. It is an error if a field in this list has a non-empty value.
490	// This may be used to include null fields in Patch requests.
491	NullFields []string `json:"-"`
492}
493
494func (s *CustomMetric) MarshalJSON() ([]byte, error) {
495	type NoMethod CustomMetric
496	raw := NoMethod(*s)
497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
498}
499
500func (s *CustomMetric) UnmarshalJSON(data []byte) error {
501	type NoMethod CustomMetric
502	var s1 struct {
503		Value gensupport.JSONFloat64 `json:"value"`
504		*NoMethod
505	}
506	s1.NoMethod = (*NoMethod)(s)
507	if err := json.Unmarshal(data, &s1); err != nil {
508		return err
509	}
510	s.Value = float64(s1.Value)
511	return nil
512}
513
514// Report: A DoubleClick Search report. This object contains the report
515// request, some
516// report metadata such as currency code, and the generated report rows
517// or
518// report files.
519type Report struct {
520	// Files: Asynchronous report only. Contains a list of generated report
521	// files once
522	// the report has successfully completed.
523	Files []*ReportFiles `json:"files,omitempty"`
524
525	// Id: Asynchronous report only. Id of the report.
526	Id string `json:"id,omitempty"`
527
528	// IsReportReady: Asynchronous report only. True if and only if the
529	// report has completed
530	// successfully and the report files are ready to be downloaded.
531	IsReportReady bool `json:"isReportReady,omitempty"`
532
533	// Kind: Identifies this as a Report resource. Value: the fixed
534	// string
535	// `doubleclicksearch#report`.
536	Kind string `json:"kind,omitempty"`
537
538	// Request: The request that created the report. Optional fields not
539	// specified in the
540	// original request are filled with default values.
541	Request *ReportRequest `json:"request,omitempty"`
542
543	// RowCount: The number of report rows generated by the report, not
544	// including headers.
545	RowCount int64 `json:"rowCount,omitempty"`
546
547	// Rows: Synchronous report only. Generated report rows.
548	Rows []googleapi.RawMessage `json:"rows,omitempty"`
549
550	// StatisticsCurrencyCode: The currency code of all monetary values
551	// produced in the report, including
552	// values that are set by users (e.g., keyword bid settings) and
553	// metrics
554	// (e.g., cost and revenue). The currency code of a report is determined
555	// by
556	// the `statisticsCurrency` field of the report request.
557	StatisticsCurrencyCode string `json:"statisticsCurrencyCode,omitempty"`
558
559	// StatisticsTimeZone: If all statistics of the report are sourced from
560	// the same time zone, this
561	// would be it. Otherwise the field is unset.
562	StatisticsTimeZone string `json:"statisticsTimeZone,omitempty"`
563
564	// ServerResponse contains the HTTP response code and headers from the
565	// server.
566	googleapi.ServerResponse `json:"-"`
567
568	// ForceSendFields is a list of field names (e.g. "Files") to
569	// unconditionally include in API requests. By default, fields with
570	// empty values are omitted from API requests. However, any non-pointer,
571	// non-interface field appearing in ForceSendFields will be sent to the
572	// server regardless of whether the field is empty or not. This may be
573	// used to include empty fields in Patch requests.
574	ForceSendFields []string `json:"-"`
575
576	// NullFields is a list of field names (e.g. "Files") to include in API
577	// requests with the JSON null value. By default, fields with empty
578	// values are omitted from API requests. However, any field with an
579	// empty value appearing in NullFields will be sent to the server as
580	// null. It is an error if a field in this list has a non-empty value.
581	// This may be used to include null fields in Patch requests.
582	NullFields []string `json:"-"`
583}
584
585func (s *Report) MarshalJSON() ([]byte, error) {
586	type NoMethod Report
587	raw := NoMethod(*s)
588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
589}
590
591type ReportFiles struct {
592	// ByteCount: The size of this report file in bytes.
593	ByteCount int64 `json:"byteCount,omitempty,string"`
594
595	// Url: Use this url to download the report file.
596	Url string `json:"url,omitempty"`
597
598	// ForceSendFields is a list of field names (e.g. "ByteCount") to
599	// unconditionally include in API requests. By default, fields with
600	// empty values are omitted from API requests. However, any non-pointer,
601	// non-interface field appearing in ForceSendFields will be sent to the
602	// server regardless of whether the field is empty or not. This may be
603	// used to include empty fields in Patch requests.
604	ForceSendFields []string `json:"-"`
605
606	// NullFields is a list of field names (e.g. "ByteCount") to include in
607	// API requests with the JSON null value. By default, fields with empty
608	// values are omitted from API requests. However, any field with an
609	// empty value appearing in NullFields will be sent to the server as
610	// null. It is an error if a field in this list has a non-empty value.
611	// This may be used to include null fields in Patch requests.
612	NullFields []string `json:"-"`
613}
614
615func (s *ReportFiles) MarshalJSON() ([]byte, error) {
616	type NoMethod ReportFiles
617	raw := NoMethod(*s)
618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
619}
620
621// ReportApiColumnSpec: A request object used to create a DoubleClick
622// Search report.
623type ReportApiColumnSpec struct {
624	// ColumnName: Name of a DoubleClick Search column to include in the
625	// report.
626	ColumnName string `json:"columnName,omitempty"`
627
628	// CustomDimensionName: Segments a report by a custom dimension. The
629	// report must be scoped to an
630	// advertiser or lower, and the custom dimension must already be set up
631	// in
632	// DoubleClick Search. The custom dimension name, which appears in
633	// DoubleClick
634	// Search, is case sensitive.\
635	// If used in a conversion report, returns the
636	// value of the specified custom dimension for the given conversion, if
637	// set.
638	// This column does not segment the conversion report.
639	CustomDimensionName string `json:"customDimensionName,omitempty"`
640
641	// CustomMetricName: Name of a custom metric to include in the report.
642	// The report must be scoped
643	// to an advertiser or lower, and the custom metric must already be set
644	// up in
645	// DoubleClick Search. The custom metric name, which appears in
646	// DoubleClick
647	// Search, is case sensitive.
648	CustomMetricName string `json:"customMetricName,omitempty"`
649
650	// EndDate: Inclusive day in YYYY-MM-DD format. When provided, this
651	// overrides the
652	// overall time range of the report for this column only. Must be
653	// provided
654	// together with `startDate`.
655	EndDate string `json:"endDate,omitempty"`
656
657	// GroupByColumn: Synchronous report only. Set to `true` to group by
658	// this column.
659	// Defaults to `false`.
660	GroupByColumn bool `json:"groupByColumn,omitempty"`
661
662	// HeaderText: Text used to identify this column in the report output;
663	// defaults to
664	// `columnName` or `savedColumnName` when not specified.
665	// This can be used to prevent collisions between DoubleClick Search
666	// columns
667	// and saved columns with the same name.
668	HeaderText string `json:"headerText,omitempty"`
669
670	// PlatformSource: The platform that is used to provide data for the
671	// custom dimension.
672	// Acceptable values are "floodlight".
673	PlatformSource string `json:"platformSource,omitempty"`
674
675	// ProductReportPerspective: Returns metrics only for a specific type of
676	// product activity. Accepted
677	// values are: <ul> <li>"sold": returns metrics only for products
678	// that were sold</li> <li>"advertised": returns metrics only
679	// for
680	// products that were advertised in a Shopping campaign, and that might
681	// or
682	// might not have been sold</li> </ul>
683	ProductReportPerspective string `json:"productReportPerspective,omitempty"`
684
685	// SavedColumnName: Name of a saved column to include in the report. The
686	// report must be scoped
687	// at advertiser or lower, and this saved column must already be created
688	// in
689	// the DoubleClick Search UI.
690	SavedColumnName string `json:"savedColumnName,omitempty"`
691
692	// StartDate: Inclusive date in YYYY-MM-DD format. When provided, this
693	// overrides the
694	// overall time range of the report for this column only. Must be
695	// provided
696	// together with `endDate`.
697	StartDate string `json:"startDate,omitempty"`
698
699	// ForceSendFields is a list of field names (e.g. "ColumnName") to
700	// unconditionally include in API requests. By default, fields with
701	// empty values are omitted from API requests. However, any non-pointer,
702	// non-interface field appearing in ForceSendFields will be sent to the
703	// server regardless of whether the field is empty or not. This may be
704	// used to include empty fields in Patch requests.
705	ForceSendFields []string `json:"-"`
706
707	// NullFields is a list of field names (e.g. "ColumnName") to include in
708	// API requests with the JSON null value. By default, fields with empty
709	// values are omitted from API requests. However, any field with an
710	// empty value appearing in NullFields will be sent to the server as
711	// null. It is an error if a field in this list has a non-empty value.
712	// This may be used to include null fields in Patch requests.
713	NullFields []string `json:"-"`
714}
715
716func (s *ReportApiColumnSpec) MarshalJSON() ([]byte, error) {
717	type NoMethod ReportApiColumnSpec
718	raw := NoMethod(*s)
719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
720}
721
722// ReportRequest: A request object used to create a DoubleClick Search
723// report.
724type ReportRequest struct {
725	// Columns: The columns to include in the report. This includes both
726	// DoubleClick Search
727	// columns and saved columns. For DoubleClick Search columns, only
728	// the
729	// `columnName` parameter is required. For saved columns only
730	// the
731	// `savedColumnName` parameter is required. Both
732	// `columnName` and `savedColumnName` cannot be set in
733	// the same stanza.\
734	// The maximum number of columns per request is 300.
735	Columns []*ReportApiColumnSpec `json:"columns,omitempty"`
736
737	// DownloadFormat: Format that the report should be returned in.
738	// Currently `csv` or
739	// `tsv` is supported.
740	DownloadFormat string `json:"downloadFormat,omitempty"`
741
742	// Filters: A list of filters to be applied to the report.\
743	// The maximum number of filters per request is 300.
744	Filters []*ReportRequestFilters `json:"filters,omitempty"`
745
746	// IncludeDeletedEntities: Determines if removed entities should be
747	// included in the report. Defaults
748	// to `false`. Deprecated, please use
749	// `includeRemovedEntities` instead.
750	IncludeDeletedEntities bool `json:"includeDeletedEntities,omitempty"`
751
752	// IncludeRemovedEntities: Determines if removed entities should be
753	// included in the report. Defaults
754	// to `false`.
755	IncludeRemovedEntities bool `json:"includeRemovedEntities,omitempty"`
756
757	// MaxRowsPerFile: Asynchronous report only. The maximum number of rows
758	// per report file. A
759	// large report is split into many files based on this field.
760	// Acceptable
761	// values are `1000000` to `100000000`, inclusive.
762	MaxRowsPerFile int64 `json:"maxRowsPerFile,omitempty"`
763
764	// OrderBy: Synchronous report only. A list of columns and directions
765	// defining sorting
766	// to be performed on the report rows.\
767	// The maximum number of orderings per request is 300.
768	OrderBy []*ReportRequestOrderBy `json:"orderBy,omitempty"`
769
770	// ReportScope: The reportScope is a set of IDs that are used to
771	// determine which subset of
772	// entities will be returned in the report. The full lineage of IDs from
773	// the
774	// lowest scoped level desired up through agency is required.
775	ReportScope *ReportRequestReportScope `json:"reportScope,omitempty"`
776
777	// ReportType: Determines the type of rows that are returned in the
778	// report. For example,
779	// if you specify `reportType: keyword`, each row in the report
780	// will contain data about a keyword. See the [Types
781	// of
782	// Reports](/search-ads/v2/report-types/) reference for the columns that
783	// are
784	// available for each type.
785	ReportType string `json:"reportType,omitempty"`
786
787	// RowCount: Synchronous report only. The maximum number of rows to
788	// return; additional
789	// rows are dropped. Acceptable values are `0` to
790	// `10000`, inclusive. Defaults to `10000`.
791	RowCount int64 `json:"rowCount,omitempty"`
792
793	// StartRow: Synchronous report only. Zero-based index of the first row
794	// to return.
795	// Acceptable values are `0` to `50000`, inclusive.
796	// Defaults to `0`.
797	StartRow int64 `json:"startRow,omitempty"`
798
799	// StatisticsCurrency: Specifies the currency in which monetary will be
800	// returned. Possible values
801	// are: `usd`, `agency` (valid if the report is scoped
802	// to agency or lower), `advertiser` (valid if the report is scoped
803	// to * advertiser or lower), or `account` (valid if the report
804	// is
805	// scoped to engine account or lower).
806	StatisticsCurrency string `json:"statisticsCurrency,omitempty"`
807
808	// TimeRange: If metrics are requested in a report, this argument will
809	// be used to
810	// restrict the metrics to a specific time range.
811	TimeRange *ReportRequestTimeRange `json:"timeRange,omitempty"`
812
813	// VerifySingleTimeZone: If `true`, the report would only be created if
814	// all the requested
815	// stat data are sourced from a single timezone. Defaults to
816	// `false`.
817	VerifySingleTimeZone bool `json:"verifySingleTimeZone,omitempty"`
818
819	// ForceSendFields is a list of field names (e.g. "Columns") to
820	// unconditionally include in API requests. By default, fields with
821	// empty values are omitted from API requests. However, any non-pointer,
822	// non-interface field appearing in ForceSendFields will be sent to the
823	// server regardless of whether the field is empty or not. This may be
824	// used to include empty fields in Patch requests.
825	ForceSendFields []string `json:"-"`
826
827	// NullFields is a list of field names (e.g. "Columns") to include in
828	// API requests with the JSON null value. By default, fields with empty
829	// values are omitted from API requests. However, any field with an
830	// empty value appearing in NullFields will be sent to the server as
831	// null. It is an error if a field in this list has a non-empty value.
832	// This may be used to include null fields in Patch requests.
833	NullFields []string `json:"-"`
834}
835
836func (s *ReportRequest) MarshalJSON() ([]byte, error) {
837	type NoMethod ReportRequest
838	raw := NoMethod(*s)
839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
840}
841
842type ReportRequestFilters struct {
843	// Column: Column to perform the filter on. This can be a DoubleClick
844	// Search column
845	// or a saved column.
846	Column *ReportApiColumnSpec `json:"column,omitempty"`
847
848	// Operator: Operator to use in the filter. See the filter reference for
849	// a list of
850	// available operators.
851	Operator string `json:"operator,omitempty"`
852
853	// Values: A list of values to filter the column value against.\
854	// The maximum number of filter values per request is 300.
855	Values []interface{} `json:"values,omitempty"`
856
857	// ForceSendFields is a list of field names (e.g. "Column") to
858	// unconditionally include in API requests. By default, fields with
859	// empty values are omitted from API requests. However, any non-pointer,
860	// non-interface field appearing in ForceSendFields will be sent to the
861	// server regardless of whether the field is empty or not. This may be
862	// used to include empty fields in Patch requests.
863	ForceSendFields []string `json:"-"`
864
865	// NullFields is a list of field names (e.g. "Column") to include in API
866	// requests with the JSON null value. By default, fields with empty
867	// values are omitted from API requests. However, any field with an
868	// empty value appearing in NullFields will be sent to the server as
869	// null. It is an error if a field in this list has a non-empty value.
870	// This may be used to include null fields in Patch requests.
871	NullFields []string `json:"-"`
872}
873
874func (s *ReportRequestFilters) MarshalJSON() ([]byte, error) {
875	type NoMethod ReportRequestFilters
876	raw := NoMethod(*s)
877	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
878}
879
880type ReportRequestOrderBy struct {
881	// Column: Column to perform the sort on. This can be a DoubleClick
882	// Search-defined
883	// column or a saved column.
884	Column *ReportApiColumnSpec `json:"column,omitempty"`
885
886	// SortOrder: The sort direction, which is either `ascending`
887	// or
888	// `descending`.
889	SortOrder string `json:"sortOrder,omitempty"`
890
891	// ForceSendFields is a list of field names (e.g. "Column") to
892	// unconditionally include in API requests. By default, fields with
893	// empty values are omitted from API requests. However, any non-pointer,
894	// non-interface field appearing in ForceSendFields will be sent to the
895	// server regardless of whether the field is empty or not. This may be
896	// used to include empty fields in Patch requests.
897	ForceSendFields []string `json:"-"`
898
899	// NullFields is a list of field names (e.g. "Column") to include in API
900	// requests with the JSON null value. By default, fields with empty
901	// values are omitted from API requests. However, any field with an
902	// empty value appearing in NullFields will be sent to the server as
903	// null. It is an error if a field in this list has a non-empty value.
904	// This may be used to include null fields in Patch requests.
905	NullFields []string `json:"-"`
906}
907
908func (s *ReportRequestOrderBy) MarshalJSON() ([]byte, error) {
909	type NoMethod ReportRequestOrderBy
910	raw := NoMethod(*s)
911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
912}
913
914// ReportRequestReportScope: The reportScope is a set of IDs that are
915// used to determine which subset of
916// entities will be returned in the report. The full lineage of IDs from
917// the
918// lowest scoped level desired up through agency is required.
919type ReportRequestReportScope struct {
920	// AdGroupId: DS ad group ID.
921	AdGroupId int64 `json:"adGroupId,omitempty,string"`
922
923	// AdId: DS ad ID.
924	AdId int64 `json:"adId,omitempty,string"`
925
926	// AdvertiserId: DS advertiser ID.
927	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
928
929	// AgencyId: DS agency ID.
930	AgencyId int64 `json:"agencyId,omitempty,string"`
931
932	// CampaignId: DS campaign ID.
933	CampaignId int64 `json:"campaignId,omitempty,string"`
934
935	// EngineAccountId: DS engine account ID.
936	EngineAccountId int64 `json:"engineAccountId,omitempty,string"`
937
938	// KeywordId: DS keyword ID.
939	KeywordId int64 `json:"keywordId,omitempty,string"`
940
941	// ForceSendFields is a list of field names (e.g. "AdGroupId") to
942	// unconditionally include in API requests. By default, fields with
943	// empty values are omitted from API requests. However, any non-pointer,
944	// non-interface field appearing in ForceSendFields will be sent to the
945	// server regardless of whether the field is empty or not. This may be
946	// used to include empty fields in Patch requests.
947	ForceSendFields []string `json:"-"`
948
949	// NullFields is a list of field names (e.g. "AdGroupId") to include in
950	// API requests with the JSON null value. By default, fields with empty
951	// values are omitted from API requests. However, any field with an
952	// empty value appearing in NullFields will be sent to the server as
953	// null. It is an error if a field in this list has a non-empty value.
954	// This may be used to include null fields in Patch requests.
955	NullFields []string `json:"-"`
956}
957
958func (s *ReportRequestReportScope) MarshalJSON() ([]byte, error) {
959	type NoMethod ReportRequestReportScope
960	raw := NoMethod(*s)
961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
962}
963
964// ReportRequestTimeRange: If metrics are requested in a report, this
965// argument will be used to
966// restrict the metrics to a specific time range.
967type ReportRequestTimeRange struct {
968	// ChangedAttributesSinceTimestamp: Inclusive UTC timestamp in RFC
969	// format, e.g.,
970	// `2013-07-16T10:16:23.555Z`. See additional references on how
971	// changed attribute reports work.
972	ChangedAttributesSinceTimestamp string `json:"changedAttributesSinceTimestamp,omitempty"`
973
974	// ChangedMetricsSinceTimestamp: Inclusive UTC timestamp in RFC format,
975	// e.g.,
976	// `2013-07-16T10:16:23.555Z`. See additional references on how
977	// changed metrics reports work.
978	ChangedMetricsSinceTimestamp string `json:"changedMetricsSinceTimestamp,omitempty"`
979
980	// EndDate: Inclusive date in YYYY-MM-DD format.
981	EndDate string `json:"endDate,omitempty"`
982
983	// StartDate: Inclusive date in YYYY-MM-DD format.
984	StartDate string `json:"startDate,omitempty"`
985
986	// ForceSendFields is a list of field names (e.g.
987	// "ChangedAttributesSinceTimestamp") to unconditionally include in API
988	// requests. By default, fields with empty values are omitted from API
989	// requests. However, any non-pointer, non-interface field appearing in
990	// ForceSendFields will be sent to the server regardless of whether the
991	// field is empty or not. This may be used to include empty fields in
992	// Patch requests.
993	ForceSendFields []string `json:"-"`
994
995	// NullFields is a list of field names (e.g.
996	// "ChangedAttributesSinceTimestamp") to include in API requests with
997	// the JSON null value. By default, fields with empty values are omitted
998	// from API requests. However, any field with an empty value appearing
999	// in NullFields will be sent to the server as null. It is an error if a
1000	// field in this list has a non-empty value. This may be used to include
1001	// null fields in Patch requests.
1002	NullFields []string `json:"-"`
1003}
1004
1005func (s *ReportRequestTimeRange) MarshalJSON() ([]byte, error) {
1006	type NoMethod ReportRequestTimeRange
1007	raw := NoMethod(*s)
1008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1009}
1010
1011// SavedColumn: A saved column
1012type SavedColumn struct {
1013	// Kind: Identifies this as a SavedColumn resource. Value: the fixed
1014	// string
1015	// <code>doubleclicksearch#savedColumn</code>.
1016	Kind string `json:"kind,omitempty"`
1017
1018	// SavedColumnName: The name of the saved column.
1019	SavedColumnName string `json:"savedColumnName,omitempty"`
1020
1021	// Type: The type of data this saved column will produce.
1022	Type string `json:"type,omitempty"`
1023
1024	// ForceSendFields is a list of field names (e.g. "Kind") to
1025	// unconditionally include in API requests. By default, fields with
1026	// empty values are omitted from API requests. However, any non-pointer,
1027	// non-interface field appearing in ForceSendFields will be sent to the
1028	// server regardless of whether the field is empty or not. This may be
1029	// used to include empty fields in Patch requests.
1030	ForceSendFields []string `json:"-"`
1031
1032	// NullFields is a list of field names (e.g. "Kind") to include in API
1033	// requests with the JSON null value. By default, fields with empty
1034	// values are omitted from API requests. However, any field with an
1035	// empty value appearing in NullFields will be sent to the server as
1036	// null. It is an error if a field in this list has a non-empty value.
1037	// This may be used to include null fields in Patch requests.
1038	NullFields []string `json:"-"`
1039}
1040
1041func (s *SavedColumn) MarshalJSON() ([]byte, error) {
1042	type NoMethod SavedColumn
1043	raw := NoMethod(*s)
1044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1045}
1046
1047// SavedColumnList: A list of saved columns. Advertisers create saved
1048// columns to report on
1049// Floodlight activities, Google Analytics goals, or custom KPIs. To
1050// request
1051// reports with saved columns,
1052// you'll need the saved column names that are available from this list.
1053type SavedColumnList struct {
1054	// Items: The saved columns being requested.
1055	Items []*SavedColumn `json:"items,omitempty"`
1056
1057	// Kind: Identifies this as a SavedColumnList resource. Value: the fixed
1058	// string
1059	// <code>doubleclicksearch#savedColumnList</code>.
1060	Kind string `json:"kind,omitempty"`
1061
1062	// ServerResponse contains the HTTP response code and headers from the
1063	// server.
1064	googleapi.ServerResponse `json:"-"`
1065
1066	// ForceSendFields is a list of field names (e.g. "Items") to
1067	// unconditionally include in API requests. By default, fields with
1068	// empty values are omitted from API requests. However, any non-pointer,
1069	// non-interface field appearing in ForceSendFields will be sent to the
1070	// server regardless of whether the field is empty or not. This may be
1071	// used to include empty fields in Patch requests.
1072	ForceSendFields []string `json:"-"`
1073
1074	// NullFields is a list of field names (e.g. "Items") to include in API
1075	// requests with the JSON null value. By default, fields with empty
1076	// values are omitted from API requests. However, any field with an
1077	// empty value appearing in NullFields will be sent to the server as
1078	// null. It is an error if a field in this list has a non-empty value.
1079	// This may be used to include null fields in Patch requests.
1080	NullFields []string `json:"-"`
1081}
1082
1083func (s *SavedColumnList) MarshalJSON() ([]byte, error) {
1084	type NoMethod SavedColumnList
1085	raw := NoMethod(*s)
1086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1087}
1088
1089// UpdateAvailabilityRequest: The request to update availability.
1090type UpdateAvailabilityRequest struct {
1091	// Availabilities: The availabilities being requested.
1092	Availabilities []*Availability `json:"availabilities,omitempty"`
1093
1094	// ForceSendFields is a list of field names (e.g. "Availabilities") to
1095	// unconditionally include in API requests. By default, fields with
1096	// empty values are omitted from API requests. However, any non-pointer,
1097	// non-interface field appearing in ForceSendFields will be sent to the
1098	// server regardless of whether the field is empty or not. This may be
1099	// used to include empty fields in Patch requests.
1100	ForceSendFields []string `json:"-"`
1101
1102	// NullFields is a list of field names (e.g. "Availabilities") to
1103	// include in API requests with the JSON null value. By default, fields
1104	// with empty values are omitted from API requests. However, any field
1105	// with an empty value appearing in NullFields will be sent to the
1106	// server as null. It is an error if a field in this list has a
1107	// non-empty value. This may be used to include null fields in Patch
1108	// requests.
1109	NullFields []string `json:"-"`
1110}
1111
1112func (s *UpdateAvailabilityRequest) MarshalJSON() ([]byte, error) {
1113	type NoMethod UpdateAvailabilityRequest
1114	raw := NoMethod(*s)
1115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1116}
1117
1118// UpdateAvailabilityResponse: The response to a update availability
1119// request.
1120type UpdateAvailabilityResponse struct {
1121	// Availabilities: The availabilities being returned.
1122	Availabilities []*Availability `json:"availabilities,omitempty"`
1123
1124	// ServerResponse contains the HTTP response code and headers from the
1125	// server.
1126	googleapi.ServerResponse `json:"-"`
1127
1128	// ForceSendFields is a list of field names (e.g. "Availabilities") to
1129	// unconditionally include in API requests. By default, fields with
1130	// empty values are omitted from API requests. However, any non-pointer,
1131	// non-interface field appearing in ForceSendFields will be sent to the
1132	// server regardless of whether the field is empty or not. This may be
1133	// used to include empty fields in Patch requests.
1134	ForceSendFields []string `json:"-"`
1135
1136	// NullFields is a list of field names (e.g. "Availabilities") to
1137	// include in API requests with the JSON null value. By default, fields
1138	// with empty values are omitted from API requests. However, any field
1139	// with an empty value appearing in NullFields will be sent to the
1140	// server as null. It is an error if a field in this list has a
1141	// non-empty value. This may be used to include null fields in Patch
1142	// requests.
1143	NullFields []string `json:"-"`
1144}
1145
1146func (s *UpdateAvailabilityResponse) MarshalJSON() ([]byte, error) {
1147	type NoMethod UpdateAvailabilityResponse
1148	raw := NoMethod(*s)
1149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1150}
1151
1152// method id "doubleclicksearch.conversion.get":
1153
1154type ConversionGetCall struct {
1155	s               *Service
1156	agencyId        int64
1157	advertiserId    int64
1158	engineAccountId int64
1159	urlParams_      gensupport.URLParams
1160	ifNoneMatch_    string
1161	ctx_            context.Context
1162	header_         http.Header
1163}
1164
1165// Get: Retrieves a list of conversions from a DoubleClick Search engine
1166// account.
1167func (r *ConversionService) Get(agencyId int64, advertiserId int64, engineAccountId int64, endDate int64, rowCount int64, startDate int64, startRow int64) *ConversionGetCall {
1168	c := &ConversionGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1169	c.agencyId = agencyId
1170	c.advertiserId = advertiserId
1171	c.engineAccountId = engineAccountId
1172	c.urlParams_.Set("endDate", fmt.Sprint(endDate))
1173	c.urlParams_.Set("rowCount", fmt.Sprint(rowCount))
1174	c.urlParams_.Set("startDate", fmt.Sprint(startDate))
1175	c.urlParams_.Set("startRow", fmt.Sprint(startRow))
1176	return c
1177}
1178
1179// AdGroupId sets the optional parameter "adGroupId": Numeric ID of the
1180// ad group.
1181func (c *ConversionGetCall) AdGroupId(adGroupId int64) *ConversionGetCall {
1182	c.urlParams_.Set("adGroupId", fmt.Sprint(adGroupId))
1183	return c
1184}
1185
1186// AdId sets the optional parameter "adId": Numeric ID of the ad.
1187func (c *ConversionGetCall) AdId(adId int64) *ConversionGetCall {
1188	c.urlParams_.Set("adId", fmt.Sprint(adId))
1189	return c
1190}
1191
1192// CampaignId sets the optional parameter "campaignId": Numeric ID of
1193// the campaign.
1194func (c *ConversionGetCall) CampaignId(campaignId int64) *ConversionGetCall {
1195	c.urlParams_.Set("campaignId", fmt.Sprint(campaignId))
1196	return c
1197}
1198
1199// CriterionId sets the optional parameter "criterionId": Numeric ID of
1200// the criterion.
1201func (c *ConversionGetCall) CriterionId(criterionId int64) *ConversionGetCall {
1202	c.urlParams_.Set("criterionId", fmt.Sprint(criterionId))
1203	return c
1204}
1205
1206// Fields allows partial responses to be retrieved. See
1207// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1208// for more information.
1209func (c *ConversionGetCall) Fields(s ...googleapi.Field) *ConversionGetCall {
1210	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1211	return c
1212}
1213
1214// IfNoneMatch sets the optional parameter which makes the operation
1215// fail if the object's ETag matches the given value. This is useful for
1216// getting updates only after the object has changed since the last
1217// request. Use googleapi.IsNotModified to check whether the response
1218// error from Do is the result of In-None-Match.
1219func (c *ConversionGetCall) IfNoneMatch(entityTag string) *ConversionGetCall {
1220	c.ifNoneMatch_ = entityTag
1221	return c
1222}
1223
1224// Context sets the context to be used in this call's Do method. Any
1225// pending HTTP request will be aborted if the provided context is
1226// canceled.
1227func (c *ConversionGetCall) Context(ctx context.Context) *ConversionGetCall {
1228	c.ctx_ = ctx
1229	return c
1230}
1231
1232// Header returns an http.Header that can be modified by the caller to
1233// add HTTP headers to the request.
1234func (c *ConversionGetCall) Header() http.Header {
1235	if c.header_ == nil {
1236		c.header_ = make(http.Header)
1237	}
1238	return c.header_
1239}
1240
1241func (c *ConversionGetCall) doRequest(alt string) (*http.Response, error) {
1242	reqHeaders := make(http.Header)
1243	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
1244	for k, v := range c.header_ {
1245		reqHeaders[k] = v
1246	}
1247	reqHeaders.Set("User-Agent", c.s.userAgent())
1248	if c.ifNoneMatch_ != "" {
1249		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
1250	}
1251	var body io.Reader = nil
1252	c.urlParams_.Set("alt", alt)
1253	c.urlParams_.Set("prettyPrint", "false")
1254	urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/engine/{engineAccountId}/conversion")
1255	urls += "?" + c.urlParams_.Encode()
1256	req, err := http.NewRequest("GET", urls, body)
1257	if err != nil {
1258		return nil, err
1259	}
1260	req.Header = reqHeaders
1261	googleapi.Expand(req.URL, map[string]string{
1262		"agencyId":        strconv.FormatInt(c.agencyId, 10),
1263		"advertiserId":    strconv.FormatInt(c.advertiserId, 10),
1264		"engineAccountId": strconv.FormatInt(c.engineAccountId, 10),
1265	})
1266	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1267}
1268
1269// Do executes the "doubleclicksearch.conversion.get" call.
1270// Exactly one of *ConversionList or error will be non-nil. Any non-2xx
1271// status code is an error. Response headers are in either
1272// *ConversionList.ServerResponse.Header or (if a response was returned
1273// at all) in error.(*googleapi.Error).Header. Use
1274// googleapi.IsNotModified to check whether the returned error was
1275// because http.StatusNotModified was returned.
1276func (c *ConversionGetCall) Do(opts ...googleapi.CallOption) (*ConversionList, error) {
1277	gensupport.SetOptions(c.urlParams_, opts...)
1278	res, err := c.doRequest("json")
1279	if res != nil && res.StatusCode == http.StatusNotModified {
1280		if res.Body != nil {
1281			res.Body.Close()
1282		}
1283		return nil, &googleapi.Error{
1284			Code:   res.StatusCode,
1285			Header: res.Header,
1286		}
1287	}
1288	if err != nil {
1289		return nil, err
1290	}
1291	defer googleapi.CloseBody(res)
1292	if err := googleapi.CheckResponse(res); err != nil {
1293		return nil, err
1294	}
1295	ret := &ConversionList{
1296		ServerResponse: googleapi.ServerResponse{
1297			Header:         res.Header,
1298			HTTPStatusCode: res.StatusCode,
1299		},
1300	}
1301	target := &ret
1302	if err := gensupport.DecodeResponse(target, res); err != nil {
1303		return nil, err
1304	}
1305	return ret, nil
1306	// {
1307	//   "description": "Retrieves a list of conversions from a DoubleClick Search engine account.",
1308	//   "flatPath": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/engine/{engineAccountId}/conversion",
1309	//   "httpMethod": "GET",
1310	//   "id": "doubleclicksearch.conversion.get",
1311	//   "parameterOrder": [
1312	//     "agencyId",
1313	//     "advertiserId",
1314	//     "engineAccountId",
1315	//     "endDate",
1316	//     "rowCount",
1317	//     "startDate",
1318	//     "startRow"
1319	//   ],
1320	//   "parameters": {
1321	//     "adGroupId": {
1322	//       "description": "Numeric ID of the ad group.",
1323	//       "format": "int64",
1324	//       "location": "query",
1325	//       "type": "string"
1326	//     },
1327	//     "adId": {
1328	//       "description": "Numeric ID of the ad.",
1329	//       "format": "int64",
1330	//       "location": "query",
1331	//       "type": "string"
1332	//     },
1333	//     "advertiserId": {
1334	//       "description": "Numeric ID of the advertiser.",
1335	//       "format": "int64",
1336	//       "location": "path",
1337	//       "required": true,
1338	//       "type": "string"
1339	//     },
1340	//     "agencyId": {
1341	//       "description": "Numeric ID of the agency.",
1342	//       "format": "int64",
1343	//       "location": "path",
1344	//       "required": true,
1345	//       "type": "string"
1346	//     },
1347	//     "campaignId": {
1348	//       "description": "Numeric ID of the campaign.",
1349	//       "format": "int64",
1350	//       "location": "query",
1351	//       "type": "string"
1352	//     },
1353	//     "criterionId": {
1354	//       "description": "Numeric ID of the criterion.",
1355	//       "format": "int64",
1356	//       "location": "query",
1357	//       "type": "string"
1358	//     },
1359	//     "endDate": {
1360	//       "description": "Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd.",
1361	//       "format": "int32",
1362	//       "location": "query",
1363	//       "maximum": "99991231",
1364	//       "minimum": "20091101",
1365	//       "required": true,
1366	//       "type": "integer"
1367	//     },
1368	//     "engineAccountId": {
1369	//       "description": "Numeric ID of the engine account.",
1370	//       "format": "int64",
1371	//       "location": "path",
1372	//       "required": true,
1373	//       "type": "string"
1374	//     },
1375	//     "rowCount": {
1376	//       "description": "The number of conversions to return per call.",
1377	//       "format": "int32",
1378	//       "location": "query",
1379	//       "maximum": "1000",
1380	//       "minimum": "1",
1381	//       "required": true,
1382	//       "type": "integer"
1383	//     },
1384	//     "startDate": {
1385	//       "description": "First date (inclusive) on which to retrieve conversions. Format is\nyyyymmdd.",
1386	//       "format": "int32",
1387	//       "location": "query",
1388	//       "maximum": "99991231",
1389	//       "minimum": "20091101",
1390	//       "required": true,
1391	//       "type": "integer"
1392	//     },
1393	//     "startRow": {
1394	//       "description": "The 0-based starting index for retrieving conversions results.",
1395	//       "format": "uint32",
1396	//       "location": "query",
1397	//       "required": true,
1398	//       "type": "integer"
1399	//     }
1400	//   },
1401	//   "path": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/engine/{engineAccountId}/conversion",
1402	//   "response": {
1403	//     "$ref": "ConversionList"
1404	//   },
1405	//   "scopes": [
1406	//     "https://www.googleapis.com/auth/doubleclicksearch"
1407	//   ]
1408	// }
1409
1410}
1411
1412// method id "doubleclicksearch.conversion.insert":
1413
1414type ConversionInsertCall struct {
1415	s              *Service
1416	conversionlist *ConversionList
1417	urlParams_     gensupport.URLParams
1418	ctx_           context.Context
1419	header_        http.Header
1420}
1421
1422// Insert: Inserts a batch of new conversions into DoubleClick Search.
1423func (r *ConversionService) Insert(conversionlist *ConversionList) *ConversionInsertCall {
1424	c := &ConversionInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1425	c.conversionlist = conversionlist
1426	return c
1427}
1428
1429// Fields allows partial responses to be retrieved. See
1430// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1431// for more information.
1432func (c *ConversionInsertCall) Fields(s ...googleapi.Field) *ConversionInsertCall {
1433	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1434	return c
1435}
1436
1437// Context sets the context to be used in this call's Do method. Any
1438// pending HTTP request will be aborted if the provided context is
1439// canceled.
1440func (c *ConversionInsertCall) Context(ctx context.Context) *ConversionInsertCall {
1441	c.ctx_ = ctx
1442	return c
1443}
1444
1445// Header returns an http.Header that can be modified by the caller to
1446// add HTTP headers to the request.
1447func (c *ConversionInsertCall) Header() http.Header {
1448	if c.header_ == nil {
1449		c.header_ = make(http.Header)
1450	}
1451	return c.header_
1452}
1453
1454func (c *ConversionInsertCall) doRequest(alt string) (*http.Response, error) {
1455	reqHeaders := make(http.Header)
1456	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
1457	for k, v := range c.header_ {
1458		reqHeaders[k] = v
1459	}
1460	reqHeaders.Set("User-Agent", c.s.userAgent())
1461	var body io.Reader = nil
1462	body, err := googleapi.WithoutDataWrapper.JSONReader(c.conversionlist)
1463	if err != nil {
1464		return nil, err
1465	}
1466	reqHeaders.Set("Content-Type", "application/json")
1467	c.urlParams_.Set("alt", alt)
1468	c.urlParams_.Set("prettyPrint", "false")
1469	urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/conversion")
1470	urls += "?" + c.urlParams_.Encode()
1471	req, err := http.NewRequest("POST", urls, body)
1472	if err != nil {
1473		return nil, err
1474	}
1475	req.Header = reqHeaders
1476	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1477}
1478
1479// Do executes the "doubleclicksearch.conversion.insert" call.
1480// Exactly one of *ConversionList or error will be non-nil. Any non-2xx
1481// status code is an error. Response headers are in either
1482// *ConversionList.ServerResponse.Header or (if a response was returned
1483// at all) in error.(*googleapi.Error).Header. Use
1484// googleapi.IsNotModified to check whether the returned error was
1485// because http.StatusNotModified was returned.
1486func (c *ConversionInsertCall) Do(opts ...googleapi.CallOption) (*ConversionList, error) {
1487	gensupport.SetOptions(c.urlParams_, opts...)
1488	res, err := c.doRequest("json")
1489	if res != nil && res.StatusCode == http.StatusNotModified {
1490		if res.Body != nil {
1491			res.Body.Close()
1492		}
1493		return nil, &googleapi.Error{
1494			Code:   res.StatusCode,
1495			Header: res.Header,
1496		}
1497	}
1498	if err != nil {
1499		return nil, err
1500	}
1501	defer googleapi.CloseBody(res)
1502	if err := googleapi.CheckResponse(res); err != nil {
1503		return nil, err
1504	}
1505	ret := &ConversionList{
1506		ServerResponse: googleapi.ServerResponse{
1507			Header:         res.Header,
1508			HTTPStatusCode: res.StatusCode,
1509		},
1510	}
1511	target := &ret
1512	if err := gensupport.DecodeResponse(target, res); err != nil {
1513		return nil, err
1514	}
1515	return ret, nil
1516	// {
1517	//   "description": "Inserts a batch of new conversions into DoubleClick Search.",
1518	//   "flatPath": "doubleclicksearch/v2/conversion",
1519	//   "httpMethod": "POST",
1520	//   "id": "doubleclicksearch.conversion.insert",
1521	//   "parameterOrder": [],
1522	//   "parameters": {},
1523	//   "path": "doubleclicksearch/v2/conversion",
1524	//   "request": {
1525	//     "$ref": "ConversionList"
1526	//   },
1527	//   "response": {
1528	//     "$ref": "ConversionList"
1529	//   },
1530	//   "scopes": [
1531	//     "https://www.googleapis.com/auth/doubleclicksearch"
1532	//   ]
1533	// }
1534
1535}
1536
1537// method id "doubleclicksearch.conversion.update":
1538
1539type ConversionUpdateCall struct {
1540	s              *Service
1541	conversionlist *ConversionList
1542	urlParams_     gensupport.URLParams
1543	ctx_           context.Context
1544	header_        http.Header
1545}
1546
1547// Update: Updates a batch of conversions in DoubleClick Search.
1548func (r *ConversionService) Update(conversionlist *ConversionList) *ConversionUpdateCall {
1549	c := &ConversionUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1550	c.conversionlist = conversionlist
1551	return c
1552}
1553
1554// Fields allows partial responses to be retrieved. See
1555// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1556// for more information.
1557func (c *ConversionUpdateCall) Fields(s ...googleapi.Field) *ConversionUpdateCall {
1558	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1559	return c
1560}
1561
1562// Context sets the context to be used in this call's Do method. Any
1563// pending HTTP request will be aborted if the provided context is
1564// canceled.
1565func (c *ConversionUpdateCall) Context(ctx context.Context) *ConversionUpdateCall {
1566	c.ctx_ = ctx
1567	return c
1568}
1569
1570// Header returns an http.Header that can be modified by the caller to
1571// add HTTP headers to the request.
1572func (c *ConversionUpdateCall) Header() http.Header {
1573	if c.header_ == nil {
1574		c.header_ = make(http.Header)
1575	}
1576	return c.header_
1577}
1578
1579func (c *ConversionUpdateCall) doRequest(alt string) (*http.Response, error) {
1580	reqHeaders := make(http.Header)
1581	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
1582	for k, v := range c.header_ {
1583		reqHeaders[k] = v
1584	}
1585	reqHeaders.Set("User-Agent", c.s.userAgent())
1586	var body io.Reader = nil
1587	body, err := googleapi.WithoutDataWrapper.JSONReader(c.conversionlist)
1588	if err != nil {
1589		return nil, err
1590	}
1591	reqHeaders.Set("Content-Type", "application/json")
1592	c.urlParams_.Set("alt", alt)
1593	c.urlParams_.Set("prettyPrint", "false")
1594	urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/conversion")
1595	urls += "?" + c.urlParams_.Encode()
1596	req, err := http.NewRequest("PUT", urls, body)
1597	if err != nil {
1598		return nil, err
1599	}
1600	req.Header = reqHeaders
1601	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1602}
1603
1604// Do executes the "doubleclicksearch.conversion.update" call.
1605// Exactly one of *ConversionList or error will be non-nil. Any non-2xx
1606// status code is an error. Response headers are in either
1607// *ConversionList.ServerResponse.Header or (if a response was returned
1608// at all) in error.(*googleapi.Error).Header. Use
1609// googleapi.IsNotModified to check whether the returned error was
1610// because http.StatusNotModified was returned.
1611func (c *ConversionUpdateCall) Do(opts ...googleapi.CallOption) (*ConversionList, error) {
1612	gensupport.SetOptions(c.urlParams_, opts...)
1613	res, err := c.doRequest("json")
1614	if res != nil && res.StatusCode == http.StatusNotModified {
1615		if res.Body != nil {
1616			res.Body.Close()
1617		}
1618		return nil, &googleapi.Error{
1619			Code:   res.StatusCode,
1620			Header: res.Header,
1621		}
1622	}
1623	if err != nil {
1624		return nil, err
1625	}
1626	defer googleapi.CloseBody(res)
1627	if err := googleapi.CheckResponse(res); err != nil {
1628		return nil, err
1629	}
1630	ret := &ConversionList{
1631		ServerResponse: googleapi.ServerResponse{
1632			Header:         res.Header,
1633			HTTPStatusCode: res.StatusCode,
1634		},
1635	}
1636	target := &ret
1637	if err := gensupport.DecodeResponse(target, res); err != nil {
1638		return nil, err
1639	}
1640	return ret, nil
1641	// {
1642	//   "description": "Updates a batch of conversions in DoubleClick Search.",
1643	//   "flatPath": "doubleclicksearch/v2/conversion",
1644	//   "httpMethod": "PUT",
1645	//   "id": "doubleclicksearch.conversion.update",
1646	//   "parameterOrder": [],
1647	//   "parameters": {},
1648	//   "path": "doubleclicksearch/v2/conversion",
1649	//   "request": {
1650	//     "$ref": "ConversionList"
1651	//   },
1652	//   "response": {
1653	//     "$ref": "ConversionList"
1654	//   },
1655	//   "scopes": [
1656	//     "https://www.googleapis.com/auth/doubleclicksearch"
1657	//   ]
1658	// }
1659
1660}
1661
1662// method id "doubleclicksearch.conversion.updateAvailability":
1663
1664type ConversionUpdateAvailabilityCall struct {
1665	s                         *Service
1666	updateavailabilityrequest *UpdateAvailabilityRequest
1667	urlParams_                gensupport.URLParams
1668	ctx_                      context.Context
1669	header_                   http.Header
1670}
1671
1672// UpdateAvailability: Updates the availabilities of a batch of
1673// floodlight activities in
1674// DoubleClick Search.
1675func (r *ConversionService) UpdateAvailability(updateavailabilityrequest *UpdateAvailabilityRequest) *ConversionUpdateAvailabilityCall {
1676	c := &ConversionUpdateAvailabilityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1677	c.updateavailabilityrequest = updateavailabilityrequest
1678	return c
1679}
1680
1681// Fields allows partial responses to be retrieved. See
1682// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1683// for more information.
1684func (c *ConversionUpdateAvailabilityCall) Fields(s ...googleapi.Field) *ConversionUpdateAvailabilityCall {
1685	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1686	return c
1687}
1688
1689// Context sets the context to be used in this call's Do method. Any
1690// pending HTTP request will be aborted if the provided context is
1691// canceled.
1692func (c *ConversionUpdateAvailabilityCall) Context(ctx context.Context) *ConversionUpdateAvailabilityCall {
1693	c.ctx_ = ctx
1694	return c
1695}
1696
1697// Header returns an http.Header that can be modified by the caller to
1698// add HTTP headers to the request.
1699func (c *ConversionUpdateAvailabilityCall) Header() http.Header {
1700	if c.header_ == nil {
1701		c.header_ = make(http.Header)
1702	}
1703	return c.header_
1704}
1705
1706func (c *ConversionUpdateAvailabilityCall) doRequest(alt string) (*http.Response, error) {
1707	reqHeaders := make(http.Header)
1708	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
1709	for k, v := range c.header_ {
1710		reqHeaders[k] = v
1711	}
1712	reqHeaders.Set("User-Agent", c.s.userAgent())
1713	var body io.Reader = nil
1714	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updateavailabilityrequest)
1715	if err != nil {
1716		return nil, err
1717	}
1718	reqHeaders.Set("Content-Type", "application/json")
1719	c.urlParams_.Set("alt", alt)
1720	c.urlParams_.Set("prettyPrint", "false")
1721	urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/conversion/updateAvailability")
1722	urls += "?" + c.urlParams_.Encode()
1723	req, err := http.NewRequest("POST", urls, body)
1724	if err != nil {
1725		return nil, err
1726	}
1727	req.Header = reqHeaders
1728	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1729}
1730
1731// Do executes the "doubleclicksearch.conversion.updateAvailability" call.
1732// Exactly one of *UpdateAvailabilityResponse or error will be non-nil.
1733// Any non-2xx status code is an error. Response headers are in either
1734// *UpdateAvailabilityResponse.ServerResponse.Header or (if a response
1735// was returned at all) in error.(*googleapi.Error).Header. Use
1736// googleapi.IsNotModified to check whether the returned error was
1737// because http.StatusNotModified was returned.
1738func (c *ConversionUpdateAvailabilityCall) Do(opts ...googleapi.CallOption) (*UpdateAvailabilityResponse, error) {
1739	gensupport.SetOptions(c.urlParams_, opts...)
1740	res, err := c.doRequest("json")
1741	if res != nil && res.StatusCode == http.StatusNotModified {
1742		if res.Body != nil {
1743			res.Body.Close()
1744		}
1745		return nil, &googleapi.Error{
1746			Code:   res.StatusCode,
1747			Header: res.Header,
1748		}
1749	}
1750	if err != nil {
1751		return nil, err
1752	}
1753	defer googleapi.CloseBody(res)
1754	if err := googleapi.CheckResponse(res); err != nil {
1755		return nil, err
1756	}
1757	ret := &UpdateAvailabilityResponse{
1758		ServerResponse: googleapi.ServerResponse{
1759			Header:         res.Header,
1760			HTTPStatusCode: res.StatusCode,
1761		},
1762	}
1763	target := &ret
1764	if err := gensupport.DecodeResponse(target, res); err != nil {
1765		return nil, err
1766	}
1767	return ret, nil
1768	// {
1769	//   "description": "Updates the availabilities of a batch of floodlight activities in\nDoubleClick Search.",
1770	//   "flatPath": "doubleclicksearch/v2/conversion/updateAvailability",
1771	//   "httpMethod": "POST",
1772	//   "id": "doubleclicksearch.conversion.updateAvailability",
1773	//   "parameterOrder": [],
1774	//   "parameters": {},
1775	//   "path": "doubleclicksearch/v2/conversion/updateAvailability",
1776	//   "request": {
1777	//     "$ref": "UpdateAvailabilityRequest"
1778	//   },
1779	//   "response": {
1780	//     "$ref": "UpdateAvailabilityResponse"
1781	//   },
1782	//   "scopes": [
1783	//     "https://www.googleapis.com/auth/doubleclicksearch"
1784	//   ]
1785	// }
1786
1787}
1788
1789// method id "doubleclicksearch.reports.generate":
1790
1791type ReportsGenerateCall struct {
1792	s             *Service
1793	reportrequest *ReportRequest
1794	urlParams_    gensupport.URLParams
1795	ctx_          context.Context
1796	header_       http.Header
1797}
1798
1799// Generate: Generates and returns a report immediately.
1800func (r *ReportsService) Generate(reportrequest *ReportRequest) *ReportsGenerateCall {
1801	c := &ReportsGenerateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1802	c.reportrequest = reportrequest
1803	return c
1804}
1805
1806// Fields allows partial responses to be retrieved. See
1807// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1808// for more information.
1809func (c *ReportsGenerateCall) Fields(s ...googleapi.Field) *ReportsGenerateCall {
1810	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1811	return c
1812}
1813
1814// Context sets the context to be used in this call's Do method. Any
1815// pending HTTP request will be aborted if the provided context is
1816// canceled.
1817func (c *ReportsGenerateCall) Context(ctx context.Context) *ReportsGenerateCall {
1818	c.ctx_ = ctx
1819	return c
1820}
1821
1822// Header returns an http.Header that can be modified by the caller to
1823// add HTTP headers to the request.
1824func (c *ReportsGenerateCall) Header() http.Header {
1825	if c.header_ == nil {
1826		c.header_ = make(http.Header)
1827	}
1828	return c.header_
1829}
1830
1831func (c *ReportsGenerateCall) doRequest(alt string) (*http.Response, error) {
1832	reqHeaders := make(http.Header)
1833	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
1834	for k, v := range c.header_ {
1835		reqHeaders[k] = v
1836	}
1837	reqHeaders.Set("User-Agent", c.s.userAgent())
1838	var body io.Reader = nil
1839	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reportrequest)
1840	if err != nil {
1841		return nil, err
1842	}
1843	reqHeaders.Set("Content-Type", "application/json")
1844	c.urlParams_.Set("alt", alt)
1845	c.urlParams_.Set("prettyPrint", "false")
1846	urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/reports/generate")
1847	urls += "?" + c.urlParams_.Encode()
1848	req, err := http.NewRequest("POST", urls, body)
1849	if err != nil {
1850		return nil, err
1851	}
1852	req.Header = reqHeaders
1853	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1854}
1855
1856// Do executes the "doubleclicksearch.reports.generate" call.
1857// Exactly one of *Report or error will be non-nil. Any non-2xx status
1858// code is an error. Response headers are in either
1859// *Report.ServerResponse.Header or (if a response was returned at all)
1860// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
1861// check whether the returned error was because http.StatusNotModified
1862// was returned.
1863func (c *ReportsGenerateCall) Do(opts ...googleapi.CallOption) (*Report, error) {
1864	gensupport.SetOptions(c.urlParams_, opts...)
1865	res, err := c.doRequest("json")
1866	if res != nil && res.StatusCode == http.StatusNotModified {
1867		if res.Body != nil {
1868			res.Body.Close()
1869		}
1870		return nil, &googleapi.Error{
1871			Code:   res.StatusCode,
1872			Header: res.Header,
1873		}
1874	}
1875	if err != nil {
1876		return nil, err
1877	}
1878	defer googleapi.CloseBody(res)
1879	if err := googleapi.CheckResponse(res); err != nil {
1880		return nil, err
1881	}
1882	ret := &Report{
1883		ServerResponse: googleapi.ServerResponse{
1884			Header:         res.Header,
1885			HTTPStatusCode: res.StatusCode,
1886		},
1887	}
1888	target := &ret
1889	if err := gensupport.DecodeResponse(target, res); err != nil {
1890		return nil, err
1891	}
1892	return ret, nil
1893	// {
1894	//   "description": "Generates and returns a report immediately.",
1895	//   "flatPath": "doubleclicksearch/v2/reports/generate",
1896	//   "httpMethod": "POST",
1897	//   "id": "doubleclicksearch.reports.generate",
1898	//   "parameterOrder": [],
1899	//   "parameters": {},
1900	//   "path": "doubleclicksearch/v2/reports/generate",
1901	//   "request": {
1902	//     "$ref": "ReportRequest"
1903	//   },
1904	//   "response": {
1905	//     "$ref": "Report"
1906	//   },
1907	//   "scopes": [
1908	//     "https://www.googleapis.com/auth/doubleclicksearch"
1909	//   ]
1910	// }
1911
1912}
1913
1914// method id "doubleclicksearch.reports.get":
1915
1916type ReportsGetCall struct {
1917	s            *Service
1918	reportId     string
1919	urlParams_   gensupport.URLParams
1920	ifNoneMatch_ string
1921	ctx_         context.Context
1922	header_      http.Header
1923}
1924
1925// Get: Polls for the status of a report request.
1926func (r *ReportsService) Get(reportId string) *ReportsGetCall {
1927	c := &ReportsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1928	c.reportId = reportId
1929	return c
1930}
1931
1932// Fields allows partial responses to be retrieved. See
1933// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1934// for more information.
1935func (c *ReportsGetCall) Fields(s ...googleapi.Field) *ReportsGetCall {
1936	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1937	return c
1938}
1939
1940// IfNoneMatch sets the optional parameter which makes the operation
1941// fail if the object's ETag matches the given value. This is useful for
1942// getting updates only after the object has changed since the last
1943// request. Use googleapi.IsNotModified to check whether the response
1944// error from Do is the result of In-None-Match.
1945func (c *ReportsGetCall) IfNoneMatch(entityTag string) *ReportsGetCall {
1946	c.ifNoneMatch_ = entityTag
1947	return c
1948}
1949
1950// Context sets the context to be used in this call's Do method. Any
1951// pending HTTP request will be aborted if the provided context is
1952// canceled.
1953func (c *ReportsGetCall) Context(ctx context.Context) *ReportsGetCall {
1954	c.ctx_ = ctx
1955	return c
1956}
1957
1958// Header returns an http.Header that can be modified by the caller to
1959// add HTTP headers to the request.
1960func (c *ReportsGetCall) Header() http.Header {
1961	if c.header_ == nil {
1962		c.header_ = make(http.Header)
1963	}
1964	return c.header_
1965}
1966
1967func (c *ReportsGetCall) doRequest(alt string) (*http.Response, error) {
1968	reqHeaders := make(http.Header)
1969	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
1970	for k, v := range c.header_ {
1971		reqHeaders[k] = v
1972	}
1973	reqHeaders.Set("User-Agent", c.s.userAgent())
1974	if c.ifNoneMatch_ != "" {
1975		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
1976	}
1977	var body io.Reader = nil
1978	c.urlParams_.Set("alt", alt)
1979	c.urlParams_.Set("prettyPrint", "false")
1980	urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/reports/{reportId}")
1981	urls += "?" + c.urlParams_.Encode()
1982	req, err := http.NewRequest("GET", urls, body)
1983	if err != nil {
1984		return nil, err
1985	}
1986	req.Header = reqHeaders
1987	googleapi.Expand(req.URL, map[string]string{
1988		"reportId": c.reportId,
1989	})
1990	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1991}
1992
1993// Do executes the "doubleclicksearch.reports.get" call.
1994// Exactly one of *Report or error will be non-nil. Any non-2xx status
1995// code is an error. Response headers are in either
1996// *Report.ServerResponse.Header or (if a response was returned at all)
1997// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
1998// check whether the returned error was because http.StatusNotModified
1999// was returned.
2000func (c *ReportsGetCall) Do(opts ...googleapi.CallOption) (*Report, error) {
2001	gensupport.SetOptions(c.urlParams_, opts...)
2002	res, err := c.doRequest("json")
2003	if res != nil && res.StatusCode == http.StatusNotModified {
2004		if res.Body != nil {
2005			res.Body.Close()
2006		}
2007		return nil, &googleapi.Error{
2008			Code:   res.StatusCode,
2009			Header: res.Header,
2010		}
2011	}
2012	if err != nil {
2013		return nil, err
2014	}
2015	defer googleapi.CloseBody(res)
2016	if err := googleapi.CheckResponse(res); err != nil {
2017		return nil, err
2018	}
2019	ret := &Report{
2020		ServerResponse: googleapi.ServerResponse{
2021			Header:         res.Header,
2022			HTTPStatusCode: res.StatusCode,
2023		},
2024	}
2025	target := &ret
2026	if err := gensupport.DecodeResponse(target, res); err != nil {
2027		return nil, err
2028	}
2029	return ret, nil
2030	// {
2031	//   "description": "Polls for the status of a report request.",
2032	//   "flatPath": "doubleclicksearch/v2/reports/{reportId}",
2033	//   "httpMethod": "GET",
2034	//   "id": "doubleclicksearch.reports.get",
2035	//   "parameterOrder": [
2036	//     "reportId"
2037	//   ],
2038	//   "parameters": {
2039	//     "reportId": {
2040	//       "description": "ID of the report request being polled.",
2041	//       "location": "path",
2042	//       "required": true,
2043	//       "type": "string"
2044	//     }
2045	//   },
2046	//   "path": "doubleclicksearch/v2/reports/{reportId}",
2047	//   "response": {
2048	//     "$ref": "Report"
2049	//   },
2050	//   "scopes": [
2051	//     "https://www.googleapis.com/auth/doubleclicksearch"
2052	//   ]
2053	// }
2054
2055}
2056
2057// method id "doubleclicksearch.reports.getFile":
2058
2059type ReportsGetFileCall struct {
2060	s              *Service
2061	reportId       string
2062	reportFragment int64
2063	urlParams_     gensupport.URLParams
2064	ifNoneMatch_   string
2065	ctx_           context.Context
2066	header_        http.Header
2067}
2068
2069// GetFile: Downloads a report file encoded in UTF-8.
2070func (r *ReportsService) GetFile(reportId string, reportFragment int64) *ReportsGetFileCall {
2071	c := &ReportsGetFileCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2072	c.reportId = reportId
2073	c.reportFragment = reportFragment
2074	return c
2075}
2076
2077// Fields allows partial responses to be retrieved. See
2078// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2079// for more information.
2080func (c *ReportsGetFileCall) Fields(s ...googleapi.Field) *ReportsGetFileCall {
2081	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2082	return c
2083}
2084
2085// IfNoneMatch sets the optional parameter which makes the operation
2086// fail if the object's ETag matches the given value. This is useful for
2087// getting updates only after the object has changed since the last
2088// request. Use googleapi.IsNotModified to check whether the response
2089// error from Do is the result of In-None-Match.
2090func (c *ReportsGetFileCall) IfNoneMatch(entityTag string) *ReportsGetFileCall {
2091	c.ifNoneMatch_ = entityTag
2092	return c
2093}
2094
2095// Context sets the context to be used in this call's Do and Download
2096// methods. Any pending HTTP request will be aborted if the provided
2097// context is canceled.
2098func (c *ReportsGetFileCall) Context(ctx context.Context) *ReportsGetFileCall {
2099	c.ctx_ = ctx
2100	return c
2101}
2102
2103// Header returns an http.Header that can be modified by the caller to
2104// add HTTP headers to the request.
2105func (c *ReportsGetFileCall) Header() http.Header {
2106	if c.header_ == nil {
2107		c.header_ = make(http.Header)
2108	}
2109	return c.header_
2110}
2111
2112func (c *ReportsGetFileCall) doRequest(alt string) (*http.Response, error) {
2113	reqHeaders := make(http.Header)
2114	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
2115	for k, v := range c.header_ {
2116		reqHeaders[k] = v
2117	}
2118	reqHeaders.Set("User-Agent", c.s.userAgent())
2119	if c.ifNoneMatch_ != "" {
2120		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2121	}
2122	var body io.Reader = nil
2123	c.urlParams_.Set("alt", alt)
2124	c.urlParams_.Set("prettyPrint", "false")
2125	urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/reports/{reportId}/files/{reportFragment}")
2126	urls += "?" + c.urlParams_.Encode()
2127	req, err := http.NewRequest("GET", urls, body)
2128	if err != nil {
2129		return nil, err
2130	}
2131	req.Header = reqHeaders
2132	googleapi.Expand(req.URL, map[string]string{
2133		"reportId":       c.reportId,
2134		"reportFragment": strconv.FormatInt(c.reportFragment, 10),
2135	})
2136	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2137}
2138
2139// Download fetches the API endpoint's "media" value, instead of the normal
2140// API response value. If the returned error is nil, the Response is guaranteed to
2141// have a 2xx status code. Callers must close the Response.Body as usual.
2142func (c *ReportsGetFileCall) Download(opts ...googleapi.CallOption) (*http.Response, error) {
2143	gensupport.SetOptions(c.urlParams_, opts...)
2144	res, err := c.doRequest("media")
2145	if err != nil {
2146		return nil, err
2147	}
2148	if err := googleapi.CheckMediaResponse(res); err != nil {
2149		res.Body.Close()
2150		return nil, err
2151	}
2152	return res, nil
2153}
2154
2155// Do executes the "doubleclicksearch.reports.getFile" call.
2156func (c *ReportsGetFileCall) Do(opts ...googleapi.CallOption) error {
2157	gensupport.SetOptions(c.urlParams_, opts...)
2158	res, err := c.doRequest("json")
2159	if err != nil {
2160		return err
2161	}
2162	defer googleapi.CloseBody(res)
2163	if err := googleapi.CheckResponse(res); err != nil {
2164		return err
2165	}
2166	return nil
2167	// {
2168	//   "description": "Downloads a report file encoded in UTF-8.",
2169	//   "flatPath": "doubleclicksearch/v2/reports/{reportId}/files/{reportFragment}",
2170	//   "httpMethod": "GET",
2171	//   "id": "doubleclicksearch.reports.getFile",
2172	//   "parameterOrder": [
2173	//     "reportId",
2174	//     "reportFragment"
2175	//   ],
2176	//   "parameters": {
2177	//     "reportFragment": {
2178	//       "description": "The index of the report fragment to download.",
2179	//       "format": "int32",
2180	//       "location": "path",
2181	//       "minimum": "0",
2182	//       "required": true,
2183	//       "type": "integer"
2184	//     },
2185	//     "reportId": {
2186	//       "description": "ID of the report.",
2187	//       "location": "path",
2188	//       "required": true,
2189	//       "type": "string"
2190	//     }
2191	//   },
2192	//   "path": "doubleclicksearch/v2/reports/{reportId}/files/{reportFragment}",
2193	//   "scopes": [
2194	//     "https://www.googleapis.com/auth/doubleclicksearch"
2195	//   ],
2196	//   "supportsMediaDownload": true,
2197	//   "useMediaDownloadService": true
2198	// }
2199
2200}
2201
2202// method id "doubleclicksearch.reports.request":
2203
2204type ReportsRequestCall struct {
2205	s             *Service
2206	reportrequest *ReportRequest
2207	urlParams_    gensupport.URLParams
2208	ctx_          context.Context
2209	header_       http.Header
2210}
2211
2212// Request: Inserts a report request into the reporting system.
2213func (r *ReportsService) Request(reportrequest *ReportRequest) *ReportsRequestCall {
2214	c := &ReportsRequestCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2215	c.reportrequest = reportrequest
2216	return c
2217}
2218
2219// Fields allows partial responses to be retrieved. See
2220// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2221// for more information.
2222func (c *ReportsRequestCall) Fields(s ...googleapi.Field) *ReportsRequestCall {
2223	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2224	return c
2225}
2226
2227// Context sets the context to be used in this call's Do method. Any
2228// pending HTTP request will be aborted if the provided context is
2229// canceled.
2230func (c *ReportsRequestCall) Context(ctx context.Context) *ReportsRequestCall {
2231	c.ctx_ = ctx
2232	return c
2233}
2234
2235// Header returns an http.Header that can be modified by the caller to
2236// add HTTP headers to the request.
2237func (c *ReportsRequestCall) Header() http.Header {
2238	if c.header_ == nil {
2239		c.header_ = make(http.Header)
2240	}
2241	return c.header_
2242}
2243
2244func (c *ReportsRequestCall) doRequest(alt string) (*http.Response, error) {
2245	reqHeaders := make(http.Header)
2246	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
2247	for k, v := range c.header_ {
2248		reqHeaders[k] = v
2249	}
2250	reqHeaders.Set("User-Agent", c.s.userAgent())
2251	var body io.Reader = nil
2252	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reportrequest)
2253	if err != nil {
2254		return nil, err
2255	}
2256	reqHeaders.Set("Content-Type", "application/json")
2257	c.urlParams_.Set("alt", alt)
2258	c.urlParams_.Set("prettyPrint", "false")
2259	urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/reports")
2260	urls += "?" + c.urlParams_.Encode()
2261	req, err := http.NewRequest("POST", urls, body)
2262	if err != nil {
2263		return nil, err
2264	}
2265	req.Header = reqHeaders
2266	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2267}
2268
2269// Do executes the "doubleclicksearch.reports.request" call.
2270// Exactly one of *Report or error will be non-nil. Any non-2xx status
2271// code is an error. Response headers are in either
2272// *Report.ServerResponse.Header or (if a response was returned at all)
2273// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
2274// check whether the returned error was because http.StatusNotModified
2275// was returned.
2276func (c *ReportsRequestCall) Do(opts ...googleapi.CallOption) (*Report, error) {
2277	gensupport.SetOptions(c.urlParams_, opts...)
2278	res, err := c.doRequest("json")
2279	if res != nil && res.StatusCode == http.StatusNotModified {
2280		if res.Body != nil {
2281			res.Body.Close()
2282		}
2283		return nil, &googleapi.Error{
2284			Code:   res.StatusCode,
2285			Header: res.Header,
2286		}
2287	}
2288	if err != nil {
2289		return nil, err
2290	}
2291	defer googleapi.CloseBody(res)
2292	if err := googleapi.CheckResponse(res); err != nil {
2293		return nil, err
2294	}
2295	ret := &Report{
2296		ServerResponse: googleapi.ServerResponse{
2297			Header:         res.Header,
2298			HTTPStatusCode: res.StatusCode,
2299		},
2300	}
2301	target := &ret
2302	if err := gensupport.DecodeResponse(target, res); err != nil {
2303		return nil, err
2304	}
2305	return ret, nil
2306	// {
2307	//   "description": "Inserts a report request into the reporting system.",
2308	//   "flatPath": "doubleclicksearch/v2/reports",
2309	//   "httpMethod": "POST",
2310	//   "id": "doubleclicksearch.reports.request",
2311	//   "parameterOrder": [],
2312	//   "parameters": {},
2313	//   "path": "doubleclicksearch/v2/reports",
2314	//   "request": {
2315	//     "$ref": "ReportRequest"
2316	//   },
2317	//   "response": {
2318	//     "$ref": "Report"
2319	//   },
2320	//   "scopes": [
2321	//     "https://www.googleapis.com/auth/doubleclicksearch"
2322	//   ]
2323	// }
2324
2325}
2326
2327// method id "doubleclicksearch.savedColumns.list":
2328
2329type SavedColumnsListCall struct {
2330	s            *Service
2331	agencyId     int64
2332	advertiserId int64
2333	urlParams_   gensupport.URLParams
2334	ifNoneMatch_ string
2335	ctx_         context.Context
2336	header_      http.Header
2337}
2338
2339// List: Retrieve the list of saved columns for a specified advertiser.
2340func (r *SavedColumnsService) List(agencyId int64, advertiserId int64) *SavedColumnsListCall {
2341	c := &SavedColumnsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2342	c.agencyId = agencyId
2343	c.advertiserId = advertiserId
2344	return c
2345}
2346
2347// Fields allows partial responses to be retrieved. See
2348// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2349// for more information.
2350func (c *SavedColumnsListCall) Fields(s ...googleapi.Field) *SavedColumnsListCall {
2351	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2352	return c
2353}
2354
2355// IfNoneMatch sets the optional parameter which makes the operation
2356// fail if the object's ETag matches the given value. This is useful for
2357// getting updates only after the object has changed since the last
2358// request. Use googleapi.IsNotModified to check whether the response
2359// error from Do is the result of In-None-Match.
2360func (c *SavedColumnsListCall) IfNoneMatch(entityTag string) *SavedColumnsListCall {
2361	c.ifNoneMatch_ = entityTag
2362	return c
2363}
2364
2365// Context sets the context to be used in this call's Do method. Any
2366// pending HTTP request will be aborted if the provided context is
2367// canceled.
2368func (c *SavedColumnsListCall) Context(ctx context.Context) *SavedColumnsListCall {
2369	c.ctx_ = ctx
2370	return c
2371}
2372
2373// Header returns an http.Header that can be modified by the caller to
2374// add HTTP headers to the request.
2375func (c *SavedColumnsListCall) Header() http.Header {
2376	if c.header_ == nil {
2377		c.header_ = make(http.Header)
2378	}
2379	return c.header_
2380}
2381
2382func (c *SavedColumnsListCall) doRequest(alt string) (*http.Response, error) {
2383	reqHeaders := make(http.Header)
2384	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
2385	for k, v := range c.header_ {
2386		reqHeaders[k] = v
2387	}
2388	reqHeaders.Set("User-Agent", c.s.userAgent())
2389	if c.ifNoneMatch_ != "" {
2390		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2391	}
2392	var body io.Reader = nil
2393	c.urlParams_.Set("alt", alt)
2394	c.urlParams_.Set("prettyPrint", "false")
2395	urls := googleapi.ResolveRelative(c.s.BasePath, "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/savedcolumns")
2396	urls += "?" + c.urlParams_.Encode()
2397	req, err := http.NewRequest("GET", urls, body)
2398	if err != nil {
2399		return nil, err
2400	}
2401	req.Header = reqHeaders
2402	googleapi.Expand(req.URL, map[string]string{
2403		"agencyId":     strconv.FormatInt(c.agencyId, 10),
2404		"advertiserId": strconv.FormatInt(c.advertiserId, 10),
2405	})
2406	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2407}
2408
2409// Do executes the "doubleclicksearch.savedColumns.list" call.
2410// Exactly one of *SavedColumnList or error will be non-nil. Any non-2xx
2411// status code is an error. Response headers are in either
2412// *SavedColumnList.ServerResponse.Header or (if a response was returned
2413// at all) in error.(*googleapi.Error).Header. Use
2414// googleapi.IsNotModified to check whether the returned error was
2415// because http.StatusNotModified was returned.
2416func (c *SavedColumnsListCall) Do(opts ...googleapi.CallOption) (*SavedColumnList, error) {
2417	gensupport.SetOptions(c.urlParams_, opts...)
2418	res, err := c.doRequest("json")
2419	if res != nil && res.StatusCode == http.StatusNotModified {
2420		if res.Body != nil {
2421			res.Body.Close()
2422		}
2423		return nil, &googleapi.Error{
2424			Code:   res.StatusCode,
2425			Header: res.Header,
2426		}
2427	}
2428	if err != nil {
2429		return nil, err
2430	}
2431	defer googleapi.CloseBody(res)
2432	if err := googleapi.CheckResponse(res); err != nil {
2433		return nil, err
2434	}
2435	ret := &SavedColumnList{
2436		ServerResponse: googleapi.ServerResponse{
2437			Header:         res.Header,
2438			HTTPStatusCode: res.StatusCode,
2439		},
2440	}
2441	target := &ret
2442	if err := gensupport.DecodeResponse(target, res); err != nil {
2443		return nil, err
2444	}
2445	return ret, nil
2446	// {
2447	//   "description": "Retrieve the list of saved columns for a specified advertiser.",
2448	//   "flatPath": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/savedcolumns",
2449	//   "httpMethod": "GET",
2450	//   "id": "doubleclicksearch.savedColumns.list",
2451	//   "parameterOrder": [
2452	//     "agencyId",
2453	//     "advertiserId"
2454	//   ],
2455	//   "parameters": {
2456	//     "advertiserId": {
2457	//       "description": "DS ID of the advertiser.",
2458	//       "format": "int64",
2459	//       "location": "path",
2460	//       "required": true,
2461	//       "type": "string"
2462	//     },
2463	//     "agencyId": {
2464	//       "description": "DS ID of the agency.",
2465	//       "format": "int64",
2466	//       "location": "path",
2467	//       "required": true,
2468	//       "type": "string"
2469	//     }
2470	//   },
2471	//   "path": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/savedcolumns",
2472	//   "response": {
2473	//     "$ref": "SavedColumnList"
2474	//   },
2475	//   "scopes": [
2476	//     "https://www.googleapis.com/auth/doubleclicksearch"
2477	//   ]
2478	// }
2479
2480}
2481