<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="#getCapabilities">getCapabilities(instanceName, x__xgafv=None)</a></code></p>
<p class="firstline">GetCapabilities returns the server capabilities configuration of the</p>
<h3>Method Details</h3>
<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;symlinkAbsolutePathStrategy&quot;: &quot;A String&quot;, # Whether absolute symlink targets are supported.
      &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;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 # Supported cache priority range for both CAS and ActionCache.
          # ResultsCachePolicy
          # Used for querying both cache and execution valid priority ranges.
        &quot;priorities&quot;: [
          { # Supported range of priorities, including boundaries.
            &quot;minPriority&quot;: 42,
            &quot;maxPriority&quot;: 42,
          },
        ],
      },
    },
    &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;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;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;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;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;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;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;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;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;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 # Supported execution priority range.
          # ResultsCachePolicy
          # Used for querying both cache and execution valid priority ranges.
        &quot;priorities&quot;: [
          { # Supported range of priorities, including boundaries.
            &quot;minPriority&quot;: 42,
            &quot;maxPriority&quot;: 42,
          },
        ],
      },
    },
  }</pre>
</div>

</body></html>