Merge branch 'main' into avm99963-monorail

GitOrigin-RevId: 1412a00daa7379d93b6872e9ef7da0a45118b180
diff --git a/api/v3/api_proto/projects.proto b/api/v3/api_proto/projects.proto
index d902067..a3a9fc1 100644
--- a/api/v3/api_proto/projects.proto
+++ b/api/v3/api_proto/projects.proto
@@ -31,6 +31,14 @@
   rpc CreateFieldDef (CreateFieldDefRequest) returns (FieldDef) {}
 
   // status: ALPHA
+  // Gets a ComponentDef given the reference.
+  //
+  // Raises:
+  //   INVALID_INPUT if the request is invalid.
+  //   NOT_FOUND if the parent project or the component is not found.
+  rpc GetComponentDef (GetComponentDefRequest) returns (ComponentDef) {}
+
+  // status: ALPHA
   // Creates a new ComponentDef.
   //
   // Raises:
@@ -82,6 +90,14 @@
   FieldDef fielddef = 2 [ (google.api.field_behavior) = REQUIRED ];
 }
 
+// Request message for GetComponentDef method.
+// Next available tag: 2
+message GetComponentDefRequest {
+  string name = 1 [
+    (google.api.resource_reference) = { type: "api.crbug.com/ComponentDef" },
+    (google.api.field_behavior) = REQUIRED ];
+}
+
 // Request message for CreateComponentDef method.
 // Next available tag: 3
 message CreateComponentDefRequest {