<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="#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="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. "en-US", "de"). 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.
    "managedProperties": [ # The set of managed properties available to be pre-configured for the app.
      { # Managed property.
        "nestedProperties": [ # For BUNDLE_ARRAY properties, the list of nested properties. A BUNDLE_ARRAY property is at most two levels deep.
          # Object with schema name: ManagedProperty
        ],
        "description": "A String", # A longer description of the property, providing more detail of what it affects. Localized.
        "title": "A String", # The name of the property. Localized.
        "defaultValue": "", # The default value of the property. BUNDLE_ARRAY properties don't have a default value.
        "key": "A String", # The unique key that the app uses to identify the property, e.g. "com.google.android.gm.fieldname".
        "entries": [ # For CHOICE or MULTISELECT properties, the list of possible entries.
          { # An entry of a managed property.
            "name": "A String", # The human-readable name of the value. Localized.
            "value": "A String", # The machine-readable value of the entry, which should be used in the configuration. Not localized.
          },
        ],
        "type": "A String", # The type of the property.
      },
    ],
    "permissions": [ # The permissions required by the app.
      { # A permission required by the app.
        "permissionId": "A String", # An opaque string uniquely identifying the permission. Not localized.
        "name": "A String", # The name of the permission. Localized.
        "description": "A String", # A longer description of the permission, providing more detail on what it affects. Localized.
      },
    ],
    "name": "A String", # The name of the app in the form enterprises/{enterpriseId}/applications/{package_name}.
    "title": "A String", # The title of the app. Localized.
  }</pre>
</div>

</body></html>