diff --git a/src/service/poc_mobile.proto b/src/service/poc_mobile.proto index 0e95ffb2..f8b7880e 100644 --- a/src/service/poc_mobile.proto +++ b/src/service/poc_mobile.proto @@ -347,6 +347,8 @@ service poc_mobile { returns (subscriber_verified_mapping_event_res_v1); rpc submit_promotion_reward(promotion_reward_req_v1) returns (promotion_reward_resp_v1); + rpc submit_radio_location_estimates(radio_location_estimates_req_v1) + returns (radio_location_estimates_resp_v1); } message file_info { @@ -891,3 +893,49 @@ message verified_subscriber_verified_mapping_event_ingest_report_v1 { // Timestamp in milliseconds since unix epoch uint64 timestamp = 3; } + +message rle_event_v1 { + string id = 1; + uint64 timestamp = 2; +} + +message radio_location_estimate_v1 { + Decimal radius = 1; + Decimal lat = 2; + Decimal lon = 3; + Decimal confidence = 4; + repeated rle_event_v1 events = 5; +} + +message radio_location_estimates_req_v1 { + oneof entity { + string cbrs_id = 1; + bytes wifi_pub_key = 2; + } + repeated radio_location_estimate_v1 estimates = 3; + // unix epoch timestamp in seconds + uint64 timestamp = 4; + // pubkey binary of the signing keypair + bytes carrier_key = 5; + bytes signature = 6; +} + +message radio_location_estimates_resp_v1 { string id = 1; } + +message radio_location_estimates_ingest_report_v1 { + // unix epoch timestamp in seconds + uint64 received_timestamp = 1; + radio_location_estimates_req_v1 report = 2; +} + +enum radio_location_estimates_verification_status { + radio_location_estimates_verification_status_valid = 0; + radio_location_estimates_verification_status_invalid_key = 1; +} + +message verified_radio_location_estimates_report_v1 { + radio_location_estimates_ingest_report_v1 report = 1; + radio_location_estimates_verification_status status = 2; + // unix epoch timestamp in seconds + uint64 timestamp = 3; +}