<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="compute_alpha.html">Compute Engine API</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="compute_alpha.acceleratorTypes.html">acceleratorTypes()</a></code>
</p>
<p class="firstline">Returns the acceleratorTypes Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.addresses.html">addresses()</a></code>
</p>
<p class="firstline">Returns the addresses Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.autoscalers.html">autoscalers()</a></code>
</p>
<p class="firstline">Returns the autoscalers Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.backendBuckets.html">backendBuckets()</a></code>
</p>
<p class="firstline">Returns the backendBuckets Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.backendServices.html">backendServices()</a></code>
</p>
<p class="firstline">Returns the backendServices Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.clientSslPolicies.html">clientSslPolicies()</a></code>
</p>
<p class="firstline">Returns the clientSslPolicies Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.diskTypes.html">diskTypes()</a></code>
</p>
<p class="firstline">Returns the diskTypes Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.disks.html">disks()</a></code>
</p>
<p class="firstline">Returns the disks Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.firewalls.html">firewalls()</a></code>
</p>
<p class="firstline">Returns the firewalls Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.forwardingRules.html">forwardingRules()</a></code>
</p>
<p class="firstline">Returns the forwardingRules Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.globalAddresses.html">globalAddresses()</a></code>
</p>
<p class="firstline">Returns the globalAddresses Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.globalForwardingRules.html">globalForwardingRules()</a></code>
</p>
<p class="firstline">Returns the globalForwardingRules Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.globalOperations.html">globalOperations()</a></code>
</p>
<p class="firstline">Returns the globalOperations Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.healthChecks.html">healthChecks()</a></code>
</p>
<p class="firstline">Returns the healthChecks Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.hostTypes.html">hostTypes()</a></code>
</p>
<p class="firstline">Returns the hostTypes Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.hosts.html">hosts()</a></code>
</p>
<p class="firstline">Returns the hosts Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.httpHealthChecks.html">httpHealthChecks()</a></code>
</p>
<p class="firstline">Returns the httpHealthChecks Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.httpsHealthChecks.html">httpsHealthChecks()</a></code>
</p>
<p class="firstline">Returns the httpsHealthChecks Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.images.html">images()</a></code>
</p>
<p class="firstline">Returns the images Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.instanceGroupManagers.html">instanceGroupManagers()</a></code>
</p>
<p class="firstline">Returns the instanceGroupManagers Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.instanceGroups.html">instanceGroups()</a></code>
</p>
<p class="firstline">Returns the instanceGroups Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.instanceTemplates.html">instanceTemplates()</a></code>
</p>
<p class="firstline">Returns the instanceTemplates Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.instances.html">instances()</a></code>
</p>
<p class="firstline">Returns the instances Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.interconnectAttachments.html">interconnectAttachments()</a></code>
</p>
<p class="firstline">Returns the interconnectAttachments Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.interconnectLocations.html">interconnectLocations()</a></code>
</p>
<p class="firstline">Returns the interconnectLocations Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.interconnects.html">interconnects()</a></code>
</p>
<p class="firstline">Returns the interconnects Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.licenses.html">licenses()</a></code>
</p>
<p class="firstline">Returns the licenses Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.machineTypes.html">machineTypes()</a></code>
</p>
<p class="firstline">Returns the machineTypes Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.networks.html">networks()</a></code>
</p>
<p class="firstline">Returns the networks Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.projects.html">projects()</a></code>
</p>
<p class="firstline">Returns the projects Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.regionAutoscalers.html">regionAutoscalers()</a></code>
</p>
<p class="firstline">Returns the regionAutoscalers Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.regionBackendServices.html">regionBackendServices()</a></code>
</p>
<p class="firstline">Returns the regionBackendServices Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.regionCommitments.html">regionCommitments()</a></code>
</p>
<p class="firstline">Returns the regionCommitments Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.regionDiskTypes.html">regionDiskTypes()</a></code>
</p>
<p class="firstline">Returns the regionDiskTypes Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.regionDisks.html">regionDisks()</a></code>
</p>
<p class="firstline">Returns the regionDisks Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.regionInstanceGroupManagers.html">regionInstanceGroupManagers()</a></code>
</p>
<p class="firstline">Returns the regionInstanceGroupManagers Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.regionInstanceGroups.html">regionInstanceGroups()</a></code>
</p>
<p class="firstline">Returns the regionInstanceGroups Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.regionOperations.html">regionOperations()</a></code>
</p>
<p class="firstline">Returns the regionOperations Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.regions.html">regions()</a></code>
</p>
<p class="firstline">Returns the regions Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.routers.html">routers()</a></code>
</p>
<p class="firstline">Returns the routers Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.routes.html">routes()</a></code>
</p>
<p class="firstline">Returns the routes Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.securityPolicies.html">securityPolicies()</a></code>
</p>
<p class="firstline">Returns the securityPolicies Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.snapshots.html">snapshots()</a></code>
</p>
<p class="firstline">Returns the snapshots Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.sslCertificates.html">sslCertificates()</a></code>
</p>
<p class="firstline">Returns the sslCertificates Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.subnetworks.html">subnetworks()</a></code>
</p>
<p class="firstline">Returns the subnetworks Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.targetHttpProxies.html">targetHttpProxies()</a></code>
</p>
<p class="firstline">Returns the targetHttpProxies Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.targetHttpsProxies.html">targetHttpsProxies()</a></code>
</p>
<p class="firstline">Returns the targetHttpsProxies Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.targetInstances.html">targetInstances()</a></code>
</p>
<p class="firstline">Returns the targetInstances Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.targetPools.html">targetPools()</a></code>
</p>
<p class="firstline">Returns the targetPools Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.targetSslProxies.html">targetSslProxies()</a></code>
</p>
<p class="firstline">Returns the targetSslProxies Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.targetTcpProxies.html">targetTcpProxies()</a></code>
</p>
<p class="firstline">Returns the targetTcpProxies Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.targetVpnGateways.html">targetVpnGateways()</a></code>
</p>
<p class="firstline">Returns the targetVpnGateways Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.urlMaps.html">urlMaps()</a></code>
</p>
<p class="firstline">Returns the urlMaps Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.vpnTunnels.html">vpnTunnels()</a></code>
</p>
<p class="firstline">Returns the vpnTunnels Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.zoneOperations.html">zoneOperations()</a></code>
</p>
<p class="firstline">Returns the zoneOperations Resource.</p>

<p class="toc_element">
  <code><a href="compute_alpha.zones.html">zones()</a></code>
</p>
<p class="firstline">Returns the zones Resource.</p>

<p class="toc_element">
  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
  <pre>Create a BatchHttpRequest object based on the discovery document.

        Args:
          callback: callable, A callback to be called for each response, of the
            form callback(id, response, exception). The first parameter is the
            request id, and the second is the deserialized response object. The
            third is an apiclient.errors.HttpError exception object if an HTTP
            error occurred while processing the request, or None if no error
            occurred.

        Returns:
          A BatchHttpRequest object based on the discovery document.
        </pre>
</div>

</body></html>