syntax = "proto3";
package analysis_service;

option go_package = "go.chromium.org/chromiumos/infra/proto/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: 55;
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;
    chromite.api.GetBuilderMetadataRequest get_builder_metadata_request = 53;
  }

  // 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;
    chromite.api.GetBuilderMetadataResponse get_builder_metadata_response = 54;
  }
}
