<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.subscriptions.html">subscriptions</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="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a subscription to an API product. </p>
<p class="toc_element">
  <code><a href="#expire">expire(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Expires an API product subscription immediately.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets details for an API product subscription.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, count=None, startKey=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists all API product subscriptions for a developer.</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="create">create(parent, body=None, x__xgafv=None)</code>
  <pre>Creates a subscription to an API product. 

Args:
  parent: string, Required. Email address of the developer that is purchasing a subscription to the API product. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` (required)
  body: object, The request body.
    The object takes the form of:

{ # Structure of a DeveloperSubscription.
  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product for which the developer is purchasing a subscription.
  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was created in milliseconds since epoch.
  &quot;endTime&quot;: &quot;A String&quot;, # Time when the API product subscription ends in milliseconds since epoch.
  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was last modified in milliseconds since epoch.
  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the API product subscription.
  &quot;startTime&quot;: &quot;A String&quot;, # Time when the API product subscription starts in milliseconds since epoch.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Structure of a DeveloperSubscription.
  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product for which the developer is purchasing a subscription.
  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was created in milliseconds since epoch.
  &quot;endTime&quot;: &quot;A String&quot;, # Time when the API product subscription ends in milliseconds since epoch.
  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was last modified in milliseconds since epoch.
  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the API product subscription.
  &quot;startTime&quot;: &quot;A String&quot;, # Time when the API product subscription starts in milliseconds since epoch.
}</pre>
</div>

<div class="method">
    <code class="details" id="expire">expire(name, body=None, x__xgafv=None)</code>
  <pre>Expires an API product subscription immediately.

Args:
  name: string, Required. Name of the API product subscription. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/subscriptions/{subscription}` (required)
  body: object, The request body.
    The object takes the form of:

{ # Request for ExpireDeveloperSubscription.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Structure of a DeveloperSubscription.
  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product for which the developer is purchasing a subscription.
  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was created in milliseconds since epoch.
  &quot;endTime&quot;: &quot;A String&quot;, # Time when the API product subscription ends in milliseconds since epoch.
  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was last modified in milliseconds since epoch.
  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the API product subscription.
  &quot;startTime&quot;: &quot;A String&quot;, # Time when the API product subscription starts in milliseconds since epoch.
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets details for an API product subscription.

Args:
  name: string, Required. Name of the API product subscription. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/subscriptions/{subscription}` (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Structure of a DeveloperSubscription.
  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product for which the developer is purchasing a subscription.
  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was created in milliseconds since epoch.
  &quot;endTime&quot;: &quot;A String&quot;, # Time when the API product subscription ends in milliseconds since epoch.
  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was last modified in milliseconds since epoch.
  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the API product subscription.
  &quot;startTime&quot;: &quot;A String&quot;, # Time when the API product subscription starts in milliseconds since epoch.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, count=None, startKey=None, x__xgafv=None)</code>
  <pre>Lists all API product subscriptions for a developer.

Args:
  parent: string, Required. Email address of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` (required)
  count: integer, Number of API product subscriptions to return in the API call. Use with `startKey` to provide more targeted filtering. Defaults to 100. The maximum limit is 1000.
  startKey: string, Name of the API product subscription from which to start displaying the list of subscriptions. If omitted, the list starts from the first item. For example, to view the API product subscriptions from 51-150, set the value of `startKey` to the name of the 51st subscription and set the value of `count` to 100.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for ListDeveloperSubscriptions.
  &quot;developerSubscriptions&quot;: [ # List of all subscriptions.
    { # Structure of a DeveloperSubscription.
      &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product for which the developer is purchasing a subscription.
      &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was created in milliseconds since epoch.
      &quot;endTime&quot;: &quot;A String&quot;, # Time when the API product subscription ends in milliseconds since epoch.
      &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was last modified in milliseconds since epoch.
      &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the API product subscription.
      &quot;startTime&quot;: &quot;A String&quot;, # Time when the API product subscription starts in milliseconds since epoch.
    },
  ],
  &quot;nextStartKey&quot;: &quot;A String&quot;, # Value that can be sent as `startKey` to retrieve the next page of content. If this field is omitted, there are no subsequent pages.
}</pre>
</div>

</body></html>