// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: build/bazel/remote/execution/v2/remote_execution.proto

package build.bazel.remote.execution.v2;

public interface CacheCapabilitiesOrBuilder extends
    // @@protoc_insertion_point(interface_extends:build.bazel.remote.execution.v2.CacheCapabilities)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * All the digest functions supported by the remote cache.
   * Remote cache may support multiple digest functions simultaneously.
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.DigestFunction digest_function = 1;</code>
   */
  java.util.List<build.bazel.remote.execution.v2.DigestFunction> getDigestFunctionList();
  /**
   * <pre>
   * All the digest functions supported by the remote cache.
   * Remote cache may support multiple digest functions simultaneously.
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.DigestFunction digest_function = 1;</code>
   */
  int getDigestFunctionCount();
  /**
   * <pre>
   * All the digest functions supported by the remote cache.
   * Remote cache may support multiple digest functions simultaneously.
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.DigestFunction digest_function = 1;</code>
   */
  build.bazel.remote.execution.v2.DigestFunction getDigestFunction(int index);
  /**
   * <pre>
   * All the digest functions supported by the remote cache.
   * Remote cache may support multiple digest functions simultaneously.
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.DigestFunction digest_function = 1;</code>
   */
  java.util.List<java.lang.Integer>
  getDigestFunctionValueList();
  /**
   * <pre>
   * All the digest functions supported by the remote cache.
   * Remote cache may support multiple digest functions simultaneously.
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.DigestFunction digest_function = 1;</code>
   */
  int getDigestFunctionValue(int index);

  /**
   * <pre>
   * Capabilities for updating the action cache.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.ActionCacheUpdateCapabilities action_cache_update_capabilities = 2;</code>
   */
  boolean hasActionCacheUpdateCapabilities();
  /**
   * <pre>
   * Capabilities for updating the action cache.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.ActionCacheUpdateCapabilities action_cache_update_capabilities = 2;</code>
   */
  build.bazel.remote.execution.v2.ActionCacheUpdateCapabilities getActionCacheUpdateCapabilities();
  /**
   * <pre>
   * Capabilities for updating the action cache.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.ActionCacheUpdateCapabilities action_cache_update_capabilities = 2;</code>
   */
  build.bazel.remote.execution.v2.ActionCacheUpdateCapabilitiesOrBuilder getActionCacheUpdateCapabilitiesOrBuilder();

  /**
   * <pre>
   * Supported cache priority range for both CAS and ActionCache.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.PriorityCapabilities cache_priority_capabilities = 3;</code>
   */
  boolean hasCachePriorityCapabilities();
  /**
   * <pre>
   * Supported cache priority range for both CAS and ActionCache.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.PriorityCapabilities cache_priority_capabilities = 3;</code>
   */
  build.bazel.remote.execution.v2.PriorityCapabilities getCachePriorityCapabilities();
  /**
   * <pre>
   * Supported cache priority range for both CAS and ActionCache.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.PriorityCapabilities cache_priority_capabilities = 3;</code>
   */
  build.bazel.remote.execution.v2.PriorityCapabilitiesOrBuilder getCachePriorityCapabilitiesOrBuilder();

  /**
   * <pre>
   * 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.
   * </pre>
   *
   * <code>int64 max_batch_total_size_bytes = 4;</code>
   */
  long getMaxBatchTotalSizeBytes();

  /**
   * <pre>
   * Whether absolute symlink targets are supported.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.CacheCapabilities.SymlinkAbsolutePathStrategy symlink_absolute_path_strategy = 5;</code>
   */
  int getSymlinkAbsolutePathStrategyValue();
  /**
   * <pre>
   * Whether absolute symlink targets are supported.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.CacheCapabilities.SymlinkAbsolutePathStrategy symlink_absolute_path_strategy = 5;</code>
   */
  build.bazel.remote.execution.v2.CacheCapabilities.SymlinkAbsolutePathStrategy getSymlinkAbsolutePathStrategy();
}
