//Example of topology syntax = "proto3"; package service; import "context.proto"; service ServiceService { rpc GetServiceList (context.Empty) returns (ServiceList) {} rpc CreateService (Service) returns (ServiceId) {} rpc UpdateService (Service) returns (ServiceId) {} rpc DeleteService (Service) returns (context.Empty) {} rpc GetServiceById (ServiceId) returns (Service) {} rpc GetConnectionList (context.Empty) returns (ConnectionList) {} } message ServiceList { repeated Service cs = 1; } message Service { ServiceId cs_id = 1; ServiceType serviceType = 2; repeated context.EndPointId endpointList = 3; repeated context.Constraint constraint = 4; ServiceState serviceState = 5; ServiceConfig serviceConfig = 6; } enum ServiceType { UNKNOWN = 0; L3NM = 1; L2NM = 2; TAPI_CONNECTIVITY_SERVICE = 3; } message ServiceConfig { string serviceConfig = 1; } message ServiceId { context.ContextId contextId = 1; context.Uuid cs_id = 2; } message ServiceIdList { repeated ServiceId serviceIdList = 1; } message ServiceState { ServiceStateEnum serviceState = 1; } enum ServiceStateEnum { PLANNED = 0; ACTIVE = 1; PENDING_REMOVAL = 2; } message ConnectionList { repeated Connection connectionList = 1; } message Connection { ConnectionId con_id = 1; ServiceId relatedServiceId = 2; repeated context.EndPointId path = 3; } message ConnectionId { context.Uuid con_id = 1; }