<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;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;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;gclid&quot;: &quot;A String&quot;, # Deprecated; FDL SDK does not process nor log it.
        &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;utmMedium&quot;: &quot;A String&quot;, # Campaign medium; used to identify a medium such as email or cost-per-click.
        &quot;utmSource&quot;: &quot;A String&quot;, # Campaign source; used to identify a search engine, newsletter, or other source.
        &quot;utmTerm&quot;: &quot;A String&quot;, # Campaign term; used with paid search to supply the keywords for ads.
      },
      &quot;itunesConnectAnalytics&quot;: { # Parameters for iTunes Connect App Analytics. # iTunes Connect App Analytics.
        &quot;at&quot;: &quot;A String&quot;, # Affiliate token used to create affiliate-coded links.
        &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;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;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;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;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;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;iosAppStoreId&quot;: &quot;A String&quot;, # iOS App Store ID.
      &quot;iosBundleId&quot;: &quot;A String&quot;, # iOS 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;iosFallbackLink&quot;: &quot;A String&quot;, # Link to open on iOS if the app is not installed.
      &quot;iosIpadBundleId&quot;: &quot;A String&quot;, # iPad bundle ID of the app.
      &quot;iosIpadFallbackLink&quot;: &quot;A String&quot;, # If specified, this overrides the ios_fallback_link value on iPads.
      &quot;iosMinimumVersion&quot;: &quot;A String&quot;, # iOS minimum version.
    },
    &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;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;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;socialImageLink&quot;: &quot;A String&quot;, # An image url string. Optional.
      &quot;socialTitle&quot;: &quot;A String&quot;, # Title to be displayed. Optional.
    },
  },
  &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).
  &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;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.
  },
}

  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;managedShortLink&quot;: { # Managed Short Link. # Short Dynamic Link value. e.g. https://abcd.app.goo.gl/wxyz
    &quot;creationTime&quot;: &quot;A String&quot;, # Creation timestamp of the short link.
    &quot;flaggedAttribute&quot;: [ # Attributes that have been flagged about this short url.
      &quot;A String&quot;,
    ],
    &quot;info&quot;: { # Information about a Dynamic Link. # Full Dyamic Link info
      &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;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;gclid&quot;: &quot;A String&quot;, # Deprecated; FDL SDK does not process nor log it.
          &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;utmMedium&quot;: &quot;A String&quot;, # Campaign medium; used to identify a medium such as email or cost-per-click.
          &quot;utmSource&quot;: &quot;A String&quot;, # Campaign source; used to identify a search engine, newsletter, or other source.
          &quot;utmTerm&quot;: &quot;A String&quot;, # Campaign term; used with paid search to supply the keywords for ads.
        },
        &quot;itunesConnectAnalytics&quot;: { # Parameters for iTunes Connect App Analytics. # iTunes Connect App Analytics.
          &quot;at&quot;: &quot;A String&quot;, # Affiliate token used to create affiliate-coded links.
          &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;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;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;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;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;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;iosAppStoreId&quot;: &quot;A String&quot;, # iOS App Store ID.
        &quot;iosBundleId&quot;: &quot;A String&quot;, # iOS 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;iosFallbackLink&quot;: &quot;A String&quot;, # Link to open on iOS if the app is not installed.
        &quot;iosIpadBundleId&quot;: &quot;A String&quot;, # iPad bundle ID of the app.
        &quot;iosIpadFallbackLink&quot;: &quot;A String&quot;, # If specified, this overrides the ios_fallback_link value on iPads.
        &quot;iosMinimumVersion&quot;: &quot;A String&quot;, # iOS minimum version.
      },
      &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;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;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;socialImageLink&quot;: &quot;A String&quot;, # An image url string. Optional.
        &quot;socialTitle&quot;: &quot;A String&quot;, # Title to be displayed. Optional.
      },
    },
    &quot;link&quot;: &quot;A String&quot;, # Short durable link url, for example, &quot;https://sample.app.goo.gl/xyz123&quot;. Required.
    &quot;linkName&quot;: &quot;A String&quot;, # Link name defined by the creator. Required.
    &quot;visibility&quot;: &quot;A String&quot;, # Visibility status of link.
  },
  &quot;previewLink&quot;: &quot;A String&quot;, # Preview link to show the link flow chart. (debug info.)
  &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;warningDocumentLink&quot;: &quot;A String&quot;, # The document describing the warning, and helps resolve.
      &quot;warningMessage&quot;: &quot;A String&quot;, # The warning message to help developers improve their requests.
    },
  ],
}</pre>
</div>

</body></html>