diff --git a/etc/registration-service.yaml b/etc/registration-service.yaml index c3e4297bd52bb15ba5da10167cc64c6768a0d072..abd62b382b7870b2ecd688a70983921bc707109d 100644 --- a/etc/registration-service.yaml +++ b/etc/registration-service.yaml @@ -34,10 +34,10 @@ DevServer: # grpc 閫氫俊鏈嶅姟绔瘉涔︾閽� GrpcServerConf: - CertFile: ./cert/registration-service/server.pem - KeyFile: ./cert/registration-service/server.key -# CertFile: -# KeyFile: +# CertFile: ./cert/registration-service/server.pem +# KeyFile: ./cert/registration-service/server.key + CertFile: + KeyFile: # 鎺ユ敹銆佸彂閫佹秷鎭ぇ灏忚缃负 20 mb锛屾牴鎹湇鍔″疄闄呭満鏅皟鏁� MaxRecvMsgSize: 20971520 diff --git a/etc/registration.yaml b/etc/registration.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5e2d872a99777d9bc66191fdf80d05ce14182feb --- /dev/null +++ b/etc/registration.yaml @@ -0,0 +1,6 @@ +Name: registration.rpc +ListenOn: 0.0.0.0:8080 +Etcd: + Hosts: + - 127.0.0.1:2379 + Key: registration.rpc diff --git a/internal/code/respCode.go b/internal/code/respCode.go index b267d3267a1f1d4ea935573217f6d6f46be87325..48c3be293e718d2547bedf3ab7d1d74838ce0822 100644 --- a/internal/code/respCode.go +++ b/internal/code/respCode.go @@ -25,6 +25,11 @@ const ( // ErrParams 銆愪笟鍔″眰閿欒鐮侊細21000 - 21999銆� ErrParams RespCode = iota + 20000 ErrInvalidDBConnType + ErrInvalidMethod + ErrInvalidHeader + ErrInvalidParams + ErrHTTPRequest + ErrHTTPStatusCode ErrEmptyCreator ErrEmptyDBConnId ErrDBConnectFailed @@ -60,6 +65,9 @@ const ( ErrAssetNotOnChain ErrCallRPC ErrCallContractResp + ErrAPIExist + ErrDataSetExist + ErrDataSetColumnExist // ErrDB 銆愭暟鎹簱灞傞敊璇爜鑼冨洿锛�22000 - 22999銆� ErrDB RespCode = iota + 10000 @@ -72,6 +80,11 @@ var errMsg = map[RespCode]string{ ErrParams: "params error", ErrInvalidDBConnType: "invalid db connection type", + ErrInvalidMethod: "invalid http method", + ErrInvalidHeader: "invalid http header", + ErrInvalidParams: "invalid http params", + ErrHTTPRequest: "http request error", + ErrHTTPStatusCode: "http response status code error", ErrEmptyCreator: "creator is empty", ErrEmptyDBConnId: "db conn id is empty", ErrDBConnectFailed: "db connect failed", @@ -107,6 +120,9 @@ var errMsg = map[RespCode]string{ ErrAssetNotOnChain: "asset is not on chain", ErrCallRPC: "call rpc error", ErrCallContractResp: "call contract response error", + ErrAPIExist: "asset api already exist", + ErrDataSetExist: "asset data set already exist", + ErrDataSetColumnExist: "asset data set column already exist", ErrDB: "db error", ErrRecordNotFound: "record not found", diff --git a/internal/event/asset_create_event.go b/internal/event/asset_create_event.go index de254b22d9487f6254060a92c2bac5ba15b590b6..add528e92b64828ca36b79a79215b496791fbe27 100644 --- a/internal/event/asset_create_event.go +++ b/internal/event/asset_create_event.go @@ -1,15 +1,16 @@ package event import ( + "context" + "time" + "chainmaker.org/chainmaker/common/v2/json" _const "chainmaker.org/chainmaker/ida/contract-ida/const" "chainmaker.org/chainmaker/ida/contract-ida/types" "chainmaker.org/chainmaker/ida/registration-service/internal/model" "chainmaker.org/chainmaker/ida/registration-service/internal/utils" "chainmaker.org/chainmaker/pb-go/v2/common" - "context" "gorm.io/gorm" - "time" ) // AssetCreateEventHandler 鍒涘缓璧勪骇浜嬩欢澶勭悊鍣� @@ -34,7 +35,7 @@ func (h *AssetCreateEventHandler) handleEvent(e *common.ContractEventInfo) error // 閬嶅巻澶勭悊姣忎竴涓祫浜� for _, ida := range idas { // 鍒涘缓璧勪骇 - asset, err := h.prepareAssetInfo(tx, ida) + asset, err := h.prepareAssetInfo(tx, ida, 0) if err != nil { tx.Rollback() return err @@ -81,7 +82,20 @@ func (h *AssetCreateEventHandler) handleEvent(e *common.ContractEventInfo) error return nil } -func (h *AssetCreateEventHandler) prepareAssetInfo(tx *gorm.DB, ida *types.IDAInfo) (*model.Asset, error) { +// prepareAssetInfo 鍑嗗璧勪骇淇℃伅 +// 1. 鍑嗗璧勪骇鎵╁睍琛ㄤ俊鎭紝骞跺叆搴撳鐞� +// 2. 鍑嗗璧勪骇涓昏〃淇℃伅 +func (h *AssetCreateEventHandler) prepareAssetInfo(tx *gorm.DB, ida *types.IDAInfo, currentAssetId int32) (*model.Asset, error) { + // 鏇存柊鐨勬椂鍊欙紝闇€瑕佸厛娓呴櫎鍘熷鐨勬墿灞曡〃淇℃伅 + if currentAssetId > 0 { + if err := tx.Where("asset_id = ?", currentAssetId).Delete(&model.UpdateCycle{}).Error; err != nil { + return nil, err + } + if err := tx.Where("asset_id = ?", currentAssetId).Delete(&model.DataScale{}).Error; err != nil { + return nil, err + } + } + cycle := model.UpdateCycle{ UpdateType: int32(ida.Source.UpdateCycle.UpdateCycleType), Cycle: int32(ida.Source.UpdateCycle.Cycle), @@ -100,10 +114,13 @@ func (h *AssetCreateEventHandler) prepareAssetInfo(tx *gorm.DB, ida *types.IDAIn return nil, err } - // 澶勭悊鏁版嵁婧愯繛鎺� - dbConn := h.prepareDBConn(ida) - if err := tx.Create(dbConn).Error; err != nil { - return nil, err + // 鍒涘缓鏂拌祫浜х殑鏃跺€欙紝澶勭悊鏁版嵁婧愯繛鎺� + // 鏇存柊璧勪骇鐨勬椂鍊欙紝鍥犱负鏁版嵁婧愯繛鎺ヤ笉鍙慨鏀癸紝鍥犳涓嶉渶瑕佹洿鏂� + if currentAssetId == 0 { + dbConn := h.prepareDBConn(ida) + if err := tx.Create(dbConn).Error; err != nil { + return nil, err + } } return &model.Asset{ diff --git a/internal/event/asset_update_event.go b/internal/event/asset_update_event.go index 31c6e6717cb3c2d91faecd608fc324bf9adc3a89..bf4e119ac96e75f85c2ffa1785d5b102f60638fa 100644 --- a/internal/event/asset_update_event.go +++ b/internal/event/asset_update_event.go @@ -40,7 +40,7 @@ func (h *AssetUpdateEventHandler) handleEvent(e *common.ContractEventInfo) error // 淇濆瓨鏇存柊璧勪骇 assetCreator := &AssetCreateEventHandler{} - asset, err := assetCreator.prepareAssetInfo(tx, ida) + asset, err := assetCreator.prepareAssetInfo(tx, ida, int32(currentAsset.Id)) if err != nil { tx.Rollback() return err diff --git a/internal/event/event.go b/internal/event/event.go index 086f27b1cce67d3e884f9e264a209a5148e63e5c..59d41cd758785d077e899a859381b38ac5f88ac8 100644 --- a/internal/event/event.go +++ b/internal/event/event.go @@ -1,18 +1,19 @@ package event import ( - "chainmaker.org/chainmaker/ida/common/event" - "chainmaker.org/chainmaker/ida/registration-service/internal/svc" - "chainmaker.org/chainmaker/pb-go/v2/common" "context" "errors" "fmt" + + "chainmaker.org/chainmaker/ida/common/event" + "chainmaker.org/chainmaker/ida/registration-service/internal/svc" + "chainmaker.org/chainmaker/pb-go/v2/common" "github.com/zeromicro/go-zero/core/logx" ) const ( - chainId = "chain1" // 閾緄d - groupName = "registration" // 娉ㄥ唽涓績 + chainId = "chainmaker_testnet_pk" // 閾緄d + groupName = "registration" // 娉ㄥ唽涓績 ) var ( diff --git a/internal/logic/apitestlogic.go b/internal/logic/apitestlogic.go new file mode 100644 index 0000000000000000000000000000000000000000..59f8180aaae3529208484afd48565accc13ad3aa --- /dev/null +++ b/internal/logic/apitestlogic.go @@ -0,0 +1,131 @@ +package logic + +import ( + "context" + "crypto/tls" + "net/http" + "strings" + + "chainmaker.org/chainmaker/common/v2/json" + "chainmaker.org/chainmaker/ida/registration-service/internal/code" + "chainmaker.org/chainmaker/ida/registration-service/registration" + + "chainmaker.org/chainmaker/ida/registration-service/internal/svc" + "chainmaker.org/chainmaker/ida/registration-service/pb/registrationpb" + + "github.com/zeromicro/go-zero/core/logx" +) + +type APITestLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewAPITestLogic(ctx context.Context, svcCtx *svc.ServiceContext) *APITestLogic { + return &APITestLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// HeaderItem 澶翠俊鎭粨鏋� +type HeaderItem struct { + Key string + Value string +} + +type ParamItem struct { + Key string + Type string + Desc string +} + +// APITest +// 15. API杩炴帴娴嬭瘯 +func (l *APITestLogic) APITest(in *registrationpb.APITestReq) (*registrationpb.APITestResp, error) { + // 1. 妫€鏌ュ弬鏁� + if in.Url == "" || in.Method == "" { + // 璁板綍鏃ュ織 + l.Logger.Errorf("requestId: [%s], invalid params error", in.RequestId) + return ®istration.APITestResp{ + Code: int32(code.ErrParams), + Msg: code.ErrParams.String(), + }, nil + } + + method := strings.ToTitle(in.Method) + if method != "GET" && method != "POST" { + // 璁板綍鏃ュ織 + l.Logger.Errorf("requestId: [%s], invalid http method error", in.RequestId) + return ®istration.APITestResp{ + Code: int32(code.ErrInvalidMethod), + Msg: code.ErrInvalidMethod.String(), + }, nil + } + + // 鍒涘缓璇锋眰瀵硅薄 + req, err := http.NewRequest(method, in.Url, nil) + if err != nil { + l.Logger.Errorf("requestId: [%s], http new request error", in.RequestId) + return ®istration.APITestResp{ + Code: int32(code.ErrHTTPRequest), + Msg: code.ErrHTTPRequest.String(), + }, nil + } + + // 璁剧疆璇锋眰澶� + req.Header.Set("Content-Type", "application/json") + + // 閰嶇疆http client, 骞惰缃� TLS 杩炴帴 + client := &http.Client{} + if strings.HasPrefix(in.Url, "https") { + tlsConfig := &tls.Config{ + InsecureSkipVerify: true, + } + client.Transport = &http.Transport{ + TLSClientConfig: tlsConfig, + } + } + + // 璁剧疆璇锋眰澶撮儴淇℃伅 + if in.Header != "" { + headers := make([]HeaderItem, 0) + if err = json.Unmarshal([]byte(in.Header), &headers); err != nil { + // 璁板綍鏃ュ織 + l.Logger.Errorf("requestId: [%s], unmarshal header error", in.RequestId) + return ®istration.APITestResp{ + Code: int32(code.ErrInvalidHeader), + Msg: code.ErrInvalidHeader.String(), + }, nil + } + for _, item := range headers { + req.Header.Set(item.Key, item.Value) + } + } + + // 鍙戣捣璇锋眰 + response, err := client.Do(req) + if err != nil { + l.Logger.Errorf("requestId: [%s], http request error: %s", in.RequestId, err.Error()) + return ®istration.APITestResp{ + Code: int32(code.ErrHTTPRequest), + Msg: code.ErrHTTPRequest.String(), + }, nil + } + defer response.Body.Close() + + // 璇诲彇鍝嶅簲鍐呭 + if response.StatusCode != 200 { + l.Logger.Errorf("requestId: [%s], http response status code error", in.RequestId) + return ®istration.APITestResp{ + Code: int32(code.ErrHTTPStatusCode), + Msg: code.ErrHTTPStatusCode.String(), + }, nil + } + + return ®istrationpb.APITestResp{ + Code: int32(code.Success), + }, nil +} diff --git a/internal/logic/assetinfologic.go b/internal/logic/assetinfologic.go index 7ebf4a62978068d590914c4f9bbaf82a7fbc0171..cc2a982eca197459db6b2697aea132954fa75a7c 100644 --- a/internal/logic/assetinfologic.go +++ b/internal/logic/assetinfologic.go @@ -49,7 +49,7 @@ func (l *AssetInfoLogic) AssetInfo(in *registration.AssetInfoReq) (*registration asset := &model.Asset{} if err := DB.Where("id = ? and platform = ?", in.AssetId, model.PlatformLocal).First(asset).Error; err != nil { // 璁板綍鏃ュ織 - l.Logger.Errorf("requestId: [%s], check params error: %s", in.RequestId, err.Error) + l.Logger.Errorf("requestId: [%s], check params error: %s", in.RequestId, err.Error()) return ®istration.AssetInfoResp{ Code: int32(code.ErrInvalidAssetId), Msg: code.ErrInvalidAssetId.String(), @@ -60,7 +60,7 @@ func (l *AssetInfoLogic) AssetInfo(in *registration.AssetInfoReq) (*registration productInfo, err := l.prepareProductInfo(asset, DB) if err != nil { // 璁板綍鏃ュ織 - l.Logger.Errorf("requestId: [%s], prepare product info error: %s", in.RequestId, err.Error) + l.Logger.Errorf("requestId: [%s], prepare product info error: %s", in.RequestId, err.Error()) return ®istration.AssetInfoResp{ Code: int32(code.ErrDB), Msg: code.ErrDB.String(), diff --git a/internal/logic/getprivateassetinfobyennamelogic.go b/internal/logic/getprivateassetinfobyennamelogic.go index 201248d1786f357cbea1f698e24b92e50655a99d..ff272db497a673ffcf6b2b7772c75b42e019a67d 100644 --- a/internal/logic/getprivateassetinfobyennamelogic.go +++ b/internal/logic/getprivateassetinfobyennamelogic.go @@ -38,8 +38,8 @@ func (l *GetPrivateAssetInfoByEnNameLogic) GetPrivateAssetInfoByEnName(in *regis // 璁板綍鏃ュ織 l.Logger.Errorf("requestId: [%s], invalid asset en name, error", in.RequestId) return ®istration.GetPrivateAssetInfoByEnNameResp{ - Code: int32(code.ErrInvalidAssetNumber), - Msg: code.ErrInvalidAssetNumber.String(), + Code: int32(code.ErrInvalidAssetEnName), + Msg: code.ErrInvalidAssetEnName.String(), }, nil } @@ -50,10 +50,10 @@ func (l *GetPrivateAssetInfoByEnNameLogic) GetPrivateAssetInfoByEnName(in *regis asset := &model.Asset{} if err := DB.Where("asset_en_name = ? ", in.AssetEnName).First(asset).Error; err != nil { // 璁板綍鏃ュ織 - l.Logger.Errorf("requestId: [%s], check params error: %s", in.RequestId, err.Error) + l.Logger.Errorf("requestId: [%s], check asset exist error: %s", in.RequestId, err.Error()) return ®istration.GetPrivateAssetInfoByEnNameResp{ - Code: int32(code.ErrInvalidAssetNumber), - Msg: code.ErrInvalidAssetNumber.String(), + Code: int32(code.ErrInvalidAssetEnName), + Msg: code.ErrInvalidAssetEnName.String(), }, nil } @@ -62,7 +62,7 @@ func (l *GetPrivateAssetInfoByEnNameLogic) GetPrivateAssetInfoByEnName(in *regis productInfo, err := assetLogic.prepareProductInfo(asset, DB) if err != nil { // 璁板綍鏃ュ織 - l.Logger.Errorf("requestId: [%s], prepare product info error: %s", in.RequestId, err.Error) + l.Logger.Errorf("requestId: [%s], prepare product info error: %s", in.RequestId, err.Error()) return ®istration.GetPrivateAssetInfoByEnNameResp{ Code: int32(code.ErrDB), Msg: code.ErrDB.String(), diff --git a/internal/logic/getprivateassetinfologic.go b/internal/logic/getprivateassetinfologic.go index 97baf060b6f19294eb00d0631d3db5f0766591cb..183c3bc89cc915fbbb83c11b3df12acfe783d8fd 100644 --- a/internal/logic/getprivateassetinfologic.go +++ b/internal/logic/getprivateassetinfologic.go @@ -48,7 +48,7 @@ func (l *GetPrivateAssetInfoLogic) GetPrivateAssetInfo(in *registration.GetPriva asset := &model.Asset{} if err := DB.Where("id = ? ", in.AssetId).First(asset).Error; err != nil { // 璁板綍鏃ュ織 - l.Logger.Errorf("requestId: [%s], check params error: %s", in.RequestId, err.Error) + l.Logger.Errorf("requestId: [%s], check params error: %s", in.RequestId, err.Error()) return ®istration.GetPrivateAssetInfoResp{ Code: int32(code.ErrInvalidAssetId), Msg: code.ErrInvalidAssetId.String(), @@ -60,7 +60,7 @@ func (l *GetPrivateAssetInfoLogic) GetPrivateAssetInfo(in *registration.GetPriva productInfo, err := assetLogic.prepareProductInfo(asset, DB) if err != nil { // 璁板綍鏃ュ織 - l.Logger.Errorf("requestId: [%s], prepare product info error: %s", in.RequestId, err.Error) + l.Logger.Errorf("requestId: [%s], prepare product info error: %s", in.RequestId, err.Error()) return ®istration.GetPrivateAssetInfoResp{ Code: int32(code.ErrDB), Msg: code.ErrDB.String(), diff --git a/internal/logic/saveapilogic.go b/internal/logic/saveapilogic.go index b82862b23c634354855d7fef22673003bbf7ce88..77b968356a48faf78885e10cf17a51b59249c3df 100644 --- a/internal/logic/saveapilogic.go +++ b/internal/logic/saveapilogic.go @@ -1,11 +1,12 @@ package logic import ( + "context" + "time" + "chainmaker.org/chainmaker/ida/registration-service/internal/code" "chainmaker.org/chainmaker/ida/registration-service/internal/model" "chainmaker.org/chainmaker/ida/registration-service/registration" - "context" - "time" "chainmaker.org/chainmaker/ida/registration-service/internal/svc" "github.com/zeromicro/go-zero/core/logx" @@ -47,13 +48,23 @@ func (l *SaveAPILogic) SaveAPI(in *registration.SaveAPIReq) (*registration.SaveA asset := &model.Asset{} if err := DB.Where("id = ? ", in.AssetId).First(asset).Error; err != nil { // 璁板綍鏃ュ織 - l.Logger.Errorf("requestId: [%s], check params error: %s", in.RequestId, err.Error) + l.Logger.Errorf("requestId: [%s], check params error: %s", in.RequestId, err.Error()) return ®istration.SaveAPIResp{ Code: int32(code.ErrInvalidAssetId), Msg: code.ErrInvalidAssetId.String(), }, nil } + // 4. 妫€鏌PI鏄惁瀛樺湪 + if err := DB.Where("asset_id = ? ", in.AssetId).First(&model.AssetApi{}).Error; err == nil { + // 璁板綍鏃ュ織 + l.Logger.Errorf("requestId: [%s], asset api exist error: %s", in.RequestId, err.Error()) + return ®istration.SaveAPIResp{ + Code: int32(code.ErrDataSetExist), + Msg: code.ErrDataSetExist.String(), + }, nil + } + assetApi := &model.AssetApi{ AssetId: in.AssetId, Url: in.Url, @@ -65,7 +76,7 @@ func (l *SaveAPILogic) SaveAPI(in *registration.SaveAPIReq) (*registration.SaveA } if err := DB.Create(assetApi).Error; err != nil { // 璁板綍鏃ュ織 - l.Logger.Errorf("requestId: [%s], create asset api error: %s", in.RequestId, err.Error) + l.Logger.Errorf("requestId: [%s], create asset api error: %s", in.RequestId, err.Error()) return ®istration.SaveAPIResp{ Code: int32(code.ErrDB), Msg: code.ErrDB.String(), diff --git a/internal/logic/savetablecolumnslogic.go b/internal/logic/savetablecolumnslogic.go index ecc1b89951224170ed79cf27a46a1badf09603bd..52f4f3283310a7a735ad3ba45b6d8c2b09b40b08 100644 --- a/internal/logic/savetablecolumnslogic.go +++ b/internal/logic/savetablecolumnslogic.go @@ -1,14 +1,13 @@ package logic import ( + "context" + "time" + "chainmaker.org/chainmaker/ida/registration-service/internal/code" "chainmaker.org/chainmaker/ida/registration-service/internal/model" "chainmaker.org/chainmaker/ida/registration-service/internal/svc" "chainmaker.org/chainmaker/ida/registration-service/registration" - "context" - "gorm.io/gorm" - "time" - "github.com/zeromicro/go-zero/core/logx" ) @@ -78,12 +77,19 @@ func (l *SaveTableColumnsLogic) SaveTableColumns(in *registration.SaveTableColum // 6. 鏌ヨ鏁版嵁闆嗘槸鍚﹀瓨鍦� var dataSetInfo = &model.AssetDataSet{} - if err := tx.Where("asset_id = ?", in.AssetId).First(dataSetInfo).Error; err == nil || err != gorm.ErrRecordNotFound { - dataSet.Id = dataSetInfo.Id + if err := tx.Where("asset_id = ?", in.AssetId).First(dataSetInfo).Error; err == nil { + // 浜嬪姟鍥炴粴 + tx.Rollback() + // 璁板綍鏃ュ織 + l.Logger.Errorf("requestId: [%s], data set exist error: %s", in.RequestId, err) + return ®istration.SaveTableColumnsResp{ + Code: int32(code.ErrDataSetExist), + Msg: code.ErrDataSetExist.String(), + }, nil } // 7. 淇濆瓨鏁版嵁闆�, dataSet.Id 涓嶅瓨鍦ㄦ椂鏂板锛屽瓨鍦ㄦ椂鍒欐洿鏂� - if err := tx.Save(dataSet).Error; err != nil { + if err := tx.Create(dataSet).Error; err != nil { // 浜嬪姟鍥炴粴 tx.Rollback() // 璁板綍鏃ュ織 @@ -94,7 +100,20 @@ func (l *SaveTableColumnsLogic) SaveTableColumns(in *registration.SaveTableColum }, nil } - // 8. 淇濆瓨鏁版嵁闆嗗瓧娈典俊鎭� + // 8. 妫€鏌ユ暟鎹泦瀛楁淇℃伅鏄惁瀛樺湪 + if err := tx.Where("asset_id = ?", in.AssetId).First(&model.Asset{}).Error; err == nil { + dataSet.Id = dataSetInfo.Id + // 浜嬪姟鍥炴粴 + tx.Rollback() + // 璁板綍鏃ュ織 + l.Logger.Errorf("requestId: [%s], data set column exist error: %s", in.RequestId, err) + return ®istration.SaveTableColumnsResp{ + Code: int32(code.ErrDataSetColumnExist), + Msg: code.ErrDataSetColumnExist.String(), + }, nil + } + + // 9. 淇濆瓨鏁版嵁闆嗗瓧娈典俊鎭� for _, column := range in.List { dataSetColumn := &model.AssetDataSetColumn{ DataSetId: int32(dataSet.Id), @@ -124,7 +143,7 @@ func (l *SaveTableColumnsLogic) SaveTableColumns(in *registration.SaveTableColum } } - // 9. 浜嬪姟鎻愪氦 + // 10. 浜嬪姟鎻愪氦 if err := tx.Commit().Error; err != nil { // 璁板綍鏃ュ織 l.Logger.Errorf("requestId: [%s], tx commit error: %s", in.RequestId, err) diff --git a/internal/logic/updateapilogic.go b/internal/logic/updateapilogic.go index 8b02775dcbf19870d107107e584f6255969e7f35..ab0d9f89f421029e108e237b7fc7c6671f6e26ab 100644 --- a/internal/logic/updateapilogic.go +++ b/internal/logic/updateapilogic.go @@ -66,7 +66,7 @@ func (l *UpdateAPILogic) UpdateAPI(in *registration.UpdateAPIReq) (*registration if err = DB.Where("asset_id = ?", in.AssetId).Save(assetAPI).Error; err != nil { // 璁板綍鏃ュ織 - l.Logger.Errorf("requestId: [%s], update asset api error: %s", in.RequestId, err.Error) + l.Logger.Errorf("requestId: [%s], update asset api error: %s", in.RequestId, err.Error()) return ®istration.UpdateAPIResp{ Code: int32(code.ErrDB), Msg: code.ErrDB.String(), @@ -74,7 +74,7 @@ func (l *UpdateAPILogic) UpdateAPI(in *registration.UpdateAPIReq) (*registration } } else { // 璁板綍鏃ュ織 - l.Logger.Errorf("requestId: [%s], query api info error: %s", in.RequestId, err.Error) + l.Logger.Errorf("requestId: [%s], query api info error: %s", in.RequestId, err.Error()) return ®istration.UpdateAPIResp{ Code: int32(code.ErrInvalidAssetId), Msg: code.ErrInvalidAssetId.String(), diff --git a/internal/server/registrationserver.go b/internal/server/registrationserver.go index 8d23110bf9a2da96f73e8344db270dac64aeb642..b1808ac21a9888872afacd0906469944c0303eee 100644 --- a/internal/server/registrationserver.go +++ b/internal/server/registrationserver.go @@ -178,6 +178,12 @@ func (s *RegistrationServer) UpdateAsset(ctx context.Context, in *registrationpb return l.UpdateAsset(in) } +// 15. API杩炴帴娴嬭瘯 +func (s *RegistrationServer) APITest(ctx context.Context, in *registrationpb.APITestReq) (*registrationpb.APITestResp, error) { + l := logic.NewAPITestLogic(ctx, s.svcCtx) + return l.APITest(in) +} + // 1. 鑾峰彇鍖呭惈闅愮淇℃伅鐨勬暟鎹簮杩炴帴淇℃伅鎺ュ彛 func (s *RegistrationServer) GetPrivateDBConnInfo(ctx context.Context, in *registrationpb.GetPrivateDBConnInfoReq) (*registrationpb.GetPrivateDBConnInfoResp, error) { l := logic.NewGetPrivateDBConnInfoLogic(ctx, s.svcCtx) diff --git a/internal/utils/generator.go b/internal/utils/generator.go index 1df7675408e46d36d39601205f23e37416b4c738..fadac096078936951d0d28088d183db1b82eb3b7 100644 --- a/internal/utils/generator.go +++ b/internal/utils/generator.go @@ -38,6 +38,11 @@ func (g *AssetNumberGenerator) GenerateAssetNumber(platformId string) string { indexStr := fmt.Sprintf("%05d", index) randChar := strconv.Itoa(rand.Intn(9000) + 1000) - identifier := platformId + date + indexStr + randChar + prefix := "TEST" + if platformId != "" { + prefix = platformId + } + + identifier := prefix + date + indexStr + randChar return identifier } diff --git a/pb/registrationpb/registration.pb.go b/pb/registrationpb/registration.pb.go index b092ce81feba382080aa4fa32520928ecb5a6e02..33fc4181867cbcbb8a0fd0a0dcd82c95387ccfdf 100644 --- a/pb/registrationpb/registration.pb.go +++ b/pb/registrationpb/registration.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.12 +// protoc v4.25.3 // source: proto/registration.proto // 琛ㄧず褰撳墠 proto 鏂囦欢灞炰簬 protobuf 鍖咃紝瀹冧笉鏄� go 鏂囦欢鐨� package @@ -2580,14 +2580,14 @@ type AssetDataInfo struct { SourceTypeName string `protobuf:"bytes,2,opt,name=source_type_name,json=sourceTypeName,proto3" json:"source_type_name,omitempty"` // 鍙栧緱鏂瑰紡鍚嶇О SourceWay string `protobuf:"bytes,3,opt,name=source_way,json=sourceWay,proto3" json:"source_way,omitempty"` // 鏉ユ簮娓犻亾 DesensitizationWay string `protobuf:"bytes,4,opt,name=desensitization_way,json=desensitizationWay,proto3" json:"desensitization_way,omitempty"` // 鑴辨晱鏂瑰紡 - ScaleType int32 `protobuf:"varint,5,opt,name=scale_type,json=scaleType,proto3" json:"scale_type,omitempty"` // 鏁版嵁瑙勬ā绫诲瀷 + ScaleType int32 `protobuf:"varint,5,opt,name=scale_type,json=scaleType,proto3" json:"scale_type,omitempty"` // 鏁版嵁瑙勬ā绫诲瀷:1鏉★紝2M锛�3G ScaleTypeName string `protobuf:"bytes,6,opt,name=scale_type_name,json=scaleTypeName,proto3" json:"scale_type_name,omitempty"` // 鏁版嵁瑙勬ā绫诲瀷鍚嶇О Scale int32 `protobuf:"varint,7,opt,name=scale,proto3" json:"scale,omitempty"` // 鏁版嵁瑙勬ā DataFormat int32 `protobuf:"varint,8,opt,name=data_format,json=dataFormat,proto3" json:"data_format,omitempty"` // 瀛樺偍鏍煎紡 DataFormatName string `protobuf:"bytes,9,opt,name=data_format_name,json=dataFormatName,proto3" json:"data_format_name,omitempty"` // 瀛樺偍鏍煎紡鍚嶇О UpdateType int32 `protobuf:"varint,10,opt,name=update_type,json=updateType,proto3" json:"update_type,omitempty"` // 鏇存柊鍛ㄦ湡绫诲瀷锛�1闈欐€侊紝2瀹炴椂锛�3鍛ㄦ湡 Cycle int32 `protobuf:"varint,12,opt,name=cycle,proto3" json:"cycle,omitempty"` // 鏇存柊鍛ㄦ湡 - Unit int32 `protobuf:"varint,13,opt,name=unit,proto3" json:"unit,omitempty"` // 鏇存柊鍛ㄦ湡鍗曚綅 + Unit int32 `protobuf:"varint,13,opt,name=unit,proto3" json:"unit,omitempty"` // 鏇存柊鍛ㄦ湡鍗曚綅: 1鍒嗭紝2鏃讹紝3澶� UnitName string `protobuf:"bytes,14,opt,name=unit_name,json=unitName,proto3" json:"unit_name,omitempty"` // 鏇存柊鍛ㄦ湡鍗曚綅鍚嶇О TimeSpan string `protobuf:"bytes,15,opt,name=time_span,json=timeSpan,proto3" json:"time_span,omitempty"` // 鏃堕棿璺ㄥ害 DataSample string `protobuf:"bytes,16,opt,name=data_sample,json=dataSample,proto3" json:"data_sample,omitempty"` // 鏁版嵁浜у搧绀轰緥 @@ -6066,6 +6066,141 @@ func (x *UpdateAssetResp) GetData() string { return "" } +// 15. API杩炴帴娴嬭瘯 +type APITestReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + Header string `protobuf:"bytes,3,opt,name=header,proto3" json:"header,omitempty"` // header + Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` // API鍦板潃 + Method string `protobuf:"bytes,5,opt,name=method,proto3" json:"method,omitempty"` // 璇锋眰鏂瑰紡锛� GET銆丳OST绛� +} + +func (x *APITestReq) Reset() { + *x = APITestReq{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_registration_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *APITestReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*APITestReq) ProtoMessage() {} + +func (x *APITestReq) ProtoReflect() protoreflect.Message { + mi := &file_proto_registration_proto_msgTypes[83] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use APITestReq.ProtoReflect.Descriptor instead. +func (*APITestReq) Descriptor() ([]byte, []int) { + return file_proto_registration_proto_rawDescGZIP(), []int{83} +} + +func (x *APITestReq) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *APITestReq) GetHeader() string { + if x != nil { + return x.Header + } + return "" +} + +func (x *APITestReq) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *APITestReq) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +type APITestResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data string `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *APITestResp) Reset() { + *x = APITestResp{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_registration_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *APITestResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*APITestResp) ProtoMessage() {} + +func (x *APITestResp) ProtoReflect() protoreflect.Message { + mi := &file_proto_registration_proto_msgTypes[84] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use APITestResp.ProtoReflect.Descriptor instead. +func (*APITestResp) Descriptor() ([]byte, []int) { + return file_proto_registration_proto_rawDescGZIP(), []int{84} +} + +func (x *APITestResp) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *APITestResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *APITestResp) GetData() string { + if x != nil { + return x.Data + } + return "" +} + // 1. 鑾峰彇鍖呭惈闅愮淇℃伅鐨勬暟鎹簮杩炴帴淇℃伅鎺ュ彛 type GetPrivateDBConnInfoReq struct { state protoimpl.MessageState @@ -6079,7 +6214,7 @@ type GetPrivateDBConnInfoReq struct { func (x *GetPrivateDBConnInfoReq) Reset() { *x = GetPrivateDBConnInfoReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[83] + mi := &file_proto_registration_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6092,7 +6227,7 @@ func (x *GetPrivateDBConnInfoReq) String() string { func (*GetPrivateDBConnInfoReq) ProtoMessage() {} func (x *GetPrivateDBConnInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[83] + mi := &file_proto_registration_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6105,7 +6240,7 @@ func (x *GetPrivateDBConnInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPrivateDBConnInfoReq.ProtoReflect.Descriptor instead. func (*GetPrivateDBConnInfoReq) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{83} + return file_proto_registration_proto_rawDescGZIP(), []int{85} } func (x *GetPrivateDBConnInfoReq) GetRequestId() string { @@ -6135,7 +6270,7 @@ type GetPrivateDBConnInfoResp struct { func (x *GetPrivateDBConnInfoResp) Reset() { *x = GetPrivateDBConnInfoResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[84] + mi := &file_proto_registration_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6148,7 +6283,7 @@ func (x *GetPrivateDBConnInfoResp) String() string { func (*GetPrivateDBConnInfoResp) ProtoMessage() {} func (x *GetPrivateDBConnInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[84] + mi := &file_proto_registration_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6161,7 +6296,7 @@ func (x *GetPrivateDBConnInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPrivateDBConnInfoResp.ProtoReflect.Descriptor instead. func (*GetPrivateDBConnInfoResp) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{84} + return file_proto_registration_proto_rawDescGZIP(), []int{86} } func (x *GetPrivateDBConnInfoResp) GetCode() int32 { @@ -6205,7 +6340,7 @@ type PrivateDBConnInfo struct { func (x *PrivateDBConnInfo) Reset() { *x = PrivateDBConnInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[85] + mi := &file_proto_registration_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6218,7 +6353,7 @@ func (x *PrivateDBConnInfo) String() string { func (*PrivateDBConnInfo) ProtoMessage() {} func (x *PrivateDBConnInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[85] + mi := &file_proto_registration_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6231,7 +6366,7 @@ func (x *PrivateDBConnInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PrivateDBConnInfo.ProtoReflect.Descriptor instead. func (*PrivateDBConnInfo) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{85} + return file_proto_registration_proto_rawDescGZIP(), []int{87} } func (x *PrivateDBConnInfo) GetDbConnId() int32 { @@ -6319,7 +6454,7 @@ type GetPrivateAssetListReq struct { func (x *GetPrivateAssetListReq) Reset() { *x = GetPrivateAssetListReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[86] + mi := &file_proto_registration_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6332,7 +6467,7 @@ func (x *GetPrivateAssetListReq) String() string { func (*GetPrivateAssetListReq) ProtoMessage() {} func (x *GetPrivateAssetListReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[86] + mi := &file_proto_registration_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6345,7 +6480,7 @@ func (x *GetPrivateAssetListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPrivateAssetListReq.ProtoReflect.Descriptor instead. func (*GetPrivateAssetListReq) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{86} + return file_proto_registration_proto_rawDescGZIP(), []int{88} } func (x *GetPrivateAssetListReq) GetRequestId() string { @@ -6389,7 +6524,7 @@ type GetPrivateAssetListResp struct { func (x *GetPrivateAssetListResp) Reset() { *x = GetPrivateAssetListResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[87] + mi := &file_proto_registration_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6402,7 +6537,7 @@ func (x *GetPrivateAssetListResp) String() string { func (*GetPrivateAssetListResp) ProtoMessage() {} func (x *GetPrivateAssetListResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[87] + mi := &file_proto_registration_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6415,7 +6550,7 @@ func (x *GetPrivateAssetListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPrivateAssetListResp.ProtoReflect.Descriptor instead. func (*GetPrivateAssetListResp) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{87} + return file_proto_registration_proto_rawDescGZIP(), []int{89} } func (x *GetPrivateAssetListResp) GetCode() int32 { @@ -6452,7 +6587,7 @@ type GetPrivateAssetInfoReq struct { func (x *GetPrivateAssetInfoReq) Reset() { *x = GetPrivateAssetInfoReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[88] + mi := &file_proto_registration_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6465,7 +6600,7 @@ func (x *GetPrivateAssetInfoReq) String() string { func (*GetPrivateAssetInfoReq) ProtoMessage() {} func (x *GetPrivateAssetInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[88] + mi := &file_proto_registration_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6478,7 +6613,7 @@ func (x *GetPrivateAssetInfoReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPrivateAssetInfoReq.ProtoReflect.Descriptor instead. func (*GetPrivateAssetInfoReq) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{88} + return file_proto_registration_proto_rawDescGZIP(), []int{90} } func (x *GetPrivateAssetInfoReq) GetRequestId() string { @@ -6508,7 +6643,7 @@ type GetPrivateAssetInfoResp struct { func (x *GetPrivateAssetInfoResp) Reset() { *x = GetPrivateAssetInfoResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[89] + mi := &file_proto_registration_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6521,7 +6656,7 @@ func (x *GetPrivateAssetInfoResp) String() string { func (*GetPrivateAssetInfoResp) ProtoMessage() {} func (x *GetPrivateAssetInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[89] + mi := &file_proto_registration_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6534,7 +6669,7 @@ func (x *GetPrivateAssetInfoResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPrivateAssetInfoResp.ProtoReflect.Descriptor instead. func (*GetPrivateAssetInfoResp) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{89} + return file_proto_registration_proto_rawDescGZIP(), []int{91} } func (x *GetPrivateAssetInfoResp) GetCode() int32 { @@ -6571,7 +6706,7 @@ type GetPrivateAssetInfoByEnNameReq struct { func (x *GetPrivateAssetInfoByEnNameReq) Reset() { *x = GetPrivateAssetInfoByEnNameReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[90] + mi := &file_proto_registration_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6584,7 +6719,7 @@ func (x *GetPrivateAssetInfoByEnNameReq) String() string { func (*GetPrivateAssetInfoByEnNameReq) ProtoMessage() {} func (x *GetPrivateAssetInfoByEnNameReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[90] + mi := &file_proto_registration_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6597,7 +6732,7 @@ func (x *GetPrivateAssetInfoByEnNameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPrivateAssetInfoByEnNameReq.ProtoReflect.Descriptor instead. func (*GetPrivateAssetInfoByEnNameReq) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{90} + return file_proto_registration_proto_rawDescGZIP(), []int{92} } func (x *GetPrivateAssetInfoByEnNameReq) GetRequestId() string { @@ -6627,7 +6762,7 @@ type GetPrivateAssetInfoByEnNameResp struct { func (x *GetPrivateAssetInfoByEnNameResp) Reset() { *x = GetPrivateAssetInfoByEnNameResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[91] + mi := &file_proto_registration_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6640,7 +6775,7 @@ func (x *GetPrivateAssetInfoByEnNameResp) String() string { func (*GetPrivateAssetInfoByEnNameResp) ProtoMessage() {} func (x *GetPrivateAssetInfoByEnNameResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[91] + mi := &file_proto_registration_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6653,7 +6788,7 @@ func (x *GetPrivateAssetInfoByEnNameResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPrivateAssetInfoByEnNameResp.ProtoReflect.Descriptor instead. func (*GetPrivateAssetInfoByEnNameResp) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{91} + return file_proto_registration_proto_rawDescGZIP(), []int{93} } func (x *GetPrivateAssetInfoByEnNameResp) GetCode() int32 { @@ -6689,7 +6824,7 @@ type GetPrivateEnterpriseAssetReq struct { func (x *GetPrivateEnterpriseAssetReq) Reset() { *x = GetPrivateEnterpriseAssetReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[92] + mi := &file_proto_registration_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6702,7 +6837,7 @@ func (x *GetPrivateEnterpriseAssetReq) String() string { func (*GetPrivateEnterpriseAssetReq) ProtoMessage() {} func (x *GetPrivateEnterpriseAssetReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[92] + mi := &file_proto_registration_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6715,7 +6850,7 @@ func (x *GetPrivateEnterpriseAssetReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPrivateEnterpriseAssetReq.ProtoReflect.Descriptor instead. func (*GetPrivateEnterpriseAssetReq) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{92} + return file_proto_registration_proto_rawDescGZIP(), []int{94} } func (x *GetPrivateEnterpriseAssetReq) GetAssetName() string { @@ -6738,7 +6873,7 @@ type GetPrivateEnterpriseAssetResp struct { func (x *GetPrivateEnterpriseAssetResp) Reset() { *x = GetPrivateEnterpriseAssetResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[93] + mi := &file_proto_registration_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6751,7 +6886,7 @@ func (x *GetPrivateEnterpriseAssetResp) String() string { func (*GetPrivateEnterpriseAssetResp) ProtoMessage() {} func (x *GetPrivateEnterpriseAssetResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[93] + mi := &file_proto_registration_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6764,7 +6899,7 @@ func (x *GetPrivateEnterpriseAssetResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPrivateEnterpriseAssetResp.ProtoReflect.Descriptor instead. func (*GetPrivateEnterpriseAssetResp) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{93} + return file_proto_registration_proto_rawDescGZIP(), []int{95} } func (x *GetPrivateEnterpriseAssetResp) GetCode() int32 { @@ -6800,7 +6935,7 @@ type PrivateEnterprise struct { func (x *PrivateEnterprise) Reset() { *x = PrivateEnterprise{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[94] + mi := &file_proto_registration_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6813,7 +6948,7 @@ func (x *PrivateEnterprise) String() string { func (*PrivateEnterprise) ProtoMessage() {} func (x *PrivateEnterprise) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[94] + mi := &file_proto_registration_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6826,7 +6961,7 @@ func (x *PrivateEnterprise) ProtoReflect() protoreflect.Message { // Deprecated: Use PrivateEnterprise.ProtoReflect.Descriptor instead. func (*PrivateEnterprise) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{94} + return file_proto_registration_proto_rawDescGZIP(), []int{96} } func (x *PrivateEnterprise) GetEnterpriseName() string { @@ -6857,7 +6992,7 @@ type EnterpriseAsset struct { func (x *EnterpriseAsset) Reset() { *x = EnterpriseAsset{} if protoimpl.UnsafeEnabled { - mi := &file_proto_registration_proto_msgTypes[95] + mi := &file_proto_registration_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6870,7 +7005,7 @@ func (x *EnterpriseAsset) String() string { func (*EnterpriseAsset) ProtoMessage() {} func (x *EnterpriseAsset) ProtoReflect() protoreflect.Message { - mi := &file_proto_registration_proto_msgTypes[95] + mi := &file_proto_registration_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6883,7 +7018,7 @@ func (x *EnterpriseAsset) ProtoReflect() protoreflect.Message { // Deprecated: Use EnterpriseAsset.ProtoReflect.Descriptor instead. func (*EnterpriseAsset) Descriptor() ([]byte, []int) { - return file_proto_registration_proto_rawDescGZIP(), []int{95} + return file_proto_registration_proto_rawDescGZIP(), []int{97} } func (x *EnterpriseAsset) GetAssetId() int32 { @@ -7691,252 +7826,267 @@ var file_proto_registration_proto_rawDesc = []byte{ 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x56, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, - 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1c, - 0x0a, 0x0a, 0x64, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x64, 0x62, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x22, 0x6e, 0x0a, 0x18, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a, 0x0a, 0x41, 0x50, 0x49, 0x54, 0x65, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x41, 0x50, 0x49, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x56, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2c, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, - 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x95, 0x02, 0x0a, - 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x0a, 0x64, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x62, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x64, - 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, - 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, - 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, - 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x07, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x65, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x64, 0x62, 0x5f, 0x63, 0x6f, 0x6e, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x62, 0x43, 0x6f, + 0x6e, 0x6e, 0x49, 0x64, 0x22, 0x6e, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x52, 0x0a, 0x16, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, - 0x22, 0x65, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x63, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, - 0x45, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x5f, 0x65, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6d, 0x0a, 0x1f, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x45, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x3d, 0x0a, 0x1c, 0x47, - 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, - 0x69, 0x73, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x73, 0x0a, 0x1d, 0x47, 0x65, - 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x73, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x73, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, - 0x72, 0x69, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, - 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, - 0x72, 0x69, 0x73, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x0f, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, - 0x69, 0x73, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, - 0x65, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x32, 0x84, 0x12, 0x0a, 0x0c, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x95, 0x02, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x0a, 0x64, 0x62, + 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x64, 0x62, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x9e, 0x01, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x65, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x24, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x52, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1d, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, + 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x63, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x45, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, + 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, + 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x45, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6d, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x45, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x24, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x3d, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x73, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, + 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x73, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x92, 0x01, 0x0a, + 0x0f, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x12, 0x19, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, + 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x32, 0xb6, 0x12, 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, + 0x6e, 0x6e, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x52, - 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x47, - 0x65, 0x74, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, - 0x74, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x42, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x42, 0x43, 0x6f, - 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x42, 0x43, - 0x6f, 0x6e, 0x6e, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x72, + 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, + 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x42, + 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x42, 0x43, + 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x12, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x44, 0x42, 0x43, 0x6f, - 0x6e, 0x6e, 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x44, - 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x54, 0x65, 0x73, 0x74, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x48, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, - 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x4b, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x57, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x55, 0x6e, 0x69, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5d, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x42, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, - 0x44, 0x42, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x42, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x19, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x53, 0x61, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x53, 0x61, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x61, 0x76, 0x65, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x30, 0x0a, 0x07, 0x53, 0x61, 0x76, 0x65, 0x41, 0x50, 0x49, 0x12, 0x11, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x1a, 0x12, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x41, 0x50, 0x49, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, - 0x50, 0x49, 0x12, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, - 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, - 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x36, 0x0a, 0x09, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x13, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x45, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x73, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x57, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, + 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0a, + 0x54, 0x65, 0x73, 0x74, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x12, 0x14, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, 0x52, 0x65, 0x71, + 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x44, 0x42, 0x43, + 0x6f, 0x6e, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x54, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x57, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, + 0x63, 0x61, 0x6c, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5d, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x55, + 0x6e, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x55, 0x6e, + 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x79, 0x63, 0x6c, 0x65, + 0x55, 0x6e, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x44, 0x42, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x42, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x42, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x53, + 0x61, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, + 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x07, 0x53, 0x61, 0x76, 0x65, + 0x41, 0x50, 0x49, 0x12, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x61, 0x76, 0x65, + 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, + 0x61, 0x76, 0x65, 0x41, 0x50, 0x49, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, + 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x12, 0x13, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x50, 0x49, 0x52, 0x65, 0x71, 0x1a, + 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x50, + 0x49, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x12, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x36, 0x0a, 0x09, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x13, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x3c, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x15, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x07, 0x41, 0x50, 0x49, 0x54, 0x65, 0x73, 0x74, 0x12, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x41, 0x50, 0x49, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x50, 0x49, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x57, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x42, 0x43, + 0x6f, 0x6e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x42, 0x43, 0x6f, 0x6e, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6c, 0x0a, 0x1b, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x42, 0x79, 0x45, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x45, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x45, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x66, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, - 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x73, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x42, 0x12, 0x5a, 0x10, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x6c, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x45, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, + 0x79, 0x45, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x45, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x66, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, + 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, + 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x12, 0x5a, 0x10, 0x2e, 0x2f, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x62, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -7951,7 +8101,7 @@ func file_proto_registration_proto_rawDescGZIP() []byte { return file_proto_registration_proto_rawDescData } -var file_proto_registration_proto_msgTypes = make([]protoimpl.MessageInfo, 96) +var file_proto_registration_proto_msgTypes = make([]protoimpl.MessageInfo, 98) var file_proto_registration_proto_goTypes = []interface{}{ (*CreateDBConnReq)(nil), // 0: proto.CreateDBConnReq (*CreateDBConnResp)(nil), // 1: proto.CreateDBConnResp @@ -8036,26 +8186,28 @@ var file_proto_registration_proto_goTypes = []interface{}{ (*EnterpriseInfo)(nil), // 80: proto.EnterpriseInfo (*UpdateAssetReq)(nil), // 81: proto.UpdateAssetReq (*UpdateAssetResp)(nil), // 82: proto.UpdateAssetResp - (*GetPrivateDBConnInfoReq)(nil), // 83: proto.GetPrivateDBConnInfoReq - (*GetPrivateDBConnInfoResp)(nil), // 84: proto.GetPrivateDBConnInfoResp - (*PrivateDBConnInfo)(nil), // 85: proto.PrivateDBConnInfo - (*GetPrivateAssetListReq)(nil), // 86: proto.GetPrivateAssetListReq - (*GetPrivateAssetListResp)(nil), // 87: proto.GetPrivateAssetListResp - (*GetPrivateAssetInfoReq)(nil), // 88: proto.GetPrivateAssetInfoReq - (*GetPrivateAssetInfoResp)(nil), // 89: proto.GetPrivateAssetInfoResp - (*GetPrivateAssetInfoByEnNameReq)(nil), // 90: proto.GetPrivateAssetInfoByEnNameReq - (*GetPrivateAssetInfoByEnNameResp)(nil), // 91: proto.GetPrivateAssetInfoByEnNameResp - (*GetPrivateEnterpriseAssetReq)(nil), // 92: proto.GetPrivateEnterpriseAssetReq - (*GetPrivateEnterpriseAssetResp)(nil), // 93: proto.GetPrivateEnterpriseAssetResp - (*PrivateEnterprise)(nil), // 94: proto.PrivateEnterprise - (*EnterpriseAsset)(nil), // 95: proto.EnterpriseAsset - (*commonpb.Filter)(nil), // 96: proto.Filter - (*commonpb.Pagination)(nil), // 97: proto.Pagination + (*APITestReq)(nil), // 83: proto.APITestReq + (*APITestResp)(nil), // 84: proto.APITestResp + (*GetPrivateDBConnInfoReq)(nil), // 85: proto.GetPrivateDBConnInfoReq + (*GetPrivateDBConnInfoResp)(nil), // 86: proto.GetPrivateDBConnInfoResp + (*PrivateDBConnInfo)(nil), // 87: proto.PrivateDBConnInfo + (*GetPrivateAssetListReq)(nil), // 88: proto.GetPrivateAssetListReq + (*GetPrivateAssetListResp)(nil), // 89: proto.GetPrivateAssetListResp + (*GetPrivateAssetInfoReq)(nil), // 90: proto.GetPrivateAssetInfoReq + (*GetPrivateAssetInfoResp)(nil), // 91: proto.GetPrivateAssetInfoResp + (*GetPrivateAssetInfoByEnNameReq)(nil), // 92: proto.GetPrivateAssetInfoByEnNameReq + (*GetPrivateAssetInfoByEnNameResp)(nil), // 93: proto.GetPrivateAssetInfoByEnNameResp + (*GetPrivateEnterpriseAssetReq)(nil), // 94: proto.GetPrivateEnterpriseAssetReq + (*GetPrivateEnterpriseAssetResp)(nil), // 95: proto.GetPrivateEnterpriseAssetResp + (*PrivateEnterprise)(nil), // 96: proto.PrivateEnterprise + (*EnterpriseAsset)(nil), // 97: proto.EnterpriseAsset + (*commonpb.Filter)(nil), // 98: proto.Filter + (*commonpb.Pagination)(nil), // 99: proto.Pagination } var file_proto_registration_proto_depIdxs = []int32{ - 96, // 0: proto.GetDBConnListReq.filters:type_name -> proto.Filter + 98, // 0: proto.GetDBConnListReq.filters:type_name -> proto.Filter 4, // 1: proto.GetDBConnListResp.data:type_name -> proto.DBConnListData - 97, // 2: proto.DBConnListData.pagination:type_name -> proto.Pagination + 99, // 2: proto.DBConnListData.pagination:type_name -> proto.Pagination 5, // 3: proto.DBConnListData.list:type_name -> proto.DBConn 8, // 4: proto.GetDBConnInfoResp.data:type_name -> proto.DBConnInfo 15, // 5: proto.GetIndustryListResp.data:type_name -> proto.IndustryItem @@ -8074,9 +8226,9 @@ var file_proto_registration_proto_depIdxs = []int32{ 47, // 18: proto.SaveTableColumnsReq.list:type_name -> proto.SaveTableColumnItem 47, // 19: proto.UpdateTableColumnsReq.list:type_name -> proto.SaveTableColumnItem 59, // 20: proto.AssetUploadResp.data:type_name -> proto.AssetUpload - 96, // 21: proto.AssetListReq.filters:type_name -> proto.Filter + 98, // 21: proto.AssetListReq.filters:type_name -> proto.Filter 64, // 22: proto.AssetListResp.data:type_name -> proto.AssetList - 97, // 23: proto.AssetList.pagination:type_name -> proto.Pagination + 99, // 23: proto.AssetList.pagination:type_name -> proto.Pagination 65, // 24: proto.AssetList.list:type_name -> proto.AssetItem 66, // 25: proto.AssetItem.asset_users:type_name -> proto.AssetUser 67, // 26: proto.AssetItem.asset_operators:type_name -> proto.AssetOperator @@ -8094,20 +8246,20 @@ var file_proto_registration_proto_depIdxs = []int32{ 8, // 38: proto.DataSetInfo.db_conn_info:type_name -> proto.DBConnInfo 47, // 39: proto.DataSetInfo.items:type_name -> proto.SaveTableColumnItem 74, // 40: proto.CertificationInfo.file_info:type_name -> proto.FileInfo - 96, // 41: proto.GetEnterpriseListReq.filters:type_name -> proto.Filter + 98, // 41: proto.GetEnterpriseListReq.filters:type_name -> proto.Filter 79, // 42: proto.GetEnterpriseListResp.data:type_name -> proto.EnterpriseList - 97, // 43: proto.EnterpriseList.pagination:type_name -> proto.Pagination + 99, // 43: proto.EnterpriseList.pagination:type_name -> proto.Pagination 80, // 44: proto.EnterpriseList.list:type_name -> proto.EnterpriseInfo 36, // 45: proto.UpdateAssetReq.asset_base_info:type_name -> proto.AssetBaseInfo 37, // 46: proto.UpdateAssetReq.asset_data_info:type_name -> proto.AssetDataInfo 38, // 47: proto.UpdateAssetReq.asset_file_info:type_name -> proto.AssetFileInfo - 85, // 48: proto.GetPrivateDBConnInfoResp.data:type_name -> proto.PrivateDBConnInfo - 96, // 49: proto.GetPrivateAssetListReq.filters:type_name -> proto.Filter + 87, // 48: proto.GetPrivateDBConnInfoResp.data:type_name -> proto.PrivateDBConnInfo + 98, // 49: proto.GetPrivateAssetListReq.filters:type_name -> proto.Filter 64, // 50: proto.GetPrivateAssetListResp.data:type_name -> proto.AssetList 70, // 51: proto.GetPrivateAssetInfoResp.data:type_name -> proto.AssetInfo 70, // 52: proto.GetPrivateAssetInfoByEnNameResp.data:type_name -> proto.AssetInfo - 94, // 53: proto.GetPrivateEnterpriseAssetResp.data:type_name -> proto.PrivateEnterprise - 95, // 54: proto.PrivateEnterprise.asset_list:type_name -> proto.EnterpriseAsset + 96, // 53: proto.GetPrivateEnterpriseAssetResp.data:type_name -> proto.PrivateEnterprise + 97, // 54: proto.PrivateEnterprise.asset_list:type_name -> proto.EnterpriseAsset 0, // 55: proto.Registration.CreateDBConn:input_type -> proto.CreateDBConnReq 2, // 56: proto.Registration.GetDBConnList:input_type -> proto.GetDBConnListReq 6, // 57: proto.Registration.GetDBConnInfo:input_type -> proto.GetDBConnInfoReq @@ -8134,44 +8286,46 @@ var file_proto_registration_proto_depIdxs = []int32{ 68, // 78: proto.Registration.AssetInfo:input_type -> proto.AssetInfoReq 77, // 79: proto.Registration.GetEnterpriseList:input_type -> proto.GetEnterpriseListReq 81, // 80: proto.Registration.UpdateAsset:input_type -> proto.UpdateAssetReq - 83, // 81: proto.Registration.GetPrivateDBConnInfo:input_type -> proto.GetPrivateDBConnInfoReq - 86, // 82: proto.Registration.GetPrivateAssetList:input_type -> proto.GetPrivateAssetListReq - 88, // 83: proto.Registration.GetPrivateAssetInfo:input_type -> proto.GetPrivateAssetInfoReq - 90, // 84: proto.Registration.GetPrivateAssetInfoByEnName:input_type -> proto.GetPrivateAssetInfoByEnNameReq - 92, // 85: proto.Registration.GetPrivateEnterpriseAsset:input_type -> proto.GetPrivateEnterpriseAssetReq - 1, // 86: proto.Registration.CreateDBConn:output_type -> proto.CreateDBConnResp - 3, // 87: proto.Registration.GetDBConnList:output_type -> proto.GetDBConnListResp - 7, // 88: proto.Registration.GetDBConnInfo:output_type -> proto.GetDBConnInfoResp - 10, // 89: proto.Registration.DeleteDBConn:output_type -> proto.DeleteDBConnResp - 12, // 90: proto.Registration.TestDBConn:output_type -> proto.TestDBConnResp - 14, // 91: proto.Registration.GetIndustryList:output_type -> proto.GetIndustryListResp - 17, // 92: proto.Registration.GetUserCategoryList:output_type -> proto.GetUserCategoryListResp - 20, // 93: proto.Registration.GetAssetTypeList:output_type -> proto.GetAssetTypeListResp - 23, // 94: proto.Registration.GetDataFormatList:output_type -> proto.GetDataFormatListResp - 26, // 95: proto.Registration.GetSourceTypeList:output_type -> proto.GetSourceTypeListResp - 29, // 96: proto.Registration.GetDataScaleUnitList:output_type -> proto.GetDataScaleUnitListResp - 32, // 97: proto.Registration.GetUpdateCycleUnitList:output_type -> proto.GetUpdateCycleUnitListResp - 39, // 98: proto.Registration.CreateAsset:output_type -> proto.CreateAssetResp - 42, // 99: proto.Registration.GetDBTableList:output_type -> proto.GetDBTableListResp - 44, // 100: proto.Registration.GetTableColumns:output_type -> proto.GetTableColumnsResp - 48, // 101: proto.Registration.SaveTableColumns:output_type -> proto.SaveTableColumnsResp - 50, // 102: proto.Registration.SaveAPI:output_type -> proto.SaveAPIResp - 52, // 103: proto.Registration.UpdateTableColumns:output_type -> proto.UpdateTableColumnsResp - 54, // 104: proto.Registration.updateAPI:output_type -> proto.updateAPIResp - 56, // 105: proto.Registration.DeleteAsset:output_type -> proto.DeleteAssetResp - 58, // 106: proto.Registration.AssetUpload:output_type -> proto.AssetUploadResp - 61, // 107: proto.Registration.certificate:output_type -> proto.certificateResp - 63, // 108: proto.Registration.AssetList:output_type -> proto.AssetListResp - 69, // 109: proto.Registration.AssetInfo:output_type -> proto.AssetInfoResp - 78, // 110: proto.Registration.GetEnterpriseList:output_type -> proto.GetEnterpriseListResp - 82, // 111: proto.Registration.UpdateAsset:output_type -> proto.UpdateAssetResp - 84, // 112: proto.Registration.GetPrivateDBConnInfo:output_type -> proto.GetPrivateDBConnInfoResp - 87, // 113: proto.Registration.GetPrivateAssetList:output_type -> proto.GetPrivateAssetListResp - 89, // 114: proto.Registration.GetPrivateAssetInfo:output_type -> proto.GetPrivateAssetInfoResp - 91, // 115: proto.Registration.GetPrivateAssetInfoByEnName:output_type -> proto.GetPrivateAssetInfoByEnNameResp - 93, // 116: proto.Registration.GetPrivateEnterpriseAsset:output_type -> proto.GetPrivateEnterpriseAssetResp - 86, // [86:117] is the sub-list for method output_type - 55, // [55:86] is the sub-list for method input_type + 83, // 81: proto.Registration.APITest:input_type -> proto.APITestReq + 85, // 82: proto.Registration.GetPrivateDBConnInfo:input_type -> proto.GetPrivateDBConnInfoReq + 88, // 83: proto.Registration.GetPrivateAssetList:input_type -> proto.GetPrivateAssetListReq + 90, // 84: proto.Registration.GetPrivateAssetInfo:input_type -> proto.GetPrivateAssetInfoReq + 92, // 85: proto.Registration.GetPrivateAssetInfoByEnName:input_type -> proto.GetPrivateAssetInfoByEnNameReq + 94, // 86: proto.Registration.GetPrivateEnterpriseAsset:input_type -> proto.GetPrivateEnterpriseAssetReq + 1, // 87: proto.Registration.CreateDBConn:output_type -> proto.CreateDBConnResp + 3, // 88: proto.Registration.GetDBConnList:output_type -> proto.GetDBConnListResp + 7, // 89: proto.Registration.GetDBConnInfo:output_type -> proto.GetDBConnInfoResp + 10, // 90: proto.Registration.DeleteDBConn:output_type -> proto.DeleteDBConnResp + 12, // 91: proto.Registration.TestDBConn:output_type -> proto.TestDBConnResp + 14, // 92: proto.Registration.GetIndustryList:output_type -> proto.GetIndustryListResp + 17, // 93: proto.Registration.GetUserCategoryList:output_type -> proto.GetUserCategoryListResp + 20, // 94: proto.Registration.GetAssetTypeList:output_type -> proto.GetAssetTypeListResp + 23, // 95: proto.Registration.GetDataFormatList:output_type -> proto.GetDataFormatListResp + 26, // 96: proto.Registration.GetSourceTypeList:output_type -> proto.GetSourceTypeListResp + 29, // 97: proto.Registration.GetDataScaleUnitList:output_type -> proto.GetDataScaleUnitListResp + 32, // 98: proto.Registration.GetUpdateCycleUnitList:output_type -> proto.GetUpdateCycleUnitListResp + 39, // 99: proto.Registration.CreateAsset:output_type -> proto.CreateAssetResp + 42, // 100: proto.Registration.GetDBTableList:output_type -> proto.GetDBTableListResp + 44, // 101: proto.Registration.GetTableColumns:output_type -> proto.GetTableColumnsResp + 48, // 102: proto.Registration.SaveTableColumns:output_type -> proto.SaveTableColumnsResp + 50, // 103: proto.Registration.SaveAPI:output_type -> proto.SaveAPIResp + 52, // 104: proto.Registration.UpdateTableColumns:output_type -> proto.UpdateTableColumnsResp + 54, // 105: proto.Registration.updateAPI:output_type -> proto.updateAPIResp + 56, // 106: proto.Registration.DeleteAsset:output_type -> proto.DeleteAssetResp + 58, // 107: proto.Registration.AssetUpload:output_type -> proto.AssetUploadResp + 61, // 108: proto.Registration.certificate:output_type -> proto.certificateResp + 63, // 109: proto.Registration.AssetList:output_type -> proto.AssetListResp + 69, // 110: proto.Registration.AssetInfo:output_type -> proto.AssetInfoResp + 78, // 111: proto.Registration.GetEnterpriseList:output_type -> proto.GetEnterpriseListResp + 82, // 112: proto.Registration.UpdateAsset:output_type -> proto.UpdateAssetResp + 84, // 113: proto.Registration.APITest:output_type -> proto.APITestResp + 86, // 114: proto.Registration.GetPrivateDBConnInfo:output_type -> proto.GetPrivateDBConnInfoResp + 89, // 115: proto.Registration.GetPrivateAssetList:output_type -> proto.GetPrivateAssetListResp + 91, // 116: proto.Registration.GetPrivateAssetInfo:output_type -> proto.GetPrivateAssetInfoResp + 93, // 117: proto.Registration.GetPrivateAssetInfoByEnName:output_type -> proto.GetPrivateAssetInfoByEnNameResp + 95, // 118: proto.Registration.GetPrivateEnterpriseAsset:output_type -> proto.GetPrivateEnterpriseAssetResp + 87, // [87:119] is the sub-list for method output_type + 55, // [55:87] is the sub-list for method input_type 55, // [55:55] is the sub-list for extension type_name 55, // [55:55] is the sub-list for extension extendee 0, // [0:55] is the sub-list for field type_name @@ -9180,7 +9334,7 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPrivateDBConnInfoReq); i { + switch v := v.(*APITestReq); i { case 0: return &v.state case 1: @@ -9192,7 +9346,7 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPrivateDBConnInfoResp); i { + switch v := v.(*APITestResp); i { case 0: return &v.state case 1: @@ -9204,7 +9358,7 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrivateDBConnInfo); i { + switch v := v.(*GetPrivateDBConnInfoReq); i { case 0: return &v.state case 1: @@ -9216,7 +9370,7 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPrivateAssetListReq); i { + switch v := v.(*GetPrivateDBConnInfoResp); i { case 0: return &v.state case 1: @@ -9228,7 +9382,7 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPrivateAssetListResp); i { + switch v := v.(*PrivateDBConnInfo); i { case 0: return &v.state case 1: @@ -9240,7 +9394,7 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPrivateAssetInfoReq); i { + switch v := v.(*GetPrivateAssetListReq); i { case 0: return &v.state case 1: @@ -9252,7 +9406,7 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPrivateAssetInfoResp); i { + switch v := v.(*GetPrivateAssetListResp); i { case 0: return &v.state case 1: @@ -9264,7 +9418,7 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPrivateAssetInfoByEnNameReq); i { + switch v := v.(*GetPrivateAssetInfoReq); i { case 0: return &v.state case 1: @@ -9276,7 +9430,7 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPrivateAssetInfoByEnNameResp); i { + switch v := v.(*GetPrivateAssetInfoResp); i { case 0: return &v.state case 1: @@ -9288,7 +9442,7 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPrivateEnterpriseAssetReq); i { + switch v := v.(*GetPrivateAssetInfoByEnNameReq); i { case 0: return &v.state case 1: @@ -9300,7 +9454,7 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPrivateEnterpriseAssetResp); i { + switch v := v.(*GetPrivateAssetInfoByEnNameResp); i { case 0: return &v.state case 1: @@ -9312,7 +9466,7 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrivateEnterprise); i { + switch v := v.(*GetPrivateEnterpriseAssetReq); i { case 0: return &v.state case 1: @@ -9324,6 +9478,30 @@ func file_proto_registration_proto_init() { } } file_proto_registration_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPrivateEnterpriseAssetResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_registration_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PrivateEnterprise); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_registration_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EnterpriseAsset); i { case 0: return &v.state @@ -9342,7 +9520,7 @@ func file_proto_registration_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_proto_registration_proto_rawDesc, NumEnums: 0, - NumMessages: 96, + NumMessages: 98, NumExtensions: 0, NumServices: 1, }, diff --git a/pb/registrationpb/registration_grpc.pb.go b/pb/registrationpb/registration_grpc.pb.go index 48b0078bf1dd07c4f742f45e8274d6541393191b..488c6faf205d96fe07562c8654c0d29684775ef2 100644 --- a/pb/registrationpb/registration_grpc.pb.go +++ b/pb/registrationpb/registration_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.25.3 // source: proto/registration.proto // 琛ㄧず褰撳墠 proto 鏂囦欢灞炰簬 protobuf 鍖咃紝瀹冧笉鏄� go 鏂囦欢鐨� package @@ -48,6 +48,7 @@ const ( Registration_AssetInfo_FullMethodName = "/proto.Registration/AssetInfo" Registration_GetEnterpriseList_FullMethodName = "/proto.Registration/GetEnterpriseList" Registration_UpdateAsset_FullMethodName = "/proto.Registration/UpdateAsset" + Registration_APITest_FullMethodName = "/proto.Registration/APITest" Registration_GetPrivateDBConnInfo_FullMethodName = "/proto.Registration/GetPrivateDBConnInfo" Registration_GetPrivateAssetList_FullMethodName = "/proto.Registration/GetPrivateAssetList" Registration_GetPrivateAssetInfo_FullMethodName = "/proto.Registration/GetPrivateAssetInfo" @@ -114,6 +115,8 @@ type RegistrationClient interface { GetEnterpriseList(ctx context.Context, in *GetEnterpriseListReq, opts ...grpc.CallOption) (*GetEnterpriseListResp, error) // 14. 鏁版嵁璧勪骇缂栬緫鎺ュ彛 UpdateAsset(ctx context.Context, in *UpdateAssetReq, opts ...grpc.CallOption) (*UpdateAssetResp, error) + // 15. API杩炴帴娴嬭瘯 + APITest(ctx context.Context, in *APITestReq, opts ...grpc.CallOption) (*APITestResp, error) // 1. 鑾峰彇鍖呭惈闅愮淇℃伅鐨勬暟鎹簮杩炴帴淇℃伅鎺ュ彛 GetPrivateDBConnInfo(ctx context.Context, in *GetPrivateDBConnInfoReq, opts ...grpc.CallOption) (*GetPrivateDBConnInfoResp, error) // 2. 鑾峰彇閾句笂璧勪骇鍒楄〃 @@ -368,6 +371,15 @@ func (c *registrationClient) UpdateAsset(ctx context.Context, in *UpdateAssetReq return out, nil } +func (c *registrationClient) APITest(ctx context.Context, in *APITestReq, opts ...grpc.CallOption) (*APITestResp, error) { + out := new(APITestResp) + err := c.cc.Invoke(ctx, Registration_APITest_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *registrationClient) GetPrivateDBConnInfo(ctx context.Context, in *GetPrivateDBConnInfoReq, opts ...grpc.CallOption) (*GetPrivateDBConnInfoResp, error) { out := new(GetPrivateDBConnInfoResp) err := c.cc.Invoke(ctx, Registration_GetPrivateDBConnInfo_FullMethodName, in, out, opts...) @@ -472,6 +484,8 @@ type RegistrationServer interface { GetEnterpriseList(context.Context, *GetEnterpriseListReq) (*GetEnterpriseListResp, error) // 14. 鏁版嵁璧勪骇缂栬緫鎺ュ彛 UpdateAsset(context.Context, *UpdateAssetReq) (*UpdateAssetResp, error) + // 15. API杩炴帴娴嬭瘯 + APITest(context.Context, *APITestReq) (*APITestResp, error) // 1. 鑾峰彇鍖呭惈闅愮淇℃伅鐨勬暟鎹簮杩炴帴淇℃伅鎺ュ彛 GetPrivateDBConnInfo(context.Context, *GetPrivateDBConnInfoReq) (*GetPrivateDBConnInfoResp, error) // 2. 鑾峰彇閾句笂璧勪骇鍒楄〃 @@ -567,6 +581,9 @@ func (UnimplementedRegistrationServer) GetEnterpriseList(context.Context, *GetEn func (UnimplementedRegistrationServer) UpdateAsset(context.Context, *UpdateAssetReq) (*UpdateAssetResp, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateAsset not implemented") } +func (UnimplementedRegistrationServer) APITest(context.Context, *APITestReq) (*APITestResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method APITest not implemented") +} func (UnimplementedRegistrationServer) GetPrivateDBConnInfo(context.Context, *GetPrivateDBConnInfoReq) (*GetPrivateDBConnInfoResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPrivateDBConnInfo not implemented") } @@ -1063,6 +1080,24 @@ func _Registration_UpdateAsset_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Registration_APITest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(APITestReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistrationServer).APITest(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Registration_APITest_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistrationServer).APITest(ctx, req.(*APITestReq)) + } + return interceptor(ctx, in, info, handler) +} + func _Registration_GetPrivateDBConnInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetPrivateDBConnInfoReq) if err := dec(in); err != nil { @@ -1264,6 +1299,10 @@ var Registration_ServiceDesc = grpc.ServiceDesc{ MethodName: "UpdateAsset", Handler: _Registration_UpdateAsset_Handler, }, + { + MethodName: "APITest", + Handler: _Registration_APITest_Handler, + }, { MethodName: "GetPrivateDBConnInfo", Handler: _Registration_GetPrivateDBConnInfo_Handler, diff --git a/proto/registration.proto b/proto/registration.proto index 23e05d20675a224ebeaa257cf94247ec7d86382c..6e445fe24e604eb29a100ea2cf55265894c3a3e9 100644 --- a/proto/registration.proto +++ b/proto/registration.proto @@ -656,6 +656,19 @@ message UpdateAssetResp{ string data = 3; } +// 15. API杩炴帴娴嬭瘯 +message APITestReq{ + string request_id = 1; + string header = 3; // header + string url = 4; // API鍦板潃 + string method = 5; // 璇锋眰鏂瑰紡锛� GET銆丳OST绛� +} + +message APITestResp{ + int32 code = 1; + string msg = 2; + string data = 3; +} // ============== 闅愮璁$畻 ============== // @@ -829,6 +842,8 @@ service Registration { // 14. 鏁版嵁璧勪骇缂栬緫鎺ュ彛 rpc UpdateAsset(UpdateAssetReq) returns (UpdateAssetResp); + // 15. API杩炴帴娴嬭瘯 + rpc APITest(APITestReq) returns (APITestResp); // ============== 闅愮璁$畻 ============== // diff --git a/registration/registration.go b/registration/registration.go index 661a24321bafc11e88c24af604ee25c7f7f78d14..c622aa93701c353481e9489b61f8e0de9b41b8a9 100644 --- a/registration/registration.go +++ b/registration/registration.go @@ -13,6 +13,8 @@ import ( ) type ( + APITestReq = registrationpb.APITestReq + APITestResp = registrationpb.APITestResp AssetBaseInfo = registrationpb.AssetBaseInfo AssetDataInfo = registrationpb.AssetDataInfo AssetFileInfo = registrationpb.AssetFileInfo @@ -163,6 +165,8 @@ type ( GetEnterpriseList(ctx context.Context, in *GetEnterpriseListReq, opts ...grpc.CallOption) (*GetEnterpriseListResp, error) // 14. 鏁版嵁璧勪骇缂栬緫鎺ュ彛 UpdateAsset(ctx context.Context, in *UpdateAssetReq, opts ...grpc.CallOption) (*UpdateAssetResp, error) + // 15. API杩炴帴娴嬭瘯 + APITest(ctx context.Context, in *APITestReq, opts ...grpc.CallOption) (*APITestResp, error) // 1. 鑾峰彇鍖呭惈闅愮淇℃伅鐨勬暟鎹簮杩炴帴淇℃伅鎺ュ彛 GetPrivateDBConnInfo(ctx context.Context, in *GetPrivateDBConnInfoReq, opts ...grpc.CallOption) (*GetPrivateDBConnInfoResp, error) // 2. 鑾峰彇閾句笂璧勪骇鍒楄〃 @@ -342,6 +346,12 @@ func (m *defaultRegistration) UpdateAsset(ctx context.Context, in *UpdateAssetRe return client.UpdateAsset(ctx, in, opts...) } +// 15. API杩炴帴娴嬭瘯 +func (m *defaultRegistration) APITest(ctx context.Context, in *APITestReq, opts ...grpc.CallOption) (*APITestResp, error) { + client := registrationpb.NewRegistrationClient(m.cli.Conn()) + return client.APITest(ctx, in, opts...) +} + // 1. 鑾峰彇鍖呭惈闅愮淇℃伅鐨勬暟鎹簮杩炴帴淇℃伅鎺ュ彛 func (m *defaultRegistration) GetPrivateDBConnInfo(ctx context.Context, in *GetPrivateDBConnInfoReq, opts ...grpc.CallOption) (*GetPrivateDBConnInfoResp, error) { client := registrationpb.NewRegistrationClient(m.cli.Conn())