All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sdk.models.datum.proto Maven / Gradle / Ivy

There is a newer version: 0.1.5
Show newest version
syntax = "proto3";
import "scalapb/scalapb.proto";
import "scalapb/validate.proto";



package org.plasmalabs.sdk.models;

import 'validate/validate.proto';
import 'sdk/models/event.proto';

// Datums represent a queryable product value of the arguments available from a certain Event. Datum may be
// evaluated during the Quivr protocol execution by providing events as Datum in a Dynamic Context.
message Datum {
  oneof value {
    Eon eon = 1;
    Era era = 2;
    Epoch epoch = 3;
    Header header = 4;
    IoTransaction ioTransaction = 5;
    GroupPolicy groupPolicy = 6;
    SeriesPolicy seriesPolicy = 7;
  }

  message Eon {
    Event.Eon event = 1 [(validate.rules).message.required = true];
  }
  message Era {
    Event.Era event = 1 [(validate.rules).message.required = true];
  }
  message Epoch {
    Event.Epoch event = 1 [(validate.rules).message.required = true];
  }
  message Header {
    Event.Header event = 1 [(validate.rules).message.required = true];
  }
  message IoTransaction {
    Event.IoTransaction event = 1 [(validate.rules).message.required = true];
  }
  message GroupPolicy {
    Event.GroupPolicy event = 1 [(validate.rules).message.required = true];
  }
  message SeriesPolicy {
    Event.SeriesPolicy event = 1 [(validate.rules).message.required = true];
  }
}

option (scalapb.options) = {
  [scalapb.validate.file] {
    validate_at_construction: true
  }
  field_transformations: [
    {
      when: {options: {[validate.rules] {message: {required: true}}}}
      set: {
        [scalapb.field] {
          required: true
        }
      }
    }
  ]
};




© 2015 - 2025 Weber Informatics LLC | Privacy Policy