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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<p class="toc_element">
  <code><a href="compute_v1.zones.html">zones()</a></code>
</p>
<p class="firstline">Returns the zones 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="#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="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<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>