diff --git a/application-framework/registration/registration.go b/application-framework/registration/registration.go
index 2c3571b5e9e4ba9950d0e4ac378b00fbf2b7db54..abd24076858190e9b9219f8548be4dc4bf0f17e8 100644
--- a/application-framework/registration/registration.go
+++ b/application-framework/registration/registration.go
@@ -36,5 +36,5 @@ func Register(ctx context.Context, gosdnAddress, name, token string) (string, er
 		return "", err
 	}
 
-	return response.Queueconnection, nil
+	return response.GetQueueconnection(), nil
 }
diff --git a/applications/arista-routing-engine/app.go b/applications/arista-routing-engine/app.go
index 64aadaa1b061edc89e6d387afddf615c20badfb2..2142586ed448ce573f1d305071e28c93ae80429b 100644
--- a/applications/arista-routing-engine/app.go
+++ b/applications/arista-routing-engine/app.go
@@ -82,12 +82,12 @@ func (a *Application) LinksCallback(event *event.Event) {
 		return
 	}
 
-	links := getTopologyResponse.Toplogy.Links
+	links := getTopologyResponse.GetToplogy().GetLinks()
 
 	for _, link := range links {
 		fmt.Printf("[APP] Link: %+v", link)
-		adjustNodePortsToMatchConfiguration(networkElementServer, link.SourceNode, link.SourcePort)
-		adjustNodePortsToMatchConfiguration(networkElementServer, link.TargetNode, link.TargetPort)
+		adjustNodePortsToMatchConfiguration(networkElementServer, link.GetSourceNode(), link.GetSourcePort())
+		adjustNodePortsToMatchConfiguration(networkElementServer, link.GetTargetNode(), link.GetTargetPort())
 	}
 }
 
@@ -109,10 +109,10 @@ func (a *Application) RoutesCallback(event *event.Event) {
 		return
 	}
 
-	for _, node := range response.RoutingTables {
-		nodeID := node.NodeID
+	for _, node := range response.GetRoutingTables() {
+		nodeID := node.GetNodeID()
 
-		for _, nodeRoute := range node.Routes {
+		for _, nodeRoute := range node.GetRoutes() {
 			adjustNodeRoutesToMatchConfiguration(networkElementServer, nodeID, nodeRoute)
 		}
 	}
diff --git a/applications/arista-routing-engine/network-element.go b/applications/arista-routing-engine/network-element.go
index 79f6382baaf3dda0ed61f7ace91999b133e159e1..3453cb8295d7319ef7bfee598e2975cc2cf7b487 100644
--- a/applications/arista-routing-engine/network-element.go
+++ b/applications/arista-routing-engine/network-element.go
@@ -50,7 +50,7 @@ func NewNetworkElement(id uuid.UUID, name string, networkelementModel string) *N
 }
 
 func adjustNodePortsToMatchConfiguration(networkElementServer mnepb.NetworkElementServiceClient, node *topology.Node, port *topology.Port) {
-	nodeUUID := uuid.MustParse(node.Id)
+	nodeUUID := uuid.MustParse(node.GetId())
 
 	adjustInterfacesOfNetworkElement(
 		networkElementServer,
@@ -72,9 +72,9 @@ func adjustInterfacesOfNetworkElement(networkElementServer mnepb.NetworkElementS
 		return
 	}
 
-	fmt.Printf("[APP] ID: %v, NetworkElement: %+v \n", response.Mne.Id, response.Mne)
+	fmt.Printf("[APP] ID: %v, NetworkElement: %+v \n", response.GetMne().GetId(), response.GetMne())
 
-	mne := NewNetworkElement(uuid.MustParse(response.Mne.Id), response.Mne.Name, response.Mne.Model)
+	mne := NewNetworkElement(uuid.MustParse(response.GetMne().GetId()), response.GetMne().GetName(), response.GetMne().GetModel())
 
 	fmt.Printf("[APP] NetworkElement.Hostname %s \n", *mne.Model.System.Config.Hostname)
 
@@ -85,9 +85,9 @@ func adjustInterfacesOfNetworkElement(networkElementServer mnepb.NetworkElementS
 
 	setIPOnInterface(
 		&mne.Model,
-		portConfiguration.Name,
-		portConfiguration.Configuration.Ip,
-		int(portConfiguration.Configuration.PrefixLength),
+		portConfiguration.GetName(),
+		portConfiguration.GetConfiguration().GetIp(),
+		int(portConfiguration.GetConfiguration().GetPrefixLength()),
 	)
 
 	modelAsString, err := models.GetModelAsString(&mne.Model)
@@ -125,13 +125,13 @@ func adjustNodeRoutesToMatchConfiguration(networkElementServer mnepb.NetworkElem
 		return
 	}
 
-	fmt.Printf("[APP] ID: %v, NetworkElement: %+v \n", response.Mne.Id, response.Mne)
+	fmt.Printf("[APP] ID: %v, NetworkElement: %+v \n", response.GetMne().GetId(), response.GetMne())
 
-	mne := NewNetworkElement(uuid.MustParse(response.Mne.Id), response.Mne.Name, response.Mne.Model)
+	mne := NewNetworkElement(uuid.MustParse(response.GetMne().GetId()), response.GetMne().GetName(), response.GetMne().GetModel())
 
 	fmt.Printf("[APP] NetworkElement.Hostname %s \n", *mne.Model.System.Config.Hostname)
 
-	setRoutingTable(&mne.Model, route.TargetIPRange, route.NextHopIP)
+	setRoutingTable(&mne.Model, route.GetTargetIPRange(), route.GetNextHopIP())
 
 	modelAsString, err := models.GetModelAsString(&mne.Model)
 	if err != nil {
diff --git a/applications/basic-interface-monitoring/network-element.go b/applications/basic-interface-monitoring/network-element.go
index 9ac8662a0d3d86c14fdf133ac8257ea2a68356bf..5ae286deb5acd72f735cada18294a6ab996866be 100644
--- a/applications/basic-interface-monitoring/network-element.go
+++ b/applications/basic-interface-monitoring/network-element.go
@@ -75,7 +75,7 @@ func checkIfOperationStateHasChanged(networkElementServer networkelement.Network
 		return nil, err
 	}
 
-	networkElement := NewNetworkElement(uuid.MustParse(resp.Mne.Id), resp.Mne.Name, resp.Mne.Model)
+	networkElement := NewNetworkElement(uuid.MustParse(resp.GetMne().GetId()), resp.GetMne().GetName(), resp.GetMne().GetModel())
 
 	storedInterfaces, ok := statusMap[networkElement.Name]
 	if !ok {
diff --git a/applications/hostname-checker/app.go b/applications/hostname-checker/app.go
index 441828a458e1f597039c645563327648c42dc5e5..9daad5be8c73ed749fb78756b6e0a6684c6570ec 100644
--- a/applications/hostname-checker/app.go
+++ b/applications/hostname-checker/app.go
@@ -74,9 +74,9 @@ func (a *Application) callback(event *event.Event) {
 		return
 	}
 
-	fmt.Printf("\n[APP] Device-ID: %v, NetworkElement-Name: %+v \n", response.Mne.Id, response.Mne.Name)
+	fmt.Printf("\n[APP] Device-ID: %v, NetworkElement-Name: %+v \n", response.GetMne().GetId(), response.GetMne().GetName())
 
-	d := NewDevice(uuid.MustParse(response.Mne.Id), response.Mne.Name)
+	d := NewDevice(uuid.MustParse(response.GetMne().GetId()), response.GetMne().GetName())
 
 	// Create 'root' path to be able to load the whole model from the store.
 	path, err := ygot.StringToPath("/", ygot.StructuredPath)
@@ -85,7 +85,7 @@ func (a *Application) callback(event *event.Event) {
 	}
 
 	// Use unmarshall from the devices SBI to unmarshall ygot json in go struct.
-	err = models.Unmarshal([]byte(response.Mne.Model), path, &d.Model)
+	err = models.Unmarshal([]byte(response.GetMne().GetModel()), path, &d.Model)
 	if err != nil {
 		panic(err)
 	}
diff --git a/applications/venv-manager/venv-manager/venv-manager.go b/applications/venv-manager/venv-manager/venv-manager.go
index c1d6f65107b4358c557f9c3cfbd14c11c57b87a7..3186be6e86173a5b6d240877a40d14f0744ddddd 100644
--- a/applications/venv-manager/venv-manager/venv-manager.go
+++ b/applications/venv-manager/venv-manager/venv-manager.go
@@ -110,7 +110,7 @@ func (v *VenvManager) sendSDNConfigData(sdnConfigData *string) error {
 	}
 
 	// currently only support for default PND
-	v.pndID = pndRes.Pnd[0].Id
+	v.pndID = pndRes.GetPnd()[0].GetId()
 
 	configMgmtService := configMgmtPb.NewConfigurationManagementServiceClient(conn)
 
@@ -152,7 +152,7 @@ func (v *VenvManager) getSDNConfigData() (*string, error) {
 	if err != nil {
 		return nil, err
 	}
-	v.pndID = pndRes.Pnd[0].Id
+	v.pndID = pndRes.GetPnd()[0].GetId()
 
 	configMgmtService := configMgmtPb.NewConfigurationManagementServiceClient(conn)
 
@@ -228,8 +228,8 @@ func (v *VenvManager) getTopologyData() (*topologyPb.GetTopologyResponse, error)
 	if err != nil {
 		return nil, err
 	}
-	v.pndID = pndRes.Pnd[0].Id
-	v.pndName = pndRes.Pnd[0].Name
+	v.pndID = pndRes.GetPnd()[0].GetId()
+	v.pndName = pndRes.GetPnd()[0].GetName()
 
 	toplogyService := topologyPb.NewTopologyServiceClient(conn)
 	topologyResponse, err := toplogyService.GetTopology(ctx, &topologyPb.GetTopologyRequest{Timestamp: getTimestamp()})
@@ -247,11 +247,11 @@ func (v *VenvManager) parseTopologyDataIntoStructs(topologyData *topologyPb.GetT
 	nodes := []node.Node{}
 	ports := []port.Port{}
 
-	for _, unparsedLink := range topologyData.Toplogy.Links {
-		sourceNode := node.Node{ID: unparsedLink.SourceNode.Id, Name: unparsedLink.SourceNode.Name, Kind: "", Image: ""}
-		targetNode := node.Node{ID: unparsedLink.TargetNode.Id, Name: unparsedLink.TargetNode.Name, Kind: "", Image: ""}
-		sourcePort := port.Port{ID: unparsedLink.SourcePort.Id, Name: unparsedLink.SourcePort.Name}
-		targetPort := port.Port{ID: unparsedLink.TargetPort.Id, Name: unparsedLink.TargetPort.Name}
+	for _, unparsedLink := range topologyData.GetToplogy().GetLinks() {
+		sourceNode := node.Node{ID: unparsedLink.GetSourceNode().GetId(), Name: unparsedLink.GetSourceNode().GetName(), Kind: "", Image: ""}
+		targetNode := node.Node{ID: unparsedLink.GetTargetNode().GetId(), Name: unparsedLink.GetTargetNode().GetName(), Kind: "", Image: ""}
+		sourcePort := port.Port{ID: unparsedLink.GetSourcePort().GetId(), Name: unparsedLink.GetSourcePort().GetName()}
+		targetPort := port.Port{ID: unparsedLink.GetTargetPort().GetId(), Name: unparsedLink.GetTargetPort().GetName()}
 
 		index, err := getIndexOfElement(nodes, sourceNode.ID)
 		if err != nil {
@@ -281,7 +281,7 @@ func (v *VenvManager) parseTopologyDataIntoStructs(topologyData *topologyPb.GetT
 			targetPort = ports[index]
 		}
 
-		newLink := link.Link{ID: unparsedLink.Id, Name: unparsedLink.Name, SourceNode: &sourceNode, TargetNode: &targetNode, SourcePort: &sourcePort, TargetPort: &targetPort}
+		newLink := link.Link{ID: unparsedLink.GetId(), Name: unparsedLink.GetName(), SourceNode: &sourceNode, TargetNode: &targetNode, SourcePort: &sourcePort, TargetPort: &targetPort}
 		links = append(links, newLink)
 	}
 
@@ -342,12 +342,12 @@ func (v *VenvManager) getAndAddMoreData(topologyData *topology.GoSdnTopology) (*
 
 		var marshalledYangData openconfig.Device
 
-		err = yangparser.Unmarshal([]byte(getNetworkElementResponse.Mne.Model), ygotPath, &marshalledYangData)
+		err = yangparser.Unmarshal([]byte(getNetworkElementResponse.GetMne().GetModel()), ygotPath, &marshalledYangData)
 		if err != nil {
 			return nil, err
 		}
 
-		mgmntAddress := strings.Split(getNetworkElementResponse.Mne.TransportAddress, ":")
+		mgmntAddress := strings.Split(getNetworkElementResponse.GetMne().GetTransportAddress(), ":")
 		topologyData.Nodes[iterator].MgmtIpv4 = mgmntAddress[0]
 		topologyData.Nodes[iterator].YangData = marshalledYangData
 		topologyData.Nodes[iterator].FillAllFields(v.containerRegistryURL)
diff --git a/cli/adapter/PndAdapter.go b/cli/adapter/PndAdapter.go
index e1bd8936b36c5d83acf88f005f878d38e808a406..fd041d39646915b3e98fd157513593a31d65daf9 100644
--- a/cli/adapter/PndAdapter.go
+++ b/cli/adapter/PndAdapter.go
@@ -116,9 +116,9 @@ func (p *PndAdapter) RequestAll(ctx context.Context, path string) ([]proto.Messa
 	if err != nil {
 		return []proto.Message{}, err
 	}
-	reqResult := make([]proto.Message, len(resp.Mne))
+	reqResult := make([]proto.Message, len(resp.GetMne()))
 	g := new(errgroup.Group)
-	for i, mne := range resp.Mne {
+	for i, mne := range resp.GetMne() {
 		// TODO: probably the controller should do this; this would result in a
 		// single request from CLI side.
 		g.Go(func() error {
@@ -202,8 +202,8 @@ func (p *PndAdapter) Confirm(ctx context.Context, cuid uuid.UUID) (*mnepb.SetCha
 
 func filterChanges(state mnepb.ChangeState, resp *mnepb.GetChangeListResponse) []*mnepb.Change {
 	changes := make([]*mnepb.Change, 0)
-	for _, ch := range resp.Change {
-		if ch.State == state {
+	for _, ch := range resp.GetChange() {
+		if ch.GetState() == state {
 			changes = append(changes, ch)
 		}
 	}
diff --git a/cli/cmd/list.go b/cli/cmd/list.go
index 2e476d4e7487361d53504ee1d3b51d7505237cab..8628424d06314f7ef96aeb74663483faca598dfa 100644
--- a/cli/cmd/list.go
+++ b/cli/cmd/list.go
@@ -58,9 +58,9 @@ var listCmd = &cobra.Command{
 				pterm.Error.Println(err)
 				return
 			}
-			log.Infof("PND %v: name: %v, uuid: %v", i+1, pnd.Name, pnd.Id)
+			log.Infof("PND %v: name: %v, uuid: %v", i+1, pnd.GetName(), pnd.GetId())
 			for k, mne := range mneResp.GetMne() {
-				log.Infof("    MNE %v: name: %v, uuid: %v", k+1, mne.Name, mne.Id)
+				log.Infof("    MNE %v: name: %v, uuid: %v", k+1, mne.GetName(), mne.GetId())
 				log.Infof("    Plugin %v: uuid: %v", k+1, mne.GetPid())
 			}
 		}
diff --git a/cli/cmd/login.go b/cli/cmd/login.go
index babf01ee8f167ae75a396faf306e0debc2c30ca1..f5a71d5be855512f5d3117f565b4524f107c680c 100644
--- a/cli/cmd/login.go
+++ b/cli/cmd/login.go
@@ -72,7 +72,7 @@ var loginCmd = &cobra.Command{
 
 		spinner.Success("Authentication for ", nbUserName, " was successful.")
 
-		userToken = resp.Token
+		userToken = resp.GetToken()
 
 		viper.Set("USER_TOKEN", userToken)
 
diff --git a/cli/cmd/logout.go b/cli/cmd/logout.go
index 68bc8a7394c6ed7bf2c9ab91fa72de9b1c39c2f5..03f03fde3dd1a4f0e620e1d56cae1774282dd4db 100644
--- a/cli/cmd/logout.go
+++ b/cli/cmd/logout.go
@@ -64,7 +64,7 @@ var logoutCmd = &cobra.Command{
 			return
 		}
 
-		spinner.Success("User ", nbUserName, " successfully logged out at ", time.Unix((resp.Timestamp/1000000000), 0), ".")
+		spinner.Success("User ", nbUserName, " successfully logged out at ", time.Unix((resp.GetTimestamp()/1000000000), 0), ".")
 	},
 	PostRun: func(cmd *cobra.Command, args []string) {
 		// Necessary for prompt mode. The flag variables have to be resetted,
diff --git a/cli/cmd/networkElementPathDelete.go b/cli/cmd/networkElementPathDelete.go
index 8019b1c7e9faa32d4b17c50a8232f012aa341a25..46ee60ebd73ff18b2d0279181438c8f828b07494 100644
--- a/cli/cmd/networkElementPathDelete.go
+++ b/cli/cmd/networkElementPathDelete.go
@@ -72,14 +72,14 @@ The network element UUID and request path must be specified as a positional argu
 		if err != nil {
 			spinner.Fail(err)
 
-			for _, r := range resp.Responses {
+			for _, r := range resp.GetResponses() {
 				spinner.Fail("An error occurred while creating a path deletion request for network element with ID: ", r.GetId())
 			}
 
 			return
 		}
 
-		for _, r := range resp.Responses {
+		for _, r := range resp.GetResponses() {
 			spinner.Success("A change for path deletion for network element: ", mneid.String(), "has been created -> Change ID: ", r.GetId())
 		}
 	},
diff --git a/cli/cmd/networkElementPathGet.go b/cli/cmd/networkElementPathGet.go
index f7ab234e4003296400b3bd7275fc43cda1018078..9c8d23e9510bae8e59aba2f6cff3ef806245756f 100644
--- a/cli/cmd/networkElementPathGet.go
+++ b/cli/cmd/networkElementPathGet.go
@@ -64,15 +64,15 @@ The network element UUID and request path must be specified as a positional argu
 			return
 		}
 
-		for _, n := range res.MneNotification {
+		for _, n := range res.GetMneNotification() {
 			var panel3 string
 			panel1 := pterm.DefaultBox.WithTitle("Timestamp:").Sprint(n.GetTimestamp())
 			panel2 := pterm.DefaultBox.WithTitle("Requested Path:").Sprint(args[1])
 
-			if len(n.Update) == 0 {
+			if len(n.GetUpdate()) == 0 {
 				panel3 = pterm.DefaultBox.WithTitle("Update:").Sprint("empty value")
 			} else {
-				val := n.Update[0].GetVal()
+				val := n.GetUpdate()[0].GetVal()
 				switch valTyped := val.GetValue().(type) {
 				case *gpb.TypedValue_JsonIetfVal:
 					panel3 = pterm.DefaultBox.WithTitle("Update:").Sprint(string(valTyped.JsonIetfVal))
diff --git a/cli/cmd/networkElementPathGetIntended.go b/cli/cmd/networkElementPathGetIntended.go
index ceb8f50ed9eb4055ae580734213c74d48cf43dc5..fbec15f7a387655d626dd4cd60c35f20c71edeb2 100644
--- a/cli/cmd/networkElementPathGetIntended.go
+++ b/cli/cmd/networkElementPathGetIntended.go
@@ -68,14 +68,14 @@ The network element UUID and request path must be specified as a positional argu
 
 		var stringVal = "Update: "
 		var panel3 string
-		for _, n := range res.MneNotification {
+		for _, n := range res.GetMneNotification() {
 			panel1 := pterm.DefaultBox.WithTitle("Timestamp:").Sprint(n.GetTimestamp())
 			panel2 := pterm.DefaultBox.WithTitle("Requested Path:").Sprint(args[1])
 
-			if len(n.Update) == 0 {
+			if len(n.GetUpdate()) == 0 {
 				panel3 = pterm.DefaultBox.WithTitle("Update:").Sprint("empty value")
 			} else {
-				val := n.Update[0].GetVal()
+				val := n.GetUpdate()[0].GetVal()
 				switch valTyped := val.GetValue().(type) {
 				case *gpb.TypedValue_JsonIetfVal:
 					// Note: This is supposed to be a temporary fix to prevent the CLI from blocking during the
diff --git a/cli/cmd/networkElementShow.go b/cli/cmd/networkElementShow.go
index d88365a7a7c181a8b7296948dc69b934fbb25149..f154aec5498114240c9959be398934594460c28b 100644
--- a/cli/cmd/networkElementShow.go
+++ b/cli/cmd/networkElementShow.go
@@ -55,11 +55,11 @@ The actual network element is not queried directly.`,
 
 		mne := resp.GetMne()
 
-		panel1 := pterm.DefaultBox.WithTitle("UUID:").Sprint(mne.Id)
-		panel2 := pterm.DefaultBox.WithTitle("Name:").Sprint(mne.Name)
+		panel1 := pterm.DefaultBox.WithTitle("UUID:").Sprint(mne.GetId())
+		panel2 := pterm.DefaultBox.WithTitle("Name:").Sprint(mne.GetName())
 
-		panel3 := pterm.DefaultBox.WithTitle("Plugin-ID:").Sprint(mne.Plugin.Id)
-		panel4 := pterm.DefaultBox.WithTitle("Manifest:").Sprint(mne.Plugin.Manifest)
+		panel3 := pterm.DefaultBox.WithTitle("Plugin-ID:").Sprint(mne.GetPlugin().GetId())
+		panel4 := pterm.DefaultBox.WithTitle("Manifest:").Sprint(mne.GetPlugin().GetManifest())
 
 		panel5 := pterm.DefaultBox.WithTitle("Plugin:").Sprint(panel3, "\n", panel4)
 
diff --git a/cli/cmd/pndGet.go b/cli/cmd/pndGet.go
index 7fdabe07fa67e4c2e44077076a9b3fc88e32d96f..035a66dc04b4db224a86990cae293171fd735450 100644
--- a/cli/cmd/pndGet.go
+++ b/cli/cmd/pndGet.go
@@ -52,10 +52,10 @@ var pndGetCmd = &cobra.Command{
 			return
 		}
 
-		pnd := resp.Pnd
-		panel1 := pterm.DefaultBox.WithTitle("UUID:").Sprint(pnd.Id)
-		panel2 := pterm.DefaultBox.WithTitle("Name:").Sprint(pnd.Name)
-		panel3 := pterm.DefaultBox.WithTitle("Description:").Sprint(pnd.Description)
+		pnd := resp.GetPnd()
+		panel1 := pterm.DefaultBox.WithTitle("UUID:").Sprint(pnd.GetId())
+		panel2 := pterm.DefaultBox.WithTitle("Name:").Sprint(pnd.GetName())
+		panel3 := pterm.DefaultBox.WithTitle("Description:").Sprint(pnd.GetDescription())
 
 		panels, _ := pterm.DefaultPanel.WithPanels(pterm.Panels{
 			{{Data: panel1}},
diff --git a/cli/cmd/pndList.go b/cli/cmd/pndList.go
index d0da1b0a818d06f649c1f54cd9e5243d7cb8d0a3..ce54cf20dcaad7eadfe57e76b7fb0780c47b1e2a 100644
--- a/cli/cmd/pndList.go
+++ b/cli/cmd/pndList.go
@@ -54,7 +54,7 @@ var pndListCmd = &cobra.Command{
 		}
 
 		data := pterm.TableData{[]string{"UUID", "Name", "Description"}}
-		for _, pnd := range resp.Pnd {
+		for _, pnd := range resp.GetPnd() {
 			data = append(data, []string{pnd.GetId(), pnd.GetName(), pnd.GetDescription()})
 		}
 
diff --git a/cli/cmd/prompt.go b/cli/cmd/prompt.go
index f297fe392b72c7f0b4bde44bc7e5bbcbd215b787..b243b471263f961cc8b2d4fcdc5c110fde63da3a 100644
--- a/cli/cmd/prompt.go
+++ b/cli/cmd/prompt.go
@@ -318,7 +318,7 @@ func getNetworkElements() ([]prompt.Suggest, error) {
 	}
 
 	s := []prompt.Suggest{}
-	for _, mne := range resp.Mne {
+	for _, mne := range resp.GetMne() {
 		s = append(s, prompt.Suggest{Text: mne.GetId(), Description: mne.GetName()})
 	}
 	spinner.Success()
@@ -335,7 +335,7 @@ func getAvailablePlugins() ([]prompt.Suggest, error) {
 
 	s := []prompt.Suggest{}
 	for _, plugin := range resp.GetPlugins() {
-		s = append(s, prompt.Suggest{Text: plugin.GetId(), Description: plugin.Manifest.GetName()})
+		s = append(s, prompt.Suggest{Text: plugin.GetId(), Description: plugin.GetManifest().GetName()})
 	}
 	spinner.Success()
 	return completer.SortSuggestionByText(s), nil
@@ -398,7 +398,7 @@ func getPendingChanges() ([]prompt.Suggest, error) {
 
 	s := []prompt.Suggest{}
 	for _, change := range resp {
-		s = append(s, prompt.Suggest{Text: change.GetId(), Description: change.State.String()})
+		s = append(s, prompt.Suggest{Text: change.GetId(), Description: change.GetState().String()})
 	}
 	spinner.Success()
 	return completer.SortSuggestionByText(s), nil
@@ -419,7 +419,7 @@ func getCommittedChanges() ([]prompt.Suggest, error) {
 
 	s := []prompt.Suggest{}
 	for _, change := range resp {
-		s = append(s, prompt.Suggest{Text: change.GetId(), Description: change.State.String()})
+		s = append(s, prompt.Suggest{Text: change.GetId(), Description: change.GetState().String()})
 	}
 	spinner.Success()
 	return completer.SortSuggestionByText(s), nil
diff --git a/cli/cmd/roleGetAll.go b/cli/cmd/roleGetAll.go
index dad97638eb6478e089caac96630ce3bd122b93c3..f02019d7c43d06ace5ac28b827b67a043734f5b6 100644
--- a/cli/cmd/roleGetAll.go
+++ b/cli/cmd/roleGetAll.go
@@ -55,7 +55,7 @@ var roleGetAllCmd = &cobra.Command{
 
 		data := pterm.TableData{[]string{"Name", "ID", "Description", "Permissions"}}
 		for _, role := range resp.GetRoles() {
-			data = append(data, []string{role.Name, role.Id, role.Description}, role.Permissions)
+			data = append(data, []string{role.GetName(), role.GetId(), role.GetDescription()}, role.GetPermissions())
 		}
 
 		spinner.Success()
diff --git a/cli/cmd/subManagementGet.go b/cli/cmd/subManagementGet.go
index 32910766c61e0784362251d6ba6b3924d99a0ef4..d8ca2016c528575f42e11f5b2b9e610a96a1d507 100644
--- a/cli/cmd/subManagementGet.go
+++ b/cli/cmd/subManagementGet.go
@@ -56,7 +56,7 @@ var subGetCmd = &cobra.Command{
 		spinner.Success()
 
 		data1 := pterm.TableData{[]string{"SubUUID", "MneID", "MneName", "PndID"}}
-		data1 = append(data1, []string{resp.Subscriptions.Subid, resp.Subscriptions.Mneid, resp.Subscriptions.MneName, resp.Subscriptions.Pid})
+		data1 = append(data1, []string{resp.GetSubscriptions().GetSubid(), resp.GetSubscriptions().GetMneid(), resp.GetSubscriptions().GetMneName(), resp.GetSubscriptions().GetPid()})
 		err = pterm.DefaultTable.WithHasHeader().WithData(data1).Render()
 		if err != nil {
 			return
@@ -64,15 +64,15 @@ var subGetCmd = &cobra.Command{
 
 		pterm.Print(pterm.FgLightCyan.Sprintf("Subscribe Options\n"))
 		data2 := pterm.TableData{[]string{"GnmiMode", "GnmiStreamMode", "SampleInterval (ns)"}}
-		data2 = append(data2, []string{resp.Subscriptions.SubscribeOptions.GnmiMode, resp.Subscriptions.SubscribeOptions.GnmiStreamMode, fmt.Sprint(resp.Subscriptions.SubscribeOptions.SampleInterval)})
+		data2 = append(data2, []string{resp.GetSubscriptions().GetSubscribeOptions().GetGnmiMode(), resp.GetSubscriptions().GetSubscribeOptions().GetGnmiStreamMode(), fmt.Sprint(resp.GetSubscriptions().GetSubscribeOptions().GetSampleInterval())})
 		err = pterm.DefaultTable.WithHasHeader().WithData(data2).Render()
 		if err != nil {
 			return
 		}
 
 		data3 := pterm.TableData{[]string{"Paths"}}
-		for _, path := range resp.Subscriptions.Paths {
-			data3 = append(data3, path.Elem)
+		for _, path := range resp.GetSubscriptions().GetPaths() {
+			data3 = append(data3, path.GetElem())
 		}
 
 		err = pterm.DefaultTable.WithHasHeader().WithData(data3).Render()
diff --git a/cli/cmd/subManagementGetAll.go b/cli/cmd/subManagementGetAll.go
index cf844c00d9a95e85fa992a16e32690c0ebd2887f..1558160ddf49d770c83bfeadd5072b935c3850d5 100644
--- a/cli/cmd/subManagementGetAll.go
+++ b/cli/cmd/subManagementGetAll.go
@@ -54,7 +54,7 @@ var subGetAllCmd = &cobra.Command{
 			return
 		}
 
-		for _, sub := range resp.Subscriptions {
+		for _, sub := range resp.GetSubscriptions() {
 			logrus.Println(sub)
 		}
 
diff --git a/cli/cmd/userGet.go b/cli/cmd/userGet.go
index fa38558ecb7f84e0781471051b78750816a4c439..360132c7f96a5400a24b38f1263c3cec27b7fb6a 100644
--- a/cli/cmd/userGet.go
+++ b/cli/cmd/userGet.go
@@ -58,8 +58,8 @@ var userGetCmd = &cobra.Command{
 			return
 		}
 
-		log.Infof("ID: %v, Name: %v \n", resp.User.Id, resp.User.Name)
-		for key, elem := range resp.User.Roles {
+		log.Infof("ID: %v, Name: %v \n", resp.GetUser().GetId(), resp.GetUser().GetName())
+		for key, elem := range resp.GetUser().GetRoles() {
 			log.Infof("Role on PND: %v %v \n", key, elem)
 		}
 	},
diff --git a/cli/cmd/userGetAll.go b/cli/cmd/userGetAll.go
index f033708a95d0dcc54a01eb0d908175721e68268a..c9dc448f1eef0aa79a5cbe31c1cd680a9d0e267a 100644
--- a/cli/cmd/userGetAll.go
+++ b/cli/cmd/userGetAll.go
@@ -52,9 +52,9 @@ var userListCmd = &cobra.Command{
 			return
 		}
 
-		for i, u := range resp.User {
-			log.Infof("User %v: ID: %v, Name: %v \n", i+1, u.Id, u.Name)
-			for key, elem := range u.Roles {
+		for i, u := range resp.GetUser() {
+			log.Infof("User %v: ID: %v, Name: %v \n", i+1, u.GetId(), u.GetName())
+			for key, elem := range u.GetRoles() {
 				log.Infof("Role on PND: %v %v \n", key, elem)
 			}
 		}
diff --git a/cli/cmd/userUpdate.go b/cli/cmd/userUpdate.go
index 8335070cac72a9afdd501be895e0b1ce4a262199..42a75bc2447fca6b6d26f083a49dfca03fd049c6 100644
--- a/cli/cmd/userUpdate.go
+++ b/cli/cmd/userUpdate.go
@@ -71,7 +71,7 @@ var userUpdateCmd = &cobra.Command{
 		users := []*apb.UpdateUser{
 			{
 				Id:       nbUserID,
-				Metadata: existingUser.User.Metadata,
+				Metadata: existingUser.GetUser().GetMetadata(),
 				Name:     nbUserName,
 				Password: nbUserPwd,
 				Roles:    roles,
diff --git a/controller/api/api_test.go b/controller/api/api_test.go
index 1ed6787c96999a62ec9bb290b792cc935413cc3e..352446a9bb848a38fd96adebe01f43f065e13c41 100644
--- a/controller/api/api_test.go
+++ b/controller/api/api_test.go
@@ -72,7 +72,7 @@ func Test_GetPnd(t *testing.T) {
 		t.Error(err)
 		return
 	}
-	got := resp.Pnd.Id
+	got := resp.GetPnd().GetId()
 	if got != pndID {
 		t.Errorf("PND ID is %v, expected %v", got, pndID)
 	}
diff --git a/controller/api/auth_test.go b/controller/api/auth_test.go
index 868ee4ba173f56b777b2e773f2c67d078b5d0201..44c7d70b18a381cf182d6ba83c2a23a5f43cf433 100644
--- a/controller/api/auth_test.go
+++ b/controller/api/auth_test.go
@@ -57,7 +57,7 @@ func TestLogin(t *testing.T) {
 			}
 
 			if got != nil {
-				if got.Token == "" {
+				if got.GetToken() == "" {
 					t.Errorf("Auth.Login() = %v, want non empty token", got)
 				}
 			}
diff --git a/controller/api/grpc.go b/controller/api/grpc.go
index 76ae474e08d0581fe2f80d0dba6546dd693c8c85..e876e7233bd5b2516875dd6e233b06368162a930 100644
--- a/controller/api/grpc.go
+++ b/controller/api/grpc.go
@@ -28,8 +28,8 @@ func Init(ctx context.Context, addr string) error {
 		return err
 	}
 
-	if len(resp.Pnd) > 0 {
-		pid := resp.Pnd[0].Id
+	if len(resp.GetPnd()) > 0 {
+		pid := resp.GetPnd()[0].GetId()
 		viper.Set("CLI_PND", pid)
 		log.Infof("PND: %v", pid)
 	}
@@ -43,7 +43,7 @@ func GetIds(ctx context.Context, addr string) ([]*ppb.PrincipalNetworkDomain, er
 	if err != nil {
 		return nil, err
 	}
-	return resp.Pnd, nil
+	return resp.GetPnd(), nil
 }
 
 // GetAllPnds requests all PNDs.
diff --git a/controller/api/managedNetworkElement.go b/controller/api/managedNetworkElement.go
index 0cc5fdecabf20ea9f35e2639e2e264fed086ebf2..0e47116530a924b03bd61ea3ecda6abaed2663af 100644
--- a/controller/api/managedNetworkElement.go
+++ b/controller/api/managedNetworkElement.go
@@ -37,7 +37,7 @@ func AddNetworkElement(ctx context.Context, addr, mneName, mneUUID string, opt *
 		},
 		Pid: pid.String(),
 	}
-	switch t := opt.Type; t {
+	switch t := opt.GetType(); t {
 	case spb.Type_TYPE_CONTAINERISED, spb.Type_TYPE_PLUGIN:
 		req.Mne[0].TransportOption.Type = t
 	default:
diff --git a/controller/api/plugin.go b/controller/api/plugin.go
index 8eed1aba0b10ae15a2bb9097db3a2994d93f0da1..97dd13957dd97c113f9bd79d44ed73affb5e4f50 100644
--- a/controller/api/plugin.go
+++ b/controller/api/plugin.go
@@ -68,7 +68,7 @@ func GetPluginSchemaTree(ctx context.Context, addr string, pluginID uuid.UUID) (
 
 			return map[string]*yang.Entry{}, err
 		}
-		sTreeBytes = append(sTreeBytes, payload.Chunk...)
+		sTreeBytes = append(sTreeBytes, payload.GetChunk()...)
 	}
 
 	sTreeMap, err := ygot.GzipToSchema(sTreeBytes)
diff --git a/controller/api/role_test.go b/controller/api/role_test.go
index 546fbc57741f04e1588d08193238d56c2e7948a0..52c7e44074ccb0c9dc9da9d795c104c05c3bfb87 100644
--- a/controller/api/role_test.go
+++ b/controller/api/role_test.go
@@ -101,7 +101,7 @@ func TestGetRole(t *testing.T) {
 			}
 
 			if got != nil {
-				if got.Role.Name != tt.want.Role.Name || got.Role.Description != tt.want.Role.Description {
+				if got.GetRole().GetName() != tt.want.GetRole().GetName() || got.GetRole().GetDescription() != tt.want.GetRole().GetDescription() {
 					t.Errorf("Role.GetRole() = %v, want %v", got, tt.want)
 				}
 			} else {
@@ -173,15 +173,15 @@ func TestGetRoles(t *testing.T) {
 			}
 
 			if got != nil {
-				if len(got.Roles) != 3 {
+				if len(got.GetRoles()) != 3 {
 					t.Errorf("Role.GetRoles() = %v, want %v", got, tt.want)
 				}
-				for _, gotR := range got.Roles {
+				for _, gotR := range got.GetRoles() {
 					containsExpected := false
-					for _, wantR := range tt.want.Roles {
-						gotPerm := gotR.Permissions
-						wantPerm := wantR.Permissions
-						if gotR.Description == wantR.Description && gotR.Name == wantR.Name &&
+					for _, wantR := range tt.want.GetRoles() {
+						gotPerm := gotR.GetPermissions()
+						wantPerm := wantR.GetPermissions()
+						if gotR.GetDescription() == wantR.GetDescription() && gotR.GetName() == wantR.GetName() &&
 							reflect.DeepEqual(gotPerm, wantPerm) {
 							containsExpected = true
 							break
diff --git a/controller/api/user_test.go b/controller/api/user_test.go
index a0a7e756bf0152d30a37c89e5719e57061586c4c..a1af52c7a9cf7784dd8bd6db09cc6516c681d46d 100644
--- a/controller/api/user_test.go
+++ b/controller/api/user_test.go
@@ -109,7 +109,7 @@ func TestGetUser(t *testing.T) {
 			}
 
 			if got != nil {
-				if got.User.Name != tt.want.User.Name || got.User.Id != tt.want.User.Id {
+				if got.GetUser().GetName() != tt.want.GetUser().GetName() || got.GetUser().GetId() != tt.want.GetUser().GetId() {
 					t.Errorf("GetUser() = %v, want %v", got, tt.want)
 				}
 			} else {
@@ -164,14 +164,14 @@ func TestGetAllUsers(t *testing.T) {
 			}
 
 			if got != nil {
-				if len(got.User) != tt.wantLen {
+				if len(got.GetUser()) != tt.wantLen {
 					t.Errorf("User.GetUsers() = %v, want %v", got, tt.want)
 				}
 
-				for _, gotU := range got.User {
+				for _, gotU := range got.GetUser() {
 					containsExpected := false
-					for _, wantU := range tt.want.User {
-						if gotU.Name == wantU.Name {
+					for _, wantU := range tt.want.GetUser() {
+						if gotU.GetName() == wantU.GetName() {
 							containsExpected = true
 							break
 						}
diff --git a/controller/northbound/server/app.go b/controller/northbound/server/app.go
index a74c4d37e15fa139c4b0c9ac9ffef6accf89e068..7c6093b1016d70032c4088192f2fa59c4a3b803b 100644
--- a/controller/northbound/server/app.go
+++ b/controller/northbound/server/app.go
@@ -34,12 +34,12 @@ func (a *AppServer) Register(ctx context.Context, request *apb.AppRegisterReques
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	app, err := a.appService.Register(request.Appname, request.Token)
+	app, err := a.appService.Register(request.GetAppname(), request.GetToken())
 	if err != nil {
 		return nil, err
 	}
 
-	log.Infof("app %s registered", request.Appname)
+	log.Infof("app %s registered", request.GetAppname())
 
 	return &apb.AppRegisterResponse{
 		Timestamp:       time.Now().UnixNano(),
@@ -53,7 +53,7 @@ func (a *AppServer) Deregister(ctx context.Context, request *apb.AppDeregisterRe
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	err := a.appService.Deregister(request.Appname)
+	err := a.appService.Deregister(request.GetAppname())
 	if err != nil {
 		return nil, err
 	}
diff --git a/controller/northbound/server/auth.go b/controller/northbound/server/auth.go
index 5ef41402341f632903ba2c17b37a5f40f11c8700..70a9e434f9206826516a6d3bec7cd2ff84239a03 100644
--- a/controller/northbound/server/auth.go
+++ b/controller/northbound/server/auth.go
@@ -72,8 +72,8 @@ func (s AuthServer) Login(ctx context.Context, request *apb.LoginRequest) (*apb.
 	}
 
 	user := rbac.User{
-		UserName: request.Username,
-		Password: request.Pwd,
+		UserName: request.GetUsername(),
+		Password: request.GetPwd(),
 	}
 
 	// validation of credentials
@@ -120,7 +120,7 @@ func (s AuthServer) Logout(ctx context.Context, request *apb.LogoutRequest) (*ap
 		return nil, err
 	}
 
-	err = s.handleLogout(ctx, request.Username)
+	err = s.handleLogout(ctx, request.GetUsername())
 	if err != nil {
 		return nil, err
 	}
diff --git a/controller/northbound/server/auth_interceptor_test.go b/controller/northbound/server/auth_interceptor_test.go
index 5571d010f5bacfd31566a8b973aa623e36efaf23..128075a460f2129f756391f35e7ddf76053dfb36 100644
--- a/controller/northbound/server/auth_interceptor_test.go
+++ b/controller/northbound/server/auth_interceptor_test.go
@@ -179,8 +179,8 @@ func TestAuthInterceptor_Unary(t *testing.T) {
 				// Todo: check why we don't hit this.
 				// fmt.Printf("Got.User %+v", got.User)
 
-				if got.User[0].Name == tt.want.Name {
-					t.Errorf("Got user = %s, want %v", got.User[0].Name, tt.want.Name)
+				if got.GetUser()[0].GetName() == tt.want.GetName() {
+					t.Errorf("Got user = %s, want %v", got.GetUser()[0].GetName(), tt.want.GetName())
 					return
 				}
 			}
diff --git a/controller/northbound/server/auth_test.go b/controller/northbound/server/auth_test.go
index 956ef2be19b5da9be5eebe2636763bb7c91fe7b5..07c0bacb9a060544e18dc28649b62621c8da85a7 100644
--- a/controller/northbound/server/auth_test.go
+++ b/controller/northbound/server/auth_test.go
@@ -116,7 +116,7 @@ func TestAuth_Login(t *testing.T) {
 			}
 
 			if resp != nil {
-				got := resp.Token
+				got := resp.GetToken()
 				if got == "" {
 					t.Errorf("Auth.Login() = %v, want non empty token", got)
 				}
diff --git a/controller/northbound/server/configurationmanagement.go b/controller/northbound/server/configurationmanagement.go
index 3b2aac5d3f96b508ff76905faf146a9cfd8cb42b..fb3909274ce389bb11ce58b1de7b69748b892c6e 100644
--- a/controller/northbound/server/configurationmanagement.go
+++ b/controller/northbound/server/configurationmanagement.go
@@ -86,7 +86,7 @@ func (c ConfigurationManagementServer) ExportSDNConfig(ctx context.Context, requ
 
 	var sdnConfig = sdnConfig{}
 	var err error
-	sdnConfig.PndID = request.Pid
+	sdnConfig.PndID = request.GetPid()
 
 	sdnConfig.NetworkElements, err = c.mneService.GetAll()
 	if err != nil {
@@ -125,9 +125,9 @@ func (c ConfigurationManagementServer) ImportSDNConfig(ctx context.Context, requ
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	pndUUID := uuid.MustParse(request.Pid)
+	pndUUID := uuid.MustParse(request.GetPid())
 	var sdnConfig = loadedSDNConfig{}
-	err := json.Unmarshal([]byte(request.SdnConfigData), &sdnConfig)
+	err := json.Unmarshal([]byte(request.GetSdnConfigData()), &sdnConfig)
 	if err != nil {
 		return nil, err
 	}
diff --git a/controller/northbound/server/csbi.go b/controller/northbound/server/csbi.go
index 14ba9a371df51418501bcd57dbd10c98b8197127..a3746ff1763b1c05577b227a92cda89823d84a50 100644
--- a/controller/northbound/server/csbi.go
+++ b/controller/northbound/server/csbi.go
@@ -45,7 +45,7 @@ func (s CsbiServer) Hello(ctx context.Context, syn *cpb.Syn) (*cpb.Ack, error) {
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	ch, err := s.pndStore.PendingChannels(store.FromString(syn.Id))
+	ch, err := s.pndStore.PendingChannels(store.FromString(syn.GetId()))
 	if err != nil {
 		return nil, handleRPCError(labels, err)
 	}
@@ -60,11 +60,11 @@ func (s CsbiServer) Hello(ctx context.Context, syn *cpb.Syn) (*cpb.Ack, error) {
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 	ch <- networkelement.Details{
-		ID:      syn.Id,
-		Address: net.JoinHostPort(csbiAddress, syn.Address),
+		ID:      syn.GetId(),
+		Address: net.JoinHostPort(csbiAddress, syn.GetAddress()),
 	}
 	details := <-ch
-	log.Infof("ack to csbi %v", syn.Id)
+	log.Infof("ack to csbi %v", syn.GetId())
 	log.WithField("transport option", details.TransportOption).Debug("csbi ack transport options")
 	return &cpb.Ack{
 		Timestamp:       time.Now().UnixNano(),
diff --git a/controller/northbound/server/networkElement.go b/controller/northbound/server/networkElement.go
index 4a3db1c4facc3b772a12d5f7ac9ebcb1710c8698..2c60af4cf684d13d879d54952f6bd353d580cb8f 100644
--- a/controller/northbound/server/networkElement.go
+++ b/controller/northbound/server/networkElement.go
@@ -73,12 +73,12 @@ func (n *NetworkElementServer) Update(ctx context.Context, request *mnepb.Update
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	mneID, err := uuid.Parse(request.NetworkElement.Id)
+	mneID, err := uuid.Parse(request.GetNetworkElement().GetId())
 	if err != nil {
 		return nil, err
 	}
 
-	err = n.mneService.UpdateModel(mneID, request.NetworkElement.Model)
+	err = n.mneService.UpdateModel(mneID, request.GetNetworkElement().GetModel())
 	if err != nil {
 		return nil, err
 	}
@@ -108,13 +108,13 @@ func (n *NetworkElementServer) Get(ctx context.Context, request *mnepb.GetReques
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
 
-	pnd, err := n.getPnd(request.Pid)
+	pnd, err := n.getPnd(request.GetPid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	networkElement, err := n.getMne(request.Mneid)
+	networkElement, err := n.getMne(request.GetMneid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
@@ -165,7 +165,7 @@ func (n *NetworkElementServer) GetFlattened(ctx context.Context, request *mnepb.
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
 
-	networkElement, err := n.getMne(request.Mneid)
+	networkElement, err := n.getMne(request.GetMneid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
@@ -226,7 +226,7 @@ func (n *NetworkElementServer) GetAll(ctx context.Context, request *mnepb.GetAll
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
 
-	pnd, err := n.getPnd(request.Pid)
+	pnd, err := n.getPnd(request.GetPid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
@@ -280,7 +280,7 @@ func (n *NetworkElementServer) GetAllFlattened(ctx context.Context, request *mne
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
 
-	pnd, err := n.getPnd(request.Pid)
+	pnd, err := n.getPnd(request.GetPid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
@@ -359,20 +359,20 @@ func (n *NetworkElementServer) GetPath(ctx context.Context, request *mnepb.GetPa
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
 
-	pnd, err := n.getPnd(request.Pid)
+	pnd, err := n.getPnd(request.GetPid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	networkElement, err := n.getMne(request.Mneid)
+	networkElement, err := n.getMne(request.GetMneid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
 	// In case we get the path from grpc-gateway we have to replace
-	path := strings.ReplaceAll(request.Path, "||", "/")
+	path := strings.ReplaceAll(request.GetPath(), "||", "/")
 
 	resp, err := n.getPath(ctx, networkElement, path)
 	if err != nil {
@@ -387,7 +387,7 @@ func (n *NetworkElementServer) GetPath(ctx context.Context, request *mnepb.GetPa
 			Name:        pnd.GetName(),
 			Description: pnd.GetDescription(),
 		},
-		MneNotification: resp.Notification,
+		MneNotification: resp.GetNotification(),
 	}, nil
 }
 
@@ -422,16 +422,16 @@ func (n *NetworkElementServer) GetIntendedPath(ctx context.Context, request *mne
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	pnd, err := n.getPnd(request.Pid)
+	pnd, err := n.getPnd(request.GetPid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
 	// In case we get the path from grpc-gateway we have to replace
-	intendedPath := strings.ReplaceAll(request.IntendedPath, "||", "/")
+	intendedPath := strings.ReplaceAll(request.GetIntendedPath(), "||", "/")
 
-	networkElement, err := n.getMne(request.Mneid)
+	networkElement, err := n.getMne(request.GetMneid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
@@ -451,7 +451,7 @@ func (n *NetworkElementServer) GetIntendedPath(ctx context.Context, request *mne
 			Name:        pnd.GetName(),
 			Description: pnd.GetDescription(),
 		},
-		MneNotification: mne.MneNotification,
+		MneNotification: mne.GetMneNotification(),
 	}, nil
 }
 
@@ -465,13 +465,13 @@ func (n *NetworkElementServer) GetChange(ctx context.Context, request *mnepb.Get
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
 
-	pnd, err := n.getPnd(request.Pid)
+	pnd, err := n.getPnd(request.GetPid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	changes, err := n.fillChanges(false, request.Cuid...)
+	changes, err := n.fillChanges(false, request.GetCuid()...)
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
@@ -498,7 +498,7 @@ func (n *NetworkElementServer) GetChangeList(ctx context.Context, request *mnepb
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
 
-	pnd, err := n.getPnd(request.Pid)
+	pnd, err := n.getPnd(request.GetPid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
@@ -584,28 +584,28 @@ func (n *NetworkElementServer) AddList(ctx context.Context, request *mnepb.AddLi
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
 
-	pndID, err := uuid.Parse(request.Pid)
+	pndID, err := uuid.Parse(request.GetPid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	networkElementIDs := make([]uuid.UUID, 0, len(request.Mne))
-	for _, r := range request.Mne {
+	networkElementIDs := make([]uuid.UUID, 0, len(request.GetMne()))
+	for _, r := range request.GetMne() {
 		pluginId, err := uuid.Parse(r.GetPluginId())
 		if err != nil {
 			log.Error(err)
 			return nil, status.Errorf(codes.Aborted, "%v", err)
 		}
 
-		gNMISubscriptionPaths := n.get2dSlicePathsFrom1dPaths(r.GnmiSubscribePaths)
+		gNMISubscriptionPaths := n.get2dSlicePathsFrom1dPaths(r.GetGnmiSubscribePaths())
 
-		mneID, err := uuid.Parse(r.MneId)
+		mneID, err := uuid.Parse(r.GetMneId())
 		if err != nil {
-			log.Errorf("Error parsing UUID: %v. For: %v, ", r.MneId, r.MneName)
+			log.Errorf("Error parsing UUID: %v. For: %v, ", r.GetMneId(), r.GetMneName())
 		}
 
-		mneID, err = n.addMne(ctx, r.MneName, r.TransportOption, nil, pluginId, pndID, gNMISubscriptionPaths, mneID)
+		mneID, err = n.addMne(ctx, r.GetMneName(), r.GetTransportOption(), nil, pluginId, pndID, gNMISubscriptionPaths, mneID)
 		if err != nil {
 			log.Error(err)
 			return nil, status.Errorf(codes.Aborted, "%v", err)
@@ -715,15 +715,15 @@ func (n *NetworkElementServer) SetChangeList(ctx context.Context, request *mnepb
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	responses := make([]*mnepb.SetResponse, len(request.Change))
+	responses := make([]*mnepb.SetResponse, len(request.GetChange()))
 
-	for i, r := range request.Change {
-		cuid, err := uuid.Parse(r.Cuid)
+	for i, r := range request.GetChange() {
+		cuid, err := uuid.Parse(r.GetCuid())
 		if err != nil {
 			log.Error(err)
 			return nil, status.Errorf(codes.Aborted, "%v", err)
 		}
-		switch r.Op {
+		switch r.GetOp() {
 		case mnepb.Operation_OPERATION_COMMIT:
 			if err := n.Commit(cuid); err != nil {
 				log.Error(err)
@@ -736,7 +736,7 @@ func (n *NetworkElementServer) SetChangeList(ctx context.Context, request *mnepb
 			}
 		default:
 			return nil, &customerrs.InvalidParametersError{
-				Param: r.Op,
+				Param: r.GetOp(),
 			}
 		}
 
@@ -804,13 +804,13 @@ func (n *NetworkElementServer) SetPathList(ctx context.Context, request *mnepb.S
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	responses := make([]*mnepb.SetResponse, len(request.ChangeRequest))
+	responses := make([]*mnepb.SetResponse, len(request.GetChangeRequest()))
 
-	for i, r := range request.ChangeRequest {
+	for i, r := range request.GetChangeRequest() {
 		var cid uuid.UUID
 		var err error
 
-		mneID, err := uuid.Parse(r.Mneid)
+		mneID, err := uuid.Parse(r.GetMneid())
 		if err != nil {
 			log.Error(err)
 			return nil, status.Errorf(codes.Aborted, "%v", err)
@@ -818,7 +818,7 @@ func (n *NetworkElementServer) SetPathList(ctx context.Context, request *mnepb.S
 
 		// NOTE: Could be useful to split method into two, one for
 		// update/replace and on for delete.
-		cid, err = n.ChangeMNE(mneID, r.ApiOp, r.Path, r.Value)
+		cid, err = n.ChangeMNE(mneID, r.GetApiOp(), r.GetPath(), r.GetValue())
 		if err != nil {
 			log.Error(err)
 			return nil, status.Errorf(codes.Aborted, "%v", err)
@@ -891,7 +891,7 @@ func (n *NetworkElementServer) Delete(ctx context.Context, request *mnepb.Delete
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	mneID, err := uuid.Parse(request.Mneid)
+	mneID, err := uuid.Parse(request.GetMneid())
 	if err != nil {
 		log.Error(err)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
@@ -931,13 +931,13 @@ func (n *NetworkElementServer) deleteMne(id uuid.UUID) error {
 
 // SubscribePath subscribes to specifc paths of an mne.
 func (n *NetworkElementServer) SubscribePath(request *mnepb.SubscribePathRequest, stream mnepb.NetworkElementService_SubscribePathServer) error {
-	networkElement, err := n.getMne(request.Mneid)
+	networkElement, err := n.getMne(request.GetMneid())
 	if err != nil {
 		log.Error(err)
 		return status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	if err := n.subscribePath(networkElement, request.Sublist); err != nil {
+	if err := n.subscribePath(networkElement, request.GetSublist()); err != nil {
 		return err
 	}
 
@@ -950,7 +950,7 @@ func (n *NetworkElementServer) subscribePath(networkElement networkelement.Netwo
 		return err
 	}
 
-	for _, sub := range subList.Subscription {
+	for _, sub := range subList.GetSubscription() {
 		streamMode, err := n.mapStreamModeToAristaFork(sub.GetStreamMode())
 		if err != nil {
 			return err
@@ -960,7 +960,7 @@ func (n *NetworkElementServer) subscribePath(networkElement networkelement.Netwo
 			Mode:           mode,
 			StreamMode:     streamMode,
 			Paths:          [][]string{n.splitStringPath(sub.GetPath())},
-			SampleInterval: sub.SampleInterval,
+			SampleInterval: sub.GetSampleInterval(),
 		}
 
 		ctx := context.Background()
diff --git a/controller/northbound/server/pnd.go b/controller/northbound/server/pnd.go
index 9933264d28e6e15d5f84a40810a8c88bf3279623..4ac93310a97dd59f95fbc25219b2d32228d13f8f 100644
--- a/controller/northbound/server/pnd.go
+++ b/controller/northbound/server/pnd.go
@@ -57,7 +57,7 @@ func (s PndServer) GetPnd(ctx context.Context, request *ppb.GetPndRequest) (*ppb
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	pndID, err := uuid.Parse(request.Pid)
+	pndID, err := uuid.Parse(request.GetPid())
 	if err != nil {
 		return nil, handleRPCError(labels, err)
 	}
@@ -118,8 +118,8 @@ func (s PndServer) CreatePndList(ctx context.Context, request *ppb.CreatePndList
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	for _, r := range request.Pnd {
-		pnd := nucleus.NewPND(uuid.New(), r.Name, r.Description)
+	for _, r := range request.GetPnd() {
+		pnd := nucleus.NewPND(uuid.New(), r.GetName(), r.GetDescription())
 
 		if err := s.pndService.Add(pnd); err != nil {
 			return nil, handleRPCError(labels, err)
@@ -140,7 +140,7 @@ func (s PndServer) DeletePnd(ctx context.Context, request *ppb.DeletePndRequest)
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	pndID, err := uuid.Parse(request.Pid)
+	pndID, err := uuid.Parse(request.GetPid())
 	if err != nil {
 		return nil, handleRPCError(labels, err)
 	}
diff --git a/controller/northbound/server/pnd_test.go b/controller/northbound/server/pnd_test.go
index bc42ffce015cfdcf12a598f3b38f5eb735d08625..225c4cfedf0166a7d10266618c681da4d1cd2a8d 100644
--- a/controller/northbound/server/pnd_test.go
+++ b/controller/northbound/server/pnd_test.go
@@ -143,7 +143,7 @@ func Test_Pnd_Set(t *testing.T) {
 				t.Errorf("pnd.Set() error = %v, wantErr %v", err, tt.wantErr)
 				return
 			}
-			tt.want.Timestamp = got.Timestamp
+			tt.want.Timestamp = got.GetTimestamp()
 			if !reflect.DeepEqual(got, tt.want) {
 				t.Errorf("pnd.Set() = %v, want %v", got, tt.want)
 			}
@@ -189,9 +189,9 @@ func Test_Pnd_GetPnd(t *testing.T) {
 
 			if tt.name == "default" {
 				got := []string{
-					resp.Pnd.Id,
-					resp.Pnd.Name,
-					resp.Pnd.Description,
+					resp.GetPnd().GetId(),
+					resp.GetPnd().GetName(),
+					resp.GetPnd().GetDescription(),
 				}
 				if !reflect.DeepEqual(got, tt.want) {
 					t.Errorf("pnd.GetPnd() = %v, want %v", got, tt.want)
@@ -232,7 +232,7 @@ func Test_Pnd_GetPndList(t *testing.T) {
 				t.Errorf("pnd.GetPndList() error = %v, wantErr %v", err, tt.wantErr)
 				return
 			}
-			length := len(resp.Pnd)
+			length := len(resp.GetPnd())
 			if tt.length != length {
 				t.Errorf("pnd.GetPndList() = %v, want %v", length, tt.length)
 			}
diff --git a/controller/northbound/server/role.go b/controller/northbound/server/role.go
index 2d3de09de4a42aea2a565870d5c2ab8be83f7ab0..581f7d18ef7a62bb64bd0df615961b2fe5e7bd4f 100644
--- a/controller/northbound/server/role.go
+++ b/controller/northbound/server/role.go
@@ -70,13 +70,13 @@ func (r RoleServer) CreateRoles(ctx context.Context, request *apb.CreateRolesReq
 		return nil, err
 	}
 
-	for _, rrole := range request.Roles {
-		roleID, err := uuid.Parse(rrole.Id)
+	for _, rrole := range request.GetRoles() {
+		roleID, err := uuid.Parse(rrole.GetId())
 		if err != nil {
 			roleID = uuid.New()
 		}
 
-		role := rbac.NewRole(roleID, rrole.Name, rrole.Description, rrole.Permissions)
+		role := rbac.NewRole(roleID, rrole.GetName(), rrole.GetDescription(), rrole.GetPermissions())
 
 		err = r.roleService.Add(role)
 		if err != nil {
@@ -101,12 +101,12 @@ func (r RoleServer) GetRole(ctx context.Context, request *apb.GetRoleRequest) (*
 		return nil, err
 	}
 
-	roleID, err := uuid.Parse(request.Id)
+	roleID, err := uuid.Parse(request.GetId())
 	if err != nil {
 		return nil, fmt.Errorf("could not parse role uuid")
 	}
 
-	roleData, err := r.roleService.Get(store.Query{Name: request.RoleName, ID: roleID})
+	roleData, err := r.roleService.Get(store.Query{Name: request.GetRoleName(), ID: roleID})
 	if err != nil {
 		return nil, err
 	}
@@ -167,8 +167,8 @@ func (r RoleServer) UpdateRoles(ctx context.Context, request *apb.UpdateRolesReq
 		return nil, err
 	}
 
-	for _, role := range request.Roles {
-		rid, err := uuid.Parse(role.Id)
+	for _, role := range request.GetRoles() {
+		rid, err := uuid.Parse(role.GetId())
 		if err != nil {
 			return nil, handleRPCError(labels, err)
 		}
@@ -177,7 +177,7 @@ func (r RoleServer) UpdateRoles(ctx context.Context, request *apb.UpdateRolesReq
 			return nil, status.Errorf(codes.Canceled, "role not found %v", err)
 		}
 
-		roleToUpdate := rbac.NewRole(rid, role.Name, role.Description, role.Permissions)
+		roleToUpdate := rbac.NewRole(rid, role.GetName(), role.GetDescription(), role.GetPermissions())
 		err = r.roleService.Update(roleToUpdate)
 		if err != nil {
 			return nil, status.Errorf(codes.Aborted, "could not update role %v", err)
@@ -200,7 +200,7 @@ func (r RoleServer) DeletePermissionsForRole(ctx context.Context, request *apb.D
 		return nil, err
 	}
 
-	roleToUpdate, err := r.roleService.Get(store.Query{Name: request.RoleName})
+	roleToUpdate, err := r.roleService.Get(store.Query{Name: request.GetRoleName()})
 	if err != nil {
 		return nil, status.Errorf(codes.Canceled, "role not found %v", err)
 	}
@@ -209,7 +209,7 @@ func (r RoleServer) DeletePermissionsForRole(ctx context.Context, request *apb.D
 	// in the provided set of permissions to delete
 	nonFound := true
 	for _, perm := range roleToUpdate.GetPermissions() {
-		for _, permToDelete := range request.PermissionsToDelete {
+		for _, permToDelete := range request.GetPermissionsToDelete() {
 			if perm == permToDelete {
 				nonFound = false
 				break
@@ -224,7 +224,7 @@ func (r RoleServer) DeletePermissionsForRole(ctx context.Context, request *apb.D
 	}
 
 	// updates the existing role with the trimmed set of permissions
-	roleToUpdate.RemovePermissionsFromRole(request.PermissionsToDelete)
+	roleToUpdate.RemovePermissionsFromRole(request.GetPermissionsToDelete())
 	err = r.roleService.Update(roleToUpdate)
 	if err != nil {
 		return nil, status.Errorf(codes.Aborted, "could not update role %v", err)
@@ -246,7 +246,7 @@ func (r RoleServer) DeleteRoles(ctx context.Context, request *apb.DeleteRolesReq
 		return nil, err
 	}
 
-	for _, role := range request.RoleName {
+	for _, role := range request.GetRoleName() {
 		roleToDelete, err := r.roleService.Get(store.Query{Name: role})
 		if err != nil {
 			return nil, status.Errorf(codes.Canceled, "role not found")
diff --git a/controller/northbound/server/role_test.go b/controller/northbound/server/role_test.go
index 2d75e067843f15c594d6d34e2b0a503d058c8582..731d0e94dc0a10b5a882b51c3b7c44a62f11539a 100644
--- a/controller/northbound/server/role_test.go
+++ b/controller/northbound/server/role_test.go
@@ -223,7 +223,7 @@ func TestRole_GetRole(t *testing.T) {
 			}
 
 			if got != nil {
-				if got.Role.Name != tt.want.Role.Name || got.Role.Description != tt.want.Role.Description {
+				if got.GetRole().GetName() != tt.want.GetRole().GetName() || got.GetRole().GetDescription() != tt.want.GetRole().GetDescription() {
 					t.Errorf("Role.GetRole() = %v, want %v", got, tt.want)
 				}
 			} else {
@@ -293,15 +293,15 @@ func TestRole_GetRoles(t *testing.T) {
 			}
 
 			if got != nil {
-				if len(got.Roles) != tt.wantLen {
+				if len(got.GetRoles()) != tt.wantLen {
 					t.Errorf("Role.GetRoles() = %v, want %v", got, tt.want)
 				}
-				for _, gotR := range got.Roles {
+				for _, gotR := range got.GetRoles() {
 					containsExpected := false
-					for _, wantR := range tt.want.Roles {
-						gotPerm := gotR.Permissions
-						wantPerm := wantR.Permissions
-						if gotR.Description == wantR.Description && gotR.Name == wantR.Name &&
+					for _, wantR := range tt.want.GetRoles() {
+						gotPerm := gotR.GetPermissions()
+						wantPerm := wantR.GetPermissions()
+						if gotR.GetDescription() == wantR.GetDescription() && gotR.GetName() == wantR.GetName() &&
 							reflect.DeepEqual(gotPerm, wantPerm) {
 							containsExpected = true
 							break
diff --git a/controller/northbound/server/route.go b/controller/northbound/server/route.go
index eff0d4a9e690550a8ccae5c05ad494510f311f14..fdac8412ba4c243d8cdde35347ae6f67548a42f3 100644
--- a/controller/northbound/server/route.go
+++ b/controller/northbound/server/route.go
@@ -51,19 +51,19 @@ func (t *RoutingTableServiceServer) AddRoutingTable(
 
 	routes := []routingtables.Route{}
 
-	for _, incomingRoute := range request.RoutingTable.Routes {
+	for _, incomingRoute := range request.GetRoutingTable().GetRoutes() {
 		routes = append(routes, routingtables.Route{
-			ID:            getExistingOrCreateNilUUIDFromString(incomingRoute.Id),
-			TargetIPRange: incomingRoute.TargetIPRange,
-			NextHopIP:     incomingRoute.NextHopIP,
-			Metric:        incomingRoute.Metric,
-			PortID:        getExistingOrCreateNilUUIDFromString(incomingRoute.PortID),
+			ID:            getExistingOrCreateNilUUIDFromString(incomingRoute.GetId()),
+			TargetIPRange: incomingRoute.GetTargetIPRange(),
+			NextHopIP:     incomingRoute.GetNextHopIP(),
+			Metric:        incomingRoute.GetMetric(),
+			PortID:        getExistingOrCreateNilUUIDFromString(incomingRoute.GetPortID()),
 		})
 	}
 
 	routeingTable := routingtables.RoutingTable{
-		ID:     getExistingOrCreateNilUUIDFromString(request.RoutingTable.NodeID),
-		NodeID: getExistingOrCreateNilUUIDFromString(request.RoutingTable.NodeID),
+		ID:     getExistingOrCreateNilUUIDFromString(request.GetRoutingTable().GetNodeID()),
+		NodeID: getExistingOrCreateNilUUIDFromString(request.GetRoutingTable().GetNodeID()),
 		Routes: routes,
 	}
 	_, err := t.routeService.EnsureExists(routeingTable)
@@ -122,7 +122,7 @@ func (t *RoutingTableServiceServer) DeleteRoute(
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	routeID, err := uuid.Parse(request.Id)
+	routeID, err := uuid.Parse(request.GetId())
 	if err != nil {
 		return nil, err
 	}
diff --git a/controller/northbound/server/submanagement.go b/controller/northbound/server/submanagement.go
index 762fffe8cc5b3858070c6df06f8d6bfb4597e336..8d36f2d09dfaeffab69ecc4af5e5b966add23453 100644
--- a/controller/northbound/server/submanagement.go
+++ b/controller/northbound/server/submanagement.go
@@ -139,19 +139,19 @@ func (s *SubManagementServer) Add(ctx context.Context, request *subpb.AddRequest
 	}
 
 	var gNMISubScribeOptions *gnmi.SubscribeOptions
-	if request.Subscription != nil {
+	if request.GetSubscription() != nil {
 		var paths [][]string
-		for _, path := range request.Subscription.Paths {
+		for _, path := range request.GetSubscription().GetPaths() {
 			var elems []string
-			for _, elem := range path.Elem {
+			for _, elem := range path.GetElem() {
 				elems = append(elems, elem)
 			}
 			paths = append(paths, elems)
 		}
 		gNMISubScribeOptions = &gnmi.SubscribeOptions{
-			Mode:           request.Subscription.SubscribeOptions.GnmiMode,
-			StreamMode:     request.Subscription.SubscribeOptions.GnmiStreamMode,
-			SampleInterval: request.Subscription.SubscribeOptions.SampleInterval,
+			Mode:           request.GetSubscription().GetSubscribeOptions().GetGnmiMode(),
+			StreamMode:     request.GetSubscription().GetSubscribeOptions().GetGnmiStreamMode(),
+			SampleInterval: request.GetSubscription().GetSubscribeOptions().GetSampleInterval(),
 			Paths:          paths,
 		}
 	}
diff --git a/controller/northbound/server/topology.go b/controller/northbound/server/topology.go
index 27e7dd3618fcafb2c28e585e48f81dc86b1c2b95..860774c6a6d56a26b79d7772d3463ea867070b3d 100644
--- a/controller/northbound/server/topology.go
+++ b/controller/northbound/server/topology.go
@@ -68,19 +68,19 @@ func (t *TopologyServer) AddLink(ctx context.Context, request *topopb.AddLinkReq
 		return nil, err
 	}
 
-	sourceNode, sourcePort, err := t.ensureNodeAndPortExists(request.Link.SourceNode, request.Link.SourcePort)
+	sourceNode, sourcePort, err := t.ensureNodeAndPortExists(request.GetLink().GetSourceNode(), request.GetLink().GetSourcePort())
 	if err != nil {
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	targetNode, targetPort, err := t.ensureNodeAndPortExists(request.Link.TargetNode, request.Link.TargetPort)
+	targetNode, targetPort, err := t.ensureNodeAndPortExists(request.GetLink().GetTargetNode(), request.GetLink().GetTargetPort())
 	if err != nil {
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
 	// check if UUID is set
 	var id uuid.UUID
-	if requestId := request.Link.Id; requestId != "" {
+	if requestId := request.GetLink().GetId(); requestId != "" {
 		id, err = uuid.Parse(requestId)
 		if err != nil {
 			return nil, err
@@ -91,7 +91,7 @@ func (t *TopologyServer) AddLink(ctx context.Context, request *topopb.AddLinkReq
 
 	link := links.Link{
 		ID:         id,
-		Name:       request.Link.Name,
+		Name:       request.GetLink().GetName(),
 		SourceNode: sourceNode,
 		SourcePort: sourcePort,
 		TargetNode: targetNode,
@@ -165,7 +165,7 @@ func (t *TopologyServer) DeleteLink(ctx context.Context, request *topopb.DeleteL
 		return nil, err
 	}
 
-	linkID, err := uuid.Parse(request.Id)
+	linkID, err := uuid.Parse(request.GetId())
 	if err != nil {
 		return nil, err
 	}
@@ -188,22 +188,22 @@ func (t *TopologyServer) DeleteLink(ctx context.Context, request *topopb.DeleteL
 func (t *TopologyServer) ensureNodeAndPortExists(incomingNode *topopb.Node, incomingPort *topopb.Port) (nodes.Node, ports.Port, error) {
 	node, err := t.nodeService.EnsureExists(
 		nodes.Node{
-			ID:   getExistingOrCreateNilUUIDFromString(incomingNode.Id),
-			Name: incomingNode.Name,
+			ID:   getExistingOrCreateNilUUIDFromString(incomingNode.GetId()),
+			Name: incomingNode.GetName(),
 		},
 	)
 	if err != nil {
 		return node, ports.Port{}, status.Errorf(codes.Aborted, "%v", err)
 	}
 
-	portConf, err := configuration.New(incomingPort.Configuration.Ip, incomingPort.Configuration.PrefixLength)
+	portConf, err := configuration.New(incomingPort.GetConfiguration().GetIp(), incomingPort.GetConfiguration().GetPrefixLength())
 	if err != nil {
 		return node, ports.Port{}, status.Errorf(codes.Aborted, "%v", err)
 	}
 	port, err := t.portService.EnsureExists(
 		ports.Port{
-			ID:            getExistingOrCreateNilUUIDFromString(incomingPort.Id),
-			Name:          incomingPort.Name,
+			ID:            getExistingOrCreateNilUUIDFromString(incomingPort.GetId()),
+			Name:          incomingPort.GetName(),
 			Configuration: portConf,
 		},
 	)
diff --git a/controller/northbound/server/topology_test.go b/controller/northbound/server/topology_test.go
index dea560a452ff02ff710d6ca71fcc251d8f57472d..1596348dd9cd361fb19e32276647d41592f2863a 100644
--- a/controller/northbound/server/topology_test.go
+++ b/controller/northbound/server/topology_test.go
@@ -448,8 +448,8 @@ func TestTopology_GetTopology(t *testing.T) {
 				t.Errorf("Topology.GetTopology() error = %v, wantErr %v", err, tt.wantErr)
 				return
 			}
-			if !reflect.DeepEqual(got.Toplogy, tt.want.Toplogy) {
-				t.Errorf("Topology.GetTopology() = %v, want %v", got.Toplogy, tt.want.Toplogy)
+			if !reflect.DeepEqual(got.GetToplogy(), tt.want.GetToplogy()) {
+				t.Errorf("Topology.GetTopology() = %v, want %v", got.GetToplogy(), tt.want.GetToplogy())
 			}
 		})
 	}
@@ -539,7 +539,7 @@ func TestTopology_DeleteLink(t *testing.T) {
 				return
 			}
 
-			if !reflect.DeepEqual(gotAfterDelete.Toplogy, &apb.Topology{}) {
+			if !reflect.DeepEqual(gotAfterDelete.GetToplogy(), &apb.Topology{}) {
 				t.Errorf("Topology.GetTopology() = %v, want %v", got, tt.want)
 			}
 		})
diff --git a/controller/northbound/server/user.go b/controller/northbound/server/user.go
index 000058d9c233eb34947493df99699c91e5f35f48..1478bb6d4214a2f1fe50c19a7ac39ea75ec3bd09 100644
--- a/controller/northbound/server/user.go
+++ b/controller/northbound/server/user.go
@@ -72,9 +72,9 @@ func (u UserServer) CreateUsers(ctx context.Context, request *apb.CreateUsersReq
 		return nil, err
 	}
 
-	for _, user := range request.User {
+	for _, user := range request.GetUser() {
 		roles := map[string]string{}
-		for key, elem := range user.Roles {
+		for key, elem := range user.GetRoles() {
 			_, err := uuid.Parse(key)
 			if err != nil {
 				return nil, handleRPCError(labels, err)
@@ -90,14 +90,14 @@ func (u UserServer) CreateUsers(ctx context.Context, request *apb.CreateUsersReq
 			return nil, status.Errorf(codes.Aborted, "%v", err)
 		}
 
-		hashedPassword := base64.RawStdEncoding.EncodeToString(argon2.IDKey([]byte(user.Password), []byte(salt), 1, 64*1024, 4, 32))
+		hashedPassword := base64.RawStdEncoding.EncodeToString(argon2.IDKey([]byte(user.GetPassword()), []byte(salt), 1, 64*1024, 4, 32))
 
-		userID, err := uuid.Parse(user.Id)
+		userID, err := uuid.Parse(user.GetId())
 		if err != nil {
 			userID = uuid.New()
 		}
 
-		user := rbac.NewUser(userID, user.Name, roles, string(hashedPassword), []string{}, salt, conflict.Metadata{ResourceVersion: 0})
+		user := rbac.NewUser(userID, user.GetName(), roles, string(hashedPassword), []string{}, salt, conflict.Metadata{ResourceVersion: 0})
 		err = u.userService.Add(user)
 		if err != nil {
 			log.Error(err)
@@ -121,12 +121,12 @@ func (u UserServer) GetUser(ctx context.Context, request *apb.GetUserRequest) (*
 		return nil, err
 	}
 
-	userID, err := uuid.Parse(request.Id)
+	userID, err := uuid.Parse(request.GetId())
 	if err != nil {
 		return nil, fmt.Errorf("could not parse user uuid")
 	}
 
-	userData, err := u.userService.Get(store.Query{Name: request.Name, ID: userID})
+	userData, err := u.userService.Get(store.Query{Name: request.GetName(), ID: userID})
 	if err != nil {
 		return nil, err
 	}
@@ -191,8 +191,8 @@ func (u UserServer) UpdateUsers(ctx context.Context, request *apb.UpdateUsersReq
 		return nil, err
 	}
 
-	for _, user := range request.User {
-		uid, err := uuid.Parse(user.Id)
+	for _, user := range request.GetUser() {
+		uid, err := uuid.Parse(user.GetId())
 		if err != nil {
 			return nil, handleRPCError(labels, err)
 		}
@@ -202,13 +202,13 @@ func (u UserServer) UpdateUsers(ctx context.Context, request *apb.UpdateUsersReq
 			return nil, status.Errorf(codes.Canceled, "user not found %v", err)
 		}
 
-		hashedPassword := base64.RawStdEncoding.EncodeToString(argon2.IDKey([]byte(user.Password), []byte(storedUser.GetSalt()), 1, 64*1024, 4, 32))
+		hashedPassword := base64.RawStdEncoding.EncodeToString(argon2.IDKey([]byte(user.GetPassword()), []byte(storedUser.GetSalt()), 1, 64*1024, 4, 32))
 
-		userToUpdate := rbac.NewUser(uid, user.Name, user.Roles, string(hashedPassword), []string{}, storedUser.GetSalt(), conflict.Metadata{
-			ResourceVersion: int(user.Metadata.ResourceVersion)})
+		userToUpdate := rbac.NewUser(uid, user.GetName(), user.GetRoles(), string(hashedPassword), []string{}, storedUser.GetSalt(), conflict.Metadata{
+			ResourceVersion: int(user.GetMetadata().GetResourceVersion())})
 
 		usr, _ := userToUpdate.(*rbac.User)
-		usr.Metadata.ResourceVersion = int(user.Metadata.ResourceVersion)
+		usr.Metadata.ResourceVersion = int(user.GetMetadata().GetResourceVersion())
 
 		err = u.userService.Update(usr)
 		if err != nil {
@@ -232,7 +232,7 @@ func (u UserServer) DeleteUsers(ctx context.Context, request *apb.DeleteUsersReq
 		return nil, err
 	}
 
-	for _, user := range request.Username {
+	for _, user := range request.GetUsername() {
 		userToDelete, err := u.userService.Get(store.Query{Name: user})
 		if err != nil {
 			return nil, status.Errorf(codes.Canceled, "user not found %v", err)
diff --git a/controller/northbound/server/user_test.go b/controller/northbound/server/user_test.go
index 9fcdf4d610cb5685e69e231bd2d65cde95a7e9e8..e9c49dcd728ee541a81a6949a475959488db280c 100644
--- a/controller/northbound/server/user_test.go
+++ b/controller/northbound/server/user_test.go
@@ -234,7 +234,7 @@ func TestUser_GetUser(t *testing.T) {
 			}
 
 			if got != nil {
-				if got.User.Name != tt.want.User.Name || got.User.Id != tt.want.User.Id {
+				if got.GetUser().GetName() != tt.want.GetUser().GetName() || got.GetUser().GetId() != tt.want.GetUser().GetId() {
 					t.Errorf("User.GetUser() = %v, want %v", got, tt.want)
 				}
 			} else {
@@ -285,14 +285,14 @@ func TestUser_GetUsers(t *testing.T) {
 			}
 
 			if got != nil {
-				if len(got.User) != tt.wantLen {
+				if len(got.GetUser()) != tt.wantLen {
 					t.Errorf("User.GetUsers() = %v, want %v", got, tt.want)
 				}
 
-				for _, gotU := range got.User {
+				for _, gotU := range got.GetUser() {
 					containsExpected := false
-					for _, wantU := range tt.want.User {
-						if gotU.Name == wantU.Name {
+					for _, wantU := range tt.want.GetUser() {
+						if gotU.GetName() == wantU.GetName() {
 							containsExpected = true
 							break
 						}
diff --git a/controller/northbound/server/utils_test.go b/controller/northbound/server/utils_test.go
index dd95d8f2e8c56ba51bf01ade6d6cf5efa0831758..65b9f0fd1810b4b51bf9de846d4301a2d185ef8d 100644
--- a/controller/northbound/server/utils_test.go
+++ b/controller/northbound/server/utils_test.go
@@ -9,7 +9,7 @@ import (
 
 func contains(array []*validate.Violation, err *validate.Violation) bool {
 	for _, v := range array {
-		if isEqualFieldPaths(v.Field, err.Field) && *v.ConstraintId == *err.ConstraintId && *v.Message == *err.Message {
+		if isEqualFieldPaths(v.GetField(), err.GetField()) && v.GetConstraintId() == err.GetConstraintId() && v.GetMessage() == err.GetMessage() {
 			return true
 		}
 	}
@@ -24,7 +24,7 @@ func isEqualFieldPaths(violationFieldPath, errFieldPath *validate.FieldPath) boo
 
 	for i, elem := range violationFieldPath.GetElements() {
 		errElem := errFieldPath.GetElements()[i]
-		if *elem.FieldName != *errElem.FieldName {
+		if elem.GetFieldName() != errElem.GetFieldName() {
 			return false
 		}
 	}
@@ -39,7 +39,7 @@ func assertValidationErrors(t *testing.T, err error, expectedValidationErrors []
 	for _, detail := range errDetails {
 		switch errorType := detail.(type) {
 		case *validate.Violations:
-			for _, violation := range errorType.Violations {
+			for _, violation := range errorType.GetViolations() {
 				ok := contains(expectedValidationErrors, violation)
 				if !ok {
 					t.Errorf("Received unexptected validation error: %v, expected %v", violation, expectedValidationErrors)
diff --git a/controller/nucleus/gnmi_transport.go b/controller/nucleus/gnmi_transport.go
index f25f8c0093e828916bb5c0fe88defcb3b22cd6f1..a99207f8b83ad2a7f79f2d45bd02df7203974f03 100644
--- a/controller/nucleus/gnmi_transport.go
+++ b/controller/nucleus/gnmi_transport.go
@@ -51,15 +51,15 @@ func newGnmiTransport(opts *tpb.TransportOption, model shared.DeviceModel) (*Gnm
 	}
 
 	gnmiConfig := &gnmi.Config{
-		Addr:        opts.Address,
-		Password:    opts.Password,
-		Username:    opts.Username,
-		TLS:         opts.Tls,
+		Addr:        opts.GetAddress(),
+		Password:    opts.GetPassword(),
+		Username:    opts.GetUsername(),
+		TLS:         opts.GetTls(),
 		Encoding:    gpb.Encoding_JSON_IETF,
 		Compression: opts.GetGnmiTransportOption().GetCompression(),
 	}
 
-	if opts.Tls {
+	if opts.GetTls() {
 		if err := enableTLSInGnmiConfig(gnmiConfig); err != nil {
 			log.Error(err)
 			return nil, err
@@ -77,8 +77,8 @@ func newGnmiTransport(opts *tpb.TransportOption, model shared.DeviceModel) (*Gnm
 	}
 
 	log.WithFields(log.Fields{
-		"target": opts.Address,
-		"tls":    opts.Tls,
+		"target": opts.GetAddress(),
+		"tls":    opts.GetTls(),
 	}).Info("building new gNMI transport")
 
 	return &Gnmi{
@@ -167,9 +167,9 @@ func (g *Gnmi) ProcessResponse(resp interface{}) error {
 			Type:  &gpb.GetResponse{},
 		}
 	}
-	rn := r.Notification
+	rn := r.GetNotification()
 	for _, msg := range rn {
-		if err := g.processResponseUpdates(msg.Update); err != nil {
+		if err := g.processResponseUpdates(msg.GetUpdate()); err != nil {
 			return err
 		}
 	}
@@ -181,14 +181,14 @@ func (g *Gnmi) ProcessResponse(resp interface{}) error {
 func (g *Gnmi) ProcessControlPlaneSubscribeResponse(resp *gpb.SubscribeResponse_Update) error {
 	notification := resp.Update
 
-	if len(notification.Update) > 0 {
-		if err := g.processResponseUpdates(notification.Update); err != nil {
+	if len(notification.GetUpdate()) > 0 {
+		if err := g.processResponseUpdates(notification.GetUpdate()); err != nil {
 			return err
 		}
 	}
 
-	if len(notification.Delete) > 0 {
-		if err := g.processResponseDeletes(notification.Delete); err != nil {
+	if len(notification.GetDelete()) > 0 {
+		if err := g.processResponseDeletes(notification.GetDelete()); err != nil {
 			return err
 		}
 	}
@@ -200,7 +200,7 @@ func (g *Gnmi) processResponseUpdates(updates []*gpb.Update) error {
 	errs := make([]error, 0)
 
 	for _, update := range updates {
-		if err := g.SetNode(update.Path, update.Val); err != nil {
+		if err := g.SetNode(update.GetPath(), update.GetVal()); err != nil {
 			errs = append(errs, err)
 		}
 	}
@@ -237,7 +237,7 @@ func (g *Gnmi) processResponseDeletes(deletes []*gpb.Path) error {
 // Capabilities calls GNMI capabilities.
 func (g *Gnmi) Capabilities(ctx context.Context) (interface{}, error) {
 	log.WithFields(log.Fields{
-		"target": g.Options.Address,
+		"target": g.Options.GetAddress(),
 	}).Info("sending gNMI capabilities request")
 	ctx = gnmi.NewContext(ctx, g.config)
 	ctx = context.WithValue(ctx, types.CtxKeyConfig, g.config) //nolint
@@ -265,8 +265,8 @@ func (g *Gnmi) getWithRequest(ctx context.Context, req *gpb.GetRequest) (interfa
 		return nil, &customerrs.NilError{}
 	}
 	log.WithFields(log.Fields{
-		"target": g.Options.Address,
-		"path":   req.Path,
+		"target": g.Options.GetAddress(),
+		"path":   req.GetPath(),
 	}).Info("sending gNMI get request")
 
 	resp, err := g.client.Get(ctx, req)
diff --git a/controller/nucleus/gnmi_transport_test.go b/controller/nucleus/gnmi_transport_test.go
index d8aaf9e590325cbb368280ee3b614083181e6dc4..88d2398cf1dd5d0c03c49aee6753589fa6be639c 100644
--- a/controller/nucleus/gnmi_transport_test.go
+++ b/controller/nucleus/gnmi_transport_test.go
@@ -290,14 +290,14 @@ func TestGnmi_Set(t *testing.T) {
 			fields: fields{
 				transport: mockTransport(t),
 				mockArgumentMatcher: mock.MatchedBy(func(input *gpb.SetRequest) bool {
-					if len(input.Update) == 0 {
+					if len(input.GetUpdate()) == 0 {
 						return false
 					}
-					path, err := ygot.PathToString(input.Update[0].Path)
+					path, err := ygot.PathToString(input.GetUpdate()[0].GetPath())
 					if err != nil {
 						return false
 					}
-					value := input.Update[0].Val.GetStringVal()
+					value := input.GetUpdate()[0].GetVal().GetStringVal()
 
 					valCheck := value == "newName"
 					pathCheck := path == "/system/config/hostname"
@@ -332,10 +332,10 @@ func TestGnmi_Set(t *testing.T) {
 			fields: fields{
 				transport: mockTransport(t),
 				mockArgumentMatcher: mock.MatchedBy(func(input *gpb.SetRequest) bool {
-					if len(input.Delete) == 0 {
+					if len(input.GetDelete()) == 0 {
 						return false
 					}
-					test, _ := ygot.PathToString(input.Delete[0])
+					test, _ := ygot.PathToString(input.GetDelete()[0])
 					return test == "/system/config/hostname"
 				}),
 			},
diff --git a/controller/nucleus/networkElement.go b/controller/nucleus/networkElement.go
index 7eb5fa6e865bcbc0677f5813e80c122dfead0c06..668ec99cc8b0f3ac96cb6ec26cdf1a65ffc8c2ee 100644
--- a/controller/nucleus/networkElement.go
+++ b/controller/nucleus/networkElement.go
@@ -39,7 +39,7 @@ func NewNetworkElement(
 		name = namesgenerator.GetRandomName(0)
 	}
 
-	if opt.Type == spb.Type_TYPE_CONTAINERISED {
+	if opt.GetType() == spb.Type_TYPE_CONTAINERISED {
 		return &CsbiNetworkElement{
 			CommonNetworkElement: CommonNetworkElement{
 				UUID:                  uuidInput,
@@ -121,7 +121,7 @@ func (d *CommonNetworkElement) GetPlugin() plugin.Plugin {
 
 // TransportAddress returns the TransportAddress of the network element.
 func (n *CommonNetworkElement) TransportAddress() string {
-	return n.transportOptions.Address
+	return n.transportOptions.GetAddress()
 }
 
 // Name returns the name of the network element.
@@ -146,7 +146,7 @@ func (d *CommonNetworkElement) ProcessResponse(resp proto.Message) error {
 
 // IsTransportValid returns a boolean if the transport of a network element is valid.
 func (n *CommonNetworkElement) IsTransportValid() bool {
-	if n.transportOptions != nil && n.transportOptions.Address != "" {
+	if n.transportOptions != nil && n.transportOptions.GetAddress() != "" {
 		return true
 	}
 
@@ -227,7 +227,7 @@ func (d *CsbiNetworkElement) ProcessResponse(resp proto.Message) error {
 
 // IsTransportValid returns a boolean if the transport of a network element is valid.
 func (n *CsbiNetworkElement) IsTransportValid() bool {
-	if n.transportOptions != nil && n.transportOptions.Address != "" {
+	if n.transportOptions != nil && n.transportOptions.GetAddress() != "" {
 		return true
 	}
 
@@ -253,10 +253,10 @@ func (n *CommonNetworkElement) MarshalJSON() ([]byte, error) {
 		transportTLS = false
 	} else {
 		transportType = n.transport.Type()
-		transportAddress = n.transportOptions.Address
-		transportUsername = n.transportOptions.Username
-		transportPassword = n.transportOptions.Password
-		transportTLS = n.transportOptions.Tls
+		transportAddress = n.transportOptions.GetAddress()
+		transportUsername = n.transportOptions.GetUsername()
+		transportPassword = n.transportOptions.GetPassword()
+		transportTLS = n.transportOptions.GetTls()
 	}
 
 	pluginUUID := n.Plugin.ID()
@@ -320,10 +320,10 @@ func (n *CommonNetworkElement) MarshalBSON() ([]byte, error) {
 		transportTLS = false
 	} else {
 		transportType = n.transport.Type()
-		transportAddress = n.transportOptions.Address
-		transportUsername = n.transportOptions.Username
-		transportPassword = n.transportOptions.Password
-		transportTLS = n.transportOptions.Tls
+		transportAddress = n.transportOptions.GetAddress()
+		transportUsername = n.transportOptions.GetUsername()
+		transportPassword = n.transportOptions.GetPassword()
+		transportTLS = n.transportOptions.GetTls()
 	}
 
 	pluginUUID := n.Plugin.ID()
diff --git a/controller/nucleus/networkElementWatcher.go b/controller/nucleus/networkElementWatcher.go
index 9aec23185db19e32afeaa9dbbb1d89f136941907..96137e6b27dc445e722cfdc1d205b43db16e12c0 100644
--- a/controller/nucleus/networkElementWatcher.go
+++ b/controller/nucleus/networkElementWatcher.go
@@ -207,7 +207,7 @@ func (n *NetworkElementWatcher) handleSubscribeResponse(subscriptionInfo *transp
 		// if the target that was subscribed to is not reachable anymore.
 		// log.Error("Error: subresponse == nil")
 	} else {
-		switch resp := subscriptionInfo.SubResponse.Response.(type) {
+		switch resp := subscriptionInfo.SubResponse.GetResponse().(type) {
 		case *gpb.SubscribeResponse_Error:
 			log.Error(&customerrs.SubscribeResponseError{
 				PndID:              subscriptionInfo.PndID,
@@ -232,15 +232,15 @@ func (n *NetworkElementWatcher) handleSubscribeResponse(subscriptionInfo *transp
 }
 
 func (n *NetworkElementWatcher) handleSubscribeResponseUpdate(resp *gpb.SubscribeResponse_Update, subscriptionInfo *transport.SubscriptionInformation) {
-	pathsAndValues := make(map[string]string, len(resp.Update.Update))
+	pathsAndValues := make(map[string]string, len(resp.Update.GetUpdate()))
 
-	if resp.Update == nil || len(resp.Update.Update) == 0 {
-		log.Debugf("handleSubscribeResponseUpdate empty update or updates; Update: %v, InnerUpdates: %v", resp.Update, resp.Update.Update)
+	if resp.Update == nil || len(resp.Update.GetUpdate()) == 0 {
+		log.Debugf("handleSubscribeResponseUpdate empty update or updates; Update: %v, InnerUpdates: %v", resp.Update, resp.Update.GetUpdate())
 		return
 	}
 
-	for _, update := range resp.Update.Update {
-		pathString, err := ygot.PathToString(update.Path)
+	for _, update := range resp.Update.GetUpdate() {
+		pathString, err := ygot.PathToString(update.GetPath())
 		if err != nil {
 			log.Errorf("Error trying to create a string from path: %v", err)
 		}
diff --git a/controller/nucleus/pluginService.go b/controller/nucleus/pluginService.go
index f95d47f108b9e06a37dc702b7f0216c3e1afa2f8..8263130c5a3889af61732e210066dd3bd1e0b776 100644
--- a/controller/nucleus/pluginService.go
+++ b/controller/nucleus/pluginService.go
@@ -230,7 +230,7 @@ func saveStreamToFile(sc StreamClient, filename string, id uuid.UUID) (err error
 
 			return err
 		}
-		n, err := f.Write(payload.Chunk)
+		n, err := f.Write(payload.GetChunk())
 		if err != nil {
 			closeErr := sc.CloseSend()
 			if closeErr != nil {
diff --git a/controller/nucleus/transport.go b/controller/nucleus/transport.go
index 1f4a6c3f331f758f820c238a1e564839393907a7..bfdf2d05880c52a928f8ba609cc4816fb15d58c2 100644
--- a/controller/nucleus/transport.go
+++ b/controller/nucleus/transport.go
@@ -24,7 +24,7 @@ func NewTransport(opts *tpb.TransportOption, model shared.DeviceModel) (transpor
 	if !validTransportOptions(opts) {
 		return nil, &customerrs.InvalidTransportOptionsError{Opt: opts}
 	}
-	switch o := opts.TransportOption.(type) {
+	switch o := opts.GetTransportOption().(type) {
 	case *tpb.TransportOption_GnmiTransportOption:
 		return newGnmiTransport(opts, model)
 	default:
diff --git a/controller/nucleus/util/gnmi/notification.go b/controller/nucleus/util/gnmi/notification.go
index 407faf3b1f7eb4d470657f2b7c7c3fbd0334e7ba..2b6e32da55c60e2b8072943fba2f7412c1459d4a 100644
--- a/controller/nucleus/util/gnmi/notification.go
+++ b/controller/nucleus/util/gnmi/notification.go
@@ -5,8 +5,8 @@ import "github.com/openconfig/gnmi/proto/gnmi"
 // IsGNMINotificationEmpty checks if the given gnmi.Notification does not
 // contain any updates or deletes.
 func IsGNMINotificationEmpty(n *gnmi.Notification) bool {
-	if n.Update == nil || len(n.Update) == 0 {
-		if n.Delete == nil || len(n.Delete) == 0 {
+	if n.Update == nil || len(n.GetUpdate()) == 0 {
+		if n.Delete == nil || len(n.GetDelete()) == 0 {
 			return true
 		}
 	}
diff --git a/controller/nucleus/util/path/translate.go b/controller/nucleus/util/path/translate.go
index 6d6ab7f27a0d2cf87c0218c4c2f20863716a3f03..286f812bab8e52efcc75682d5aff296094758d54 100644
--- a/controller/nucleus/util/path/translate.go
+++ b/controller/nucleus/util/path/translate.go
@@ -8,8 +8,8 @@ import (
 
 // ToStrings translates a gNMI path to a slice of strings.
 func ToStrings(path *gpb.Path) []string {
-	elems := make([]string, len(path.Elem))
-	for i, e := range path.Elem {
+	elems := make([]string, len(path.GetElem()))
+	for i, e := range path.GetElem() {
 		//nolint
 		elems[i] = strings.Title(e.Name)
 	}
diff --git a/controller/plugin/shared/client.go b/controller/plugin/shared/client.go
index a44a983a7f0a6f663ba2df62c443e6991c7b73f4..1690cb7b9d7236b1810870b5807064792f73cfba 100644
--- a/controller/plugin/shared/client.go
+++ b/controller/plugin/shared/client.go
@@ -82,7 +82,7 @@ func (m *DeviceModelClient) Model(filterReadOnly bool) ([]byte, error) {
 		return nil, err
 	}
 
-	return resp.Json, nil
+	return resp.GetJson(), nil
 }
 
 // Diff calls the Diff method of the DeviceModelClients client. A request is
@@ -157,7 +157,7 @@ func (m *DeviceModelClient) SchemaTreeGzip() ([]byte, error) {
 
 			return nil, err
 		}
-		sTreeBytes = append(sTreeBytes, payload.Chunk...)
+		sTreeBytes = append(sTreeBytes, payload.GetChunk()...)
 	}
 
 	return sTreeBytes, nil
diff --git a/controller/plugin/shared/server.go b/controller/plugin/shared/server.go
index b49c0558b5acd87f0c9f96f364a6490fb94c1284..b48db622a23c0d9bcbd4cf471fcad045b3301b14 100644
--- a/controller/plugin/shared/server.go
+++ b/controller/plugin/shared/server.go
@@ -47,7 +47,7 @@ func (m *DeviceModelServer) SetNode(
 func (m *DeviceModelServer) GetNode(
 	ctx context.Context,
 	req *pb.GetNodeRequest) (*pb.GetNodeResponse, error) {
-	nodes, err := m.Impl.GetNode(req.GetPath(), req.RequestForIntendedState)
+	nodes, err := m.Impl.GetNode(req.GetPath(), req.GetRequestForIntendedState())
 	return &pb.GetNodeResponse{Nodes: nodes}, err
 }
 
diff --git a/integration-tests/integrationTestUtils/integrationTestUtils.go b/integration-tests/integrationTestUtils/integrationTestUtils.go
index b3e6442e812f2e9bfa410244dbd99540a4f22cbc..b59e2ef2ab3b59f43ab93392d32e8711de676a05 100644
--- a/integration-tests/integrationTestUtils/integrationTestUtils.go
+++ b/integration-tests/integrationTestUtils/integrationTestUtils.go
@@ -29,7 +29,7 @@ const DefaultTargetUsername = "admin"
 const DefaultTargetPassword = "admin"
 
 func CreateContextWithAuthorization(loginResponse *rbac.LoginResponse) context.Context {
-	md := metadata.Pairs("authorize", loginResponse.Token)
+	md := metadata.Pairs("authorize", loginResponse.GetToken())
 	return metadata.NewOutgoingContext(context.Background(), md)
 }
 
@@ -82,7 +82,7 @@ func ExportCurrentSDNConfig(conn *grpc.ClientConn, ctx context.Context) (string,
 	if err != nil {
 		return "", err
 	}
-	pndID := pndRes.Pnd[0].Id
+	pndID := pndRes.GetPnd()[0].GetId()
 
 	configMgmtService := configMgmtPb.NewConfigurationManagementServiceClient(conn)
 
@@ -91,7 +91,7 @@ func ExportCurrentSDNConfig(conn *grpc.ClientConn, ctx context.Context) (string,
 		return "", err
 	}
 
-	return sdnConfigResponse.SdnConfigData, nil
+	return sdnConfigResponse.GetSdnConfigData(), nil
 }
 
 // ApplySDNConfig can be used to apply a given SDN config as a string to set the testing environment as desired.
@@ -103,7 +103,7 @@ func ApplySDNConfig(conn *grpc.ClientConn, ctx context.Context, sdnConfig string
 	}
 
 	// currently only support for default PND
-	pndID := pndRes.Pnd[0].Id
+	pndID := pndRes.GetPnd()[0].GetId()
 
 	configMgmtService := configMgmtPb.NewConfigurationManagementServiceClient(conn)
 
@@ -148,18 +148,18 @@ func CleanUserAndRolesExceptAdmin(conn *grpc.ClientConn, ctx context.Context) {
 
 func cleanUsersExceptAdmin(resp *apb.GetUsersResponse, userService apb.UserServiceClient, ctx context.Context) error {
 	// no need to delete if only admin available
-	if len(resp.User) == 1 {
+	if len(resp.GetUser()) == 1 {
 		return nil
 	}
 
 	var names []string
 
-	for _, u := range resp.User {
-		if u.Name == admin {
+	for _, u := range resp.GetUser() {
+		if u.GetName() == admin {
 			continue
 		}
 
-		names = append(names, u.Name)
+		names = append(names, u.GetName())
 	}
 
 	_, err := userService.DeleteUsers(ctx, &apb.DeleteUsersRequest{
@@ -175,18 +175,18 @@ func cleanUsersExceptAdmin(resp *apb.GetUsersResponse, userService apb.UserServi
 
 func cleanRolesExceptAdmin(resp *apb.GetRolesResponse, roleService apb.RoleServiceClient, ctx context.Context) error {
 	// no need to delete if only admin available
-	if len(resp.Roles) == 1 {
+	if len(resp.GetRoles()) == 1 {
 		return nil
 	}
 
 	var names []string
 
-	for _, role := range resp.Roles {
-		if role.Name == admin {
+	for _, role := range resp.GetRoles() {
+		if role.GetName() == admin {
 			continue
 		}
 
-		names = append(names, role.Name)
+		names = append(names, role.GetName())
 	}
 
 	_, err := roleService.DeleteRoles(ctx, &apb.DeleteRolesRequest{
diff --git a/integration-tests/lab_tests/lab00_test.go b/integration-tests/lab_tests/lab00_test.go
index a2c5be7013cc4e91920da6e4a2bd00af0ac6106d..a4791ff920e8155b9443bc5aab973265a5f65a97 100644
--- a/integration-tests/lab_tests/lab00_test.go
+++ b/integration-tests/lab_tests/lab00_test.go
@@ -109,7 +109,7 @@ func TestLab00(t *testing.T) {
 		}
 
 		assert.Equal(t, 1, len(resp.GetMneNotification()), "The hostname for the managed network element has been requested. Therefore exactly one response is expected.")
-		assert.NotEmpty(t, resp.MneNotification[0].GetUpdate()[0].GetVal().GetStringVal(), "It is expected, that the hostname of the managed network element is not empty.")
+		assert.NotEmpty(t, resp.GetMneNotification()[0].GetUpdate()[0].GetVal().GetStringVal(), "It is expected, that the hostname of the managed network element is not empty.")
 	}
 
 	// Change the hostname of both managed network elements.
@@ -152,6 +152,6 @@ func TestLab00(t *testing.T) {
 		}
 
 		assert.Equal(t, 1, len(resp.GetMneNotification()), "The hostname for the managed network element has been requested. Therefore exactly one response is expected.")
-		assert.Equal(t, mne.newHostname, resp.MneNotification[0].GetUpdate()[0].GetVal().GetStringVal(), "Exptected the new changed hostname.")
+		assert.Equal(t, mne.newHostname, resp.GetMneNotification()[0].GetUpdate()[0].GetVal().GetStringVal(), "Exptected the new changed hostname.")
 	}
 }
diff --git a/integration-tests/networkElement_tests/networkElement_test.go b/integration-tests/networkElement_tests/networkElement_test.go
index 3765a25b0c256c54babff11bad6266edc144e1f8..c412c6b6e603fa74419e8309f0a5abd9438324b2 100644
--- a/integration-tests/networkElement_tests/networkElement_test.go
+++ b/integration-tests/networkElement_tests/networkElement_test.go
@@ -152,15 +152,15 @@ func TestChangeHostnameViaController(t *testing.T) {
 	}
 
 	// change hostname
-	setPathListRequest.ChangeRequest[0].Mneid = addListResponse.Responses[0].GetId()
+	setPathListRequest.ChangeRequest[0].Mneid = addListResponse.GetResponses()[0].GetId()
 
 	setPathListResponse, err := mneService.SetPathList(ctx, setPathListRequest)
 	if err != nil {
 		t.Error(err)
 	}
 
-	changeCommit.Change[0].Cuid = setPathListResponse.Responses[0].GetId()  // set change ID
-	changeConfirm.Change[0].Cuid = setPathListResponse.Responses[0].GetId() // set change ID
+	changeCommit.Change[0].Cuid = setPathListResponse.GetResponses()[0].GetId()  // set change ID
+	changeConfirm.Change[0].Cuid = setPathListResponse.GetResponses()[0].GetId() // set change ID
 
 	_, err = mneService.SetChangeList(ctx, changeCommit)
 	if err != nil {
@@ -178,7 +178,7 @@ func TestChangeHostnameViaController(t *testing.T) {
 		t.Error(err)
 	}
 
-	getMneRequest.Mneid = getAllResponse.Mne[0].Id
+	getMneRequest.Mneid = getAllResponse.GetMne()[0].GetId()
 	getMneResponse, err := mneService.Get(ctx, getMneRequest)
 	if err != nil {
 		t.Error(err)
@@ -191,7 +191,7 @@ func TestChangeHostnameViaController(t *testing.T) {
 		t.Error(err)
 	}
 
-	err = Unmarshal([]byte(getMneResponse.Mne.Model), path, mne.Model)
+	err = Unmarshal([]byte(getMneResponse.GetMne().GetModel()), path, mne.Model)
 	if err != nil {
 		t.Error(err)
 		t.FailNow()
@@ -267,10 +267,10 @@ func TestAddMultipleAndDeleteMne(t *testing.T) {
 		t.Error(err)
 	}
 
-	assert.Equal(t, expectedAmountBeforeDeletion, len(getAllResponse.Mne))
+	assert.Equal(t, expectedAmountBeforeDeletion, len(getAllResponse.GetMne()))
 
 	// delete second device
-	deleteSecondTargetRequest.Mneid = getAllResponse.Mne[1].Id
+	deleteSecondTargetRequest.Mneid = getAllResponse.GetMne()[1].GetId()
 	_, err = mneService.Delete(ctx, deleteSecondTargetRequest)
 	if err != nil {
 		t.Error(err)
@@ -282,9 +282,9 @@ func TestAddMultipleAndDeleteMne(t *testing.T) {
 		t.Error(err)
 	}
 
-	assert.Equal(t, expectedAmountAfterDeletion, len(getAllResponse.Mne))
+	assert.Equal(t, expectedAmountAfterDeletion, len(getAllResponse.GetMne()))
 
-	assert.Equal(t, expectedNameForRemainingTarget, getAllResponse.Mne[0].Name)
+	assert.Equal(t, expectedNameForRemainingTarget, getAllResponse.GetMne()[0].GetName())
 }
 
 // Note: This testcase is also covered by TestChangeHostname at the moment.
@@ -336,13 +336,13 @@ func TestGetMneById(t *testing.T) {
 	}
 
 	// get by ID and compare
-	getByIdRequest.Mneid = addListResponse.Responses[0].Id
+	getByIdRequest.Mneid = addListResponse.GetResponses()[0].GetId()
 	getByIdResponse, err := mneService.Get(ctx, getByIdRequest)
 	if err != nil {
 		t.Error(err)
 	}
 
-	assert.Equal(t, mneName, getByIdResponse.Mne.Name)
+	assert.Equal(t, mneName, getByIdResponse.GetMne().GetName())
 }
 
 func TestGetRootPathAndPushToMne(t *testing.T) {
@@ -408,18 +408,18 @@ func TestGetRootPathAndPushToMne(t *testing.T) {
 	}
 
 	// get root path
-	getRootPathRequest.Mneid = addListResponse.Responses[0].Id
+	getRootPathRequest.Mneid = addListResponse.GetResponses()[0].GetId()
 	getPathResponse, err := mneService.GetPath(ctx, getRootPathRequest)
 	if err != nil {
 		t.Error(err)
 	}
 
-	setPathListRequest.ChangeRequest[0].Mneid = addListResponse.Responses[0].GetId()
+	setPathListRequest.ChangeRequest[0].Mneid = addListResponse.GetResponses()[0].GetId()
 
 	// TODO: JsonIetfValue needs fixing
 	setPathListRequest.ChangeRequest[0].Value = &gnmi.TypedValue{
 		Value: &gnmi.TypedValue_JsonIetfVal{
-			JsonIetfVal: []byte(getPathResponse.GetMneNotification()[0].GetUpdate()[0].Val.String()),
+			JsonIetfVal: []byte(getPathResponse.GetMneNotification()[0].GetUpdate()[0].GetVal().String()),
 		},
 	}
 
@@ -480,7 +480,7 @@ func TestGetPathAndGetIntendedPathWithExternalChange(t *testing.T) {
 		t.FailNow()
 	}
 
-	mneID := addResponse.Responses[0].Id
+	mneID := addResponse.GetResponses()[0].GetId()
 	getPathRequest.Mneid = mneID
 	getIntendedPathRequest.Mneid = mneID
 
@@ -497,7 +497,7 @@ func TestGetPathAndGetIntendedPathWithExternalChange(t *testing.T) {
 		t.FailNow()
 	}
 
-	assert.Equal(t, getPathResponse.MneNotification[0].Update[0].Val.Value, getIntendedPathResponse.MneNotification[0].Update[0].Val.Value)
+	assert.Equal(t, getPathResponse.GetMneNotification()[0].GetUpdate()[0].GetVal().GetValue(), getIntendedPathResponse.GetMneNotification()[0].GetUpdate()[0].GetVal().GetValue())
 
 	// change hostname via gnmic
 	args := []string{"-a", targetA,
@@ -535,5 +535,5 @@ func TestGetPathAndGetIntendedPathWithExternalChange(t *testing.T) {
 		t.FailNow()
 	}
 
-	assert.NotEqual(t, getPathResponse.MneNotification[0].Update[0].Val.Value, getIntendedPathResponse.MneNotification[0].Update[0].Val.Value)
+	assert.NotEqual(t, getPathResponse.GetMneNotification()[0].GetUpdate()[0].GetVal().GetValue(), getIntendedPathResponse.GetMneNotification()[0].GetUpdate()[0].GetVal().GetValue())
 }
diff --git a/integration-tests/rbac_tests/rbac_test.go b/integration-tests/rbac_tests/rbac_test.go
index 44cbc4fc1ed74a797e651adb62c52c8051c90be4..49b40429abf338d4674206184ed1242cbd784f5d 100644
--- a/integration-tests/rbac_tests/rbac_test.go
+++ b/integration-tests/rbac_tests/rbac_test.go
@@ -118,15 +118,15 @@ func TestUserCreationAndModification(t *testing.T) {
 		t.FailNow()
 	}
 
-	assert.Equal(t, expectedAmountOfUsers, len(getAllResponse.User))
+	assert.Equal(t, expectedAmountOfUsers, len(getAllResponse.GetUser()))
 
-	assert.NotEqual(t, getAllResponse.User[1].Name, getAllResponse.User[2].Name)
+	assert.NotEqual(t, getAllResponse.GetUser()[1].GetName(), getAllResponse.GetUser()[2].GetName())
 
-	assert.NotEqual(t, getAllResponse.User[1].Roles[pndID], getAllResponse.User[2].Roles[pndID])
+	assert.NotEqual(t, getAllResponse.GetUser()[1].GetRoles()[pndID], getAllResponse.GetUser()[2].GetRoles()[pndID])
 
 	// change name of user1
-	updateUserRequest.User[0].Roles = getAllResponse.User[1].Roles
-	updateUserRequest.User[0].Metadata.ResourceVersion = getAllResponse.User[1].Metadata.ResourceVersion
+	updateUserRequest.User[0].Roles = getAllResponse.GetUser()[1].GetRoles()
+	updateUserRequest.User[0].Metadata.ResourceVersion = getAllResponse.GetUser()[1].GetMetadata().GetResourceVersion()
 
 	_, err = userService.UpdateUsers(ctx, updateUserRequest)
 	if err != nil {
@@ -140,7 +140,7 @@ func TestUserCreationAndModification(t *testing.T) {
 		t.FailNow()
 	}
 
-	assert.Equal(t, expectedNameAfterChange, getUserResponse.User.Name)
+	assert.Equal(t, expectedNameAfterChange, getUserResponse.GetUser().GetName())
 }
 
 func TestRoleCreationAndModification(t *testing.T) {
@@ -230,11 +230,11 @@ func TestRoleCreationAndModification(t *testing.T) {
 		t.FailNow()
 	}
 
-	assert.Equal(t, expectedAmountOfRoles, len(getAllRoleResponse.Roles))
+	assert.Equal(t, expectedAmountOfRoles, len(getAllRoleResponse.GetRoles()))
 
-	assert.Equal(t, multiplePermissionRole, getAllRoleResponse.Roles[1].Name)
+	assert.Equal(t, multiplePermissionRole, getAllRoleResponse.GetRoles()[1].GetName())
 
-	assert.Equal(t, expectedAmountOfPermissions, len(getAllRoleResponse.Roles[1].Permissions))
+	assert.Equal(t, expectedAmountOfPermissions, len(getAllRoleResponse.GetRoles()[1].GetPermissions()))
 
 	// delete role and compare amount
 	_, err = roleService.DeleteRoles(ctx, deleteRoleRequest)
@@ -249,7 +249,7 @@ func TestRoleCreationAndModification(t *testing.T) {
 		t.FailNow()
 	}
 
-	assert.Equal(t, expectedAmountOfRolesAfterDeletion, len(getAllRoleResponse.Roles))
+	assert.Equal(t, expectedAmountOfRolesAfterDeletion, len(getAllRoleResponse.GetRoles()))
 
 	// delete one permission then get role to compare
 	_, err = roleService.DeletePermissionsForRole(ctx, removePermissionRequest)
@@ -264,7 +264,7 @@ func TestRoleCreationAndModification(t *testing.T) {
 		t.FailNow()
 	}
 
-	assert.Equal(t, expectedAmountOfPermissionsAfterDeletion, len(getAllRoleResponse.Roles[1].Permissions))
+	assert.Equal(t, expectedAmountOfPermissionsAfterDeletion, len(getAllRoleResponse.GetRoles()[1].GetPermissions()))
 
 	// change role name and compare
 	_, err = roleService.UpdateRoles(ctx, updateRoleRequest)
@@ -279,7 +279,7 @@ func TestRoleCreationAndModification(t *testing.T) {
 		t.FailNow()
 	}
 
-	assert.Equal(t, multiplePermissionRoleNameAfterChange, getRoleResponse.Role.Name)
+	assert.Equal(t, multiplePermissionRoleNameAfterChange, getRoleResponse.GetRole().GetName())
 }
 
 func TestUserWithoutPermission(t *testing.T) {
diff --git a/integration-tests/topology_tests/topology_test.go b/integration-tests/topology_tests/topology_test.go
index 54c625541f789fc5b616d995dc95dd988e99c70a..50bb8c5618edf6963fcee44954d3c347c32a4d23 100644
--- a/integration-tests/topology_tests/topology_test.go
+++ b/integration-tests/topology_tests/topology_test.go
@@ -66,16 +66,16 @@ func TestCreateTopologyAndGetIt(t *testing.T) {
 		t.Errorf("Error while getting topology: %v", err)
 	}
 
-	assert.Equal(t, 1, len(getTopolgyResponse.Toplogy.Links))
-	assert.Equal(t, "Link1", getTopolgyResponse.Toplogy.Links[0].Name)
-	assert.Equal(t, "Node1", getTopolgyResponse.Toplogy.Links[0].SourceNode.Name)
-	assert.Equal(t, "Node2", getTopolgyResponse.Toplogy.Links[0].TargetNode.Name)
-	assert.Equal(t, "Port1", getTopolgyResponse.Toplogy.Links[0].SourcePort.Name)
-	assert.Equal(t, "10.0.0.1", getTopolgyResponse.Toplogy.Links[0].SourcePort.Configuration.Ip)
-	assert.Equal(t, int64(24), getTopolgyResponse.Toplogy.Links[0].SourcePort.Configuration.PrefixLength)
-	assert.Equal(t, "Port2", getTopolgyResponse.Toplogy.Links[0].TargetPort.Name)
-	assert.Equal(t, "10.0.0.2", getTopolgyResponse.Toplogy.Links[0].TargetPort.Configuration.Ip)
-	assert.Equal(t, int64(24), getTopolgyResponse.Toplogy.Links[0].TargetPort.Configuration.PrefixLength)
+	assert.Equal(t, 1, len(getTopolgyResponse.GetToplogy().GetLinks()))
+	assert.Equal(t, "Link1", getTopolgyResponse.GetToplogy().GetLinks()[0].GetName())
+	assert.Equal(t, "Node1", getTopolgyResponse.GetToplogy().GetLinks()[0].GetSourceNode().GetName())
+	assert.Equal(t, "Node2", getTopolgyResponse.GetToplogy().GetLinks()[0].GetTargetNode().GetName())
+	assert.Equal(t, "Port1", getTopolgyResponse.GetToplogy().GetLinks()[0].GetSourcePort().GetName())
+	assert.Equal(t, "10.0.0.1", getTopolgyResponse.GetToplogy().GetLinks()[0].GetSourcePort().GetConfiguration().GetIp())
+	assert.Equal(t, int64(24), getTopolgyResponse.GetToplogy().GetLinks()[0].GetSourcePort().GetConfiguration().GetPrefixLength())
+	assert.Equal(t, "Port2", getTopolgyResponse.GetToplogy().GetLinks()[0].GetTargetPort().GetName())
+	assert.Equal(t, "10.0.0.2", getTopolgyResponse.GetToplogy().GetLinks()[0].GetTargetPort().GetConfiguration().GetIp())
+	assert.Equal(t, int64(24), getTopolgyResponse.GetToplogy().GetLinks()[0].GetTargetPort().GetConfiguration().GetPrefixLength())
 }
 
 func TestCreateTopologyFailsValidation(t *testing.T) {
@@ -129,18 +129,18 @@ func TestCreateThenDeleteTopologyAndGetEmptyTopologies(t *testing.T) {
 		t.Errorf("Error while getting topology: %v", err)
 	}
 
-	assert.Equal(t, 1, len(getTopolgyResponse.Toplogy.Links))
-	assert.Equal(t, "Link1", getTopolgyResponse.Toplogy.Links[0].Name)
-	assert.Equal(t, "Node1", getTopolgyResponse.Toplogy.Links[0].SourceNode.Name)
-	assert.Equal(t, "Node2", getTopolgyResponse.Toplogy.Links[0].TargetNode.Name)
-	assert.Equal(t, "Port1", getTopolgyResponse.Toplogy.Links[0].SourcePort.Name)
-	assert.Equal(t, "10.0.0.1", getTopolgyResponse.Toplogy.Links[0].SourcePort.Configuration.Ip)
-	assert.Equal(t, int64(24), getTopolgyResponse.Toplogy.Links[0].SourcePort.Configuration.PrefixLength)
-	assert.Equal(t, "Port2", getTopolgyResponse.Toplogy.Links[0].TargetPort.Name)
-	assert.Equal(t, "10.0.0.2", getTopolgyResponse.Toplogy.Links[0].TargetPort.Configuration.Ip)
-	assert.Equal(t, int64(24), getTopolgyResponse.Toplogy.Links[0].TargetPort.Configuration.PrefixLength)
-
-	deleteLinkRequest := topologyPb.DeleteLinkRequest{Id: getTopolgyResponse.Toplogy.Links[0].Id}
+	assert.Equal(t, 1, len(getTopolgyResponse.GetToplogy().GetLinks()))
+	assert.Equal(t, "Link1", getTopolgyResponse.GetToplogy().GetLinks()[0].GetName())
+	assert.Equal(t, "Node1", getTopolgyResponse.GetToplogy().GetLinks()[0].GetSourceNode().GetName())
+	assert.Equal(t, "Node2", getTopolgyResponse.GetToplogy().GetLinks()[0].GetTargetNode().GetName())
+	assert.Equal(t, "Port1", getTopolgyResponse.GetToplogy().GetLinks()[0].GetSourcePort().GetName())
+	assert.Equal(t, "10.0.0.1", getTopolgyResponse.GetToplogy().GetLinks()[0].GetSourcePort().GetConfiguration().GetIp())
+	assert.Equal(t, int64(24), getTopolgyResponse.GetToplogy().GetLinks()[0].GetSourcePort().GetConfiguration().GetPrefixLength())
+	assert.Equal(t, "Port2", getTopolgyResponse.GetToplogy().GetLinks()[0].GetTargetPort().GetName())
+	assert.Equal(t, "10.0.0.2", getTopolgyResponse.GetToplogy().GetLinks()[0].GetTargetPort().GetConfiguration().GetIp())
+	assert.Equal(t, int64(24), getTopolgyResponse.GetToplogy().GetLinks()[0].GetTargetPort().GetConfiguration().GetPrefixLength())
+
+	deleteLinkRequest := topologyPb.DeleteLinkRequest{Id: getTopolgyResponse.GetToplogy().GetLinks()[0].GetId()}
 	_, err = topologyService.DeleteLink(ctx, &deleteLinkRequest)
 	if err != nil {
 		t.Errorf("Error while deleting link: %v", err)
@@ -151,5 +151,5 @@ func TestCreateThenDeleteTopologyAndGetEmptyTopologies(t *testing.T) {
 		t.Errorf("Error while getting topologies: %v", err)
 	}
 
-	assert.Equal(t, 0, len(getTopologyResponse.Toplogy.Links))
+	assert.Equal(t, 0, len(getTopologyResponse.GetToplogy().GetLinks()))
 }
diff --git a/plugin-registry/server.go b/plugin-registry/server.go
index 9ab9bdeabbf48c2e84580ab50667d5436277523f..d938659f9f352dd22dc36db0604f5ffa43b66a08 100644
--- a/plugin-registry/server.go
+++ b/plugin-registry/server.go
@@ -29,11 +29,11 @@ func NewServer(registry *PluginRegistry) *Server {
 func (s *Server) Get(ctx context.Context, req *pb.GetRequest) (*pb.GetResponse, error) {
 	pluginResultSlice := make([]*pb.Plugin, 0)
 
-	for _, query := range req.Query {
+	for _, query := range req.GetQuery() {
 		var plugin *Plugin
 		var err error
 
-		switch x := query.Identifier.(type) {
+		switch x := query.GetIdentifier().(type) {
 		case *pb.Query_Id:
 			id, err := uuid.Parse(x.Id)
 			if err != nil {