<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="androidpublisher_v2.html">Google Play Developer API</a> . <a href="androidpublisher_v2.edits.html">edits</a> . <a href="androidpublisher_v2.edits.bundles.html">bundles</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#list">list(packageName, editId)</a></code></p>
<p class="firstline">A description of how to use this function</p>
<p class="toc_element">
  <code><a href="#upload">upload(packageName, editId, media_body=None, media_mime_type=None, ackBundleInstallationWarning=None)</a></code></p>
<p class="firstline">Uploads a new Android App Bundle to this edit. If you are using the Google API client libraries, please increase the timeout of the http request before calling this endpoint (a timeout of 2 minutes is recommended). See: https://developers.google.com/api-client-library/java/google-api-java-client/errors for an example in java.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="list">list(packageName, editId)</code>
  <pre>A description of how to use this function

Args:
  packageName: string, Unique identifier for the Android app that is being updated; for example, "com.spiffygame". (required)
  editId: string, Unique identifier for this edit. (required)

Returns:
  An object of the form:

    {
    "kind": "androidpublisher#bundlesListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidpublisher#bundlesListResponse".
    "bundles": [
      {
        "versionCode": 42, # The version code of the Android App Bundle. As specified in the Android App Bundle's base module APK manifest file.
        "sha256": "A String", # A sha256 hash of the upload payload, encoded as a hex string and matching the output of the sha256sum command.
        "sha1": "A String", # A sha1 hash of the upload payload, encoded as a hex string and matching the output of the sha1sum command.
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="upload">upload(packageName, editId, media_body=None, media_mime_type=None, ackBundleInstallationWarning=None)</code>
  <pre>Uploads a new Android App Bundle to this edit. If you are using the Google API client libraries, please increase the timeout of the http request before calling this endpoint (a timeout of 2 minutes is recommended). See: https://developers.google.com/api-client-library/java/google-api-java-client/errors for an example in java.

Args:
  packageName: string, Unique identifier for the Android app that is being updated; for example, "com.spiffygame". (required)
  editId: string, Unique identifier for this edit. (required)
  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
  ackBundleInstallationWarning: boolean, Must be set to true if the bundle installation may trigger a warning on user devices (for example, if installation size may be over a threshold, typically 100 MB).

Returns:
  An object of the form:

    {
    "versionCode": 42, # The version code of the Android App Bundle. As specified in the Android App Bundle's base module APK manifest file.
    "sha256": "A String", # A sha256 hash of the upload payload, encoded as a hex string and matching the output of the sha256sum command.
    "sha1": "A String", # A sha1 hash of the upload payload, encoded as a hex string and matching the output of the sha1sum command.
  }</pre>
</div>

</body></html>