<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.developers.html">developers</a> . <a href="apigee_v1.organizations.developers.apps.html">apps</a> . <a href="apigee_v1.organizations.developers.apps.keys.html">keys</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="apigee_v1.organizations.developers.apps.keys.apiproducts.html">apiproducts()</a></code>
</p>
<p class="firstline">Returns the apiproducts Resource.</p>

<p class="toc_element">
  <code><a href="apigee_v1.organizations.developers.apps.keys.create.html">create()</a></code>
</p>
<p class="firstline">Returns the create Resource.</p>

<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="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes an app's consumer key and removes all API products associated with the app. After the consumer key is deleted, it cannot be used to access any APIs. **Note**: After you delete a consumer key, you may want to: 1. Create a new consumer key and secret for the developer app using the CreateDeveloperAppKey API, and subsequently add an API product to the key using the UpdateDeveloperAppKey API. 2. Delete the developer app, if it is no longer required.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets details for a consumer key for a developer app, including the key and secret value, associated API products, and other information.</p>
<p class="toc_element">
  <code><a href="#replaceDeveloperAppKey">replaceDeveloperAppKey(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates the scope of an app. This API replaces the existing scopes with those specified in the request. Include or exclude any existing scopes that you want to retain or delete, respectively. The specified scopes must already be defined for the API products associated with the app. This API sets the `scopes` element under the `apiProducts` element in the attributes of the app.</p>
<p class="toc_element">
  <code><a href="#updateDeveloperAppKey">updateDeveloperAppKey(name, action=None, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Adds an API product to a developer app key, enabling the app that holds the key to access the API resources bundled in the API product. In addition, you can add attributes to a developer app key. This API replaces the existing attributes with those specified in the request. Include or exclude any existing attributes that you want to retain or delete, respectively. You can use the same key to access all API products associated with the app.</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="delete">delete(name, x__xgafv=None)</code>
  <pre>Deletes an app&#x27;s consumer key and removes all API products associated with the app. After the consumer key is deleted, it cannot be used to access any APIs. **Note**: After you delete a consumer key, you may want to: 1. Create a new consumer key and secret for the developer app using the CreateDeveloperAppKey API, and subsequently add an API product to the key using the UpdateDeveloperAppKey API. 2. Delete the developer app, if it is no longer required.

Args:
  name: string, Name of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}` (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 for which the credential can be used. **Note**: Do not specify the list of API products when creating a consumer key and secret for a developer app. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created.
    &quot;&quot;,
  ],
  &quot;attributes&quot;: [ # List of attributes associated with the 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 developer app expires in milliseconds since epoch.
  &quot;expiresInSeconds&quot;: &quot;A String&quot;, # Input only. Expiration time, in seconds, for the consumer key. If not set or left to the default value of `-1`, the API key never expires. The expiration time can&#x27;t be updated after it is set.
  &quot;issuedAt&quot;: &quot;A String&quot;, # Time the developer app was created in milliseconds since epoch.
  &quot;scopes&quot;: [ # Scopes to apply to the app. The specified scope names must already be defined for the API product that you associate with the app.
    &quot;A String&quot;,
  ],
  &quot;status&quot;: &quot;A String&quot;, # Status of the credential. Valid values include `approved` or `revoked`.
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets details for a consumer key for a developer app, including the key and secret value, associated API products, and other information.

Args:
  name: string, Name of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}` (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 for which the credential can be used. **Note**: Do not specify the list of API products when creating a consumer key and secret for a developer app. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created.
    &quot;&quot;,
  ],
  &quot;attributes&quot;: [ # List of attributes associated with the 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 developer app expires in milliseconds since epoch.
  &quot;expiresInSeconds&quot;: &quot;A String&quot;, # Input only. Expiration time, in seconds, for the consumer key. If not set or left to the default value of `-1`, the API key never expires. The expiration time can&#x27;t be updated after it is set.
  &quot;issuedAt&quot;: &quot;A String&quot;, # Time the developer app was created in milliseconds since epoch.
  &quot;scopes&quot;: [ # Scopes to apply to the app. The specified scope names must already be defined for the API product that you associate with the app.
    &quot;A String&quot;,
  ],
  &quot;status&quot;: &quot;A String&quot;, # Status of the credential. Valid values include `approved` or `revoked`.
}</pre>
</div>

<div class="method">
    <code class="details" id="replaceDeveloperAppKey">replaceDeveloperAppKey(name, body=None, x__xgafv=None)</code>
  <pre>Updates the scope of an app. This API replaces the existing scopes with those specified in the request. Include or exclude any existing scopes that you want to retain or delete, respectively. The specified scopes must already be defined for the API products associated with the app. This API sets the `scopes` element under the `apiProducts` element in the attributes of the app.

Args:
  name: string, Name of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}` (required)
  body: object, The request body.
    The object takes the form of:

{
  &quot;apiProducts&quot;: [ # List of API products for which the credential can be used. **Note**: Do not specify the list of API products when creating a consumer key and secret for a developer app. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created.
    &quot;&quot;,
  ],
  &quot;attributes&quot;: [ # List of attributes associated with the 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 developer app expires in milliseconds since epoch.
  &quot;expiresInSeconds&quot;: &quot;A String&quot;, # Input only. Expiration time, in seconds, for the consumer key. If not set or left to the default value of `-1`, the API key never expires. The expiration time can&#x27;t be updated after it is set.
  &quot;issuedAt&quot;: &quot;A String&quot;, # Time the developer app was created in milliseconds since epoch.
  &quot;scopes&quot;: [ # Scopes to apply to the app. The specified scope names must already be defined for the API product that you associate with the app.
    &quot;A String&quot;,
  ],
  &quot;status&quot;: &quot;A String&quot;, # Status of the credential. Valid values include `approved` or `revoked`.
}

  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 for which the credential can be used. **Note**: Do not specify the list of API products when creating a consumer key and secret for a developer app. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created.
    &quot;&quot;,
  ],
  &quot;attributes&quot;: [ # List of attributes associated with the 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 developer app expires in milliseconds since epoch.
  &quot;expiresInSeconds&quot;: &quot;A String&quot;, # Input only. Expiration time, in seconds, for the consumer key. If not set or left to the default value of `-1`, the API key never expires. The expiration time can&#x27;t be updated after it is set.
  &quot;issuedAt&quot;: &quot;A String&quot;, # Time the developer app was created in milliseconds since epoch.
  &quot;scopes&quot;: [ # Scopes to apply to the app. The specified scope names must already be defined for the API product that you associate with the app.
    &quot;A String&quot;,
  ],
  &quot;status&quot;: &quot;A String&quot;, # Status of the credential. Valid values include `approved` or `revoked`.
}</pre>
</div>

<div class="method">
    <code class="details" id="updateDeveloperAppKey">updateDeveloperAppKey(name, action=None, body=None, x__xgafv=None)</code>
  <pre>Adds an API product to a developer app key, enabling the app that holds the key to access the API resources bundled in the API product. In addition, you can add attributes to a developer app key. This API replaces the existing attributes with those specified in the request. Include or exclude any existing attributes that you want to retain or delete, respectively. You can use the same key to access all API products associated with the app.

Args:
  name: string, Name of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps/{app}/keys/{key}` (required)
  body: object, The request body.
    The object takes the form of:

{
  &quot;apiProducts&quot;: [ # List of API products for which the credential can be used. **Note**: Do not specify the list of API products when creating a consumer key and secret for a developer app. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created.
    &quot;&quot;,
  ],
  &quot;attributes&quot;: [ # List of attributes associated with the 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 developer app expires in milliseconds since epoch.
  &quot;expiresInSeconds&quot;: &quot;A String&quot;, # Input only. Expiration time, in seconds, for the consumer key. If not set or left to the default value of `-1`, the API key never expires. The expiration time can&#x27;t be updated after it is set.
  &quot;issuedAt&quot;: &quot;A String&quot;, # Time the developer app was created in milliseconds since epoch.
  &quot;scopes&quot;: [ # Scopes to apply to the app. The specified scope names must already be defined for the API product that you associate with the app.
    &quot;A String&quot;,
  ],
  &quot;status&quot;: &quot;A String&quot;, # Status of the credential. Valid values include `approved` or `revoked`.
}

  action: string, Approve or revoke the consumer key by setting this value to `approve` or `revoke`, respectively.
  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 for which the credential can be used. **Note**: Do not specify the list of API products when creating a consumer key and secret for a developer app. Instead, use the UpdateDeveloperAppKey API to make the association after the consumer key and secret are created.
    &quot;&quot;,
  ],
  &quot;attributes&quot;: [ # List of attributes associated with the 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 developer app expires in milliseconds since epoch.
  &quot;expiresInSeconds&quot;: &quot;A String&quot;, # Input only. Expiration time, in seconds, for the consumer key. If not set or left to the default value of `-1`, the API key never expires. The expiration time can&#x27;t be updated after it is set.
  &quot;issuedAt&quot;: &quot;A String&quot;, # Time the developer app was created in milliseconds since epoch.
  &quot;scopes&quot;: [ # Scopes to apply to the app. The specified scope names must already be defined for the API product that you associate with the app.
    &quot;A String&quot;,
  ],
  &quot;status&quot;: &quot;A String&quot;, # Status of the credential. Valid values include `approved` or `revoked`.
}</pre>
</div>

</body></html>