1// Copyright 2021 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package firebasedynamiclinks provides access to the Firebase Dynamic Links API.
8//
9// For product documentation, see: https://firebase.google.com/docs/dynamic-links/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/firebasedynamiclinks/v1"
16//   ...
17//   ctx := context.Background()
18//   firebasedynamiclinksService, err := firebasedynamiclinks.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//   firebasedynamiclinksService, err := firebasedynamiclinks.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//   firebasedynamiclinksService, err := firebasedynamiclinks.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
36//
37// See https://godoc.org/google.golang.org/api/option/ for details on options.
38package firebasedynamiclinks // import "google.golang.org/api/firebasedynamiclinks/v1"
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 = "firebasedynamiclinks:v1"
75const apiName = "firebasedynamiclinks"
76const apiVersion = "v1"
77const basePath = "https://firebasedynamiclinks.googleapis.com/"
78const mtlsBasePath = "https://firebasedynamiclinks.mtls.googleapis.com/"
79
80// OAuth2 scopes used by this API.
81const (
82	// View and administer all your Firebase data and settings
83	FirebaseScope = "https://www.googleapis.com/auth/firebase"
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/firebase",
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.ManagedShortLinks = NewManagedShortLinksService(s)
120	s.ShortLinks = NewShortLinksService(s)
121	s.V1 = NewV1Service(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	ManagedShortLinks *ManagedShortLinksService
131
132	ShortLinks *ShortLinksService
133
134	V1 *V1Service
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 NewManagedShortLinksService(s *Service) *ManagedShortLinksService {
145	rs := &ManagedShortLinksService{s: s}
146	return rs
147}
148
149type ManagedShortLinksService struct {
150	s *Service
151}
152
153func NewShortLinksService(s *Service) *ShortLinksService {
154	rs := &ShortLinksService{s: s}
155	return rs
156}
157
158type ShortLinksService struct {
159	s *Service
160}
161
162func NewV1Service(s *Service) *V1Service {
163	rs := &V1Service{s: s}
164	return rs
165}
166
167type V1Service struct {
168	s *Service
169}
170
171// AnalyticsInfo: Tracking parameters supported by Dynamic Link.
172type AnalyticsInfo struct {
173	// GooglePlayAnalytics: Google Play Campaign Measurements.
174	GooglePlayAnalytics *GooglePlayAnalytics `json:"googlePlayAnalytics,omitempty"`
175
176	// ItunesConnectAnalytics: iTunes Connect App Analytics.
177	ItunesConnectAnalytics *ITunesConnectAnalytics `json:"itunesConnectAnalytics,omitempty"`
178
179	// ForceSendFields is a list of field names (e.g. "GooglePlayAnalytics")
180	// to unconditionally include in API requests. By default, fields with
181	// empty values are omitted from API requests. However, any non-pointer,
182	// non-interface field appearing in ForceSendFields will be sent to the
183	// server regardless of whether the field is empty or not. This may be
184	// used to include empty fields in Patch requests.
185	ForceSendFields []string `json:"-"`
186
187	// NullFields is a list of field names (e.g. "GooglePlayAnalytics") to
188	// include in API requests with the JSON null value. By default, fields
189	// with empty values are omitted from API requests. However, any field
190	// with an empty value appearing in NullFields will be sent to the
191	// server as null. It is an error if a field in this list has a
192	// non-empty value. This may be used to include null fields in Patch
193	// requests.
194	NullFields []string `json:"-"`
195}
196
197func (s *AnalyticsInfo) MarshalJSON() ([]byte, error) {
198	type NoMethod AnalyticsInfo
199	raw := NoMethod(*s)
200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
201}
202
203// AndroidInfo: Android related attributes to the Dynamic Link.
204type AndroidInfo struct {
205	// AndroidFallbackLink: Link to open on Android if the app is not
206	// installed.
207	AndroidFallbackLink string `json:"androidFallbackLink,omitempty"`
208
209	// AndroidLink: If specified, this overrides the ‘link’ parameter on
210	// Android.
211	AndroidLink string `json:"androidLink,omitempty"`
212
213	// AndroidMinPackageVersionCode: Minimum version code for the Android
214	// app. If the installed app’s version code is lower, then the user is
215	// taken to the Play Store.
216	AndroidMinPackageVersionCode string `json:"androidMinPackageVersionCode,omitempty"`
217
218	// AndroidPackageName: Android package name of the app.
219	AndroidPackageName string `json:"androidPackageName,omitempty"`
220
221	// ForceSendFields is a list of field names (e.g. "AndroidFallbackLink")
222	// to unconditionally include in API requests. By default, fields with
223	// empty values are omitted from API requests. However, any non-pointer,
224	// non-interface field appearing in ForceSendFields will be sent to the
225	// server regardless of whether the field is empty or not. This may be
226	// used to include empty fields in Patch requests.
227	ForceSendFields []string `json:"-"`
228
229	// NullFields is a list of field names (e.g. "AndroidFallbackLink") to
230	// include in API requests with the JSON null value. By default, fields
231	// with empty values are omitted from API requests. However, any field
232	// with an empty value appearing in NullFields will be sent to the
233	// server as null. It is an error if a field in this list has a
234	// non-empty value. This may be used to include null fields in Patch
235	// requests.
236	NullFields []string `json:"-"`
237}
238
239func (s *AndroidInfo) MarshalJSON() ([]byte, error) {
240	type NoMethod AndroidInfo
241	raw := NoMethod(*s)
242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
243}
244
245// CreateManagedShortLinkRequest: Request to create a managed Short
246// Dynamic Link.
247type CreateManagedShortLinkRequest struct {
248	// DynamicLinkInfo: Information about the Dynamic Link to be shortened.
249	// Learn more
250	// (https://firebase.google.com/docs/reference/dynamic-links/link-shortener).
251	DynamicLinkInfo *DynamicLinkInfo `json:"dynamicLinkInfo,omitempty"`
252
253	// LongDynamicLink: Full long Dynamic Link URL with desired query
254	// parameters specified. For example,
255	// "https://sample.app.goo.gl/?link=http://www.google.com&apn=com.sample"
256	// , Learn more
257	// (https://firebase.google.com/docs/reference/dynamic-links/link-shortener).
258	LongDynamicLink string `json:"longDynamicLink,omitempty"`
259
260	// Name: Link name to associate with the link. It's used for marketer to
261	// identify manually-created links in the Firebase console
262	// (https://console.firebase.google.com/). Links must be named to be
263	// tracked.
264	Name string `json:"name,omitempty"`
265
266	// SdkVersion: Google SDK version. Version takes the form
267	// "$major.$minor.$patch"
268	SdkVersion string `json:"sdkVersion,omitempty"`
269
270	// Suffix: Short Dynamic Link suffix. Optional.
271	Suffix *Suffix `json:"suffix,omitempty"`
272
273	// ForceSendFields is a list of field names (e.g. "DynamicLinkInfo") to
274	// unconditionally include in API requests. By default, fields with
275	// empty values are omitted from API requests. However, any non-pointer,
276	// non-interface field appearing in ForceSendFields will be sent to the
277	// server regardless of whether the field is empty or not. This may be
278	// used to include empty fields in Patch requests.
279	ForceSendFields []string `json:"-"`
280
281	// NullFields is a list of field names (e.g. "DynamicLinkInfo") to
282	// include in API requests with the JSON null value. By default, fields
283	// with empty values are omitted from API requests. However, any field
284	// with an empty value appearing in NullFields will be sent to the
285	// server as null. It is an error if a field in this list has a
286	// non-empty value. This may be used to include null fields in Patch
287	// requests.
288	NullFields []string `json:"-"`
289}
290
291func (s *CreateManagedShortLinkRequest) MarshalJSON() ([]byte, error) {
292	type NoMethod CreateManagedShortLinkRequest
293	raw := NoMethod(*s)
294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
295}
296
297// CreateManagedShortLinkResponse: Response to create a short Dynamic
298// Link.
299type CreateManagedShortLinkResponse struct {
300	// ManagedShortLink: Short Dynamic Link value. e.g.
301	// https://abcd.app.goo.gl/wxyz
302	ManagedShortLink *ManagedShortLink `json:"managedShortLink,omitempty"`
303
304	// PreviewLink: Preview link to show the link flow chart. (debug info.)
305	PreviewLink string `json:"previewLink,omitempty"`
306
307	// Warning: Information about potential warnings on link creation.
308	Warning []*DynamicLinkWarning `json:"warning,omitempty"`
309
310	// ServerResponse contains the HTTP response code and headers from the
311	// server.
312	googleapi.ServerResponse `json:"-"`
313
314	// ForceSendFields is a list of field names (e.g. "ManagedShortLink") to
315	// unconditionally include in API requests. By default, fields with
316	// empty values are omitted from API requests. However, any non-pointer,
317	// non-interface field appearing in ForceSendFields will be sent to the
318	// server regardless of whether the field is empty or not. This may be
319	// used to include empty fields in Patch requests.
320	ForceSendFields []string `json:"-"`
321
322	// NullFields is a list of field names (e.g. "ManagedShortLink") to
323	// include in API requests with the JSON null value. By default, fields
324	// with empty values are omitted from API requests. However, any field
325	// with an empty value appearing in NullFields will be sent to the
326	// server as null. It is an error if a field in this list has a
327	// non-empty value. This may be used to include null fields in Patch
328	// requests.
329	NullFields []string `json:"-"`
330}
331
332func (s *CreateManagedShortLinkResponse) MarshalJSON() ([]byte, error) {
333	type NoMethod CreateManagedShortLinkResponse
334	raw := NoMethod(*s)
335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
336}
337
338// CreateShortDynamicLinkRequest: Request to create a short Dynamic
339// Link.
340type CreateShortDynamicLinkRequest struct {
341	// DynamicLinkInfo: Information about the Dynamic Link to be shortened.
342	// Learn more
343	// (https://firebase.google.com/docs/reference/dynamic-links/link-shortener).
344	DynamicLinkInfo *DynamicLinkInfo `json:"dynamicLinkInfo,omitempty"`
345
346	// LongDynamicLink: Full long Dynamic Link URL with desired query
347	// parameters specified. For example,
348	// "https://sample.app.goo.gl/?link=http://www.google.com&apn=com.sample"
349	// , Learn more
350	// (https://firebase.google.com/docs/reference/dynamic-links/link-shortener).
351	LongDynamicLink string `json:"longDynamicLink,omitempty"`
352
353	// SdkVersion: Google SDK version. Version takes the form
354	// "$major.$minor.$patch"
355	SdkVersion string `json:"sdkVersion,omitempty"`
356
357	// Suffix: Short Dynamic Link suffix. Optional.
358	Suffix *Suffix `json:"suffix,omitempty"`
359
360	// ForceSendFields is a list of field names (e.g. "DynamicLinkInfo") to
361	// unconditionally include in API requests. By default, fields with
362	// empty values are omitted from API requests. However, any non-pointer,
363	// non-interface field appearing in ForceSendFields will be sent to the
364	// server regardless of whether the field is empty or not. This may be
365	// used to include empty fields in Patch requests.
366	ForceSendFields []string `json:"-"`
367
368	// NullFields is a list of field names (e.g. "DynamicLinkInfo") to
369	// include in API requests with the JSON null value. By default, fields
370	// with empty values are omitted from API requests. However, any field
371	// with an empty value appearing in NullFields will be sent to the
372	// server as null. It is an error if a field in this list has a
373	// non-empty value. This may be used to include null fields in Patch
374	// requests.
375	NullFields []string `json:"-"`
376}
377
378func (s *CreateShortDynamicLinkRequest) MarshalJSON() ([]byte, error) {
379	type NoMethod CreateShortDynamicLinkRequest
380	raw := NoMethod(*s)
381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
382}
383
384// CreateShortDynamicLinkResponse: Response to create a short Dynamic
385// Link.
386type CreateShortDynamicLinkResponse struct {
387	// PreviewLink: Preview link to show the link flow chart. (debug info.)
388	PreviewLink string `json:"previewLink,omitempty"`
389
390	// ShortLink: Short Dynamic Link value. e.g.
391	// https://abcd.app.goo.gl/wxyz
392	ShortLink string `json:"shortLink,omitempty"`
393
394	// Warning: Information about potential warnings on link creation.
395	Warning []*DynamicLinkWarning `json:"warning,omitempty"`
396
397	// ServerResponse contains the HTTP response code and headers from the
398	// server.
399	googleapi.ServerResponse `json:"-"`
400
401	// ForceSendFields is a list of field names (e.g. "PreviewLink") to
402	// unconditionally include in API requests. By default, fields with
403	// empty values are omitted from API requests. However, any non-pointer,
404	// non-interface field appearing in ForceSendFields will be sent to the
405	// server regardless of whether the field is empty or not. This may be
406	// used to include empty fields in Patch requests.
407	ForceSendFields []string `json:"-"`
408
409	// NullFields is a list of field names (e.g. "PreviewLink") to include
410	// in API requests with the JSON null value. By default, fields with
411	// empty values are omitted from API requests. However, any field with
412	// an empty value appearing in NullFields will be sent to the server as
413	// null. It is an error if a field in this list has a non-empty value.
414	// This may be used to include null fields in Patch requests.
415	NullFields []string `json:"-"`
416}
417
418func (s *CreateShortDynamicLinkResponse) MarshalJSON() ([]byte, error) {
419	type NoMethod CreateShortDynamicLinkResponse
420	raw := NoMethod(*s)
421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
422}
423
424// DesktopInfo: Desktop related attributes to the Dynamic Link.
425type DesktopInfo struct {
426	// DesktopFallbackLink: Link to open on desktop.
427	DesktopFallbackLink string `json:"desktopFallbackLink,omitempty"`
428
429	// ForceSendFields is a list of field names (e.g. "DesktopFallbackLink")
430	// to unconditionally include in API requests. By default, fields with
431	// empty values are omitted from API requests. However, any non-pointer,
432	// non-interface field appearing in ForceSendFields will be sent to the
433	// server regardless of whether the field is empty or not. This may be
434	// used to include empty fields in Patch requests.
435	ForceSendFields []string `json:"-"`
436
437	// NullFields is a list of field names (e.g. "DesktopFallbackLink") to
438	// include in API requests with the JSON null value. By default, fields
439	// with empty values are omitted from API requests. However, any field
440	// with an empty value appearing in NullFields will be sent to the
441	// server as null. It is an error if a field in this list has a
442	// non-empty value. This may be used to include null fields in Patch
443	// requests.
444	NullFields []string `json:"-"`
445}
446
447func (s *DesktopInfo) MarshalJSON() ([]byte, error) {
448	type NoMethod DesktopInfo
449	raw := NoMethod(*s)
450	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
451}
452
453// DeviceInfo: Signals associated with the device making the request.
454type DeviceInfo struct {
455	// DeviceModelName: Device model name.
456	DeviceModelName string `json:"deviceModelName,omitempty"`
457
458	// LanguageCode: Device language code setting.
459	LanguageCode string `json:"languageCode,omitempty"`
460
461	// LanguageCodeFromWebview: Device language code setting obtained by
462	// executing JavaScript code in WebView.
463	LanguageCodeFromWebview string `json:"languageCodeFromWebview,omitempty"`
464
465	// LanguageCodeRaw: Device language code raw setting. iOS does returns
466	// language code in different format than iOS WebView. For example
467	// WebView returns en_US, but iOS returns en-US. Field below will return
468	// raw value returned by iOS.
469	LanguageCodeRaw string `json:"languageCodeRaw,omitempty"`
470
471	// ScreenResolutionHeight: Device display resolution height.
472	ScreenResolutionHeight int64 `json:"screenResolutionHeight,omitempty,string"`
473
474	// ScreenResolutionWidth: Device display resolution width.
475	ScreenResolutionWidth int64 `json:"screenResolutionWidth,omitempty,string"`
476
477	// Timezone: Device timezone setting.
478	Timezone string `json:"timezone,omitempty"`
479
480	// ForceSendFields is a list of field names (e.g. "DeviceModelName") to
481	// unconditionally include in API requests. By default, fields with
482	// empty values are omitted from API requests. However, any non-pointer,
483	// non-interface field appearing in ForceSendFields will be sent to the
484	// server regardless of whether the field is empty or not. This may be
485	// used to include empty fields in Patch requests.
486	ForceSendFields []string `json:"-"`
487
488	// NullFields is a list of field names (e.g. "DeviceModelName") to
489	// include in API requests with the JSON null value. By default, fields
490	// with empty values are omitted from API requests. However, any field
491	// with an empty value appearing in NullFields will be sent to the
492	// server as null. It is an error if a field in this list has a
493	// non-empty value. This may be used to include null fields in Patch
494	// requests.
495	NullFields []string `json:"-"`
496}
497
498func (s *DeviceInfo) MarshalJSON() ([]byte, error) {
499	type NoMethod DeviceInfo
500	raw := NoMethod(*s)
501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
502}
503
504// DynamicLinkEventStat: Dynamic Link event stat.
505type DynamicLinkEventStat struct {
506	// Count: The number of times this event occurred.
507	Count int64 `json:"count,omitempty,string"`
508
509	// Event: Link event.
510	//
511	// Possible values:
512	//   "DYNAMIC_LINK_EVENT_UNSPECIFIED" - Unspecified type.
513	//   "CLICK" - Indicates that an FDL is clicked by users.
514	//   "REDIRECT" - Indicates that an FDL redirects users to fallback
515	// link.
516	//   "APP_INSTALL" - Indicates that an FDL triggers an app install from
517	// Play store, currently it's impossible to get stats from App store.
518	//   "APP_FIRST_OPEN" - Indicates that the app is opened for the first
519	// time after an install triggered by FDLs
520	//   "APP_RE_OPEN" - Indicates that the app is opened via an FDL for
521	// non-first time.
522	Event string `json:"event,omitempty"`
523
524	// Platform: Requested platform.
525	//
526	// Possible values:
527	//   "DYNAMIC_LINK_PLATFORM_UNSPECIFIED" - Unspecified platform.
528	//   "ANDROID" - Represents Android platform. All apps and browsers on
529	// Android are classfied in this category.
530	//   "IOS" - Represents iOS platform. All apps and browsers on iOS are
531	// classfied in this category.
532	//   "DESKTOP" - Represents desktop.
533	//   "OTHER" - Platforms are not categorized as Android/iOS/Destop fall
534	// into here.
535	Platform string `json:"platform,omitempty"`
536
537	// ForceSendFields is a list of field names (e.g. "Count") to
538	// unconditionally include in API requests. By default, fields with
539	// empty values are omitted from API requests. However, any non-pointer,
540	// non-interface field appearing in ForceSendFields will be sent to the
541	// server regardless of whether the field is empty or not. This may be
542	// used to include empty fields in Patch requests.
543	ForceSendFields []string `json:"-"`
544
545	// NullFields is a list of field names (e.g. "Count") to include in API
546	// requests with the JSON null value. By default, fields with empty
547	// values are omitted from API requests. However, any field with an
548	// empty value appearing in NullFields will be sent to the server as
549	// null. It is an error if a field in this list has a non-empty value.
550	// This may be used to include null fields in Patch requests.
551	NullFields []string `json:"-"`
552}
553
554func (s *DynamicLinkEventStat) MarshalJSON() ([]byte, error) {
555	type NoMethod DynamicLinkEventStat
556	raw := NoMethod(*s)
557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
558}
559
560// DynamicLinkInfo: Information about a Dynamic Link.
561type DynamicLinkInfo struct {
562	// AnalyticsInfo: Parameters used for tracking. See all tracking
563	// parameters in the documentation
564	// (https://firebase.google.com/docs/dynamic-links/create-manually).
565	AnalyticsInfo *AnalyticsInfo `json:"analyticsInfo,omitempty"`
566
567	// AndroidInfo: Android related information. See Android related
568	// parameters in the documentation
569	// (https://firebase.google.com/docs/dynamic-links/create-manually).
570	AndroidInfo *AndroidInfo `json:"androidInfo,omitempty"`
571
572	// DesktopInfo: Desktop related information. See desktop related
573	// parameters in the documentation
574	// (https://firebase.google.com/docs/dynamic-links/create-manually).
575	DesktopInfo *DesktopInfo `json:"desktopInfo,omitempty"`
576
577	// DomainUriPrefix: E.g. https://maps.app.goo.gl,
578	// https://maps.page.link, https://g.co/maps More examples can be found
579	// in description of getNormalizedUriPrefix in
580	// j/c/g/firebase/dynamiclinks/uri/DdlDomain.java Will fallback to
581	// dynamic_link_domain is this field is missing
582	DomainUriPrefix string `json:"domainUriPrefix,omitempty"`
583
584	// DynamicLinkDomain: Dynamic Links domain that the project owns, e.g.
585	// abcd.app.goo.gl Learn more
586	// (https://firebase.google.com/docs/dynamic-links/android/receive) on
587	// how to set up Dynamic Link domain associated with your Firebase
588	// project. Required if missing domain_uri_prefix.
589	DynamicLinkDomain string `json:"dynamicLinkDomain,omitempty"`
590
591	// IosInfo: iOS related information. See iOS related parameters in the
592	// documentation
593	// (https://firebase.google.com/docs/dynamic-links/create-manually).
594	IosInfo *IosInfo `json:"iosInfo,omitempty"`
595
596	// Link: The link your app will open, You can specify any URL your app
597	// can handle. This link must be a well-formatted URL, be properly
598	// URL-encoded, and use the HTTP or HTTPS scheme. See 'link' parameters
599	// in the documentation
600	// (https://firebase.google.com/docs/dynamic-links/create-manually).
601	// Required.
602	Link string `json:"link,omitempty"`
603
604	// NavigationInfo: Information of navigation behavior of a Firebase
605	// Dynamic Links.
606	NavigationInfo *NavigationInfo `json:"navigationInfo,omitempty"`
607
608	// SocialMetaTagInfo: Parameters for social meta tag params. Used to set
609	// meta tag data for link previews on social sites.
610	SocialMetaTagInfo *SocialMetaTagInfo `json:"socialMetaTagInfo,omitempty"`
611
612	// ForceSendFields is a list of field names (e.g. "AnalyticsInfo") to
613	// unconditionally include in API requests. By default, fields with
614	// empty values are omitted from API requests. However, any non-pointer,
615	// non-interface field appearing in ForceSendFields will be sent to the
616	// server regardless of whether the field is empty or not. This may be
617	// used to include empty fields in Patch requests.
618	ForceSendFields []string `json:"-"`
619
620	// NullFields is a list of field names (e.g. "AnalyticsInfo") to include
621	// in API requests with the JSON null value. By default, fields with
622	// empty values are omitted from API requests. However, any field with
623	// an empty value appearing in NullFields will be sent to the server as
624	// null. It is an error if a field in this list has a non-empty value.
625	// This may be used to include null fields in Patch requests.
626	NullFields []string `json:"-"`
627}
628
629func (s *DynamicLinkInfo) MarshalJSON() ([]byte, error) {
630	type NoMethod DynamicLinkInfo
631	raw := NoMethod(*s)
632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
633}
634
635// DynamicLinkStats: Analytics stats of a Dynamic Link for a given
636// timeframe.
637type DynamicLinkStats struct {
638	// LinkEventStats: Dynamic Link event stats.
639	LinkEventStats []*DynamicLinkEventStat `json:"linkEventStats,omitempty"`
640
641	// ServerResponse contains the HTTP response code and headers from the
642	// server.
643	googleapi.ServerResponse `json:"-"`
644
645	// ForceSendFields is a list of field names (e.g. "LinkEventStats") to
646	// unconditionally include in API requests. By default, fields with
647	// empty values are omitted from API requests. However, any non-pointer,
648	// non-interface field appearing in ForceSendFields will be sent to the
649	// server regardless of whether the field is empty or not. This may be
650	// used to include empty fields in Patch requests.
651	ForceSendFields []string `json:"-"`
652
653	// NullFields is a list of field names (e.g. "LinkEventStats") to
654	// include in API requests with the JSON null value. By default, fields
655	// with empty values are omitted from API requests. However, any field
656	// with an empty value appearing in NullFields will be sent to the
657	// server as null. It is an error if a field in this list has a
658	// non-empty value. This may be used to include null fields in Patch
659	// requests.
660	NullFields []string `json:"-"`
661}
662
663func (s *DynamicLinkStats) MarshalJSON() ([]byte, error) {
664	type NoMethod DynamicLinkStats
665	raw := NoMethod(*s)
666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
667}
668
669// DynamicLinkWarning: Dynamic Links warning messages.
670type DynamicLinkWarning struct {
671	// WarningCode: The warning code.
672	//
673	// Possible values:
674	//   "CODE_UNSPECIFIED" - Unknown code.
675	//   "NOT_IN_PROJECT_ANDROID_PACKAGE_NAME" - The Android package does
676	// not match any in developer's DevConsole project.
677	//   "NOT_INTEGER_ANDROID_PACKAGE_MIN_VERSION" - The Android minimum
678	// version code has to be a valid integer.
679	//   "UNNECESSARY_ANDROID_PACKAGE_MIN_VERSION" - Android package min
680	// version param is not needed, e.g. when 'apn' is missing.
681	//   "NOT_URI_ANDROID_LINK" - Android link is not a valid URI.
682	//   "UNNECESSARY_ANDROID_LINK" - Android link param is not needed, e.g.
683	// when param 'al' and 'link' have the same value..
684	//   "NOT_URI_ANDROID_FALLBACK_LINK" - Android fallback link is not a
685	// valid URI.
686	//   "BAD_URI_SCHEME_ANDROID_FALLBACK_LINK" - Android fallback link has
687	// an invalid (non http/https) URI scheme.
688	//   "NOT_IN_PROJECT_IOS_BUNDLE_ID" - The iOS bundle ID does not match
689	// any in developer's DevConsole project.
690	//   "NOT_IN_PROJECT_IPAD_BUNDLE_ID" - The iPad bundle ID does not match
691	// any in developer's DevConsole project.
692	//   "UNNECESSARY_IOS_URL_SCHEME" - iOS URL scheme is not needed, e.g.
693	// when 'ibi' are 'ipbi' are all missing.
694	//   "NOT_NUMERIC_IOS_APP_STORE_ID" - iOS app store ID format is
695	// incorrect, e.g. not numeric.
696	//   "UNNECESSARY_IOS_APP_STORE_ID" - iOS app store ID is not needed.
697	//   "NOT_URI_IOS_FALLBACK_LINK" - iOS fallback link is not a valid URI.
698	//   "BAD_URI_SCHEME_IOS_FALLBACK_LINK" - iOS fallback link has an
699	// invalid (non http/https) URI scheme.
700	//   "NOT_URI_IPAD_FALLBACK_LINK" - iPad fallback link is not a valid
701	// URI.
702	//   "BAD_URI_SCHEME_IPAD_FALLBACK_LINK" - iPad fallback link has an
703	// invalid (non http/https) URI scheme.
704	//   "BAD_DEBUG_PARAM" - Debug param format is incorrect.
705	//   "BAD_AD_PARAM" - isAd param format is incorrect.
706	//   "DEPRECATED_PARAM" - Indicates a certain param is deprecated.
707	//   "UNRECOGNIZED_PARAM" - Indicates certain paramater is not
708	// recognized.
709	//   "TOO_LONG_PARAM" - Indicates certain paramater is too long.
710	//   "NOT_URI_SOCIAL_IMAGE_LINK" - Social meta tag image link is not a
711	// valid URI.
712	//   "BAD_URI_SCHEME_SOCIAL_IMAGE_LINK" - Social meta tag image link has
713	// an invalid (non http/https) URI scheme.
714	//   "NOT_URI_SOCIAL_URL"
715	//   "BAD_URI_SCHEME_SOCIAL_URL"
716	//   "LINK_LENGTH_TOO_LONG" - Dynamic Link URL length is too long.
717	//   "LINK_WITH_FRAGMENTS" - Dynamic Link URL contains fragments.
718	//   "NOT_MATCHING_IOS_BUNDLE_ID_AND_STORE_ID" - The iOS bundle ID does
719	// not match with the given iOS store ID.
720	WarningCode string `json:"warningCode,omitempty"`
721
722	// WarningDocumentLink: The document describing the warning, and helps
723	// resolve.
724	WarningDocumentLink string `json:"warningDocumentLink,omitempty"`
725
726	// WarningMessage: The warning message to help developers improve their
727	// requests.
728	WarningMessage string `json:"warningMessage,omitempty"`
729
730	// ForceSendFields is a list of field names (e.g. "WarningCode") to
731	// unconditionally include in API requests. By default, fields with
732	// empty values are omitted from API requests. However, any non-pointer,
733	// non-interface field appearing in ForceSendFields will be sent to the
734	// server regardless of whether the field is empty or not. This may be
735	// used to include empty fields in Patch requests.
736	ForceSendFields []string `json:"-"`
737
738	// NullFields is a list of field names (e.g. "WarningCode") to include
739	// in API requests with the JSON null value. By default, fields with
740	// empty values are omitted from API requests. However, any field with
741	// an empty value appearing in NullFields will be sent to the server as
742	// null. It is an error if a field in this list has a non-empty value.
743	// This may be used to include null fields in Patch requests.
744	NullFields []string `json:"-"`
745}
746
747func (s *DynamicLinkWarning) MarshalJSON() ([]byte, error) {
748	type NoMethod DynamicLinkWarning
749	raw := NoMethod(*s)
750	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
751}
752
753// GetIosPostInstallAttributionRequest: Request for iSDK to execute
754// strong match flow for post-install attribution. This is meant for iOS
755// requests only. Requests from other platforms will not be honored.
756type GetIosPostInstallAttributionRequest struct {
757	// AppInstallationTime: App installation epoch time
758	// (https://en.wikipedia.org/wiki/Unix_time). This is a client signal
759	// for a more accurate weak match.
760	AppInstallationTime int64 `json:"appInstallationTime,omitempty,string"`
761
762	// BundleId: APP bundle ID.
763	BundleId string `json:"bundleId,omitempty"`
764
765	// Device: Device information.
766	Device *DeviceInfo `json:"device,omitempty"`
767
768	// IosVersion: iOS version, ie: 9.3.5. Consider adding "build".
769	IosVersion string `json:"iosVersion,omitempty"`
770
771	// RetrievalMethod: App post install attribution retrieval information.
772	// Disambiguates mechanism (iSDK or developer invoked) to retrieve
773	// payload from clicked link.
774	//
775	// Possible values:
776	//   "UNKNOWN_PAYLOAD_RETRIEVAL_METHOD" - Unknown method.
777	//   "IMPLICIT_WEAK_MATCH" - iSDK performs a server lookup by device
778	// fingerprint in the background when app is first-opened; no API called
779	// by developer.
780	//   "EXPLICIT_WEAK_MATCH" - iSDK performs a server lookup by device
781	// fingerprint upon a dev API call.
782	//   "EXPLICIT_STRONG_AFTER_WEAK_MATCH" - iSDK performs a strong match
783	// only if weak match is found upon a dev API call.
784	RetrievalMethod string `json:"retrievalMethod,omitempty"`
785
786	// SdkVersion: Google SDK version. Version takes the form
787	// "$major.$minor.$patch"
788	SdkVersion string `json:"sdkVersion,omitempty"`
789
790	// UniqueMatchLinkToCheck: Possible unique matched link that server need
791	// to check before performing fingerprint match. If passed link is short
792	// server need to expand the link. If link is long server need to
793	// vslidate the link.
794	UniqueMatchLinkToCheck string `json:"uniqueMatchLinkToCheck,omitempty"`
795
796	// VisualStyle: Strong match page information. Disambiguates between
797	// default UI and custom page to present when strong match
798	// succeeds/fails to find cookie.
799	//
800	// Possible values:
801	//   "UNKNOWN_VISUAL_STYLE" - Unknown style.
802	//   "DEFAULT_STYLE" - Default style.
803	//   "CUSTOM_STYLE" - Custom style.
804	VisualStyle string `json:"visualStyle,omitempty"`
805
806	// ForceSendFields is a list of field names (e.g. "AppInstallationTime")
807	// to unconditionally include in API requests. By default, fields with
808	// empty values are omitted from API requests. However, any non-pointer,
809	// non-interface field appearing in ForceSendFields will be sent to the
810	// server regardless of whether the field is empty or not. This may be
811	// used to include empty fields in Patch requests.
812	ForceSendFields []string `json:"-"`
813
814	// NullFields is a list of field names (e.g. "AppInstallationTime") to
815	// include in API requests with the JSON null value. By default, fields
816	// with empty values are omitted from API requests. However, any field
817	// with an empty value appearing in NullFields will be sent to the
818	// server as null. It is an error if a field in this list has a
819	// non-empty value. This may be used to include null fields in Patch
820	// requests.
821	NullFields []string `json:"-"`
822}
823
824func (s *GetIosPostInstallAttributionRequest) MarshalJSON() ([]byte, error) {
825	type NoMethod GetIosPostInstallAttributionRequest
826	raw := NoMethod(*s)
827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
828}
829
830// GetIosPostInstallAttributionResponse: Response for iSDK to execute
831// strong match flow for post-install attribution.
832type GetIosPostInstallAttributionResponse struct {
833	// AppMinimumVersion: The minimum version for app, specified by dev
834	// through ?imv= parameter. Return to iSDK to allow app to evaluate if
835	// current version meets this.
836	AppMinimumVersion string `json:"appMinimumVersion,omitempty"`
837
838	// AttributionConfidence: The confidence of the returned attribution.
839	//
840	// Possible values:
841	//   "UNKNOWN_ATTRIBUTION_CONFIDENCE" - Unset.
842	//   "WEAK" - Weak confidence, more than one matching link found or link
843	// suspected to be false positive
844	//   "DEFAULT" - Default confidence, match based on fingerprint
845	//   "UNIQUE" - Unique confidence, match based on "unique match link to
846	// check" or other means
847	AttributionConfidence string `json:"attributionConfidence,omitempty"`
848
849	// DeepLink: The deep-link attributed post-install via one of several
850	// techniques (fingerprint, copy unique).
851	DeepLink string `json:"deepLink,omitempty"`
852
853	// ExternalBrowserDestinationLink: User-agent specific custom-scheme
854	// URIs for iSDK to open. This will be set according to the user-agent
855	// tha the click was originally made in. There is no Safari-equivalent
856	// custom-scheme open URLs. ie: googlechrome://www.example.com ie:
857	// firefox://open-url?url=http://www.example.com ie:
858	// opera-http://example.com
859	ExternalBrowserDestinationLink string `json:"externalBrowserDestinationLink,omitempty"`
860
861	// FallbackLink: The link to navigate to update the app if min version
862	// is not met. This is either (in order): 1) fallback link (from ?ifl=
863	// parameter, if specified by developer) or 2) AppStore URL (from ?isi=
864	// parameter, if specified), or 3) the payload link (from required link=
865	// parameter).
866	FallbackLink string `json:"fallbackLink,omitempty"`
867
868	// InvitationId: Invitation ID attributed post-install via one of
869	// several techniques (fingerprint, copy unique).
870	InvitationId string `json:"invitationId,omitempty"`
871
872	// IsStrongMatchExecutable: Instruction for iSDK to attemmpt to perform
873	// strong match. For instance, if browser does not support/allow cookie
874	// or outside of support browsers, this will be false.
875	IsStrongMatchExecutable bool `json:"isStrongMatchExecutable,omitempty"`
876
877	// MatchMessage: Describes why match failed, ie: "discarded due to low
878	// confidence". This message will be publicly visible.
879	MatchMessage string `json:"matchMessage,omitempty"`
880
881	// RequestIpVersion: Which IP version the request was made from.
882	//
883	// Possible values:
884	//   "UNKNOWN_IP_VERSION" - Unset.
885	//   "IP_V4" - Request made from an IPv4 IP address.
886	//   "IP_V6" - Request made from an IPv6 IP address.
887	RequestIpVersion string `json:"requestIpVersion,omitempty"`
888
889	// RequestedLink: Entire FDL (short or long) attributed post-install via
890	// one of several techniques (fingerprint, copy unique).
891	RequestedLink string `json:"requestedLink,omitempty"`
892
893	// ResolvedLink: The entire FDL, expanded from a short link. It is the
894	// same as the requested_link, if it is long. Parameters from this
895	// should not be used directly (ie: server can default
896	// utm_[campaign|medium|source] to a value when requested_link lack
897	// them, server determine the best fallback_link when requested_link
898	// specifies >1 fallback links).
899	ResolvedLink string `json:"resolvedLink,omitempty"`
900
901	// UtmCampaign: Scion campaign value to be propagated by iSDK to Scion
902	// at post-install.
903	UtmCampaign string `json:"utmCampaign,omitempty"`
904
905	// UtmContent: Scion content value to be propagated by iSDK to Scion at
906	// app-reopen.
907	UtmContent string `json:"utmContent,omitempty"`
908
909	// UtmMedium: Scion medium value to be propagated by iSDK to Scion at
910	// post-install.
911	UtmMedium string `json:"utmMedium,omitempty"`
912
913	// UtmSource: Scion source value to be propagated by iSDK to Scion at
914	// post-install.
915	UtmSource string `json:"utmSource,omitempty"`
916
917	// UtmTerm: Scion term value to be propagated by iSDK to Scion at
918	// app-reopen.
919	UtmTerm string `json:"utmTerm,omitempty"`
920
921	// ServerResponse contains the HTTP response code and headers from the
922	// server.
923	googleapi.ServerResponse `json:"-"`
924
925	// ForceSendFields is a list of field names (e.g. "AppMinimumVersion")
926	// to unconditionally include in API requests. By default, fields with
927	// empty values are omitted from API requests. However, any non-pointer,
928	// non-interface field appearing in ForceSendFields will be sent to the
929	// server regardless of whether the field is empty or not. This may be
930	// used to include empty fields in Patch requests.
931	ForceSendFields []string `json:"-"`
932
933	// NullFields is a list of field names (e.g. "AppMinimumVersion") to
934	// include in API requests with the JSON null value. By default, fields
935	// with empty values are omitted from API requests. However, any field
936	// with an empty value appearing in NullFields will be sent to the
937	// server as null. It is an error if a field in this list has a
938	// non-empty value. This may be used to include null fields in Patch
939	// requests.
940	NullFields []string `json:"-"`
941}
942
943func (s *GetIosPostInstallAttributionResponse) MarshalJSON() ([]byte, error) {
944	type NoMethod GetIosPostInstallAttributionResponse
945	raw := NoMethod(*s)
946	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
947}
948
949// GetIosReopenAttributionRequest: Request for iSDK to get reopen
950// attribution for app universal link open deeplinking. This endpoint is
951// meant for only iOS requests.
952type GetIosReopenAttributionRequest struct {
953	// BundleId: APP bundle ID.
954	BundleId string `json:"bundleId,omitempty"`
955
956	// RequestedLink: FDL link to be verified from an app universal link
957	// open. The FDL link can be one of: 1) short FDL. e.g. .page.link/, or
958	// 2) long FDL. e.g. .page.link/?{query params}, or 3) Invite FDL. e.g.
959	// .page.link/i/
960	RequestedLink string `json:"requestedLink,omitempty"`
961
962	// SdkVersion: Google SDK version. Version takes the form
963	// "$major.$minor.$patch"
964	SdkVersion string `json:"sdkVersion,omitempty"`
965
966	// ForceSendFields is a list of field names (e.g. "BundleId") to
967	// unconditionally include in API requests. By default, fields with
968	// empty values are omitted from API requests. However, any non-pointer,
969	// non-interface field appearing in ForceSendFields will be sent to the
970	// server regardless of whether the field is empty or not. This may be
971	// used to include empty fields in Patch requests.
972	ForceSendFields []string `json:"-"`
973
974	// NullFields is a list of field names (e.g. "BundleId") to include in
975	// API requests with the JSON null value. By default, fields with empty
976	// values are omitted from API requests. However, any field with an
977	// empty value appearing in NullFields will be sent to the server as
978	// null. It is an error if a field in this list has a non-empty value.
979	// This may be used to include null fields in Patch requests.
980	NullFields []string `json:"-"`
981}
982
983func (s *GetIosReopenAttributionRequest) MarshalJSON() ([]byte, error) {
984	type NoMethod GetIosReopenAttributionRequest
985	raw := NoMethod(*s)
986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
987}
988
989// GetIosReopenAttributionResponse: Response for iSDK to get reopen
990// attribution for app universal link open deeplinking. This endpoint is
991// meant for only iOS requests.
992type GetIosReopenAttributionResponse struct {
993	// DeepLink: The deep-link attributed the app universal link open. For
994	// both regular FDL links and invite FDL links.
995	DeepLink string `json:"deepLink,omitempty"`
996
997	// InvitationId: Optional invitation ID, for only invite typed requested
998	// FDL links.
999	InvitationId string `json:"invitationId,omitempty"`
1000
1001	// IosMinAppVersion: FDL input value of the "&imv=" parameter, minimum
1002	// app version to be returned to Google Firebase SDK running on iOS-9.
1003	IosMinAppVersion string `json:"iosMinAppVersion,omitempty"`
1004
1005	// ResolvedLink: The entire FDL, expanded from a short link. It is the
1006	// same as the requested_link, if it is long.
1007	ResolvedLink string `json:"resolvedLink,omitempty"`
1008
1009	// UtmCampaign: Scion campaign value to be propagated by iSDK to Scion
1010	// at app-reopen.
1011	UtmCampaign string `json:"utmCampaign,omitempty"`
1012
1013	// UtmContent: Scion content value to be propagated by iSDK to Scion at
1014	// app-reopen.
1015	UtmContent string `json:"utmContent,omitempty"`
1016
1017	// UtmMedium: Scion medium value to be propagated by iSDK to Scion at
1018	// app-reopen.
1019	UtmMedium string `json:"utmMedium,omitempty"`
1020
1021	// UtmSource: Scion source value to be propagated by iSDK to Scion at
1022	// app-reopen.
1023	UtmSource string `json:"utmSource,omitempty"`
1024
1025	// UtmTerm: Scion term value to be propagated by iSDK to Scion at
1026	// app-reopen.
1027	UtmTerm string `json:"utmTerm,omitempty"`
1028
1029	// ServerResponse contains the HTTP response code and headers from the
1030	// server.
1031	googleapi.ServerResponse `json:"-"`
1032
1033	// ForceSendFields is a list of field names (e.g. "DeepLink") to
1034	// unconditionally include in API requests. By default, fields with
1035	// empty values are omitted from API requests. However, any non-pointer,
1036	// non-interface field appearing in ForceSendFields will be sent to the
1037	// server regardless of whether the field is empty or not. This may be
1038	// used to include empty fields in Patch requests.
1039	ForceSendFields []string `json:"-"`
1040
1041	// NullFields is a list of field names (e.g. "DeepLink") to include in
1042	// API requests with the JSON null value. By default, fields with empty
1043	// values are omitted from API requests. However, any field with an
1044	// empty value appearing in NullFields will be sent to the server as
1045	// null. It is an error if a field in this list has a non-empty value.
1046	// This may be used to include null fields in Patch requests.
1047	NullFields []string `json:"-"`
1048}
1049
1050func (s *GetIosReopenAttributionResponse) MarshalJSON() ([]byte, error) {
1051	type NoMethod GetIosReopenAttributionResponse
1052	raw := NoMethod(*s)
1053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1054}
1055
1056// GooglePlayAnalytics: Parameters for Google Play Campaign
1057// Measurements. Learn more
1058// (https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#campaign-params)
1059type GooglePlayAnalytics struct {
1060	// Gclid: AdWords autotagging parameter
1061	// (https://support.google.com/analytics/answer/1033981?hl=en); used to
1062	// measure Google AdWords ads. This value is generated dynamically and
1063	// should never be modified.
1064	Gclid string `json:"gclid,omitempty"`
1065
1066	// UtmCampaign: Campaign name; used for keyword analysis to identify a
1067	// specific product promotion or strategic campaign.
1068	UtmCampaign string `json:"utmCampaign,omitempty"`
1069
1070	// UtmContent: Campaign content; used for A/B testing and
1071	// content-targeted ads to differentiate ads or links that point to the
1072	// same URL.
1073	UtmContent string `json:"utmContent,omitempty"`
1074
1075	// UtmMedium: Campaign medium; used to identify a medium such as email
1076	// or cost-per-click.
1077	UtmMedium string `json:"utmMedium,omitempty"`
1078
1079	// UtmSource: Campaign source; used to identify a search engine,
1080	// newsletter, or other source.
1081	UtmSource string `json:"utmSource,omitempty"`
1082
1083	// UtmTerm: Campaign term; used with paid search to supply the keywords
1084	// for ads.
1085	UtmTerm string `json:"utmTerm,omitempty"`
1086
1087	// ForceSendFields is a list of field names (e.g. "Gclid") to
1088	// unconditionally include in API requests. By default, fields with
1089	// empty values are omitted from API requests. However, any non-pointer,
1090	// non-interface field appearing in ForceSendFields will be sent to the
1091	// server regardless of whether the field is empty or not. This may be
1092	// used to include empty fields in Patch requests.
1093	ForceSendFields []string `json:"-"`
1094
1095	// NullFields is a list of field names (e.g. "Gclid") to include in API
1096	// requests with the JSON null value. By default, fields with empty
1097	// values are omitted from API requests. However, any field with an
1098	// empty value appearing in NullFields will be sent to the server as
1099	// null. It is an error if a field in this list has a non-empty value.
1100	// This may be used to include null fields in Patch requests.
1101	NullFields []string `json:"-"`
1102}
1103
1104func (s *GooglePlayAnalytics) MarshalJSON() ([]byte, error) {
1105	type NoMethod GooglePlayAnalytics
1106	raw := NoMethod(*s)
1107	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1108}
1109
1110// ITunesConnectAnalytics: Parameters for iTunes Connect App Analytics.
1111type ITunesConnectAnalytics struct {
1112	// At: Affiliate token used to create affiliate-coded links.
1113	At string `json:"at,omitempty"`
1114
1115	// Ct: Campaign text that developers can optionally add to any link in
1116	// order to track sales from a specific marketing campaign.
1117	Ct string `json:"ct,omitempty"`
1118
1119	// Mt: iTune media types, including music, podcasts, audiobooks and so
1120	// on.
1121	Mt string `json:"mt,omitempty"`
1122
1123	// Pt: Provider token that enables analytics for Dynamic Links from
1124	// within iTunes Connect.
1125	Pt string `json:"pt,omitempty"`
1126
1127	// ForceSendFields is a list of field names (e.g. "At") to
1128	// unconditionally include in API requests. By default, fields with
1129	// empty values are omitted from API requests. However, any non-pointer,
1130	// non-interface field appearing in ForceSendFields will be sent to the
1131	// server regardless of whether the field is empty or not. This may be
1132	// used to include empty fields in Patch requests.
1133	ForceSendFields []string `json:"-"`
1134
1135	// NullFields is a list of field names (e.g. "At") to include in API
1136	// requests with the JSON null value. By default, fields with empty
1137	// values are omitted from API requests. However, any field with an
1138	// empty value appearing in NullFields will be sent to the server as
1139	// null. It is an error if a field in this list has a non-empty value.
1140	// This may be used to include null fields in Patch requests.
1141	NullFields []string `json:"-"`
1142}
1143
1144func (s *ITunesConnectAnalytics) MarshalJSON() ([]byte, error) {
1145	type NoMethod ITunesConnectAnalytics
1146	raw := NoMethod(*s)
1147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1148}
1149
1150// IosInfo: iOS related attributes to the Dynamic Link..
1151type IosInfo struct {
1152	// IosAppStoreId: iOS App Store ID.
1153	IosAppStoreId string `json:"iosAppStoreId,omitempty"`
1154
1155	// IosBundleId: iOS bundle ID of the app.
1156	IosBundleId string `json:"iosBundleId,omitempty"`
1157
1158	// IosCustomScheme: Custom (destination) scheme to use for iOS. By
1159	// default, we’ll use the bundle ID as the custom scheme. Developer
1160	// can override this behavior using this param.
1161	IosCustomScheme string `json:"iosCustomScheme,omitempty"`
1162
1163	// IosFallbackLink: Link to open on iOS if the app is not installed.
1164	IosFallbackLink string `json:"iosFallbackLink,omitempty"`
1165
1166	// IosIpadBundleId: iPad bundle ID of the app.
1167	IosIpadBundleId string `json:"iosIpadBundleId,omitempty"`
1168
1169	// IosIpadFallbackLink: If specified, this overrides the
1170	// ios_fallback_link value on iPads.
1171	IosIpadFallbackLink string `json:"iosIpadFallbackLink,omitempty"`
1172
1173	// IosMinimumVersion: iOS minimum version.
1174	IosMinimumVersion string `json:"iosMinimumVersion,omitempty"`
1175
1176	// ForceSendFields is a list of field names (e.g. "IosAppStoreId") to
1177	// unconditionally include in API requests. By default, fields with
1178	// empty values are omitted from API requests. However, any non-pointer,
1179	// non-interface field appearing in ForceSendFields will be sent to the
1180	// server regardless of whether the field is empty or not. This may be
1181	// used to include empty fields in Patch requests.
1182	ForceSendFields []string `json:"-"`
1183
1184	// NullFields is a list of field names (e.g. "IosAppStoreId") to include
1185	// in API requests with the JSON null value. By default, fields with
1186	// empty values are omitted from API requests. However, any field with
1187	// an empty value appearing in NullFields will be sent to the server as
1188	// null. It is an error if a field in this list has a non-empty value.
1189	// This may be used to include null fields in Patch requests.
1190	NullFields []string `json:"-"`
1191}
1192
1193func (s *IosInfo) MarshalJSON() ([]byte, error) {
1194	type NoMethod IosInfo
1195	raw := NoMethod(*s)
1196	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1197}
1198
1199// ManagedShortLink: Managed Short Link.
1200type ManagedShortLink struct {
1201	// CreationTime: Creation timestamp of the short link.
1202	CreationTime string `json:"creationTime,omitempty"`
1203
1204	// FlaggedAttribute: Attributes that have been flagged about this short
1205	// url.
1206	//
1207	// Possible values:
1208	//   "UNSPECIFIED_ATTRIBUTE" - Indicates that no attributes were found
1209	// for this short url.
1210	//   "SPAM" - Indicates that short url has been flagged by AbuseIAm team
1211	// as spam.
1212	FlaggedAttribute []string `json:"flaggedAttribute,omitempty"`
1213
1214	// Info: Full Dyamic Link info
1215	Info *DynamicLinkInfo `json:"info,omitempty"`
1216
1217	// Link: Short durable link url, for example,
1218	// "https://sample.app.goo.gl/xyz123". Required.
1219	Link string `json:"link,omitempty"`
1220
1221	// LinkName: Link name defined by the creator. Required.
1222	LinkName string `json:"linkName,omitempty"`
1223
1224	// Visibility: Visibility status of link.
1225	//
1226	// Possible values:
1227	//   "UNSPECIFIED_VISIBILITY" - Visibility of the link is not specified.
1228	//   "UNARCHIVED" - Link created in console and should be shown in
1229	// console.
1230	//   "ARCHIVED" - Link created in console and should not be shown in
1231	// console (but can be shown in the console again if it is unarchived).
1232	//   "NEVER_SHOWN" - Link created outside of console and should never be
1233	// shown in console.
1234	Visibility string `json:"visibility,omitempty"`
1235
1236	// ForceSendFields is a list of field names (e.g. "CreationTime") to
1237	// unconditionally include in API requests. By default, fields with
1238	// empty values are omitted from API requests. However, any non-pointer,
1239	// non-interface field appearing in ForceSendFields will be sent to the
1240	// server regardless of whether the field is empty or not. This may be
1241	// used to include empty fields in Patch requests.
1242	ForceSendFields []string `json:"-"`
1243
1244	// NullFields is a list of field names (e.g. "CreationTime") to include
1245	// in API requests with the JSON null value. By default, fields with
1246	// empty values are omitted from API requests. However, any field with
1247	// an empty value appearing in NullFields will be sent to the server as
1248	// null. It is an error if a field in this list has a non-empty value.
1249	// This may be used to include null fields in Patch requests.
1250	NullFields []string `json:"-"`
1251}
1252
1253func (s *ManagedShortLink) MarshalJSON() ([]byte, error) {
1254	type NoMethod ManagedShortLink
1255	raw := NoMethod(*s)
1256	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1257}
1258
1259// NavigationInfo: Information of navigation behavior.
1260type NavigationInfo struct {
1261	// EnableForcedRedirect: If this option is on, FDL click will be forced
1262	// to redirect rather than show an interstitial page.
1263	EnableForcedRedirect bool `json:"enableForcedRedirect,omitempty"`
1264
1265	// ForceSendFields is a list of field names (e.g.
1266	// "EnableForcedRedirect") to unconditionally include in API requests.
1267	// By default, fields with empty values are omitted from API requests.
1268	// However, any non-pointer, non-interface field appearing in
1269	// ForceSendFields will be sent to the server regardless of whether the
1270	// field is empty or not. This may be used to include empty fields in
1271	// Patch requests.
1272	ForceSendFields []string `json:"-"`
1273
1274	// NullFields is a list of field names (e.g. "EnableForcedRedirect") to
1275	// include in API requests with the JSON null value. By default, fields
1276	// with empty values are omitted from API requests. However, any field
1277	// with an empty value appearing in NullFields will be sent to the
1278	// server as null. It is an error if a field in this list has a
1279	// non-empty value. This may be used to include null fields in Patch
1280	// requests.
1281	NullFields []string `json:"-"`
1282}
1283
1284func (s *NavigationInfo) MarshalJSON() ([]byte, error) {
1285	type NoMethod NavigationInfo
1286	raw := NoMethod(*s)
1287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1288}
1289
1290// SocialMetaTagInfo: Parameters for social meta tag params. Used to set
1291// meta tag data for link previews on social sites.
1292type SocialMetaTagInfo struct {
1293	// SocialDescription: A short description of the link. Optional.
1294	SocialDescription string `json:"socialDescription,omitempty"`
1295
1296	// SocialImageLink: An image url string. Optional.
1297	SocialImageLink string `json:"socialImageLink,omitempty"`
1298
1299	// SocialTitle: Title to be displayed. Optional.
1300	SocialTitle string `json:"socialTitle,omitempty"`
1301
1302	// ForceSendFields is a list of field names (e.g. "SocialDescription")
1303	// to unconditionally include in API requests. By default, fields with
1304	// empty values are omitted from API requests. However, any non-pointer,
1305	// non-interface field appearing in ForceSendFields will be sent to the
1306	// server regardless of whether the field is empty or not. This may be
1307	// used to include empty fields in Patch requests.
1308	ForceSendFields []string `json:"-"`
1309
1310	// NullFields is a list of field names (e.g. "SocialDescription") to
1311	// include in API requests with the JSON null value. By default, fields
1312	// with empty values are omitted from API requests. However, any field
1313	// with an empty value appearing in NullFields will be sent to the
1314	// server as null. It is an error if a field in this list has a
1315	// non-empty value. This may be used to include null fields in Patch
1316	// requests.
1317	NullFields []string `json:"-"`
1318}
1319
1320func (s *SocialMetaTagInfo) MarshalJSON() ([]byte, error) {
1321	type NoMethod SocialMetaTagInfo
1322	raw := NoMethod(*s)
1323	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1324}
1325
1326// Suffix: Short Dynamic Link suffix.
1327type Suffix struct {
1328	// CustomSuffix: Only applies to Option.CUSTOM.
1329	CustomSuffix string `json:"customSuffix,omitempty"`
1330
1331	// Option: Suffix option.
1332	//
1333	// Possible values:
1334	//   "OPTION_UNSPECIFIED" - The suffix option is not specified, performs
1335	// as UNGUESSABLE .
1336	//   "UNGUESSABLE" - Short Dynamic Link suffix is a base62 [0-9A-Za-z]
1337	// encoded string of a random generated 96 bit random number, which has
1338	// a length of 17 chars. For example, "nlAR8U4SlKRZw1cb2". It prevents
1339	// other people from guessing and crawling short Dynamic Links that
1340	// contain personal identifiable information.
1341	//   "SHORT" - Short Dynamic Link suffix is a base62 [0-9A-Za-z] string
1342	// starting with a length of 4 chars. the length will increase when all
1343	// the space is occupied.
1344	//   "CUSTOM" - Custom DDL suffix is a client specified string, for
1345	// example, "buy2get1free". NOTE: custom suffix should only be available
1346	// to managed short link creation
1347	Option string `json:"option,omitempty"`
1348
1349	// ForceSendFields is a list of field names (e.g. "CustomSuffix") to
1350	// unconditionally include in API requests. By default, fields with
1351	// empty values are omitted from API requests. However, any non-pointer,
1352	// non-interface field appearing in ForceSendFields will be sent to the
1353	// server regardless of whether the field is empty or not. This may be
1354	// used to include empty fields in Patch requests.
1355	ForceSendFields []string `json:"-"`
1356
1357	// NullFields is a list of field names (e.g. "CustomSuffix") to include
1358	// in API requests with the JSON null value. By default, fields with
1359	// empty values are omitted from API requests. However, any field with
1360	// an empty value appearing in NullFields will be sent to the server as
1361	// null. It is an error if a field in this list has a non-empty value.
1362	// This may be used to include null fields in Patch requests.
1363	NullFields []string `json:"-"`
1364}
1365
1366func (s *Suffix) MarshalJSON() ([]byte, error) {
1367	type NoMethod Suffix
1368	raw := NoMethod(*s)
1369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1370}
1371
1372// method id "firebasedynamiclinks.managedShortLinks.create":
1373
1374type ManagedShortLinksCreateCall struct {
1375	s                             *Service
1376	createmanagedshortlinkrequest *CreateManagedShortLinkRequest
1377	urlParams_                    gensupport.URLParams
1378	ctx_                          context.Context
1379	header_                       http.Header
1380}
1381
1382// Create: Creates a managed short Dynamic Link given either a valid
1383// long Dynamic Link or details such as Dynamic Link domain, Android and
1384// iOS app information. The created short Dynamic Link will not expire.
1385// This differs from CreateShortDynamicLink in the following ways: - The
1386// request will also contain a name for the link (non unique name for
1387// the front end). - The response must be authenticated with an auth
1388// token (generated with the admin service account). - The link will
1389// appear in the FDL list of links in the console front end. The Dynamic
1390// Link domain in the request must be owned by requester's Firebase
1391// project.
1392func (r *ManagedShortLinksService) Create(createmanagedshortlinkrequest *CreateManagedShortLinkRequest) *ManagedShortLinksCreateCall {
1393	c := &ManagedShortLinksCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1394	c.createmanagedshortlinkrequest = createmanagedshortlinkrequest
1395	return c
1396}
1397
1398// Fields allows partial responses to be retrieved. See
1399// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1400// for more information.
1401func (c *ManagedShortLinksCreateCall) Fields(s ...googleapi.Field) *ManagedShortLinksCreateCall {
1402	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1403	return c
1404}
1405
1406// Context sets the context to be used in this call's Do method. Any
1407// pending HTTP request will be aborted if the provided context is
1408// canceled.
1409func (c *ManagedShortLinksCreateCall) Context(ctx context.Context) *ManagedShortLinksCreateCall {
1410	c.ctx_ = ctx
1411	return c
1412}
1413
1414// Header returns an http.Header that can be modified by the caller to
1415// add HTTP headers to the request.
1416func (c *ManagedShortLinksCreateCall) Header() http.Header {
1417	if c.header_ == nil {
1418		c.header_ = make(http.Header)
1419	}
1420	return c.header_
1421}
1422
1423func (c *ManagedShortLinksCreateCall) doRequest(alt string) (*http.Response, error) {
1424	reqHeaders := make(http.Header)
1425	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629")
1426	for k, v := range c.header_ {
1427		reqHeaders[k] = v
1428	}
1429	reqHeaders.Set("User-Agent", c.s.userAgent())
1430	var body io.Reader = nil
1431	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createmanagedshortlinkrequest)
1432	if err != nil {
1433		return nil, err
1434	}
1435	reqHeaders.Set("Content-Type", "application/json")
1436	c.urlParams_.Set("alt", alt)
1437	c.urlParams_.Set("prettyPrint", "false")
1438	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/managedShortLinks:create")
1439	urls += "?" + c.urlParams_.Encode()
1440	req, err := http.NewRequest("POST", urls, body)
1441	if err != nil {
1442		return nil, err
1443	}
1444	req.Header = reqHeaders
1445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1446}
1447
1448// Do executes the "firebasedynamiclinks.managedShortLinks.create" call.
1449// Exactly one of *CreateManagedShortLinkResponse or error will be
1450// non-nil. Any non-2xx status code is an error. Response headers are in
1451// either *CreateManagedShortLinkResponse.ServerResponse.Header or (if a
1452// response was returned at all) in error.(*googleapi.Error).Header. Use
1453// googleapi.IsNotModified to check whether the returned error was
1454// because http.StatusNotModified was returned.
1455func (c *ManagedShortLinksCreateCall) Do(opts ...googleapi.CallOption) (*CreateManagedShortLinkResponse, error) {
1456	gensupport.SetOptions(c.urlParams_, opts...)
1457	res, err := c.doRequest("json")
1458	if res != nil && res.StatusCode == http.StatusNotModified {
1459		if res.Body != nil {
1460			res.Body.Close()
1461		}
1462		return nil, &googleapi.Error{
1463			Code:   res.StatusCode,
1464			Header: res.Header,
1465		}
1466	}
1467	if err != nil {
1468		return nil, err
1469	}
1470	defer googleapi.CloseBody(res)
1471	if err := googleapi.CheckResponse(res); err != nil {
1472		return nil, err
1473	}
1474	ret := &CreateManagedShortLinkResponse{
1475		ServerResponse: googleapi.ServerResponse{
1476			Header:         res.Header,
1477			HTTPStatusCode: res.StatusCode,
1478		},
1479	}
1480	target := &ret
1481	if err := gensupport.DecodeResponse(target, res); err != nil {
1482		return nil, err
1483	}
1484	return ret, nil
1485	// {
1486	//   "description": "Creates a managed short Dynamic Link given either a valid long Dynamic Link or details such as Dynamic Link domain, Android and iOS app information. The created short Dynamic Link will not expire. This differs from CreateShortDynamicLink in the following ways: - The request will also contain a name for the link (non unique name for the front end). - The response must be authenticated with an auth token (generated with the admin service account). - The link will appear in the FDL list of links in the console front end. The Dynamic Link domain in the request must be owned by requester's Firebase project.",
1487	//   "flatPath": "v1/managedShortLinks:create",
1488	//   "httpMethod": "POST",
1489	//   "id": "firebasedynamiclinks.managedShortLinks.create",
1490	//   "parameterOrder": [],
1491	//   "parameters": {},
1492	//   "path": "v1/managedShortLinks:create",
1493	//   "request": {
1494	//     "$ref": "CreateManagedShortLinkRequest"
1495	//   },
1496	//   "response": {
1497	//     "$ref": "CreateManagedShortLinkResponse"
1498	//   },
1499	//   "scopes": [
1500	//     "https://www.googleapis.com/auth/firebase"
1501	//   ]
1502	// }
1503
1504}
1505
1506// method id "firebasedynamiclinks.shortLinks.create":
1507
1508type ShortLinksCreateCall struct {
1509	s                             *Service
1510	createshortdynamiclinkrequest *CreateShortDynamicLinkRequest
1511	urlParams_                    gensupport.URLParams
1512	ctx_                          context.Context
1513	header_                       http.Header
1514}
1515
1516// Create: Creates a short Dynamic Link given either a valid long
1517// Dynamic Link or details such as Dynamic Link domain, Android and iOS
1518// app information. The created short Dynamic Link will not expire.
1519// Repeated calls with the same long Dynamic Link or Dynamic Link
1520// information will produce the same short Dynamic Link. The Dynamic
1521// Link domain in the request must be owned by requester's Firebase
1522// project.
1523func (r *ShortLinksService) Create(createshortdynamiclinkrequest *CreateShortDynamicLinkRequest) *ShortLinksCreateCall {
1524	c := &ShortLinksCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1525	c.createshortdynamiclinkrequest = createshortdynamiclinkrequest
1526	return c
1527}
1528
1529// Fields allows partial responses to be retrieved. See
1530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1531// for more information.
1532func (c *ShortLinksCreateCall) Fields(s ...googleapi.Field) *ShortLinksCreateCall {
1533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1534	return c
1535}
1536
1537// Context sets the context to be used in this call's Do method. Any
1538// pending HTTP request will be aborted if the provided context is
1539// canceled.
1540func (c *ShortLinksCreateCall) Context(ctx context.Context) *ShortLinksCreateCall {
1541	c.ctx_ = ctx
1542	return c
1543}
1544
1545// Header returns an http.Header that can be modified by the caller to
1546// add HTTP headers to the request.
1547func (c *ShortLinksCreateCall) Header() http.Header {
1548	if c.header_ == nil {
1549		c.header_ = make(http.Header)
1550	}
1551	return c.header_
1552}
1553
1554func (c *ShortLinksCreateCall) doRequest(alt string) (*http.Response, error) {
1555	reqHeaders := make(http.Header)
1556	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629")
1557	for k, v := range c.header_ {
1558		reqHeaders[k] = v
1559	}
1560	reqHeaders.Set("User-Agent", c.s.userAgent())
1561	var body io.Reader = nil
1562	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createshortdynamiclinkrequest)
1563	if err != nil {
1564		return nil, err
1565	}
1566	reqHeaders.Set("Content-Type", "application/json")
1567	c.urlParams_.Set("alt", alt)
1568	c.urlParams_.Set("prettyPrint", "false")
1569	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/shortLinks")
1570	urls += "?" + c.urlParams_.Encode()
1571	req, err := http.NewRequest("POST", urls, body)
1572	if err != nil {
1573		return nil, err
1574	}
1575	req.Header = reqHeaders
1576	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1577}
1578
1579// Do executes the "firebasedynamiclinks.shortLinks.create" call.
1580// Exactly one of *CreateShortDynamicLinkResponse or error will be
1581// non-nil. Any non-2xx status code is an error. Response headers are in
1582// either *CreateShortDynamicLinkResponse.ServerResponse.Header or (if a
1583// response was returned at all) in error.(*googleapi.Error).Header. Use
1584// googleapi.IsNotModified to check whether the returned error was
1585// because http.StatusNotModified was returned.
1586func (c *ShortLinksCreateCall) Do(opts ...googleapi.CallOption) (*CreateShortDynamicLinkResponse, error) {
1587	gensupport.SetOptions(c.urlParams_, opts...)
1588	res, err := c.doRequest("json")
1589	if res != nil && res.StatusCode == http.StatusNotModified {
1590		if res.Body != nil {
1591			res.Body.Close()
1592		}
1593		return nil, &googleapi.Error{
1594			Code:   res.StatusCode,
1595			Header: res.Header,
1596		}
1597	}
1598	if err != nil {
1599		return nil, err
1600	}
1601	defer googleapi.CloseBody(res)
1602	if err := googleapi.CheckResponse(res); err != nil {
1603		return nil, err
1604	}
1605	ret := &CreateShortDynamicLinkResponse{
1606		ServerResponse: googleapi.ServerResponse{
1607			Header:         res.Header,
1608			HTTPStatusCode: res.StatusCode,
1609		},
1610	}
1611	target := &ret
1612	if err := gensupport.DecodeResponse(target, res); err != nil {
1613		return nil, err
1614	}
1615	return ret, nil
1616	// {
1617	//   "description": "Creates a short Dynamic Link given either a valid long Dynamic Link or details such as Dynamic Link domain, Android and iOS app information. The created short Dynamic Link will not expire. Repeated calls with the same long Dynamic Link or Dynamic Link information will produce the same short Dynamic Link. The Dynamic Link domain in the request must be owned by requester's Firebase project.",
1618	//   "flatPath": "v1/shortLinks",
1619	//   "httpMethod": "POST",
1620	//   "id": "firebasedynamiclinks.shortLinks.create",
1621	//   "parameterOrder": [],
1622	//   "parameters": {},
1623	//   "path": "v1/shortLinks",
1624	//   "request": {
1625	//     "$ref": "CreateShortDynamicLinkRequest"
1626	//   },
1627	//   "response": {
1628	//     "$ref": "CreateShortDynamicLinkResponse"
1629	//   },
1630	//   "scopes": [
1631	//     "https://www.googleapis.com/auth/firebase"
1632	//   ]
1633	// }
1634
1635}
1636
1637// method id "firebasedynamiclinks.getLinkStats":
1638
1639type V1GetLinkStatsCall struct {
1640	s            *Service
1641	dynamicLink  string
1642	urlParams_   gensupport.URLParams
1643	ifNoneMatch_ string
1644	ctx_         context.Context
1645	header_      http.Header
1646}
1647
1648// GetLinkStats: Fetches analytics stats of a short Dynamic Link for a
1649// given duration. Metrics include number of clicks, redirects,
1650// installs, app first opens, and app reopens.
1651//
1652// - dynamicLink: Dynamic Link URL. e.g. https://abcd.app.goo.gl/wxyz.
1653func (r *V1Service) GetLinkStats(dynamicLink string) *V1GetLinkStatsCall {
1654	c := &V1GetLinkStatsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1655	c.dynamicLink = dynamicLink
1656	return c
1657}
1658
1659// DurationDays sets the optional parameter "durationDays": The span of
1660// time requested in days.
1661func (c *V1GetLinkStatsCall) DurationDays(durationDays int64) *V1GetLinkStatsCall {
1662	c.urlParams_.Set("durationDays", fmt.Sprint(durationDays))
1663	return c
1664}
1665
1666// SdkVersion sets the optional parameter "sdkVersion": Google SDK
1667// version. Version takes the form "$major.$minor.$patch"
1668func (c *V1GetLinkStatsCall) SdkVersion(sdkVersion string) *V1GetLinkStatsCall {
1669	c.urlParams_.Set("sdkVersion", sdkVersion)
1670	return c
1671}
1672
1673// Fields allows partial responses to be retrieved. See
1674// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1675// for more information.
1676func (c *V1GetLinkStatsCall) Fields(s ...googleapi.Field) *V1GetLinkStatsCall {
1677	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1678	return c
1679}
1680
1681// IfNoneMatch sets the optional parameter which makes the operation
1682// fail if the object's ETag matches the given value. This is useful for
1683// getting updates only after the object has changed since the last
1684// request. Use googleapi.IsNotModified to check whether the response
1685// error from Do is the result of In-None-Match.
1686func (c *V1GetLinkStatsCall) IfNoneMatch(entityTag string) *V1GetLinkStatsCall {
1687	c.ifNoneMatch_ = entityTag
1688	return c
1689}
1690
1691// Context sets the context to be used in this call's Do method. Any
1692// pending HTTP request will be aborted if the provided context is
1693// canceled.
1694func (c *V1GetLinkStatsCall) Context(ctx context.Context) *V1GetLinkStatsCall {
1695	c.ctx_ = ctx
1696	return c
1697}
1698
1699// Header returns an http.Header that can be modified by the caller to
1700// add HTTP headers to the request.
1701func (c *V1GetLinkStatsCall) Header() http.Header {
1702	if c.header_ == nil {
1703		c.header_ = make(http.Header)
1704	}
1705	return c.header_
1706}
1707
1708func (c *V1GetLinkStatsCall) doRequest(alt string) (*http.Response, error) {
1709	reqHeaders := make(http.Header)
1710	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629")
1711	for k, v := range c.header_ {
1712		reqHeaders[k] = v
1713	}
1714	reqHeaders.Set("User-Agent", c.s.userAgent())
1715	if c.ifNoneMatch_ != "" {
1716		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
1717	}
1718	var body io.Reader = nil
1719	c.urlParams_.Set("alt", alt)
1720	c.urlParams_.Set("prettyPrint", "false")
1721	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{dynamicLink}/linkStats")
1722	urls += "?" + c.urlParams_.Encode()
1723	req, err := http.NewRequest("GET", urls, body)
1724	if err != nil {
1725		return nil, err
1726	}
1727	req.Header = reqHeaders
1728	googleapi.Expand(req.URL, map[string]string{
1729		"dynamicLink": c.dynamicLink,
1730	})
1731	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1732}
1733
1734// Do executes the "firebasedynamiclinks.getLinkStats" call.
1735// Exactly one of *DynamicLinkStats or error will be non-nil. Any
1736// non-2xx status code is an error. Response headers are in either
1737// *DynamicLinkStats.ServerResponse.Header or (if a response was
1738// returned at all) in error.(*googleapi.Error).Header. Use
1739// googleapi.IsNotModified to check whether the returned error was
1740// because http.StatusNotModified was returned.
1741func (c *V1GetLinkStatsCall) Do(opts ...googleapi.CallOption) (*DynamicLinkStats, error) {
1742	gensupport.SetOptions(c.urlParams_, opts...)
1743	res, err := c.doRequest("json")
1744	if res != nil && res.StatusCode == http.StatusNotModified {
1745		if res.Body != nil {
1746			res.Body.Close()
1747		}
1748		return nil, &googleapi.Error{
1749			Code:   res.StatusCode,
1750			Header: res.Header,
1751		}
1752	}
1753	if err != nil {
1754		return nil, err
1755	}
1756	defer googleapi.CloseBody(res)
1757	if err := googleapi.CheckResponse(res); err != nil {
1758		return nil, err
1759	}
1760	ret := &DynamicLinkStats{
1761		ServerResponse: googleapi.ServerResponse{
1762			Header:         res.Header,
1763			HTTPStatusCode: res.StatusCode,
1764		},
1765	}
1766	target := &ret
1767	if err := gensupport.DecodeResponse(target, res); err != nil {
1768		return nil, err
1769	}
1770	return ret, nil
1771	// {
1772	//   "description": "Fetches analytics stats of a short Dynamic Link for a given duration. Metrics include number of clicks, redirects, installs, app first opens, and app reopens.",
1773	//   "flatPath": "v1/{dynamicLink}/linkStats",
1774	//   "httpMethod": "GET",
1775	//   "id": "firebasedynamiclinks.getLinkStats",
1776	//   "parameterOrder": [
1777	//     "dynamicLink"
1778	//   ],
1779	//   "parameters": {
1780	//     "durationDays": {
1781	//       "description": "The span of time requested in days.",
1782	//       "format": "int64",
1783	//       "location": "query",
1784	//       "type": "string"
1785	//     },
1786	//     "dynamicLink": {
1787	//       "description": "Dynamic Link URL. e.g. https://abcd.app.goo.gl/wxyz",
1788	//       "location": "path",
1789	//       "required": true,
1790	//       "type": "string"
1791	//     },
1792	//     "sdkVersion": {
1793	//       "description": "Google SDK version. Version takes the form \"$major.$minor.$patch\"",
1794	//       "location": "query",
1795	//       "type": "string"
1796	//     }
1797	//   },
1798	//   "path": "v1/{dynamicLink}/linkStats",
1799	//   "response": {
1800	//     "$ref": "DynamicLinkStats"
1801	//   },
1802	//   "scopes": [
1803	//     "https://www.googleapis.com/auth/firebase"
1804	//   ]
1805	// }
1806
1807}
1808
1809// method id "firebasedynamiclinks.installAttribution":
1810
1811type V1InstallAttributionCall struct {
1812	s                                   *Service
1813	getiospostinstallattributionrequest *GetIosPostInstallAttributionRequest
1814	urlParams_                          gensupport.URLParams
1815	ctx_                                context.Context
1816	header_                             http.Header
1817}
1818
1819// InstallAttribution: Get iOS strong/weak-match info for post-install
1820// attribution.
1821func (r *V1Service) InstallAttribution(getiospostinstallattributionrequest *GetIosPostInstallAttributionRequest) *V1InstallAttributionCall {
1822	c := &V1InstallAttributionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1823	c.getiospostinstallattributionrequest = getiospostinstallattributionrequest
1824	return c
1825}
1826
1827// Fields allows partial responses to be retrieved. See
1828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1829// for more information.
1830func (c *V1InstallAttributionCall) Fields(s ...googleapi.Field) *V1InstallAttributionCall {
1831	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1832	return c
1833}
1834
1835// Context sets the context to be used in this call's Do method. Any
1836// pending HTTP request will be aborted if the provided context is
1837// canceled.
1838func (c *V1InstallAttributionCall) Context(ctx context.Context) *V1InstallAttributionCall {
1839	c.ctx_ = ctx
1840	return c
1841}
1842
1843// Header returns an http.Header that can be modified by the caller to
1844// add HTTP headers to the request.
1845func (c *V1InstallAttributionCall) Header() http.Header {
1846	if c.header_ == nil {
1847		c.header_ = make(http.Header)
1848	}
1849	return c.header_
1850}
1851
1852func (c *V1InstallAttributionCall) doRequest(alt string) (*http.Response, error) {
1853	reqHeaders := make(http.Header)
1854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629")
1855	for k, v := range c.header_ {
1856		reqHeaders[k] = v
1857	}
1858	reqHeaders.Set("User-Agent", c.s.userAgent())
1859	var body io.Reader = nil
1860	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiospostinstallattributionrequest)
1861	if err != nil {
1862		return nil, err
1863	}
1864	reqHeaders.Set("Content-Type", "application/json")
1865	c.urlParams_.Set("alt", alt)
1866	c.urlParams_.Set("prettyPrint", "false")
1867	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/installAttribution")
1868	urls += "?" + c.urlParams_.Encode()
1869	req, err := http.NewRequest("POST", urls, body)
1870	if err != nil {
1871		return nil, err
1872	}
1873	req.Header = reqHeaders
1874	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1875}
1876
1877// Do executes the "firebasedynamiclinks.installAttribution" call.
1878// Exactly one of *GetIosPostInstallAttributionResponse or error will be
1879// non-nil. Any non-2xx status code is an error. Response headers are in
1880// either *GetIosPostInstallAttributionResponse.ServerResponse.Header or
1881// (if a response was returned at all) in
1882// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
1883// whether the returned error was because http.StatusNotModified was
1884// returned.
1885func (c *V1InstallAttributionCall) Do(opts ...googleapi.CallOption) (*GetIosPostInstallAttributionResponse, error) {
1886	gensupport.SetOptions(c.urlParams_, opts...)
1887	res, err := c.doRequest("json")
1888	if res != nil && res.StatusCode == http.StatusNotModified {
1889		if res.Body != nil {
1890			res.Body.Close()
1891		}
1892		return nil, &googleapi.Error{
1893			Code:   res.StatusCode,
1894			Header: res.Header,
1895		}
1896	}
1897	if err != nil {
1898		return nil, err
1899	}
1900	defer googleapi.CloseBody(res)
1901	if err := googleapi.CheckResponse(res); err != nil {
1902		return nil, err
1903	}
1904	ret := &GetIosPostInstallAttributionResponse{
1905		ServerResponse: googleapi.ServerResponse{
1906			Header:         res.Header,
1907			HTTPStatusCode: res.StatusCode,
1908		},
1909	}
1910	target := &ret
1911	if err := gensupport.DecodeResponse(target, res); err != nil {
1912		return nil, err
1913	}
1914	return ret, nil
1915	// {
1916	//   "description": "Get iOS strong/weak-match info for post-install attribution.",
1917	//   "flatPath": "v1/installAttribution",
1918	//   "httpMethod": "POST",
1919	//   "id": "firebasedynamiclinks.installAttribution",
1920	//   "parameterOrder": [],
1921	//   "parameters": {},
1922	//   "path": "v1/installAttribution",
1923	//   "request": {
1924	//     "$ref": "GetIosPostInstallAttributionRequest"
1925	//   },
1926	//   "response": {
1927	//     "$ref": "GetIosPostInstallAttributionResponse"
1928	//   },
1929	//   "scopes": [
1930	//     "https://www.googleapis.com/auth/firebase"
1931	//   ]
1932	// }
1933
1934}
1935
1936// method id "firebasedynamiclinks.reopenAttribution":
1937
1938type V1ReopenAttributionCall struct {
1939	s                              *Service
1940	getiosreopenattributionrequest *GetIosReopenAttributionRequest
1941	urlParams_                     gensupport.URLParams
1942	ctx_                           context.Context
1943	header_                        http.Header
1944}
1945
1946// ReopenAttribution: Get iOS reopen attribution for app universal link
1947// open deeplinking.
1948func (r *V1Service) ReopenAttribution(getiosreopenattributionrequest *GetIosReopenAttributionRequest) *V1ReopenAttributionCall {
1949	c := &V1ReopenAttributionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1950	c.getiosreopenattributionrequest = getiosreopenattributionrequest
1951	return c
1952}
1953
1954// Fields allows partial responses to be retrieved. See
1955// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1956// for more information.
1957func (c *V1ReopenAttributionCall) Fields(s ...googleapi.Field) *V1ReopenAttributionCall {
1958	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1959	return c
1960}
1961
1962// Context sets the context to be used in this call's Do method. Any
1963// pending HTTP request will be aborted if the provided context is
1964// canceled.
1965func (c *V1ReopenAttributionCall) Context(ctx context.Context) *V1ReopenAttributionCall {
1966	c.ctx_ = ctx
1967	return c
1968}
1969
1970// Header returns an http.Header that can be modified by the caller to
1971// add HTTP headers to the request.
1972func (c *V1ReopenAttributionCall) Header() http.Header {
1973	if c.header_ == nil {
1974		c.header_ = make(http.Header)
1975	}
1976	return c.header_
1977}
1978
1979func (c *V1ReopenAttributionCall) doRequest(alt string) (*http.Response, error) {
1980	reqHeaders := make(http.Header)
1981	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210629")
1982	for k, v := range c.header_ {
1983		reqHeaders[k] = v
1984	}
1985	reqHeaders.Set("User-Agent", c.s.userAgent())
1986	var body io.Reader = nil
1987	body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiosreopenattributionrequest)
1988	if err != nil {
1989		return nil, err
1990	}
1991	reqHeaders.Set("Content-Type", "application/json")
1992	c.urlParams_.Set("alt", alt)
1993	c.urlParams_.Set("prettyPrint", "false")
1994	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/reopenAttribution")
1995	urls += "?" + c.urlParams_.Encode()
1996	req, err := http.NewRequest("POST", urls, body)
1997	if err != nil {
1998		return nil, err
1999	}
2000	req.Header = reqHeaders
2001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2002}
2003
2004// Do executes the "firebasedynamiclinks.reopenAttribution" call.
2005// Exactly one of *GetIosReopenAttributionResponse or error will be
2006// non-nil. Any non-2xx status code is an error. Response headers are in
2007// either *GetIosReopenAttributionResponse.ServerResponse.Header or (if
2008// a response was returned at all) in error.(*googleapi.Error).Header.
2009// Use googleapi.IsNotModified to check whether the returned error was
2010// because http.StatusNotModified was returned.
2011func (c *V1ReopenAttributionCall) Do(opts ...googleapi.CallOption) (*GetIosReopenAttributionResponse, error) {
2012	gensupport.SetOptions(c.urlParams_, opts...)
2013	res, err := c.doRequest("json")
2014	if res != nil && res.StatusCode == http.StatusNotModified {
2015		if res.Body != nil {
2016			res.Body.Close()
2017		}
2018		return nil, &googleapi.Error{
2019			Code:   res.StatusCode,
2020			Header: res.Header,
2021		}
2022	}
2023	if err != nil {
2024		return nil, err
2025	}
2026	defer googleapi.CloseBody(res)
2027	if err := googleapi.CheckResponse(res); err != nil {
2028		return nil, err
2029	}
2030	ret := &GetIosReopenAttributionResponse{
2031		ServerResponse: googleapi.ServerResponse{
2032			Header:         res.Header,
2033			HTTPStatusCode: res.StatusCode,
2034		},
2035	}
2036	target := &ret
2037	if err := gensupport.DecodeResponse(target, res); err != nil {
2038		return nil, err
2039	}
2040	return ret, nil
2041	// {
2042	//   "description": "Get iOS reopen attribution for app universal link open deeplinking.",
2043	//   "flatPath": "v1/reopenAttribution",
2044	//   "httpMethod": "POST",
2045	//   "id": "firebasedynamiclinks.reopenAttribution",
2046	//   "parameterOrder": [],
2047	//   "parameters": {},
2048	//   "path": "v1/reopenAttribution",
2049	//   "request": {
2050	//     "$ref": "GetIosReopenAttributionRequest"
2051	//   },
2052	//   "response": {
2053	//     "$ref": "GetIosReopenAttributionResponse"
2054	//   },
2055	//   "scopes": [
2056	//     "https://www.googleapis.com/auth/firebase"
2057	//   ]
2058	// }
2059
2060}
2061