<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;title&quot;: &quot;A String&quot;, # The title of the app. Localized.
    &quot;name&quot;: &quot;A String&quot;, # The name of the app in the form enterprises/{enterpriseId}/applications/{package_name}.
    &quot;managedProperties&quot;: [ # The set of managed properties available to be pre-configured for the app.
      { # Managed property.
        &quot;description&quot;: &quot;A String&quot;, # A longer description of the property, providing more detail of what it affects. Localized.
        &quot;defaultValue&quot;: &quot;&quot;, # The default value of the property. BUNDLE_ARRAY properties don&#x27;t have a default value.
        &quot;type&quot;: &quot;A String&quot;, # The type of the property.
        &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;title&quot;: &quot;A String&quot;, # The name of the property. 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;appTracks&quot;: [ # Application tracks visible to the enterprise.
      { # Id to name association of a app track.
        &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;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;permissions&quot;: [ # The permissions required by the app.
      { # A permission required by the app.
        &quot;name&quot;: &quot;A String&quot;, # The name of the permission. Localized.
        &quot;description&quot;: &quot;A String&quot;, # A longer description of the permission, providing more detail on what it affects. Localized.
        &quot;permissionId&quot;: &quot;A String&quot;, # An opaque string uniquely identifying the permission. Not localized.
      },
    ],
  }</pre>
</div>

</body></html>