// 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 ActionResultOrBuilder extends
    // @@protoc_insertion_point(interface_extends:build.bazel.remote.execution.v2.ActionResult)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * The output files of the action. For each output file requested in the
   * `output_files` field of the Action, if the corresponding file existed after
   * the action completed, a single entry will be present in the output list.
   * If the action does not produce the requested output, or produces a
   * directory where a regular file is expected or vice versa, then that output
   * will be omitted from the list. The server is free to arrange the output
   * list as desired; clients MUST NOT assume that the output list is sorted.
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.OutputFile output_files = 2;</code>
   */
  java.util.List<build.bazel.remote.execution.v2.OutputFile> 
      getOutputFilesList();
  /**
   * <pre>
   * The output files of the action. For each output file requested in the
   * `output_files` field of the Action, if the corresponding file existed after
   * the action completed, a single entry will be present in the output list.
   * If the action does not produce the requested output, or produces a
   * directory where a regular file is expected or vice versa, then that output
   * will be omitted from the list. The server is free to arrange the output
   * list as desired; clients MUST NOT assume that the output list is sorted.
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.OutputFile output_files = 2;</code>
   */
  build.bazel.remote.execution.v2.OutputFile getOutputFiles(int index);
  /**
   * <pre>
   * The output files of the action. For each output file requested in the
   * `output_files` field of the Action, if the corresponding file existed after
   * the action completed, a single entry will be present in the output list.
   * If the action does not produce the requested output, or produces a
   * directory where a regular file is expected or vice versa, then that output
   * will be omitted from the list. The server is free to arrange the output
   * list as desired; clients MUST NOT assume that the output list is sorted.
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.OutputFile output_files = 2;</code>
   */
  int getOutputFilesCount();
  /**
   * <pre>
   * The output files of the action. For each output file requested in the
   * `output_files` field of the Action, if the corresponding file existed after
   * the action completed, a single entry will be present in the output list.
   * If the action does not produce the requested output, or produces a
   * directory where a regular file is expected or vice versa, then that output
   * will be omitted from the list. The server is free to arrange the output
   * list as desired; clients MUST NOT assume that the output list is sorted.
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.OutputFile output_files = 2;</code>
   */
  java.util.List<? extends build.bazel.remote.execution.v2.OutputFileOrBuilder> 
      getOutputFilesOrBuilderList();
  /**
   * <pre>
   * The output files of the action. For each output file requested in the
   * `output_files` field of the Action, if the corresponding file existed after
   * the action completed, a single entry will be present in the output list.
   * If the action does not produce the requested output, or produces a
   * directory where a regular file is expected or vice versa, then that output
   * will be omitted from the list. The server is free to arrange the output
   * list as desired; clients MUST NOT assume that the output list is sorted.
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.OutputFile output_files = 2;</code>
   */
  build.bazel.remote.execution.v2.OutputFileOrBuilder getOutputFilesOrBuilder(
      int index);

  /**
   * <pre>
   * The output directories of the action. For each output directory requested
   * in the `output_directories` field of the Action, if the corresponding
   * directory existed after the action completed, a single entry will be
   * present in the output list, which will contain the digest of a
   * [Tree][build.bazel.remote.execution.v2.Tree] message containing the
   * directory tree, and the path equal exactly to the corresponding Action
   * output_directories member.
   * As an example, suppose the Action had an output directory `a/b/dir` and the
   * execution produced the following contents in `a/b/dir`: a file named `bar`
   * and a directory named `foo` with an executable file named `baz`. Then,
   * output_directory will contain (hashes shortened for readability):
   * ```json
   * // OutputDirectory proto:
   * {
   *   path: "a/b/dir"
   *   tree_digest: {
   *     hash: "4a73bc9d03...",
   *     size: 55
   *   }
   * }
   * // Tree proto with hash "4a73bc9d03..." and size 55:
   * {
   *   root: {
   *     files: [
   *       {
   *         name: "bar",
   *         digest: {
   *           hash: "4a73bc9d03...",
   *           size: 65534
   *         }
   *       }
   *     ],
   *     directories: [
   *       {
   *         name: "foo",
   *         digest: {
   *           hash: "4cf2eda940...",
   *           size: 43
   *         }
   *       }
   *     ]
   *   }
   *   children : {
   *     // (Directory proto with hash "4cf2eda940..." and size 43)
   *     files: [
   *       {
   *         name: "baz",
   *         digest: {
   *           hash: "b2c941073e...",
   *           size: 1294,
   *         },
   *         is_executable: true
   *       }
   *     ]
   *   }
   * }
   * ```
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.OutputDirectory output_directories = 3;</code>
   */
  java.util.List<build.bazel.remote.execution.v2.OutputDirectory> 
      getOutputDirectoriesList();
  /**
   * <pre>
   * The output directories of the action. For each output directory requested
   * in the `output_directories` field of the Action, if the corresponding
   * directory existed after the action completed, a single entry will be
   * present in the output list, which will contain the digest of a
   * [Tree][build.bazel.remote.execution.v2.Tree] message containing the
   * directory tree, and the path equal exactly to the corresponding Action
   * output_directories member.
   * As an example, suppose the Action had an output directory `a/b/dir` and the
   * execution produced the following contents in `a/b/dir`: a file named `bar`
   * and a directory named `foo` with an executable file named `baz`. Then,
   * output_directory will contain (hashes shortened for readability):
   * ```json
   * // OutputDirectory proto:
   * {
   *   path: "a/b/dir"
   *   tree_digest: {
   *     hash: "4a73bc9d03...",
   *     size: 55
   *   }
   * }
   * // Tree proto with hash "4a73bc9d03..." and size 55:
   * {
   *   root: {
   *     files: [
   *       {
   *         name: "bar",
   *         digest: {
   *           hash: "4a73bc9d03...",
   *           size: 65534
   *         }
   *       }
   *     ],
   *     directories: [
   *       {
   *         name: "foo",
   *         digest: {
   *           hash: "4cf2eda940...",
   *           size: 43
   *         }
   *       }
   *     ]
   *   }
   *   children : {
   *     // (Directory proto with hash "4cf2eda940..." and size 43)
   *     files: [
   *       {
   *         name: "baz",
   *         digest: {
   *           hash: "b2c941073e...",
   *           size: 1294,
   *         },
   *         is_executable: true
   *       }
   *     ]
   *   }
   * }
   * ```
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.OutputDirectory output_directories = 3;</code>
   */
  build.bazel.remote.execution.v2.OutputDirectory getOutputDirectories(int index);
  /**
   * <pre>
   * The output directories of the action. For each output directory requested
   * in the `output_directories` field of the Action, if the corresponding
   * directory existed after the action completed, a single entry will be
   * present in the output list, which will contain the digest of a
   * [Tree][build.bazel.remote.execution.v2.Tree] message containing the
   * directory tree, and the path equal exactly to the corresponding Action
   * output_directories member.
   * As an example, suppose the Action had an output directory `a/b/dir` and the
   * execution produced the following contents in `a/b/dir`: a file named `bar`
   * and a directory named `foo` with an executable file named `baz`. Then,
   * output_directory will contain (hashes shortened for readability):
   * ```json
   * // OutputDirectory proto:
   * {
   *   path: "a/b/dir"
   *   tree_digest: {
   *     hash: "4a73bc9d03...",
   *     size: 55
   *   }
   * }
   * // Tree proto with hash "4a73bc9d03..." and size 55:
   * {
   *   root: {
   *     files: [
   *       {
   *         name: "bar",
   *         digest: {
   *           hash: "4a73bc9d03...",
   *           size: 65534
   *         }
   *       }
   *     ],
   *     directories: [
   *       {
   *         name: "foo",
   *         digest: {
   *           hash: "4cf2eda940...",
   *           size: 43
   *         }
   *       }
   *     ]
   *   }
   *   children : {
   *     // (Directory proto with hash "4cf2eda940..." and size 43)
   *     files: [
   *       {
   *         name: "baz",
   *         digest: {
   *           hash: "b2c941073e...",
   *           size: 1294,
   *         },
   *         is_executable: true
   *       }
   *     ]
   *   }
   * }
   * ```
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.OutputDirectory output_directories = 3;</code>
   */
  int getOutputDirectoriesCount();
  /**
   * <pre>
   * The output directories of the action. For each output directory requested
   * in the `output_directories` field of the Action, if the corresponding
   * directory existed after the action completed, a single entry will be
   * present in the output list, which will contain the digest of a
   * [Tree][build.bazel.remote.execution.v2.Tree] message containing the
   * directory tree, and the path equal exactly to the corresponding Action
   * output_directories member.
   * As an example, suppose the Action had an output directory `a/b/dir` and the
   * execution produced the following contents in `a/b/dir`: a file named `bar`
   * and a directory named `foo` with an executable file named `baz`. Then,
   * output_directory will contain (hashes shortened for readability):
   * ```json
   * // OutputDirectory proto:
   * {
   *   path: "a/b/dir"
   *   tree_digest: {
   *     hash: "4a73bc9d03...",
   *     size: 55
   *   }
   * }
   * // Tree proto with hash "4a73bc9d03..." and size 55:
   * {
   *   root: {
   *     files: [
   *       {
   *         name: "bar",
   *         digest: {
   *           hash: "4a73bc9d03...",
   *           size: 65534
   *         }
   *       }
   *     ],
   *     directories: [
   *       {
   *         name: "foo",
   *         digest: {
   *           hash: "4cf2eda940...",
   *           size: 43
   *         }
   *       }
   *     ]
   *   }
   *   children : {
   *     // (Directory proto with hash "4cf2eda940..." and size 43)
   *     files: [
   *       {
   *         name: "baz",
   *         digest: {
   *           hash: "b2c941073e...",
   *           size: 1294,
   *         },
   *         is_executable: true
   *       }
   *     ]
   *   }
   * }
   * ```
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.OutputDirectory output_directories = 3;</code>
   */
  java.util.List<? extends build.bazel.remote.execution.v2.OutputDirectoryOrBuilder> 
      getOutputDirectoriesOrBuilderList();
  /**
   * <pre>
   * The output directories of the action. For each output directory requested
   * in the `output_directories` field of the Action, if the corresponding
   * directory existed after the action completed, a single entry will be
   * present in the output list, which will contain the digest of a
   * [Tree][build.bazel.remote.execution.v2.Tree] message containing the
   * directory tree, and the path equal exactly to the corresponding Action
   * output_directories member.
   * As an example, suppose the Action had an output directory `a/b/dir` and the
   * execution produced the following contents in `a/b/dir`: a file named `bar`
   * and a directory named `foo` with an executable file named `baz`. Then,
   * output_directory will contain (hashes shortened for readability):
   * ```json
   * // OutputDirectory proto:
   * {
   *   path: "a/b/dir"
   *   tree_digest: {
   *     hash: "4a73bc9d03...",
   *     size: 55
   *   }
   * }
   * // Tree proto with hash "4a73bc9d03..." and size 55:
   * {
   *   root: {
   *     files: [
   *       {
   *         name: "bar",
   *         digest: {
   *           hash: "4a73bc9d03...",
   *           size: 65534
   *         }
   *       }
   *     ],
   *     directories: [
   *       {
   *         name: "foo",
   *         digest: {
   *           hash: "4cf2eda940...",
   *           size: 43
   *         }
   *       }
   *     ]
   *   }
   *   children : {
   *     // (Directory proto with hash "4cf2eda940..." and size 43)
   *     files: [
   *       {
   *         name: "baz",
   *         digest: {
   *           hash: "b2c941073e...",
   *           size: 1294,
   *         },
   *         is_executable: true
   *       }
   *     ]
   *   }
   * }
   * ```
   * </pre>
   *
   * <code>repeated .build.bazel.remote.execution.v2.OutputDirectory output_directories = 3;</code>
   */
  build.bazel.remote.execution.v2.OutputDirectoryOrBuilder getOutputDirectoriesOrBuilder(
      int index);

  /**
   * <pre>
   * The exit code of the command.
   * </pre>
   *
   * <code>int32 exit_code = 4;</code>
   */
  int getExitCode();

  /**
   * <pre>
   * The standard output buffer of the action. The server will determine, based
   * on the size of the buffer, whether to return it in raw form or to return
   * a digest in `stdout_digest` that points to the buffer. If neither is set,
   * then the buffer is empty. The client SHOULD NOT assume it will get one of
   * the raw buffer or a digest on any given request and should be prepared to
   * handle either.
   * </pre>
   *
   * <code>bytes stdout_raw = 5;</code>
   */
  com.google.protobuf.ByteString getStdoutRaw();

  /**
   * <pre>
   * The digest for a blob containing the standard output of the action, which
   * can be retrieved from the
   * [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
   * See `stdout_raw` for when this will be set.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.Digest stdout_digest = 6;</code>
   */
  boolean hasStdoutDigest();
  /**
   * <pre>
   * The digest for a blob containing the standard output of the action, which
   * can be retrieved from the
   * [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
   * See `stdout_raw` for when this will be set.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.Digest stdout_digest = 6;</code>
   */
  build.bazel.remote.execution.v2.Digest getStdoutDigest();
  /**
   * <pre>
   * The digest for a blob containing the standard output of the action, which
   * can be retrieved from the
   * [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
   * See `stdout_raw` for when this will be set.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.Digest stdout_digest = 6;</code>
   */
  build.bazel.remote.execution.v2.DigestOrBuilder getStdoutDigestOrBuilder();

  /**
   * <pre>
   * The standard error buffer of the action. The server will determine, based
   * on the size of the buffer, whether to return it in raw form or to return
   * a digest in `stderr_digest` that points to the buffer. If neither is set,
   * then the buffer is empty. The client SHOULD NOT assume it will get one of
   * the raw buffer or a digest on any given request and should be prepared to
   * handle either.
   * </pre>
   *
   * <code>bytes stderr_raw = 7;</code>
   */
  com.google.protobuf.ByteString getStderrRaw();

  /**
   * <pre>
   * The digest for a blob containing the standard error of the action, which
   * can be retrieved from the
   * [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
   * See `stderr_raw` for when this will be set.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.Digest stderr_digest = 8;</code>
   */
  boolean hasStderrDigest();
  /**
   * <pre>
   * The digest for a blob containing the standard error of the action, which
   * can be retrieved from the
   * [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
   * See `stderr_raw` for when this will be set.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.Digest stderr_digest = 8;</code>
   */
  build.bazel.remote.execution.v2.Digest getStderrDigest();
  /**
   * <pre>
   * The digest for a blob containing the standard error of the action, which
   * can be retrieved from the
   * [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage].
   * See `stderr_raw` for when this will be set.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.Digest stderr_digest = 8;</code>
   */
  build.bazel.remote.execution.v2.DigestOrBuilder getStderrDigestOrBuilder();

  /**
   * <pre>
   * The details of the execution that originally produced this result.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.ExecutedActionMetadata execution_metadata = 9;</code>
   */
  boolean hasExecutionMetadata();
  /**
   * <pre>
   * The details of the execution that originally produced this result.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.ExecutedActionMetadata execution_metadata = 9;</code>
   */
  build.bazel.remote.execution.v2.ExecutedActionMetadata getExecutionMetadata();
  /**
   * <pre>
   * The details of the execution that originally produced this result.
   * </pre>
   *
   * <code>.build.bazel.remote.execution.v2.ExecutedActionMetadata execution_metadata = 9;</code>
   */
  build.bazel.remote.execution.v2.ExecutedActionMetadataOrBuilder getExecutionMetadataOrBuilder();
}
