Move GceMetadata into TastGceTest

This moves the whole message definition as well as the gce_metadata
field into TastGceTest message.
The messages have not been used yet so it should not cause any
problems.

BUG=b:187790569
TEST=./generate.sh --allow-breaking

Change-Id: I5911052b0e2a4618582ea352ada10b94d693b114
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/infra/proto/+/3353676
Reviewed-by: Shao-Chuan Lee <shaochuan@chromium.org>
Reviewed-by: Jaques Clapauch <jaquesc@google.com>
Reviewed-by: Dhanya Ganesh <dhanyaganesh@chromium.org>
Commit-Queue: Rintaro Kuroiwa <rkuroiwa@google.com>
diff --git a/gen/descriptors.json b/gen/descriptors.json
index 78e8457..28588cc 100644
--- a/gen/descriptors.json
+++ b/gen/descriptors.json
@@ -26443,14 +26443,6 @@
               "number": 1,
               "type": "TYPE_MESSAGE",
               "typeName": ".testplans.TastGceTestCfg.TastGceTest"
-            },
-            {
-              "jsonName": "gceMetadata",
-              "label": "LABEL_OPTIONAL",
-              "name": "gce_metadata",
-              "number": 2,
-              "type": "TYPE_MESSAGE",
-              "typeName": ".testplans.TastGceTestCfg.GceMetadata"
             }
           ],
           "name": "TastGceTestCfg",
@@ -26491,49 +26483,68 @@
                   "number": 3,
                   "type": "TYPE_MESSAGE",
                   "typeName": ".testplans.TastGceTestCfg.TastTestExpr"
-                }
-              ],
-              "name": "TastGceTest"
-            },
-            {
-              "field": [
-                {
-                  "jsonName": "project",
-                  "label": "LABEL_OPTIONAL",
-                  "name": "project",
-                  "number": 1,
-                  "type": "TYPE_STRING"
                 },
                 {
-                  "jsonName": "zone",
+                  "jsonName": "gceMetadata",
                   "label": "LABEL_OPTIONAL",
-                  "name": "zone",
-                  "number": 2,
-                  "type": "TYPE_STRING"
-                },
-                {
-                  "jsonName": "machineType",
-                  "label": "LABEL_OPTIONAL",
-                  "name": "machine_type",
-                  "number": 3,
-                  "type": "TYPE_STRING"
-                },
-                {
-                  "jsonName": "network",
-                  "label": "LABEL_OPTIONAL",
-                  "name": "network",
+                  "name": "gce_metadata",
                   "number": 4,
-                  "type": "TYPE_STRING"
-                },
-                {
-                  "jsonName": "subnet",
-                  "label": "LABEL_OPTIONAL",
-                  "name": "subnet",
-                  "number": 5,
-                  "type": "TYPE_STRING"
+                  "type": "TYPE_MESSAGE",
+                  "typeName": ".testplans.TastGceTestCfg.TastGceTest.GceMetadata"
                 }
               ],
-              "name": "GceMetadata"
+              "name": "TastGceTest",
+              "nestedType": [
+                {
+                  "field": [
+                    {
+                      "jsonName": "project",
+                      "label": "LABEL_OPTIONAL",
+                      "name": "project",
+                      "number": 1,
+                      "type": "TYPE_STRING"
+                    },
+                    {
+                      "jsonName": "zone",
+                      "label": "LABEL_OPTIONAL",
+                      "name": "zone",
+                      "number": 2,
+                      "type": "TYPE_STRING"
+                    },
+                    {
+                      "jsonName": "machineType",
+                      "label": "LABEL_OPTIONAL",
+                      "name": "machine_type",
+                      "number": 3,
+                      "type": "TYPE_STRING"
+                    },
+                    {
+                      "jsonName": "network",
+                      "label": "LABEL_OPTIONAL",
+                      "name": "network",
+                      "number": 4,
+                      "type": "TYPE_STRING"
+                    },
+                    {
+                      "jsonName": "subnet",
+                      "label": "LABEL_OPTIONAL",
+                      "name": "subnet",
+                      "number": 5,
+                      "type": "TYPE_STRING"
+                    }
+                  ],
+                  "name": "GceMetadata"
+                }
+              ]
+            }
+          ],
+          "reservedName": [
+            "gce_metadata"
+          ],
+          "reservedRange": [
+            {
+              "end": 3,
+              "start": 2
             }
           ]
         },
diff --git a/go/testplans/target_test_requirements_config.pb.go b/go/testplans/target_test_requirements_config.pb.go
index 37a14f9..c53c147 100644
--- a/go/testplans/target_test_requirements_config.pb.go
+++ b/go/testplans/target_test_requirements_config.pb.go
@@ -252,7 +252,6 @@
 	unknownFields protoimpl.UnknownFields
 
 	TastGceTest []*TastGceTestCfg_TastGceTest `protobuf:"bytes,1,rep,name=tast_gce_test,json=tastGceTest,proto3" json:"tast_gce_test,omitempty"`
-	GceMetadata *TastGceTestCfg_GceMetadata   `protobuf:"bytes,2,opt,name=gce_metadata,json=gceMetadata,proto3" json:"gce_metadata,omitempty"`
 }
 
 func (x *TastGceTestCfg) Reset() {
@@ -294,13 +293,6 @@
 	return nil
 }
 
-func (x *TastGceTestCfg) GetGceMetadata() *TastGceTestCfg_GceMetadata {
-	if x != nil {
-		return x.GceMetadata
-	}
-	return nil
-}
-
 type VmTestCfg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -900,6 +892,8 @@
 	// is passed directly to the 'tast run' command. See
 	// https://goo.gl/UPNEgT for info about test expressions.
 	TastTestExpr []*TastGceTestCfg_TastTestExpr `protobuf:"bytes,3,rep,name=tast_test_expr,json=tastTestExpr,proto3" json:"tast_test_expr,omitempty"`
+	// GCE instace metadata to run the tests on.
+	GceMetadata *TastGceTestCfg_TastGceTest_GceMetadata `protobuf:"bytes,4,opt,name=gce_metadata,json=gceMetadata,proto3" json:"gce_metadata,omitempty"`
 }
 
 func (x *TastGceTestCfg_TastGceTest) Reset() {
@@ -955,9 +949,16 @@
 	return nil
 }
 
+func (x *TastGceTestCfg_TastGceTest) GetGceMetadata() *TastGceTestCfg_TastGceTest_GceMetadata {
+	if x != nil {
+		return x.GceMetadata
+	}
+	return nil
+}
+
 // This message should be used to fill
 // recipes.chromeos.gce_test.GceTestProperties.GceMetadata.
-type TastGceTestCfg_GceMetadata struct {
+type TastGceTestCfg_TastGceTest_GceMetadata struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -974,8 +975,8 @@
 	Subnet string `protobuf:"bytes,5,opt,name=subnet,proto3" json:"subnet,omitempty"`
 }
 
-func (x *TastGceTestCfg_GceMetadata) Reset() {
-	*x = TastGceTestCfg_GceMetadata{}
+func (x *TastGceTestCfg_TastGceTest_GceMetadata) Reset() {
+	*x = TastGceTestCfg_TastGceTest_GceMetadata{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_testplans_target_test_requirements_config_proto_msgTypes[14]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -983,13 +984,13 @@
 	}
 }
 
-func (x *TastGceTestCfg_GceMetadata) String() string {
+func (x *TastGceTestCfg_TastGceTest_GceMetadata) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*TastGceTestCfg_GceMetadata) ProtoMessage() {}
+func (*TastGceTestCfg_TastGceTest_GceMetadata) ProtoMessage() {}
 
-func (x *TastGceTestCfg_GceMetadata) ProtoReflect() protoreflect.Message {
+func (x *TastGceTestCfg_TastGceTest_GceMetadata) ProtoReflect() protoreflect.Message {
 	mi := &file_testplans_target_test_requirements_config_proto_msgTypes[14]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1001,40 +1002,40 @@
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use TastGceTestCfg_GceMetadata.ProtoReflect.Descriptor instead.
-func (*TastGceTestCfg_GceMetadata) Descriptor() ([]byte, []int) {
-	return file_testplans_target_test_requirements_config_proto_rawDescGZIP(), []int{3, 2}
+// Deprecated: Use TastGceTestCfg_TastGceTest_GceMetadata.ProtoReflect.Descriptor instead.
+func (*TastGceTestCfg_TastGceTest_GceMetadata) Descriptor() ([]byte, []int) {
+	return file_testplans_target_test_requirements_config_proto_rawDescGZIP(), []int{3, 1, 0}
 }
 
-func (x *TastGceTestCfg_GceMetadata) GetProject() string {
+func (x *TastGceTestCfg_TastGceTest_GceMetadata) GetProject() string {
 	if x != nil {
 		return x.Project
 	}
 	return ""
 }
 
-func (x *TastGceTestCfg_GceMetadata) GetZone() string {
+func (x *TastGceTestCfg_TastGceTest_GceMetadata) GetZone() string {
 	if x != nil {
 		return x.Zone
 	}
 	return ""
 }
 
-func (x *TastGceTestCfg_GceMetadata) GetMachineType() string {
+func (x *TastGceTestCfg_TastGceTest_GceMetadata) GetMachineType() string {
 	if x != nil {
 		return x.MachineType
 	}
 	return ""
 }
 
-func (x *TastGceTestCfg_GceMetadata) GetNetwork() string {
+func (x *TastGceTestCfg_TastGceTest_GceMetadata) GetNetwork() string {
 	if x != nil {
 		return x.Network
 	}
 	return ""
 }
 
-func (x *TastGceTestCfg_GceMetadata) GetSubnet() string {
+func (x *TastGceTestCfg_TastGceTest_GceMetadata) GetSubnet() string {
 	if x != nil {
 		return x.Subnet
 	}
@@ -1177,40 +1178,42 @@
 	0x2e, 0x54, 0x61, 0x73, 0x74, 0x56, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x2e, 0x54,
 	0x61, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x52, 0x0c, 0x74, 0x61, 0x73,
 	0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22,
-	0x96, 0x04, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x74, 0x47, 0x63, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43,
+	0xb6, 0x04, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x74, 0x47, 0x63, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43,
 	0x66, 0x67, 0x12, 0x49, 0x0a, 0x0d, 0x74, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x63, 0x65, 0x5f, 0x74,
 	0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x73, 0x74,
 	0x70, 0x6c, 0x61, 0x6e, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x74, 0x47, 0x63, 0x65, 0x54, 0x65, 0x73,
 	0x74, 0x43, 0x66, 0x67, 0x2e, 0x54, 0x61, 0x73, 0x74, 0x47, 0x63, 0x65, 0x54, 0x65, 0x73, 0x74,
-	0x52, 0x0b, 0x74, 0x61, 0x73, 0x74, 0x47, 0x63, 0x65, 0x54, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a,
-	0x0c, 0x67, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x2e,
-	0x54, 0x61, 0x73, 0x74, 0x47, 0x63, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x2e, 0x47,
-	0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x67, 0x63, 0x65, 0x4d,
-	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x2b, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x74, 0x54,
-	0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f,
-	0x65, 0x78, 0x70, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74,
-	0x45, 0x78, 0x70, 0x72, 0x1a, 0xae, 0x01, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x74, 0x47, 0x63, 0x65,
-	0x54, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73,
-	0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
-	0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x75, 0x69, 0x74,
-	0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75,
-	0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0e, 0x74, 0x61, 0x73, 0x74, 0x5f,
-	0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
-	0x26, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x74,
-	0x47, 0x63, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x2e, 0x54, 0x61, 0x73, 0x74, 0x54,
-	0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x74, 0x54, 0x65, 0x73,
-	0x74, 0x45, 0x78, 0x70, 0x72, 0x1a, 0x90, 0x01, 0x0a, 0x0b, 0x47, 0x63, 0x65, 0x4d, 0x65, 0x74,
-	0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12,
-	0x12, 0x0a, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x7a,
-	0x6f, 0x6e, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74,
-	0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69,
-	0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
-	0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
-	0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x22, 0xaa, 0x01, 0x0a, 0x09, 0x56, 0x6d, 0x54,
+	0x52, 0x0b, 0x74, 0x61, 0x73, 0x74, 0x47, 0x63, 0x65, 0x54, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x0a,
+	0x0c, 0x54, 0x61, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x1b, 0x0a,
+	0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x1a, 0x97, 0x03, 0x0a, 0x0b, 0x54,
+	0x61, 0x73, 0x74, 0x47, 0x63, 0x65, 0x54, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x6f,
+	0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x73,
+	0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x75, 0x69, 0x74, 0x65,
+	0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x1d,
+	0x0a, 0x0a, 0x73, 0x75, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x69, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a,
+	0x0e, 0x74, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18,
+	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e,
+	0x73, 0x2e, 0x54, 0x61, 0x73, 0x74, 0x47, 0x63, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67,
+	0x2e, 0x54, 0x61, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x52, 0x0c, 0x74,
+	0x61, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x54, 0x0a, 0x0c, 0x67,
+	0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x31, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x2e, 0x54, 0x61,
+	0x73, 0x74, 0x47, 0x63, 0x65, 0x54, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x2e, 0x54, 0x61, 0x73,
+	0x74, 0x47, 0x63, 0x65, 0x54, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61,
+	0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x67, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+	0x61, 0x1a, 0x90, 0x01, 0x0a, 0x0b, 0x47, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+	0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x7a,
+	0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x12,
+	0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79,
+	0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x04, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x16, 0x0a, 0x06,
+	0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75,
+	0x62, 0x6e, 0x65, 0x74, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x0c, 0x67, 0x63, 0x65, 0x5f,
+	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xaa, 0x01, 0x0a, 0x09, 0x56, 0x6d, 0x54,
 	0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x12, 0x34, 0x0a, 0x07, 0x76, 0x6d, 0x5f, 0x74, 0x65, 0x73,
 	0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c,
 	0x61, 0x6e, 0x73, 0x2e, 0x56, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x2e, 0x56, 0x6d,
@@ -1281,25 +1284,25 @@
 var file_testplans_target_test_requirements_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
 var file_testplans_target_test_requirements_config_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
 var file_testplans_target_test_requirements_config_proto_goTypes = []interface{}{
-	(HwTestCfg_HwTestSuiteType)(0),         // 0: testplans.HwTestCfg.HwTestSuiteType
-	(*TestSuiteCommon)(nil),                // 1: testplans.TestSuiteCommon
-	(*HwTestCfg)(nil),                      // 2: testplans.HwTestCfg
-	(*TastVmTestCfg)(nil),                  // 3: testplans.TastVmTestCfg
-	(*TastGceTestCfg)(nil),                 // 4: testplans.TastGceTestCfg
-	(*VmTestCfg)(nil),                      // 5: testplans.VmTestCfg
-	(*TargetCriteria)(nil),                 // 6: testplans.TargetCriteria
-	(*PerTargetTestRequirements)(nil),      // 7: testplans.PerTargetTestRequirements
-	(*TargetTestRequirementsCfg)(nil),      // 8: testplans.TargetTestRequirementsCfg
-	(*TestSuiteCommon_TestSuiteGroup)(nil), // 9: testplans.TestSuiteCommon.TestSuiteGroup
-	(*HwTestCfg_HwTest)(nil),               // 10: testplans.HwTestCfg.HwTest
-	(*TastVmTestCfg_TastTestExpr)(nil),     // 11: testplans.TastVmTestCfg.TastTestExpr
-	(*TastVmTestCfg_TastVmTest)(nil),       // 12: testplans.TastVmTestCfg.TastVmTest
-	(*TastGceTestCfg_TastTestExpr)(nil),    // 13: testplans.TastGceTestCfg.TastTestExpr
-	(*TastGceTestCfg_TastGceTest)(nil),     // 14: testplans.TastGceTestCfg.TastGceTest
-	(*TastGceTestCfg_GceMetadata)(nil),     // 15: testplans.TastGceTestCfg.GceMetadata
-	(*VmTestCfg_VmTest)(nil),               // 16: testplans.VmTestCfg.VmTest
-	(*wrapperspb.BoolValue)(nil),           // 17: google.protobuf.BoolValue
-	(lab.LicenseType)(0),                   // 18: lab.LicenseType
+	(HwTestCfg_HwTestSuiteType)(0),                 // 0: testplans.HwTestCfg.HwTestSuiteType
+	(*TestSuiteCommon)(nil),                        // 1: testplans.TestSuiteCommon
+	(*HwTestCfg)(nil),                              // 2: testplans.HwTestCfg
+	(*TastVmTestCfg)(nil),                          // 3: testplans.TastVmTestCfg
+	(*TastGceTestCfg)(nil),                         // 4: testplans.TastGceTestCfg
+	(*VmTestCfg)(nil),                              // 5: testplans.VmTestCfg
+	(*TargetCriteria)(nil),                         // 6: testplans.TargetCriteria
+	(*PerTargetTestRequirements)(nil),              // 7: testplans.PerTargetTestRequirements
+	(*TargetTestRequirementsCfg)(nil),              // 8: testplans.TargetTestRequirementsCfg
+	(*TestSuiteCommon_TestSuiteGroup)(nil),         // 9: testplans.TestSuiteCommon.TestSuiteGroup
+	(*HwTestCfg_HwTest)(nil),                       // 10: testplans.HwTestCfg.HwTest
+	(*TastVmTestCfg_TastTestExpr)(nil),             // 11: testplans.TastVmTestCfg.TastTestExpr
+	(*TastVmTestCfg_TastVmTest)(nil),               // 12: testplans.TastVmTestCfg.TastVmTest
+	(*TastGceTestCfg_TastTestExpr)(nil),            // 13: testplans.TastGceTestCfg.TastTestExpr
+	(*TastGceTestCfg_TastGceTest)(nil),             // 14: testplans.TastGceTestCfg.TastGceTest
+	(*TastGceTestCfg_TastGceTest_GceMetadata)(nil), // 15: testplans.TastGceTestCfg.TastGceTest.GceMetadata
+	(*VmTestCfg_VmTest)(nil),                       // 16: testplans.VmTestCfg.VmTest
+	(*wrapperspb.BoolValue)(nil),                   // 17: google.protobuf.BoolValue
+	(lab.LicenseType)(0),                           // 18: lab.LicenseType
 }
 var file_testplans_target_test_requirements_config_proto_depIdxs = []int32{
 	17, // 0: testplans.TestSuiteCommon.critical:type_name -> google.protobuf.BoolValue
@@ -1307,21 +1310,21 @@
 	10, // 2: testplans.HwTestCfg.hw_test:type_name -> testplans.HwTestCfg.HwTest
 	12, // 3: testplans.TastVmTestCfg.tast_vm_test:type_name -> testplans.TastVmTestCfg.TastVmTest
 	14, // 4: testplans.TastGceTestCfg.tast_gce_test:type_name -> testplans.TastGceTestCfg.TastGceTest
-	15, // 5: testplans.TastGceTestCfg.gce_metadata:type_name -> testplans.TastGceTestCfg.GceMetadata
-	16, // 6: testplans.VmTestCfg.vm_test:type_name -> testplans.VmTestCfg.VmTest
-	6,  // 7: testplans.PerTargetTestRequirements.target_criteria:type_name -> testplans.TargetCriteria
-	2,  // 8: testplans.PerTargetTestRequirements.hw_test_cfg:type_name -> testplans.HwTestCfg
-	5,  // 9: testplans.PerTargetTestRequirements.vm_test_cfg:type_name -> testplans.VmTestCfg
-	3,  // 10: testplans.PerTargetTestRequirements.direct_tast_vm_test_cfg:type_name -> testplans.TastVmTestCfg
-	4,  // 11: testplans.PerTargetTestRequirements.tast_gce_test_cfg:type_name -> testplans.TastGceTestCfg
-	7,  // 12: testplans.TargetTestRequirementsCfg.per_target_test_requirements:type_name -> testplans.PerTargetTestRequirements
-	1,  // 13: testplans.HwTestCfg.HwTest.common:type_name -> testplans.TestSuiteCommon
-	0,  // 14: testplans.HwTestCfg.HwTest.hw_test_suite_type:type_name -> testplans.HwTestCfg.HwTestSuiteType
-	18, // 15: testplans.HwTestCfg.HwTest.licenses:type_name -> lab.LicenseType
-	1,  // 16: testplans.TastVmTestCfg.TastVmTest.common:type_name -> testplans.TestSuiteCommon
-	11, // 17: testplans.TastVmTestCfg.TastVmTest.tast_test_expr:type_name -> testplans.TastVmTestCfg.TastTestExpr
-	1,  // 18: testplans.TastGceTestCfg.TastGceTest.common:type_name -> testplans.TestSuiteCommon
-	13, // 19: testplans.TastGceTestCfg.TastGceTest.tast_test_expr:type_name -> testplans.TastGceTestCfg.TastTestExpr
+	16, // 5: testplans.VmTestCfg.vm_test:type_name -> testplans.VmTestCfg.VmTest
+	6,  // 6: testplans.PerTargetTestRequirements.target_criteria:type_name -> testplans.TargetCriteria
+	2,  // 7: testplans.PerTargetTestRequirements.hw_test_cfg:type_name -> testplans.HwTestCfg
+	5,  // 8: testplans.PerTargetTestRequirements.vm_test_cfg:type_name -> testplans.VmTestCfg
+	3,  // 9: testplans.PerTargetTestRequirements.direct_tast_vm_test_cfg:type_name -> testplans.TastVmTestCfg
+	4,  // 10: testplans.PerTargetTestRequirements.tast_gce_test_cfg:type_name -> testplans.TastGceTestCfg
+	7,  // 11: testplans.TargetTestRequirementsCfg.per_target_test_requirements:type_name -> testplans.PerTargetTestRequirements
+	1,  // 12: testplans.HwTestCfg.HwTest.common:type_name -> testplans.TestSuiteCommon
+	0,  // 13: testplans.HwTestCfg.HwTest.hw_test_suite_type:type_name -> testplans.HwTestCfg.HwTestSuiteType
+	18, // 14: testplans.HwTestCfg.HwTest.licenses:type_name -> lab.LicenseType
+	1,  // 15: testplans.TastVmTestCfg.TastVmTest.common:type_name -> testplans.TestSuiteCommon
+	11, // 16: testplans.TastVmTestCfg.TastVmTest.tast_test_expr:type_name -> testplans.TastVmTestCfg.TastTestExpr
+	1,  // 17: testplans.TastGceTestCfg.TastGceTest.common:type_name -> testplans.TestSuiteCommon
+	13, // 18: testplans.TastGceTestCfg.TastGceTest.tast_test_expr:type_name -> testplans.TastGceTestCfg.TastTestExpr
+	15, // 19: testplans.TastGceTestCfg.TastGceTest.gce_metadata:type_name -> testplans.TastGceTestCfg.TastGceTest.GceMetadata
 	1,  // 20: testplans.VmTestCfg.VmTest.common:type_name -> testplans.TestSuiteCommon
 	21, // [21:21] is the sub-list for method output_type
 	21, // [21:21] is the sub-list for method input_type
@@ -1505,7 +1508,7 @@
 			}
 		}
 		file_testplans_target_test_requirements_config_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TastGceTestCfg_GceMetadata); i {
+			switch v := v.(*TastGceTestCfg_TastGceTest_GceMetadata); i {
 			case 0:
 				return &v.state
 			case 1:
diff --git a/src/testplans/target_test_requirements_config.proto b/src/testplans/target_test_requirements_config.proto
index fde0d2a..28d17a8 100644
--- a/src/testplans/target_test_requirements_config.proto
+++ b/src/testplans/target_test_requirements_config.proto
@@ -96,12 +96,34 @@
 }
 
 message TastGceTestCfg {
+  reserved 2;
+  reserved "gce_metadata";
+
   message TastTestExpr {
     // A single tast test expression. See https://goo.gl/UPNEgT
     string test_expr = 1;
   }
 
   message TastGceTest {
+    // This message should be used to fill
+    // recipes.chromeos.gce_test.GceTestProperties.GceMetadata.
+    message GceMetadata {
+      // The GCE project in which we create GCE images/instances for test.
+      string project = 1;
+
+      // The GCE zone in which we create GCE instances for test.
+      string zone = 2;
+
+      // The machine type of the GCE instance (e.g. n2-standard-8).
+      string machine_type = 3;
+
+      // The network the GCE instance should be part of.
+      string network = 4;
+
+      // The subnet the GCE instance should be part of.
+      string subnet = 5;
+    }
+
     TestSuiteCommon common = 1;
 
     // String containing short human-readable name describing test suite.
@@ -110,29 +132,11 @@
     // is passed directly to the 'tast run' command. See
     // https://goo.gl/UPNEgT for info about test expressions.
     repeated TastGceTestCfg.TastTestExpr tast_test_expr = 3;
-  }
-
-  // This message should be used to fill
-  // recipes.chromeos.gce_test.GceTestProperties.GceMetadata.
-  message GceMetadata {
-    // The GCE project in which we create GCE images/instances for test.
-    string project = 1;
-
-    // The GCE zone in which we create GCE instances for test.
-    string zone = 2;
-
-    // The machine type of the GCE instance (e.g. n2-standard-8).
-    string machine_type = 3;
-
-    // The network the GCE instance should be part of.
-    string network = 4;
-
-    // The subnet the GCE instance should be part of.
-    string subnet = 5;
+    // GCE instace metadata to run the tests on.
+    GceMetadata gce_metadata = 4;
   }
 
   repeated TastGceTest tast_gce_test = 1;
-  GceMetadata gce_metadata = 2;
 }
 
 message VmTestCfg {