diff --git a/app/mltraining/v1/ml_training.pb.go b/app/mltraining/v1/ml_training.pb.go index 6bd1011ed4..aaeb616c6b 100644 --- a/app/mltraining/v1/ml_training.pb.go +++ b/app/mltraining/v1/ml_training.pb.go @@ -191,6 +191,55 @@ func (TrainingStatus) EnumDescriptor() ([]byte, []int) { return file_app_mltraining_v1_ml_training_proto_rawDescGZIP(), []int{2} } +type Visibility int32 + +const ( + Visibility_VISIBILITY_UNSPECIFIED Visibility = 0 + Visibility_VISIBILITY_PRIVATE Visibility = 1 + Visibility_VISIBILITY_PUBLIC Visibility = 2 +) + +// Enum value maps for Visibility. +var ( + Visibility_name = map[int32]string{ + 0: "VISIBILITY_UNSPECIFIED", + 1: "VISIBILITY_PRIVATE", + 2: "VISIBILITY_PUBLIC", + } + Visibility_value = map[string]int32{ + "VISIBILITY_UNSPECIFIED": 0, + "VISIBILITY_PRIVATE": 1, + "VISIBILITY_PUBLIC": 2, + } +) + +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_app_mltraining_v1_ml_training_proto_enumTypes[3].Descriptor() +} + +func (Visibility) Type() protoreflect.EnumType { + return &file_app_mltraining_v1_ml_training_proto_enumTypes[3] +} + +func (x Visibility) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Visibility.Descriptor instead. +func (Visibility) EnumDescriptor() ([]byte, []int) { + return file_app_mltraining_v1_ml_training_proto_rawDescGZIP(), []int{3} +} + type SubmitTrainingJobRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1193,6 +1242,12 @@ type ListSupportedContainersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Optional. Scopes the response to the containers available to this + // organization: the Viam-managed catalog plus the org's registered + // custom training containers. If unset, only the Viam-managed catalog + // is returned. + OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` } func (x *ListSupportedContainersRequest) Reset() { @@ -1225,6 +1280,13 @@ func (*ListSupportedContainersRequest) Descriptor() ([]byte, []int) { return file_app_mltraining_v1_ml_training_proto_rawDescGZIP(), []int{16} } +func (x *ListSupportedContainersRequest) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + type ListSupportedContainersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1275,11 +1337,15 @@ type Container struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` - Framework string `protobuf:"bytes,3,opt,name=framework,proto3" json:"framework,omitempty"` - Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` - Eol *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=eol,proto3" json:"eol,omitempty"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // custom container keys are derived from the Docker URI (image:tag) + Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` + Framework string `protobuf:"bytes,3,opt,name=framework,proto3" json:"framework,omitempty"` // unset for custom containers + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` // will serve as display name + Eol *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=eol,proto3" json:"eol,omitempty"` // unset for custom containers + OrganizationId string `protobuf:"bytes,6,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + Id string `protobuf:"bytes,8,opt,name=id,proto3" json:"id,omitempty"` // unique id of the container + Visibility Visibility `protobuf:"varint,9,opt,name=visibility,proto3,enum=viam.app.mltraining.v1.Visibility" json:"visibility,omitempty"` // public or private } func (x *Container) Reset() { @@ -1347,6 +1413,34 @@ func (x *Container) GetEol() *timestamppb.Timestamp { return nil } +func (x *Container) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *Container) GetCreatedOn() *timestamppb.Timestamp { + if x != nil { + return x.CreatedOn + } + return nil +} + +func (x *Container) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Container) GetVisibility() Visibility { + if x != nil { + return x.Visibility + } + return Visibility_VISIBILITY_UNSPECIFIED +} + var File_app_mltraining_v1_ml_training_proto protoreflect.FileDescriptor var file_app_mltraining_v1_ml_training_proto_rawDesc = []byte{ @@ -1638,139 +1732,158 @@ var file_app_mltraining_v1_ml_training_proto_rawDesc = []byte{ 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x20, 0x0a, + 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x49, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0xf5, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x76, 0x69, 0x61, - 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x70, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x4d, 0x61, 0x70, 0x1a, 0x62, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x69, 0x61, 0x6d, - 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9d, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6f, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6f, 0x6c, 0x2a, 0x9f, 0x01, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x43, 0x4c, 0x41, - 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x29, 0x0a, - 0x25, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, - 0x49, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, - 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x4f, 0x44, 0x45, - 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x44, 0x45, - 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x2a, 0xa4, 0x01, 0x0a, 0x0e, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1f, 0x0a, 0x1b, - 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, - 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, - 0x5f, 0x54, 0x46, 0x4c, 0x49, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x4f, 0x44, - 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x54, 0x45, 0x4e, - 0x53, 0x4f, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x4f, 0x44, - 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x50, 0x59, 0x54, - 0x4f, 0x52, 0x43, 0x48, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, - 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x4f, 0x4e, 0x4e, 0x58, 0x10, 0x04, - 0x2a, 0xe7, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, - 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, - 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, - 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1c, 0x0a, - 0x18, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x54, - 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, - 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x32, 0x9c, 0x08, 0x0a, 0x11, 0x4d, - 0x4c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x78, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x30, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, - 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, - 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, - 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x36, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xf5, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x0d, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, + 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x1a, 0x62, 0x0a, 0x11, + 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, + 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0xd5, 0x02, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x72, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6f, 0x6c, + 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, + 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2a, 0x9f, 0x01, 0x0a, 0x09, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x43, 0x4c, + 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x29, + 0x0a, 0x25, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, + 0x54, 0x49, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, + 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x4f, 0x44, + 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x44, + 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x2a, 0xa4, 0x01, 0x0a, 0x0e, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1f, 0x0a, + 0x1b, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, + 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x54, 0x46, 0x4c, 0x49, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x4f, + 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x54, 0x45, + 0x4e, 0x53, 0x4f, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x4f, + 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x50, 0x59, + 0x54, 0x4f, 0x52, 0x43, 0x48, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x4f, 0x44, 0x45, 0x4c, + 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x4f, 0x4e, 0x4e, 0x58, 0x10, + 0x04, 0x2a, 0xe7, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, + 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, + 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, + 0x53, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, + 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1c, + 0x0a, 0x18, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, + 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x2a, 0x57, 0x0a, 0x0a, 0x56, + 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x49, 0x53, + 0x49, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x49, 0x53, 0x49, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, + 0x11, 0x56, 0x49, 0x53, 0x49, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x55, 0x42, 0x4c, + 0x49, 0x43, 0x10, 0x02, 0x32, 0x9c, 0x08, 0x0a, 0x11, 0x4d, 0x4c, 0x54, 0x72, 0x61, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, + 0x30, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, + 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, + 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, + 0x12, 0x36, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, + 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, + 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x4a, 0x6f, 0x62, 0x12, 0x2d, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, + 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, + 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x2f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, + 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x30, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x72, - 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x2d, 0x2e, 0x76, 0x69, 0x61, 0x6d, - 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, - 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, - 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x2f, 0x2e, 0x76, - 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, + 0x6f, 0x62, 0x12, 0x39, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, + 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x78, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x30, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, - 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, - 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, - 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, - 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x39, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, - 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, - 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, - 0x62, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, - 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, - 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, - 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, - 0x17, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x36, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, - 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x37, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, - 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x23, 0x5a, 0x21, 0x67, 0x6f, 0x2e, - 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x70, 0x70, - 0x2f, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, + 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x73, 0x12, + 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, + 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x73, 0x12, 0x36, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, + 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x76, 0x69, 0x61, + 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x23, 0x5a, 0x21, 0x67, 0x6f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x6d, 0x6c, 0x74, 0x72, 0x61, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1785,79 +1898,82 @@ func file_app_mltraining_v1_ml_training_proto_rawDescGZIP() []byte { return file_app_mltraining_v1_ml_training_proto_rawDescData } -var file_app_mltraining_v1_ml_training_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_app_mltraining_v1_ml_training_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_app_mltraining_v1_ml_training_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_app_mltraining_v1_ml_training_proto_goTypes = []any{ (ModelType)(0), // 0: viam.app.mltraining.v1.ModelType (ModelFramework)(0), // 1: viam.app.mltraining.v1.ModelFramework (TrainingStatus)(0), // 2: viam.app.mltraining.v1.TrainingStatus - (*SubmitTrainingJobRequest)(nil), // 3: viam.app.mltraining.v1.SubmitTrainingJobRequest - (*SubmitTrainingJobResponse)(nil), // 4: viam.app.mltraining.v1.SubmitTrainingJobResponse - (*SubmitCustomTrainingJobRequest)(nil), // 5: viam.app.mltraining.v1.SubmitCustomTrainingJobRequest - (*SubmitCustomTrainingJobResponse)(nil), // 6: viam.app.mltraining.v1.SubmitCustomTrainingJobResponse - (*GetTrainingJobRequest)(nil), // 7: viam.app.mltraining.v1.GetTrainingJobRequest - (*GetTrainingJobResponse)(nil), // 8: viam.app.mltraining.v1.GetTrainingJobResponse - (*ListTrainingJobsRequest)(nil), // 9: viam.app.mltraining.v1.ListTrainingJobsRequest - (*ListTrainingJobsResponse)(nil), // 10: viam.app.mltraining.v1.ListTrainingJobsResponse - (*TrainingJobMetadata)(nil), // 11: viam.app.mltraining.v1.TrainingJobMetadata - (*CancelTrainingJobRequest)(nil), // 12: viam.app.mltraining.v1.CancelTrainingJobRequest - (*CancelTrainingJobResponse)(nil), // 13: viam.app.mltraining.v1.CancelTrainingJobResponse - (*DeleteCompletedTrainingJobRequest)(nil), // 14: viam.app.mltraining.v1.DeleteCompletedTrainingJobRequest - (*DeleteCompletedTrainingJobResponse)(nil), // 15: viam.app.mltraining.v1.DeleteCompletedTrainingJobResponse - (*TrainingJobLogEntry)(nil), // 16: viam.app.mltraining.v1.TrainingJobLogEntry - (*GetTrainingJobLogsRequest)(nil), // 17: viam.app.mltraining.v1.GetTrainingJobLogsRequest - (*GetTrainingJobLogsResponse)(nil), // 18: viam.app.mltraining.v1.GetTrainingJobLogsResponse - (*ListSupportedContainersRequest)(nil), // 19: viam.app.mltraining.v1.ListSupportedContainersRequest - (*ListSupportedContainersResponse)(nil), // 20: viam.app.mltraining.v1.ListSupportedContainersResponse - (*Container)(nil), // 21: viam.app.mltraining.v1.Container - nil, // 22: viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.ArgumentsEntry - nil, // 23: viam.app.mltraining.v1.TrainingJobMetadata.ArgumentsEntry - nil, // 24: viam.app.mltraining.v1.ListSupportedContainersResponse.ContainerMapEntry - (*status.Status)(nil), // 25: google.rpc.Status - (*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp + (Visibility)(0), // 3: viam.app.mltraining.v1.Visibility + (*SubmitTrainingJobRequest)(nil), // 4: viam.app.mltraining.v1.SubmitTrainingJobRequest + (*SubmitTrainingJobResponse)(nil), // 5: viam.app.mltraining.v1.SubmitTrainingJobResponse + (*SubmitCustomTrainingJobRequest)(nil), // 6: viam.app.mltraining.v1.SubmitCustomTrainingJobRequest + (*SubmitCustomTrainingJobResponse)(nil), // 7: viam.app.mltraining.v1.SubmitCustomTrainingJobResponse + (*GetTrainingJobRequest)(nil), // 8: viam.app.mltraining.v1.GetTrainingJobRequest + (*GetTrainingJobResponse)(nil), // 9: viam.app.mltraining.v1.GetTrainingJobResponse + (*ListTrainingJobsRequest)(nil), // 10: viam.app.mltraining.v1.ListTrainingJobsRequest + (*ListTrainingJobsResponse)(nil), // 11: viam.app.mltraining.v1.ListTrainingJobsResponse + (*TrainingJobMetadata)(nil), // 12: viam.app.mltraining.v1.TrainingJobMetadata + (*CancelTrainingJobRequest)(nil), // 13: viam.app.mltraining.v1.CancelTrainingJobRequest + (*CancelTrainingJobResponse)(nil), // 14: viam.app.mltraining.v1.CancelTrainingJobResponse + (*DeleteCompletedTrainingJobRequest)(nil), // 15: viam.app.mltraining.v1.DeleteCompletedTrainingJobRequest + (*DeleteCompletedTrainingJobResponse)(nil), // 16: viam.app.mltraining.v1.DeleteCompletedTrainingJobResponse + (*TrainingJobLogEntry)(nil), // 17: viam.app.mltraining.v1.TrainingJobLogEntry + (*GetTrainingJobLogsRequest)(nil), // 18: viam.app.mltraining.v1.GetTrainingJobLogsRequest + (*GetTrainingJobLogsResponse)(nil), // 19: viam.app.mltraining.v1.GetTrainingJobLogsResponse + (*ListSupportedContainersRequest)(nil), // 20: viam.app.mltraining.v1.ListSupportedContainersRequest + (*ListSupportedContainersResponse)(nil), // 21: viam.app.mltraining.v1.ListSupportedContainersResponse + (*Container)(nil), // 22: viam.app.mltraining.v1.Container + nil, // 23: viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.ArgumentsEntry + nil, // 24: viam.app.mltraining.v1.TrainingJobMetadata.ArgumentsEntry + nil, // 25: viam.app.mltraining.v1.ListSupportedContainersResponse.ContainerMapEntry + (*status.Status)(nil), // 26: google.rpc.Status + (*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp } var file_app_mltraining_v1_ml_training_proto_depIdxs = []int32{ 0, // 0: viam.app.mltraining.v1.SubmitTrainingJobRequest.model_type:type_name -> viam.app.mltraining.v1.ModelType 1, // 1: viam.app.mltraining.v1.SubmitTrainingJobRequest.model_framework:type_name -> viam.app.mltraining.v1.ModelFramework - 22, // 2: viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.arguments:type_name -> viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.ArgumentsEntry - 11, // 3: viam.app.mltraining.v1.GetTrainingJobResponse.metadata:type_name -> viam.app.mltraining.v1.TrainingJobMetadata + 23, // 2: viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.arguments:type_name -> viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.ArgumentsEntry + 12, // 3: viam.app.mltraining.v1.GetTrainingJobResponse.metadata:type_name -> viam.app.mltraining.v1.TrainingJobMetadata 2, // 4: viam.app.mltraining.v1.ListTrainingJobsRequest.status:type_name -> viam.app.mltraining.v1.TrainingStatus - 11, // 5: viam.app.mltraining.v1.ListTrainingJobsResponse.jobs:type_name -> viam.app.mltraining.v1.TrainingJobMetadata + 12, // 5: viam.app.mltraining.v1.ListTrainingJobsResponse.jobs:type_name -> viam.app.mltraining.v1.TrainingJobMetadata 0, // 6: viam.app.mltraining.v1.TrainingJobMetadata.model_type:type_name -> viam.app.mltraining.v1.ModelType 1, // 7: viam.app.mltraining.v1.TrainingJobMetadata.model_framework:type_name -> viam.app.mltraining.v1.ModelFramework 2, // 8: viam.app.mltraining.v1.TrainingJobMetadata.status:type_name -> viam.app.mltraining.v1.TrainingStatus - 25, // 9: viam.app.mltraining.v1.TrainingJobMetadata.error_status:type_name -> google.rpc.Status - 26, // 10: viam.app.mltraining.v1.TrainingJobMetadata.created_on:type_name -> google.protobuf.Timestamp - 26, // 11: viam.app.mltraining.v1.TrainingJobMetadata.last_modified:type_name -> google.protobuf.Timestamp - 26, // 12: viam.app.mltraining.v1.TrainingJobMetadata.training_started:type_name -> google.protobuf.Timestamp - 26, // 13: viam.app.mltraining.v1.TrainingJobMetadata.training_ended:type_name -> google.protobuf.Timestamp - 23, // 14: viam.app.mltraining.v1.TrainingJobMetadata.arguments:type_name -> viam.app.mltraining.v1.TrainingJobMetadata.ArgumentsEntry - 26, // 15: viam.app.mltraining.v1.TrainingJobLogEntry.time:type_name -> google.protobuf.Timestamp - 16, // 16: viam.app.mltraining.v1.GetTrainingJobLogsResponse.logs:type_name -> viam.app.mltraining.v1.TrainingJobLogEntry - 24, // 17: viam.app.mltraining.v1.ListSupportedContainersResponse.container_map:type_name -> viam.app.mltraining.v1.ListSupportedContainersResponse.ContainerMapEntry - 26, // 18: viam.app.mltraining.v1.Container.eol:type_name -> google.protobuf.Timestamp - 21, // 19: viam.app.mltraining.v1.ListSupportedContainersResponse.ContainerMapEntry.value:type_name -> viam.app.mltraining.v1.Container - 3, // 20: viam.app.mltraining.v1.MLTrainingService.SubmitTrainingJob:input_type -> viam.app.mltraining.v1.SubmitTrainingJobRequest - 5, // 21: viam.app.mltraining.v1.MLTrainingService.SubmitCustomTrainingJob:input_type -> viam.app.mltraining.v1.SubmitCustomTrainingJobRequest - 7, // 22: viam.app.mltraining.v1.MLTrainingService.GetTrainingJob:input_type -> viam.app.mltraining.v1.GetTrainingJobRequest - 9, // 23: viam.app.mltraining.v1.MLTrainingService.ListTrainingJobs:input_type -> viam.app.mltraining.v1.ListTrainingJobsRequest - 12, // 24: viam.app.mltraining.v1.MLTrainingService.CancelTrainingJob:input_type -> viam.app.mltraining.v1.CancelTrainingJobRequest - 14, // 25: viam.app.mltraining.v1.MLTrainingService.DeleteCompletedTrainingJob:input_type -> viam.app.mltraining.v1.DeleteCompletedTrainingJobRequest - 17, // 26: viam.app.mltraining.v1.MLTrainingService.GetTrainingJobLogs:input_type -> viam.app.mltraining.v1.GetTrainingJobLogsRequest - 19, // 27: viam.app.mltraining.v1.MLTrainingService.ListSupportedContainers:input_type -> viam.app.mltraining.v1.ListSupportedContainersRequest - 4, // 28: viam.app.mltraining.v1.MLTrainingService.SubmitTrainingJob:output_type -> viam.app.mltraining.v1.SubmitTrainingJobResponse - 6, // 29: viam.app.mltraining.v1.MLTrainingService.SubmitCustomTrainingJob:output_type -> viam.app.mltraining.v1.SubmitCustomTrainingJobResponse - 8, // 30: viam.app.mltraining.v1.MLTrainingService.GetTrainingJob:output_type -> viam.app.mltraining.v1.GetTrainingJobResponse - 10, // 31: viam.app.mltraining.v1.MLTrainingService.ListTrainingJobs:output_type -> viam.app.mltraining.v1.ListTrainingJobsResponse - 13, // 32: viam.app.mltraining.v1.MLTrainingService.CancelTrainingJob:output_type -> viam.app.mltraining.v1.CancelTrainingJobResponse - 15, // 33: viam.app.mltraining.v1.MLTrainingService.DeleteCompletedTrainingJob:output_type -> viam.app.mltraining.v1.DeleteCompletedTrainingJobResponse - 18, // 34: viam.app.mltraining.v1.MLTrainingService.GetTrainingJobLogs:output_type -> viam.app.mltraining.v1.GetTrainingJobLogsResponse - 20, // 35: viam.app.mltraining.v1.MLTrainingService.ListSupportedContainers:output_type -> viam.app.mltraining.v1.ListSupportedContainersResponse - 28, // [28:36] is the sub-list for method output_type - 20, // [20:28] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 26, // 9: viam.app.mltraining.v1.TrainingJobMetadata.error_status:type_name -> google.rpc.Status + 27, // 10: viam.app.mltraining.v1.TrainingJobMetadata.created_on:type_name -> google.protobuf.Timestamp + 27, // 11: viam.app.mltraining.v1.TrainingJobMetadata.last_modified:type_name -> google.protobuf.Timestamp + 27, // 12: viam.app.mltraining.v1.TrainingJobMetadata.training_started:type_name -> google.protobuf.Timestamp + 27, // 13: viam.app.mltraining.v1.TrainingJobMetadata.training_ended:type_name -> google.protobuf.Timestamp + 24, // 14: viam.app.mltraining.v1.TrainingJobMetadata.arguments:type_name -> viam.app.mltraining.v1.TrainingJobMetadata.ArgumentsEntry + 27, // 15: viam.app.mltraining.v1.TrainingJobLogEntry.time:type_name -> google.protobuf.Timestamp + 17, // 16: viam.app.mltraining.v1.GetTrainingJobLogsResponse.logs:type_name -> viam.app.mltraining.v1.TrainingJobLogEntry + 25, // 17: viam.app.mltraining.v1.ListSupportedContainersResponse.container_map:type_name -> viam.app.mltraining.v1.ListSupportedContainersResponse.ContainerMapEntry + 27, // 18: viam.app.mltraining.v1.Container.eol:type_name -> google.protobuf.Timestamp + 27, // 19: viam.app.mltraining.v1.Container.created_on:type_name -> google.protobuf.Timestamp + 3, // 20: viam.app.mltraining.v1.Container.visibility:type_name -> viam.app.mltraining.v1.Visibility + 22, // 21: viam.app.mltraining.v1.ListSupportedContainersResponse.ContainerMapEntry.value:type_name -> viam.app.mltraining.v1.Container + 4, // 22: viam.app.mltraining.v1.MLTrainingService.SubmitTrainingJob:input_type -> viam.app.mltraining.v1.SubmitTrainingJobRequest + 6, // 23: viam.app.mltraining.v1.MLTrainingService.SubmitCustomTrainingJob:input_type -> viam.app.mltraining.v1.SubmitCustomTrainingJobRequest + 8, // 24: viam.app.mltraining.v1.MLTrainingService.GetTrainingJob:input_type -> viam.app.mltraining.v1.GetTrainingJobRequest + 10, // 25: viam.app.mltraining.v1.MLTrainingService.ListTrainingJobs:input_type -> viam.app.mltraining.v1.ListTrainingJobsRequest + 13, // 26: viam.app.mltraining.v1.MLTrainingService.CancelTrainingJob:input_type -> viam.app.mltraining.v1.CancelTrainingJobRequest + 15, // 27: viam.app.mltraining.v1.MLTrainingService.DeleteCompletedTrainingJob:input_type -> viam.app.mltraining.v1.DeleteCompletedTrainingJobRequest + 18, // 28: viam.app.mltraining.v1.MLTrainingService.GetTrainingJobLogs:input_type -> viam.app.mltraining.v1.GetTrainingJobLogsRequest + 20, // 29: viam.app.mltraining.v1.MLTrainingService.ListSupportedContainers:input_type -> viam.app.mltraining.v1.ListSupportedContainersRequest + 5, // 30: viam.app.mltraining.v1.MLTrainingService.SubmitTrainingJob:output_type -> viam.app.mltraining.v1.SubmitTrainingJobResponse + 7, // 31: viam.app.mltraining.v1.MLTrainingService.SubmitCustomTrainingJob:output_type -> viam.app.mltraining.v1.SubmitCustomTrainingJobResponse + 9, // 32: viam.app.mltraining.v1.MLTrainingService.GetTrainingJob:output_type -> viam.app.mltraining.v1.GetTrainingJobResponse + 11, // 33: viam.app.mltraining.v1.MLTrainingService.ListTrainingJobs:output_type -> viam.app.mltraining.v1.ListTrainingJobsResponse + 14, // 34: viam.app.mltraining.v1.MLTrainingService.CancelTrainingJob:output_type -> viam.app.mltraining.v1.CancelTrainingJobResponse + 16, // 35: viam.app.mltraining.v1.MLTrainingService.DeleteCompletedTrainingJob:output_type -> viam.app.mltraining.v1.DeleteCompletedTrainingJobResponse + 19, // 36: viam.app.mltraining.v1.MLTrainingService.GetTrainingJobLogs:output_type -> viam.app.mltraining.v1.GetTrainingJobLogsResponse + 21, // 37: viam.app.mltraining.v1.MLTrainingService.ListSupportedContainers:output_type -> viam.app.mltraining.v1.ListSupportedContainersResponse + 30, // [30:38] is the sub-list for method output_type + 22, // [22:30] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_app_mltraining_v1_ml_training_proto_init() } @@ -1871,7 +1987,7 @@ func file_app_mltraining_v1_ml_training_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_app_mltraining_v1_ml_training_proto_rawDesc, - NumEnums: 3, + NumEnums: 4, NumMessages: 22, NumExtensions: 0, NumServices: 1, diff --git a/gen/js/app/mltraining/v1/ml_training_pb.d.ts b/gen/js/app/mltraining/v1/ml_training_pb.d.ts index 582b51d7e8..3c114e5cbe 100644 --- a/gen/js/app/mltraining/v1/ml_training_pb.d.ts +++ b/gen/js/app/mltraining/v1/ml_training_pb.d.ts @@ -489,6 +489,9 @@ export namespace GetTrainingJobLogsResponse { } export class ListSupportedContainersRequest extends jspb.Message { + getOrganizationId(): string; + setOrganizationId(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): ListSupportedContainersRequest.AsObject; static toObject(includeInstance: boolean, msg: ListSupportedContainersRequest): ListSupportedContainersRequest.AsObject; @@ -501,6 +504,7 @@ export class ListSupportedContainersRequest extends jspb.Message { export namespace ListSupportedContainersRequest { export type AsObject = { + organizationId: string, } } @@ -541,6 +545,20 @@ export class Container extends jspb.Message { getEol(): google_protobuf_timestamp_pb.Timestamp | undefined; setEol(value?: google_protobuf_timestamp_pb.Timestamp): void; + getOrganizationId(): string; + setOrganizationId(value: string): void; + + hasCreatedOn(): boolean; + clearCreatedOn(): void; + getCreatedOn(): google_protobuf_timestamp_pb.Timestamp | undefined; + setCreatedOn(value?: google_protobuf_timestamp_pb.Timestamp): void; + + getId(): string; + setId(value: string): void; + + getVisibility(): VisibilityMap[keyof VisibilityMap]; + setVisibility(value: VisibilityMap[keyof VisibilityMap]): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): Container.AsObject; static toObject(includeInstance: boolean, msg: Container): Container.AsObject; @@ -558,6 +576,10 @@ export namespace Container { framework: string, description: string, eol?: google_protobuf_timestamp_pb.Timestamp.AsObject, + organizationId: string, + createdOn?: google_protobuf_timestamp_pb.Timestamp.AsObject, + id: string, + visibility: VisibilityMap[keyof VisibilityMap], } } @@ -592,3 +614,11 @@ export interface TrainingStatusMap { export const TrainingStatus: TrainingStatusMap; +export interface VisibilityMap { + VISIBILITY_UNSPECIFIED: 0; + VISIBILITY_PRIVATE: 1; + VISIBILITY_PUBLIC: 2; +} + +export const Visibility: VisibilityMap; + diff --git a/gen/js/app/mltraining/v1/ml_training_pb.js b/gen/js/app/mltraining/v1/ml_training_pb.js index 91c82ca093..69cf7b45ae 100644 --- a/gen/js/app/mltraining/v1/ml_training_pb.js +++ b/gen/js/app/mltraining/v1/ml_training_pb.js @@ -43,6 +43,7 @@ goog.exportSymbol('proto.viam.app.mltraining.v1.SubmitTrainingJobResponse', null goog.exportSymbol('proto.viam.app.mltraining.v1.TrainingJobLogEntry', null, global); goog.exportSymbol('proto.viam.app.mltraining.v1.TrainingJobMetadata', null, global); goog.exportSymbol('proto.viam.app.mltraining.v1.TrainingStatus', null, global); +goog.exportSymbol('proto.viam.app.mltraining.v1.Visibility', null, global); /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -3889,7 +3890,7 @@ proto.viam.app.mltraining.v1.ListSupportedContainersRequest.prototype.toObject = */ proto.viam.app.mltraining.v1.ListSupportedContainersRequest.toObject = function(includeInstance, msg) { var f, obj = { - + organizationId: jspb.Message.getFieldWithDefault(msg, 1, "") }; if (includeInstance) { @@ -3926,6 +3927,10 @@ proto.viam.app.mltraining.v1.ListSupportedContainersRequest.deserializeBinaryFro } var field = reader.getFieldNumber(); switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setOrganizationId(value); + break; default: reader.skipField(); break; @@ -3955,6 +3960,31 @@ proto.viam.app.mltraining.v1.ListSupportedContainersRequest.prototype.serializeB */ proto.viam.app.mltraining.v1.ListSupportedContainersRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; + f = message.getOrganizationId(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string organization_id = 1; + * @return {string} + */ +proto.viam.app.mltraining.v1.ListSupportedContainersRequest.prototype.getOrganizationId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.viam.app.mltraining.v1.ListSupportedContainersRequest} returns this + */ +proto.viam.app.mltraining.v1.ListSupportedContainersRequest.prototype.setOrganizationId = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; @@ -4127,7 +4157,11 @@ proto.viam.app.mltraining.v1.Container.toObject = function(includeInstance, msg) uri: jspb.Message.getFieldWithDefault(msg, 2, ""), framework: jspb.Message.getFieldWithDefault(msg, 3, ""), description: jspb.Message.getFieldWithDefault(msg, 4, ""), - eol: (f = msg.getEol()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f) + eol: (f = msg.getEol()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f), + organizationId: jspb.Message.getFieldWithDefault(msg, 6, ""), + createdOn: (f = msg.getCreatedOn()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f), + id: jspb.Message.getFieldWithDefault(msg, 8, ""), + visibility: jspb.Message.getFieldWithDefault(msg, 9, 0) }; if (includeInstance) { @@ -4185,6 +4219,23 @@ proto.viam.app.mltraining.v1.Container.deserializeBinaryFromReader = function(ms reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader); msg.setEol(value); break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setOrganizationId(value); + break; + case 7: + var value = new google_protobuf_timestamp_pb.Timestamp; + reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader); + msg.setCreatedOn(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setId(value); + break; + case 9: + var value = /** @type {!proto.viam.app.mltraining.v1.Visibility} */ (reader.readEnum()); + msg.setVisibility(value); + break; default: reader.skipField(); break; @@ -4250,6 +4301,35 @@ proto.viam.app.mltraining.v1.Container.serializeBinaryToWriter = function(messag google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter ); } + f = message.getOrganizationId(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getCreatedOn(); + if (f != null) { + writer.writeMessage( + 7, + f, + google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter + ); + } + f = message.getId(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } + f = message.getVisibility(); + if (f !== 0.0) { + writer.writeEnum( + 9, + f + ); + } }; @@ -4362,6 +4442,97 @@ proto.viam.app.mltraining.v1.Container.prototype.hasEol = function() { }; +/** + * optional string organization_id = 6; + * @return {string} + */ +proto.viam.app.mltraining.v1.Container.prototype.getOrganizationId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.viam.app.mltraining.v1.Container} returns this + */ +proto.viam.app.mltraining.v1.Container.prototype.setOrganizationId = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional google.protobuf.Timestamp created_on = 7; + * @return {?proto.google.protobuf.Timestamp} + */ +proto.viam.app.mltraining.v1.Container.prototype.getCreatedOn = function() { + return /** @type{?proto.google.protobuf.Timestamp} */ ( + jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 7)); +}; + + +/** + * @param {?proto.google.protobuf.Timestamp|undefined} value + * @return {!proto.viam.app.mltraining.v1.Container} returns this +*/ +proto.viam.app.mltraining.v1.Container.prototype.setCreatedOn = function(value) { + return jspb.Message.setWrapperField(this, 7, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.viam.app.mltraining.v1.Container} returns this + */ +proto.viam.app.mltraining.v1.Container.prototype.clearCreatedOn = function() { + return this.setCreatedOn(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.viam.app.mltraining.v1.Container.prototype.hasCreatedOn = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional string id = 8; + * @return {string} + */ +proto.viam.app.mltraining.v1.Container.prototype.getId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** + * @param {string} value + * @return {!proto.viam.app.mltraining.v1.Container} returns this + */ +proto.viam.app.mltraining.v1.Container.prototype.setId = function(value) { + return jspb.Message.setProto3StringField(this, 8, value); +}; + + +/** + * optional Visibility visibility = 9; + * @return {!proto.viam.app.mltraining.v1.Visibility} + */ +proto.viam.app.mltraining.v1.Container.prototype.getVisibility = function() { + return /** @type {!proto.viam.app.mltraining.v1.Visibility} */ (jspb.Message.getFieldWithDefault(this, 9, 0)); +}; + + +/** + * @param {!proto.viam.app.mltraining.v1.Visibility} value + * @return {!proto.viam.app.mltraining.v1.Container} returns this + */ +proto.viam.app.mltraining.v1.Container.prototype.setVisibility = function(value) { + return jspb.Message.setProto3EnumField(this, 9, value); +}; + + /** * @enum {number} */ @@ -4396,4 +4567,13 @@ proto.viam.app.mltraining.v1.TrainingStatus = { TRAINING_STATUS_CANCELING: 6 }; +/** + * @enum {number} + */ +proto.viam.app.mltraining.v1.Visibility = { + VISIBILITY_UNSPECIFIED: 0, + VISIBILITY_PRIVATE: 1, + VISIBILITY_PUBLIC: 2 +}; + goog.object.extend(exports, proto.viam.app.mltraining.v1); diff --git a/proto/viam/app/mltraining/v1/ml_training.proto b/proto/viam/app/mltraining/v1/ml_training.proto index a79f517703..d897da295b 100644 --- a/proto/viam/app/mltraining/v1/ml_training.proto +++ b/proto/viam/app/mltraining/v1/ml_training.proto @@ -162,7 +162,13 @@ message GetTrainingJobLogsResponse { string next_page_token = 2; } -message ListSupportedContainersRequest {} +message ListSupportedContainersRequest { + // Optional. Scopes the response to the containers available to this + // organization: the Viam-managed catalog plus the org's registered + // custom training containers. If unset, only the Viam-managed catalog + // is returned. + string organization_id = 1; +} message ListSupportedContainersResponse { map container_map = 1; @@ -171,16 +177,30 @@ message ListSupportedContainersResponse { // "tf:2.15": Container { // key: "tf:2.15" // uri: "us-docker.pkg.dev/vertex-ai/training/tf-gpu.2-15.py310:latest" + // framework: Tensorflow // description: "Tensorflow 2.15" // eol: { seconds: 1772630400, nanos: 0 } // 2026-03-03T00:00:00Z + // created_on: 2026-01-15T01:30:15.01Z + // organization_id: "xyz" + // visibility: VISIBILITY_PUBLIC // } // } } +enum Visibility { + VISIBILITY_UNSPECIFIED = 0; + VISIBILITY_PRIVATE = 1; + VISIBILITY_PUBLIC = 2; +} + message Container { - string key = 1; + string key = 1; // custom container keys are derived from the Docker URI (image:tag) string uri = 2; - string framework = 3; - string description = 4; - google.protobuf.Timestamp eol = 5; + string framework = 3; // unset for custom containers + string description = 4; // will serve as display name + google.protobuf.Timestamp eol = 5; // unset for custom containers + string organization_id = 6; + google.protobuf.Timestamp created_on = 7; + string id = 8; // unique id of the container + Visibility visibility = 9; // public or private }