<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="firebasedynamiclinks_v1.html">Firebase Dynamic Links API</a> . <a href="firebasedynamiclinks_v1.managedShortLinks.html">managedShortLinks</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">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.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(body=None, x__xgafv=None)</code>
  <pre>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&#x27;s Firebase project.

Args:
  body: object, The request body.
    The object takes the form of:

{ # Request to create a managed Short Dynamic Link.
    &quot;dynamicLinkInfo&quot;: { # Information about a Dynamic Link. # Information about the Dynamic Link to be shortened. [Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener).
      &quot;iosInfo&quot;: { # iOS related attributes to the Dynamic Link.. # iOS related information. See iOS related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
        &quot;iosBundleId&quot;: &quot;A String&quot;, # iOS bundle ID of the app.
        &quot;iosAppStoreId&quot;: &quot;A String&quot;, # iOS App Store ID.
        &quot;iosFallbackLink&quot;: &quot;A String&quot;, # Link to open on iOS if the app is not installed.
        &quot;iosMinimumVersion&quot;: &quot;A String&quot;, # iOS minimum version.
        &quot;iosIpadBundleId&quot;: &quot;A String&quot;, # iPad bundle ID of the app.
        &quot;iosCustomScheme&quot;: &quot;A String&quot;, # Custom (destination) scheme to use for iOS. By default, we’ll use the bundle ID as the custom scheme. Developer can override this behavior using this param.
        &quot;iosIpadFallbackLink&quot;: &quot;A String&quot;, # If specified, this overrides the ios_fallback_link value on iPads.
      },
      &quot;androidInfo&quot;: { # Android related attributes to the Dynamic Link. # Android related information. See Android related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
        &quot;androidFallbackLink&quot;: &quot;A String&quot;, # Link to open on Android if the app is not installed.
        &quot;androidLink&quot;: &quot;A String&quot;, # If specified, this overrides the ‘link’ parameter on Android.
        &quot;androidMinPackageVersionCode&quot;: &quot;A String&quot;, # Minimum version code for the Android app. If the installed app’s version code is lower, then the user is taken to the Play Store.
        &quot;androidPackageName&quot;: &quot;A String&quot;, # Android package name of the app.
      },
      &quot;navigationInfo&quot;: { # Information of navigation behavior. # Information of navigation behavior of a Firebase Dynamic Links.
        &quot;enableForcedRedirect&quot;: True or False, # If this option is on, FDL click will be forced to redirect rather than show an interstitial page.
      },
      &quot;desktopInfo&quot;: { # Desktop related attributes to the Dynamic Link. # Desktop related information. See desktop related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
        &quot;desktopFallbackLink&quot;: &quot;A String&quot;, # Link to open on desktop.
      },
      &quot;dynamicLinkDomain&quot;: &quot;A String&quot;, # Dynamic Links domain that the project owns, e.g. abcd.app.goo.gl [Learn more](https://firebase.google.com/docs/dynamic-links/android/receive) on how to set up Dynamic Link domain associated with your Firebase project. Required if missing domain_uri_prefix.
      &quot;link&quot;: &quot;A String&quot;, # The link your app will open, You can specify any URL your app can handle. This link must be a well-formatted URL, be properly URL-encoded, and use the HTTP or HTTPS scheme. See &#x27;link&#x27; parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually). Required.
      &quot;analyticsInfo&quot;: { # Tracking parameters supported by Dynamic Link. # Parameters used for tracking. See all tracking parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
        &quot;itunesConnectAnalytics&quot;: { # Parameters for iTunes Connect App Analytics. # iTunes Connect App Analytics.
          &quot;ct&quot;: &quot;A String&quot;, # Campaign text that developers can optionally add to any link in order to track sales from a specific marketing campaign.
          &quot;mt&quot;: &quot;A String&quot;, # iTune media types, including music, podcasts, audiobooks and so on.
          &quot;pt&quot;: &quot;A String&quot;, # Provider token that enables analytics for Dynamic Links from within iTunes Connect.
          &quot;at&quot;: &quot;A String&quot;, # Affiliate token used to create affiliate-coded links.
        },
        &quot;googlePlayAnalytics&quot;: { # Parameters for Google Play Campaign Measurements. [Learn more](https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#campaign-params) # Google Play Campaign Measurements.
          &quot;utmCampaign&quot;: &quot;A String&quot;, # Campaign name; used for keyword analysis to identify a specific product promotion or strategic campaign.
          &quot;utmContent&quot;: &quot;A String&quot;, # Campaign content; used for A/B testing and content-targeted ads to differentiate ads or links that point to the same URL.
          &quot;utmTerm&quot;: &quot;A String&quot;, # Campaign term; used with paid search to supply the keywords for ads.
          &quot;utmMedium&quot;: &quot;A String&quot;, # Campaign medium; used to identify a medium such as email or cost-per-click.
          &quot;gclid&quot;: &quot;A String&quot;, # [AdWords autotagging parameter](https://support.google.com/analytics/answer/1033981?hl=en); used to measure Google AdWords ads. This value is generated dynamically and should never be modified.
          &quot;utmSource&quot;: &quot;A String&quot;, # Campaign source; used to identify a search engine, newsletter, or other source.
        },
      },
      &quot;socialMetaTagInfo&quot;: { # Parameters for social meta tag params. Used to set meta tag data for link previews on social sites. # Parameters for social meta tag params. Used to set meta tag data for link previews on social sites.
        &quot;socialDescription&quot;: &quot;A String&quot;, # A short description of the link. Optional.
        &quot;socialTitle&quot;: &quot;A String&quot;, # Title to be displayed. Optional.
        &quot;socialImageLink&quot;: &quot;A String&quot;, # An image url string. Optional.
      },
      &quot;domainUriPrefix&quot;: &quot;A String&quot;, # E.g. https://maps.app.goo.gl, https://maps.page.link, https://g.co/maps More examples can be found in description of getNormalizedUriPrefix in j/c/g/firebase/dynamiclinks/uri/DdlDomain.java Will fallback to dynamic_link_domain is this field is missing
    },
    &quot;suffix&quot;: { # Short Dynamic Link suffix. # Short Dynamic Link suffix. Optional.
      &quot;customSuffix&quot;: &quot;A String&quot;, # Only applies to Option.CUSTOM.
      &quot;option&quot;: &quot;A String&quot;, # Suffix option.
    },
    &quot;name&quot;: &quot;A String&quot;, # Link name to associate with the link. It&#x27;s used for marketer to identify manually-created links in the Firebase console (https://console.firebase.google.com/). Links must be named to be tracked.
    &quot;sdkVersion&quot;: &quot;A String&quot;, # Google SDK version. Version takes the form &quot;$major.$minor.$patch&quot;
    &quot;longDynamicLink&quot;: &quot;A String&quot;, # Full long Dynamic Link URL with desired query parameters specified. For example, &quot;https://sample.app.goo.gl/?link=http://www.google.com&amp;apn=com.sample&quot;, [Learn more](https://firebase.google.com/docs/reference/dynamic-links/link-shortener).
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response to create a short Dynamic Link.
    &quot;previewLink&quot;: &quot;A String&quot;, # Preview link to show the link flow chart. (debug info.)
    &quot;managedShortLink&quot;: { # Managed Short Link. # Short Dynamic Link value. e.g. https://abcd.app.goo.gl/wxyz
      &quot;info&quot;: { # Information about a Dynamic Link. # Full Dyamic Link info
        &quot;iosInfo&quot;: { # iOS related attributes to the Dynamic Link.. # iOS related information. See iOS related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
          &quot;iosBundleId&quot;: &quot;A String&quot;, # iOS bundle ID of the app.
          &quot;iosAppStoreId&quot;: &quot;A String&quot;, # iOS App Store ID.
          &quot;iosFallbackLink&quot;: &quot;A String&quot;, # Link to open on iOS if the app is not installed.
          &quot;iosMinimumVersion&quot;: &quot;A String&quot;, # iOS minimum version.
          &quot;iosIpadBundleId&quot;: &quot;A String&quot;, # iPad bundle ID of the app.
          &quot;iosCustomScheme&quot;: &quot;A String&quot;, # Custom (destination) scheme to use for iOS. By default, we’ll use the bundle ID as the custom scheme. Developer can override this behavior using this param.
          &quot;iosIpadFallbackLink&quot;: &quot;A String&quot;, # If specified, this overrides the ios_fallback_link value on iPads.
        },
        &quot;androidInfo&quot;: { # Android related attributes to the Dynamic Link. # Android related information. See Android related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
          &quot;androidFallbackLink&quot;: &quot;A String&quot;, # Link to open on Android if the app is not installed.
          &quot;androidLink&quot;: &quot;A String&quot;, # If specified, this overrides the ‘link’ parameter on Android.
          &quot;androidMinPackageVersionCode&quot;: &quot;A String&quot;, # Minimum version code for the Android app. If the installed app’s version code is lower, then the user is taken to the Play Store.
          &quot;androidPackageName&quot;: &quot;A String&quot;, # Android package name of the app.
        },
        &quot;navigationInfo&quot;: { # Information of navigation behavior. # Information of navigation behavior of a Firebase Dynamic Links.
          &quot;enableForcedRedirect&quot;: True or False, # If this option is on, FDL click will be forced to redirect rather than show an interstitial page.
        },
        &quot;desktopInfo&quot;: { # Desktop related attributes to the Dynamic Link. # Desktop related information. See desktop related parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
          &quot;desktopFallbackLink&quot;: &quot;A String&quot;, # Link to open on desktop.
        },
        &quot;dynamicLinkDomain&quot;: &quot;A String&quot;, # Dynamic Links domain that the project owns, e.g. abcd.app.goo.gl [Learn more](https://firebase.google.com/docs/dynamic-links/android/receive) on how to set up Dynamic Link domain associated with your Firebase project. Required if missing domain_uri_prefix.
        &quot;link&quot;: &quot;A String&quot;, # The link your app will open, You can specify any URL your app can handle. This link must be a well-formatted URL, be properly URL-encoded, and use the HTTP or HTTPS scheme. See &#x27;link&#x27; parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually). Required.
        &quot;analyticsInfo&quot;: { # Tracking parameters supported by Dynamic Link. # Parameters used for tracking. See all tracking parameters in the [documentation](https://firebase.google.com/docs/dynamic-links/create-manually).
          &quot;itunesConnectAnalytics&quot;: { # Parameters for iTunes Connect App Analytics. # iTunes Connect App Analytics.
            &quot;ct&quot;: &quot;A String&quot;, # Campaign text that developers can optionally add to any link in order to track sales from a specific marketing campaign.
            &quot;mt&quot;: &quot;A String&quot;, # iTune media types, including music, podcasts, audiobooks and so on.
            &quot;pt&quot;: &quot;A String&quot;, # Provider token that enables analytics for Dynamic Links from within iTunes Connect.
            &quot;at&quot;: &quot;A String&quot;, # Affiliate token used to create affiliate-coded links.
          },
          &quot;googlePlayAnalytics&quot;: { # Parameters for Google Play Campaign Measurements. [Learn more](https://developers.google.com/analytics/devguides/collection/android/v4/campaigns#campaign-params) # Google Play Campaign Measurements.
            &quot;utmCampaign&quot;: &quot;A String&quot;, # Campaign name; used for keyword analysis to identify a specific product promotion or strategic campaign.
            &quot;utmContent&quot;: &quot;A String&quot;, # Campaign content; used for A/B testing and content-targeted ads to differentiate ads or links that point to the same URL.
            &quot;utmTerm&quot;: &quot;A String&quot;, # Campaign term; used with paid search to supply the keywords for ads.
            &quot;utmMedium&quot;: &quot;A String&quot;, # Campaign medium; used to identify a medium such as email or cost-per-click.
            &quot;gclid&quot;: &quot;A String&quot;, # [AdWords autotagging parameter](https://support.google.com/analytics/answer/1033981?hl=en); used to measure Google AdWords ads. This value is generated dynamically and should never be modified.
            &quot;utmSource&quot;: &quot;A String&quot;, # Campaign source; used to identify a search engine, newsletter, or other source.
          },
        },
        &quot;socialMetaTagInfo&quot;: { # Parameters for social meta tag params. Used to set meta tag data for link previews on social sites. # Parameters for social meta tag params. Used to set meta tag data for link previews on social sites.
          &quot;socialDescription&quot;: &quot;A String&quot;, # A short description of the link. Optional.
          &quot;socialTitle&quot;: &quot;A String&quot;, # Title to be displayed. Optional.
          &quot;socialImageLink&quot;: &quot;A String&quot;, # An image url string. Optional.
        },
        &quot;domainUriPrefix&quot;: &quot;A String&quot;, # E.g. https://maps.app.goo.gl, https://maps.page.link, https://g.co/maps More examples can be found in description of getNormalizedUriPrefix in j/c/g/firebase/dynamiclinks/uri/DdlDomain.java Will fallback to dynamic_link_domain is this field is missing
      },
      &quot;linkName&quot;: &quot;A String&quot;, # Link name defined by the creator. Required.
      &quot;creationTime&quot;: &quot;A String&quot;, # Creation timestamp of the short link.
      &quot;link&quot;: &quot;A String&quot;, # Short durable link url, for example, &quot;https://sample.app.goo.gl/xyz123&quot;. Required.
      &quot;flaggedAttribute&quot;: [ # Attributes that have been flagged about this short url.
        &quot;A String&quot;,
      ],
      &quot;visibility&quot;: &quot;A String&quot;, # Visibility status of link.
    },
    &quot;warning&quot;: [ # Information about potential warnings on link creation.
      { # Dynamic Links warning messages.
        &quot;warningCode&quot;: &quot;A String&quot;, # The warning code.
        &quot;warningMessage&quot;: &quot;A String&quot;, # The warning message to help developers improve their requests.
        &quot;warningDocumentLink&quot;: &quot;A String&quot;, # The document describing the warning, and helps resolve.
      },
    ],
  }</pre>
</div>

</body></html>