<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="remotebuildexecution_v2.html">Remote Build Execution API</a> . <a href="remotebuildexecution_v2.v2.html">v2</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="#getCapabilities">getCapabilities(instanceName, x__xgafv=None)</a></code></p>
<p class="firstline">GetCapabilities returns the server capabilities configuration of the remote endpoint. Only the capabilities of the services supported by the endpoint will be returned: * Execution + CAS + Action Cache endpoints should return both CacheCapabilities and ExecutionCapabilities. * Execution only endpoints should return ExecutionCapabilities. * CAS + Action Cache only endpoints should return CacheCapabilities.</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="getCapabilities">getCapabilities(instanceName, x__xgafv=None)</code>
  <pre>GetCapabilities returns the server capabilities configuration of the remote endpoint. Only the capabilities of the services supported by the endpoint will be returned: * Execution + CAS + Action Cache endpoints should return both CacheCapabilities and ExecutionCapabilities. * Execution only endpoints should return ExecutionCapabilities. * CAS + Action Cache only endpoints should return CacheCapabilities.

Args:
  instanceName: string, The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A response message for Capabilities.GetCapabilities.
  &quot;cacheCapabilities&quot;: { # Capabilities of the remote cache system. # Capabilities of the remote cache system.
    &quot;actionCacheUpdateCapabilities&quot;: { # Describes the server/instance capabilities for updating the action cache. # Capabilities for updating the action cache.
      &quot;updateEnabled&quot;: True or False,
    },
    &quot;cachePriorityCapabilities&quot;: { # Allowed values for priority in ResultsCachePolicy Used for querying both cache and execution valid priority ranges. # Supported cache priority range for both CAS and ActionCache.
      &quot;priorities&quot;: [
        { # Supported range of priorities, including boundaries.
          &quot;maxPriority&quot;: 42,
          &quot;minPriority&quot;: 42,
        },
      ],
    },
    &quot;digestFunction&quot;: [ # All the digest functions supported by the remote cache. Remote cache may support multiple digest functions simultaneously.
      &quot;A String&quot;,
    ],
    &quot;maxBatchTotalSizeBytes&quot;: &quot;A String&quot;, # Maximum total size of blobs to be uploaded/downloaded using batch methods. A value of 0 means no limit is set, although in practice there will always be a message size limitation of the protocol in use, e.g. GRPC.
    &quot;symlinkAbsolutePathStrategy&quot;: &quot;A String&quot;, # Whether absolute symlink targets are supported.
  },
  &quot;deprecatedApiVersion&quot;: { # The full version of a given tool. # Earliest RE API version supported, including deprecated versions.
    &quot;major&quot;: 42, # The major version, e.g 10 for 10.2.3.
    &quot;minor&quot;: 42, # The minor version, e.g. 2 for 10.2.3.
    &quot;patch&quot;: 42, # The patch version, e.g 3 for 10.2.3.
    &quot;prerelease&quot;: &quot;A String&quot;, # The pre-release version. Either this field or major/minor/patch fields must be filled. They are mutually exclusive. Pre-release versions are assumed to be earlier than any released versions.
  },
  &quot;executionCapabilities&quot;: { # Capabilities of the remote execution system. # Capabilities of the remote execution system.
    &quot;digestFunction&quot;: &quot;A String&quot;, # Remote execution may only support a single digest function.
    &quot;execEnabled&quot;: True or False, # Whether remote execution is enabled for the particular server/instance.
    &quot;executionPriorityCapabilities&quot;: { # Allowed values for priority in ResultsCachePolicy Used for querying both cache and execution valid priority ranges. # Supported execution priority range.
      &quot;priorities&quot;: [
        { # Supported range of priorities, including boundaries.
          &quot;maxPriority&quot;: 42,
          &quot;minPriority&quot;: 42,
        },
      ],
    },
    &quot;supportedNodeProperties&quot;: [ # Supported node properties.
      &quot;A String&quot;,
    ],
  },
  &quot;highApiVersion&quot;: { # The full version of a given tool. # Latest RE API version supported.
    &quot;major&quot;: 42, # The major version, e.g 10 for 10.2.3.
    &quot;minor&quot;: 42, # The minor version, e.g. 2 for 10.2.3.
    &quot;patch&quot;: 42, # The patch version, e.g 3 for 10.2.3.
    &quot;prerelease&quot;: &quot;A String&quot;, # The pre-release version. Either this field or major/minor/patch fields must be filled. They are mutually exclusive. Pre-release versions are assumed to be earlier than any released versions.
  },
  &quot;lowApiVersion&quot;: { # The full version of a given tool. # Earliest non-deprecated RE API version supported.
    &quot;major&quot;: 42, # The major version, e.g 10 for 10.2.3.
    &quot;minor&quot;: 42, # The minor version, e.g. 2 for 10.2.3.
    &quot;patch&quot;: 42, # The patch version, e.g 3 for 10.2.3.
    &quot;prerelease&quot;: &quot;A String&quot;, # The pre-release version. Either this field or major/minor/patch fields must be filled. They are mutually exclusive. Pre-release versions are assumed to be earlier than any released versions.
  },
}</pre>
</div>

</body></html>