<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="androidmanagement_v1.html">Android Management API</a> . <a href="androidmanagement_v1.enterprises.html">enterprises</a> . <a href="androidmanagement_v1.enterprises.applications.html">applications</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="#get">get(name, languageCode=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets info about an application.</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="get">get(name, languageCode=None, x__xgafv=None)</code>
  <pre>Gets info about an application.

Args:
  name: string, The name of the application in the form enterprises/{enterpriseId}/applications/{package_name}. (required)
  languageCode: string, The preferred language for localized application info, as a BCP47 tag (e.g. &quot;en-US&quot;, &quot;de&quot;). If not specified the default language of the application will be used.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Information about an app.
  &quot;appTracks&quot;: [ # Application tracks visible to the enterprise.
    { # Id to name association of a app track.
      &quot;trackAlias&quot;: &quot;A String&quot;, # The track name associated with the trackId, set in the Play Console. The name is modifiable from Play Console.
      &quot;trackId&quot;: &quot;A String&quot;, # The unmodifiable unique track identifier, taken from the releaseTrackId in the URL of the Play Console page that displays the app’s track information.
    },
  ],
  &quot;managedProperties&quot;: [ # The set of managed properties available to be pre-configured for the app.
    { # Managed property.
      &quot;defaultValue&quot;: &quot;&quot;, # The default value of the property. BUNDLE_ARRAY properties don&#x27;t have a default value.
      &quot;description&quot;: &quot;A String&quot;, # A longer description of the property, providing more detail of what it affects. Localized.
      &quot;entries&quot;: [ # For CHOICE or MULTISELECT properties, the list of possible entries.
        { # An entry of a managed property.
          &quot;name&quot;: &quot;A String&quot;, # The human-readable name of the value. Localized.
          &quot;value&quot;: &quot;A String&quot;, # The machine-readable value of the entry, which should be used in the configuration. Not localized.
        },
      ],
      &quot;key&quot;: &quot;A String&quot;, # The unique key that the app uses to identify the property, e.g. &quot;com.google.android.gm.fieldname&quot;.
      &quot;nestedProperties&quot;: [ # For BUNDLE_ARRAY properties, the list of nested properties. A BUNDLE_ARRAY property is at most two levels deep.
        # Object with schema name: ManagedProperty
      ],
      &quot;title&quot;: &quot;A String&quot;, # The name of the property. Localized.
      &quot;type&quot;: &quot;A String&quot;, # The type of the property.
    },
  ],
  &quot;name&quot;: &quot;A String&quot;, # The name of the app in the form enterprises/{enterpriseId}/applications/{package_name}.
  &quot;permissions&quot;: [ # The permissions required by the app.
    { # A permission required by the app.
      &quot;description&quot;: &quot;A String&quot;, # A longer description of the permission, providing more detail on what it affects. Localized.
      &quot;name&quot;: &quot;A String&quot;, # The name of the permission. Localized.
      &quot;permissionId&quot;: &quot;A String&quot;, # An opaque string uniquely identifying the permission. Not localized.
    },
  ],
  &quot;title&quot;: &quot;A String&quot;, # The title of the app. Localized.
}</pre>
</div>

</body></html>