syntax = "proto3";

package in_toto_attestation.predicates.vsa.v0;

import "google/protobuf/timestamp.proto";

option go_package = "github.com/in-toto/attestation/go/predicates/vsa/v0";
option java_package = "io.github.intoto.attestation.predicates.vsa.v0";


// Proto representation of predicate type https://slsa.dev/verification_summary/v0.2
// Validation of all fields is left to the users of this proto.
message VerificationSummary {
  message Verifier {
    string id = 1;
  }
  Verifier verifier = 1;

  google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"];

  string resource_uri = 3 [json_name = "resource_uri"];

  message Policy {
    string uri = 1;
    map<string, string> digest = 2;
  }
  Policy policy = 4;

  message InputAttestation {
    string uri = 1;
    map<string, string> digest = 2;
  }
  repeated InputAttestation input_attestations = 5 [json_name = "input_attestations"];

  string verification_result = 6 [json_name = "verification_result"];
  string policy_level = 7 [json_name = "policy_level"];
  map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"];
}
