//Example of topology syntax = "proto3"; package dlt; import "context.proto"; service DltService { rpc RecordToDlt ( DltRecord ) returns ( RecordStatus ) {} rpc GetFromDlt ( DltRecordId ) returns ( DltRecord ) {} rpc SubscribeToDlt ( DltRecordSubscription ) returns ( stream DltRecord ) {} rpc GetDltStatus ( context.Empty ) returns ( DltStatus ) {} } message DltRecordSubscription { DltRecordType type = 1; DltRecordOperation operation = 2; } enum DltRecordType { UNKNOWN = 0; SERVICE = 1; DEVICE = 2; SLICE = 3; } enum DltRecordOperation { ADD = 0; UPDATE = 1; DELETE = 2; } message DltRecord { DltRecordId id = 1; DltRecordType type = 2; DltRecordOperation operation = 3; string json = 4; } message DltRecordId { context.Uuid id = 1; } message RecordStatus { DltRecordId id = 1; DltRecordStatusEnum status = 2; } enum DltRecordStatusEnum { REQUESTED = 0; STORED = 1; DISABLED = 2; } message DltStatus { context.TeraFlowController ctl = 1; DltStatusEnum status = 2; } enum DltStatusEnum { NOT_AVAILABLE = 0; INITIALIZED = 1; AVAILABLE = 2; DEINIT = 3; }