// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.33.0 // protoc v4.25.3 // source: source_metadata.proto package source_metadatapb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" 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 Visibility int32 const ( Visibility_public Visibility = 0 Visibility_private Visibility = 1 Visibility_shared Visibility = 2 Visibility_unknown Visibility = 3 ) // Enum value maps for Visibility. var ( Visibility_name = map[int32]string{ 0: "public", 1: "private", 2: "shared", 3: "unknown", } Visibility_value = map[string]int32{ "public": 0, "private": 1, "shared": 2, "unknown": 3, } ) func (x Visibility) Enum() *Visibility { p := new(Visibility) *p = x return p } func (x Visibility) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Visibility) Descriptor() protoreflect.EnumDescriptor { return file_source_metadata_proto_enumTypes[0].Descriptor() } func (Visibility) Type() protoreflect.EnumType { return &file_source_metadata_proto_enumTypes[0] } func (x Visibility) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Visibility.Descriptor instead. func (Visibility) EnumDescriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{0} } type Azure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Container string `protobuf:"bytes,1,opt,name=container,proto3" json:"container,omitempty"` File string `protobuf:"bytes,2,opt,name=file,proto3" json:"file,omitempty"` Uploaded string `protobuf:"bytes,3,opt,name=uploaded,proto3" json:"uploaded,omitempty"` Link string `protobuf:"bytes,4,opt,name=link,proto3" json:"link,omitempty"` Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` } func (x *Azure) Reset() { *x = Azure{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Azure) String() string { return protoimpl.X.MessageStringOf(x) } func (*Azure) ProtoMessage() {} func (x *Azure) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Azure.ProtoReflect.Descriptor instead. func (*Azure) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{0} } func (x *Azure) GetContainer() string { if x != nil { return x.Container } return "" } func (x *Azure) GetFile() string { if x != nil { return x.File } return "" } func (x *Azure) GetUploaded() string { if x != nil { return x.Uploaded } return "" } func (x *Azure) GetLink() string { if x != nil { return x.Link } return "" } func (x *Azure) GetEmail() string { if x != nil { return x.Email } return "" } type Bitbucket struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields File string `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` Repository string `protobuf:"bytes,2,opt,name=repository,proto3" json:"repository,omitempty"` Workspace string `protobuf:"bytes,3,opt,name=workspace,proto3" json:"workspace,omitempty"` SnippetId string `protobuf:"bytes,4,opt,name=snippet_id,json=snippetId,proto3" json:"snippet_id,omitempty"` Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` Commit string `protobuf:"bytes,6,opt,name=commit,proto3" json:"commit,omitempty"` Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` Link string `protobuf:"bytes,8,opt,name=link,proto3" json:"link,omitempty"` Timestamp string `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Line int64 `protobuf:"varint,10,opt,name=line,proto3" json:"line,omitempty"` } func (x *Bitbucket) Reset() { *x = Bitbucket{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Bitbucket) String() string { return protoimpl.X.MessageStringOf(x) } func (*Bitbucket) ProtoMessage() {} func (x *Bitbucket) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Bitbucket.ProtoReflect.Descriptor instead. func (*Bitbucket) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{1} } func (x *Bitbucket) GetFile() string { if x != nil { return x.File } return "" } func (x *Bitbucket) GetRepository() string { if x != nil { return x.Repository } return "" } func (x *Bitbucket) GetWorkspace() string { if x != nil { return x.Workspace } return "" } func (x *Bitbucket) GetSnippetId() string { if x != nil { return x.SnippetId } return "" } func (x *Bitbucket) GetTitle() string { if x != nil { return x.Title } return "" } func (x *Bitbucket) GetCommit() string { if x != nil { return x.Commit } return "" } func (x *Bitbucket) GetEmail() string { if x != nil { return x.Email } return "" } func (x *Bitbucket) GetLink() string { if x != nil { return x.Link } return "" } func (x *Bitbucket) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *Bitbucket) GetLine() int64 { if x != nil { return x.Line } return 0 } type Buildkite struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` Pipeline string `protobuf:"bytes,2,opt,name=pipeline,proto3" json:"pipeline,omitempty"` Link string `protobuf:"bytes,3,opt,name=link,proto3" json:"link,omitempty"` Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email,omitempty"` BuildNumber int64 `protobuf:"varint,5,opt,name=build_number,json=buildNumber,proto3" json:"build_number,omitempty"` Timestamp string `protobuf:"bytes,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *Buildkite) Reset() { *x = Buildkite{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Buildkite) String() string { return protoimpl.X.MessageStringOf(x) } func (*Buildkite) ProtoMessage() {} func (x *Buildkite) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Buildkite.ProtoReflect.Descriptor instead. func (*Buildkite) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{2} } func (x *Buildkite) GetOrg() string { if x != nil { return x.Org } return "" } func (x *Buildkite) GetPipeline() string { if x != nil { return x.Pipeline } return "" } func (x *Buildkite) GetLink() string { if x != nil { return x.Link } return "" } func (x *Buildkite) GetEmail() string { if x != nil { return x.Email } return "" } func (x *Buildkite) GetBuildNumber() int64 { if x != nil { return x.BuildNumber } return 0 } func (x *Buildkite) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } type CircleCI struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields VcsType string `protobuf:"bytes,1,opt,name=vcs_type,json=vcsType,proto3" json:"vcs_type,omitempty"` Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` Repository string `protobuf:"bytes,3,opt,name=repository,proto3" json:"repository,omitempty"` BuildNumber int64 `protobuf:"varint,4,opt,name=build_number,json=buildNumber,proto3" json:"build_number,omitempty"` BuildStep string `protobuf:"bytes,5,opt,name=build_step,json=buildStep,proto3" json:"build_step,omitempty"` Link string `protobuf:"bytes,6,opt,name=link,proto3" json:"link,omitempty"` Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` } func (x *CircleCI) Reset() { *x = CircleCI{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CircleCI) String() string { return protoimpl.X.MessageStringOf(x) } func (*CircleCI) ProtoMessage() {} func (x *CircleCI) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CircleCI.ProtoReflect.Descriptor instead. func (*CircleCI) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{3} } func (x *CircleCI) GetVcsType() string { if x != nil { return x.VcsType } return "" } func (x *CircleCI) GetUsername() string { if x != nil { return x.Username } return "" } func (x *CircleCI) GetRepository() string { if x != nil { return x.Repository } return "" } func (x *CircleCI) GetBuildNumber() int64 { if x != nil { return x.BuildNumber } return 0 } func (x *CircleCI) GetBuildStep() string { if x != nil { return x.BuildStep } return "" } func (x *CircleCI) GetLink() string { if x != nil { return x.Link } return "" } func (x *CircleCI) GetEmail() string { if x != nil { return x.Email } return "" } type TravisCI struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` Repository string `protobuf:"bytes,3,opt,name=repository,proto3" json:"repository,omitempty"` BuildNumber string `protobuf:"bytes,4,opt,name=build_number,json=buildNumber,proto3" json:"build_number,omitempty"` JobNumber string `protobuf:"bytes,5,opt,name=job_number,json=jobNumber,proto3" json:"job_number,omitempty"` Link string `protobuf:"bytes,6,opt,name=link,proto3" json:"link,omitempty"` Public bool `protobuf:"varint,7,opt,name=public,proto3" json:"public,omitempty"` } func (x *TravisCI) Reset() { *x = TravisCI{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TravisCI) String() string { return protoimpl.X.MessageStringOf(x) } func (*TravisCI) ProtoMessage() {} func (x *TravisCI) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TravisCI.ProtoReflect.Descriptor instead. func (*TravisCI) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{4} } func (x *TravisCI) GetUsername() string { if x != nil { return x.Username } return "" } func (x *TravisCI) GetRepository() string { if x != nil { return x.Repository } return "" } func (x *TravisCI) GetBuildNumber() string { if x != nil { return x.BuildNumber } return "" } func (x *TravisCI) GetJobNumber() string { if x != nil { return x.JobNumber } return "" } func (x *TravisCI) GetLink() string { if x != nil { return x.Link } return "" } func (x *TravisCI) GetPublic() bool { if x != nil { return x.Public } return false } type Confluence struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Page string `protobuf:"bytes,1,opt,name=page,proto3" json:"page,omitempty"` Space string `protobuf:"bytes,2,opt,name=space,proto3" json:"space,omitempty"` Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` Link string `protobuf:"bytes,4,opt,name=link,proto3" json:"link,omitempty"` Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` Timestamp string `protobuf:"bytes,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Location string `protobuf:"bytes,7,opt,name=location,proto3" json:"location,omitempty"` File string `protobuf:"bytes,8,opt,name=file,proto3" json:"file,omitempty"` } func (x *Confluence) Reset() { *x = Confluence{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Confluence) String() string { return protoimpl.X.MessageStringOf(x) } func (*Confluence) ProtoMessage() {} func (x *Confluence) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Confluence.ProtoReflect.Descriptor instead. func (*Confluence) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{5} } func (x *Confluence) GetPage() string { if x != nil { return x.Page } return "" } func (x *Confluence) GetSpace() string { if x != nil { return x.Space } return "" } func (x *Confluence) GetVersion() string { if x != nil { return x.Version } return "" } func (x *Confluence) GetLink() string { if x != nil { return x.Link } return "" } func (x *Confluence) GetEmail() string { if x != nil { return x.Email } return "" } func (x *Confluence) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *Confluence) GetLocation() string { if x != nil { return x.Location } return "" } func (x *Confluence) GetFile() string { if x != nil { return x.File } return "" } type Docker struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields File string `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` Image string `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` Layer string `protobuf:"bytes,3,opt,name=layer,proto3" json:"layer,omitempty"` Tag string `protobuf:"bytes,4,opt,name=tag,proto3" json:"tag,omitempty"` } func (x *Docker) Reset() { *x = Docker{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Docker) String() string { return protoimpl.X.MessageStringOf(x) } func (*Docker) ProtoMessage() {} func (x *Docker) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Docker.ProtoReflect.Descriptor instead. func (*Docker) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{6} } func (x *Docker) GetFile() string { if x != nil { return x.File } return "" } func (x *Docker) GetImage() string { if x != nil { return x.Image } return "" } func (x *Docker) GetLayer() string { if x != nil { return x.Layer } return "" } func (x *Docker) GetTag() string { if x != nil { return x.Tag } return "" } type ECR struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields File string `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` Layer string `protobuf:"bytes,2,opt,name=layer,proto3" json:"layer,omitempty"` Image string `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"` Registry string `protobuf:"bytes,4,opt,name=registry,proto3" json:"registry,omitempty"` Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region,omitempty"` Link string `protobuf:"bytes,6,opt,name=link,proto3" json:"link,omitempty"` Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` } func (x *ECR) Reset() { *x = ECR{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ECR) String() string { return protoimpl.X.MessageStringOf(x) } func (*ECR) ProtoMessage() {} func (x *ECR) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ECR.ProtoReflect.Descriptor instead. func (*ECR) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{7} } func (x *ECR) GetFile() string { if x != nil { return x.File } return "" } func (x *ECR) GetLayer() string { if x != nil { return x.Layer } return "" } func (x *ECR) GetImage() string { if x != nil { return x.Image } return "" } func (x *ECR) GetRegistry() string { if x != nil { return x.Registry } return "" } func (x *ECR) GetRegion() string { if x != nil { return x.Region } return "" } func (x *ECR) GetLink() string { if x != nil { return x.Link } return "" } func (x *ECR) GetEmail() string { if x != nil { return x.Email } return "" } type Filesystem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields File string `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` Link string `protobuf:"bytes,2,opt,name=link,proto3" json:"link,omitempty"` Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` Line int64 `protobuf:"varint,4,opt,name=line,proto3" json:"line,omitempty"` } func (x *Filesystem) Reset() { *x = Filesystem{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Filesystem) String() string { return protoimpl.X.MessageStringOf(x) } func (*Filesystem) ProtoMessage() {} func (x *Filesystem) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Filesystem.ProtoReflect.Descriptor instead. func (*Filesystem) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{8} } func (x *Filesystem) GetFile() string { if x != nil { return x.File } return "" } func (x *Filesystem) GetLink() string { if x != nil { return x.Link } return "" } func (x *Filesystem) GetEmail() string { if x != nil { return x.Email } return "" } func (x *Filesystem) GetLine() int64 { if x != nil { return x.Line } return 0 } type Git struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Commit string `protobuf:"bytes,1,opt,name=commit,proto3" json:"commit,omitempty"` File string `protobuf:"bytes,2,opt,name=file,proto3" json:"file,omitempty"` Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` Repository string `protobuf:"bytes,4,opt,name=repository,proto3" json:"repository,omitempty"` Timestamp string `protobuf:"bytes,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Line int64 `protobuf:"varint,6,opt,name=line,proto3" json:"line,omitempty"` } func (x *Git) Reset() { *x = Git{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Git) String() string { return protoimpl.X.MessageStringOf(x) } func (*Git) ProtoMessage() {} func (x *Git) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Git.ProtoReflect.Descriptor instead. func (*Git) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{9} } func (x *Git) GetCommit() string { if x != nil { return x.Commit } return "" } func (x *Git) GetFile() string { if x != nil { return x.File } return "" } func (x *Git) GetEmail() string { if x != nil { return x.Email } return "" } func (x *Git) GetRepository() string { if x != nil { return x.Repository } return "" } func (x *Git) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *Git) GetLine() int64 { if x != nil { return x.Line } return 0 } type Github struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Link string `protobuf:"bytes,1,opt,name=link,proto3" json:"link,omitempty"` Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` Repository string `protobuf:"bytes,3,opt,name=repository,proto3" json:"repository,omitempty"` Commit string `protobuf:"bytes,4,opt,name=commit,proto3" json:"commit,omitempty"` Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` File string `protobuf:"bytes,6,opt,name=file,proto3" json:"file,omitempty"` Timestamp string `protobuf:"bytes,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Line int64 `protobuf:"varint,8,opt,name=line,proto3" json:"line,omitempty"` Visibility Visibility `protobuf:"varint,9,opt,name=visibility,proto3,enum=source_metadata.Visibility" json:"visibility,omitempty"` } func (x *Github) Reset() { *x = Github{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Github) String() string { return protoimpl.X.MessageStringOf(x) } func (*Github) ProtoMessage() {} func (x *Github) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Github.ProtoReflect.Descriptor instead. func (*Github) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{10} } func (x *Github) GetLink() string { if x != nil { return x.Link } return "" } func (x *Github) GetUsername() string { if x != nil { return x.Username } return "" } func (x *Github) GetRepository() string { if x != nil { return x.Repository } return "" } func (x *Github) GetCommit() string { if x != nil { return x.Commit } return "" } func (x *Github) GetEmail() string { if x != nil { return x.Email } return "" } func (x *Github) GetFile() string { if x != nil { return x.File } return "" } func (x *Github) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *Github) GetLine() int64 { if x != nil { return x.Line } return 0 } func (x *Github) GetVisibility() Visibility { if x != nil { return x.Visibility } return Visibility_public } type Gitlab struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Commit string `protobuf:"bytes,1,opt,name=commit,proto3" json:"commit,omitempty"` File string `protobuf:"bytes,2,opt,name=file,proto3" json:"file,omitempty"` Link string `protobuf:"bytes,3,opt,name=link,proto3" json:"link,omitempty"` Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email,omitempty"` Repository string `protobuf:"bytes,5,opt,name=repository,proto3" json:"repository,omitempty"` Timestamp string `protobuf:"bytes,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Line int64 `protobuf:"varint,7,opt,name=line,proto3" json:"line,omitempty"` ProjectId int64 `protobuf:"varint,8,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` ProjectName string `protobuf:"bytes,9,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"` ProjectOwner string `protobuf:"bytes,10,opt,name=project_owner,json=projectOwner,proto3" json:"project_owner,omitempty"` } func (x *Gitlab) Reset() { *x = Gitlab{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Gitlab) String() string { return protoimpl.X.MessageStringOf(x) } func (*Gitlab) ProtoMessage() {} func (x *Gitlab) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Gitlab.ProtoReflect.Descriptor instead. func (*Gitlab) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{11} } func (x *Gitlab) GetCommit() string { if x != nil { return x.Commit } return "" } func (x *Gitlab) GetFile() string { if x != nil { return x.File } return "" } func (x *Gitlab) GetLink() string { if x != nil { return x.Link } return "" } func (x *Gitlab) GetEmail() string { if x != nil { return x.Email } return "" } func (x *Gitlab) GetRepository() string { if x != nil { return x.Repository } return "" } func (x *Gitlab) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *Gitlab) GetLine() int64 { if x != nil { return x.Line } return 0 } func (x *Gitlab) GetProjectId() int64 { if x != nil { return x.ProjectId } return 0 } func (x *Gitlab) GetProjectName() string { if x != nil { return x.ProjectName } return "" } func (x *Gitlab) GetProjectOwner() string { if x != nil { return x.ProjectOwner } return "" } type GCS struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"` Filename string `protobuf:"bytes,2,opt,name=filename,proto3" json:"filename,omitempty"` Link string `protobuf:"bytes,3,opt,name=link,proto3" json:"link,omitempty"` Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email,omitempty"` CreatedAt string `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` UpdatedAt string `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` Acls []string `protobuf:"bytes,7,rep,name=acls,proto3" json:"acls,omitempty"` ContentType string `protobuf:"bytes,8,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` } func (x *GCS) Reset() { *x = GCS{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCS) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCS) ProtoMessage() {} func (x *GCS) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GCS.ProtoReflect.Descriptor instead. func (*GCS) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{12} } func (x *GCS) GetBucket() string { if x != nil { return x.Bucket } return "" } func (x *GCS) GetFilename() string { if x != nil { return x.Filename } return "" } func (x *GCS) GetLink() string { if x != nil { return x.Link } return "" } func (x *GCS) GetEmail() string { if x != nil { return x.Email } return "" } func (x *GCS) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } func (x *GCS) GetUpdatedAt() string { if x != nil { return x.UpdatedAt } return "" } func (x *GCS) GetAcls() []string { if x != nil { return x.Acls } return nil } func (x *GCS) GetContentType() string { if x != nil { return x.ContentType } return "" } type Jira struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Issue string `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"` Author string `protobuf:"bytes,2,opt,name=author,proto3" json:"author,omitempty"` Link string `protobuf:"bytes,3,opt,name=link,proto3" json:"link,omitempty"` Location string `protobuf:"bytes,4,opt,name=location,proto3" json:"location,omitempty"` Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` Timestamp string `protobuf:"bytes,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *Jira) Reset() { *x = Jira{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Jira) String() string { return protoimpl.X.MessageStringOf(x) } func (*Jira) ProtoMessage() {} func (x *Jira) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Jira.ProtoReflect.Descriptor instead. func (*Jira) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{13} } func (x *Jira) GetIssue() string { if x != nil { return x.Issue } return "" } func (x *Jira) GetAuthor() string { if x != nil { return x.Author } return "" } func (x *Jira) GetLink() string { if x != nil { return x.Link } return "" } func (x *Jira) GetLocation() string { if x != nil { return x.Location } return "" } func (x *Jira) GetEmail() string { if x != nil { return x.Email } return "" } func (x *Jira) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } type NPM struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields File string `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` Package string `protobuf:"bytes,2,opt,name=package,proto3" json:"package,omitempty"` Release string `protobuf:"bytes,3,opt,name=release,proto3" json:"release,omitempty"` Link string `protobuf:"bytes,4,opt,name=link,proto3" json:"link,omitempty"` Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` } func (x *NPM) Reset() { *x = NPM{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NPM) String() string { return protoimpl.X.MessageStringOf(x) } func (*NPM) ProtoMessage() {} func (x *NPM) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NPM.ProtoReflect.Descriptor instead. func (*NPM) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{14} } func (x *NPM) GetFile() string { if x != nil { return x.File } return "" } func (x *NPM) GetPackage() string { if x != nil { return x.Package } return "" } func (x *NPM) GetRelease() string { if x != nil { return x.Release } return "" } func (x *NPM) GetLink() string { if x != nil { return x.Link } return "" } func (x *NPM) GetEmail() string { if x != nil { return x.Email } return "" } type PyPi struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields File string `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` Package string `protobuf:"bytes,2,opt,name=package,proto3" json:"package,omitempty"` Release string `protobuf:"bytes,3,opt,name=release,proto3" json:"release,omitempty"` Link string `protobuf:"bytes,4,opt,name=link,proto3" json:"link,omitempty"` Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` } func (x *PyPi) Reset() { *x = PyPi{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PyPi) String() string { return protoimpl.X.MessageStringOf(x) } func (*PyPi) ProtoMessage() {} func (x *PyPi) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PyPi.ProtoReflect.Descriptor instead. func (*PyPi) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{15} } func (x *PyPi) GetFile() string { if x != nil { return x.File } return "" } func (x *PyPi) GetPackage() string { if x != nil { return x.Package } return "" } func (x *PyPi) GetRelease() string { if x != nil { return x.Release } return "" } func (x *PyPi) GetLink() string { if x != nil { return x.Link } return "" } func (x *PyPi) GetEmail() string { if x != nil { return x.Email } return "" } type S3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"` File string `protobuf:"bytes,2,opt,name=file,proto3" json:"file,omitempty"` Link string `protobuf:"bytes,3,opt,name=link,proto3" json:"link,omitempty"` Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` Timestamp string `protobuf:"bytes,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *S3) Reset() { *x = S3{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *S3) String() string { return protoimpl.X.MessageStringOf(x) } func (*S3) ProtoMessage() {} func (x *S3) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use S3.ProtoReflect.Descriptor instead. func (*S3) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{16} } func (x *S3) GetBucket() string { if x != nil { return x.Bucket } return "" } func (x *S3) GetFile() string { if x != nil { return x.File } return "" } func (x *S3) GetLink() string { if x != nil { return x.Link } return "" } func (x *S3) GetEmail() string { if x != nil { return x.Email } return "" } func (x *S3) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } type Slack struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChannelId string `protobuf:"bytes,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` ChannelName string `protobuf:"bytes,2,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"` Timestamp string `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` UserId string `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` Link string `protobuf:"bytes,5,opt,name=link,proto3" json:"link,omitempty"` File string `protobuf:"bytes,6,opt,name=file,proto3" json:"file,omitempty"` Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` Visibility Visibility `protobuf:"varint,8,opt,name=visibility,proto3,enum=source_metadata.Visibility" json:"visibility,omitempty"` Location string `protobuf:"bytes,9,opt,name=location,proto3" json:"location,omitempty"` } func (x *Slack) Reset() { *x = Slack{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Slack) String() string { return protoimpl.X.MessageStringOf(x) } func (*Slack) ProtoMessage() {} func (x *Slack) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Slack.ProtoReflect.Descriptor instead. func (*Slack) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{17} } func (x *Slack) GetChannelId() string { if x != nil { return x.ChannelId } return "" } func (x *Slack) GetChannelName() string { if x != nil { return x.ChannelName } return "" } func (x *Slack) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *Slack) GetUserId() string { if x != nil { return x.UserId } return "" } func (x *Slack) GetLink() string { if x != nil { return x.Link } return "" } func (x *Slack) GetFile() string { if x != nil { return x.File } return "" } func (x *Slack) GetEmail() string { if x != nil { return x.Email } return "" } func (x *Slack) GetVisibility() Visibility { if x != nil { return x.Visibility } return Visibility_public } func (x *Slack) GetLocation() string { if x != nil { return x.Location } return "" } type Gerrit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Commit string `protobuf:"bytes,1,opt,name=commit,proto3" json:"commit,omitempty"` File string `protobuf:"bytes,2,opt,name=file,proto3" json:"file,omitempty"` Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` Project string `protobuf:"bytes,4,opt,name=project,proto3" json:"project,omitempty"` // projects are what Gerrit calls repositories Timestamp string `protobuf:"bytes,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Line int64 `protobuf:"varint,6,opt,name=line,proto3" json:"line,omitempty"` } func (x *Gerrit) Reset() { *x = Gerrit{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Gerrit) String() string { return protoimpl.X.MessageStringOf(x) } func (*Gerrit) ProtoMessage() {} func (x *Gerrit) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Gerrit.ProtoReflect.Descriptor instead. func (*Gerrit) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{18} } func (x *Gerrit) GetCommit() string { if x != nil { return x.Commit } return "" } func (x *Gerrit) GetFile() string { if x != nil { return x.File } return "" } func (x *Gerrit) GetEmail() string { if x != nil { return x.Email } return "" } func (x *Gerrit) GetProject() string { if x != nil { return x.Project } return "" } func (x *Gerrit) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *Gerrit) GetLine() int64 { if x != nil { return x.Line } return 0 } type Test struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields File string `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` } func (x *Test) Reset() { *x = Test{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Test) String() string { return protoimpl.X.MessageStringOf(x) } func (*Test) ProtoMessage() {} func (x *Test) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Test.ProtoReflect.Descriptor instead. func (*Test) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{19} } func (x *Test) GetFile() string { if x != nil { return x.File } return "" } type Jenkins struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ProjectName string `protobuf:"bytes,1,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"` BuildNumber int64 `protobuf:"varint,2,opt,name=build_number,json=buildNumber,proto3" json:"build_number,omitempty"` Link string `protobuf:"bytes,3,opt,name=link,proto3" json:"link,omitempty"` Timestamp string `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *Jenkins) Reset() { *x = Jenkins{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Jenkins) String() string { return protoimpl.X.MessageStringOf(x) } func (*Jenkins) ProtoMessage() {} func (x *Jenkins) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Jenkins.ProtoReflect.Descriptor instead. func (*Jenkins) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{20} } func (x *Jenkins) GetProjectName() string { if x != nil { return x.ProjectName } return "" } func (x *Jenkins) GetBuildNumber() int64 { if x != nil { return x.BuildNumber } return 0 } func (x *Jenkins) GetLink() string { if x != nil { return x.Link } return "" } func (x *Jenkins) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } type Teams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChannelId string `protobuf:"bytes,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` ChannelName string `protobuf:"bytes,2,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"` Timestamp string `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` UserId string `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` Link string `protobuf:"bytes,5,opt,name=link,proto3" json:"link,omitempty"` File string `protobuf:"bytes,6,opt,name=file,proto3" json:"file,omitempty"` Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` Location string `protobuf:"bytes,8,opt,name=location,proto3" json:"location,omitempty"` TeamName string `protobuf:"bytes,9,opt,name=team_name,json=teamName,proto3" json:"team_name,omitempty"` TeamId string `protobuf:"bytes,10,opt,name=team_id,json=teamId,proto3" json:"team_id,omitempty"` } func (x *Teams) Reset() { *x = Teams{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Teams) String() string { return protoimpl.X.MessageStringOf(x) } func (*Teams) ProtoMessage() {} func (x *Teams) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Teams.ProtoReflect.Descriptor instead. func (*Teams) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{21} } func (x *Teams) GetChannelId() string { if x != nil { return x.ChannelId } return "" } func (x *Teams) GetChannelName() string { if x != nil { return x.ChannelName } return "" } func (x *Teams) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *Teams) GetUserId() string { if x != nil { return x.UserId } return "" } func (x *Teams) GetLink() string { if x != nil { return x.Link } return "" } func (x *Teams) GetFile() string { if x != nil { return x.File } return "" } func (x *Teams) GetEmail() string { if x != nil { return x.Email } return "" } func (x *Teams) GetLocation() string { if x != nil { return x.Location } return "" } func (x *Teams) GetTeamName() string { if x != nil { return x.TeamName } return "" } func (x *Teams) GetTeamId() string { if x != nil { return x.TeamId } return "" } // https://www.jfrog.com/confluence/display/JFROG/Artifactory+REST+API#ArtifactoryRESTAPI-FileInfo type Artifactory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"` Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` Link string `protobuf:"bytes,3,opt,name=link,proto3" json:"link,omitempty"` Timestamp string `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Username string `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"` Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"` } func (x *Artifactory) Reset() { *x = Artifactory{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Artifactory) String() string { return protoimpl.X.MessageStringOf(x) } func (*Artifactory) ProtoMessage() {} func (x *Artifactory) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Artifactory.ProtoReflect.Descriptor instead. func (*Artifactory) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{22} } func (x *Artifactory) GetRepo() string { if x != nil { return x.Repo } return "" } func (x *Artifactory) GetPath() string { if x != nil { return x.Path } return "" } func (x *Artifactory) GetLink() string { if x != nil { return x.Link } return "" } func (x *Artifactory) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *Artifactory) GetUsername() string { if x != nil { return x.Username } return "" } func (x *Artifactory) GetEmail() string { if x != nil { return x.Email } return "" } type Syslog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"` Appname string `protobuf:"bytes,2,opt,name=appname,proto3" json:"appname,omitempty"` Procid string `protobuf:"bytes,3,opt,name=procid,proto3" json:"procid,omitempty"` Timestamp string `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Client string `protobuf:"bytes,5,opt,name=client,proto3" json:"client,omitempty"` Facility string `protobuf:"bytes,6,opt,name=facility,proto3" json:"facility,omitempty"` } func (x *Syslog) Reset() { *x = Syslog{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Syslog) String() string { return protoimpl.X.MessageStringOf(x) } func (*Syslog) ProtoMessage() {} func (x *Syslog) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Syslog.ProtoReflect.Descriptor instead. func (*Syslog) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{23} } func (x *Syslog) GetHostname() string { if x != nil { return x.Hostname } return "" } func (x *Syslog) GetAppname() string { if x != nil { return x.Appname } return "" } func (x *Syslog) GetProcid() string { if x != nil { return x.Procid } return "" } func (x *Syslog) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *Syslog) GetClient() string { if x != nil { return x.Client } return "" } func (x *Syslog) GetFacility() string { if x != nil { return x.Facility } return "" } type Forager struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Metadata: // // *Forager_Github // *Forager_Npm // *Forager_Pypi Metadata isForager_Metadata `protobuf_oneof:"metadata"` } func (x *Forager) Reset() { *x = Forager{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Forager) String() string { return protoimpl.X.MessageStringOf(x) } func (*Forager) ProtoMessage() {} func (x *Forager) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Forager.ProtoReflect.Descriptor instead. func (*Forager) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{24} } func (m *Forager) GetMetadata() isForager_Metadata { if m != nil { return m.Metadata } return nil } func (x *Forager) GetGithub() *Github { if x, ok := x.GetMetadata().(*Forager_Github); ok { return x.Github } return nil } func (x *Forager) GetNpm() *NPM { if x, ok := x.GetMetadata().(*Forager_Npm); ok { return x.Npm } return nil } func (x *Forager) GetPypi() *PyPi { if x, ok := x.GetMetadata().(*Forager_Pypi); ok { return x.Pypi } return nil } type isForager_Metadata interface { isForager_Metadata() } type Forager_Github struct { Github *Github `protobuf:"bytes,1,opt,name=github,proto3,oneof"` } type Forager_Npm struct { Npm *NPM `protobuf:"bytes,2,opt,name=npm,proto3,oneof"` } type Forager_Pypi struct { Pypi *PyPi `protobuf:"bytes,3,opt,name=pypi,proto3,oneof"` } func (*Forager_Github) isForager_Metadata() {} func (*Forager_Npm) isForager_Metadata() {} func (*Forager_Pypi) isForager_Metadata() {} type SharePoint struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Link string `protobuf:"bytes,1,opt,name=link,proto3" json:"link,omitempty"` Timestamp string `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Author string `protobuf:"bytes,3,opt,name=author,proto3" json:"author,omitempty"` Title string `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"` Views int64 `protobuf:"varint,5,opt,name=views,proto3" json:"views,omitempty"` Docid string `protobuf:"bytes,6,opt,name=docid,proto3" json:"docid,omitempty"` Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` } func (x *SharePoint) Reset() { *x = SharePoint{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SharePoint) String() string { return protoimpl.X.MessageStringOf(x) } func (*SharePoint) ProtoMessage() {} func (x *SharePoint) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SharePoint.ProtoReflect.Descriptor instead. func (*SharePoint) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{25} } func (x *SharePoint) GetLink() string { if x != nil { return x.Link } return "" } func (x *SharePoint) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *SharePoint) GetAuthor() string { if x != nil { return x.Author } return "" } func (x *SharePoint) GetTitle() string { if x != nil { return x.Title } return "" } func (x *SharePoint) GetViews() int64 { if x != nil { return x.Views } return 0 } func (x *SharePoint) GetDocid() string { if x != nil { return x.Docid } return "" } func (x *SharePoint) GetEmail() string { if x != nil { return x.Email } return "" } type GoogleDrive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields File string `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` Link string `protobuf:"bytes,2,opt,name=link,proto3" json:"link,omitempty"` Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` Timestamp string `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Shared bool `protobuf:"varint,5,opt,name=shared,proto3" json:"shared,omitempty"` LastModifiedBy string `protobuf:"bytes,6,opt,name=last_modified_by,json=lastModifiedBy,proto3" json:"last_modified_by,omitempty"` Path string `protobuf:"bytes,7,opt,name=path,proto3" json:"path,omitempty"` } func (x *GoogleDrive) Reset() { *x = GoogleDrive{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleDrive) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleDrive) ProtoMessage() {} func (x *GoogleDrive) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleDrive.ProtoReflect.Descriptor instead. func (*GoogleDrive) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{26} } func (x *GoogleDrive) GetFile() string { if x != nil { return x.File } return "" } func (x *GoogleDrive) GetLink() string { if x != nil { return x.Link } return "" } func (x *GoogleDrive) GetEmail() string { if x != nil { return x.Email } return "" } func (x *GoogleDrive) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *GoogleDrive) GetShared() bool { if x != nil { return x.Shared } return false } func (x *GoogleDrive) GetLastModifiedBy() string { if x != nil { return x.LastModifiedBy } return "" } func (x *GoogleDrive) GetPath() string { if x != nil { return x.Path } return "" } type AzureRepos struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Link string `protobuf:"bytes,1,opt,name=link,proto3" json:"link,omitempty"` Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` Repository string `protobuf:"bytes,3,opt,name=repository,proto3" json:"repository,omitempty"` Commit string `protobuf:"bytes,4,opt,name=commit,proto3" json:"commit,omitempty"` Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` File string `protobuf:"bytes,6,opt,name=file,proto3" json:"file,omitempty"` Timestamp string `protobuf:"bytes,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Line int64 `protobuf:"varint,8,opt,name=line,proto3" json:"line,omitempty"` Visibility Visibility `protobuf:"varint,9,opt,name=visibility,proto3,enum=source_metadata.Visibility" json:"visibility,omitempty"` Project string `protobuf:"bytes,10,opt,name=project,proto3" json:"project,omitempty"` Organization string `protobuf:"bytes,11,opt,name=organization,proto3" json:"organization,omitempty"` } func (x *AzureRepos) Reset() { *x = AzureRepos{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AzureRepos) String() string { return protoimpl.X.MessageStringOf(x) } func (*AzureRepos) ProtoMessage() {} func (x *AzureRepos) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AzureRepos.ProtoReflect.Descriptor instead. func (*AzureRepos) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{27} } func (x *AzureRepos) GetLink() string { if x != nil { return x.Link } return "" } func (x *AzureRepos) GetUsername() string { if x != nil { return x.Username } return "" } func (x *AzureRepos) GetRepository() string { if x != nil { return x.Repository } return "" } func (x *AzureRepos) GetCommit() string { if x != nil { return x.Commit } return "" } func (x *AzureRepos) GetEmail() string { if x != nil { return x.Email } return "" } func (x *AzureRepos) GetFile() string { if x != nil { return x.File } return "" } func (x *AzureRepos) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } func (x *AzureRepos) GetLine() int64 { if x != nil { return x.Line } return 0 } func (x *AzureRepos) GetVisibility() Visibility { if x != nil { return x.Visibility } return Visibility_public } func (x *AzureRepos) GetProject() string { if x != nil { return x.Project } return "" } func (x *AzureRepos) GetOrganization() string { if x != nil { return x.Organization } return "" } type Postman struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Link string `protobuf:"bytes,1,opt,name=link,proto3" json:"link,omitempty"` WorkspaceUuid string `protobuf:"bytes,2,opt,name=workspace_uuid,json=workspaceUuid,proto3" json:"workspace_uuid,omitempty"` WorkspaceName string `protobuf:"bytes,3,opt,name=workspace_name,json=workspaceName,proto3" json:"workspace_name,omitempty"` GlobalsId string `protobuf:"bytes,4,opt,name=globals_id,json=globalsId,proto3" json:"globals_id,omitempty"` CollectionId string `protobuf:"bytes,5,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` CollectionName string `protobuf:"bytes,6,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` EnvironmentId string `protobuf:"bytes,7,opt,name=environment_id,json=environmentId,proto3" json:"environment_id,omitempty"` EnvironmentName string `protobuf:"bytes,8,opt,name=environment_name,json=environmentName,proto3" json:"environment_name,omitempty"` RequestId string `protobuf:"bytes,9,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` RequestName string `protobuf:"bytes,10,opt,name=request_name,json=requestName,proto3" json:"request_name,omitempty"` FolderId string `protobuf:"bytes,11,opt,name=folder_id,json=folderId,proto3" json:"folder_id,omitempty"` FolderName string `protobuf:"bytes,12,opt,name=folder_name,json=folderName,proto3" json:"folder_name,omitempty"` FieldType string `protobuf:"bytes,13,opt,name=field_type,json=fieldType,proto3" json:"field_type,omitempty"` FieldName string `protobuf:"bytes,14,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` VariableType string `protobuf:"bytes,15,opt,name=variable_type,json=variableType,proto3" json:"variable_type,omitempty"` } func (x *Postman) Reset() { *x = Postman{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Postman) String() string { return protoimpl.X.MessageStringOf(x) } func (*Postman) ProtoMessage() {} func (x *Postman) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Postman.ProtoReflect.Descriptor instead. func (*Postman) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{28} } func (x *Postman) GetLink() string { if x != nil { return x.Link } return "" } func (x *Postman) GetWorkspaceUuid() string { if x != nil { return x.WorkspaceUuid } return "" } func (x *Postman) GetWorkspaceName() string { if x != nil { return x.WorkspaceName } return "" } func (x *Postman) GetGlobalsId() string { if x != nil { return x.GlobalsId } return "" } func (x *Postman) GetCollectionId() string { if x != nil { return x.CollectionId } return "" } func (x *Postman) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } func (x *Postman) GetEnvironmentId() string { if x != nil { return x.EnvironmentId } return "" } func (x *Postman) GetEnvironmentName() string { if x != nil { return x.EnvironmentName } return "" } func (x *Postman) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *Postman) GetRequestName() string { if x != nil { return x.RequestName } return "" } func (x *Postman) GetFolderId() string { if x != nil { return x.FolderId } return "" } func (x *Postman) GetFolderName() string { if x != nil { return x.FolderName } return "" } func (x *Postman) GetFieldType() string { if x != nil { return x.FieldType } return "" } func (x *Postman) GetFieldName() string { if x != nil { return x.FieldName } return "" } func (x *Postman) GetVariableType() string { if x != nil { return x.VariableType } return "" } type MetaData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Data: // // *MetaData_Azure // *MetaData_Bitbucket // *MetaData_Circleci // *MetaData_Confluence // *MetaData_Docker // *MetaData_Ecr // *MetaData_Gcs // *MetaData_Github // *MetaData_Gitlab // *MetaData_Jira // *MetaData_Npm // *MetaData_Pypi // *MetaData_S3 // *MetaData_Slack // *MetaData_Filesystem // *MetaData_Git // *MetaData_Test // *MetaData_Buildkite // *MetaData_Gerrit // *MetaData_Jenkins // *MetaData_Teams // *MetaData_Artifactory // *MetaData_Syslog // *MetaData_Forager // *MetaData_Sharepoint // *MetaData_GoogleDrive // *MetaData_AzureRepos // *MetaData_TravisCI // *MetaData_Postman Data isMetaData_Data `protobuf_oneof:"data"` } func (x *MetaData) Reset() { *x = MetaData{} if protoimpl.UnsafeEnabled { mi := &file_source_metadata_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetaData) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetaData) ProtoMessage() {} func (x *MetaData) ProtoReflect() protoreflect.Message { mi := &file_source_metadata_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetaData.ProtoReflect.Descriptor instead. func (*MetaData) Descriptor() ([]byte, []int) { return file_source_metadata_proto_rawDescGZIP(), []int{29} } func (m *MetaData) GetData() isMetaData_Data { if m != nil { return m.Data } return nil } func (x *MetaData) GetAzure() *Azure { if x, ok := x.GetData().(*MetaData_Azure); ok { return x.Azure } return nil } func (x *MetaData) GetBitbucket() *Bitbucket { if x, ok := x.GetData().(*MetaData_Bitbucket); ok { return x.Bitbucket } return nil } func (x *MetaData) GetCircleci() *CircleCI { if x, ok := x.GetData().(*MetaData_Circleci); ok { return x.Circleci } return nil } func (x *MetaData) GetConfluence() *Confluence { if x, ok := x.GetData().(*MetaData_Confluence); ok { return x.Confluence } return nil } func (x *MetaData) GetDocker() *Docker { if x, ok := x.GetData().(*MetaData_Docker); ok { return x.Docker } return nil } func (x *MetaData) GetEcr() *ECR { if x, ok := x.GetData().(*MetaData_Ecr); ok { return x.Ecr } return nil } func (x *MetaData) GetGcs() *GCS { if x, ok := x.GetData().(*MetaData_Gcs); ok { return x.Gcs } return nil } func (x *MetaData) GetGithub() *Github { if x, ok := x.GetData().(*MetaData_Github); ok { return x.Github } return nil } func (x *MetaData) GetGitlab() *Gitlab { if x, ok := x.GetData().(*MetaData_Gitlab); ok { return x.Gitlab } return nil } func (x *MetaData) GetJira() *Jira { if x, ok := x.GetData().(*MetaData_Jira); ok { return x.Jira } return nil } func (x *MetaData) GetNpm() *NPM { if x, ok := x.GetData().(*MetaData_Npm); ok { return x.Npm } return nil } func (x *MetaData) GetPypi() *PyPi { if x, ok := x.GetData().(*MetaData_Pypi); ok { return x.Pypi } return nil } func (x *MetaData) GetS3() *S3 { if x, ok := x.GetData().(*MetaData_S3); ok { return x.S3 } return nil } func (x *MetaData) GetSlack() *Slack { if x, ok := x.GetData().(*MetaData_Slack); ok { return x.Slack } return nil } func (x *MetaData) GetFilesystem() *Filesystem { if x, ok := x.GetData().(*MetaData_Filesystem); ok { return x.Filesystem } return nil } func (x *MetaData) GetGit() *Git { if x, ok := x.GetData().(*MetaData_Git); ok { return x.Git } return nil } func (x *MetaData) GetTest() *Test { if x, ok := x.GetData().(*MetaData_Test); ok { return x.Test } return nil } func (x *MetaData) GetBuildkite() *Buildkite { if x, ok := x.GetData().(*MetaData_Buildkite); ok { return x.Buildkite } return nil } func (x *MetaData) GetGerrit() *Gerrit { if x, ok := x.GetData().(*MetaData_Gerrit); ok { return x.Gerrit } return nil } func (x *MetaData) GetJenkins() *Jenkins { if x, ok := x.GetData().(*MetaData_Jenkins); ok { return x.Jenkins } return nil } func (x *MetaData) GetTeams() *Teams { if x, ok := x.GetData().(*MetaData_Teams); ok { return x.Teams } return nil } func (x *MetaData) GetArtifactory() *Artifactory { if x, ok := x.GetData().(*MetaData_Artifactory); ok { return x.Artifactory } return nil } func (x *MetaData) GetSyslog() *Syslog { if x, ok := x.GetData().(*MetaData_Syslog); ok { return x.Syslog } return nil } func (x *MetaData) GetForager() *Forager { if x, ok := x.GetData().(*MetaData_Forager); ok { return x.Forager } return nil } func (x *MetaData) GetSharepoint() *SharePoint { if x, ok := x.GetData().(*MetaData_Sharepoint); ok { return x.Sharepoint } return nil } func (x *MetaData) GetGoogleDrive() *GoogleDrive { if x, ok := x.GetData().(*MetaData_GoogleDrive); ok { return x.GoogleDrive } return nil } func (x *MetaData) GetAzureRepos() *AzureRepos { if x, ok := x.GetData().(*MetaData_AzureRepos); ok { return x.AzureRepos } return nil } func (x *MetaData) GetTravisCI() *TravisCI { if x, ok := x.GetData().(*MetaData_TravisCI); ok { return x.TravisCI } return nil } func (x *MetaData) GetPostman() *Postman { if x, ok := x.GetData().(*MetaData_Postman); ok { return x.Postman } return nil } type isMetaData_Data interface { isMetaData_Data() } type MetaData_Azure struct { Azure *Azure `protobuf:"bytes,1,opt,name=azure,proto3,oneof"` } type MetaData_Bitbucket struct { Bitbucket *Bitbucket `protobuf:"bytes,2,opt,name=bitbucket,proto3,oneof"` } type MetaData_Circleci struct { Circleci *CircleCI `protobuf:"bytes,3,opt,name=circleci,proto3,oneof"` } type MetaData_Confluence struct { Confluence *Confluence `protobuf:"bytes,4,opt,name=confluence,proto3,oneof"` } type MetaData_Docker struct { Docker *Docker `protobuf:"bytes,5,opt,name=docker,proto3,oneof"` } type MetaData_Ecr struct { Ecr *ECR `protobuf:"bytes,6,opt,name=ecr,proto3,oneof"` } type MetaData_Gcs struct { Gcs *GCS `protobuf:"bytes,7,opt,name=gcs,proto3,oneof"` } type MetaData_Github struct { Github *Github `protobuf:"bytes,8,opt,name=github,proto3,oneof"` } type MetaData_Gitlab struct { Gitlab *Gitlab `protobuf:"bytes,9,opt,name=gitlab,proto3,oneof"` } type MetaData_Jira struct { Jira *Jira `protobuf:"bytes,10,opt,name=jira,proto3,oneof"` } type MetaData_Npm struct { Npm *NPM `protobuf:"bytes,11,opt,name=npm,proto3,oneof"` } type MetaData_Pypi struct { Pypi *PyPi `protobuf:"bytes,12,opt,name=pypi,proto3,oneof"` } type MetaData_S3 struct { S3 *S3 `protobuf:"bytes,13,opt,name=s3,proto3,oneof"` } type MetaData_Slack struct { Slack *Slack `protobuf:"bytes,14,opt,name=slack,proto3,oneof"` } type MetaData_Filesystem struct { Filesystem *Filesystem `protobuf:"bytes,15,opt,name=filesystem,proto3,oneof"` } type MetaData_Git struct { Git *Git `protobuf:"bytes,16,opt,name=git,proto3,oneof"` } type MetaData_Test struct { Test *Test `protobuf:"bytes,17,opt,name=test,proto3,oneof"` } type MetaData_Buildkite struct { Buildkite *Buildkite `protobuf:"bytes,18,opt,name=buildkite,proto3,oneof"` } type MetaData_Gerrit struct { Gerrit *Gerrit `protobuf:"bytes,19,opt,name=gerrit,proto3,oneof"` } type MetaData_Jenkins struct { Jenkins *Jenkins `protobuf:"bytes,20,opt,name=jenkins,proto3,oneof"` } type MetaData_Teams struct { Teams *Teams `protobuf:"bytes,21,opt,name=teams,proto3,oneof"` } type MetaData_Artifactory struct { Artifactory *Artifactory `protobuf:"bytes,22,opt,name=artifactory,proto3,oneof"` } type MetaData_Syslog struct { Syslog *Syslog `protobuf:"bytes,23,opt,name=syslog,proto3,oneof"` } type MetaData_Forager struct { Forager *Forager `protobuf:"bytes,24,opt,name=forager,proto3,oneof"` } type MetaData_Sharepoint struct { Sharepoint *SharePoint `protobuf:"bytes,25,opt,name=sharepoint,proto3,oneof"` } type MetaData_GoogleDrive struct { GoogleDrive *GoogleDrive `protobuf:"bytes,26,opt,name=googleDrive,proto3,oneof"` } type MetaData_AzureRepos struct { AzureRepos *AzureRepos `protobuf:"bytes,27,opt,name=azureRepos,proto3,oneof"` } type MetaData_TravisCI struct { TravisCI *TravisCI `protobuf:"bytes,28,opt,name=travisCI,proto3,oneof"` } type MetaData_Postman struct { Postman *Postman `protobuf:"bytes,29,opt,name=postman,proto3,oneof"` } func (*MetaData_Azure) isMetaData_Data() {} func (*MetaData_Bitbucket) isMetaData_Data() {} func (*MetaData_Circleci) isMetaData_Data() {} func (*MetaData_Confluence) isMetaData_Data() {} func (*MetaData_Docker) isMetaData_Data() {} func (*MetaData_Ecr) isMetaData_Data() {} func (*MetaData_Gcs) isMetaData_Data() {} func (*MetaData_Github) isMetaData_Data() {} func (*MetaData_Gitlab) isMetaData_Data() {} func (*MetaData_Jira) isMetaData_Data() {} func (*MetaData_Npm) isMetaData_Data() {} func (*MetaData_Pypi) isMetaData_Data() {} func (*MetaData_S3) isMetaData_Data() {} func (*MetaData_Slack) isMetaData_Data() {} func (*MetaData_Filesystem) isMetaData_Data() {} func (*MetaData_Git) isMetaData_Data() {} func (*MetaData_Test) isMetaData_Data() {} func (*MetaData_Buildkite) isMetaData_Data() {} func (*MetaData_Gerrit) isMetaData_Data() {} func (*MetaData_Jenkins) isMetaData_Data() {} func (*MetaData_Teams) isMetaData_Data() {} func (*MetaData_Artifactory) isMetaData_Data() {} func (*MetaData_Syslog) isMetaData_Data() {} func (*MetaData_Forager) isMetaData_Data() {} func (*MetaData_Sharepoint) isMetaData_Data() {} func (*MetaData_GoogleDrive) isMetaData_Data() {} func (*MetaData_AzureRepos) isMetaData_Data() {} func (*MetaData_TravisCI) isMetaData_Data() {} func (*MetaData_Postman) isMetaData_Data() {} var File_source_metadata_proto protoreflect.FileDescriptor var file_source_metadata_proto_rawDesc = []byte{ 0x0a, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7f, 0x0a, 0x05, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x86, 0x02, 0x0a, 0x09, 0x42, 0x69, 0x74, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x6b, 0x69, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xcd, 0x01, 0x0a, 0x08, 0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x43, 0x49, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x63, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x63, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x65, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0xb4, 0x01, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x76, 0x69, 0x73, 0x43, 0x49, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x22, 0xc8, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x5a, 0x0a, 0x06, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x22, 0xa3, 0x01, 0x0a, 0x03, 0x45, 0x43, 0x52, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x5e, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x03, 0x47, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x89, 0x02, 0x0a, 0x06, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x97, 0x02, 0x0a, 0x06, 0x47, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x22, 0xd8, 0x01, 0x0a, 0x03, 0x47, 0x43, 0x53, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x63, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x63, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x04, 0x4a, 0x69, 0x72, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x77, 0x0a, 0x03, 0x4e, 0x50, 0x4d, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x78, 0x0a, 0x04, 0x50, 0x79, 0x50, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x78, 0x0a, 0x02, 0x53, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x97, 0x02, 0x0a, 0x05, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x3b, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x96, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x1a, 0x0a, 0x04, 0x54, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x07, 0x4a, 0x65, 0x6e, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x90, 0x02, 0x0a, 0x05, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22, 0x99, 0x01, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0xa8, 0x01, 0x0a, 0x06, 0x53, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x63, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x63, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x9f, 0x01, 0x0a, 0x07, 0x46, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x48, 0x00, 0x52, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, 0x28, 0x0a, 0x03, 0x6e, 0x70, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4e, 0x50, 0x4d, 0x48, 0x00, 0x52, 0x03, 0x6e, 0x70, 0x6d, 0x12, 0x2b, 0x0a, 0x04, 0x70, 0x79, 0x70, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x79, 0x50, 0x69, 0x48, 0x00, 0x52, 0x04, 0x70, 0x79, 0x70, 0x69, 0x42, 0x0a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xae, 0x01, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x69, 0x65, 0x77, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x69, 0x65, 0x77, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x6f, 0x63, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x6f, 0x63, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0xcb, 0x02, 0x0a, 0x0a, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8d, 0x04, 0x0a, 0x07, 0x50, 0x6f, 0x73, 0x74, 0x6d, 0x61, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x83, 0x0c, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x62, 0x69, 0x74, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x74, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x00, 0x52, 0x09, 0x62, 0x69, 0x74, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x08, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x63, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x43, 0x49, 0x48, 0x00, 0x52, 0x08, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x63, 0x69, 0x12, 0x3d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x03, 0x65, 0x63, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x45, 0x43, 0x52, 0x48, 0x00, 0x52, 0x03, 0x65, 0x63, 0x72, 0x12, 0x28, 0x0a, 0x03, 0x67, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x43, 0x53, 0x48, 0x00, 0x52, 0x03, 0x67, 0x63, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x48, 0x00, 0x52, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, 0x31, 0x0a, 0x06, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x48, 0x00, 0x52, 0x06, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x12, 0x2b, 0x0a, 0x04, 0x6a, 0x69, 0x72, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4a, 0x69, 0x72, 0x61, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x69, 0x72, 0x61, 0x12, 0x28, 0x0a, 0x03, 0x6e, 0x70, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4e, 0x50, 0x4d, 0x48, 0x00, 0x52, 0x03, 0x6e, 0x70, 0x6d, 0x12, 0x2b, 0x0a, 0x04, 0x70, 0x79, 0x70, 0x69, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x79, 0x50, 0x69, 0x48, 0x00, 0x52, 0x04, 0x70, 0x79, 0x70, 0x69, 0x12, 0x25, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x33, 0x48, 0x00, 0x52, 0x02, 0x73, 0x33, 0x12, 0x2e, 0x0a, 0x05, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x3d, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x28, 0x0a, 0x03, 0x67, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x69, 0x74, 0x48, 0x00, 0x52, 0x03, 0x67, 0x69, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x74, 0x65, 0x73, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x6b, 0x69, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x6b, 0x69, 0x74, 0x65, 0x48, 0x00, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x6b, 0x69, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x48, 0x00, 0x52, 0x06, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x6a, 0x65, 0x6e, 0x6b, 0x69, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4a, 0x65, 0x6e, 0x6b, 0x69, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x07, 0x6a, 0x65, 0x6e, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x05, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x05, 0x74, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x06, 0x73, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x12, 0x34, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x72, 0x48, 0x00, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x76, 0x69, 0x73, 0x43, 0x49, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x69, 0x73, 0x43, 0x49, 0x48, 0x00, 0x52, 0x08, 0x74, 0x72, 0x61, 0x76, 0x69, 0x73, 0x43, 0x49, 0x12, 0x34, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x6d, 0x61, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x6d, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x6d, 0x61, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x3e, 0x0a, 0x0a, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x03, 0x42, 0x43, 0x5a, 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x74, 0x72, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x68, 0x6f, 0x67, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_source_metadata_proto_rawDescOnce sync.Once file_source_metadata_proto_rawDescData = file_source_metadata_proto_rawDesc ) func file_source_metadata_proto_rawDescGZIP() []byte { file_source_metadata_proto_rawDescOnce.Do(func() { file_source_metadata_proto_rawDescData = protoimpl.X.CompressGZIP(file_source_metadata_proto_rawDescData) }) return file_source_metadata_proto_rawDescData } var file_source_metadata_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_source_metadata_proto_msgTypes = make([]protoimpl.MessageInfo, 30) var file_source_metadata_proto_goTypes = []interface{}{ (Visibility)(0), // 0: source_metadata.Visibility (*Azure)(nil), // 1: source_metadata.Azure (*Bitbucket)(nil), // 2: source_metadata.Bitbucket (*Buildkite)(nil), // 3: source_metadata.Buildkite (*CircleCI)(nil), // 4: source_metadata.CircleCI (*TravisCI)(nil), // 5: source_metadata.TravisCI (*Confluence)(nil), // 6: source_metadata.Confluence (*Docker)(nil), // 7: source_metadata.Docker (*ECR)(nil), // 8: source_metadata.ECR (*Filesystem)(nil), // 9: source_metadata.Filesystem (*Git)(nil), // 10: source_metadata.Git (*Github)(nil), // 11: source_metadata.Github (*Gitlab)(nil), // 12: source_metadata.Gitlab (*GCS)(nil), // 13: source_metadata.GCS (*Jira)(nil), // 14: source_metadata.Jira (*NPM)(nil), // 15: source_metadata.NPM (*PyPi)(nil), // 16: source_metadata.PyPi (*S3)(nil), // 17: source_metadata.S3 (*Slack)(nil), // 18: source_metadata.Slack (*Gerrit)(nil), // 19: source_metadata.Gerrit (*Test)(nil), // 20: source_metadata.Test (*Jenkins)(nil), // 21: source_metadata.Jenkins (*Teams)(nil), // 22: source_metadata.Teams (*Artifactory)(nil), // 23: source_metadata.Artifactory (*Syslog)(nil), // 24: source_metadata.Syslog (*Forager)(nil), // 25: source_metadata.Forager (*SharePoint)(nil), // 26: source_metadata.SharePoint (*GoogleDrive)(nil), // 27: source_metadata.GoogleDrive (*AzureRepos)(nil), // 28: source_metadata.AzureRepos (*Postman)(nil), // 29: source_metadata.Postman (*MetaData)(nil), // 30: source_metadata.MetaData } var file_source_metadata_proto_depIdxs = []int32{ 0, // 0: source_metadata.Github.visibility:type_name -> source_metadata.Visibility 0, // 1: source_metadata.Slack.visibility:type_name -> source_metadata.Visibility 11, // 2: source_metadata.Forager.github:type_name -> source_metadata.Github 15, // 3: source_metadata.Forager.npm:type_name -> source_metadata.NPM 16, // 4: source_metadata.Forager.pypi:type_name -> source_metadata.PyPi 0, // 5: source_metadata.AzureRepos.visibility:type_name -> source_metadata.Visibility 1, // 6: source_metadata.MetaData.azure:type_name -> source_metadata.Azure 2, // 7: source_metadata.MetaData.bitbucket:type_name -> source_metadata.Bitbucket 4, // 8: source_metadata.MetaData.circleci:type_name -> source_metadata.CircleCI 6, // 9: source_metadata.MetaData.confluence:type_name -> source_metadata.Confluence 7, // 10: source_metadata.MetaData.docker:type_name -> source_metadata.Docker 8, // 11: source_metadata.MetaData.ecr:type_name -> source_metadata.ECR 13, // 12: source_metadata.MetaData.gcs:type_name -> source_metadata.GCS 11, // 13: source_metadata.MetaData.github:type_name -> source_metadata.Github 12, // 14: source_metadata.MetaData.gitlab:type_name -> source_metadata.Gitlab 14, // 15: source_metadata.MetaData.jira:type_name -> source_metadata.Jira 15, // 16: source_metadata.MetaData.npm:type_name -> source_metadata.NPM 16, // 17: source_metadata.MetaData.pypi:type_name -> source_metadata.PyPi 17, // 18: source_metadata.MetaData.s3:type_name -> source_metadata.S3 18, // 19: source_metadata.MetaData.slack:type_name -> source_metadata.Slack 9, // 20: source_metadata.MetaData.filesystem:type_name -> source_metadata.Filesystem 10, // 21: source_metadata.MetaData.git:type_name -> source_metadata.Git 20, // 22: source_metadata.MetaData.test:type_name -> source_metadata.Test 3, // 23: source_metadata.MetaData.buildkite:type_name -> source_metadata.Buildkite 19, // 24: source_metadata.MetaData.gerrit:type_name -> source_metadata.Gerrit 21, // 25: source_metadata.MetaData.jenkins:type_name -> source_metadata.Jenkins 22, // 26: source_metadata.MetaData.teams:type_name -> source_metadata.Teams 23, // 27: source_metadata.MetaData.artifactory:type_name -> source_metadata.Artifactory 24, // 28: source_metadata.MetaData.syslog:type_name -> source_metadata.Syslog 25, // 29: source_metadata.MetaData.forager:type_name -> source_metadata.Forager 26, // 30: source_metadata.MetaData.sharepoint:type_name -> source_metadata.SharePoint 27, // 31: source_metadata.MetaData.googleDrive:type_name -> source_metadata.GoogleDrive 28, // 32: source_metadata.MetaData.azureRepos:type_name -> source_metadata.AzureRepos 5, // 33: source_metadata.MetaData.travisCI:type_name -> source_metadata.TravisCI 29, // 34: source_metadata.MetaData.postman:type_name -> source_metadata.Postman 35, // [35:35] is the sub-list for method output_type 35, // [35:35] is the sub-list for method input_type 35, // [35:35] is the sub-list for extension type_name 35, // [35:35] is the sub-list for extension extendee 0, // [0:35] is the sub-list for field type_name } func init() { file_source_metadata_proto_init() } func file_source_metadata_proto_init() { if File_source_metadata_proto != nil { return } if !protoimpl.UnsafeEnabled { file_source_metadata_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Azure); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bitbucket); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Buildkite); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CircleCI); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TravisCI); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Confluence); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Docker); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ECR); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Filesystem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Git); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Github); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Gitlab); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCS); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Jira); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NPM); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PyPi); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*S3); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Slack); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Gerrit); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Test); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Jenkins); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Teams); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Artifactory); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Syslog); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Forager); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SharePoint); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleDrive); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AzureRepos); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Postman); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_source_metadata_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetaData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_source_metadata_proto_msgTypes[24].OneofWrappers = []interface{}{ (*Forager_Github)(nil), (*Forager_Npm)(nil), (*Forager_Pypi)(nil), } file_source_metadata_proto_msgTypes[29].OneofWrappers = []interface{}{ (*MetaData_Azure)(nil), (*MetaData_Bitbucket)(nil), (*MetaData_Circleci)(nil), (*MetaData_Confluence)(nil), (*MetaData_Docker)(nil), (*MetaData_Ecr)(nil), (*MetaData_Gcs)(nil), (*MetaData_Github)(nil), (*MetaData_Gitlab)(nil), (*MetaData_Jira)(nil), (*MetaData_Npm)(nil), (*MetaData_Pypi)(nil), (*MetaData_S3)(nil), (*MetaData_Slack)(nil), (*MetaData_Filesystem)(nil), (*MetaData_Git)(nil), (*MetaData_Test)(nil), (*MetaData_Buildkite)(nil), (*MetaData_Gerrit)(nil), (*MetaData_Jenkins)(nil), (*MetaData_Teams)(nil), (*MetaData_Artifactory)(nil), (*MetaData_Syslog)(nil), (*MetaData_Forager)(nil), (*MetaData_Sharepoint)(nil), (*MetaData_GoogleDrive)(nil), (*MetaData_AzureRepos)(nil), (*MetaData_TravisCI)(nil), (*MetaData_Postman)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_source_metadata_proto_rawDesc, NumEnums: 1, NumMessages: 30, NumExtensions: 0, NumServices: 0, }, GoTypes: file_source_metadata_proto_goTypes, DependencyIndexes: file_source_metadata_proto_depIdxs, EnumInfos: file_source_metadata_proto_enumTypes, MessageInfos: file_source_metadata_proto_msgTypes, }.Build() File_source_metadata_proto = out.File file_source_metadata_proto_rawDesc = nil file_source_metadata_proto_goTypes = nil file_source_metadata_proto_depIdxs = nil }