syntax = "proto3";
package analysis_service;

import "chromite/api/artifacts.proto";
import "chromite/api/binhost.proto";
import "chromite/api/depgraph.proto";
import "chromite/api/image.proto";
import "chromite/api/packages.proto";
import "chromite/api/sdk.proto";
import "chromite/api/sysroot.proto";
import "chromite/api/test.proto";
import "google/protobuf/timestamp.proto";

// Data about the execution of a step. Fields mirror those of the
// ExecutionResult object returned by a step.
message StepExecutionResult {
  int32 retcode = 1;

  bool had_timeout = 2;

  bool had_exception = 3;

  bool was_cancelled = 4;
}

// Requests and responses are sent to the Artifacts Analysis Service on a single
// Pub/Sub topic; thus, the type of the request and response need to be encoded
// in the Pub/Sub message. This is done with this wrapper proto.
//
// This proto should only be used by a recipes module to do the wrapping and a
// layer on the Analysis Server to do the unwrapping.
//
// NEXT ID: 53;
message AnalysisServiceEvent {
  // The Buildbucket id for the build doing the request and response.
  int64 build_id = 42;

  // The name of the step doing the request and response. Must be the same
  // format as Buildbucket Build proto's step name (i.e. parent and child step
  // names are separated by the "|" character).
  string step_name = 43;

  // The time the request and response were sent and recieved by the caller.
  google.protobuf.Timestamp request_time = 3;
  google.protobuf.Timestamp response_time = 4;

  // The stdout and stderr logs for a stage. Either log string may be truncated
  // to ensure individual entries and proto request sizes work well for upload
  // and for later querying.
  string stdout = 50;
  string stderr = 51;

  // Data about the execution of the step doing the request and response.
  StepExecutionResult step_execution_result = 52;

  // The request to upload.
  oneof request {
    chromite.api.InstallPackagesRequest install_packages_request = 1;
    chromite.api.BundleRequest bundle_request = 5;
    chromite.api.BundleVmFilesRequest bundle_vm_files_request = 7;
    chromite.api.BinhostGetRequest binhost_get_request = 8;
    chromite.api.AclArgsRequest acl_args_request = 10;
    chromite.api.PrepareBinhostUploadsRequest prepare_binhost_uploads_request = 12;
    chromite.api.SetBinhostRequest set_binhost_request = 14;
    chromite.api.RegenBuildCacheRequest regen_build_cache_request = 16;
    chromite.api.GetBuildDependencyGraphRequest get_build_dependency_graph_request = 18;
    chromite.api.CreateImageRequest create_image_request = 20;
    chromite.api.TestImageRequest test_image_request = 22;
    chromite.api.CreateRequest create_request = 24;
    chromite.api.UpdateRequest update_request = 26;
    chromite.api.SysrootCreateRequest sysroot_create_request = 28;
    chromite.api.InstallToolchainRequest install_toolchain_request = 30;
    chromite.api.BuildTargetUnitTestRequest build_target_unit_test_request = 32;
    chromite.api.ChromiteUnitTestRequest chromite_unit_test_request = 34;
    chromite.api.DebugInfoTestRequest debug_info_test_request = 36;
    chromite.api.VmTestRequest vm_test_request = 38;
    chromite.api.MoblabVmTestRequest moblab_vm_test_request = 40;
    chromite.api.UprevPackagesRequest uprev_packages_request = 44;
    chromite.api.GetBestVisibleRequest get_best_visible_request = 46;
    chromite.api.GetChromeVersionRequest get_chrome_version_request = 48;
  }

  // The response to upload.
  oneof response {
    chromite.api.InstallPackagesResponse install_packages_response = 2;
    chromite.api.BundleResponse bundle_response = 6;
    chromite.api.BinhostGetResponse binhost_get_response = 9;
    chromite.api.AclArgsResponse acl_args_response = 11;
    chromite.api.PrepareBinhostUploadsResponse prepare_binhost_uploads_response = 13;
    chromite.api.SetBinhostResponse set_binhost_response = 15;
    chromite.api.RegenBuildCacheResponse regen_build_cache_response = 17;
    chromite.api.GetBuildDependencyGraphResponse get_build_dependency_graph_response = 19;
    chromite.api.CreateImageResult create_image_result = 21;
    chromite.api.TestImageResult test_image_result = 23;
    chromite.api.CreateResponse create_response = 25;
    chromite.api.UpdateResponse update_response = 27;
    chromite.api.SysrootCreateResponse sysroot_create_response = 29;
    chromite.api.InstallToolchainResponse install_toolchain_response = 31;
    chromite.api.BuildTargetUnitTestResponse build_target_unit_test_response = 33;
    chromite.api.ChromiteUnitTestResponse chromite_unit_test_response = 35;
    chromite.api.DebugInfoTestResponse debug_info_test_response = 37;
    chromite.api.VmTestResponse vm_test_response = 39;
    chromite.api.MoblabVmTestResponse moblab_vm_test_response = 41;
    chromite.api.UprevPackagesResponse uprev_packages_response = 45;
    chromite.api.GetBestVisibleResponse get_best_visible_response = 47;
    chromite.api.GetChromeVersionResponse get_chrome_version_response = 49;
  }
}
