<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="apigee_v1.html">Apigee API</a> . <a href="apigee_v1.organizations.html">organizations</a> . <a href="apigee_v1.organizations.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(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the app profile for the specified app ID.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, apiProduct=None, apptype=None, expand=None, ids=None, includeCred=None, keyStatus=None, rows=None, startKey=None, status=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists IDs of apps within an organization that have the specified app status (approved or revoked) or are of the specified app type (developer or company).</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, x__xgafv=None)</code>
  <pre>Gets the app profile for the specified app ID.

Args:
  name: string, Required. App ID in the following format: `organizations/{org}/apps/{app}` (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;apiProducts&quot;: [ # List of API products associated with the app.
    {
      &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product.
      &quot;status&quot;: &quot;A String&quot;, # Status of the API product.
    },
  ],
  &quot;appId&quot;: &quot;A String&quot;, # ID of the app.
  &quot;attributes&quot;: [ # List of attributes.
    { # Key-value pair to store extra metadata.
      &quot;name&quot;: &quot;A String&quot;, # API key of the attribute.
      &quot;value&quot;: &quot;A String&quot;, # Value of the attribute.
    },
  ],
  &quot;callbackUrl&quot;: &quot;A String&quot;, # Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to apps.
  &quot;companyName&quot;: &quot;A String&quot;, # Name of the company that owns the app.
  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Unix time when the app was created.
  &quot;credentials&quot;: [ # Output only. Set of credentials for the app. Credentials are API key/secret pairs associated with API products.
    {
      &quot;apiProducts&quot;: [ # List of API products this credential can be used for.
        {
          &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product.
          &quot;status&quot;: &quot;A String&quot;, # Status of the API product.
        },
      ],
      &quot;attributes&quot;: [ # List of attributes associated with this credential.
        { # Key-value pair to store extra metadata.
          &quot;name&quot;: &quot;A String&quot;, # API key of the attribute.
          &quot;value&quot;: &quot;A String&quot;, # Value of the attribute.
        },
      ],
      &quot;consumerKey&quot;: &quot;A String&quot;, # Consumer key.
      &quot;consumerSecret&quot;: &quot;A String&quot;, # Secret key.
      &quot;expiresAt&quot;: &quot;A String&quot;, # Time the credential will expire in milliseconds since epoch.
      &quot;issuedAt&quot;: &quot;A String&quot;, # Time the credential was issued in milliseconds since epoch.
      &quot;scopes&quot;: [ # List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app.
        &quot;A String&quot;,
      ],
      &quot;status&quot;: &quot;A String&quot;, # Status of the credential.
    },
  ],
  &quot;developerId&quot;: &quot;A String&quot;, # ID of the developer.
  &quot;keyExpiresIn&quot;: &quot;A String&quot;, # Duration, in milliseconds, of the consumer key that will be generated for the app. The default value, -1, indicates an infinite validity period. Once set, the expiration can&#x27;t be updated. json key: keyExpiresIn
  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Last modified time as milliseconds since epoch.
  &quot;name&quot;: &quot;A String&quot;, # Name of the app.
  &quot;scopes&quot;: [ # Scopes to apply to the app. The specified scope names must already exist on the API product that you associate with the app.
    &quot;A String&quot;,
  ],
  &quot;status&quot;: &quot;A String&quot;, # Status of the credential.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, apiProduct=None, apptype=None, expand=None, ids=None, includeCred=None, keyStatus=None, rows=None, startKey=None, status=None, x__xgafv=None)</code>
  <pre>Lists IDs of apps within an organization that have the specified app status (approved or revoked) or are of the specified app type (developer or company).

Args:
  parent: string, Required. Resource path of the parent in the following format: `organizations/{org}` (required)
  apiProduct: string, API product.
  apptype: string, Optional. Filter by the type of the app. Valid values are `company` or `developer`. Defaults to `developer`.
  expand: boolean, Optional. Flag that specifies whether to return an expanded list of apps for the organization. Defaults to `false`.
  ids: string, Optional. Comma-separated list of app IDs on which to filter.
  includeCred: boolean, Optional. Flag that specifies whether to include credentials in the response.
  keyStatus: string, Optional. Key status of the app. Valid values include `approved` or `revoked`. Defaults to `approved`.
  rows: string, Optional. Maximum number of app IDs to return. Defaults to 10000.
  startKey: string, Returns the list of apps starting from the specified app ID.
  status: string, Optional. Filter by the status of the app. Valid values are `approved` or `revoked`. Defaults to `approved`.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;app&quot;: [
    {
      &quot;apiProducts&quot;: [ # List of API products associated with the app.
        {
          &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product.
          &quot;status&quot;: &quot;A String&quot;, # Status of the API product.
        },
      ],
      &quot;appId&quot;: &quot;A String&quot;, # ID of the app.
      &quot;attributes&quot;: [ # List of attributes.
        { # Key-value pair to store extra metadata.
          &quot;name&quot;: &quot;A String&quot;, # API key of the attribute.
          &quot;value&quot;: &quot;A String&quot;, # Value of the attribute.
        },
      ],
      &quot;callbackUrl&quot;: &quot;A String&quot;, # Callback URL used by OAuth 2.0 authorization servers to communicate authorization codes back to apps.
      &quot;companyName&quot;: &quot;A String&quot;, # Name of the company that owns the app.
      &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Unix time when the app was created.
      &quot;credentials&quot;: [ # Output only. Set of credentials for the app. Credentials are API key/secret pairs associated with API products.
        {
          &quot;apiProducts&quot;: [ # List of API products this credential can be used for.
            {
              &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product.
              &quot;status&quot;: &quot;A String&quot;, # Status of the API product.
            },
          ],
          &quot;attributes&quot;: [ # List of attributes associated with this credential.
            { # Key-value pair to store extra metadata.
              &quot;name&quot;: &quot;A String&quot;, # API key of the attribute.
              &quot;value&quot;: &quot;A String&quot;, # Value of the attribute.
            },
          ],
          &quot;consumerKey&quot;: &quot;A String&quot;, # Consumer key.
          &quot;consumerSecret&quot;: &quot;A String&quot;, # Secret key.
          &quot;expiresAt&quot;: &quot;A String&quot;, # Time the credential will expire in milliseconds since epoch.
          &quot;issuedAt&quot;: &quot;A String&quot;, # Time the credential was issued in milliseconds since epoch.
          &quot;scopes&quot;: [ # List of scopes to apply to the app. Specified scopes must already exist on the API product that you associate with the app.
            &quot;A String&quot;,
          ],
          &quot;status&quot;: &quot;A String&quot;, # Status of the credential.
        },
      ],
      &quot;developerId&quot;: &quot;A String&quot;, # ID of the developer.
      &quot;keyExpiresIn&quot;: &quot;A String&quot;, # Duration, in milliseconds, of the consumer key that will be generated for the app. The default value, -1, indicates an infinite validity period. Once set, the expiration can&#x27;t be updated. json key: keyExpiresIn
      &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Last modified time as milliseconds since epoch.
      &quot;name&quot;: &quot;A String&quot;, # Name of the app.
      &quot;scopes&quot;: [ # Scopes to apply to the app. The specified scope names must already exist on the API product that you associate with the app.
        &quot;A String&quot;,
      ],
      &quot;status&quot;: &quot;A String&quot;, # Status of the credential.
    },
  ],
}</pre>
</div>

</body></html>