test: Breaking change to invocation API

Simplify the API to allow only one request in an invocation.
- Drop nested collection of requests in invocations
- Flatten references to Invocation.request.name => Invocation.name
- Drop temp_dir from environment, as RTDs are free to use their
  containerized filesystem as they wish.

BUG=None
TEST=./generate.sh

Change-Id: I4405108dd7a3e4ba8ef554fce3ca9670f7303a46
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/config/+/2488091
Commit-Queue: Prathmesh Prabhu <pprabhu@google.com>
Commit-Queue: Sean Abraham <seanabraham@chromium.org>
Auto-Submit: Prathmesh Prabhu <pprabhu@google.com>
Reviewed-by: Sean Abraham <seanabraham@chromium.org>
diff --git a/go/api/test/rtd/v1/invocation.pb.go b/go/api/test/rtd/v1/invocation.pb.go
index bea4156..717f1d9 100644
--- a/go/api/test/rtd/v1/invocation.pb.go
+++ b/go/api/test/rtd/v1/invocation.pb.go
@@ -25,24 +25,41 @@
 // TODO(crbug.com/1051691): Link to a reference implementation of Remote Test
 // Server & Remote Test Driver.
 type Invocation struct {
+	// A unique name for this invocation.
+	//
+	// ProgressSink methods require the inclusion of this value in reported
+	// results. This provides additional safety from leaked Remote Test Driver
+	// processes in the case that a single container is used to run multiple
+	// invocations sequentially.
+	//
+	// Remote Test Drivers are recommended to use name as the opaque tag
+	// required by the Test Lab Services API. Thus, name SHOULD be unique across
+	// all invocations to simplify analytics. UUIDs are recommended.
+	//
+	// See also:
+	//   Test Lab Services API: tls/README.md
+	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	// Progress sink to be used to report progress of the Remote Test Driver
 	// invocation to the surrounding Remote Test Server.
-	ProgressSinkClientConfig *ProgressSinkClientConfig `protobuf:"bytes,1,opt,name=progress_sink_client_config,json=progressSinkClientConfig,proto3" json:"progress_sink_client_config,omitempty"`
-	// Set of DUTs used for each of the requests in this invocation.
-	//
-	// Contains more than one dut if the test execution is sharded.
-	Duts []*DUT `protobuf:"bytes,2,rep,name=duts,proto3" json:"duts,omitempty"`
-	// Smallest unit of an invocation request for which results MUST be reported.
-	//
-	// An invocation MUST execute all requests serially in-order. This assumption
-	// is necessary for future support of test sequences in test plans.
-	Requests []*Request `protobuf:"bytes,3,rep,name=requests,proto3" json:"requests,omitempty"`
+	ProgressSinkClientConfig *ProgressSinkClientConfig `protobuf:"bytes,2,opt,name=progress_sink_client_config,json=progressSinkClientConfig,proto3" json:"progress_sink_client_config,omitempty"`
 	// Configuration information for using Test Lab Services to interact
 	// with DUTs and their peripherals.
-	TestLabServicesConfig *TLSClientConfig `protobuf:"bytes,4,opt,name=test_lab_services_config,json=testLabServicesConfig,proto3" json:"test_lab_services_config,omitempty"`
-	XXX_NoUnkeyedLiteral  struct{}         `json:"-"`
-	XXX_unrecognized      []byte           `json:"-"`
-	XXX_sizecache         int32            `json:"-"`
+	TestLabServicesConfig *TLSClientConfig `protobuf:"bytes,3,opt,name=test_lab_services_config,json=testLabServicesConfig,proto3" json:"test_lab_services_config,omitempty"`
+	// Set of DUTs usable in this invocation.
+	//
+	// Contains more than one dut if the test execution is sharded.
+	Duts []*DUT `protobuf:"bytes,4,rep,name=duts,proto3" json:"duts,omitempty"`
+	// The test to execute, identified by the test.metadata.Test.name field.
+	//
+	// Note that the invocation does not contain a reference to the Remote Test
+	// Driver to use.
+	Test string `protobuf:"bytes,5,opt,name=test,proto3" json:"test,omitempty"`
+	// Environment configuration set by the Remote Test Server for a specific
+	// invocation of the Remote Test Driver.
+	Environment          *Invocation_Environment `protobuf:"bytes,6,opt,name=environment,proto3" json:"environment,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
+	XXX_unrecognized     []byte                  `json:"-"`
+	XXX_sizecache        int32                   `json:"-"`
 }
 
 func (m *Invocation) Reset()         { *m = Invocation{} }
@@ -70,6 +87,13 @@
 
 var xxx_messageInfo_Invocation proto.InternalMessageInfo
 
+func (m *Invocation) GetName() string {
+	if m != nil {
+		return m.Name
+	}
+	return ""
+}
+
 func (m *Invocation) GetProgressSinkClientConfig() *ProgressSinkClientConfig {
 	if m != nil {
 		return m.ProgressSinkClientConfig
@@ -77,6 +101,13 @@
 	return nil
 }
 
+func (m *Invocation) GetTestLabServicesConfig() *TLSClientConfig {
+	if m != nil {
+		return m.TestLabServicesConfig
+	}
+	return nil
+}
+
 func (m *Invocation) GetDuts() []*DUT {
 	if m != nil {
 		return m.Duts
@@ -84,18 +115,71 @@
 	return nil
 }
 
-func (m *Invocation) GetRequests() []*Request {
+func (m *Invocation) GetTest() string {
 	if m != nil {
-		return m.Requests
+		return m.Test
+	}
+	return ""
+}
+
+func (m *Invocation) GetEnvironment() *Invocation_Environment {
+	if m != nil {
+		return m.Environment
 	}
 	return nil
 }
 
-func (m *Invocation) GetTestLabServicesConfig() *TLSClientConfig {
+// Per-invocation Remote Test Server environment configuration.
+type Invocation_Environment struct {
+	// Absolute path to a directory for writing arbitrary files.
+	//
+	// This directory MUST be created by Remote Test Server prior to the Remote
+	// Test Driver invocation.
+	//
+	// * Remote Test Drivers SHOULD use
+	// test.invocation.ProgressClient.ReportLog() to report logs.
+	// * Remote Test Drivers SHOULD use
+	// test.invocation.ProgressClient.ArchiveArtifact() to archive critical
+	// artifacts.
+	//
+	// Remote Test Servers may archive the work_dir contents to non-ephemeral
+	// storage as a best effort asynchronous task.
+	WorkDir              string   `protobuf:"bytes,1,opt,name=work_dir,json=workDir,proto3" json:"work_dir,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *Invocation_Environment) Reset()         { *m = Invocation_Environment{} }
+func (m *Invocation_Environment) String() string { return proto.CompactTextString(m) }
+func (*Invocation_Environment) ProtoMessage()    {}
+func (*Invocation_Environment) Descriptor() ([]byte, []int) {
+	return fileDescriptor_2aad16878b22eddc, []int{0, 0}
+}
+
+func (m *Invocation_Environment) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Invocation_Environment.Unmarshal(m, b)
+}
+func (m *Invocation_Environment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Invocation_Environment.Marshal(b, m, deterministic)
+}
+func (m *Invocation_Environment) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Invocation_Environment.Merge(m, src)
+}
+func (m *Invocation_Environment) XXX_Size() int {
+	return xxx_messageInfo_Invocation_Environment.Size(m)
+}
+func (m *Invocation_Environment) XXX_DiscardUnknown() {
+	xxx_messageInfo_Invocation_Environment.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Invocation_Environment proto.InternalMessageInfo
+
+func (m *Invocation_Environment) GetWorkDir() string {
 	if m != nil {
-		return m.TestLabServicesConfig
+		return m.WorkDir
 	}
-	return nil
+	return ""
 }
 
 // Contains all configuration data required to interact with a single device
@@ -145,147 +229,6 @@
 	return ""
 }
 
-// Request for execution of a single test.metadata.Test
-type Request struct {
-	// name MUST be unique across all requests in this invocation.
-	//
-	// Remote Test Drivers are recommended to use name as the opaque tag
-	// required by the Test Lab Services API. Thus, name SHOULD be unique across
-	// all invocations to simplify analytics. UUIDs are recommended.
-	//
-	// See also:
-	//   Test Lab Services API: tls/README.md
-	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	// The test to execute, identified by the test.metadata.Test.name field.
-	//
-	// Note that the request does not contain a reference to the Remote Test
-	// Driver to use, as the request is an input to the Remote Test Driver
-	// invocation.
-	Test string `protobuf:"bytes,2,opt,name=test,proto3" json:"test,omitempty"`
-	// Environment configuration set by the Remote Test Server for a specific
-	// request of the Remote Test Driver.
-	Environment          *Request_Environment `protobuf:"bytes,3,opt,name=environment,proto3" json:"environment,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
-	XXX_unrecognized     []byte               `json:"-"`
-	XXX_sizecache        int32                `json:"-"`
-}
-
-func (m *Request) Reset()         { *m = Request{} }
-func (m *Request) String() string { return proto.CompactTextString(m) }
-func (*Request) ProtoMessage()    {}
-func (*Request) Descriptor() ([]byte, []int) {
-	return fileDescriptor_2aad16878b22eddc, []int{2}
-}
-
-func (m *Request) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Request.Unmarshal(m, b)
-}
-func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Request.Marshal(b, m, deterministic)
-}
-func (m *Request) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Request.Merge(m, src)
-}
-func (m *Request) XXX_Size() int {
-	return xxx_messageInfo_Request.Size(m)
-}
-func (m *Request) XXX_DiscardUnknown() {
-	xxx_messageInfo_Request.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Request proto.InternalMessageInfo
-
-func (m *Request) GetName() string {
-	if m != nil {
-		return m.Name
-	}
-	return ""
-}
-
-func (m *Request) GetTest() string {
-	if m != nil {
-		return m.Test
-	}
-	return ""
-}
-
-func (m *Request) GetEnvironment() *Request_Environment {
-	if m != nil {
-		return m.Environment
-	}
-	return nil
-}
-
-// Per-request Remote Test Server environment configuration.
-type Request_Environment struct {
-	// Absolute path to a directory for writing arbitrary files.
-	//
-	// This directory MUST be created by Remote Test Server prior to the Remote
-	// Test Driver invocation.
-	//
-	// * Remote Test Drivers SHOULD use
-	// test.invocation.ProgressClient.ReportLog() to report logs.
-	// * Remote Test Drivers SHOULD use
-	// test.invocation.ProgressClient.ArchiveArtifact() to archive critical
-	// artifacts.
-	//
-	// Remote Test Servers may archive the work_dir contents to non-ephemeral
-	// storage as a best effort asynchronous task.
-	WorkDir string `protobuf:"bytes,1,opt,name=work_dir,json=workDir,proto3" json:"work_dir,omitempty"`
-	// Absolute path to a directory for writing temporary files.
-	//
-	// This directory MUST be created by Remote Test Server prior to the Remote
-	// Test Driver invocation.
-	//
-	// Remote Test Drivers MUST use this directory for temporary files and MUST
-	// NOT attempt to use defaults like /tmp or the TMP environment variable.
-	//
-	// See also: Environment.work_dir
-	TempDir              string   `protobuf:"bytes,2,opt,name=temp_dir,json=tempDir,proto3" json:"temp_dir,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Request_Environment) Reset()         { *m = Request_Environment{} }
-func (m *Request_Environment) String() string { return proto.CompactTextString(m) }
-func (*Request_Environment) ProtoMessage()    {}
-func (*Request_Environment) Descriptor() ([]byte, []int) {
-	return fileDescriptor_2aad16878b22eddc, []int{2, 0}
-}
-
-func (m *Request_Environment) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Request_Environment.Unmarshal(m, b)
-}
-func (m *Request_Environment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Request_Environment.Marshal(b, m, deterministic)
-}
-func (m *Request_Environment) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Request_Environment.Merge(m, src)
-}
-func (m *Request_Environment) XXX_Size() int {
-	return xxx_messageInfo_Request_Environment.Size(m)
-}
-func (m *Request_Environment) XXX_DiscardUnknown() {
-	xxx_messageInfo_Request_Environment.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Request_Environment proto.InternalMessageInfo
-
-func (m *Request_Environment) GetWorkDir() string {
-	if m != nil {
-		return m.WorkDir
-	}
-	return ""
-}
-
-func (m *Request_Environment) GetTempDir() string {
-	if m != nil {
-		return m.TempDir
-	}
-	return ""
-}
-
 // Configuration information required for using Test Lab & Wiring Services.
 type TLSClientConfig struct {
 	// Address where Test Lab Services is reachable.
@@ -314,7 +257,7 @@
 func (m *TLSClientConfig) String() string { return proto.CompactTextString(m) }
 func (*TLSClientConfig) ProtoMessage()    {}
 func (*TLSClientConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_2aad16878b22eddc, []int{3}
+	return fileDescriptor_2aad16878b22eddc, []int{2}
 }
 
 func (m *TLSClientConfig) XXX_Unmarshal(b []byte) error {
@@ -365,9 +308,8 @@
 
 func init() {
 	proto.RegisterType((*Invocation)(nil), "chromiumos.config.api.test.rtd.v1.Invocation")
+	proto.RegisterType((*Invocation_Environment)(nil), "chromiumos.config.api.test.rtd.v1.Invocation.Environment")
 	proto.RegisterType((*DUT)(nil), "chromiumos.config.api.test.rtd.v1.DUT")
-	proto.RegisterType((*Request)(nil), "chromiumos.config.api.test.rtd.v1.Request")
-	proto.RegisterType((*Request_Environment)(nil), "chromiumos.config.api.test.rtd.v1.Request.Environment")
 	proto.RegisterType((*TLSClientConfig)(nil), "chromiumos.config.api.test.rtd.v1.TLSClientConfig")
 }
 
@@ -376,34 +318,32 @@
 }
 
 var fileDescriptor_2aad16878b22eddc = []byte{
-	// 463 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xd1, 0x8b, 0xd3, 0x4e,
-	0x10, 0xc7, 0x69, 0xd3, 0xdf, 0xaf, 0xe7, 0x46, 0x10, 0x16, 0x84, 0x78, 0x3e, 0x58, 0xfb, 0xa0,
-	0x87, 0x0f, 0x1b, 0xaf, 0x82, 0xc8, 0xdd, 0x93, 0x36, 0x0a, 0xc2, 0x21, 0x47, 0xda, 0x03, 0xf1,
-	0x65, 0x49, 0x93, 0x35, 0x2e, 0x4d, 0x76, 0xe3, 0xec, 0x24, 0x01, 0xff, 0x03, 0xff, 0x3b, 0xff,
-	0x1d, 0xdf, 0x64, 0x77, 0xdb, 0x5e, 0xef, 0x44, 0xae, 0x6f, 0xd9, 0x99, 0xf9, 0x7c, 0x67, 0xe6,
-	0x4b, 0x86, 0xcc, 0xf2, 0x6f, 0xa0, 0x6b, 0xd9, 0xd6, 0xda, 0xc4, 0xb9, 0x56, 0x5f, 0x65, 0x19,
-	0x67, 0x8d, 0x8c, 0x51, 0x18, 0x8c, 0x01, 0x8b, 0xb8, 0x3b, 0x8d, 0xa5, 0xea, 0x74, 0x9e, 0xa1,
-	0xd4, 0x8a, 0x35, 0xa0, 0x51, 0xd3, 0xa7, 0xd7, 0x0c, 0xf3, 0x0c, 0xcb, 0x1a, 0xc9, 0x2c, 0xc3,
-	0x00, 0x0b, 0xd6, 0x9d, 0x1e, 0xbf, 0xbc, 0x5b, 0xb6, 0x01, 0x5d, 0x82, 0x30, 0xc6, 0x8b, 0x4e,
-	0x7f, 0x0f, 0x09, 0xf9, 0xb8, 0xeb, 0x44, 0x7f, 0x90, 0xc7, 0xdb, 0x02, 0x6e, 0xa4, 0x5a, 0xf3,
-	0xbc, 0x92, 0x42, 0x21, 0xf7, 0x62, 0xd1, 0x60, 0x32, 0x38, 0x09, 0x67, 0xe7, 0xec, 0xce, 0x49,
-	0xd8, 0xe5, 0x46, 0x65, 0x21, 0xd5, 0x7a, 0xee, 0x34, 0xe6, 0xae, 0x30, 0x8d, 0x9a, 0x7f, 0x64,
-	0xe8, 0x19, 0x19, 0x15, 0x2d, 0x9a, 0x68, 0x38, 0x09, 0x4e, 0xc2, 0xd9, 0xb3, 0x03, 0x9a, 0x24,
-	0x57, 0xcb, 0xd4, 0x31, 0xf4, 0x03, 0x39, 0x02, 0xf1, 0xbd, 0x15, 0x06, 0x4d, 0x14, 0x38, 0xfe,
-	0xc5, 0x01, 0x7c, 0xea, 0x91, 0x74, 0xc7, 0xd2, 0x35, 0x89, 0x6c, 0x01, 0xaf, 0xb2, 0x15, 0x37,
-	0x02, 0x3a, 0x99, 0x0b, 0xb3, 0x5d, 0x7e, 0xe4, 0x96, 0x9f, 0x1d, 0xa0, 0xbb, 0xbc, 0x58, 0xdc,
-	0xd8, 0xf9, 0xa1, 0x4d, 0x5e, 0x64, 0xab, 0xc5, 0x46, 0xd1, 0x87, 0xa7, 0xcf, 0x49, 0x90, 0x5c,
-	0x2d, 0xe9, 0x84, 0xdc, 0xc7, 0xca, 0xf0, 0xa2, 0x45, 0xae, 0xb2, 0x5a, 0x38, 0x93, 0xef, 0xa5,
-	0x04, 0x2b, 0x93, 0xb4, 0xf8, 0x29, 0xab, 0xc5, 0xf4, 0xd7, 0x80, 0x8c, 0x37, 0xb3, 0x52, 0x4a,
-	0x46, 0x7b, 0x55, 0xee, 0xdb, 0xc6, 0x6c, 0x87, 0x68, 0xe8, 0x63, 0xf6, 0x9b, 0x7e, 0x26, 0xa1,
-	0x50, 0x9d, 0x04, 0xad, 0x6a, 0xa1, 0x30, 0x0a, 0xdc, 0xf0, 0xaf, 0x0f, 0x37, 0x85, 0xbd, 0xbf,
-	0xa6, 0xd3, 0x7d, 0xa9, 0xe3, 0x39, 0x09, 0xf7, 0x72, 0xf4, 0x11, 0x39, 0xea, 0x35, 0xac, 0x79,
-	0x21, 0x61, 0x33, 0xd4, 0xd8, 0xbe, 0x13, 0x09, 0x36, 0x85, 0xa2, 0x6e, 0x5c, 0xca, 0xcf, 0x36,
-	0xb6, 0xef, 0x44, 0xc2, 0xf4, 0xe7, 0x80, 0x3c, 0xb8, 0x65, 0x13, 0x7d, 0x42, 0x42, 0x6b, 0x44,
-	0x56, 0x14, 0xf6, 0xff, 0xd8, 0xf3, 0xe1, 0xad, 0x8f, 0x38, 0xbd, 0xca, 0xf0, 0x46, 0x83, 0xdf,
-	0xf5, 0xbf, 0x74, 0x8c, 0x95, 0xb9, 0xd4, 0x80, 0x9e, 0xed, 0x77, 0x6c, 0xb0, 0x65, 0xfb, 0x1b,
-	0x6c, 0xef, 0xd9, 0xd1, 0x96, 0xed, 0x2d, 0xfb, 0xee, 0xec, 0xcb, 0x9b, 0x52, 0xef, 0x9c, 0x61,
-	0x1a, 0xca, 0xf8, 0xef, 0x3b, 0x2a, 0xf5, 0xed, 0x53, 0x3a, 0x07, 0x2c, 0x56, 0xff, 0xbb, 0x33,
-	0x7a, 0xf5, 0x27, 0x00, 0x00, 0xff, 0xff, 0x59, 0xc5, 0xd1, 0x57, 0xd1, 0x03, 0x00, 0x00,
+	// 424 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x41, 0x6f, 0xd3, 0x30,
+	0x14, 0xc7, 0x55, 0xd2, 0x6d, 0xe0, 0x20, 0x21, 0x59, 0x42, 0x0a, 0xe3, 0x40, 0xe9, 0x01, 0x7a,
+	0x72, 0x58, 0xb9, 0xc0, 0x76, 0x82, 0x95, 0x03, 0xd2, 0x84, 0xa6, 0xb4, 0xbb, 0xc0, 0xc1, 0x72,
+	0x63, 0x13, 0xac, 0x24, 0x76, 0x64, 0xbf, 0x24, 0x12, 0xdf, 0x80, 0x6f, 0xc9, 0x47, 0x41, 0x76,
+	0x92, 0x36, 0x1b, 0x9a, 0xd6, 0x9b, 0x93, 0xe7, 0xdf, 0xef, 0x6f, 0xbd, 0xf7, 0xd0, 0x32, 0xfd,
+	0x65, 0x74, 0x29, 0xeb, 0x52, 0xdb, 0x38, 0xd5, 0xea, 0xa7, 0xcc, 0x62, 0x56, 0xc9, 0x18, 0x84,
+	0x85, 0xd8, 0x00, 0x8f, 0x9b, 0xb3, 0x58, 0xaa, 0x46, 0xa7, 0x0c, 0xa4, 0x56, 0xa4, 0x32, 0x1a,
+	0x34, 0x7e, 0xbd, 0x67, 0x48, 0xc7, 0x10, 0x56, 0x49, 0xe2, 0x18, 0x62, 0x80, 0x93, 0xe6, 0xec,
+	0xf4, 0xdd, 0xc3, 0xda, 0xca, 0xe8, 0xcc, 0x08, 0x6b, 0x3b, 0xe9, 0xfc, 0x6f, 0x80, 0xd0, 0xd7,
+	0x5d, 0x12, 0xc6, 0x68, 0xaa, 0x58, 0x29, 0xa2, 0xc9, 0x6c, 0xb2, 0x78, 0x92, 0xf8, 0x33, 0xfe,
+	0x8d, 0x5e, 0x0e, 0x10, 0xb5, 0x52, 0xe5, 0x34, 0x2d, 0xa4, 0x50, 0x40, 0xbb, 0x80, 0xe8, 0xd1,
+	0x6c, 0xb2, 0x08, 0x97, 0x17, 0xe4, 0xc1, 0xd7, 0x91, 0xeb, 0xde, 0xb2, 0x96, 0x2a, 0xbf, 0xf4,
+	0x8e, 0x4b, 0x7f, 0x31, 0x89, 0xaa, 0x7b, 0x2a, 0x38, 0x47, 0x91, 0x33, 0xd0, 0x82, 0x6d, 0xa9,
+	0x15, 0xa6, 0x91, 0xa9, 0xb0, 0x43, 0x70, 0xe0, 0x83, 0x97, 0x07, 0x04, 0x6f, 0xae, 0xd6, 0xb7,
+	0xf2, 0x9e, 0xbb, 0xe2, 0x15, 0xdb, 0xae, 0x7b, 0x63, 0x1f, 0x76, 0x8e, 0xa6, 0xbc, 0x06, 0x1b,
+	0x4d, 0x67, 0xc1, 0x22, 0x5c, 0xbe, 0x39, 0x40, 0xbc, 0xba, 0xd9, 0x24, 0x9e, 0x71, 0x8d, 0x73,
+	0x85, 0xe8, 0xa8, 0x6b, 0x9c, 0x3b, 0xe3, 0x1f, 0x28, 0x14, 0xaa, 0x91, 0x46, 0xab, 0x52, 0x28,
+	0x88, 0x8e, 0xfd, 0x7b, 0x3f, 0x1e, 0xa0, 0xdd, 0x0f, 0x84, 0x7c, 0xd9, 0x0b, 0x92, 0xb1, 0xed,
+	0x74, 0x81, 0xc2, 0x51, 0x0d, 0xbf, 0x40, 0x8f, 0x5b, 0x6d, 0x72, 0xca, 0xa5, 0xe9, 0x87, 0x77,
+	0xe2, 0xbe, 0x57, 0xd2, 0xcc, 0xdf, 0xa2, 0x60, 0x75, 0xb3, 0xc1, 0x33, 0xf4, 0x14, 0x0a, 0x4b,
+	0x79, 0x0d, 0x74, 0x34, 0x62, 0x04, 0x85, 0x5d, 0xd5, 0xf0, 0x8d, 0x95, 0x62, 0xfe, 0x67, 0x82,
+	0x9e, 0xdd, 0x69, 0x15, 0x7e, 0x85, 0x42, 0x47, 0x31, 0xce, 0xdd, 0x7c, 0x46, 0xd0, 0xa7, 0xee,
+	0x8f, 0x0b, 0x76, 0x17, 0x2a, 0x6d, 0xc0, 0xaf, 0xc2, 0x51, 0x72, 0x02, 0x85, 0xbd, 0xd6, 0x06,
+	0x3a, 0xb6, 0xdd, 0xb1, 0xc1, 0xc0, 0xb6, 0xb7, 0xd8, 0xb6, 0x63, 0xa7, 0x03, 0xdb, 0x3a, 0xf6,
+	0xf3, 0xf9, 0xf7, 0x0f, 0x99, 0xde, 0xb5, 0x8a, 0x68, 0x93, 0xc5, 0xff, 0xef, 0x76, 0xa6, 0xef,
+	0xae, 0xf7, 0x85, 0x01, 0xbe, 0x3d, 0xf6, 0xab, 0xfd, 0xfe, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff,
+	0xcc, 0x66, 0xe0, 0x8d, 0x65, 0x03, 0x00, 0x00,
 }
diff --git a/go/api/test/rtd/v1/progress.pb.go b/go/api/test/rtd/v1/progress.pb.go
index d394c06..fc21ec2 100644
--- a/go/api/test/rtd/v1/progress.pb.go
+++ b/go/api/test/rtd/v1/progress.pb.go
@@ -68,9 +68,9 @@
 }
 
 type ReportResultRequest struct {
-	// The request to report results for, identified by the
-	// Invocation.Request.name field.
-	Request string `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"`
+	// The invocation to report results for, identified by the Invocation.name
+	// field.
+	Invocation string `protobuf:"bytes,1,opt,name=invocation,proto3" json:"invocation,omitempty"`
 	// Result to report.
 	Result               *v2.Result `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
@@ -103,9 +103,9 @@
 
 var xxx_messageInfo_ReportResultRequest proto.InternalMessageInfo
 
-func (m *ReportResultRequest) GetRequest() string {
+func (m *ReportResultRequest) GetInvocation() string {
 	if m != nil {
-		return m.Request
+		return m.Invocation
 	}
 	return ""
 }
@@ -165,9 +165,9 @@
 	// a valid resource name per https://aip.dev/122 and MUST be a valid POSIX
 	// file path.
 	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	// The request to report logs for, identified by the
-	// Invocation.Request.name field.
-	Request string `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
+	// The invocation to report results for, identified by the Invocation.name
+	// field.
+	Invocation string `protobuf:"bytes,2,opt,name=invocation,proto3" json:"invocation,omitempty"`
 	// Uninterpreted chunk of log-data.
 	Data                 []byte   `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -207,9 +207,9 @@
 	return ""
 }
 
-func (m *ReportLogRequest) GetRequest() string {
+func (m *ReportLogRequest) GetInvocation() string {
 	if m != nil {
-		return m.Request
+		return m.Invocation
 	}
 	return ""
 }
@@ -262,9 +262,9 @@
 	// name MUST be unique across all artifacts archived from a single invocation
 	// request.
 	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	// The request to archive artifacts for, identified by the
-	// Invocation.Request.name field.
-	Request string `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
+	// The invocation to report results for, identified by the Invocation.name
+	// field.
+	Invocation string `protobuf:"bytes,2,opt,name=invocation,proto3" json:"invocation,omitempty"`
 	// Absolute path to a file or directory to archive.
 	LocalPath            string   `protobuf:"bytes,3,opt,name=local_path,json=localPath,proto3" json:"local_path,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -304,9 +304,9 @@
 	return ""
 }
 
-func (m *ArchiveArtifactRequest) GetRequest() string {
+func (m *ArchiveArtifactRequest) GetInvocation() string {
 	if m != nil {
-		return m.Request
+		return m.Invocation
 	}
 	return ""
 }
@@ -364,34 +364,34 @@
 }
 
 var fileDescriptor_5e83d657830dbeb4 = []byte{
-	// 420 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x93, 0xcd, 0x6e, 0xd4, 0x30,
-	0x14, 0x85, 0x95, 0x76, 0x28, 0xe4, 0x32, 0x12, 0xe0, 0x22, 0x08, 0x11, 0x48, 0x43, 0x56, 0xd9,
-	0x60, 0xd3, 0xb4, 0xe2, 0xa7, 0xac, 0x4a, 0xc5, 0x8e, 0x45, 0x65, 0x58, 0xb1, 0x41, 0x26, 0x71,
-	0x13, 0x8b, 0x24, 0x0e, 0xf6, 0x9d, 0x88, 0x1d, 0x5b, 0x1e, 0x80, 0x07, 0x46, 0xb5, 0xd3, 0x4e,
-	0xfa, 0xa3, 0xe9, 0xcc, 0xec, 0x4e, 0xac, 0x7c, 0xe7, 0x9c, 0xf8, 0xe6, 0xc2, 0xeb, 0xbc, 0x32,
-	0xba, 0x51, 0xf3, 0x46, 0x5b, 0x96, 0xeb, 0xf6, 0x54, 0x95, 0x4c, 0x74, 0x8a, 0xa1, 0xb4, 0xc8,
-	0x0c, 0x16, 0xac, 0xdf, 0x63, 0x9d, 0xd1, 0xa5, 0x91, 0xd6, 0xd2, 0xce, 0x68, 0xd4, 0xe4, 0xe5,
-	0x82, 0xa0, 0x9e, 0xa0, 0xa2, 0x53, 0xf4, 0x8c, 0xa0, 0x06, 0x0b, 0xda, 0xef, 0xc5, 0xd9, 0x32,
-	0x53, 0x69, 0xe7, 0x35, 0x5a, 0xd6, 0x67, 0x83, 0xf4, 0xb6, 0x09, 0x85, 0xe8, 0x64, 0x08, 0xfa,
-	0xa2, 0xda, 0x9f, 0xc7, 0xb5, 0x92, 0x2d, 0x1e, 0x3b, 0x98, 0x10, 0x98, 0x74, 0xda, 0x60, 0x14,
-	0xcc, 0x82, 0xf4, 0x0e, 0x77, 0x3a, 0xe9, 0x61, 0x97, 0xcb, 0x33, 0xc5, 0x9d, 0x0b, 0x97, 0xbf,
-	0xe6, 0xd2, 0x22, 0x89, 0xe0, 0xae, 0xf1, 0xd2, 0xbd, 0x1d, 0xf2, 0xf3, 0x47, 0xf2, 0x09, 0x76,
-	0x7c, 0x60, 0xb4, 0x35, 0x0b, 0xd2, 0xfb, 0xd9, 0x2b, 0xba, 0xec, 0x43, 0x7c, 0x4b, 0xda, 0x67,
-	0x74, 0xf0, 0x1f, 0xe0, 0xe4, 0x00, 0x1e, 0x5f, 0xce, 0xb5, 0x9d, 0x6e, 0xad, 0x24, 0xcf, 0x21,
-	0x44, 0x69, 0x1a, 0xd5, 0x0a, 0x94, 0x2e, 0xfa, 0x1e, 0x5f, 0x1c, 0x24, 0x5f, 0xe1, 0xa1, 0xa7,
-	0x3e, 0xeb, 0xf2, 0xbc, 0x2a, 0x81, 0x49, 0x2b, 0x1a, 0x39, 0xf4, 0x74, 0x7a, 0x5c, 0x7f, 0xeb,
-	0x72, 0x7d, 0x02, 0x93, 0x42, 0xa0, 0x88, 0xb6, 0x67, 0x41, 0x3a, 0xe5, 0x4e, 0x27, 0xbb, 0xf0,
-	0x68, 0xe4, 0xea, 0x8b, 0x24, 0x12, 0x9e, 0x1c, 0x99, 0xbc, 0x52, 0xbd, 0x3c, 0x32, 0xa8, 0x4e,
-	0x45, 0x8e, 0x9b, 0x05, 0xbe, 0x00, 0xa8, 0x75, 0x2e, 0xea, 0xef, 0x9d, 0xc0, 0xca, 0xc5, 0x86,
-	0x3c, 0x74, 0x27, 0x27, 0x02, 0xab, 0xe4, 0x19, 0x3c, 0xbd, 0x16, 0xe3, 0x1b, 0x64, 0xff, 0xb6,
-	0x61, 0x3a, 0x9e, 0x25, 0xf9, 0x03, 0xd3, 0xf1, 0x9d, 0x91, 0x37, 0xf4, 0xd6, 0x7f, 0x88, 0xde,
-	0x30, 0xdc, 0xf8, 0xed, 0xda, 0xdc, 0x30, 0x9c, 0xdf, 0x10, 0x5e, 0x5c, 0x14, 0xd9, 0x5f, 0xd9,
-	0x65, 0x31, 0xac, 0xf8, 0x60, 0x3d, 0xc8, 0xe7, 0xa6, 0x01, 0xf9, 0x1b, 0xc0, 0x83, 0x2b, 0xf7,
-	0x44, 0xde, 0xaf, 0xe0, 0x75, 0xf3, 0x08, 0xe3, 0xc3, 0x4d, 0x50, 0x5f, 0xe6, 0xe3, 0xe1, 0xb7,
-	0x77, 0xa5, 0xbe, 0xe0, 0xa9, 0x36, 0x25, 0xbb, 0xbe, 0xa7, 0xa5, 0xbe, 0xba, 0xff, 0x1f, 0x0c,
-	0x16, 0x3f, 0x76, 0xdc, 0x92, 0xee, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xe6, 0x5e, 0x16, 0x23,
-	0x2f, 0x04, 0x00, 0x00,
+	// 427 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x4f, 0x6f, 0xd4, 0x30,
+	0x10, 0xc5, 0x95, 0x76, 0xa9, 0xc8, 0xb0, 0x12, 0xe0, 0x22, 0x58, 0x22, 0x40, 0x4b, 0x4e, 0xb9,
+	0x60, 0xd3, 0xb4, 0xe2, 0x4f, 0x39, 0x95, 0x8a, 0x1b, 0x87, 0xca, 0xdc, 0x7a, 0x41, 0x26, 0x71,
+	0x13, 0xab, 0x89, 0x1d, 0xec, 0xd9, 0x88, 0x03, 0x12, 0x57, 0x3e, 0x00, 0x1f, 0x18, 0xd5, 0x0e,
+	0xdd, 0xb0, 0x5b, 0x95, 0x96, 0xde, 0x46, 0x23, 0xfd, 0xde, 0x7b, 0x33, 0x13, 0x07, 0x5e, 0x16,
+	0xb5, 0x35, 0xad, 0x5a, 0xb4, 0xc6, 0xb1, 0xc2, 0xe8, 0x13, 0x55, 0x31, 0xd1, 0x29, 0x86, 0xd2,
+	0x21, 0xb3, 0x58, 0xb2, 0x7e, 0x87, 0x75, 0xd6, 0x54, 0x56, 0x3a, 0x47, 0x3b, 0x6b, 0xd0, 0x90,
+	0xe7, 0x4b, 0x82, 0x06, 0x82, 0x8a, 0x4e, 0xd1, 0x33, 0x82, 0x5a, 0x2c, 0x69, 0xbf, 0x93, 0xe4,
+	0x97, 0x89, 0x4a, 0xb7, 0x68, 0xd0, 0xb1, 0x3e, 0x1f, 0xca, 0x20, 0x9b, 0x52, 0x98, 0x1d, 0x0d,
+	0x46, 0x9f, 0x94, 0x3e, 0x3d, 0x6c, 0x94, 0xd4, 0x78, 0xe8, 0x61, 0x42, 0x60, 0xd2, 0x19, 0x8b,
+	0xb3, 0x68, 0x1e, 0x65, 0xb7, 0xb8, 0xaf, 0xd3, 0xef, 0xb0, 0xcd, 0xe5, 0x59, 0xc5, 0xbd, 0x0a,
+	0x97, 0x5f, 0x17, 0xd2, 0x21, 0x79, 0x06, 0xa0, 0x74, 0x6f, 0x0a, 0x81, 0xca, 0x68, 0x0f, 0xc4,
+	0x7c, 0xd4, 0x21, 0x1f, 0x60, 0x2b, 0xd8, 0xce, 0x36, 0xe6, 0x51, 0x76, 0x27, 0x7f, 0x41, 0x2f,
+	0x1b, 0x27, 0x64, 0xa5, 0x7d, 0x4e, 0x07, 0x97, 0x01, 0x4e, 0xf7, 0xe0, 0xc1, 0xdf, 0xee, 0xae,
+	0x33, 0xda, 0x49, 0xf2, 0x04, 0x62, 0x94, 0xb6, 0x55, 0x5a, 0xa0, 0xf4, 0xee, 0xb7, 0xf9, 0xb2,
+	0x91, 0x1e, 0xc3, 0xbd, 0x40, 0x7d, 0x34, 0xd5, 0x9f, 0xc0, 0x04, 0x26, 0x5a, 0xb4, 0x72, 0x88,
+	0xea, 0xeb, 0x95, 0x21, 0x36, 0xd6, 0x86, 0x20, 0x30, 0x29, 0x05, 0x8a, 0xd9, 0xe6, 0x3c, 0xca,
+	0xa6, 0xdc, 0xd7, 0xe9, 0x36, 0xdc, 0x1f, 0x69, 0x87, 0x38, 0xe9, 0x29, 0x3c, 0x3c, 0xb0, 0x45,
+	0xad, 0x7a, 0x79, 0x60, 0x51, 0x9d, 0x88, 0x02, 0x6f, 0x62, 0xfb, 0x14, 0xa0, 0x31, 0x85, 0x68,
+	0x3e, 0x77, 0x02, 0x6b, 0x6f, 0x1e, 0xf3, 0xd8, 0x77, 0x8e, 0x04, 0xd6, 0xe9, 0x63, 0x78, 0xb4,
+	0x66, 0x16, 0x72, 0xe4, 0xbf, 0x36, 0x61, 0x3a, 0xbe, 0x2e, 0xf9, 0x01, 0xd3, 0xf1, 0xfe, 0xc8,
+	0x2b, 0xfa, 0xcf, 0xaf, 0x8a, 0x5e, 0x70, 0xee, 0xe4, 0xf5, 0xb5, 0xb9, 0xe1, 0x50, 0xdf, 0x20,
+	0x3e, 0x5f, 0x17, 0xd9, 0xbd, 0xb2, 0xca, 0xf2, 0x70, 0xc9, 0xde, 0xf5, 0xa0, 0xe0, 0x9b, 0x45,
+	0xe4, 0x67, 0x04, 0x77, 0x57, 0xf6, 0x44, 0xde, 0x5e, 0x41, 0xeb, 0xe2, 0x43, 0x26, 0xfb, 0xff,
+	0x83, 0x86, 0x30, 0xef, 0xf7, 0x8f, 0xdf, 0x54, 0xe6, 0x9c, 0xa7, 0xc6, 0x56, 0x6c, 0xfd, 0xe5,
+	0x56, 0x66, 0xf5, 0x8f, 0xf0, 0xce, 0x62, 0xf9, 0x65, 0xcb, 0x3f, 0xdb, 0xdd, 0xdf, 0x01, 0x00,
+	0x00, 0xff, 0xff, 0x3e, 0x65, 0x68, 0xd1, 0x41, 0x04, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
diff --git a/proto/chromiumos/config/api/test/rtd/v1/invocation.proto b/proto/chromiumos/config/api/test/rtd/v1/invocation.proto
index 594dc3e..5fc649d 100644
--- a/proto/chromiumos/config/api/test/rtd/v1/invocation.proto
+++ b/proto/chromiumos/config/api/test/rtd/v1/invocation.proto
@@ -15,41 +15,12 @@
 // TODO(crbug.com/1051691): Link to a reference implementation of Remote Test
 // Server & Remote Test Driver.
 message Invocation {
-  // Progress sink to be used to report progress of the Remote Test Driver
-  // invocation to the surrounding Remote Test Server.
-  ProgressSinkClientConfig progress_sink_client_config = 1;
-
-  // Set of DUTs used for each of the requests in this invocation.
+  // A unique name for this invocation.
   //
-  // Contains more than one dut if the test execution is sharded.
-  repeated DUT duts = 2;
-
-  // Smallest unit of an invocation request for which results MUST be reported.
-  //
-  // An invocation MUST execute all requests serially in-order. This assumption
-  // is necessary for future support of test sequences in test plans.
-  repeated Request requests = 3;
-
-  // Configuration information for using Test Lab Services to interact
-  // with DUTs and their peripherals.
-  TLSClientConfig test_lab_services_config = 4;
-}
-
-// Contains all configuration data required to interact with a single device
-// under test during a test invocation.
-message DUT {
-  // Name for the DUT for using Test Lab Services to interact with the
-  // device and its peripherals.
-  //
-  // The RTD MUST pass this to Test Lab Service RPCs that act on a particular
-  // DUT. See the tls.OpenDutPortRequest message for an example of where
-  // this is used.
-  string tls_dut_name = 1;
-}
-
-// Request for execution of a single test.metadata.Test
-message Request {
-  // name MUST be unique across all requests in this invocation.
+  // ProgressSink methods require the inclusion of this value in reported
+  // results. This provides additional safety from leaked Remote Test Driver
+  // processes in the case that a single container is used to run multiple
+  // invocations sequentially.
   //
   // Remote Test Drivers are recommended to use name as the opaque tag
   // required by the Test Lab Services API. Thus, name SHOULD be unique across
@@ -59,14 +30,26 @@
   //   Test Lab Services API: tls/README.md
   string name = 1;
 
+  // Progress sink to be used to report progress of the Remote Test Driver
+  // invocation to the surrounding Remote Test Server.
+  ProgressSinkClientConfig progress_sink_client_config = 2;
+
+  // Configuration information for using Test Lab Services to interact
+  // with DUTs and their peripherals.
+  TLSClientConfig test_lab_services_config = 3;
+
+  // Set of DUTs usable in this invocation.
+  //
+  // Contains more than one dut if the test execution is sharded.
+  repeated DUT duts = 4;
+
   // The test to execute, identified by the test.metadata.Test.name field.
   //
-  // Note that the request does not contain a reference to the Remote Test
-  // Driver to use, as the request is an input to the Remote Test Driver
-  // invocation.
-  string test = 2;
+  // Note that the invocation does not contain a reference to the Remote Test
+  // Driver to use.
+  string test = 5;
 
-  // Per-request Remote Test Server environment configuration.
+  // Per-invocation Remote Test Server environment configuration.
   message Environment {
     // Absolute path to a directory for writing arbitrary files.
     //
@@ -82,22 +65,23 @@
     // Remote Test Servers may archive the work_dir contents to non-ephemeral
     // storage as a best effort asynchronous task.
     string work_dir = 1;
-
-    // Absolute path to a directory for writing temporary files.
-    //
-    // This directory MUST be created by Remote Test Server prior to the Remote
-    // Test Driver invocation.
-    //
-    // Remote Test Drivers MUST use this directory for temporary files and MUST
-    // NOT attempt to use defaults like /tmp or the TMP environment variable.
-    //
-    // See also: Environment.work_dir
-    string temp_dir = 2;
   }
 
   // Environment configuration set by the Remote Test Server for a specific
-  // request of the Remote Test Driver.
-  Environment environment = 3;
+  // invocation of the Remote Test Driver.
+  Environment environment = 6;
+}
+
+// Contains all configuration data required to interact with a single device
+// under test during a test invocation.
+message DUT {
+  // Name for the DUT for using Test Lab Services to interact with the
+  // device and its peripherals.
+  //
+  // The RTD MUST pass this to Test Lab Service RPCs that act on a particular
+  // DUT. See the tls.OpenDutPortRequest message for an example of where
+  // this is used.
+  string tls_dut_name = 1;
 }
 
 // Configuration information required for using Test Lab & Wiring Services.
diff --git a/proto/chromiumos/config/api/test/rtd/v1/progress.proto b/proto/chromiumos/config/api/test/rtd/v1/progress.proto
index 6afab8f..3cdabc1 100644
--- a/proto/chromiumos/config/api/test/rtd/v1/progress.proto
+++ b/proto/chromiumos/config/api/test/rtd/v1/progress.proto
@@ -58,9 +58,9 @@
 }
 
 message ReportResultRequest {
-  // The request to report results for, identified by the
-  // Invocation.Request.name field.
-  string request = 1;
+  // The invocation to report results for, identified by the Invocation.name
+  // field.
+  string invocation = 1;
 
   // Result to report.
   chromiumos.config.api.test.results.v2.Result result = 2;
@@ -80,9 +80,9 @@
   // file path.
   string name = 1;
 
-  // The request to report logs for, identified by the
-  // Invocation.Request.name field.
-  string request = 2;
+  // The invocation to report results for, identified by the Invocation.name
+  // field.
+  string invocation = 2;
 
   // Uninterpreted chunk of log-data.
   bytes data = 3;
@@ -101,9 +101,9 @@
   // request.
   string name = 1;
 
-  // The request to archive artifacts for, identified by the
-  // Invocation.Request.name field.
-  string request = 2;
+  // The invocation to report results for, identified by the Invocation.name
+  // field.
+  string invocation = 2;
 
   // Absolute path to a file or directory to archive.
   string local_path = 3;
diff --git a/python/chromiumos/config/api/test/rtd/v1/invocation_pb2.py b/python/chromiumos/config/api/test/rtd/v1/invocation_pb2.py
index 4413692..cdac9ab 100644
--- a/python/chromiumos/config/api/test/rtd/v1/invocation_pb2.py
+++ b/python/chromiumos/config/api/test/rtd/v1/invocation_pb2.py
@@ -20,45 +20,24 @@
   package='chromiumos.config.api.test.rtd.v1',
   syntax='proto3',
   serialized_options=_b('Z8go.chromium.org/chromiumos/config/go/api/test/rtd/v1;rtd'),
-  serialized_pb=_b('\n2chromiumos/config/api/test/rtd/v1/invocation.proto\x12!chromiumos.config.api.test.rtd.v1\x1a\x30\x63hromiumos/config/api/test/rtd/v1/progress.proto\"\xb8\x02\n\nInvocation\x12`\n\x1bprogress_sink_client_config\x18\x01 \x01(\x0b\x32;.chromiumos.config.api.test.rtd.v1.ProgressSinkClientConfig\x12\x34\n\x04\x64uts\x18\x02 \x03(\x0b\x32&.chromiumos.config.api.test.rtd.v1.DUT\x12<\n\x08requests\x18\x03 \x03(\x0b\x32*.chromiumos.config.api.test.rtd.v1.Request\x12T\n\x18test_lab_services_config\x18\x04 \x01(\x0b\x32\x32.chromiumos.config.api.test.rtd.v1.TLSClientConfig\"\x1b\n\x03\x44UT\x12\x14\n\x0ctls_dut_name\x18\x01 \x01(\t\"\xa5\x01\n\x07Request\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04test\x18\x02 \x01(\t\x12K\n\x0b\x65nvironment\x18\x03 \x01(\x0b\x32\x36.chromiumos.config.api.test.rtd.v1.Request.Environment\x1a\x31\n\x0b\x45nvironment\x12\x10\n\x08work_dir\x18\x01 \x01(\t\x12\x10\n\x08temp_dir\x18\x02 \x01(\t\"_\n\x0fTLSClientConfig\x12\x13\n\x0btls_address\x18\x01 \x01(\t\x12\x10\n\x08tls_port\x18\x02 \x01(\x05\x12\x13\n\x0btlw_address\x18\x03 \x01(\t\x12\x10\n\x08tlw_port\x18\x04 \x01(\x05\x42:Z8go.chromium.org/chromiumos/config/go/api/test/rtd/v1;rtdb\x06proto3')
+  serialized_pb=_b('\n2chromiumos/config/api/test/rtd/v1/invocation.proto\x12!chromiumos.config.api.test.rtd.v1\x1a\x30\x63hromiumos/config/api/test/rtd/v1/progress.proto\"\x87\x03\n\nInvocation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12`\n\x1bprogress_sink_client_config\x18\x02 \x01(\x0b\x32;.chromiumos.config.api.test.rtd.v1.ProgressSinkClientConfig\x12T\n\x18test_lab_services_config\x18\x03 \x01(\x0b\x32\x32.chromiumos.config.api.test.rtd.v1.TLSClientConfig\x12\x34\n\x04\x64uts\x18\x04 \x03(\x0b\x32&.chromiumos.config.api.test.rtd.v1.DUT\x12\x0c\n\x04test\x18\x05 \x01(\t\x12N\n\x0b\x65nvironment\x18\x06 \x01(\x0b\x32\x39.chromiumos.config.api.test.rtd.v1.Invocation.Environment\x1a\x1f\n\x0b\x45nvironment\x12\x10\n\x08work_dir\x18\x01 \x01(\t\"\x1b\n\x03\x44UT\x12\x14\n\x0ctls_dut_name\x18\x01 \x01(\t\"_\n\x0fTLSClientConfig\x12\x13\n\x0btls_address\x18\x01 \x01(\t\x12\x10\n\x08tls_port\x18\x02 \x01(\x05\x12\x13\n\x0btlw_address\x18\x03 \x01(\t\x12\x10\n\x08tlw_port\x18\x04 \x01(\x05\x42:Z8go.chromium.org/chromiumos/config/go/api/test/rtd/v1;rtdb\x06proto3')
   ,
   dependencies=[chromiumos_dot_config_dot_api_dot_test_dot_rtd_dot_v1_dot_progress__pb2.DESCRIPTOR,])
 
 
 
 
-_INVOCATION = _descriptor.Descriptor(
-  name='Invocation',
-  full_name='chromiumos.config.api.test.rtd.v1.Invocation',
+_INVOCATION_ENVIRONMENT = _descriptor.Descriptor(
+  name='Environment',
+  full_name='chromiumos.config.api.test.rtd.v1.Invocation.Environment',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='progress_sink_client_config', full_name='chromiumos.config.api.test.rtd.v1.Invocation.progress_sink_client_config', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='duts', full_name='chromiumos.config.api.test.rtd.v1.Invocation.duts', index=1,
-      number=2, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='requests', full_name='chromiumos.config.api.test.rtd.v1.Invocation.requests', index=2,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='test_lab_services_config', full_name='chromiumos.config.api.test.rtd.v1.Invocation.test_lab_services_config', index=3,
-      number=4, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
+      name='work_dir', full_name='chromiumos.config.api.test.rtd.v1.Invocation.Environment.work_dir', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -74,8 +53,73 @@
   extension_ranges=[],
   oneofs=[
   ],
+  serialized_start=500,
+  serialized_end=531,
+)
+
+_INVOCATION = _descriptor.Descriptor(
+  name='Invocation',
+  full_name='chromiumos.config.api.test.rtd.v1.Invocation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='name', full_name='chromiumos.config.api.test.rtd.v1.Invocation.name', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='progress_sink_client_config', full_name='chromiumos.config.api.test.rtd.v1.Invocation.progress_sink_client_config', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='test_lab_services_config', full_name='chromiumos.config.api.test.rtd.v1.Invocation.test_lab_services_config', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='duts', full_name='chromiumos.config.api.test.rtd.v1.Invocation.duts', index=3,
+      number=4, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='test', full_name='chromiumos.config.api.test.rtd.v1.Invocation.test', index=4,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='environment', full_name='chromiumos.config.api.test.rtd.v1.Invocation.environment', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[_INVOCATION_ENVIRONMENT, ],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
   serialized_start=140,
-  serialized_end=452,
+  serialized_end=531,
 )
 
 
@@ -105,90 +149,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=454,
-  serialized_end=481,
-)
-
-
-_REQUEST_ENVIRONMENT = _descriptor.Descriptor(
-  name='Environment',
-  full_name='chromiumos.config.api.test.rtd.v1.Request.Environment',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='work_dir', full_name='chromiumos.config.api.test.rtd.v1.Request.Environment.work_dir', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='temp_dir', full_name='chromiumos.config.api.test.rtd.v1.Request.Environment.temp_dir', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=600,
-  serialized_end=649,
-)
-
-_REQUEST = _descriptor.Descriptor(
-  name='Request',
-  full_name='chromiumos.config.api.test.rtd.v1.Request',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='chromiumos.config.api.test.rtd.v1.Request.name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='test', full_name='chromiumos.config.api.test.rtd.v1.Request.test', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='environment', full_name='chromiumos.config.api.test.rtd.v1.Request.environment', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[_REQUEST_ENVIRONMENT, ],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=484,
-  serialized_end=649,
+  serialized_start=533,
+  serialized_end=560,
 )
 
 
@@ -239,28 +201,34 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=651,
-  serialized_end=746,
+  serialized_start=562,
+  serialized_end=657,
 )
 
+_INVOCATION_ENVIRONMENT.containing_type = _INVOCATION
 _INVOCATION.fields_by_name['progress_sink_client_config'].message_type = chromiumos_dot_config_dot_api_dot_test_dot_rtd_dot_v1_dot_progress__pb2._PROGRESSSINKCLIENTCONFIG
-_INVOCATION.fields_by_name['duts'].message_type = _DUT
-_INVOCATION.fields_by_name['requests'].message_type = _REQUEST
 _INVOCATION.fields_by_name['test_lab_services_config'].message_type = _TLSCLIENTCONFIG
-_REQUEST_ENVIRONMENT.containing_type = _REQUEST
-_REQUEST.fields_by_name['environment'].message_type = _REQUEST_ENVIRONMENT
+_INVOCATION.fields_by_name['duts'].message_type = _DUT
+_INVOCATION.fields_by_name['environment'].message_type = _INVOCATION_ENVIRONMENT
 DESCRIPTOR.message_types_by_name['Invocation'] = _INVOCATION
 DESCRIPTOR.message_types_by_name['DUT'] = _DUT
-DESCRIPTOR.message_types_by_name['Request'] = _REQUEST
 DESCRIPTOR.message_types_by_name['TLSClientConfig'] = _TLSCLIENTCONFIG
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
 Invocation = _reflection.GeneratedProtocolMessageType('Invocation', (_message.Message,), dict(
+
+  Environment = _reflection.GeneratedProtocolMessageType('Environment', (_message.Message,), dict(
+    DESCRIPTOR = _INVOCATION_ENVIRONMENT,
+    __module__ = 'chromiumos.config.api.test.rtd.v1.invocation_pb2'
+    # @@protoc_insertion_point(class_scope:chromiumos.config.api.test.rtd.v1.Invocation.Environment)
+    ))
+  ,
   DESCRIPTOR = _INVOCATION,
   __module__ = 'chromiumos.config.api.test.rtd.v1.invocation_pb2'
   # @@protoc_insertion_point(class_scope:chromiumos.config.api.test.rtd.v1.Invocation)
   ))
 _sym_db.RegisterMessage(Invocation)
+_sym_db.RegisterMessage(Invocation.Environment)
 
 DUT = _reflection.GeneratedProtocolMessageType('DUT', (_message.Message,), dict(
   DESCRIPTOR = _DUT,
@@ -269,21 +237,6 @@
   ))
 _sym_db.RegisterMessage(DUT)
 
-Request = _reflection.GeneratedProtocolMessageType('Request', (_message.Message,), dict(
-
-  Environment = _reflection.GeneratedProtocolMessageType('Environment', (_message.Message,), dict(
-    DESCRIPTOR = _REQUEST_ENVIRONMENT,
-    __module__ = 'chromiumos.config.api.test.rtd.v1.invocation_pb2'
-    # @@protoc_insertion_point(class_scope:chromiumos.config.api.test.rtd.v1.Request.Environment)
-    ))
-  ,
-  DESCRIPTOR = _REQUEST,
-  __module__ = 'chromiumos.config.api.test.rtd.v1.invocation_pb2'
-  # @@protoc_insertion_point(class_scope:chromiumos.config.api.test.rtd.v1.Request)
-  ))
-_sym_db.RegisterMessage(Request)
-_sym_db.RegisterMessage(Request.Environment)
-
 TLSClientConfig = _reflection.GeneratedProtocolMessageType('TLSClientConfig', (_message.Message,), dict(
   DESCRIPTOR = _TLSCLIENTCONFIG,
   __module__ = 'chromiumos.config.api.test.rtd.v1.invocation_pb2'
diff --git a/python/chromiumos/config/api/test/rtd/v1/progress_pb2.py b/python/chromiumos/config/api/test/rtd/v1/progress_pb2.py
index 4252c84..5c001a7 100644
--- a/python/chromiumos/config/api/test/rtd/v1/progress_pb2.py
+++ b/python/chromiumos/config/api/test/rtd/v1/progress_pb2.py
@@ -20,7 +20,7 @@
   package='chromiumos.config.api.test.rtd.v1',
   syntax='proto3',
   serialized_options=_b('Z8go.chromium.org/chromiumos/config/go/api/test/rtd/v1;rtd'),
-  serialized_pb=_b('\n0chromiumos/config/api/test/rtd/v1/progress.proto\x12!chromiumos.config.api.test.rtd.v1\x1a\x32\x63hromiumos/config/api/test/results/v2/result.proto\"(\n\x18ProgressSinkClientConfig\x12\x0c\n\x04port\x18\x01 \x01(\x05\"e\n\x13ReportResultRequest\x12\x0f\n\x07request\x18\x01 \x01(\t\x12=\n\x06result\x18\x02 \x01(\x0b\x32-.chromiumos.config.api.test.results.v2.Result\")\n\x14ReportResultResponse\x12\x11\n\tterminate\x18\x01 \x01(\x08\"?\n\x10ReportLogRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07request\x18\x02 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"\x13\n\x11ReportLogResponse\"K\n\x16\x41rchiveArtifactRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07request\x18\x02 \x01(\t\x12\x12\n\nlocal_path\x18\x03 \x01(\t\"\x19\n\x17\x41rchiveArtifactResponse2\x94\x03\n\x0cProgressSink\x12\x7f\n\x0cReportResult\x12\x36.chromiumos.config.api.test.rtd.v1.ReportResultRequest\x1a\x37.chromiumos.config.api.test.rtd.v1.ReportResultResponse\x12x\n\tReportLog\x12\x33.chromiumos.config.api.test.rtd.v1.ReportLogRequest\x1a\x34.chromiumos.config.api.test.rtd.v1.ReportLogResponse(\x01\x12\x88\x01\n\x0f\x41rchiveArtifact\x12\x39.chromiumos.config.api.test.rtd.v1.ArchiveArtifactRequest\x1a:.chromiumos.config.api.test.rtd.v1.ArchiveArtifactResponseB:Z8go.chromium.org/chromiumos/config/go/api/test/rtd/v1;rtdb\x06proto3')
+  serialized_pb=_b('\n0chromiumos/config/api/test/rtd/v1/progress.proto\x12!chromiumos.config.api.test.rtd.v1\x1a\x32\x63hromiumos/config/api/test/results/v2/result.proto\"(\n\x18ProgressSinkClientConfig\x12\x0c\n\x04port\x18\x01 \x01(\x05\"h\n\x13ReportResultRequest\x12\x12\n\ninvocation\x18\x01 \x01(\t\x12=\n\x06result\x18\x02 \x01(\x0b\x32-.chromiumos.config.api.test.results.v2.Result\")\n\x14ReportResultResponse\x12\x11\n\tterminate\x18\x01 \x01(\x08\"B\n\x10ReportLogRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ninvocation\x18\x02 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"\x13\n\x11ReportLogResponse\"N\n\x16\x41rchiveArtifactRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ninvocation\x18\x02 \x01(\t\x12\x12\n\nlocal_path\x18\x03 \x01(\t\"\x19\n\x17\x41rchiveArtifactResponse2\x94\x03\n\x0cProgressSink\x12\x7f\n\x0cReportResult\x12\x36.chromiumos.config.api.test.rtd.v1.ReportResultRequest\x1a\x37.chromiumos.config.api.test.rtd.v1.ReportResultResponse\x12x\n\tReportLog\x12\x33.chromiumos.config.api.test.rtd.v1.ReportLogRequest\x1a\x34.chromiumos.config.api.test.rtd.v1.ReportLogResponse(\x01\x12\x88\x01\n\x0f\x41rchiveArtifact\x12\x39.chromiumos.config.api.test.rtd.v1.ArchiveArtifactRequest\x1a:.chromiumos.config.api.test.rtd.v1.ArchiveArtifactResponseB:Z8go.chromium.org/chromiumos/config/go/api/test/rtd/v1;rtdb\x06proto3')
   ,
   dependencies=[chromiumos_dot_config_dot_api_dot_test_dot_results_dot_v2_dot_result__pb2.DESCRIPTOR,])
 
@@ -66,7 +66,7 @@
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='request', full_name='chromiumos.config.api.test.rtd.v1.ReportResultRequest.request', index=0,
+      name='invocation', full_name='chromiumos.config.api.test.rtd.v1.ReportResultRequest.invocation', index=0,
       number=1, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
@@ -92,7 +92,7 @@
   oneofs=[
   ],
   serialized_start=181,
-  serialized_end=282,
+  serialized_end=285,
 )
 
 
@@ -122,8 +122,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=284,
-  serialized_end=325,
+  serialized_start=287,
+  serialized_end=328,
 )
 
 
@@ -142,7 +142,7 @@
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='request', full_name='chromiumos.config.api.test.rtd.v1.ReportLogRequest.request', index=1,
+      name='invocation', full_name='chromiumos.config.api.test.rtd.v1.ReportLogRequest.invocation', index=1,
       number=2, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
@@ -167,8 +167,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=327,
-  serialized_end=390,
+  serialized_start=330,
+  serialized_end=396,
 )
 
 
@@ -191,8 +191,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=392,
-  serialized_end=411,
+  serialized_start=398,
+  serialized_end=417,
 )
 
 
@@ -211,7 +211,7 @@
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='request', full_name='chromiumos.config.api.test.rtd.v1.ArchiveArtifactRequest.request', index=1,
+      name='invocation', full_name='chromiumos.config.api.test.rtd.v1.ArchiveArtifactRequest.invocation', index=1,
       number=2, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
@@ -236,8 +236,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=413,
-  serialized_end=488,
+  serialized_start=419,
+  serialized_end=497,
 )
 
 
@@ -260,8 +260,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=490,
-  serialized_end=515,
+  serialized_start=499,
+  serialized_end=524,
 )
 
 _REPORTRESULTREQUEST.fields_by_name['result'].message_type = chromiumos_dot_config_dot_api_dot_test_dot_results_dot_v2_dot_result__pb2._RESULT
@@ -332,8 +332,8 @@
   file=DESCRIPTOR,
   index=0,
   serialized_options=None,
-  serialized_start=518,
-  serialized_end=922,
+  serialized_start=527,
+  serialized_end=931,
   methods=[
   _descriptor.MethodDescriptor(
     name='ReportResult',