<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;deprecatedApiVersion&quot;: { # The full version of a given tool. # Earliest RE API version supported, including deprecated versions.
      &quot;minor&quot;: 42, # The minor version, e.g. 2 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;patch&quot;: 42, # The patch version, e.g 3 for 10.2.3.
      &quot;major&quot;: 42, # The major version, e.g 10 for 10.2.3.
    },
    &quot;cacheCapabilities&quot;: { # Capabilities of the remote cache system. # Capabilities of the remote cache system.
      &quot;symlinkAbsolutePathStrategy&quot;: &quot;A String&quot;, # Whether absolute symlink targets are supported.
      &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;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;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;highApiVersion&quot;: { # The full version of a given tool. # Latest RE API version supported.
      &quot;minor&quot;: 42, # The minor version, e.g. 2 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;patch&quot;: 42, # The patch version, e.g 3 for 10.2.3.
      &quot;major&quot;: 42, # The major version, e.g 10 for 10.2.3.
    },
    &quot;lowApiVersion&quot;: { # The full version of a given tool. # Earliest non-deprecated RE API version supported.
      &quot;minor&quot;: 42, # The minor version, e.g. 2 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;patch&quot;: 42, # The patch version, e.g 3 for 10.2.3.
      &quot;major&quot;: 42, # The major version, e.g 10 for 10.2.3.
    },
    &quot;executionCapabilities&quot;: { # Capabilities of the remote execution system. # Capabilities of the remote execution system.
      &quot;execEnabled&quot;: True or False, # Whether remote execution is enabled for the particular server/instance.
      &quot;supportedNodeProperties&quot;: [ # Supported node properties.
        &quot;A String&quot;,
      ],
      &quot;digestFunction&quot;: &quot;A String&quot;, # Remote execution may only support a single digest function.
      &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,
          },
        ],
      },
    },
  }</pre>
</div>

</body></html>