diff --git a/go/test/rtd/v1/progress.pb.go b/go/test/rtd/v1/progress.pb.go
index 0c95d54..0017067 100644
--- a/go/test/rtd/v1/progress.pb.go
+++ b/go/test/rtd/v1/progress.pb.go
@@ -64,7 +64,7 @@
 }
 
 func (Result_State) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_53459f08935e9319, []int{2, 0}
+	return fileDescriptor_53459f08935e9319, []int{1, 0}
 }
 
 // Enum entries *may* be added in the future.
@@ -103,7 +103,7 @@
 }
 
 func (Result_Error_Source) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_53459f08935e9319, []int{2, 0, 0}
+	return fileDescriptor_53459f08935e9319, []int{1, 0, 0}
 }
 
 // Enum entries *may* be added in the future.
@@ -136,7 +136,7 @@
 }
 
 func (Result_Error_Severity) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_53459f08935e9319, []int{2, 0, 1}
+	return fileDescriptor_53459f08935e9319, []int{1, 0, 1}
 }
 
 // Configuration data needed by clients of ProgressSink.
@@ -181,56 +181,6 @@
 	return 0
 }
 
-type ReportResultRequest struct {
-	// The request to report results for, identified by the
-	// Invocation.Request.name field.
-	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	// Result to report.
-	Result               *Result  `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *ReportResultRequest) Reset()         { *m = ReportResultRequest{} }
-func (m *ReportResultRequest) String() string { return proto.CompactTextString(m) }
-func (*ReportResultRequest) ProtoMessage()    {}
-func (*ReportResultRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_53459f08935e9319, []int{1}
-}
-
-func (m *ReportResultRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ReportResultRequest.Unmarshal(m, b)
-}
-func (m *ReportResultRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ReportResultRequest.Marshal(b, m, deterministic)
-}
-func (m *ReportResultRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ReportResultRequest.Merge(m, src)
-}
-func (m *ReportResultRequest) XXX_Size() int {
-	return xxx_messageInfo_ReportResultRequest.Size(m)
-}
-func (m *ReportResultRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_ReportResultRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ReportResultRequest proto.InternalMessageInfo
-
-func (m *ReportResultRequest) GetName() string {
-	if m != nil {
-		return m.Name
-	}
-	return ""
-}
-
-func (m *ReportResultRequest) GetResult() *Result {
-	if m != nil {
-		return m.Result
-	}
-	return nil
-}
-
 // Result for a single invocation request.
 type Result struct {
 	// Final state of the test execution.
@@ -252,7 +202,7 @@
 func (m *Result) String() string { return proto.CompactTextString(m) }
 func (*Result) ProtoMessage()    {}
 func (*Result) Descriptor() ([]byte, []int) {
-	return fileDescriptor_53459f08935e9319, []int{2}
+	return fileDescriptor_53459f08935e9319, []int{1}
 }
 
 func (m *Result) XXX_Unmarshal(b []byte) error {
@@ -309,7 +259,7 @@
 func (m *Result_Error) String() string { return proto.CompactTextString(m) }
 func (*Result_Error) ProtoMessage()    {}
 func (*Result_Error) Descriptor() ([]byte, []int) {
-	return fileDescriptor_53459f08935e9319, []int{2, 0}
+	return fileDescriptor_53459f08935e9319, []int{1, 0}
 }
 
 func (m *Result_Error) XXX_Unmarshal(b []byte) error {
@@ -351,6 +301,56 @@
 	return nil
 }
 
+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"`
+	// Result to report.
+	Result               *Result  `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *ReportResultRequest) Reset()         { *m = ReportResultRequest{} }
+func (m *ReportResultRequest) String() string { return proto.CompactTextString(m) }
+func (*ReportResultRequest) ProtoMessage()    {}
+func (*ReportResultRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_53459f08935e9319, []int{2}
+}
+
+func (m *ReportResultRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ReportResultRequest.Unmarshal(m, b)
+}
+func (m *ReportResultRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ReportResultRequest.Marshal(b, m, deterministic)
+}
+func (m *ReportResultRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ReportResultRequest.Merge(m, src)
+}
+func (m *ReportResultRequest) XXX_Size() int {
+	return xxx_messageInfo_ReportResultRequest.Size(m)
+}
+func (m *ReportResultRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_ReportResultRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ReportResultRequest proto.InternalMessageInfo
+
+func (m *ReportResultRequest) GetRequest() string {
+	if m != nil {
+		return m.Request
+	}
+	return ""
+}
+
+func (m *ReportResultRequest) GetResult() *Result {
+	if m != nil {
+		return m.Result
+	}
+	return nil
+}
+
 type ReportResultResponse struct {
 	// If set, the invocation should immediately terminate, skipping remaining
 	// requests.
@@ -393,15 +393,15 @@
 }
 
 type ReportLogRequest struct {
-	// The request to report logs for, identified by the
-	// Invocation.Request.name field.
-	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	// path of the log "file".
+	// Name of the log sink.
 	//
-	// path may be interpreted as local file paths or parts of a URL. path must be
+	// name may be interpreted as a local file path or part of a URL. name must be
 	// a valid resource name per https://aip.dev/122 and must be a valid POSIX
 	// file path.
-	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
+	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"`
 	// Uninterpreted chunk of log-data.
 	Data                 []byte   `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -441,9 +441,9 @@
 	return ""
 }
 
-func (m *ReportLogRequest) GetPath() string {
+func (m *ReportLogRequest) GetRequest() string {
 	if m != nil {
-		return m.Path
+		return m.Request
 	}
 	return ""
 }
@@ -588,9 +588,9 @@
 	proto.RegisterEnum("test.rtd.v1.Result_Error_Source", Result_Error_Source_name, Result_Error_Source_value)
 	proto.RegisterEnum("test.rtd.v1.Result_Error_Severity", Result_Error_Severity_name, Result_Error_Severity_value)
 	proto.RegisterType((*ProgressSinkClientConfig)(nil), "test.rtd.v1.ProgressSinkClientConfig")
-	proto.RegisterType((*ReportResultRequest)(nil), "test.rtd.v1.ReportResultRequest")
 	proto.RegisterType((*Result)(nil), "test.rtd.v1.Result")
 	proto.RegisterType((*Result_Error)(nil), "test.rtd.v1.Result.Error")
+	proto.RegisterType((*ReportResultRequest)(nil), "test.rtd.v1.ReportResultRequest")
 	proto.RegisterType((*ReportResultResponse)(nil), "test.rtd.v1.ReportResultResponse")
 	proto.RegisterType((*ReportLogRequest)(nil), "test.rtd.v1.ReportLogRequest")
 	proto.RegisterType((*ReportLogResponse)(nil), "test.rtd.v1.ReportLogResponse")
@@ -601,50 +601,50 @@
 func init() { proto.RegisterFile("test/rtd/v1/progress.proto", fileDescriptor_53459f08935e9319) }
 
 var fileDescriptor_53459f08935e9319 = []byte{
-	// 678 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x94, 0x61, 0x6f, 0xda, 0x3c,
-	0x10, 0xc7, 0x1f, 0xa0, 0x50, 0x38, 0x78, 0xba, 0xd4, 0xed, 0x5a, 0x8a, 0xda, 0x89, 0x65, 0x7b,
-	0x81, 0x34, 0x29, 0x11, 0x6c, 0x2f, 0x36, 0x4d, 0xda, 0x44, 0x83, 0x3b, 0x45, 0x63, 0x14, 0x39,
-	0x94, 0xa9, 0xd3, 0x24, 0x94, 0x82, 0x09, 0xd1, 0x20, 0x66, 0xb6, 0x41, 0xda, 0x27, 0xd8, 0xcb,
-	0x7d, 0xb5, 0x7d, 0xa4, 0x29, 0x4e, 0xd2, 0x52, 0x4a, 0x79, 0x77, 0xb9, 0xfb, 0xfd, 0xcf, 0xe7,
-	0xbb, 0x8b, 0xa1, 0x22, 0xa9, 0x90, 0x26, 0x97, 0x23, 0x73, 0x59, 0x37, 0xe7, 0x9c, 0x79, 0x9c,
-	0x0a, 0x61, 0xcc, 0x39, 0x93, 0x0c, 0x15, 0xc3, 0x98, 0xc1, 0xe5, 0xc8, 0x58, 0xd6, 0x2b, 0xa7,
-	0x1e, 0x63, 0xde, 0x94, 0x9a, 0x2a, 0x74, 0xb3, 0x18, 0x9b, 0x42, 0xf2, 0xc5, 0x50, 0x46, 0xa8,
-	0x6e, 0x40, 0xb9, 0x1b, 0x8b, 0x1d, 0x3f, 0xf8, 0x61, 0x4d, 0x7d, 0x1a, 0x48, 0x8b, 0x05, 0x63,
-	0xdf, 0x43, 0x08, 0x76, 0xe6, 0x8c, 0xcb, 0x72, 0xaa, 0x9a, 0xaa, 0x65, 0x89, 0xb2, 0xf5, 0x3e,
-	0x1c, 0x10, 0x1a, 0x5a, 0x84, 0x8a, 0xc5, 0x54, 0x12, 0xfa, 0x73, 0x41, 0x85, 0x0c, 0xd1, 0xc0,
-	0x9d, 0x51, 0x85, 0x16, 0x88, 0xb2, 0xd1, 0x2b, 0xc8, 0x71, 0x05, 0x95, 0xd3, 0xd5, 0x54, 0xad,
-	0xd8, 0x38, 0x30, 0x56, 0xca, 0x32, 0x62, 0x7d, 0x8c, 0xe8, 0xbf, 0x77, 0x20, 0x17, 0xb9, 0x90,
-	0x09, 0x59, 0x21, 0x5d, 0x19, 0x25, 0xdb, 0x6b, 0x9c, 0x6c, 0x90, 0x19, 0x4e, 0x08, 0x90, 0x88,
-	0x43, 0x75, 0xc8, 0x51, 0xce, 0x19, 0x17, 0xe5, 0x74, 0x35, 0x53, 0x2b, 0x6e, 0x56, 0xe0, 0x90,
-	0x20, 0x31, 0x58, 0xf9, 0x9b, 0x86, 0xac, 0xf2, 0xa0, 0xb7, 0x90, 0x13, 0x6c, 0xc1, 0x87, 0xc9,
-	0x71, 0xd5, 0x47, 0xc5, 0x86, 0xa3, 0x38, 0x12, 0xf3, 0xe8, 0x03, 0xe4, 0x05, 0x5d, 0x52, 0xee,
-	0xcb, 0x5f, 0xea, 0x86, 0x7b, 0x0d, 0x7d, 0x8b, 0x36, 0x26, 0xc9, 0xad, 0x06, 0xd5, 0x61, 0x77,
-	0x44, 0xa5, 0xeb, 0x4f, 0x45, 0x39, 0xa3, 0x1a, 0x74, 0x6c, 0x44, 0xa3, 0x32, 0x92, 0x51, 0x19,
-	0x8e, 0x1a, 0x15, 0x49, 0x38, 0xfd, 0x1a, 0x72, 0x51, 0x11, 0xe8, 0x08, 0x90, 0x73, 0x79, 0x45,
-	0x2c, 0x3c, 0xb8, 0xea, 0x38, 0x5d, 0x6c, 0xd9, 0x17, 0x36, 0x6e, 0x69, 0xff, 0xa1, 0x3c, 0xec,
-	0xf4, 0xb0, 0xd3, 0xd3, 0x52, 0x21, 0x41, 0xf0, 0x97, 0xcb, 0x1e, 0x1e, 0x84, 0x8e, 0x41, 0x8b,
-	0xd8, 0x7d, 0x4c, 0xb4, 0x34, 0x7a, 0x0a, 0xfb, 0xca, 0xd1, 0x6e, 0x9e, 0x0f, 0x1c, 0x4c, 0xfa,
-	0xb6, 0x85, 0x1d, 0x2d, 0xa3, 0x7f, 0x84, 0x7c, 0x52, 0x23, 0x2a, 0xc3, 0xa1, 0x83, 0xfb, 0x98,
-	0xd8, 0xbd, 0xeb, 0xb5, 0xf4, 0x25, 0xc8, 0x5b, 0xc4, 0xee, 0xd9, 0x56, 0xb3, 0xad, 0xa5, 0x50,
-	0x11, 0x76, 0xbf, 0x36, 0x49, 0xc7, 0xee, 0x7c, 0xd2, 0xd2, 0xfa, 0x05, 0x64, 0xd5, 0x54, 0xc2,
-	0x03, 0x9c, 0x5e, 0xb3, 0xb7, 0x5e, 0xd9, 0xff, 0x50, 0x70, 0xae, 0x2c, 0x0b, 0xe3, 0x16, 0x6e,
-	0x69, 0x29, 0x04, 0x90, 0xbb, 0x68, 0xda, 0x6d, 0xdc, 0xd2, 0xd2, 0x61, 0x1e, 0xe7, 0xb3, 0xdd,
-	0xed, 0xe2, 0x96, 0x96, 0xd1, 0xdf, 0xc0, 0xe1, 0xfd, 0x0d, 0x13, 0x73, 0x16, 0x08, 0x8a, 0x4e,
-	0xa1, 0x20, 0x29, 0x9f, 0xf9, 0x41, 0xb2, 0x1a, 0x79, 0x72, 0xe7, 0xd0, 0x3b, 0xa0, 0x45, 0xaa,
-	0x36, 0xf3, 0xb6, 0x2d, 0x65, 0xb8, 0xd3, 0xae, 0x9c, 0xa8, 0x81, 0x15, 0x88, 0xb2, 0x43, 0xdf,
-	0xc8, 0x95, 0xae, 0x9a, 0x42, 0x89, 0x28, 0x5b, 0x3f, 0x80, 0xfd, 0x95, 0x7c, 0x51, 0x09, 0x3a,
-	0x85, 0xa3, 0x26, 0x1f, 0x4e, 0xfc, 0x25, 0x6d, 0x72, 0xe9, 0x8f, 0xdd, 0xe1, 0xd6, 0xfd, 0x2f,
-	0xc3, 0x2e, 0x8f, 0xc2, 0xf1, 0x69, 0xc9, 0x27, 0x3a, 0x03, 0x98, 0xb2, 0xa1, 0x3b, 0x1d, 0xa8,
-	0x52, 0x32, 0x2a, 0x58, 0x50, 0x9e, 0xae, 0x2b, 0x27, 0xfa, 0x09, 0x1c, 0x3f, 0x38, 0x26, 0xaa,
-	0xa0, 0xf1, 0x27, 0x0d, 0xa5, 0xd5, 0xff, 0x15, 0x39, 0x50, 0x5a, 0xed, 0x16, 0x5a, 0x5f, 0xdf,
-	0x07, 0xbf, 0x6a, 0xe5, 0xf9, 0x16, 0x22, 0x6e, 0x75, 0x1b, 0x0a, 0xb7, 0x97, 0x47, 0x67, 0x1b,
-	0xf8, 0xbb, 0x26, 0x57, 0x9e, 0x3d, 0x16, 0x8e, 0x72, 0xd5, 0x52, 0xe8, 0x3b, 0x3c, 0x59, 0xbb,
-	0x0e, 0x7a, 0x71, 0x4f, 0xb4, 0xb9, 0xa7, 0x95, 0x97, 0xdb, 0xa1, 0x28, 0xff, 0xf9, 0xfb, 0x6f,
-	0xef, 0x3c, 0x66, 0x0c, 0x27, 0x9c, 0xcd, 0xfc, 0xc5, 0xcc, 0x60, 0xdc, 0x33, 0x93, 0x0f, 0x26,
-	0x4c, 0x3f, 0x18, 0x73, 0x37, 0x7a, 0xfa, 0x4c, 0x8f, 0x99, 0xea, 0xcd, 0xf4, 0x83, 0x25, 0x1b,
-	0xba, 0xd2, 0x67, 0xc1, 0x4d, 0x4e, 0x45, 0x5e, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x9e, 0x65,
-	0xb2, 0xc2, 0x4d, 0x05, 0x00, 0x00,
+	// 682 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xdf, 0x6e, 0xda, 0x4a,
+	0x10, 0xc6, 0x0f, 0xe6, 0x4f, 0x60, 0xe0, 0x9c, 0xe3, 0x6c, 0xd2, 0x84, 0xa0, 0xa4, 0xa2, 0x6e,
+	0x2f, 0x90, 0x2a, 0xd9, 0x82, 0xf6, 0xa2, 0x55, 0xa5, 0x56, 0xc4, 0x6c, 0x2a, 0xab, 0x34, 0x41,
+	0x6b, 0x27, 0x55, 0xaa, 0x48, 0xc8, 0x81, 0xc5, 0x58, 0x05, 0x2f, 0xdd, 0x5d, 0x90, 0xfa, 0x04,
+	0xbd, 0xec, 0xab, 0xf5, 0x91, 0x2a, 0xaf, 0x71, 0x42, 0x08, 0xc9, 0x45, 0xef, 0xd6, 0x33, 0xbf,
+	0x99, 0xf9, 0xfc, 0x8d, 0xbd, 0x50, 0x93, 0x54, 0x48, 0x8b, 0xcb, 0xa1, 0xb5, 0x68, 0x5a, 0x33,
+	0xce, 0x02, 0x4e, 0x85, 0x30, 0x67, 0x9c, 0x49, 0x86, 0xca, 0x71, 0xce, 0xe4, 0x72, 0x68, 0x2e,
+	0x9a, 0xb5, 0xc3, 0x80, 0xb1, 0x60, 0x42, 0x2d, 0x95, 0xba, 0x9e, 0x8f, 0x2c, 0x21, 0xf9, 0x7c,
+	0x20, 0x13, 0xd4, 0x30, 0xa1, 0xda, 0x5b, 0x16, 0xbb, 0x61, 0xf4, 0xcd, 0x9e, 0x84, 0x34, 0x92,
+	0x36, 0x8b, 0x46, 0x61, 0x80, 0x10, 0xe4, 0x66, 0x8c, 0xcb, 0x6a, 0xa6, 0x9e, 0x69, 0xe4, 0x89,
+	0x3a, 0x1b, 0x3f, 0x73, 0x50, 0x20, 0x54, 0xcc, 0x27, 0x12, 0x59, 0x90, 0x17, 0xd2, 0x97, 0x54,
+	0xe5, 0xff, 0x6b, 0x1d, 0x98, 0x2b, 0x53, 0xcd, 0x84, 0x31, 0xdd, 0x18, 0x20, 0x09, 0x87, 0x9a,
+	0x50, 0xa0, 0x9c, 0x33, 0x2e, 0xaa, 0x5a, 0x3d, 0xdb, 0x28, 0x6f, 0xae, 0xc0, 0x31, 0x41, 0x96,
+	0x60, 0xed, 0xb7, 0x06, 0x79, 0x15, 0x41, 0x6f, 0xa0, 0x20, 0xd8, 0x9c, 0x0f, 0xd2, 0x71, 0xf5,
+	0x07, 0x8b, 0x4d, 0x57, 0x71, 0x64, 0xc9, 0xa3, 0xf7, 0x50, 0x14, 0x74, 0x41, 0x79, 0x28, 0x7f,
+	0x54, 0x35, 0x55, 0x6b, 0x3c, 0x52, 0xbb, 0x24, 0xc9, 0x4d, 0x0d, 0x6a, 0xc2, 0xd6, 0x90, 0x4a,
+	0x3f, 0x9c, 0x88, 0x6a, 0xb6, 0x9e, 0x69, 0x94, 0x5b, 0xfb, 0x66, 0x62, 0xa9, 0x99, 0x5a, 0x6a,
+	0xba, 0xca, 0x52, 0x92, 0x72, 0xc6, 0x25, 0x14, 0x12, 0x11, 0x68, 0x0f, 0x90, 0x7b, 0x76, 0x4e,
+	0x6c, 0xdc, 0x3f, 0x3f, 0x75, 0x7b, 0xd8, 0x76, 0x4e, 0x1c, 0xdc, 0xd1, 0xff, 0x41, 0x45, 0xc8,
+	0x79, 0xd8, 0xf5, 0xf4, 0x4c, 0x4c, 0x10, 0xfc, 0xf9, 0xcc, 0xc3, 0xfd, 0x38, 0xd0, 0xef, 0x10,
+	0xe7, 0x02, 0x13, 0x5d, 0x43, 0x4f, 0x60, 0x5b, 0x05, 0xba, 0xed, 0xe3, 0xbe, 0x8b, 0xc9, 0x85,
+	0x63, 0x63, 0x57, 0xcf, 0x1a, 0x1f, 0xa0, 0x98, 0x6a, 0x44, 0x55, 0xd8, 0x75, 0xf1, 0x05, 0x26,
+	0x8e, 0x77, 0xb9, 0xd6, 0xbe, 0x02, 0x45, 0x9b, 0x38, 0x9e, 0x63, 0xb7, 0xbb, 0x7a, 0x06, 0x95,
+	0x61, 0xeb, 0x4b, 0x9b, 0x9c, 0x3a, 0xa7, 0x1f, 0x75, 0xcd, 0x38, 0x81, 0xbc, 0xda, 0x4a, 0x3c,
+	0xc0, 0xf5, 0xda, 0xde, 0xba, 0xb2, 0x7f, 0xa1, 0xe4, 0x9e, 0xdb, 0x36, 0xc6, 0x1d, 0xdc, 0xd1,
+	0x33, 0x08, 0xa0, 0x70, 0xd2, 0x76, 0xba, 0xb8, 0xa3, 0x6b, 0x71, 0x1f, 0xf7, 0x93, 0xd3, 0xeb,
+	0xe1, 0x8e, 0x9e, 0x35, 0xae, 0x60, 0x87, 0xd0, 0xf8, 0x9b, 0x48, 0xfc, 0x23, 0xf4, 0xfb, 0x9c,
+	0x0a, 0x89, 0xaa, 0xb0, 0xc5, 0x93, 0xa3, 0x5a, 0x54, 0x89, 0xa4, 0x8f, 0xe8, 0x25, 0x14, 0xb8,
+	0x42, 0xd5, 0x16, 0xca, 0xad, 0x9d, 0x0d, 0x5b, 0x20, 0x4b, 0xc4, 0x78, 0x0d, 0xbb, 0x77, 0xbb,
+	0x8b, 0x19, 0x8b, 0x04, 0x45, 0x87, 0x50, 0x92, 0x94, 0x4f, 0xc3, 0x28, 0xfd, 0xf0, 0x8a, 0xe4,
+	0x36, 0x60, 0x78, 0xa0, 0x27, 0x55, 0x5d, 0x16, 0xa4, 0x82, 0x10, 0xe4, 0x22, 0x7f, 0x4a, 0x97,
+	0x6a, 0xd4, 0x79, 0x55, 0xa4, 0x76, 0x57, 0x24, 0x82, 0xdc, 0xd0, 0x97, 0xbe, 0xda, 0x74, 0x85,
+	0xa8, 0xb3, 0xb1, 0x03, 0xdb, 0x2b, 0x5d, 0x13, 0x21, 0x06, 0x85, 0xbd, 0x36, 0x1f, 0x8c, 0xc3,
+	0x05, 0x6d, 0x73, 0x19, 0x8e, 0xfc, 0x81, 0xfc, 0xbb, 0x81, 0x47, 0x00, 0x13, 0x36, 0xf0, 0x27,
+	0xfd, 0x99, 0x2f, 0xc7, 0x6a, 0x6c, 0x89, 0x94, 0x54, 0xa4, 0xe7, 0xcb, 0xb1, 0x71, 0x00, 0xfb,
+	0xf7, 0xc6, 0x24, 0x0a, 0x5a, 0xbf, 0x34, 0xa8, 0xac, 0xfe, 0xbb, 0xc8, 0x85, 0xca, 0xaa, 0x67,
+	0x68, 0xfd, 0x17, 0xb9, 0xb7, 0xac, 0xda, 0xb3, 0x47, 0x88, 0xa5, 0xe1, 0x5d, 0x28, 0xdd, 0xbc,
+	0x3c, 0x3a, 0xda, 0xc0, 0xdf, 0x5a, 0x5d, 0x7b, 0xfa, 0x50, 0x3a, 0xe9, 0xd5, 0xc8, 0xa0, 0x2b,
+	0xf8, 0x7f, 0xed, 0x75, 0xd0, 0xf3, 0x3b, 0x45, 0x9b, 0x3d, 0xad, 0xbd, 0x78, 0x1c, 0x4a, 0xfa,
+	0x1f, 0xbf, 0xfb, 0xfa, 0x36, 0x60, 0xe6, 0x60, 0xcc, 0xd9, 0x34, 0x9c, 0x4f, 0x4d, 0xc6, 0x03,
+	0x2b, 0x7d, 0x60, 0xc2, 0x0a, 0xa3, 0x11, 0xf7, 0x93, 0x6b, 0xd0, 0x0a, 0x98, 0xa5, 0xee, 0xcf,
+	0x30, 0x5a, 0xb0, 0x81, 0x2f, 0x43, 0x16, 0x5d, 0x17, 0x54, 0xe6, 0xd5, 0x9f, 0x00, 0x00, 0x00,
+	0xff, 0xff, 0x99, 0x04, 0x9c, 0x51, 0x59, 0x05, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
diff --git a/src/test/rtd/v1/progress.proto b/src/test/rtd/v1/progress.proto
index 4092e0e..4faead2 100644
--- a/src/test/rtd/v1/progress.proto
+++ b/src/test/rtd/v1/progress.proto
@@ -57,15 +57,6 @@
   rpc ArchiveArtifact(ArchiveArtifactRequest) returns (ArchiveArtifactResponse);
 }
 
-message ReportResultRequest {
-  // The request to report results for, identified by the
-  // Invocation.Request.name field.
-  string name = 1;
-
-  // Result to report.
-  Result result = 2;
-}
-
 // Result for a single invocation request.
 message Result {
   // Enum entries *may* be added to this enum in the future.
@@ -141,6 +132,15 @@
   repeated Error errors = 2;
 }
 
+message ReportResultRequest {
+  // The request to report results for, identified by the
+  // Invocation.Request.name field.
+  string request = 1;
+
+  // Result to report.
+  Result result = 2;
+}
+
 message ReportResultResponse {
   // If set, the invocation should immediately terminate, skipping remaining
   // requests.
@@ -148,16 +148,16 @@
 }
 
 message ReportLogRequest {
-  // The request to report logs for, identified by the
-  // Invocation.Request.name field.
-  string name = 1;
-
-  // path of the log "file".
+  // Name of the log sink.
   //
-  // path may be interpreted as local file paths or parts of a URL. path must be
+  // name may be interpreted as a local file path or part of a URL. name must be
   // a valid resource name per https://aip.dev/122 and must be a valid POSIX
   // file path.
-  string path = 2;
+  string name = 1;
+
+  // The request to report logs for, identified by the
+  // Invocation.Request.name field.
+  string request = 2;
 
   // Uninterpreted chunk of log-data.
   bytes data = 3;
