diff --git a/cloud/bmaas/server/agent_callback_service.go b/cloud/bmaas/server/agent_callback_service.go
index cbd912a..b664231 100644
--- a/cloud/bmaas/server/agent_callback_service.go
+++ b/cloud/bmaas/server/agent_callback_service.go
@@ -31,7 +31,7 @@
 	errAgentUnauthenticated = errors.New("machine id or public key unknown")
 )
 
-func (a *agentCallbackService) Heartbeat(ctx context.Context, req *apb.AgentHeartbeatRequest) (*apb.AgentHeartbeatResponse, error) {
+func (a *agentCallbackService) Heartbeat(ctx context.Context, req *apb.HeartbeatRequest) (*apb.HeartbeatResponse, error) {
 	// Extract ED25519 self-signed certificate from client connection.
 	cert, err := rpc.GetPeerCertificate(ctx)
 	if err != nil {
@@ -160,7 +160,7 @@
 		klog.Errorf("Failure during OS installation request retrieval: %v", err)
 	}
 
-	return &apb.AgentHeartbeatResponse{
+	return &apb.HeartbeatResponse{
 		InstallationRequest: installRequest,
 	}, nil
 }
diff --git a/cloud/bmaas/server/agent_callback_service_test.go b/cloud/bmaas/server/agent_callback_service_test.go
index f5d1383..e0ec9d0 100644
--- a/cloud/bmaas/server/agent_callback_service_test.go
+++ b/cloud/bmaas/server/agent_callback_service_test.go
@@ -72,7 +72,7 @@
 		defer conn.Close()
 
 		stub := apb.NewAgentCallbackClient(conn)
-		_, err = stub.Heartbeat(ctx, &apb.AgentHeartbeatRequest{
+		_, err = stub.Heartbeat(ctx, &apb.HeartbeatRequest{
 			MachineId:      mid.String(),
 			HardwareReport: &apb.AgentHardwareReport{},
 		})
@@ -138,7 +138,7 @@
 		t.Fatalf("could not start session")
 	}
 
-	heartbeat := func(mid uuid.UUID, report *apb.OSInstallationReport) (*apb.AgentHeartbeatResponse, error) {
+	heartbeat := func(mid uuid.UUID, report *apb.OSInstallationReport) (*apb.HeartbeatResponse, error) {
 		creds, err := rpc.NewEphemeralCredentials(priv, rpc.WantInsecure())
 		if err != nil {
 			t.Fatalf("could not generate ephemeral credentials: %v", err)
@@ -150,7 +150,7 @@
 		defer conn.Close()
 
 		stub := apb.NewAgentCallbackClient(conn)
-		return stub.Heartbeat(ctx, &apb.AgentHeartbeatRequest{
+		return stub.Heartbeat(ctx, &apb.HeartbeatRequest{
 			MachineId:          mid.String(),
 			HardwareReport:     &apb.AgentHardwareReport{},
 			InstallationReport: report,
diff --git a/cloud/bmaas/server/api/BUILD.bazel b/cloud/bmaas/server/api/BUILD.bazel
index 15d649f..56a9426 100644
--- a/cloud/bmaas/server/api/BUILD.bazel
+++ b/cloud/bmaas/server/api/BUILD.bazel
@@ -7,8 +7,6 @@
     name = "api_proto_lint_test",
     except_rules = [
         "PACKAGE_VERSION_SUFFIX",
-        "RPC_REQUEST_STANDARD_NAME",  # TODO: evaluate correctness
-        "RPC_RESPONSE_STANDARD_NAME",  # TODO: evaluate correctness
         "SERVICE_SUFFIX",
     ],
     protos = [":api_proto"],
diff --git a/cloud/bmaas/server/api/agent.proto b/cloud/bmaas/server/api/agent.proto
index 5bebef5..67ec4a3 100644
--- a/cloud/bmaas/server/api/agent.proto
+++ b/cloud/bmaas/server/api/agent.proto
@@ -17,7 +17,7 @@
   // isn't reactive, so it would have to do its own inner polling to create
   // a stream of updates. To keep things simple, we instead let the agent decide
   // on the cadence of updates it wants to keep up with.
-  rpc Heartbeat(AgentHeartbeatRequest) returns (AgentHeartbeatResponse);
+  rpc Heartbeat(HeartbeatRequest) returns (HeartbeatResponse);
 }
 
 message AgentHardwareReport {
@@ -50,7 +50,7 @@
   }
 }
 
-message AgentHeartbeatRequest {
+message HeartbeatRequest {
   // MachineID that this agent represents. Technically not necessary since
   // keypairs between agents should be unique, but this provides an extra layer
   // of protection against programming bugs.
@@ -90,7 +90,7 @@
   }
 }
 
-message AgentHeartbeatResponse {
+message HeartbeatResponse {
   // If set, the control plane is requesting the installation of an operating
   // system.
   OSInstallationRequest installation_request = 1;
