// Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. //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; }