You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: telemetry.pb.go
    path of file: ./repos/rill/proto/gen/rill/admin/v1
    
    the code of the file until where you have to start completion: // Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.33.0
// 	protoc        (unknown)
// source: rill/admin/v1/telemetry.proto

package adminv1

import (
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type RecordEventsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Events []*structpb.Struct `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
}

func (x *RecordEventsRequest) Reset() {
	*x = RecordEventsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_rill_admin_v1_telemetry_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RecordEventsRequest) String() string {
	ret
    
func file_rill_admin_v1_telemetry_proto_init() {
	if File_rill_admin_v1_telemetry_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_rill_admin_v1_telemetry_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RecordEventsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_rill_admin_v1_telemetry_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RecordEventsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_rill_admin_v1_telemetry_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   2,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_rill_admin_v1_telemetry_proto_goTypes,
		DependencyIndexes: file_rill_admin_v1_telemetry_proto_depIdxs,
		MessageInfos:      file_rill_admin_v1_telemetry_proto_msgTypes,
	}.Build()
	File_rill_admin_v1_telemetry_proto = out.File
	file_rill_admin_v1_telemetry_proto_rawDesc = nil
	file_rill_admin_v1_telemetry_proto_goTypes = nil
	file_rill_admin_v1_telemetry_proto_depIdxs = nil
}