<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="drive_v2.html">Drive API</a> . <a href="drive_v2.apps.html">apps</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(appId)</a></code></p>
<p class="firstline">Gets a specific app.</p>
<p class="toc_element">
  <code><a href="#list">list(appFilterExtensions=None, appFilterMimeTypes=None, languageCode=None)</a></code></p>
<p class="firstline">Lists a user's installed apps.</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(appId)</code>
  <pre>Gets a specific app.

Args:
  appId: string, The ID of the app. (required)

Returns:
  An object of the form:

    { # The apps resource provides a list of the apps that a user has installed, with information about each app&#x27;s supported MIME types, file extensions, and other details.
    &quot;authorized&quot;: True or False, # Whether the app is authorized to access data on the user&#x27;s Drive.
    &quot;createInFolderTemplate&quot;: &quot;A String&quot;, # The template url to create a new file with this app in a given folder. The template will contain {folderId} to be replaced by the folder to create the new file in.
    &quot;createUrl&quot;: &quot;A String&quot;, # The url to create a new file with this app.
    &quot;hasDriveWideScope&quot;: True or False, # Whether the app has drive-wide scope. An app with drive-wide scope can access all files in the user&#x27;s drive.
    &quot;icons&quot;: [ # The various icons for the app.
      {
        &quot;category&quot;: &quot;A String&quot;, # Category of the icon. Allowed values are:
            # - application - icon for the application
            # - document - icon for a file associated with the app
            # - documentShared - icon for a shared file associated with the app
        &quot;iconUrl&quot;: &quot;A String&quot;, # URL for the icon.
        &quot;size&quot;: 42, # Size of the icon. Represented as the maximum of the width and height.
      },
    ],
    &quot;id&quot;: &quot;A String&quot;, # The ID of the app.
    &quot;installed&quot;: True or False, # Whether the app is installed.
    &quot;kind&quot;: &quot;drive#app&quot;, # This is always drive#app.
    &quot;longDescription&quot;: &quot;A String&quot;, # A long description of the app.
    &quot;name&quot;: &quot;A String&quot;, # The name of the app.
    &quot;objectType&quot;: &quot;A String&quot;, # The type of object this app creates (e.g. Chart). If empty, the app name should be used instead.
    &quot;openUrlTemplate&quot;: &quot;A String&quot;, # The template url for opening files with this app. The template will contain {ids} and/or {exportIds} to be replaced by the actual file ids. See  Open Files  for the full documentation.
    &quot;primaryFileExtensions&quot;: [ # The list of primary file extensions.
      &quot;A String&quot;,
    ],
    &quot;primaryMimeTypes&quot;: [ # The list of primary mime types.
      &quot;A String&quot;,
    ],
    &quot;productId&quot;: &quot;A String&quot;, # The ID of the product listing for this app.
    &quot;productUrl&quot;: &quot;A String&quot;, # A link to the product listing for this app.
    &quot;secondaryFileExtensions&quot;: [ # The list of secondary file extensions.
      &quot;A String&quot;,
    ],
    &quot;secondaryMimeTypes&quot;: [ # The list of secondary mime types.
      &quot;A String&quot;,
    ],
    &quot;shortDescription&quot;: &quot;A String&quot;, # A short description of the app.
    &quot;supportsCreate&quot;: True or False, # Whether this app supports creating new objects.
    &quot;supportsImport&quot;: True or False, # Whether this app supports importing from Docs Editors.
    &quot;supportsMultiOpen&quot;: True or False, # Whether this app supports opening more than one file.
    &quot;supportsOfflineCreate&quot;: True or False, # Whether this app supports creating new files when offline.
    &quot;useByDefault&quot;: True or False, # Whether the app is selected as the default handler for the types it supports.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(appFilterExtensions=None, appFilterMimeTypes=None, languageCode=None)</code>
  <pre>Lists a user&#x27;s installed apps.

Args:
  appFilterExtensions: string, A comma-separated list of file extensions for open with filtering. All apps within the given app query scope which can open any of the given file extensions will be included in the response. If appFilterMimeTypes are provided as well, the result is a union of the two resulting app lists.
  appFilterMimeTypes: string, A comma-separated list of MIME types for open with filtering. All apps within the given app query scope which can open any of the given MIME types will be included in the response. If appFilterExtensions are provided as well, the result is a union of the two resulting app lists.
  languageCode: string, A language or locale code, as defined by BCP 47, with some extensions from Unicode&#x27;s LDML format (http://www.unicode.org/reports/tr35/).

Returns:
  An object of the form:

    { # A list of third-party applications which the user has installed or given access to Google Drive.
    &quot;defaultAppIds&quot;: [ # List of app IDs that the user has specified to use by default. The list is in reverse-priority order (lowest to highest).
      &quot;A String&quot;,
    ],
    &quot;etag&quot;: &quot;A String&quot;, # The ETag of the list.
    &quot;items&quot;: [ # The list of apps.
      { # The apps resource provides a list of the apps that a user has installed, with information about each app&#x27;s supported MIME types, file extensions, and other details.
        &quot;authorized&quot;: True or False, # Whether the app is authorized to access data on the user&#x27;s Drive.
        &quot;createInFolderTemplate&quot;: &quot;A String&quot;, # The template url to create a new file with this app in a given folder. The template will contain {folderId} to be replaced by the folder to create the new file in.
        &quot;createUrl&quot;: &quot;A String&quot;, # The url to create a new file with this app.
        &quot;hasDriveWideScope&quot;: True or False, # Whether the app has drive-wide scope. An app with drive-wide scope can access all files in the user&#x27;s drive.
        &quot;icons&quot;: [ # The various icons for the app.
          {
            &quot;category&quot;: &quot;A String&quot;, # Category of the icon. Allowed values are:
                # - application - icon for the application
                # - document - icon for a file associated with the app
                # - documentShared - icon for a shared file associated with the app
            &quot;iconUrl&quot;: &quot;A String&quot;, # URL for the icon.
            &quot;size&quot;: 42, # Size of the icon. Represented as the maximum of the width and height.
          },
        ],
        &quot;id&quot;: &quot;A String&quot;, # The ID of the app.
        &quot;installed&quot;: True or False, # Whether the app is installed.
        &quot;kind&quot;: &quot;drive#app&quot;, # This is always drive#app.
        &quot;longDescription&quot;: &quot;A String&quot;, # A long description of the app.
        &quot;name&quot;: &quot;A String&quot;, # The name of the app.
        &quot;objectType&quot;: &quot;A String&quot;, # The type of object this app creates (e.g. Chart). If empty, the app name should be used instead.
        &quot;openUrlTemplate&quot;: &quot;A String&quot;, # The template url for opening files with this app. The template will contain {ids} and/or {exportIds} to be replaced by the actual file ids. See  Open Files  for the full documentation.
        &quot;primaryFileExtensions&quot;: [ # The list of primary file extensions.
          &quot;A String&quot;,
        ],
        &quot;primaryMimeTypes&quot;: [ # The list of primary mime types.
          &quot;A String&quot;,
        ],
        &quot;productId&quot;: &quot;A String&quot;, # The ID of the product listing for this app.
        &quot;productUrl&quot;: &quot;A String&quot;, # A link to the product listing for this app.
        &quot;secondaryFileExtensions&quot;: [ # The list of secondary file extensions.
          &quot;A String&quot;,
        ],
        &quot;secondaryMimeTypes&quot;: [ # The list of secondary mime types.
          &quot;A String&quot;,
        ],
        &quot;shortDescription&quot;: &quot;A String&quot;, # A short description of the app.
        &quot;supportsCreate&quot;: True or False, # Whether this app supports creating new objects.
        &quot;supportsImport&quot;: True or False, # Whether this app supports importing from Docs Editors.
        &quot;supportsMultiOpen&quot;: True or False, # Whether this app supports opening more than one file.
        &quot;supportsOfflineCreate&quot;: True or False, # Whether this app supports creating new files when offline.
        &quot;useByDefault&quot;: True or False, # Whether the app is selected as the default handler for the types it supports.
      },
    ],
    &quot;kind&quot;: &quot;drive#appList&quot;, # This is always drive#appList.
    &quot;selfLink&quot;: &quot;A String&quot;, # A link back to this list.
  }</pre>
</div>

</body></html>