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