From 17dbca3ec4a6fb5ebe29a2c86744673cc31fcda5 Mon Sep 17 00:00:00 2001 From: Hougang Liu Date: Tue, 21 May 2019 22:36:04 -0500 Subject: [PATCH] Implement GetExperimentInDB (#558) * Implement GetExperimentInDB * Parse ErrNoRows error * Fix pod ready condition in test script * Add PreCheckRegisterExperiment --- cmd/manager/v1alpha2/main.go | 8 + pkg/api/v1alpha2/api.pb.go | 431 ++++++++++-------- pkg/api/v1alpha2/api.pb.gw.go | 46 ++ pkg/api/v1alpha2/api.proto | 14 + pkg/api/v1alpha2/api.swagger.json | 36 ++ pkg/api/v1alpha2/gen-doc/api.md | 189 ++++---- pkg/api/v1alpha2/gen-doc/index.html | 359 ++++----------- pkg/api/v1alpha2/python/api_pb2.py | 259 +++++++---- pkg/api/v1alpha2/python/api_pb2_grpc.py | 18 + pkg/common/v1alpha2/katib_manager_util.go | 11 + .../experiment/managerclient/managerclient.go | 13 +- .../experiment/validator/validator.go | 13 +- .../experiment/validator/validator_test.go | 17 +- pkg/db/v1alpha2/interface.go | 14 + pkg/mock/v1alpha2/api/manager.go | 20 + pkg/mock/v1alpha2/db/db.go | 15 + .../experiment/managerclient/managerclient.go | 14 +- test/scripts/v1alpha2/run-tests.sh | 2 +- 18 files changed, 819 insertions(+), 660 deletions(-) diff --git a/cmd/manager/v1alpha2/main.go b/cmd/manager/v1alpha2/main.go index 72ac1535dca..220f4500df4 100644 --- a/cmd/manager/v1alpha2/main.go +++ b/cmd/manager/v1alpha2/main.go @@ -31,6 +31,14 @@ func (s *server) RegisterExperiment(ctx context.Context, in *api_pb.RegisterExpe return &api_pb.RegisterExperimentReply{}, err } +// Register a Experiment to DB. +func (s *server) PreCheckRegisterExperiment(ctx context.Context, in *api_pb.RegisterExperimentRequest) (*api_pb.PreCheckRegisterExperimentReply, error) { + can_register, err := dbIf.PreCheckRegisterExperiment(in.Experiment) + return &api_pb.PreCheckRegisterExperimentReply{ + CanRegister: can_register, + }, err +} + // Delete a Experiment from DB by name. func (s *server) DeleteExperiment(ctx context.Context, in *api_pb.DeleteExperimentRequest) (*api_pb.DeleteExperimentReply, error) { err := dbIf.DeleteExperiment(in.ExperimentName) diff --git a/pkg/api/v1alpha2/api.pb.go b/pkg/api/v1alpha2/api.pb.go index 30d019effba..a43ced37a6d 100644 --- a/pkg/api/v1alpha2/api.pb.go +++ b/pkg/api/v1alpha2/api.pb.go @@ -30,6 +30,7 @@ It has these top-level messages: Trial RegisterExperimentRequest RegisterExperimentReply + PreCheckRegisterExperimentReply DeleteExperimentRequest DeleteExperimentReply GetExperimentRequest @@ -944,6 +945,24 @@ func (m *RegisterExperimentReply) String() string { return proto.Comp func (*RegisterExperimentReply) ProtoMessage() {} func (*RegisterExperimentReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } +type PreCheckRegisterExperimentReply struct { + CanRegister bool `protobuf:"varint,1,opt,name=can_register,json=canRegister" json:"can_register,omitempty"` +} + +func (m *PreCheckRegisterExperimentReply) Reset() { *m = PreCheckRegisterExperimentReply{} } +func (m *PreCheckRegisterExperimentReply) String() string { return proto.CompactTextString(m) } +func (*PreCheckRegisterExperimentReply) ProtoMessage() {} +func (*PreCheckRegisterExperimentReply) Descriptor() ([]byte, []int) { + return fileDescriptor0, []int{22} +} + +func (m *PreCheckRegisterExperimentReply) GetCanRegister() bool { + if m != nil { + return m.CanRegister + } + return false +} + type DeleteExperimentRequest struct { ExperimentName string `protobuf:"bytes,1,opt,name=experiment_name,json=experimentName" json:"experiment_name,omitempty"` } @@ -951,7 +970,7 @@ type DeleteExperimentRequest struct { func (m *DeleteExperimentRequest) Reset() { *m = DeleteExperimentRequest{} } func (m *DeleteExperimentRequest) String() string { return proto.CompactTextString(m) } func (*DeleteExperimentRequest) ProtoMessage() {} -func (*DeleteExperimentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } +func (*DeleteExperimentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } func (m *DeleteExperimentRequest) GetExperimentName() string { if m != nil { @@ -966,7 +985,7 @@ type DeleteExperimentReply struct { func (m *DeleteExperimentReply) Reset() { *m = DeleteExperimentReply{} } func (m *DeleteExperimentReply) String() string { return proto.CompactTextString(m) } func (*DeleteExperimentReply) ProtoMessage() {} -func (*DeleteExperimentReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } +func (*DeleteExperimentReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } type GetExperimentRequest struct { ExperimentName string `protobuf:"bytes,1,opt,name=experiment_name,json=experimentName" json:"experiment_name,omitempty"` @@ -975,7 +994,7 @@ type GetExperimentRequest struct { func (m *GetExperimentRequest) Reset() { *m = GetExperimentRequest{} } func (m *GetExperimentRequest) String() string { return proto.CompactTextString(m) } func (*GetExperimentRequest) ProtoMessage() {} -func (*GetExperimentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } +func (*GetExperimentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } func (m *GetExperimentRequest) GetExperimentName() string { if m != nil { @@ -991,7 +1010,7 @@ type GetExperimentReply struct { func (m *GetExperimentReply) Reset() { *m = GetExperimentReply{} } func (m *GetExperimentReply) String() string { return proto.CompactTextString(m) } func (*GetExperimentReply) ProtoMessage() {} -func (*GetExperimentReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } +func (*GetExperimentReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } func (m *GetExperimentReply) GetExperiment() *Experiment { if m != nil { @@ -1008,7 +1027,7 @@ type ExperimentSummary struct { func (m *ExperimentSummary) Reset() { *m = ExperimentSummary{} } func (m *ExperimentSummary) String() string { return proto.CompactTextString(m) } func (*ExperimentSummary) ProtoMessage() {} -func (*ExperimentSummary) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } +func (*ExperimentSummary) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } func (m *ExperimentSummary) GetExperimentName() string { if m != nil { @@ -1030,7 +1049,7 @@ type GetExperimentListRequest struct { func (m *GetExperimentListRequest) Reset() { *m = GetExperimentListRequest{} } func (m *GetExperimentListRequest) String() string { return proto.CompactTextString(m) } func (*GetExperimentListRequest) ProtoMessage() {} -func (*GetExperimentListRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } +func (*GetExperimentListRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } type GetExperimentListReply struct { ExperimentSummaries []*ExperimentSummary `protobuf:"bytes,1,rep,name=experiment_summaries,json=experimentSummaries" json:"experiment_summaries,omitempty"` @@ -1039,7 +1058,7 @@ type GetExperimentListReply struct { func (m *GetExperimentListReply) Reset() { *m = GetExperimentListReply{} } func (m *GetExperimentListReply) String() string { return proto.CompactTextString(m) } func (*GetExperimentListReply) ProtoMessage() {} -func (*GetExperimentListReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } +func (*GetExperimentListReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } func (m *GetExperimentListReply) GetExperimentSummaries() []*ExperimentSummary { if m != nil { @@ -1056,7 +1075,7 @@ type UpdateExperimentStatusRequest struct { func (m *UpdateExperimentStatusRequest) Reset() { *m = UpdateExperimentStatusRequest{} } func (m *UpdateExperimentStatusRequest) String() string { return proto.CompactTextString(m) } func (*UpdateExperimentStatusRequest) ProtoMessage() {} -func (*UpdateExperimentStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } +func (*UpdateExperimentStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } func (m *UpdateExperimentStatusRequest) GetExperimentName() string { if m != nil { @@ -1078,7 +1097,7 @@ type UpdateExperimentStatusReply struct { func (m *UpdateExperimentStatusReply) Reset() { *m = UpdateExperimentStatusReply{} } func (m *UpdateExperimentStatusReply) String() string { return proto.CompactTextString(m) } func (*UpdateExperimentStatusReply) ProtoMessage() {} -func (*UpdateExperimentStatusReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } +func (*UpdateExperimentStatusReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } type UpdateAlgorithmExtraSettingsRequest struct { ExperimentName string `protobuf:"bytes,1,opt,name=experiment_name,json=experimentName" json:"experiment_name,omitempty"` @@ -1089,7 +1108,7 @@ func (m *UpdateAlgorithmExtraSettingsRequest) Reset() { *m = UpdateAlgor func (m *UpdateAlgorithmExtraSettingsRequest) String() string { return proto.CompactTextString(m) } func (*UpdateAlgorithmExtraSettingsRequest) ProtoMessage() {} func (*UpdateAlgorithmExtraSettingsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{31} + return fileDescriptor0, []int{32} } func (m *UpdateAlgorithmExtraSettingsRequest) GetExperimentName() string { @@ -1113,7 +1132,7 @@ func (m *UpdateAlgorithmExtraSettingsReply) Reset() { *m = UpdateAlgorit func (m *UpdateAlgorithmExtraSettingsReply) String() string { return proto.CompactTextString(m) } func (*UpdateAlgorithmExtraSettingsReply) ProtoMessage() {} func (*UpdateAlgorithmExtraSettingsReply) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{32} + return fileDescriptor0, []int{33} } type GetAlgorithmExtraSettingsRequest struct { @@ -1124,7 +1143,7 @@ func (m *GetAlgorithmExtraSettingsRequest) Reset() { *m = GetAlgorithmEx func (m *GetAlgorithmExtraSettingsRequest) String() string { return proto.CompactTextString(m) } func (*GetAlgorithmExtraSettingsRequest) ProtoMessage() {} func (*GetAlgorithmExtraSettingsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{33} + return fileDescriptor0, []int{34} } func (m *GetAlgorithmExtraSettingsRequest) GetExperimentName() string { @@ -1141,7 +1160,7 @@ type GetAlgorithmExtraSettingsReply struct { func (m *GetAlgorithmExtraSettingsReply) Reset() { *m = GetAlgorithmExtraSettingsReply{} } func (m *GetAlgorithmExtraSettingsReply) String() string { return proto.CompactTextString(m) } func (*GetAlgorithmExtraSettingsReply) ProtoMessage() {} -func (*GetAlgorithmExtraSettingsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } +func (*GetAlgorithmExtraSettingsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } func (m *GetAlgorithmExtraSettingsReply) GetExtraAlgorithmSettings() []*AlgorithmSetting { if m != nil { @@ -1157,7 +1176,7 @@ type RegisterTrialRequest struct { func (m *RegisterTrialRequest) Reset() { *m = RegisterTrialRequest{} } func (m *RegisterTrialRequest) String() string { return proto.CompactTextString(m) } func (*RegisterTrialRequest) ProtoMessage() {} -func (*RegisterTrialRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } +func (*RegisterTrialRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } func (m *RegisterTrialRequest) GetTrial() *Trial { if m != nil { @@ -1172,7 +1191,7 @@ type RegisterTrialReply struct { func (m *RegisterTrialReply) Reset() { *m = RegisterTrialReply{} } func (m *RegisterTrialReply) String() string { return proto.CompactTextString(m) } func (*RegisterTrialReply) ProtoMessage() {} -func (*RegisterTrialReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } +func (*RegisterTrialReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } type DeleteTrialRequest struct { TrialName string `protobuf:"bytes,1,opt,name=trial_name,json=trialName" json:"trial_name,omitempty"` @@ -1181,7 +1200,7 @@ type DeleteTrialRequest struct { func (m *DeleteTrialRequest) Reset() { *m = DeleteTrialRequest{} } func (m *DeleteTrialRequest) String() string { return proto.CompactTextString(m) } func (*DeleteTrialRequest) ProtoMessage() {} -func (*DeleteTrialRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } +func (*DeleteTrialRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } func (m *DeleteTrialRequest) GetTrialName() string { if m != nil { @@ -1196,7 +1215,7 @@ type DeleteTrialReply struct { func (m *DeleteTrialReply) Reset() { *m = DeleteTrialReply{} } func (m *DeleteTrialReply) String() string { return proto.CompactTextString(m) } func (*DeleteTrialReply) ProtoMessage() {} -func (*DeleteTrialReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } +func (*DeleteTrialReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } type GetTrialListRequest struct { ExperimentName string `protobuf:"bytes,1,opt,name=experiment_name,json=experimentName" json:"experiment_name,omitempty"` @@ -1206,7 +1225,7 @@ type GetTrialListRequest struct { func (m *GetTrialListRequest) Reset() { *m = GetTrialListRequest{} } func (m *GetTrialListRequest) String() string { return proto.CompactTextString(m) } func (*GetTrialListRequest) ProtoMessage() {} -func (*GetTrialListRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } +func (*GetTrialListRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } func (m *GetTrialListRequest) GetExperimentName() string { if m != nil { @@ -1229,7 +1248,7 @@ type GetTrialListReply struct { func (m *GetTrialListReply) Reset() { *m = GetTrialListReply{} } func (m *GetTrialListReply) String() string { return proto.CompactTextString(m) } func (*GetTrialListReply) ProtoMessage() {} -func (*GetTrialListReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } +func (*GetTrialListReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } func (m *GetTrialListReply) GetTrials() []*Trial { if m != nil { @@ -1245,7 +1264,7 @@ type GetTrialRequest struct { func (m *GetTrialRequest) Reset() { *m = GetTrialRequest{} } func (m *GetTrialRequest) String() string { return proto.CompactTextString(m) } func (*GetTrialRequest) ProtoMessage() {} -func (*GetTrialRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } +func (*GetTrialRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } func (m *GetTrialRequest) GetTrialName() string { if m != nil { @@ -1261,7 +1280,7 @@ type GetTrialReply struct { func (m *GetTrialReply) Reset() { *m = GetTrialReply{} } func (m *GetTrialReply) String() string { return proto.CompactTextString(m) } func (*GetTrialReply) ProtoMessage() {} -func (*GetTrialReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } +func (*GetTrialReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } func (m *GetTrialReply) GetTrial() *Trial { if m != nil { @@ -1278,7 +1297,7 @@ type UpdateTrialStatusRequest struct { func (m *UpdateTrialStatusRequest) Reset() { *m = UpdateTrialStatusRequest{} } func (m *UpdateTrialStatusRequest) String() string { return proto.CompactTextString(m) } func (*UpdateTrialStatusRequest) ProtoMessage() {} -func (*UpdateTrialStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } +func (*UpdateTrialStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } func (m *UpdateTrialStatusRequest) GetTrialName() string { if m != nil { @@ -1300,7 +1319,7 @@ type UpdateTrialStatusReply struct { func (m *UpdateTrialStatusReply) Reset() { *m = UpdateTrialStatusReply{} } func (m *UpdateTrialStatusReply) String() string { return proto.CompactTextString(m) } func (*UpdateTrialStatusReply) ProtoMessage() {} -func (*UpdateTrialStatusReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } +func (*UpdateTrialStatusReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } type ReportObservationLogRequest struct { TrialName string `protobuf:"bytes,1,opt,name=trial_name,json=trialName" json:"trial_name,omitempty"` @@ -1310,7 +1329,7 @@ type ReportObservationLogRequest struct { func (m *ReportObservationLogRequest) Reset() { *m = ReportObservationLogRequest{} } func (m *ReportObservationLogRequest) String() string { return proto.CompactTextString(m) } func (*ReportObservationLogRequest) ProtoMessage() {} -func (*ReportObservationLogRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } +func (*ReportObservationLogRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } func (m *ReportObservationLogRequest) GetTrialName() string { if m != nil { @@ -1332,7 +1351,7 @@ type ReportObservationLogReply struct { func (m *ReportObservationLogReply) Reset() { *m = ReportObservationLogReply{} } func (m *ReportObservationLogReply) String() string { return proto.CompactTextString(m) } func (*ReportObservationLogReply) ProtoMessage() {} -func (*ReportObservationLogReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } +func (*ReportObservationLogReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} } type GetObservationLogRequest struct { TrialName string `protobuf:"bytes,1,opt,name=trial_name,json=trialName" json:"trial_name,omitempty"` @@ -1344,7 +1363,7 @@ type GetObservationLogRequest struct { func (m *GetObservationLogRequest) Reset() { *m = GetObservationLogRequest{} } func (m *GetObservationLogRequest) String() string { return proto.CompactTextString(m) } func (*GetObservationLogRequest) ProtoMessage() {} -func (*GetObservationLogRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} } +func (*GetObservationLogRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} } func (m *GetObservationLogRequest) GetTrialName() string { if m != nil { @@ -1381,7 +1400,7 @@ type GetObservationLogReply struct { func (m *GetObservationLogReply) Reset() { *m = GetObservationLogReply{} } func (m *GetObservationLogReply) String() string { return proto.CompactTextString(m) } func (*GetObservationLogReply) ProtoMessage() {} -func (*GetObservationLogReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} } +func (*GetObservationLogReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} } func (m *GetObservationLogReply) GetObservationLog() *ObservationLog { if m != nil { @@ -1399,7 +1418,7 @@ type GetSuggestionsRequest struct { func (m *GetSuggestionsRequest) Reset() { *m = GetSuggestionsRequest{} } func (m *GetSuggestionsRequest) String() string { return proto.CompactTextString(m) } func (*GetSuggestionsRequest) ProtoMessage() {} -func (*GetSuggestionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} } +func (*GetSuggestionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} } func (m *GetSuggestionsRequest) GetExperimentName() string { if m != nil { @@ -1429,7 +1448,7 @@ type GetSuggestionsReply struct { func (m *GetSuggestionsReply) Reset() { *m = GetSuggestionsReply{} } func (m *GetSuggestionsReply) String() string { return proto.CompactTextString(m) } func (*GetSuggestionsReply) ProtoMessage() {} -func (*GetSuggestionsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} } +func (*GetSuggestionsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} } func (m *GetSuggestionsReply) GetTrials() []*Trial { if m != nil { @@ -1447,7 +1466,7 @@ func (m *ValidateAlgorithmSettingsRequest) Reset() { *m = ValidateAlgori func (m *ValidateAlgorithmSettingsRequest) String() string { return proto.CompactTextString(m) } func (*ValidateAlgorithmSettingsRequest) ProtoMessage() {} func (*ValidateAlgorithmSettingsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor0, []int{51} + return fileDescriptor0, []int{52} } func (m *ValidateAlgorithmSettingsRequest) GetExperimentSpec() *ExperimentSpec { @@ -1472,7 +1491,7 @@ type ValidateAlgorithmSettingsReply struct { func (m *ValidateAlgorithmSettingsReply) Reset() { *m = ValidateAlgorithmSettingsReply{} } func (m *ValidateAlgorithmSettingsReply) String() string { return proto.CompactTextString(m) } func (*ValidateAlgorithmSettingsReply) ProtoMessage() {} -func (*ValidateAlgorithmSettingsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} } +func (*ValidateAlgorithmSettingsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} } func init() { proto.RegisterType((*FeasibleSpace)(nil), "api.v1.alpha2.FeasibleSpace") @@ -1501,6 +1520,7 @@ func init() { proto.RegisterType((*Trial)(nil), "api.v1.alpha2.Trial") proto.RegisterType((*RegisterExperimentRequest)(nil), "api.v1.alpha2.RegisterExperimentRequest") proto.RegisterType((*RegisterExperimentReply)(nil), "api.v1.alpha2.RegisterExperimentReply") + proto.RegisterType((*PreCheckRegisterExperimentReply)(nil), "api.v1.alpha2.PreCheckRegisterExperimentReply") proto.RegisterType((*DeleteExperimentRequest)(nil), "api.v1.alpha2.DeleteExperimentRequest") proto.RegisterType((*DeleteExperimentReply)(nil), "api.v1.alpha2.DeleteExperimentReply") proto.RegisterType((*GetExperimentRequest)(nil), "api.v1.alpha2.GetExperimentRequest") @@ -1553,6 +1573,9 @@ type ManagerClient interface { // Register a Experiment to DB. RegisterExperiment(ctx context.Context, in *RegisterExperimentRequest, opts ...grpc.CallOption) (*RegisterExperimentReply, error) // * + // PreCheck to register a Experiment to DB. + PreCheckRegisterExperiment(ctx context.Context, in *RegisterExperimentRequest, opts ...grpc.CallOption) (*PreCheckRegisterExperimentReply, error) + // * // Delete a Experiment from DB by name. DeleteExperiment(ctx context.Context, in *DeleteExperimentRequest, opts ...grpc.CallOption) (*DeleteExperimentReply, error) // * @@ -1623,6 +1646,15 @@ func (c *managerClient) RegisterExperiment(ctx context.Context, in *RegisterExpe return out, nil } +func (c *managerClient) PreCheckRegisterExperiment(ctx context.Context, in *RegisterExperimentRequest, opts ...grpc.CallOption) (*PreCheckRegisterExperimentReply, error) { + out := new(PreCheckRegisterExperimentReply) + err := grpc.Invoke(ctx, "/api.v1.alpha2.Manager/PreCheckRegisterExperiment", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *managerClient) DeleteExperiment(ctx context.Context, in *DeleteExperimentRequest, opts ...grpc.CallOption) (*DeleteExperimentReply, error) { out := new(DeleteExperimentReply) err := grpc.Invoke(ctx, "/api.v1.alpha2.Manager/DeleteExperiment", in, out, c.cc, opts...) @@ -1765,6 +1797,9 @@ type ManagerServer interface { // Register a Experiment to DB. RegisterExperiment(context.Context, *RegisterExperimentRequest) (*RegisterExperimentReply, error) // * + // PreCheck to register a Experiment to DB. + PreCheckRegisterExperiment(context.Context, *RegisterExperimentRequest) (*PreCheckRegisterExperimentReply, error) + // * // Delete a Experiment from DB by name. DeleteExperiment(context.Context, *DeleteExperimentRequest) (*DeleteExperimentReply, error) // * @@ -1840,6 +1875,24 @@ func _Manager_RegisterExperiment_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _Manager_PreCheckRegisterExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterExperimentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagerServer).PreCheckRegisterExperiment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.v1.alpha2.Manager/PreCheckRegisterExperiment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagerServer).PreCheckRegisterExperiment(ctx, req.(*RegisterExperimentRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Manager_DeleteExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteExperimentRequest) if err := dec(in); err != nil { @@ -2118,6 +2171,10 @@ var _Manager_serviceDesc = grpc.ServiceDesc{ MethodName: "RegisterExperiment", Handler: _Manager_RegisterExperiment_Handler, }, + { + MethodName: "PreCheckRegisterExperiment", + Handler: _Manager_PreCheckRegisterExperiment_Handler, + }, { MethodName: "DeleteExperiment", Handler: _Manager_DeleteExperiment_Handler, @@ -2313,158 +2370,162 @@ var _EarlyStopping_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("api.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ - // 2447 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0xdd, 0x6f, 0x1b, 0x59, - 0x15, 0xdf, 0xb1, 0xf3, 0x51, 0x1f, 0xd7, 0x8e, 0x73, 0x93, 0xb4, 0x8e, 0xfb, 0x11, 0xf7, 0xf6, - 0x2b, 0x64, 0xdb, 0xa4, 0xf5, 0x2e, 0xdb, 0xdd, 0x6c, 0xd9, 0xdd, 0xd4, 0x71, 0xa3, 0xa8, 0xa9, - 0x53, 0x8d, 0x9d, 0x42, 0x17, 0xa4, 0x61, 0xe2, 0xde, 0xba, 0x03, 0xe3, 0x99, 0x61, 0x66, 0xdc, - 0x4d, 0xa8, 0x2a, 0xa1, 0xc2, 0x03, 0x08, 0xa8, 0x84, 0xe0, 0x05, 0x90, 0xe0, 0x0d, 0x89, 0x07, - 0x78, 0xe2, 0x95, 0x07, 0x24, 0x1e, 0x79, 0xe3, 0xe3, 0x2f, 0x80, 0xff, 0x03, 0xdd, 0x33, 0xdf, - 0x5f, 0x8e, 0xd3, 0x16, 0xf1, 0x36, 0x73, 0xef, 0xef, 0x9e, 0xfb, 0x3b, 0xe7, 0x9e, 0xf3, 0xbb, - 0xc7, 0x93, 0x40, 0x41, 0x36, 0x94, 0x55, 0xc3, 0xd4, 0x6d, 0x9d, 0x94, 0xf8, 0xe3, 0xb3, 0x9b, - 0xab, 0xb2, 0x6a, 0x3c, 0x95, 0x1b, 0xb5, 0xb3, 0x7d, 0x5d, 0xef, 0xab, 0x6c, 0x4d, 0x36, 0x94, - 0x35, 0x59, 0xd3, 0x74, 0x5b, 0xb6, 0x15, 0x5d, 0xb3, 0x1c, 0x30, 0xfd, 0x3a, 0x94, 0xee, 0x32, - 0xd9, 0x52, 0xf6, 0x55, 0xd6, 0x31, 0xe4, 0x1e, 0x23, 0x15, 0xc8, 0x0f, 0xe4, 0x83, 0xaa, 0x50, - 0x17, 0x96, 0x0b, 0x22, 0x7f, 0xc4, 0x11, 0x45, 0xab, 0xe6, 0xdc, 0x11, 0x45, 0x23, 0x04, 0x26, - 0x54, 0xc5, 0xb2, 0xab, 0xf9, 0x7a, 0x7e, 0xb9, 0x20, 0xe2, 0x33, 0x1f, 0xb3, 0x6c, 0x66, 0x54, - 0x27, 0x10, 0x86, 0xcf, 0xf4, 0x0f, 0x02, 0x94, 0x1e, 0xc8, 0xa6, 0x3c, 0x60, 0x36, 0x33, 0x3b, - 0x06, 0xeb, 0x71, 0x94, 0x26, 0x0f, 0x98, 0x6b, 0x1e, 0x9f, 0x49, 0x13, 0xca, 0x86, 0x07, 0x92, - 0xec, 0x43, 0x83, 0xe1, 0x56, 0xe5, 0xc6, 0xd9, 0xd5, 0x88, 0x23, 0xab, 0xbe, 0xa5, 0xee, 0xa1, - 0xc1, 0xc4, 0x92, 0x11, 0x7e, 0xe5, 0x46, 0x9e, 0xb8, 0x7e, 0x48, 0x16, 0x77, 0xa4, 0x9a, 0xaf, - 0x0b, 0xcb, 0xc5, 0x84, 0x91, 0x88, 0xb3, 0x62, 0xe9, 0x49, 0xf8, 0x95, 0xfe, 0x45, 0x80, 0xd2, - 0xee, 0xfe, 0xb7, 0x58, 0xcf, 0x56, 0x9e, 0x31, 0xe4, 0x7b, 0x03, 0x26, 0x90, 0x91, 0x90, 0xca, - 0xc8, 0xc7, 0x22, 0x23, 0x44, 0x72, 0x0f, 0xfb, 0xba, 0xac, 0xa2, 0x0f, 0x39, 0x11, 0x9f, 0x49, - 0x03, 0x16, 0x74, 0x0f, 0x2a, 0x0d, 0x98, 0x6d, 0x2a, 0x3d, 0x09, 0xc3, 0x90, 0xc7, 0x30, 0xcc, - 0xf9, 0x93, 0xf7, 0x71, 0xae, 0xcd, 0xa3, 0xf2, 0x01, 0x9c, 0x96, 0x1f, 0x3f, 0x56, 0xf8, 0x59, - 0xc9, 0x6a, 0x78, 0x91, 0x55, 0x9d, 0xc0, 0xb0, 0x2f, 0x04, 0xd3, 0xc1, 0x32, 0x8b, 0xde, 0x86, - 0xca, 0x86, 0xda, 0xd7, 0x4d, 0xc5, 0x7e, 0x3a, 0xe8, 0x30, 0xdb, 0x56, 0xb4, 0x7e, 0x6a, 0xd4, - 0xe7, 0x61, 0xf2, 0x99, 0xac, 0x0e, 0x99, 0x7b, 0xae, 0xce, 0x0b, 0x9d, 0x83, 0xd9, 0x96, 0x6c, - 0xaa, 0x87, 0x1d, 0x5b, 0x37, 0x0c, 0x45, 0xeb, 0xf3, 0x20, 0xd0, 0x7f, 0x09, 0x50, 0x0a, 0x6c, - 0xf2, 0xb0, 0x5c, 0x86, 0xb2, 0xec, 0x0d, 0x48, 0x21, 0xd3, 0x25, 0x7f, 0x14, 0x7d, 0xd8, 0x81, - 0xd9, 0x00, 0x66, 0x39, 0x64, 0xaa, 0xb9, 0x7a, 0x7e, 0xb9, 0xd8, 0x58, 0x8a, 0x85, 0x32, 0xce, - 0x59, 0xac, 0xc8, 0x71, 0x2f, 0x1e, 0xc0, 0x1c, 0xe3, 0xdc, 0x24, 0xcb, 0x25, 0x27, 0x59, 0x06, - 0xeb, 0xb9, 0xe7, 0x5c, 0x8f, 0xd9, 0x4b, 0x78, 0x21, 0xce, 0xb2, 0x84, 0x63, 0xff, 0x14, 0xa0, - 0xd0, 0x96, 0xad, 0xa6, 0xae, 0x3d, 0x51, 0xfa, 0xe4, 0x2b, 0x70, 0xb2, 0x6f, 0xca, 0xc6, 0x53, - 0xa9, 0x87, 0xef, 0xe8, 0x52, 0xb1, 0x51, 0x8b, 0x19, 0xde, 0xe2, 0x10, 0x67, 0x85, 0x58, 0xec, - 0x07, 0x2f, 0xa4, 0x09, 0xa0, 0x1b, 0xcc, 0x74, 0xaa, 0x0b, 0xa3, 0x5a, 0x6c, 0x5c, 0x8c, 0x2d, - 0xf6, 0x37, 0x5b, 0xdd, 0xf5, 0xa1, 0x62, 0x68, 0x59, 0x6d, 0x13, 0x20, 0x98, 0x21, 0x1f, 0x40, - 0xc1, 0x9f, 0xab, 0x0a, 0x18, 0xb7, 0x6a, 0x3c, 0x05, 0xbd, 0x79, 0x31, 0x80, 0x52, 0x03, 0x8a, - 0x21, 0x9a, 0xe4, 0x1c, 0x80, 0x36, 0x1c, 0x48, 0xaa, 0x7c, 0xc8, 0x4c, 0x0b, 0xdd, 0x9a, 0x14, - 0x0b, 0xda, 0x70, 0xb0, 0x83, 0x03, 0x64, 0x09, 0x8a, 0x8a, 0x66, 0x0c, 0x6d, 0xc9, 0x52, 0xbe, - 0xcb, 0x2c, 0x3c, 0x9f, 0x49, 0x11, 0x70, 0xa8, 0xc3, 0x47, 0xc8, 0x05, 0x38, 0xa9, 0x0f, 0xed, - 0x00, 0x91, 0x47, 0x44, 0xd1, 0x19, 0x43, 0x08, 0xfd, 0x87, 0x00, 0x05, 0x9f, 0x0a, 0x4f, 0x0f, - 0x9f, 0x8c, 0xe4, 0xd7, 0x4f, 0x41, 0x2c, 0xf9, 0xa3, 0x58, 0xb3, 0x0f, 0x60, 0x26, 0x28, 0x7c, - 0x7e, 0x96, 0x5e, 0xd8, 0xae, 0x66, 0x39, 0xb9, 0x1a, 0x51, 0x13, 0x4b, 0x0c, 0x84, 0x03, 0xdf, - 0x6b, 0x6d, 0x28, 0x47, 0x11, 0xe4, 0x36, 0x80, 0x8f, 0xb1, 0xdc, 0x18, 0x66, 0x0a, 0x0b, 0xe6, - 0x49, 0x08, 0x4f, 0x7f, 0x3b, 0x01, 0xe5, 0xd6, 0x81, 0xc1, 0x4c, 0x65, 0xc0, 0x34, 0x1b, 0x53, - 0x7f, 0x2f, 0x49, 0xda, 0x49, 0x94, 0x6b, 0xf1, 0x0c, 0x8c, 0xac, 0x3b, 0x82, 0x39, 0x59, 0x87, - 0x82, 0xaf, 0x02, 0x6e, 0x14, 0x32, 0xd5, 0x06, 0x69, 0x06, 0x70, 0xbe, 0xd6, 0x2f, 0x96, 0x0c, - 0xd9, 0x8b, 0x94, 0xaf, 0x18, 0xc0, 0xf9, 0x51, 0xd9, 0xa6, 0x22, 0xab, 0x92, 0xcd, 0x06, 0x86, - 0x2a, 0xdb, 0xcc, 0x15, 0xf0, 0x12, 0x8e, 0x76, 0xdd, 0x41, 0xf2, 0x3e, 0x9c, 0x72, 0x24, 0xc8, - 0x92, 0x7a, 0xba, 0xaa, 0xb2, 0x9e, 0xad, 0x3b, 0xde, 0x57, 0x27, 0x11, 0x3e, 0xef, 0xce, 0x36, - 0xbd, 0x49, 0x57, 0x3d, 0xe7, 0xb9, 0x9b, 0xaa, 0xca, 0x54, 0xc9, 0xd9, 0xa5, 0xa7, 0x0f, 0x35, - 0xbb, 0x3a, 0x85, 0x29, 0x48, 0xbc, 0xb9, 0x2e, 0x9f, 0x6a, 0xf2, 0x19, 0x72, 0x05, 0x66, 0x06, - 0xf2, 0x41, 0x04, 0x3c, 0x8d, 0xe0, 0xd2, 0x40, 0x3e, 0x08, 0xe1, 0x6e, 0x01, 0x68, 0xb2, 0xe5, - 0x55, 0xea, 0x09, 0xf4, 0xb9, 0x9a, 0x55, 0x6c, 0x62, 0x41, 0xf3, 0x1e, 0xdf, 0x7a, 0x86, 0xfc, - 0x26, 0x07, 0x95, 0xd0, 0x49, 0xdb, 0xb2, 0x3d, 0xb4, 0x78, 0xc1, 0x59, 0xb6, 0x6c, 0xda, 0x92, - 0xad, 0xf8, 0xd2, 0x58, 0xc0, 0x91, 0xae, 0x32, 0x60, 0xe4, 0x2a, 0xcc, 0xf4, 0xf4, 0x81, 0xa1, - 0x32, 0xa7, 0x3e, 0x38, 0xc6, 0x11, 0xe1, 0x72, 0x30, 0x8c, 0xc0, 0x3d, 0x28, 0xf4, 0x74, 0xcd, - 0x51, 0x79, 0x3c, 0xd8, 0x72, 0xe3, 0x56, 0x76, 0x96, 0xe1, 0xde, 0xa1, 0x81, 0xa6, 0xb7, 0x14, - 0x6f, 0xa7, 0xc0, 0x12, 0xfd, 0x36, 0x9c, 0xce, 0x40, 0x91, 0x22, 0x4c, 0x37, 0xc5, 0xd6, 0x46, - 0xb7, 0xb5, 0x59, 0x79, 0x87, 0xbf, 0x88, 0x7b, 0xed, 0xf6, 0x76, 0x7b, 0xab, 0x22, 0x90, 0x32, - 0x80, 0xd8, 0xea, 0x74, 0x37, 0xc4, 0x2e, 0x7f, 0xcf, 0x91, 0x12, 0x14, 0x3a, 0x7b, 0xcd, 0x66, - 0xab, 0xb5, 0xd9, 0xda, 0xac, 0xe4, 0x09, 0xc0, 0xd4, 0xdd, 0x8d, 0xed, 0x9d, 0xd6, 0x66, 0x65, - 0x82, 0xaf, 0xdb, 0x6b, 0xdf, 0x6b, 0xef, 0x7e, 0xb5, 0x5d, 0x99, 0xa4, 0x3f, 0x11, 0x00, 0x82, - 0xdd, 0x52, 0xaf, 0xa2, 0x9b, 0x30, 0x81, 0xa9, 0xe4, 0xa4, 0xfd, 0xb9, 0x91, 0x75, 0x24, 0x22, - 0x94, 0xdc, 0x82, 0x29, 0x0b, 0xfd, 0x75, 0xf3, 0x7d, 0xe9, 0x88, 0xb0, 0x88, 0x2e, 0x9c, 0x7e, - 0x0a, 0x73, 0xfe, 0x61, 0x6e, 0x58, 0x96, 0xd2, 0xd7, 0x32, 0x69, 0xa5, 0xdf, 0x90, 0x0d, 0x98, - 0x72, 0xae, 0xdb, 0x63, 0xac, 0x79, 0x04, 0x05, 0x67, 0xcd, 0x8e, 0x8e, 0x6a, 0xcc, 0x8f, 0x5c, - 0xb2, 0x6c, 0x79, 0x60, 0x78, 0xc9, 0xc1, 0x47, 0x3a, 0x7c, 0x80, 0x5c, 0x87, 0x29, 0xa7, 0x96, - 0xdc, 0x70, 0x2c, 0xc4, 0x3c, 0x73, 0x0c, 0x89, 0x2e, 0x88, 0x7e, 0x02, 0xc5, 0xdd, 0x7d, 0x8b, - 0x99, 0xcf, 0x1c, 0xe5, 0x5d, 0x83, 0x69, 0xb7, 0x12, 0xdd, 0x4c, 0xce, 0x58, 0xee, 0xa1, 0xe8, - 0x3d, 0x28, 0x87, 0xd6, 0x73, 0x7e, 0x1f, 0x41, 0xd1, 0xed, 0x36, 0x54, 0xbd, 0x6f, 0x65, 0x5c, - 0x3b, 0xbe, 0x3b, 0x22, 0x0c, 0xbc, 0x47, 0x8b, 0x7e, 0x3f, 0x0f, 0x05, 0x2c, 0x52, 0xac, 0xfe, - 0xab, 0x30, 0xc3, 0xfc, 0x63, 0x08, 0x77, 0x09, 0xe5, 0x60, 0x18, 0xdb, 0x84, 0x37, 0xd1, 0xbe, - 0x7d, 0x58, 0x08, 0xe4, 0x58, 0xf6, 0x0f, 0xd4, 0xcb, 0x8b, 0xeb, 0x31, 0x3b, 0x3e, 0xbb, 0xd5, - 0x94, 0x2c, 0xb0, 0xc4, 0x79, 0x23, 0x65, 0x94, 0x2c, 0xc2, 0x09, 0x73, 0xa8, 0x39, 0x72, 0xe7, - 0xa8, 0xe3, 0xb4, 0x39, 0xd4, 0xd0, 0xc7, 0xd7, 0xd2, 0xc5, 0xda, 0x37, 0x60, 0x3e, 0x6d, 0x7b, - 0xb2, 0x09, 0xc5, 0xb0, 0x0b, 0x4e, 0xe8, 0x69, 0x96, 0x16, 0x05, 0x2b, 0xc5, 0xf0, 0x32, 0xfa, - 0xd7, 0x1c, 0x14, 0x1d, 0x3f, 0xdf, 0xae, 0x1a, 0xdd, 0x4b, 0xaa, 0x51, 0x7a, 0x78, 0x1d, 0x21, - 0x72, 0xd5, 0x3a, 0x5d, 0x83, 0xc8, 0x6d, 0x28, 0xea, 0x41, 0xde, 0x61, 0x58, 0x93, 0xbd, 0x56, - 0x28, 0x33, 0xc5, 0x30, 0x9c, 0xee, 0x03, 0x49, 0x9a, 0x1f, 0x21, 0x5e, 0x11, 0xb1, 0xca, 0x71, - 0xb1, 0xba, 0xb7, 0xbd, 0xb3, 0x33, 0x5a, 0xb8, 0x5e, 0xc0, 0x24, 0xee, 0x91, 0x5a, 0xe7, 0xd7, - 0x22, 0x92, 0x55, 0xcd, 0xca, 0x32, 0x57, 0xad, 0x1a, 0x31, 0xb5, 0xaa, 0x65, 0x87, 0xcd, 0x17, - 0xaa, 0x87, 0xb0, 0x28, 0xb2, 0xbe, 0x62, 0xd9, 0xcc, 0x0c, 0xc4, 0x4c, 0x64, 0xdf, 0x19, 0x32, - 0xcb, 0x26, 0x1f, 0x01, 0x04, 0x35, 0xe4, 0xf6, 0x1f, 0x8b, 0x99, 0x12, 0x28, 0x86, 0xc0, 0x74, - 0x11, 0x4e, 0xa7, 0xd9, 0x35, 0xd4, 0x43, 0x7a, 0x07, 0x4e, 0x6f, 0x32, 0x95, 0xd9, 0x2c, 0xb9, - 0xe1, 0xb8, 0xb5, 0x4c, 0x4f, 0xc3, 0x42, 0xd2, 0x06, 0x37, 0xfe, 0x29, 0xcc, 0x6f, 0x31, 0xfb, - 0x0d, 0x2c, 0xef, 0x02, 0x89, 0x19, 0x30, 0xd4, 0xc3, 0x37, 0x89, 0xc4, 0x10, 0x66, 0x43, 0xd7, - 0xc4, 0x70, 0x30, 0x90, 0xcd, 0xc3, 0xf1, 0x45, 0x2b, 0xb8, 0x81, 0x72, 0xc7, 0xbb, 0x81, 0x6a, - 0x50, 0x8d, 0xf8, 0xb1, 0xa3, 0x58, 0x5e, 0x30, 0xe8, 0x00, 0x4e, 0xa5, 0xcc, 0x71, 0x3f, 0x3b, - 0x30, 0x1f, 0xe2, 0x65, 0x21, 0x5b, 0x85, 0x79, 0x1a, 0x51, 0xcf, 0xde, 0xdc, 0xf1, 0x4b, 0x9c, - 0x63, 0xb1, 0x21, 0x85, 0x59, 0xf4, 0x87, 0x02, 0x9c, 0xdb, 0x33, 0x1e, 0xcb, 0xe1, 0xd3, 0x72, - 0xd9, 0x1e, 0xf3, 0x74, 0xc8, 0x27, 0x00, 0x1a, 0xfb, 0x42, 0x3a, 0x5e, 0x48, 0x0a, 0x1a, 0xfb, - 0xc2, 0x79, 0xa4, 0xe7, 0xe0, 0x4c, 0x16, 0x13, 0x9e, 0x3d, 0xbf, 0x17, 0xe0, 0xa2, 0x33, 0xef, - 0x77, 0xb2, 0xad, 0x03, 0xdb, 0x94, 0xdd, 0xdf, 0x86, 0xc7, 0xe7, 0xfb, 0x08, 0xaa, 0x8c, 0x1b, - 0x90, 0x12, 0x3f, 0x50, 0xad, 0x71, 0x7f, 0xa1, 0x9e, 0x42, 0x03, 0xf1, 0x61, 0x8b, 0x5e, 0x84, - 0x0b, 0xa3, 0xa9, 0x72, 0x87, 0xee, 0x41, 0x7d, 0x8b, 0xd9, 0x6f, 0xc7, 0x19, 0xfa, 0x1c, 0xce, - 0x8f, 0x30, 0xc6, 0xd3, 0x67, 0x94, 0xbb, 0xc2, 0x9b, 0xb9, 0x7b, 0x07, 0xe6, 0x3d, 0x41, 0x41, - 0x1d, 0xf3, 0xd8, 0xaf, 0xc0, 0x24, 0xb6, 0xf1, 0x6e, 0x51, 0xce, 0xa7, 0x69, 0x9e, 0xe8, 0x40, - 0xe8, 0x3c, 0x90, 0x98, 0x0d, 0x1e, 0xa3, 0xf7, 0x80, 0x38, 0x5a, 0x12, 0xb1, 0xcb, 0xfb, 0x27, - 0xfc, 0x79, 0x10, 0x0a, 0x48, 0x01, 0x47, 0x30, 0x16, 0x04, 0x2a, 0x91, 0x45, 0xdc, 0xd0, 0x43, - 0x98, 0xdb, 0x62, 0x36, 0x0e, 0x84, 0xaa, 0x6d, 0xfc, 0x64, 0x39, 0x05, 0x53, 0x4f, 0x14, 0xd5, - 0x66, 0xa6, 0x7b, 0x33, 0xba, 0x6f, 0x74, 0x03, 0x66, 0xa3, 0x76, 0x79, 0xa8, 0xaf, 0xc1, 0x14, - 0xb2, 0xf1, 0x02, 0x9b, 0xee, 0xb8, 0x8b, 0xa1, 0x37, 0x60, 0xc6, 0x33, 0x31, 0xa6, 0x83, 0x1f, - 0x43, 0x29, 0x58, 0xc1, 0x37, 0x3c, 0x4e, 0xa0, 0x6d, 0xa8, 0x3a, 0xb9, 0x19, 0xbe, 0x72, 0xc6, - 0xda, 0x97, 0x2b, 0x6d, 0xa2, 0xc2, 0x47, 0x5d, 0x64, 0xa1, 0xe2, 0xae, 0xc2, 0xa9, 0x94, 0x5d, - 0xf9, 0xc9, 0xfc, 0x40, 0x80, 0x33, 0x22, 0x33, 0x74, 0xd3, 0x8e, 0x76, 0xa1, 0x63, 0x72, 0xba, - 0x0b, 0x33, 0xa1, 0xb6, 0x80, 0x37, 0xac, 0x19, 0x3f, 0x22, 0x62, 0xd6, 0xcb, 0x7a, 0xe4, 0x9d, - 0x9e, 0xe1, 0x97, 0x6d, 0x1a, 0x0b, 0xce, 0xf1, 0x17, 0x02, 0x2a, 0xf6, 0x6b, 0x11, 0x5c, 0xf2, - 0x9b, 0x69, 0x9c, 0x77, 0xd2, 0xc7, 0x6d, 0x99, 0x11, 0x10, 0x6d, 0xce, 0xf2, 0xf1, 0xe6, 0x6c, - 0x11, 0x4e, 0x30, 0xed, 0xb1, 0x33, 0xe9, 0xb6, 0x9e, 0x4c, 0x7b, 0xcc, 0xa7, 0xe8, 0x37, 0xf1, - 0xae, 0x48, 0x21, 0x9c, 0x16, 0x15, 0xe1, 0x75, 0xa2, 0xf2, 0x4a, 0x80, 0x85, 0x2d, 0x66, 0x77, - 0x86, 0xfd, 0x3e, 0xb3, 0x9c, 0x6f, 0x55, 0xc7, 0xad, 0x9c, 0xe4, 0x87, 0xc2, 0x5c, 0xda, 0x87, - 0xc2, 0xcb, 0x50, 0x36, 0x1d, 0xd3, 0x92, 0x36, 0x1c, 0xec, 0x33, 0x13, 0x23, 0x31, 0x29, 0x96, - 0xdc, 0xd1, 0x36, 0x0e, 0xd2, 0x26, 0xd6, 0x71, 0x84, 0xcf, 0xf1, 0x2b, 0xee, 0x67, 0x02, 0xd4, - 0x1f, 0xca, 0xaa, 0x12, 0x51, 0xe8, 0xb8, 0xf4, 0xde, 0x8d, 0x38, 0x88, 0xad, 0x9e, 0x30, 0xce, - 0xaf, 0xd3, 0x90, 0xff, 0x19, 0x1f, 0x4a, 0xd3, 0xfc, 0xa7, 0x75, 0x38, 0x3f, 0x82, 0x92, 0xa1, - 0x1e, 0xae, 0xec, 0x85, 0xbe, 0xa4, 0x63, 0xb3, 0x5b, 0x81, 0x93, 0x6e, 0xaf, 0x2a, 0x75, 0x1f, - 0x3d, 0x68, 0x55, 0xde, 0xe1, 0x9d, 0xec, 0xe6, 0xee, 0xde, 0x9d, 0x9d, 0x56, 0x45, 0x20, 0xd3, - 0x90, 0xdf, 0x6e, 0x77, 0x2b, 0x39, 0x72, 0x12, 0x4e, 0x6c, 0x6e, 0x77, 0x9a, 0x62, 0xab, 0xdb, - 0xaa, 0xe4, 0xc9, 0x0c, 0x14, 0x9b, 0x1b, 0xdd, 0xd6, 0xd6, 0xae, 0xb8, 0xdd, 0xdc, 0xd8, 0xa9, - 0x4c, 0xac, 0x7c, 0x18, 0xfa, 0xe0, 0xed, 0xf5, 0xd0, 0x5e, 0x0b, 0xfc, 0x0e, 0x5f, 0x7c, 0x7f, - 0xbb, 0xbd, 0x7d, 0x7f, 0xfb, 0x73, 0x6e, 0x93, 0xbf, 0x6d, 0x7c, 0xcd, 0x79, 0xcb, 0x35, 0x7e, - 0x37, 0x07, 0xd3, 0xf7, 0x65, 0x4d, 0xee, 0x33, 0x93, 0xfc, 0x5a, 0x08, 0xf4, 0x3b, 0xf4, 0x5b, - 0x7f, 0x39, 0x16, 0xab, 0xcc, 0x7e, 0xb6, 0x76, 0x65, 0x0c, 0x24, 0xde, 0x08, 0x2f, 0xff, 0xfe, - 0xef, 0x9f, 0xe7, 0xae, 0xd3, 0x25, 0xfc, 0x6b, 0x86, 0xbb, 0xfd, 0x5a, 0x12, 0xbd, 0x1e, 0xea, - 0xf3, 0xc8, 0x2f, 0x05, 0xef, 0x4a, 0x08, 0x71, 0x8b, 0xef, 0x98, 0xd1, 0xf8, 0xd6, 0x2e, 0x1d, - 0x89, 0xe3, 0xbc, 0x6e, 0x21, 0xaf, 0x9b, 0x64, 0x2d, 0xc2, 0x2b, 0x8e, 0x5d, 0x7b, 0x1e, 0x2b, - 0x9a, 0x17, 0xe4, 0xa7, 0x02, 0xaa, 0x79, 0x88, 0x58, 0xfc, 0x93, 0x71, 0x5a, 0xd3, 0x5c, 0xbb, - 0x30, 0x1a, 0xc4, 0x29, 0xbd, 0x8f, 0x94, 0x56, 0xc9, 0xb5, 0x08, 0xa5, 0x08, 0x30, 0x85, 0xcf, - 0x8f, 0x05, 0xbc, 0xd2, 0xa2, 0x1d, 0x28, 0xb9, 0x3a, 0x6a, 0xbb, 0xd0, 0x8d, 0x5a, 0xbb, 0x7c, - 0x34, 0x90, 0x73, 0xbb, 0x82, 0xdc, 0xea, 0xe4, 0x7c, 0x36, 0x37, 0xdc, 0xf7, 0x4f, 0x82, 0x77, - 0x71, 0x24, 0x3e, 0xb1, 0xc5, 0xbf, 0xb6, 0x8e, 0x6c, 0x63, 0x6b, 0x2b, 0x63, 0xa2, 0x39, 0xb9, - 0xcf, 0x90, 0xdc, 0x7a, 0xed, 0xcb, 0x11, 0x72, 0xe9, 0x2b, 0x92, 0x11, 0x5c, 0x17, 0x56, 0xc8, - 0xdf, 0x04, 0x38, 0x3b, 0xaa, 0x03, 0x24, 0x8d, 0x54, 0x3a, 0x23, 0x9b, 0xc1, 0xda, 0x8d, 0x63, - 0xad, 0xe1, 0x8e, 0xdc, 0x45, 0x47, 0x3e, 0xab, 0x7d, 0x9c, 0xe2, 0x48, 0xfa, 0xba, 0x74, 0x77, - 0xfe, 0x2c, 0xc0, 0x62, 0x66, 0x7b, 0x49, 0xd6, 0x92, 0x47, 0x3e, 0xda, 0x91, 0xeb, 0xe3, 0x2f, - 0x08, 0x1d, 0x07, 0xf9, 0x30, 0x9e, 0x2b, 0xe3, 0xba, 0x40, 0x5e, 0x0a, 0x50, 0x8a, 0x74, 0x97, - 0x89, 0x1a, 0x4b, 0xeb, 0x5f, 0x13, 0x35, 0x96, 0xd2, 0xa0, 0x7e, 0x09, 0xb9, 0x5d, 0xa4, 0xb5, - 0x54, 0x39, 0x42, 0xe0, 0xba, 0xd3, 0x78, 0x91, 0xef, 0x09, 0x50, 0x0c, 0xf5, 0xa5, 0xe4, 0x42, - 0xaa, 0xae, 0x44, 0x08, 0x2c, 0x8d, 0x82, 0xf0, 0xed, 0xaf, 0xe3, 0xf6, 0x57, 0xc9, 0xe5, 0x14, - 0xd5, 0x41, 0xd8, 0xda, 0xf3, 0xa0, 0x37, 0x79, 0x41, 0x7e, 0x24, 0xc0, 0xc9, 0x70, 0xbb, 0x4a, - 0x68, 0xf2, 0x24, 0xe2, 0x3d, 0x72, 0xad, 0x3e, 0x12, 0x13, 0xd2, 0x64, 0xf2, 0x6e, 0xfc, 0x80, - 0x7c, 0x5c, 0xca, 0x99, 0xd8, 0x70, 0xc2, 0x43, 0x90, 0xf3, 0x19, 0x5b, 0x78, 0x14, 0xce, 0x66, - 0xce, 0xf3, 0xed, 0x57, 0x70, 0xfb, 0x4b, 0x84, 0xa6, 0x6e, 0x1f, 0x8d, 0xc0, 0x2b, 0x01, 0x66, - 0x13, 0x8d, 0x68, 0x42, 0xdd, 0xb2, 0x1a, 0xe4, 0x84, 0xba, 0x65, 0xf4, 0xb4, 0x6e, 0x56, 0xd4, - 0xce, 0xa7, 0xd4, 0x5d, 0x08, 0xcc, 0x4b, 0xeb, 0x57, 0x02, 0xff, 0xf1, 0x94, 0x6c, 0x3c, 0xc9, - 0x4a, 0x22, 0xf9, 0x32, 0x7b, 0xe4, 0xda, 0xf2, 0x58, 0x58, 0xce, 0xec, 0x1a, 0x32, 0xbb, 0x42, - 0x2f, 0xc4, 0xf2, 0x35, 0x89, 0xe7, 0xe4, 0x5e, 0x39, 0x77, 0x41, 0x8c, 0x59, 0xca, 0x5d, 0x90, - 0x4e, 0xeb, 0xf2, 0xd1, 0xc0, 0x70, 0x0d, 0x25, 0xee, 0x82, 0x24, 0xa1, 0x97, 0x02, 0x94, 0xa3, - 0xfd, 0x1f, 0xb9, 0x94, 0xdc, 0x24, 0xd9, 0xae, 0xd6, 0xe8, 0x11, 0xa8, 0xd0, 0x9d, 0x44, 0xcf, - 0xc4, 0x79, 0x84, 0x90, 0x9c, 0xc4, 0x1f, 0x05, 0x58, 0xcc, 0xec, 0xd5, 0x12, 0x6a, 0x78, 0x54, - 0xa3, 0x99, 0x50, 0xc3, 0xd1, 0x6d, 0x20, 0xbd, 0x89, 0x2c, 0xdf, 0xa5, 0x57, 0x22, 0x2c, 0x33, - 0x17, 0xad, 0x0b, 0x2b, 0x8d, 0xff, 0x08, 0x00, 0x81, 0x0f, 0xe4, 0xf3, 0xff, 0x5d, 0x0c, 0xc9, - 0xf3, 0xff, 0x63, 0x68, 0x1a, 0x33, 0x50, 0x8a, 0xfc, 0xd1, 0x7f, 0x7f, 0x0a, 0xff, 0xc3, 0xe5, - 0xbd, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x10, 0xc7, 0xd4, 0x34, 0x1b, 0x23, 0x00, 0x00, + // 2505 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0xcb, 0x73, 0x1b, 0x59, + 0xf5, 0x9e, 0x96, 0xfc, 0xd2, 0x51, 0x24, 0xcb, 0xd7, 0x72, 0x22, 0x2b, 0x0f, 0x2b, 0x37, 0x0f, + 0xfb, 0xe7, 0x49, 0xec, 0x44, 0xf3, 0xc8, 0x8c, 0x93, 0xdf, 0xcc, 0x38, 0xb2, 0xe2, 0x72, 0xc5, + 0x91, 0x53, 0x2d, 0x39, 0x90, 0x81, 0x2a, 0xd1, 0x56, 0x6e, 0x94, 0x66, 0x5a, 0xdd, 0x4d, 0x77, + 0x2b, 0x13, 0x93, 0x4a, 0x15, 0x15, 0x58, 0x40, 0x01, 0xa9, 0xa2, 0x60, 0x03, 0x54, 0xc1, 0x9a, + 0x05, 0x6c, 0x60, 0xcb, 0x82, 0x2a, 0x96, 0xec, 0x78, 0xac, 0x58, 0xc2, 0xff, 0x41, 0xdd, 0xd3, + 0xef, 0x97, 0x2c, 0x27, 0xa1, 0xd8, 0xa9, 0xef, 0xfd, 0xee, 0xb9, 0xdf, 0x39, 0xf7, 0x9c, 0xef, + 0x9e, 0x6e, 0x1b, 0x72, 0x92, 0x2e, 0xaf, 0xe9, 0x86, 0x66, 0x69, 0xa4, 0xc0, 0x7f, 0x3e, 0xbd, + 0xbe, 0x26, 0x29, 0xfa, 0x13, 0xa9, 0x5e, 0x3d, 0xd3, 0xd7, 0xb4, 0xbe, 0xc2, 0xd6, 0x25, 0x5d, + 0x5e, 0x97, 0x54, 0x55, 0xb3, 0x24, 0x4b, 0xd6, 0x54, 0xd3, 0x06, 0xd3, 0xaf, 0x41, 0xe1, 0x0e, + 0x93, 0x4c, 0xf9, 0x40, 0x61, 0x6d, 0x5d, 0xea, 0x31, 0x52, 0x82, 0xec, 0x40, 0x7a, 0x56, 0x11, + 0x6a, 0xc2, 0x4a, 0x4e, 0xe4, 0x3f, 0x71, 0x44, 0x56, 0x2b, 0x19, 0x67, 0x44, 0x56, 0x09, 0x81, + 0x09, 0x45, 0x36, 0xad, 0x4a, 0xb6, 0x96, 0x5d, 0xc9, 0x89, 0xf8, 0x9b, 0x8f, 0x99, 0x16, 0xd3, + 0x2b, 0x13, 0x08, 0xc3, 0xdf, 0xf4, 0xb7, 0x02, 0x14, 0xee, 0x4b, 0x86, 0x34, 0x60, 0x16, 0x33, + 0xda, 0x3a, 0xeb, 0x71, 0x94, 0x2a, 0x0d, 0x98, 0x63, 0x1e, 0x7f, 0x93, 0x06, 0x14, 0x75, 0x17, + 0xd4, 0xb5, 0x0e, 0x75, 0x86, 0x5b, 0x15, 0xeb, 0x67, 0xd6, 0x42, 0x8e, 0xac, 0x79, 0x96, 0x3a, + 0x87, 0x3a, 0x13, 0x0b, 0x7a, 0xf0, 0x91, 0x1b, 0x79, 0xec, 0xf8, 0xd1, 0x35, 0xb9, 0x23, 0x95, + 0x6c, 0x4d, 0x58, 0xc9, 0xc7, 0x8c, 0x84, 0x9c, 0x15, 0x0b, 0x8f, 0x83, 0x8f, 0xf4, 0x4f, 0x02, + 0x14, 0xf6, 0x0e, 0xbe, 0xc9, 0x7a, 0x96, 0xfc, 0x94, 0x21, 0xdf, 0x6b, 0x30, 0x81, 0x8c, 0x84, + 0x44, 0x46, 0x1e, 0x16, 0x19, 0x21, 0x92, 0x7b, 0xd8, 0xd7, 0x24, 0x05, 0x7d, 0xc8, 0x88, 0xf8, + 0x9b, 0xd4, 0x61, 0x41, 0x73, 0xa1, 0xdd, 0x01, 0xb3, 0x0c, 0xb9, 0xd7, 0xc5, 0x30, 0x64, 0x31, + 0x0c, 0xf3, 0xde, 0xe4, 0x3d, 0x9c, 0x6b, 0xf1, 0xa8, 0x7c, 0x08, 0xa7, 0xa4, 0x47, 0x8f, 0x64, + 0x7e, 0x56, 0x92, 0x12, 0x5c, 0x64, 0x56, 0x26, 0x30, 0xec, 0x0b, 0xfe, 0xb4, 0xbf, 0xcc, 0xa4, + 0xb7, 0xa0, 0xb4, 0xa9, 0xf4, 0x35, 0x43, 0xb6, 0x9e, 0x0c, 0xda, 0xcc, 0xb2, 0x64, 0xb5, 0x9f, + 0x18, 0xf5, 0x32, 0x4c, 0x3e, 0x95, 0x94, 0x21, 0x73, 0xce, 0xd5, 0x7e, 0xa0, 0xf3, 0x30, 0xd7, + 0x94, 0x0c, 0xe5, 0xb0, 0x6d, 0x69, 0xba, 0x2e, 0xab, 0x7d, 0x1e, 0x04, 0xfa, 0x0f, 0x01, 0x0a, + 0xbe, 0x4d, 0x1e, 0x96, 0x4b, 0x50, 0x94, 0xdc, 0x81, 0x6e, 0xc0, 0x74, 0xc1, 0x1b, 0x45, 0x1f, + 0x76, 0x61, 0xce, 0x87, 0x99, 0x36, 0x99, 0x4a, 0xa6, 0x96, 0x5d, 0xc9, 0xd7, 0x97, 0x22, 0xa1, + 0x8c, 0x72, 0x16, 0x4b, 0x52, 0xd4, 0x8b, 0xfb, 0x30, 0xcf, 0x38, 0xb7, 0xae, 0xe9, 0x90, 0xeb, + 0x9a, 0x3a, 0xeb, 0x39, 0xe7, 0x5c, 0x8b, 0xd8, 0x8b, 0x79, 0x21, 0xce, 0xb1, 0x98, 0x63, 0x7f, + 0x17, 0x20, 0xd7, 0x92, 0xcc, 0x86, 0xa6, 0x3e, 0x96, 0xfb, 0xe4, 0xff, 0xe1, 0x44, 0xdf, 0x90, + 0xf4, 0x27, 0xdd, 0x1e, 0x3e, 0xa3, 0x4b, 0xf9, 0x7a, 0x35, 0x62, 0x78, 0x9b, 0x43, 0xec, 0x15, + 0x62, 0xbe, 0xef, 0x3f, 0x90, 0x06, 0x80, 0xa6, 0x33, 0xc3, 0xae, 0x2e, 0x8c, 0x6a, 0xbe, 0x7e, + 0x21, 0xb2, 0xd8, 0xdb, 0x6c, 0x6d, 0xcf, 0x83, 0x8a, 0x81, 0x65, 0xd5, 0x2d, 0x00, 0x7f, 0x86, + 0x7c, 0x08, 0x39, 0x6f, 0xae, 0x22, 0x60, 0xdc, 0x2a, 0xd1, 0x14, 0x74, 0xe7, 0x45, 0x1f, 0x4a, + 0x75, 0xc8, 0x07, 0x68, 0x92, 0xb3, 0x00, 0xea, 0x70, 0xd0, 0x55, 0xa4, 0x43, 0x66, 0x98, 0xe8, + 0xd6, 0xa4, 0x98, 0x53, 0x87, 0x83, 0x5d, 0x1c, 0x20, 0x4b, 0x90, 0x97, 0x55, 0x7d, 0x68, 0x75, + 0x4d, 0xf9, 0xdb, 0xcc, 0xc4, 0xf3, 0x99, 0x14, 0x01, 0x87, 0xda, 0x7c, 0x84, 0x9c, 0x87, 0x13, + 0xda, 0xd0, 0xf2, 0x11, 0x59, 0x44, 0xe4, 0xed, 0x31, 0x84, 0xd0, 0xbf, 0x09, 0x90, 0xf3, 0xa8, + 0xf0, 0xf4, 0xf0, 0xc8, 0x74, 0xbd, 0xfa, 0xc9, 0x89, 0x05, 0x6f, 0x14, 0x6b, 0xf6, 0x3e, 0xcc, + 0xfa, 0x85, 0xcf, 0xcf, 0xd2, 0x0d, 0xdb, 0x72, 0x9a, 0x93, 0x6b, 0x21, 0x35, 0x31, 0x45, 0x5f, + 0x38, 0xf0, 0xb9, 0xda, 0x82, 0x62, 0x18, 0x41, 0x6e, 0x01, 0x78, 0x18, 0xd3, 0x89, 0x61, 0xaa, + 0xb0, 0x60, 0x9e, 0x04, 0xf0, 0xf4, 0xd7, 0x13, 0x50, 0x6c, 0x3e, 0xd3, 0x99, 0x21, 0x0f, 0x98, + 0x6a, 0x61, 0xea, 0xef, 0xc7, 0x49, 0xdb, 0x89, 0x72, 0x25, 0x9a, 0x81, 0xa1, 0x75, 0x47, 0x30, + 0x27, 0x1b, 0x90, 0xf3, 0x54, 0xc0, 0x89, 0x42, 0xaa, 0xda, 0x20, 0x4d, 0x1f, 0xce, 0xd7, 0x7a, + 0xc5, 0x92, 0x22, 0x7b, 0xa1, 0xf2, 0x15, 0x7d, 0x38, 0x3f, 0x2a, 0xcb, 0x90, 0x25, 0xa5, 0x6b, + 0xb1, 0x81, 0xae, 0x48, 0x16, 0x73, 0x04, 0xbc, 0x80, 0xa3, 0x1d, 0x67, 0x90, 0xbc, 0x0f, 0x27, + 0x6d, 0x09, 0x32, 0xbb, 0x3d, 0x4d, 0x51, 0x58, 0xcf, 0xd2, 0x6c, 0xef, 0x2b, 0x93, 0x08, 0x2f, + 0x3b, 0xb3, 0x0d, 0x77, 0xd2, 0x51, 0xcf, 0x32, 0x77, 0x53, 0x51, 0x98, 0xd2, 0xb5, 0x77, 0xe9, + 0x69, 0x43, 0xd5, 0xaa, 0x4c, 0x61, 0x0a, 0x12, 0x77, 0xae, 0xc3, 0xa7, 0x1a, 0x7c, 0x86, 0x5c, + 0x86, 0xd9, 0x81, 0xf4, 0x2c, 0x04, 0x9e, 0x46, 0x70, 0x61, 0x20, 0x3d, 0x0b, 0xe0, 0x6e, 0x00, + 0xa8, 0x92, 0xe9, 0x56, 0xea, 0x0c, 0xfa, 0x5c, 0x49, 0x2b, 0x36, 0x31, 0xa7, 0xba, 0x3f, 0xdf, + 0x7a, 0x86, 0xfc, 0x2a, 0x03, 0xa5, 0xc0, 0x49, 0x5b, 0x92, 0x35, 0x34, 0x79, 0xc1, 0x99, 0x96, + 0x64, 0x58, 0x5d, 0x4b, 0xf6, 0xa4, 0x31, 0x87, 0x23, 0x1d, 0x79, 0xc0, 0xc8, 0x32, 0xcc, 0xf6, + 0xb4, 0x81, 0xae, 0x30, 0xbb, 0x3e, 0x38, 0xc6, 0x16, 0xe1, 0xa2, 0x3f, 0x8c, 0xc0, 0x7d, 0xc8, + 0xf5, 0x34, 0xd5, 0x56, 0x79, 0x3c, 0xd8, 0x62, 0xfd, 0x46, 0x7a, 0x96, 0xe1, 0xde, 0x81, 0x81, + 0x86, 0xbb, 0x14, 0x6f, 0x27, 0xdf, 0x12, 0xfd, 0x02, 0x4e, 0xa5, 0xa0, 0x48, 0x1e, 0xa6, 0x1b, + 0x62, 0x73, 0xb3, 0xd3, 0xdc, 0x2a, 0xbd, 0xc3, 0x1f, 0xc4, 0xfd, 0x56, 0x6b, 0xa7, 0xb5, 0x5d, + 0x12, 0x48, 0x11, 0x40, 0x6c, 0xb6, 0x3b, 0x9b, 0x62, 0x87, 0x3f, 0x67, 0x48, 0x01, 0x72, 0xed, + 0xfd, 0x46, 0xa3, 0xd9, 0xdc, 0x6a, 0x6e, 0x95, 0xb2, 0x04, 0x60, 0xea, 0xce, 0xe6, 0xce, 0x6e, + 0x73, 0xab, 0x34, 0xc1, 0xd7, 0xed, 0xb7, 0xee, 0xb6, 0xf6, 0xbe, 0xd2, 0x2a, 0x4d, 0xd2, 0x1f, + 0x09, 0x00, 0xfe, 0x6e, 0x89, 0x57, 0xd1, 0x75, 0x98, 0xc0, 0x54, 0xb2, 0xd3, 0xfe, 0xec, 0xc8, + 0x3a, 0x12, 0x11, 0x4a, 0x6e, 0xc0, 0x94, 0x89, 0xfe, 0x3a, 0xf9, 0xbe, 0x74, 0x44, 0x58, 0x44, + 0x07, 0x4e, 0x3f, 0x85, 0x79, 0xef, 0x30, 0x37, 0x4d, 0x53, 0xee, 0xab, 0xa9, 0xb4, 0x92, 0x6f, + 0xc8, 0x3a, 0x4c, 0xd9, 0xd7, 0xed, 0x31, 0xd6, 0x3c, 0x84, 0x9c, 0xbd, 0x66, 0x57, 0x43, 0x35, + 0xe6, 0x47, 0xde, 0x35, 0x2d, 0x69, 0xa0, 0xbb, 0xc9, 0xc1, 0x47, 0xda, 0x7c, 0x80, 0x5c, 0x85, + 0x29, 0xbb, 0x96, 0x9c, 0x70, 0x2c, 0x44, 0x3c, 0xb3, 0x0d, 0x89, 0x0e, 0x88, 0x7e, 0x02, 0xf9, + 0xbd, 0x03, 0x93, 0x19, 0x4f, 0x6d, 0xe5, 0x5d, 0x87, 0x69, 0xa7, 0x12, 0x9d, 0x4c, 0x4e, 0x59, + 0xee, 0xa2, 0xe8, 0x5d, 0x28, 0x06, 0xd6, 0x73, 0x7e, 0x1f, 0x43, 0xde, 0xe9, 0x36, 0x14, 0xad, + 0x6f, 0xa6, 0x5c, 0x3b, 0x9e, 0x3b, 0x22, 0x0c, 0xdc, 0x9f, 0x26, 0xfd, 0x6e, 0x16, 0x72, 0x58, + 0xa4, 0x58, 0xfd, 0xcb, 0x30, 0xcb, 0xbc, 0x63, 0x08, 0x76, 0x09, 0x45, 0x7f, 0x18, 0xdb, 0x84, + 0x37, 0xd1, 0xbe, 0x03, 0x58, 0xf0, 0xe5, 0x58, 0xf2, 0x0e, 0xd4, 0xcd, 0x8b, 0xab, 0x11, 0x3b, + 0x1e, 0xbb, 0xb5, 0x84, 0x2c, 0x30, 0xc5, 0xb2, 0x9e, 0x30, 0x4a, 0x16, 0x61, 0xc6, 0x18, 0xaa, + 0xb6, 0xdc, 0xd9, 0xea, 0x38, 0x6d, 0x0c, 0x55, 0xf4, 0xf1, 0xb5, 0x74, 0xb1, 0xfa, 0x75, 0x28, + 0x27, 0x6d, 0x4f, 0xb6, 0x20, 0x1f, 0x74, 0xc1, 0x0e, 0x3d, 0x4d, 0xd3, 0x22, 0x7f, 0xa5, 0x18, + 0x5c, 0x46, 0xff, 0x9c, 0x81, 0xbc, 0xed, 0xe7, 0xdb, 0x55, 0xa3, 0xbb, 0x71, 0x35, 0x4a, 0x0e, + 0xaf, 0x2d, 0x44, 0x8e, 0x5a, 0x27, 0x6b, 0x10, 0xb9, 0x05, 0x79, 0xcd, 0xcf, 0x3b, 0x0c, 0x6b, + 0xbc, 0xd7, 0x0a, 0x64, 0xa6, 0x18, 0x84, 0xd3, 0x03, 0x20, 0x71, 0xf3, 0x23, 0xc4, 0x2b, 0x24, + 0x56, 0x19, 0x2e, 0x56, 0x77, 0x77, 0x76, 0x77, 0x47, 0x0b, 0xd7, 0x0b, 0x98, 0xc4, 0x3d, 0x12, + 0xeb, 0xfc, 0x4a, 0x48, 0xb2, 0x2a, 0x69, 0x59, 0xe6, 0xa8, 0x55, 0x3d, 0xa2, 0x56, 0xd5, 0xf4, + 0xb0, 0x79, 0x42, 0xf5, 0x00, 0x16, 0x45, 0xd6, 0x97, 0x4d, 0x8b, 0x19, 0xbe, 0x98, 0x89, 0xec, + 0x5b, 0x43, 0x66, 0x5a, 0xe4, 0x63, 0x00, 0xbf, 0x86, 0x9c, 0xfe, 0x63, 0x31, 0x55, 0x02, 0xc5, + 0x00, 0x98, 0x2e, 0xc2, 0xa9, 0x24, 0xbb, 0xba, 0x72, 0x48, 0xb7, 0x60, 0xe9, 0xbe, 0xc1, 0x1a, + 0x4f, 0x58, 0xef, 0x8b, 0x14, 0x08, 0x6f, 0x05, 0x7b, 0x92, 0xda, 0x35, 0x9c, 0x69, 0xdc, 0x7a, + 0x46, 0xcc, 0xf7, 0x24, 0xd5, 0x5d, 0x41, 0x6f, 0xc3, 0xa9, 0x2d, 0xa6, 0x30, 0x8b, 0xc5, 0x69, + 0x8f, 0xab, 0x08, 0xf4, 0x14, 0x2c, 0xc4, 0x6d, 0x70, 0x8a, 0x9f, 0x42, 0x79, 0x9b, 0x59, 0x6f, + 0x60, 0x79, 0x0f, 0x48, 0xc4, 0x00, 0x77, 0xeb, 0x0d, 0xe2, 0x39, 0x84, 0xb9, 0xc0, 0x65, 0x33, + 0x1c, 0x0c, 0x24, 0xe3, 0x70, 0x7c, 0xe9, 0xf3, 0xef, 0xb1, 0xcc, 0xf1, 0xee, 0xb1, 0x2a, 0x54, + 0x42, 0x7e, 0xec, 0xca, 0xa6, 0x1b, 0x0c, 0x3a, 0x80, 0x93, 0x09, 0x73, 0xdc, 0xcf, 0x36, 0x94, + 0x03, 0xbc, 0x4c, 0x64, 0x2b, 0x33, 0x57, 0x69, 0x6a, 0xe9, 0x9b, 0xdb, 0x7e, 0x89, 0xf3, 0x2c, + 0x32, 0x24, 0x33, 0x93, 0x7e, 0x5f, 0x80, 0xb3, 0xfb, 0xfa, 0x23, 0x29, 0x78, 0x5a, 0x0e, 0xdb, + 0x63, 0x9e, 0x0e, 0xf9, 0x04, 0x40, 0x65, 0x5f, 0x76, 0x8f, 0x17, 0x92, 0x9c, 0xca, 0xbe, 0xb4, + 0x7f, 0xd2, 0xb3, 0x70, 0x3a, 0x8d, 0x09, 0xcf, 0x9e, 0xdf, 0x08, 0x70, 0xc1, 0x9e, 0xf7, 0xfa, + 0xe1, 0xe6, 0x33, 0xcb, 0x90, 0x9c, 0x37, 0xcc, 0xe3, 0xf3, 0x7d, 0x08, 0x15, 0xc6, 0x0d, 0x74, + 0x63, 0xaf, 0xb9, 0xe6, 0xb8, 0xef, 0xb9, 0x27, 0xd1, 0x40, 0x74, 0xd8, 0xa4, 0x17, 0xe0, 0xfc, + 0x68, 0xaa, 0xdc, 0xa1, 0xbb, 0x50, 0xdb, 0x66, 0xd6, 0xdb, 0x71, 0x86, 0x3e, 0x87, 0x73, 0x23, + 0x8c, 0xf1, 0xf4, 0x19, 0xe5, 0xae, 0xf0, 0x66, 0xee, 0xde, 0x86, 0xb2, 0xab, 0x20, 0xa8, 0x86, + 0x2e, 0xfb, 0x55, 0x98, 0xc4, 0x97, 0x01, 0xa7, 0x28, 0xcb, 0x49, 0xca, 0x29, 0xda, 0x10, 0x5a, + 0x06, 0x12, 0xb1, 0xc1, 0x63, 0xf4, 0x1e, 0x10, 0x5b, 0x4b, 0x42, 0x76, 0x79, 0x17, 0x86, 0x2f, + 0x19, 0x81, 0x80, 0xe4, 0x70, 0x04, 0x63, 0x41, 0xa0, 0x14, 0x5a, 0xc4, 0x0d, 0x3d, 0x80, 0xf9, + 0x6d, 0x66, 0xe1, 0x40, 0xa0, 0xda, 0xc6, 0x4f, 0x96, 0x93, 0x30, 0xf5, 0x58, 0x56, 0xb8, 0x6a, + 0xda, 0xf7, 0xab, 0xf3, 0x44, 0x37, 0x61, 0x2e, 0x6c, 0x97, 0x87, 0xfa, 0x0a, 0x4c, 0x21, 0x1b, + 0x37, 0xb0, 0xc9, 0x8e, 0x3b, 0x18, 0x7a, 0x0d, 0x66, 0x5d, 0x13, 0x63, 0x3a, 0x78, 0x13, 0x0a, + 0xfe, 0x0a, 0xbe, 0xe1, 0x71, 0x02, 0x6d, 0x41, 0xc5, 0xce, 0xcd, 0xe0, 0xc5, 0x35, 0xd6, 0xbe, + 0x5c, 0x69, 0x63, 0x15, 0x3e, 0xea, 0x3a, 0x0c, 0x14, 0x77, 0x05, 0x4e, 0x26, 0xec, 0xca, 0x4f, + 0xe6, 0x7b, 0x02, 0x9c, 0x16, 0x99, 0xae, 0x19, 0x56, 0xb8, 0x97, 0x1d, 0x93, 0xd3, 0x1d, 0x98, + 0x0d, 0x34, 0x17, 0xbc, 0xed, 0x4d, 0x79, 0x15, 0x89, 0x58, 0x2f, 0x6a, 0xa1, 0x67, 0x7a, 0x9a, + 0x5f, 0xd9, 0x49, 0x2c, 0x38, 0xc7, 0x9f, 0x09, 0xa8, 0xd8, 0xaf, 0x45, 0x70, 0xc9, 0x6b, 0xc9, + 0x71, 0xde, 0x4e, 0x1f, 0xa7, 0xf1, 0x46, 0x40, 0xb8, 0xc5, 0xcb, 0x46, 0x5b, 0xbc, 0x45, 0x98, + 0x61, 0xea, 0x23, 0x7b, 0xd2, 0x69, 0x60, 0x99, 0xfa, 0x88, 0x4f, 0xd1, 0x6f, 0xe0, 0x5d, 0x91, + 0x40, 0x38, 0x29, 0x2a, 0xc2, 0xeb, 0x44, 0xe5, 0x95, 0x00, 0x0b, 0xdb, 0xcc, 0x6a, 0x0f, 0xfb, + 0x7d, 0x66, 0xda, 0x5f, 0xbc, 0x8e, 0x5b, 0x39, 0xf1, 0xcf, 0x8d, 0x99, 0xa4, 0xcf, 0x8d, 0x97, + 0xa0, 0x68, 0xd8, 0xa6, 0xbb, 0xea, 0x70, 0x70, 0xc0, 0x0c, 0x8c, 0xc4, 0xa4, 0x58, 0x70, 0x46, + 0x5b, 0x38, 0x48, 0x1b, 0x58, 0xc7, 0x21, 0x3e, 0xc7, 0xaf, 0xb8, 0x9f, 0x08, 0x50, 0x7b, 0x20, + 0x29, 0x72, 0x48, 0xa1, 0xa3, 0xd2, 0x7b, 0x27, 0xe4, 0x20, 0x36, 0x8c, 0xc2, 0x38, 0xef, 0xb8, + 0x01, 0xff, 0x53, 0x3e, 0xb7, 0x26, 0xf9, 0x4f, 0x6b, 0x70, 0x6e, 0x04, 0x25, 0x5d, 0x39, 0x5c, + 0xdd, 0x0f, 0x7c, 0x8f, 0xc7, 0x96, 0xb9, 0x04, 0x27, 0x9c, 0x8e, 0xb7, 0xdb, 0x79, 0x78, 0xbf, + 0x59, 0x7a, 0x87, 0xf7, 0xc3, 0x5b, 0x7b, 0xfb, 0xb7, 0x77, 0x9b, 0x25, 0x81, 0x4c, 0x43, 0x76, + 0xa7, 0xd5, 0x29, 0x65, 0xc8, 0x09, 0x98, 0xd9, 0xda, 0x69, 0x37, 0xc4, 0x66, 0xa7, 0x59, 0xca, + 0x92, 0x59, 0xc8, 0x37, 0x36, 0x3b, 0xcd, 0xed, 0x3d, 0x71, 0xa7, 0xb1, 0xb9, 0x5b, 0x9a, 0x58, + 0xfd, 0x28, 0xf0, 0xd9, 0xdc, 0xed, 0xc4, 0xdd, 0x46, 0xfa, 0x1d, 0xbe, 0xf8, 0xde, 0x4e, 0x6b, + 0xe7, 0xde, 0xce, 0xe7, 0xdc, 0x26, 0x7f, 0xda, 0xfc, 0xaa, 0xfd, 0x94, 0xa9, 0xff, 0xb3, 0x0c, + 0xd3, 0xf7, 0x24, 0x55, 0xea, 0x33, 0x83, 0xfc, 0x52, 0xf0, 0xf5, 0x3b, 0xf0, 0xc5, 0x60, 0x25, + 0x12, 0xab, 0xd4, 0xae, 0xb8, 0x7a, 0x79, 0x0c, 0x24, 0xde, 0x08, 0x2f, 0xff, 0xfa, 0xaf, 0x9f, + 0x66, 0xae, 0xd2, 0x25, 0xfc, 0x9b, 0x88, 0xb3, 0xfd, 0x7a, 0x1c, 0xbd, 0x11, 0xe8, 0xf3, 0xc8, + 0xef, 0x05, 0xa8, 0xa6, 0x77, 0xc7, 0xc7, 0x60, 0xb9, 0x16, 0x7d, 0x9f, 0x1b, 0xdd, 0x72, 0xd3, + 0x9b, 0xc8, 0xf6, 0x03, 0xba, 0x1c, 0x62, 0x9b, 0xbe, 0x2a, 0xc4, 0xfa, 0xe7, 0x82, 0x7b, 0x91, + 0x05, 0xb8, 0x46, 0xe3, 0x94, 0xd2, 0xae, 0x57, 0x2f, 0x1e, 0x89, 0xe3, 0xfc, 0x6e, 0x20, 0xbf, + 0xeb, 0x64, 0x3d, 0xc4, 0x2f, 0x8a, 0x5d, 0x7f, 0x1e, 0x29, 0xf5, 0x17, 0xe4, 0xc7, 0x02, 0xde, + 0x41, 0x01, 0x62, 0xd1, 0xcf, 0xe5, 0x49, 0xad, 0x7e, 0xf5, 0xfc, 0x68, 0x10, 0xa7, 0xf4, 0x3e, + 0x52, 0x5a, 0x23, 0x57, 0x42, 0x94, 0x42, 0xc0, 0x04, 0x3e, 0x3f, 0x14, 0xf0, 0x22, 0x0e, 0xf7, + 0xcd, 0x64, 0x79, 0xd4, 0x76, 0x81, 0x3e, 0xa0, 0x7a, 0xe9, 0x68, 0x20, 0xe7, 0x76, 0x19, 0xb9, + 0xd5, 0xc8, 0xb9, 0x74, 0x6e, 0xb8, 0xef, 0x1f, 0x04, 0xf7, 0xba, 0x8b, 0x7d, 0x5e, 0x8c, 0x7e, + 0x69, 0x1e, 0xd9, 0x7c, 0x57, 0x57, 0xc7, 0x44, 0x73, 0x72, 0x9f, 0x21, 0xb9, 0x8d, 0xea, 0x07, + 0x21, 0x72, 0xc9, 0x2b, 0xe2, 0x11, 0xdc, 0x10, 0x56, 0xc9, 0x5f, 0x04, 0x38, 0x33, 0xaa, 0x6f, + 0x25, 0xf5, 0x44, 0x3a, 0x23, 0x5b, 0xd8, 0xea, 0xb5, 0x63, 0xad, 0xe1, 0x8e, 0xdc, 0x41, 0x47, + 0x3e, 0xab, 0xde, 0x4c, 0x70, 0x24, 0x79, 0x5d, 0xb2, 0x3b, 0x7f, 0x14, 0x60, 0x31, 0xb5, 0x29, + 0x26, 0xeb, 0xf1, 0x23, 0x1f, 0xed, 0xc8, 0xd5, 0xf1, 0x17, 0x04, 0x8e, 0x83, 0x7c, 0x14, 0xcd, + 0x95, 0x71, 0x5d, 0x20, 0x2f, 0x05, 0x28, 0x84, 0x7a, 0xe2, 0x58, 0x8d, 0x25, 0x75, 0xdd, 0xb1, + 0x1a, 0x4b, 0x68, 0xab, 0xff, 0x0f, 0xb9, 0x5d, 0xa0, 0xd5, 0x44, 0x11, 0x45, 0xe0, 0x86, 0xdd, + 0x2e, 0x92, 0xef, 0x08, 0x90, 0x0f, 0x74, 0xd3, 0xe4, 0x7c, 0xa2, 0xae, 0x84, 0x08, 0x2c, 0x8d, + 0x82, 0xf0, 0xed, 0xaf, 0xe2, 0xf6, 0xcb, 0xe4, 0x52, 0x82, 0xea, 0x20, 0x6c, 0xfd, 0xb9, 0xdf, + 0x51, 0xbd, 0x20, 0x3f, 0x10, 0xe0, 0x44, 0xb0, 0xc9, 0x26, 0x34, 0x7e, 0x12, 0xd1, 0xce, 0xbe, + 0x5a, 0x1b, 0x89, 0x09, 0xdc, 0x24, 0xe4, 0xdd, 0xe8, 0x01, 0x79, 0xb8, 0x84, 0x33, 0xb1, 0x60, + 0xc6, 0x45, 0x90, 0x73, 0x29, 0x5b, 0xb8, 0x14, 0xce, 0xa4, 0xce, 0xf3, 0xed, 0x57, 0x71, 0xfb, + 0x8b, 0x84, 0x26, 0x6e, 0x1f, 0x8e, 0xc0, 0x2b, 0x01, 0xe6, 0x62, 0xed, 0x73, 0x4c, 0xdd, 0xd2, + 0xda, 0xfa, 0x98, 0xba, 0xa5, 0x74, 0xe2, 0x4e, 0x56, 0x54, 0xcf, 0x25, 0xd4, 0x5d, 0x00, 0xcc, + 0x4b, 0xeb, 0x17, 0x02, 0x7f, 0xe5, 0x8b, 0xb7, 0xcb, 0x64, 0x35, 0x96, 0x7c, 0xa9, 0x9d, 0x7d, + 0x75, 0x65, 0x2c, 0x2c, 0x67, 0x76, 0x05, 0x99, 0x5d, 0xa6, 0xe7, 0x23, 0xf9, 0x1a, 0xc7, 0x73, + 0x72, 0xaf, 0xec, 0xbb, 0x20, 0xc2, 0x2c, 0xe1, 0x2e, 0x48, 0xa6, 0x75, 0xe9, 0x68, 0x60, 0xb0, + 0x86, 0x62, 0x77, 0x41, 0x9c, 0xd0, 0x4b, 0x01, 0x8a, 0xe1, 0xae, 0x95, 0x5c, 0x8c, 0x6f, 0x12, + 0x6f, 0xb2, 0xab, 0xf4, 0x08, 0x54, 0xe0, 0x4e, 0xa2, 0xa7, 0xa3, 0x3c, 0x02, 0x48, 0x4e, 0xe2, + 0x77, 0x02, 0x2c, 0xa6, 0x76, 0x98, 0x31, 0x35, 0x3c, 0xaa, 0x3d, 0x8e, 0xa9, 0xe1, 0xe8, 0xe6, + 0x95, 0x5e, 0x47, 0x96, 0xef, 0xd2, 0xcb, 0x21, 0x96, 0xa9, 0x8b, 0x36, 0x84, 0xd5, 0xfa, 0xbf, + 0x05, 0x00, 0xdf, 0x07, 0xf2, 0xf9, 0x7f, 0x2f, 0x86, 0xe4, 0xf9, 0xff, 0x30, 0x34, 0xf5, 0x59, + 0x28, 0x84, 0xfe, 0xe1, 0xe1, 0x60, 0x0a, 0xff, 0xbb, 0xe7, 0xbd, 0xff, 0x04, 0x00, 0x00, 0xff, + 0xff, 0x8b, 0x40, 0x8a, 0x6f, 0x17, 0x24, 0x00, 0x00, } diff --git a/pkg/api/v1alpha2/api.pb.gw.go b/pkg/api/v1alpha2/api.pb.gw.go index 1fafb9cef5b..aa65dcbb750 100644 --- a/pkg/api/v1alpha2/api.pb.gw.go +++ b/pkg/api/v1alpha2/api.pb.gw.go @@ -41,6 +41,19 @@ func request_Manager_RegisterExperiment_0(ctx context.Context, marshaler runtime } +func request_Manager_PreCheckRegisterExperiment_0(ctx context.Context, marshaler runtime.Marshaler, client ManagerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RegisterExperimentRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Experiment); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.PreCheckRegisterExperiment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + func request_Manager_DeleteExperiment_0(ctx context.Context, marshaler runtime.Marshaler, client ManagerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq DeleteExperimentRequest var metadata runtime.ServerMetadata @@ -419,6 +432,35 @@ func RegisterManagerHandler(ctx context.Context, mux *runtime.ServeMux, conn *gr }) + mux.Handle("POST", pattern_Manager_PreCheckRegisterExperiment_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(ctx) + defer cancel() + if cn, ok := w.(http.CloseNotifier); ok { + go func(done <-chan struct{}, closed <-chan bool) { + select { + case <-done: + case <-closed: + cancel() + } + }(ctx.Done(), cn.CloseNotify()) + } + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Manager_PreCheckRegisterExperiment_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Manager_PreCheckRegisterExperiment_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Manager_DeleteExperiment_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(ctx) defer cancel() @@ -860,6 +902,8 @@ func RegisterManagerHandler(ctx context.Context, mux *runtime.ServeMux, conn *gr var ( pattern_Manager_RegisterExperiment_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "Manager", "RegisterExperiment"}, "")) + pattern_Manager_PreCheckRegisterExperiment_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "Manager", "PreCheckRegisterExperiment"}, "")) + pattern_Manager_DeleteExperiment_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "Manager", "DeleteExperiment", "experiment_name"}, "")) pattern_Manager_GetExperiment_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "Manager", "GetExperiment", "experiment_name"}, "")) @@ -894,6 +938,8 @@ var ( var ( forward_Manager_RegisterExperiment_0 = runtime.ForwardResponseMessage + forward_Manager_PreCheckRegisterExperiment_0 = runtime.ForwardResponseMessage + forward_Manager_DeleteExperiment_0 = runtime.ForwardResponseMessage forward_Manager_GetExperiment_0 = runtime.ForwardResponseMessage diff --git a/pkg/api/v1alpha2/api.proto b/pkg/api/v1alpha2/api.proto index 7801a7a6921..185e0259259 100644 --- a/pkg/api/v1alpha2/api.proto +++ b/pkg/api/v1alpha2/api.proto @@ -24,6 +24,17 @@ service Manager { }; }; + /** + * PreCheck to register a Experiment to DB. + */ + rpc PreCheckRegisterExperiment(RegisterExperimentRequest) returns (PreCheckRegisterExperimentReply){ + option (google.api.http) = { + post: "/api/Manager/PreCheckRegisterExperiment" + body: "experiment" + }; + }; + + /** * Delete a Experiment from DB by name. */ @@ -392,6 +403,9 @@ message RegisterExperimentRequest { message RegisterExperimentReply { } +message PreCheckRegisterExperimentReply { + bool can_register = 1; +} message DeleteExperimentRequest { string experiment_name = 1; } diff --git a/pkg/api/v1alpha2/api.swagger.json b/pkg/api/v1alpha2/api.swagger.json index 99241bf48c0..396c767cc09 100644 --- a/pkg/api/v1alpha2/api.swagger.json +++ b/pkg/api/v1alpha2/api.swagger.json @@ -242,6 +242,33 @@ ] } }, + "/api/Manager/PreCheckRegisterExperiment": { + "post": { + "summary": "*\nPreCheck to register a Experiment to DB.", + "operationId": "PreCheckRegisterExperiment", + "responses": { + "200": { + "description": "", + "schema": { + "$ref": "#/definitions/alpha2PreCheckRegisterExperimentReply" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/alpha2Experiment" + } + } + ], + "tags": [ + "Manager" + ] + } + }, "/api/Manager/RegisterExperiment": { "post": { "summary": "*\nRegister a Experiment to DB.", @@ -906,6 +933,15 @@ "default": "UNKNOWN_TYPE", "description": "*\nTypes of value for HyperParameter." }, + "alpha2PreCheckRegisterExperimentReply": { + "type": "object", + "properties": { + "can_register": { + "type": "boolean", + "format": "boolean" + } + } + }, "alpha2RegisterExperimentReply": { "type": "object" }, diff --git a/pkg/api/v1alpha2/gen-doc/api.md b/pkg/api/v1alpha2/gen-doc/api.md index 1fcfbbd47d1..7fd225dcd79 100644 --- a/pkg/api/v1alpha2/gen-doc/api.md +++ b/pkg/api/v1alpha2/gen-doc/api.md @@ -1,5 +1,5 @@ # Protocol Documentation - + ## Table of Contents @@ -43,6 +43,7 @@ - [Operation.ParameterSpecs](#api.v1.alpha2.Operation.ParameterSpecs) - [ParameterAssignment](#api.v1.alpha2.ParameterAssignment) - [ParameterSpec](#api.v1.alpha2.ParameterSpec) + - [PreCheckRegisterExperimentReply](#api.v1.alpha2.PreCheckRegisterExperimentReply) - [RegisterExperimentReply](#api.v1.alpha2.RegisterExperimentReply) - [RegisterExperimentRequest](#api.v1.alpha2.RegisterExperimentRequest) - [RegisterTrialReply](#api.v1.alpha2.RegisterTrialReply) @@ -77,14 +78,14 @@ - +

Top

## api.proto Katib API - + ### AlgorithmSetting @@ -100,7 +101,7 @@ Katib API - + ### AlgorithmSpec @@ -117,7 +118,7 @@ Katib API - + ### DeleteExperimentReply @@ -127,7 +128,7 @@ Katib API - + ### DeleteExperimentRequest @@ -142,7 +143,7 @@ Katib API - + ### DeleteTrialReply @@ -152,7 +153,7 @@ Katib API - + ### DeleteTrialRequest @@ -167,7 +168,7 @@ Katib API - + ### EarlyStoppingSpec TODO @@ -177,7 +178,7 @@ TODO - + ### Experiment @@ -194,7 +195,7 @@ TODO - + ### ExperimentSpec Spec of a Experiment. Experiment represents a single optimization run over a feasible space. @@ -218,7 +219,7 @@ It is assumed that objective function f(x) does not change in the course of a Ex - + ### ExperimentSpec.ParameterSpecs List of ParameterSpec @@ -233,7 +234,7 @@ List of ParameterSpec - + ### ExperimentStatus @@ -250,7 +251,7 @@ List of ParameterSpec - + ### ExperimentSummary @@ -266,7 +267,7 @@ List of ParameterSpec - + ### FeasibleSpace Feasible space for optimization. @@ -286,7 +287,7 @@ Discrete and Categorical type use List. - + ### GetAlgorithmExtraSettingsReply @@ -301,7 +302,7 @@ Discrete and Categorical type use List. - + ### GetAlgorithmExtraSettingsRequest @@ -316,7 +317,7 @@ Discrete and Categorical type use List. - + ### GetExperimentListReply @@ -331,7 +332,7 @@ Discrete and Categorical type use List. - + ### GetExperimentListRequest @@ -341,7 +342,7 @@ Discrete and Categorical type use List. - + ### GetExperimentReply @@ -356,7 +357,7 @@ Discrete and Categorical type use List. - + ### GetExperimentRequest @@ -371,7 +372,7 @@ Discrete and Categorical type use List. - + ### GetObservationLogReply @@ -386,7 +387,7 @@ Discrete and Categorical type use List. - + ### GetObservationLogRequest @@ -404,7 +405,7 @@ Discrete and Categorical type use List. - + ### GetSuggestionsReply @@ -419,7 +420,7 @@ Discrete and Categorical type use List. - + ### GetSuggestionsRequest @@ -436,7 +437,7 @@ Discrete and Categorical type use List. - + ### GetTrialListReply @@ -451,7 +452,7 @@ Discrete and Categorical type use List. - + ### GetTrialListRequest @@ -467,7 +468,7 @@ Discrete and Categorical type use List. - + ### GetTrialReply @@ -482,7 +483,7 @@ Discrete and Categorical type use List. - + ### GetTrialRequest @@ -497,7 +498,7 @@ Discrete and Categorical type use List. - + ### GraphConfig GraphConfig contains a config of DAG @@ -514,7 +515,7 @@ GraphConfig contains a config of DAG - + ### Metric @@ -530,7 +531,7 @@ GraphConfig contains a config of DAG - + ### MetricLog @@ -546,7 +547,7 @@ GraphConfig contains a config of DAG - + ### NasConfig NasConfig contains a config of NAS job @@ -562,7 +563,7 @@ NasConfig contains a config of NAS job - + ### NasConfig.Operations @@ -577,7 +578,7 @@ NasConfig contains a config of NAS job - + ### ObjectiveSpec @@ -595,7 +596,7 @@ NasConfig contains a config of NAS job - + ### Observation @@ -610,7 +611,7 @@ NasConfig contains a config of NAS job - + ### ObservationLog @@ -625,7 +626,7 @@ NasConfig contains a config of NAS job - + ### Operation Config for operations in DAG @@ -641,7 +642,7 @@ Config for operations in DAG - + ### Operation.ParameterSpecs List of ParameterSpec @@ -656,7 +657,7 @@ List of ParameterSpec - + ### ParameterAssignment @@ -672,7 +673,7 @@ List of ParameterSpec - + ### ParameterSpec Config for a Hyper parameter. @@ -690,7 +691,22 @@ Katib will create each Hyper parameter from this config. - + + +### PreCheckRegisterExperimentReply + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| can_register | [bool](#bool) | | | + + + + + + + ### RegisterExperimentReply @@ -700,7 +716,7 @@ Katib will create each Hyper parameter from this config. - + ### RegisterExperimentRequest @@ -715,7 +731,7 @@ Katib will create each Hyper parameter from this config. - + ### RegisterTrialReply @@ -725,7 +741,7 @@ Katib will create each Hyper parameter from this config. - + ### RegisterTrialRequest @@ -740,7 +756,7 @@ Katib will create each Hyper parameter from this config. - + ### ReportObservationLogReply @@ -750,7 +766,7 @@ Katib will create each Hyper parameter from this config. - + ### ReportObservationLogRequest @@ -766,7 +782,7 @@ Katib will create each Hyper parameter from this config. - + ### Trial @@ -783,7 +799,7 @@ Katib will create each Hyper parameter from this config. - + ### TrialSpec @@ -802,7 +818,7 @@ Katib will create each Hyper parameter from this config. - + ### TrialSpec.ParameterAssignments List of ParameterAssignment @@ -817,7 +833,7 @@ List of ParameterAssignment - + ### TrialStatus @@ -835,7 +851,7 @@ List of ParameterAssignment - + ### UpdateAlgorithmExtraSettingsReply @@ -845,7 +861,7 @@ List of ParameterAssignment - + ### UpdateAlgorithmExtraSettingsRequest @@ -861,7 +877,7 @@ List of ParameterAssignment - + ### UpdateExperimentStatusReply @@ -871,7 +887,7 @@ List of ParameterAssignment - + ### UpdateExperimentStatusRequest @@ -887,7 +903,7 @@ List of ParameterAssignment - + ### UpdateTrialStatusReply @@ -897,7 +913,7 @@ List of ParameterAssignment - + ### UpdateTrialStatusRequest @@ -913,7 +929,7 @@ List of ParameterAssignment - + ### ValidateAlgorithmSettingsReply Return INVALID_ARGUMENT Error if Algorithm Settings are not Valid @@ -923,7 +939,7 @@ Return INVALID_ARGUMENT Error if Algorithm Settings are not Valid - + ### ValidateAlgorithmSettingsRequest @@ -941,7 +957,7 @@ Return INVALID_ARGUMENT Error if Algorithm Settings are not Valid - + ### ExperimentStatus.ExperimentConditionType @@ -957,7 +973,7 @@ Return INVALID_ARGUMENT Error if Algorithm Settings are not Valid - + ### ObjectiveType Direction of optimization. Minimize or Maximize. @@ -970,7 +986,7 @@ Direction of optimization. Minimize or Maximize. - + ### ParameterType Types of value for HyperParameter. @@ -985,7 +1001,7 @@ Types of value for HyperParameter. - + ### TrialStatus.TrialConditionType @@ -1005,7 +1021,7 @@ Types of value for HyperParameter. - + ### EarlyStopping TODO @@ -1014,7 +1030,7 @@ TODO | ----------- | ------------ | ------------- | ------------| - + ### Manager Service for Main API for Katib @@ -1024,33 +1040,34 @@ https://cloud.google.com/service-infrastructure/docs/service-management/referenc | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| -| RegisterExperiment | [RegisterExperimentRequest](#api.v1.alpha2.RegisterExperimentRequest) | [RegisterExperimentReply](#api.v1.alpha2.RegisterExperimentReply) | Register a Experiment to DB. | -| DeleteExperiment | [DeleteExperimentRequest](#api.v1.alpha2.DeleteExperimentRequest) | [DeleteExperimentReply](#api.v1.alpha2.DeleteExperimentReply) | Delete a Experiment from DB by name. | -| GetExperiment | [GetExperimentRequest](#api.v1.alpha2.GetExperimentRequest) | [GetExperimentReply](#api.v1.alpha2.GetExperimentReply) | Get a Experiment from DB by name. | -| GetExperimentList | [GetExperimentListRequest](#api.v1.alpha2.GetExperimentListRequest) | [GetExperimentListReply](#api.v1.alpha2.GetExperimentListReply) | Get a summary list of Experiment from DB. The summary includes name and condition. | -| UpdateExperimentStatus | [UpdateExperimentStatusRequest](#api.v1.alpha2.UpdateExperimentStatusRequest) | [UpdateExperimentStatusReply](#api.v1.alpha2.UpdateExperimentStatusReply) | Update Status of a experiment. | -| UpdateAlgorithmExtraSettings | [UpdateAlgorithmExtraSettingsRequest](#api.v1.alpha2.UpdateAlgorithmExtraSettingsRequest) | [UpdateAlgorithmExtraSettingsReply](#api.v1.alpha2.UpdateAlgorithmExtraSettingsReply) | Update AlgorithmExtraSettings. The ExtraSetting is created if it does not exist, otherwise it is overwrited. | -| GetAlgorithmExtraSettings | [GetAlgorithmExtraSettingsRequest](#api.v1.alpha2.GetAlgorithmExtraSettingsRequest) | [GetAlgorithmExtraSettingsReply](#api.v1.alpha2.GetAlgorithmExtraSettingsReply) | Get all AlgorithmExtraSettings. | -| RegisterTrial | [RegisterTrialRequest](#api.v1.alpha2.RegisterTrialRequest) | [RegisterTrialReply](#api.v1.alpha2.RegisterTrialReply) | Register a Trial to DB. ID will be filled by manager automatically. | -| DeleteTrial | [DeleteTrialRequest](#api.v1.alpha2.DeleteTrialRequest) | [DeleteTrialReply](#api.v1.alpha2.DeleteTrialReply) | Delete a Trial from DB by ID. | -| GetTrialList | [GetTrialListRequest](#api.v1.alpha2.GetTrialListRequest) | [GetTrialListReply](#api.v1.alpha2.GetTrialListReply) | Get a list of Trial from DB by name of a Experiment. | -| GetTrial | [GetTrialRequest](#api.v1.alpha2.GetTrialRequest) | [GetTrialReply](#api.v1.alpha2.GetTrialReply) | Get a Trial from DB by ID of Trial. | -| UpdateTrialStatus | [UpdateTrialStatusRequest](#api.v1.alpha2.UpdateTrialStatusRequest) | [UpdateTrialStatusReply](#api.v1.alpha2.UpdateTrialStatusReply) | Update Status of a trial. | -| ReportObservationLog | [ReportObservationLogRequest](#api.v1.alpha2.ReportObservationLogRequest) | [ReportObservationLogReply](#api.v1.alpha2.ReportObservationLogReply) | Report a log of Observations for a Trial. The log consists of timestamp and value of metric. Katib store every log of metrics. You can see accuracy curve or other metric logs on UI. | -| GetObservationLog | [GetObservationLogRequest](#api.v1.alpha2.GetObservationLogRequest) | [GetObservationLogReply](#api.v1.alpha2.GetObservationLogReply) | Get all log of Observations for a Trial. | -| GetSuggestions | [GetSuggestionsRequest](#api.v1.alpha2.GetSuggestionsRequest) | [GetSuggestionsReply](#api.v1.alpha2.GetSuggestionsReply) | Get Suggestions from a Suggestion service. | -| ValidateAlgorithmSettings | [ValidateAlgorithmSettingsRequest](#api.v1.alpha2.ValidateAlgorithmSettingsRequest) | [ValidateAlgorithmSettingsReply](#api.v1.alpha2.ValidateAlgorithmSettingsReply) | Validate AlgorithmSettings in an Experiment. Suggestion service should return INVALID_ARGUMENT Error when the parameter is invalid | - - - +| RegisterExperiment | [RegisterExperimentRequest](#api.v1.alpha2.RegisterExperimentRequest) | [RegisterExperimentReply](#api.v1.alpha2.RegisterExperimentRequest) | Register a Experiment to DB. | +| PreCheckRegisterExperiment | [RegisterExperimentRequest](#api.v1.alpha2.RegisterExperimentRequest) | [PreCheckRegisterExperimentReply](#api.v1.alpha2.RegisterExperimentRequest) | PreCheck to register a Experiment to DB. | +| DeleteExperiment | [DeleteExperimentRequest](#api.v1.alpha2.DeleteExperimentRequest) | [DeleteExperimentReply](#api.v1.alpha2.DeleteExperimentRequest) | Delete a Experiment from DB by name. | +| GetExperiment | [GetExperimentRequest](#api.v1.alpha2.GetExperimentRequest) | [GetExperimentReply](#api.v1.alpha2.GetExperimentRequest) | Get a Experiment from DB by name. | +| GetExperimentList | [GetExperimentListRequest](#api.v1.alpha2.GetExperimentListRequest) | [GetExperimentListReply](#api.v1.alpha2.GetExperimentListRequest) | Get a summary list of Experiment from DB. The summary includes name and condition. | +| UpdateExperimentStatus | [UpdateExperimentStatusRequest](#api.v1.alpha2.UpdateExperimentStatusRequest) | [UpdateExperimentStatusReply](#api.v1.alpha2.UpdateExperimentStatusRequest) | Update Status of a experiment. | +| UpdateAlgorithmExtraSettings | [UpdateAlgorithmExtraSettingsRequest](#api.v1.alpha2.UpdateAlgorithmExtraSettingsRequest) | [UpdateAlgorithmExtraSettingsReply](#api.v1.alpha2.UpdateAlgorithmExtraSettingsRequest) | Update AlgorithmExtraSettings. The ExtraSetting is created if it does not exist, otherwise it is overwrited. | +| GetAlgorithmExtraSettings | [GetAlgorithmExtraSettingsRequest](#api.v1.alpha2.GetAlgorithmExtraSettingsRequest) | [GetAlgorithmExtraSettingsReply](#api.v1.alpha2.GetAlgorithmExtraSettingsRequest) | Get all AlgorithmExtraSettings. | +| RegisterTrial | [RegisterTrialRequest](#api.v1.alpha2.RegisterTrialRequest) | [RegisterTrialReply](#api.v1.alpha2.RegisterTrialRequest) | Register a Trial to DB. ID will be filled by manager automatically. | +| DeleteTrial | [DeleteTrialRequest](#api.v1.alpha2.DeleteTrialRequest) | [DeleteTrialReply](#api.v1.alpha2.DeleteTrialRequest) | Delete a Trial from DB by ID. | +| GetTrialList | [GetTrialListRequest](#api.v1.alpha2.GetTrialListRequest) | [GetTrialListReply](#api.v1.alpha2.GetTrialListRequest) | Get a list of Trial from DB by name of a Experiment. | +| GetTrial | [GetTrialRequest](#api.v1.alpha2.GetTrialRequest) | [GetTrialReply](#api.v1.alpha2.GetTrialRequest) | Get a Trial from DB by ID of Trial. | +| UpdateTrialStatus | [UpdateTrialStatusRequest](#api.v1.alpha2.UpdateTrialStatusRequest) | [UpdateTrialStatusReply](#api.v1.alpha2.UpdateTrialStatusRequest) | Update Status of a trial. | +| ReportObservationLog | [ReportObservationLogRequest](#api.v1.alpha2.ReportObservationLogRequest) | [ReportObservationLogReply](#api.v1.alpha2.ReportObservationLogRequest) | Report a log of Observations for a Trial. The log consists of timestamp and value of metric. Katib store every log of metrics. You can see accuracy curve or other metric logs on UI. | +| GetObservationLog | [GetObservationLogRequest](#api.v1.alpha2.GetObservationLogRequest) | [GetObservationLogReply](#api.v1.alpha2.GetObservationLogRequest) | Get all log of Observations for a Trial. | +| GetSuggestions | [GetSuggestionsRequest](#api.v1.alpha2.GetSuggestionsRequest) | [GetSuggestionsReply](#api.v1.alpha2.GetSuggestionsRequest) | Get Suggestions from a Suggestion service. | +| ValidateAlgorithmSettings | [ValidateAlgorithmSettingsRequest](#api.v1.alpha2.ValidateAlgorithmSettingsRequest) | [ValidateAlgorithmSettingsReply](#api.v1.alpha2.ValidateAlgorithmSettingsRequest) | Validate AlgorithmSettings in an Experiment. Suggestion service should return INVALID_ARGUMENT Error when the parameter is invalid | + + + ### Suggestion | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| -| GetSuggestions | [GetSuggestionsRequest](#api.v1.alpha2.GetSuggestionsRequest) | [GetSuggestionsReply](#api.v1.alpha2.GetSuggestionsReply) | | -| ValidateAlgorithmSettings | [ValidateAlgorithmSettingsRequest](#api.v1.alpha2.ValidateAlgorithmSettingsRequest) | [ValidateAlgorithmSettingsReply](#api.v1.alpha2.ValidateAlgorithmSettingsReply) | | +| GetSuggestions | [GetSuggestionsRequest](#api.v1.alpha2.GetSuggestionsRequest) | [GetSuggestionsReply](#api.v1.alpha2.GetSuggestionsRequest) | | +| ValidateAlgorithmSettings | [ValidateAlgorithmSettingsRequest](#api.v1.alpha2.ValidateAlgorithmSettingsRequest) | [ValidateAlgorithmSettingsReply](#api.v1.alpha2.ValidateAlgorithmSettingsRequest) | | diff --git a/pkg/api/v1alpha2/gen-doc/index.html b/pkg/api/v1alpha2/gen-doc/index.html index 9deb588f07c..219c2eb84af 100644 --- a/pkg/api/v1alpha2/gen-doc/index.html +++ b/pkg/api/v1alpha2/gen-doc/index.html @@ -4,7 +4,7 @@ Protocol Documentation - +