diff --git a/metropolis/cli/metroctl/cmd_node.go b/metropolis/cli/metroctl/cmd_node.go
index 941d6f6..a875725 100644
--- a/metropolis/cli/metroctl/cmd_node.go
+++ b/metropolis/cli/metroctl/cmd_node.go
@@ -102,11 +102,11 @@
 		var am apb.ActivationMode
 		switch strings.ToLower(activationMode) {
 		case "none":
-			am = apb.ActivationMode_ACTIVATION_NONE
+			am = apb.ActivationMode_ACTIVATION_MODE_NONE
 		case "reboot":
-			am = apb.ActivationMode_ACTIVATION_REBOOT
+			am = apb.ActivationMode_ACTIVATION_MODE_REBOOT
 		case "kexec":
-			am = apb.ActivationMode_ACTIVATION_KEXEC
+			am = apb.ActivationMode_ACTIVATION_MODE_KEXEC
 		default:
 			return fmt.Errorf("invalid value for flag activation-mode")
 		}
@@ -214,7 +214,7 @@
 							continue
 						}
 						s := nodes[0]
-						if s.Health == apb.Node_HEALTHY {
+						if s.Health == apb.Node_HEALTH_HEALTHY {
 							if s.Status != nil && s.Status.Version != nil {
 								log.Printf("node %s updated in %v to version %s", s.Id, time.Since(start), version.Semver(s.Status.Version))
 							} else {
@@ -378,15 +378,15 @@
 		}
 		var req apb.RebootRequest
 		if kexecFlag {
-			req.Type = apb.RebootRequest_KEXEC
+			req.Type = apb.RebootRequest_TYPE_KEXEC
 		} else {
-			req.Type = apb.RebootRequest_FIRMWARE
+			req.Type = apb.RebootRequest_TYPE_FIRMWARE
 		}
 		if firmwareFlag {
-			req.NextBoot = apb.RebootRequest_START_FIRMWARE_UI
+			req.NextBoot = apb.RebootRequest_NEXT_BOOT_START_FIRMWARE_UI
 		}
 		if rollbackFlag {
-			req.NextBoot = apb.RebootRequest_START_ROLLBACK
+			req.NextBoot = apb.RebootRequest_NEXT_BOOT_START_ROLLBACK
 		}
 
 		nmgmt, err := dialNode(ctx, args[0])
@@ -417,7 +417,7 @@
 		}
 
 		if _, err := nmgmt.Reboot(ctx, &apb.RebootRequest{
-			Type: apb.RebootRequest_POWER_OFF,
+			Type: apb.RebootRequest_TYPE_POWER_OFF,
 		}); err != nil {
 			return fmt.Errorf("reboot RPC failed: %w", err)
 		}
diff --git a/metropolis/cli/metroctl/cmd_node_logs.go b/metropolis/cli/metroctl/cmd_node_logs.go
index 0b732de..b06a9f7 100644
--- a/metropolis/cli/metroctl/cmd_node_logs.go
+++ b/metropolis/cli/metroctl/cmd_node_logs.go
@@ -94,9 +94,9 @@
 		}
 		nmgmt := api.NewNodeManagementClient(cl)
 
-		streamMode := api.GetLogsRequest_STREAM_DISABLE
+		streamMode := api.GetLogsRequest_STREAM_MODE_DISABLE
 		if logFlags.follow {
-			streamMode = api.GetLogsRequest_STREAM_UNBUFFERED
+			streamMode = api.GetLogsRequest_STREAM_MODE_UNBUFFERED
 		}
 		var filters []*cpb.LogFilter
 		if !logFlags.exact {
@@ -106,14 +106,14 @@
 				},
 			})
 		}
-		backlogMode := api.GetLogsRequest_BACKLOG_ALL
+		backlogMode := api.GetLogsRequest_BACKLOG_MODE_ALL
 		var backlogCount int64
 		switch {
 		case logFlags.backlog > 0:
-			backlogMode = api.GetLogsRequest_BACKLOG_COUNT
+			backlogMode = api.GetLogsRequest_BACKLOG_MODE_COUNT
 			backlogCount = int64(logFlags.backlog)
 		case logFlags.backlog == 0:
-			backlogMode = api.GetLogsRequest_BACKLOG_DISABLE
+			backlogMode = api.GetLogsRequest_BACKLOG_MODE_DISABLE
 		}
 
 		srv, err := nmgmt.Logs(ctx, &api.GetLogsRequest{
diff --git a/metropolis/cli/metroctl/table_node.go b/metropolis/cli/metroctl/table_node.go
index 2f8317d..0ef23d8 100644
--- a/metropolis/cli/metroctl/table_node.go
+++ b/metropolis/cli/metroctl/table_node.go
@@ -23,7 +23,10 @@
 		address = n.Status.ExternalAddress
 	}
 	res.Add("address", address)
-	res.Add("health", n.Health.String())
+
+	health := n.Health.String()
+	health = strings.ReplaceAll(health, "HEALTH_", "")
+	res.Add("health", health)
 
 	var roles []string
 	if n.Roles.ConsensusMember != nil {
@@ -40,11 +43,11 @@
 
 	tpm := "unk"
 	switch n.TpmUsage {
-	case cpb.NodeTPMUsage_NODE_TPM_PRESENT_AND_USED:
+	case cpb.NodeTPMUsage_NODE_TPM_USAGE_PRESENT_AND_USED:
 		tpm = "yes"
-	case cpb.NodeTPMUsage_NODE_TPM_PRESENT_BUT_UNUSED:
+	case cpb.NodeTPMUsage_NODE_TPM_USAGE_PRESENT_BUT_UNUSED:
 		tpm = "unused"
-	case cpb.NodeTPMUsage_NODE_TPM_NOT_PRESENT:
+	case cpb.NodeTPMUsage_NODE_TPM_USAGE_NOT_PRESENT:
 		tpm = "no"
 	}
 	res.Add("tpm", tpm)
