// Copyright (C) 2020 Storj Labs, Inc. // See LICENSE for copying information. syntax = "proto3"; option go_package = "storj.io/storj/multinodepb"; package reputation; import "gogo.proto"; import "google/protobuf/timestamp.proto"; service Reputation { rpc GetBySatelliteID(GetBySatelliteIDRequest) returns (GetBySatelliteIDResponse); rpc All(AllRequest) returns (AllResponse); } message ReputationStats { int64 total_count = 1; int64 success_count = 2; double reputation_alpha = 3; double reputation_beta = 4; double reputation_score = 5; double unknown_reputation_alpha = 6; double unknown_reputation_beta = 7; double unknown_reputation_score = 8; } message GetBySatelliteIDRequest { bytes satellite_id = 1 [(gogoproto.customtype) = "NodeID", (gogoproto.nullable) = false]; } message GetBySatelliteIDResponse { ReputationStats audit_check = 1; google.protobuf.Timestamp disqualified = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = true]; google.protobuf.Timestamp suspended = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = true]; google.protobuf.Timestamp joined_at = 4 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; google.protobuf.Timestamp offline_suspended = 5 [(gogoproto.stdtime) = true, (gogoproto.nullable) = true]; double online_score = 6; google.protobuf.Timestamp offline_under_review = 7 [(gogoproto.stdtime) = true, (gogoproto.nullable) = true]; } message AllRequest {} message AllResponse { repeated GetBySatelliteIDResponse reputation = 1; }