syntax = "proto2";

import "steammessages_base.proto";
import "steammessages_unified_base.steamclient.proto";

option cc_generic_services = true;

message CDataPublisher_ClientContentCorruptionReport_Notification {
  optional uint32 appid = 1;
  optional uint32 depotid = 2;
  optional string download_source = 3;
  optional string objectid = 4;
  optional uint32 cellid = 5;
  optional bool is_manifest = 6;
  optional uint64 object_size = 7;
  optional uint32 corruption_type = 8;
  optional bool used_https = 9;
  optional bool oc_proxy_detected = 10;
}

message CDataPublisher_ClientUpdateAppJob_Notification {
  optional uint32 app_id = 1;
  repeated uint32 depot_ids = 2;
  optional uint32 app_state = 3;
  optional uint32 job_app_error = 4;
  optional string error_details = 5;
  optional uint32 job_duration = 6;
  optional uint32 files_validation_failed = 7;
  optional uint64 job_bytes_downloaded = 8;
  optional uint64 job_bytes_staged = 9;
  optional uint64 bytes_comitted = 10;
  optional uint32 start_app_state = 11;
  optional fixed64 stats_machine_id = 12;
  optional string branch_name = 13;
  optional uint64 total_bytes_downloaded = 14;
  optional uint64 total_bytes_staged = 15;
  optional uint64 total_bytes_restored = 16;
  optional bool is_borrowed = 17;
  optional bool is_free_weekend = 18;
  optional uint64 total_bytes_patched = 20;
  optional uint64 total_bytes_saved = 21;
  optional uint32 cell_id = 22;
  optional bool is_workshop = 23;
  optional bool is_shader = 24;
  optional uint32 seconds_not_played = 25;
}

message CDataPublisher_GetVRDeviceInfo_Request {
  optional uint32 month_count = 1;
}

message CDataPublisher_GetVRDeviceInfo_Response {
  message Device {
    optional string name = 1;
    optional uint32 ref = 2;
    optional uint32 aggregation_ref = 3;
    optional uint32 total = 4;
    optional string driver = 5;
    optional int32 device_class = 6;
  }
  repeated CDataPublisher_GetVRDeviceInfo_Response.Device device = 1;
}

message CDataPublisher_SetVRDeviceInfoAggregationReference_Request {
  optional uint32 ref = 1;
  optional uint32 aggregation_ref = 2;
}

message CDataPublisher_SetVRDeviceInfoAggregationReference_Response {
  optional uint32 result = 1;
}

message CDataPublisher_AddVRDeviceInfo_Request {
  optional string manufacturer = 1;
  optional string model = 2;
  optional string driver = 3;
  optional string controller_type = 4;
  optional int32 device_class = 5;
}

message CDataPublisher_AddVRDeviceInfo_Response {
  optional uint32 result = 1;
  optional uint32 ref = 2;
}

message CValveHWSurvey_GetSurveySchedule_Request {
  optional string surveydatetoken = 1;
  optional fixed64 surveydatetokenversion = 2;
}

message CValveHWSurvey_GetSurveySchedule_Response {
  optional uint32 surveydatetoken = 1;
  optional fixed64 surveydatetokenversion = 2;
}

service DataPublisher {
  rpc ClientContentCorruptionReport (.CDataPublisher_ClientContentCorruptionReport_Notification) returns (.NoResponse) {
  }
  rpc ClientUpdateAppJobReport (.CDataPublisher_ClientUpdateAppJob_Notification) returns (.NoResponse) {
  }
  rpc GetVRDeviceInfo (.CDataPublisher_GetVRDeviceInfo_Request) returns (.CDataPublisher_GetVRDeviceInfo_Response) {
  }
  rpc SetVRDeviceInfoAggregationReference (.CDataPublisher_SetVRDeviceInfoAggregationReference_Request) returns (.CDataPublisher_SetVRDeviceInfoAggregationReference_Response) {
  }
  rpc AddVRDeviceInfo (.CDataPublisher_AddVRDeviceInfo_Request) returns (.CDataPublisher_AddVRDeviceInfo_Response) {
  }
}

service ValveHWSurvey {
  rpc GetSurveySchedule (.CValveHWSurvey_GetSurveySchedule_Request) returns (.CValveHWSurvey_GetSurveySchedule_Response);
}

