diff --git a/proto/context.proto b/proto/context.proto
index ce7534c806aecd4e1b43fd1c8a39772c1f1a7b9c..3ab3597e46345464b20b5533e7d6725b2231344e 100644
--- a/proto/context.proto
+++ b/proto/context.proto
@@ -19,56 +19,59 @@ import "acl.proto";
 import "kpi_sample_types.proto";
 
 service ContextService {
-  rpc ListContextIds     (Empty       ) returns (       ContextIdList   ) {}
-  rpc ListContexts       (Empty       ) returns (       ContextList     ) {}
-  rpc GetContext         (ContextId   ) returns (       Context         ) {}
-  rpc SetContext         (Context     ) returns (       ContextId       ) {}
-  rpc RemoveContext      (ContextId   ) returns (       Empty           ) {}
-  rpc GetContextEvents   (Empty       ) returns (stream ContextEvent    ) {}
-
-  rpc ListTopologyIds    (ContextId   ) returns (       TopologyIdList  ) {}
-  rpc ListTopologies     (ContextId   ) returns (       TopologyList    ) {}
-  rpc GetTopology        (TopologyId  ) returns (       Topology        ) {}
-  rpc SetTopology        (Topology    ) returns (       TopologyId      ) {}
-  rpc RemoveTopology     (TopologyId  ) returns (       Empty           ) {}
-  rpc GetTopologyEvents  (Empty       ) returns (stream TopologyEvent   ) {}
-
-  rpc ListDeviceIds      (Empty       ) returns (       DeviceIdList    ) {}
-  rpc ListDevices        (Empty       ) returns (       DeviceList      ) {}
-  rpc GetDevice          (DeviceId    ) returns (       Device          ) {}
-  rpc SetDevice          (Device      ) returns (       DeviceId        ) {}
-  rpc RemoveDevice       (DeviceId    ) returns (       Empty           ) {}
-  rpc GetDeviceEvents    (Empty       ) returns (stream DeviceEvent     ) {}
-
-  rpc ListLinkIds        (Empty       ) returns (       LinkIdList      ) {}
-  rpc ListLinks          (Empty       ) returns (       LinkList        ) {}
-  rpc GetLink            (LinkId      ) returns (       Link            ) {}
-  rpc SetLink            (Link        ) returns (       LinkId          ) {}
-  rpc RemoveLink         (LinkId      ) returns (       Empty           ) {}
-  rpc GetLinkEvents      (Empty       ) returns (stream LinkEvent       ) {}
-
-  rpc ListServiceIds     (ContextId   ) returns (       ServiceIdList   ) {}
-  rpc ListServices       (ContextId   ) returns (       ServiceList     ) {}
-  rpc GetService         (ServiceId   ) returns (       Service         ) {}
-  rpc SetService         (Service     ) returns (       ServiceId       ) {}
-  rpc UnsetService       (Service     ) returns (       ServiceId       ) {}
-  rpc RemoveService      (ServiceId   ) returns (       Empty           ) {}
-  rpc GetServiceEvents   (Empty       ) returns (stream ServiceEvent    ) {}
-
-  rpc ListSliceIds       (ContextId   ) returns (       SliceIdList     ) {}
-  rpc ListSlices         (ContextId   ) returns (       SliceList       ) {}
-  rpc GetSlice           (SliceId     ) returns (       Slice           ) {}
-  rpc SetSlice           (Slice       ) returns (       SliceId         ) {}
-  rpc UnsetSlice         (Slice       ) returns (       SliceId         ) {}
-  rpc RemoveSlice        (SliceId     ) returns (       Empty           ) {}
-  rpc GetSliceEvents     (Empty       ) returns (stream SliceEvent      ) {}
-
-  rpc ListConnectionIds  (ServiceId   ) returns (       ConnectionIdList) {}
-  rpc ListConnections    (ServiceId   ) returns (       ConnectionList  ) {}
-  rpc GetConnection      (ConnectionId) returns (       Connection      ) {}
-  rpc SetConnection      (Connection  ) returns (       ConnectionId    ) {}
-  rpc RemoveConnection   (ConnectionId) returns (       Empty           ) {}
-  rpc GetConnectionEvents(Empty       ) returns (stream ConnectionEvent ) {}
+  rpc ListContextIds     (Empty         ) returns (       ContextIdList   ) {}
+  rpc ListContexts       (Empty         ) returns (       ContextList     ) {}
+  rpc GetContext         (ContextId     ) returns (       Context         ) {}
+  rpc SetContext         (Context       ) returns (       ContextId       ) {}
+  rpc RemoveContext      (ContextId     ) returns (       Empty           ) {}
+  rpc GetContextEvents   (Empty         ) returns (stream ContextEvent    ) {}
+
+  rpc ListTopologyIds    (ContextId     ) returns (       TopologyIdList  ) {}
+  rpc ListTopologies     (ContextId     ) returns (       TopologyList    ) {}
+  rpc GetTopology        (TopologyId    ) returns (       Topology        ) {}
+  rpc GetTopologyDetails (TopologyId    ) returns (       TopologyDetails ) {}
+  rpc SetTopology        (Topology      ) returns (       TopologyId      ) {}
+  rpc RemoveTopology     (TopologyId    ) returns (       Empty           ) {}
+  rpc GetTopologyEvents  (Empty         ) returns (stream TopologyEvent   ) {}
+
+  rpc ListDeviceIds      (Empty         ) returns (       DeviceIdList    ) {}
+  rpc ListDevices        (Empty         ) returns (       DeviceList      ) {}
+  rpc GetDevice          (DeviceId      ) returns (       Device          ) {}
+  rpc SetDevice          (Device        ) returns (       DeviceId        ) {}
+  rpc RemoveDevice       (DeviceId      ) returns (       Empty           ) {}
+  rpc GetDeviceEvents    (Empty         ) returns (stream DeviceEvent     ) {}
+
+  rpc ListEndPointNames  (EndPointIdList) returns (       EndPointNameList) {}
+
+  rpc ListLinkIds        (Empty         ) returns (       LinkIdList      ) {}
+  rpc ListLinks          (Empty         ) returns (       LinkList        ) {}
+  rpc GetLink            (LinkId        ) returns (       Link            ) {}
+  rpc SetLink            (Link          ) returns (       LinkId          ) {}
+  rpc RemoveLink         (LinkId        ) returns (       Empty           ) {}
+  rpc GetLinkEvents      (Empty         ) returns (stream LinkEvent       ) {}
+
+  rpc ListServiceIds     (ContextId     ) returns (       ServiceIdList   ) {}
+  rpc ListServices       (ContextId     ) returns (       ServiceList     ) {}
+  rpc GetService         (ServiceId     ) returns (       Service         ) {}
+  rpc SetService         (Service       ) returns (       ServiceId       ) {}
+  rpc UnsetService       (Service       ) returns (       ServiceId       ) {}
+  rpc RemoveService      (ServiceId     ) returns (       Empty           ) {}
+  rpc GetServiceEvents   (Empty         ) returns (stream ServiceEvent    ) {}
+
+  rpc ListSliceIds       (ContextId     ) returns (       SliceIdList     ) {}
+  rpc ListSlices         (ContextId     ) returns (       SliceList       ) {}
+  rpc GetSlice           (SliceId       ) returns (       Slice           ) {}
+  rpc SetSlice           (Slice         ) returns (       SliceId         ) {}
+  rpc UnsetSlice         (Slice         ) returns (       SliceId         ) {}
+  rpc RemoveSlice        (SliceId       ) returns (       Empty           ) {}
+  rpc GetSliceEvents     (Empty         ) returns (stream SliceEvent      ) {}
+
+  rpc ListConnectionIds  (ServiceId     ) returns (       ConnectionIdList) {}
+  rpc ListConnections    (ServiceId     ) returns (       ConnectionList  ) {}
+  rpc GetConnection      (ConnectionId  ) returns (       Connection      ) {}
+  rpc SetConnection      (Connection    ) returns (       ConnectionId    ) {}
+  rpc RemoveConnection   (ConnectionId  ) returns (       Empty           ) {}
+  rpc GetConnectionEvents(Empty         ) returns (stream ConnectionEvent ) {}
 }
 
 // ----- Generic -------------------------------------------------------------------------------------------------------
@@ -135,6 +138,13 @@ message Topology {
   repeated LinkId link_ids = 4;
 }
 
+message TopologyDetails {
+  TopologyId topology_id = 1;
+  string name = 2;
+  repeated Device devices = 3;
+  repeated Link links = 4;
+}
+
 message TopologyIdList {
   repeated TopologyId topology_ids = 1;
 }
@@ -413,6 +423,21 @@ message EndPoint {
   Location endpoint_location = 5;
 }
 
+message EndPointName {
+  EndPointId endpoint_id = 1;
+  string device_name = 2;
+  string endpoint_name = 3;
+  string endpoint_type = 4;
+}
+
+message EndPointIdList {
+  repeated EndPointId endpoint_ids = 1;
+}
+
+message EndPointNameList {
+  repeated EndPointName endpoint_names = 1;
+}
+
 
 // ----- Configuration -------------------------------------------------------------------------------------------------
 enum ConfigActionEnum {