diff --git a/api/cast/cast.pb.validate.go b/api/cast/cast.pb.validate.go index 9edbbf7..05e1c1c 100644 --- a/api/cast/cast.pb.validate.go +++ b/api/cast/cast.pb.validate.go @@ -93,7 +93,7 @@ type MediaUserListReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaUserListReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -213,7 +213,7 @@ type MediaUserInfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaUserInfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -349,7 +349,7 @@ type MediaUserListRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaUserListRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -471,7 +471,7 @@ type UpdateMediaAccountReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateMediaAccountReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -575,7 +575,7 @@ type UpdateMediaAccountRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateMediaAccountRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -679,7 +679,7 @@ type UnbindManagerReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UnbindManagerReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -781,7 +781,7 @@ type UnbindManagerRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UnbindManagerRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -889,7 +889,7 @@ type BindManagerReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m BindManagerReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -1129,7 +1129,7 @@ type UpdateWorkImageReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateWorkImageReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -1233,7 +1233,7 @@ type UpdateWorkImageRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateWorkImageRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -1347,7 +1347,7 @@ type PublishConfigMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m PublishConfigMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -1591,7 +1591,7 @@ type UpdateWorkVideoReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateWorkVideoReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -1695,7 +1695,7 @@ type UpdateWorkVideoRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateWorkVideoRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -1802,7 +1802,7 @@ type MediaInfoReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaInfoReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -1931,7 +1931,7 @@ type MediaInfoRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaInfoRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -2060,7 +2060,7 @@ type WorkListReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkListReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -2195,7 +2195,7 @@ type WorkListRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkListRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -2297,7 +2297,7 @@ type WorkDetailReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkDetailReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -2412,7 +2412,7 @@ type WorkLogInfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkLogInfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -2736,7 +2736,7 @@ type WorkDetailRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkDetailRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -2852,7 +2852,7 @@ type UpdateStatusReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateStatusReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -2954,7 +2954,7 @@ type MediaAccountsReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaAccountsReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -3088,7 +3088,7 @@ type MediaAccountsRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaAccountsRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -3196,7 +3196,7 @@ type MediaWorksReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaWorksReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -3332,7 +3332,7 @@ type MediaWorksRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaWorksRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -3431,7 +3431,7 @@ type PublishReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m PublishReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -3564,7 +3564,7 @@ type PublishRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m PublishRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -3665,7 +3665,7 @@ type RePublishReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m RePublishReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -3769,7 +3769,7 @@ type RePublishRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m RePublishRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -3870,7 +3870,7 @@ type DelWorkReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m DelWorkReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -3971,7 +3971,7 @@ type WorkInfoReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkInfoReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -4082,7 +4082,7 @@ type WorkInfoRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkInfoRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -4184,7 +4184,7 @@ type ArtistInfoReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ArtistInfoReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -4292,7 +4292,7 @@ type ArtistInfoRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ArtistInfoRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -4426,7 +4426,7 @@ type ImportWorkBatchReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ImportWorkBatchReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -4566,7 +4566,7 @@ type ImportWorkBatchRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ImportWorkBatchRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -4685,7 +4685,7 @@ type PlatformInfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m PlatformInfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -4819,7 +4819,7 @@ type UpdateWorkPlatformInfoReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateWorkPlatformInfoReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -4921,7 +4921,7 @@ type UpdateWorkPlatformInfoRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateWorkPlatformInfoRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -5031,7 +5031,7 @@ type UpdateWorkPublishLogReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateWorkPublishLogReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -5135,7 +5135,7 @@ type RefreshWorkListReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m RefreshWorkListReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -5271,7 +5271,7 @@ type RefreshWorkListRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m RefreshWorkListRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -5375,7 +5375,7 @@ type OAuthAccountReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m OAuthAccountReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -5477,7 +5477,7 @@ type OAuthAccountRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m OAuthAccountRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -5579,7 +5579,7 @@ type OAuthAccountV2ReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m OAuthAccountV2ReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -5689,7 +5689,7 @@ type OAuthAccountV2RespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m OAuthAccountV2RespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -5795,7 +5795,7 @@ type OAuthYoutubeTokenReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m OAuthYoutubeTokenReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -5903,7 +5903,7 @@ type OAuthYoutubeTokenRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m OAuthYoutubeTokenRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -6011,7 +6011,7 @@ type OAuthCodeToTokenReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m OAuthCodeToTokenReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -6113,7 +6113,7 @@ type OAuthCodeToTokenRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m OAuthCodeToTokenRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -6249,7 +6249,7 @@ type UpdateOAuthReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateOAuthReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -6355,7 +6355,7 @@ type RefreshTokenReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m RefreshTokenReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -6459,7 +6459,7 @@ type RefreshTokenRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m RefreshTokenRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -6565,7 +6565,7 @@ type PublishMediaInfoReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m PublishMediaInfoReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -6675,7 +6675,7 @@ type PublishMediaInfoRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m PublishMediaInfoRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -6795,7 +6795,7 @@ type UpdateVideoScriptReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateVideoScriptReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -6899,7 +6899,7 @@ type UpdateVideoScriptRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateVideoScriptRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -7003,7 +7003,7 @@ type GetVideoScriptReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetVideoScriptReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -7131,7 +7131,7 @@ type GetVideoScriptRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetVideoScriptRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -7251,7 +7251,7 @@ type ListVideoScriptsReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ListVideoScriptsReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -7381,7 +7381,7 @@ type VideoScriptInfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m VideoScriptInfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -7517,7 +7517,7 @@ type ListVideoScriptsRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ListVideoScriptsRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -7621,7 +7621,7 @@ type DeleteVideoScriptReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m DeleteVideoScriptReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -7757,7 +7757,7 @@ type UpdateVideoScriptBatchReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateVideoScriptBatchReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -7897,7 +7897,7 @@ type UpdateVideoScriptBatchRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateVideoScriptBatchRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -8007,7 +8007,7 @@ type UpdateScriptStatusReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateScriptStatusReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -8114,7 +8114,7 @@ type SetLayoutReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m SetLayoutReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -8217,7 +8217,7 @@ type GetLayoutReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetLayoutReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -8321,7 +8321,7 @@ type GetLayoutRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetLayoutRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -8427,7 +8427,7 @@ type UpdatePromptReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdatePromptReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -8529,7 +8529,7 @@ type DeletePromptReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m DeletePromptReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -8630,7 +8630,7 @@ type GetPromptReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetPromptReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -8738,7 +8738,7 @@ type GetPromptRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetPromptRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -8848,7 +8848,7 @@ type ListPromptsReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ListPromptsReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -8963,7 +8963,7 @@ type PromptInfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m PromptInfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -9099,7 +9099,7 @@ type ListPromptsRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ListPromptsRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -9233,7 +9233,7 @@ type UpdatePromptBatchReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdatePromptBatchReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -9373,7 +9373,7 @@ type UpdatePromptBatchRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdatePromptBatchRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -9482,7 +9482,7 @@ type ArtistInfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ArtistInfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -9613,7 +9613,7 @@ type UpdateArtistReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateArtistReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -9715,7 +9715,7 @@ type UpdateArtistRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateArtistRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -9816,7 +9816,7 @@ type GetArtistReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetArtistReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -9947,7 +9947,7 @@ type GetArtistRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetArtistRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -10095,7 +10095,7 @@ type CreateWorkAnalysisReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m CreateWorkAnalysisReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -10199,7 +10199,7 @@ type CreateWorkAnalysisRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m CreateWorkAnalysisRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -10343,7 +10343,7 @@ type UpdateWorkAnalysisReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateWorkAnalysisReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -10459,7 +10459,7 @@ type UpdateWorkAnalysisStatusReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateWorkAnalysisStatusReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -10580,7 +10580,7 @@ type WorkAnalysisLogInfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkAnalysisLogInfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -10698,7 +10698,7 @@ type WorkAnalysisFansSeriesMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkAnalysisFansSeriesMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -10816,7 +10816,7 @@ type WorkAnalysisViewsSeriesMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkAnalysisViewsSeriesMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -10934,7 +10934,7 @@ type WorkAnalysisLikesSeriesMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkAnalysisLikesSeriesMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -11052,7 +11052,7 @@ type WorkAnalysisCommentsSeriesMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkAnalysisCommentsSeriesMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -11170,7 +11170,7 @@ type WorkAnalysisSharesSeriesMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkAnalysisSharesSeriesMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -11280,7 +11280,7 @@ type WorkAnalysisTopCitiesMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkAnalysisTopCitiesMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -11390,7 +11390,7 @@ type WorkAnalysisMostActiveDayMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkAnalysisMostActiveDayMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -11500,7 +11500,7 @@ type WorkAnalysisBestPostTimeMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkAnalysisBestPostTimeMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -11612,7 +11612,7 @@ type WorkAnalysisExtraMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkAnalysisExtraMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -11716,7 +11716,7 @@ type GetWorkAnalysisDetailReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetWorkAnalysisDetailReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -11820,7 +11820,7 @@ type GetLatestWorkAnalysisReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetLatestWorkAnalysisReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -12214,7 +12214,7 @@ type GetWorkAnalysisRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetWorkAnalysisRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -12671,7 +12671,7 @@ type GetWorkAnalysisDetailRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetWorkAnalysisDetailRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -12795,7 +12795,7 @@ type ListWorkAnalysisReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ListWorkAnalysisReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -12911,6 +12911,8 @@ func (m *WorkAnalysisInfo) validate(all bool) error { // no validation rules for ApprovalID + // no validation rules for Title + if len(errors) > 0 { return WorkAnalysisInfoMultiError(errors) } @@ -12925,7 +12927,7 @@ type WorkAnalysisInfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkAnalysisInfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -13061,7 +13063,7 @@ type ListWorkAnalysisRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ListWorkAnalysisRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -13165,7 +13167,7 @@ type DeleteWorkAnalysisReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m DeleteWorkAnalysisReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -13283,7 +13285,7 @@ type ArtistDataListReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ArtistDataListReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -13423,7 +13425,7 @@ type ArtistDataRespItemMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ArtistDataRespItemMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -13561,7 +13563,7 @@ type ArtistDataListRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ArtistDataListRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -13673,7 +13675,7 @@ type MediaDataListReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaDataListReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -13803,7 +13805,7 @@ type MediaDataListItemMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaDataListItemMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -13941,7 +13943,7 @@ type MediaDataListRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaDataListRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -14045,7 +14047,7 @@ type DataOverviewReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m DataOverviewReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -14185,7 +14187,7 @@ type DataOverviewRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m DataOverviewRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -14297,7 +14299,7 @@ type ArtistMetricsSeriesReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ArtistMetricsSeriesReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -14602,7 +14604,7 @@ type ArtistMetricsSeriesRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ArtistMetricsSeriesRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -14710,7 +14712,7 @@ type ArtistMetricsDailyWindowReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ArtistMetricsDailyWindowReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -14816,7 +14818,7 @@ type SimplePointMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m SimplePointMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -14920,7 +14922,7 @@ type BestPostTimePointMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m BestPostTimePointMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -15026,7 +15028,7 @@ type MostActiveDayPointMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MostActiveDayPointMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -15376,7 +15378,7 @@ type ArtistMetricsDailyWindowRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ArtistMetricsDailyWindowRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -15485,7 +15487,7 @@ type TobeConfirmedListReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m TobeConfirmedListReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -15619,7 +15621,7 @@ type TobeConfirmedItemMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m TobeConfirmedItemMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -15757,7 +15759,7 @@ type TobeConfirmedListRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m TobeConfirmedListRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -15863,7 +15865,7 @@ type UpdateWorkAnalysisApprovalIDReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateWorkAnalysisApprovalIDReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -15996,7 +15998,7 @@ type MediaMetricsDailyItemMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaMetricsDailyItemMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -16132,7 +16134,7 @@ type UpsertMediaMetricsDailyBatchReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpsertMediaMetricsDailyBatchReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -16239,7 +16241,7 @@ type UpsertMediaMetricsDailyBatchRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpsertMediaMetricsDailyBatchRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -16368,7 +16370,7 @@ type WorkMetricsDailyItemMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkMetricsDailyItemMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -16504,7 +16506,7 @@ type UpsertWorkMetricsDailyBatchReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpsertWorkMetricsDailyBatchReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -16609,7 +16611,7 @@ type UpsertWorkMetricsDailyBatchRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpsertWorkMetricsDailyBatchRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -16722,7 +16724,7 @@ type GetArtistAyrShareInfoReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetArtistAyrShareInfoReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -16842,7 +16844,7 @@ type ArtistAyrShareInfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ArtistAyrShareInfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -16980,7 +16982,7 @@ type GetArtistAyrShareInfoRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m GetArtistAyrShareInfoRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -17088,7 +17090,7 @@ type ListWorkPlatformInfoReqMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ListWorkPlatformInfoReqMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -17210,7 +17212,7 @@ type WorkPlatformInfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkPlatformInfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -17346,7 +17348,7 @@ type ListWorkPlatformInfoRespMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m ListWorkPlatformInfoRespMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -17472,7 +17474,7 @@ type WorkListResp_InfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m WorkListResp_InfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -17586,7 +17588,7 @@ type MediaAccountsResp_InfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaAccountsResp_InfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -17706,7 +17708,7 @@ type MediaWorksResp_InfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m MediaWorksResp_InfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -17812,7 +17814,7 @@ type PublishResp_InfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m PublishResp_InfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -17950,7 +17952,7 @@ type RefreshWorkListResp_InfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m RefreshWorkListResp_InfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -18066,7 +18068,7 @@ type RefreshWorkListResp_Info_PlatformInfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m RefreshWorkListResp_Info_PlatformInfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } @@ -18179,7 +18181,7 @@ type UpdateOAuthReq_InfoMultiError []error // Error returns a concatenation of all the error messages it wraps. func (m UpdateOAuthReq_InfoMultiError) Error() string { - msgs := make([]string, 0, len(m)) + var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) } diff --git a/api/files/files.pb.go b/api/files/files.pb.go index 79b6e30..24c2bbd 100644 --- a/api/files/files.pb.go +++ b/api/files/files.pb.go @@ -112,16 +112,17 @@ type Items struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` - Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size"` - Extension string `protobuf:"bytes,4,opt,name=extension,proto3" json:"extension"` - Modified string `protobuf:"bytes,5,opt,name=modified,proto3" json:"modified"` - ModTime int64 `protobuf:"varint,6,opt,name=modTime,proto3" json:"modTime"` - Mode string `protobuf:"bytes,7,opt,name=mode,proto3" json:"mode"` - IsDir bool `protobuf:"varint,8,opt,name=isDir,proto3" json:"isDir"` - IsSymlink bool `protobuf:"varint,9,opt,name=isSymlink,proto3" json:"isSymlink"` - Type string `protobuf:"bytes,10,opt,name=type,proto3" json:"type"` + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` + Size int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size"` + Extension string `protobuf:"bytes,4,opt,name=extension,proto3" json:"extension"` + Modified string `protobuf:"bytes,5,opt,name=modified,proto3" json:"modified"` + ModTime int64 `protobuf:"varint,6,opt,name=modTime,proto3" json:"modTime"` + Mode string `protobuf:"bytes,7,opt,name=mode,proto3" json:"mode"` + IsDir bool `protobuf:"varint,8,opt,name=isDir,proto3" json:"isDir"` + IsSymlink bool `protobuf:"varint,9,opt,name=isSymlink,proto3" json:"isSymlink"` + Type string `protobuf:"bytes,10,opt,name=type,proto3" json:"type"` + SecurityStatus string `protobuf:"bytes,11,opt,name=securityStatus,proto3" json:"securityStatus"` } func (x *Items) Reset() { @@ -226,6 +227,13 @@ func (x *Items) GetType() string { return "" } +func (x *Items) GetSecurityStatus() string { + if x != nil { + return x.SecurityStatus + } + return "" +} + type Sorting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1860,6 +1868,69 @@ func (x *UsageResp) GetUsed() int64 { return 0 } +type SecurityStatusData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url"` // 文件url + FileName string `protobuf:"bytes,2,opt,name=fileName,proto3" json:"fileName"` // 文件名称 + SecurityStatus string `protobuf:"bytes,3,opt,name=securityStatus,proto3" json:"securityStatus"` // 安全状态 +} + +func (x *SecurityStatusData) Reset() { + *x = SecurityStatusData{} + if protoimpl.UnsafeEnabled { + mi := &file_files_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SecurityStatusData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SecurityStatusData) ProtoMessage() {} + +func (x *SecurityStatusData) ProtoReflect() protoreflect.Message { + mi := &file_files_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SecurityStatusData.ProtoReflect.Descriptor instead. +func (*SecurityStatusData) Descriptor() ([]byte, []int) { + return file_files_proto_rawDescGZIP(), []int{28} +} + +func (x *SecurityStatusData) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *SecurityStatusData) GetFileName() string { + if x != nil { + return x.FileName + } + return "" +} + +func (x *SecurityStatusData) GetSecurityStatus() string { + if x != nil { + return x.SecurityStatus + } + return "" +} + type SecurityScanReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1872,7 +1943,7 @@ type SecurityScanReq struct { func (x *SecurityScanReq) Reset() { *x = SecurityScanReq{} if protoimpl.UnsafeEnabled { - mi := &file_files_proto_msgTypes[28] + mi := &file_files_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1885,7 +1956,7 @@ func (x *SecurityScanReq) String() string { func (*SecurityScanReq) ProtoMessage() {} func (x *SecurityScanReq) ProtoReflect() protoreflect.Message { - mi := &file_files_proto_msgTypes[28] + mi := &file_files_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1898,7 +1969,7 @@ func (x *SecurityScanReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SecurityScanReq.ProtoReflect.Descriptor instead. func (*SecurityScanReq) Descriptor() ([]byte, []int) { - return file_files_proto_rawDescGZIP(), []int{28} + return file_files_proto_rawDescGZIP(), []int{29} } func (x *SecurityScanReq) GetUrl() string { @@ -1919,12 +1990,16 @@ type SecurityScanResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + SecurityStatus string `protobuf:"bytes,1,opt,name=securityStatus,proto3" json:"securityStatus"` // 安全状态 + Describe string `protobuf:"bytes,2,opt,name=describe,proto3" json:"describe"` // 描述 + ProblemTimeFrame string `protobuf:"bytes,3,opt,name=problemTimeFrame,proto3" json:"problemTimeFrame"` // 问题时间帧 } func (x *SecurityScanResp) Reset() { *x = SecurityScanResp{} if protoimpl.UnsafeEnabled { - mi := &file_files_proto_msgTypes[29] + mi := &file_files_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1937,7 +2012,7 @@ func (x *SecurityScanResp) String() string { func (*SecurityScanResp) ProtoMessage() {} func (x *SecurityScanResp) ProtoReflect() protoreflect.Message { - mi := &file_files_proto_msgTypes[29] + mi := &file_files_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1950,7 +2025,316 @@ func (x *SecurityScanResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SecurityScanResp.ProtoReflect.Descriptor instead. func (*SecurityScanResp) Descriptor() ([]byte, []int) { - return file_files_proto_rawDescGZIP(), []int{29} + return file_files_proto_rawDescGZIP(), []int{30} +} + +func (x *SecurityScanResp) GetSecurityStatus() string { + if x != nil { + return x.SecurityStatus + } + return "" +} + +func (x *SecurityScanResp) GetDescribe() string { + if x != nil { + return x.Describe + } + return "" +} + +func (x *SecurityScanResp) GetProblemTimeFrame() string { + if x != nil { + return x.ProblemTimeFrame + } + return "" +} + +type UpdateFileSecurityStatusReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SecurityStatusData []*SecurityStatusData `protobuf:"bytes,1,rep,name=securityStatusData,proto3" json:"securityStatusData"` +} + +func (x *UpdateFileSecurityStatusReq) Reset() { + *x = UpdateFileSecurityStatusReq{} + if protoimpl.UnsafeEnabled { + mi := &file_files_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFileSecurityStatusReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFileSecurityStatusReq) ProtoMessage() {} + +func (x *UpdateFileSecurityStatusReq) ProtoReflect() protoreflect.Message { + mi := &file_files_proto_msgTypes[31] + 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 UpdateFileSecurityStatusReq.ProtoReflect.Descriptor instead. +func (*UpdateFileSecurityStatusReq) Descriptor() ([]byte, []int) { + return file_files_proto_rawDescGZIP(), []int{31} +} + +func (x *UpdateFileSecurityStatusReq) GetSecurityStatusData() []*SecurityStatusData { + if x != nil { + return x.SecurityStatusData + } + return nil +} + +type UpdateFileSecurityStatusResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateFileSecurityStatusResp) Reset() { + *x = UpdateFileSecurityStatusResp{} + if protoimpl.UnsafeEnabled { + mi := &file_files_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFileSecurityStatusResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFileSecurityStatusResp) ProtoMessage() {} + +func (x *UpdateFileSecurityStatusResp) ProtoReflect() protoreflect.Message { + mi := &file_files_proto_msgTypes[32] + 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 UpdateFileSecurityStatusResp.ProtoReflect.Descriptor instead. +func (*UpdateFileSecurityStatusResp) Descriptor() ([]byte, []int) { + return file_files_proto_rawDescGZIP(), []int{32} +} + +type ManualAntiReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SecurityStatusData []*SecurityStatusData `protobuf:"bytes,1,rep,name=securityStatusData,proto3" json:"securityStatusData"` +} + +func (x *ManualAntiReq) Reset() { + *x = ManualAntiReq{} + if protoimpl.UnsafeEnabled { + mi := &file_files_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ManualAntiReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ManualAntiReq) ProtoMessage() {} + +func (x *ManualAntiReq) ProtoReflect() protoreflect.Message { + mi := &file_files_proto_msgTypes[33] + 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 ManualAntiReq.ProtoReflect.Descriptor instead. +func (*ManualAntiReq) Descriptor() ([]byte, []int) { + return file_files_proto_rawDescGZIP(), []int{33} +} + +func (x *ManualAntiReq) GetSecurityStatusData() []*SecurityStatusData { + if x != nil { + return x.SecurityStatusData + } + return nil +} + +type ManualAntiResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ManualAntiResp) Reset() { + *x = ManualAntiResp{} + if protoimpl.UnsafeEnabled { + mi := &file_files_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ManualAntiResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ManualAntiResp) ProtoMessage() {} + +func (x *ManualAntiResp) ProtoReflect() protoreflect.Message { + mi := &file_files_proto_msgTypes[34] + 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 ManualAntiResp.ProtoReflect.Descriptor instead. +func (*ManualAntiResp) Descriptor() ([]byte, []int) { + return file_files_proto_rawDescGZIP(), []int{34} +} + +type GetFileSecurityStatusReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url"` // 文件url + FileName string `protobuf:"bytes,2,opt,name=fileName,proto3" json:"fileName"` // 文件名称 +} + +func (x *GetFileSecurityStatusReq) Reset() { + *x = GetFileSecurityStatusReq{} + if protoimpl.UnsafeEnabled { + mi := &file_files_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFileSecurityStatusReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFileSecurityStatusReq) ProtoMessage() {} + +func (x *GetFileSecurityStatusReq) ProtoReflect() protoreflect.Message { + mi := &file_files_proto_msgTypes[35] + 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 GetFileSecurityStatusReq.ProtoReflect.Descriptor instead. +func (*GetFileSecurityStatusReq) Descriptor() ([]byte, []int) { + return file_files_proto_rawDescGZIP(), []int{35} +} + +func (x *GetFileSecurityStatusReq) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *GetFileSecurityStatusReq) GetFileName() string { + if x != nil { + return x.FileName + } + return "" +} + +type GetFileSecurityStatusResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SecurityStatus string `protobuf:"bytes,1,opt,name=securityStatus,proto3" json:"securityStatus"` // 安全状态 + Describe string `protobuf:"bytes,2,opt,name=describe,proto3" json:"describe"` // 描述 + ProblemTimeFrame string `protobuf:"bytes,3,opt,name=problemTimeFrame,proto3" json:"problemTimeFrame"` // 问题时间帧 +} + +func (x *GetFileSecurityStatusResp) Reset() { + *x = GetFileSecurityStatusResp{} + if protoimpl.UnsafeEnabled { + mi := &file_files_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFileSecurityStatusResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFileSecurityStatusResp) ProtoMessage() {} + +func (x *GetFileSecurityStatusResp) ProtoReflect() protoreflect.Message { + mi := &file_files_proto_msgTypes[36] + 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 GetFileSecurityStatusResp.ProtoReflect.Descriptor instead. +func (*GetFileSecurityStatusResp) Descriptor() ([]byte, []int) { + return file_files_proto_rawDescGZIP(), []int{36} +} + +func (x *GetFileSecurityStatusResp) GetSecurityStatus() string { + if x != nil { + return x.SecurityStatus + } + return "" +} + +func (x *GetFileSecurityStatusResp) GetDescribe() string { + if x != nil { + return x.Describe + } + return "" +} + +func (x *GetFileSecurityStatusResp) GetProblemTimeFrame() string { + if x != nil { + return x.ProblemTimeFrame + } + return "" } type SearchResp_Nested struct { @@ -1968,7 +2352,7 @@ type SearchResp_Nested struct { func (x *SearchResp_Nested) Reset() { *x = SearchResp_Nested{} if protoimpl.UnsafeEnabled { - mi := &file_files_proto_msgTypes[30] + mi := &file_files_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1981,7 +2365,7 @@ func (x *SearchResp_Nested) String() string { func (*SearchResp_Nested) ProtoMessage() {} func (x *SearchResp_Nested) ProtoReflect() protoreflect.Message { - mi := &file_files_proto_msgTypes[30] + mi := &file_files_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2047,8 +2431,8 @@ var file_files_proto_rawDesc = []byte{ 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xf3, - 0x01, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x9b, + 0x02, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, @@ -2063,226 +2447,287 @@ var file_files_proto_rawDesc = []byte{ 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x07, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, - 0x0e, 0x0a, 0x02, 0x62, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x62, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, - 0x63, 0x22, 0xc4, 0x03, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x22, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x44, 0x69, 0x72, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x44, 0x69, 0x72, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x07, - 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, - 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, - 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, - 0x44, 0x69, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, - 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x45, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, - 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, - 0x0c, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x45, 0x0a, - 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, - 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x22, 0x0c, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x5f, 0x0a, 0x09, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, - 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x22, 0x0c, 0x0a, 0x0a, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x5b, 0x0a, 0x09, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x12, - 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0xb2, - 0x01, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x2e, - 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x74, 0x0a, - 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x22, 0x64, 0x0a, 0x0c, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, - 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0x57, 0x0a, 0x0d, 0x54, 0x75, 0x73, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x22, - 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x22, 0x0a, - 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x33, 0x0a, 0x0d, 0x54, - 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, - 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x22, 0x80, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, - 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x31, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x47, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, - 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, - 0xfa, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, - 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, - 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x0a, - 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, - 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x5d, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x09, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, - 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0c, 0x0a, - 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x74, 0x0a, 0x0e, 0x44, - 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, + 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2b, 0x0a, 0x07, + 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x62, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x62, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x63, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x73, 0x63, 0x22, 0xc4, 0x03, 0x0a, 0x0c, 0x46, 0x69, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x44, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x6e, 0x75, 0x6d, 0x44, 0x69, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x6f, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, + 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x53, 0x79, + 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x53, + 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x22, 0x45, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, - 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x61, 0x6c, 0x67, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x6c, 0x67, - 0x6f, 0x22, 0x2b, 0x0a, 0x0f, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x45, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, + 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x0c, 0x0a, 0x0a, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x5f, 0x0a, 0x09, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, + 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, + 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x0c, 0x0a, 0x0a, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x5b, 0x0a, 0x09, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, + 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0xb2, 0x01, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x74, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x69, 0x73, 0x44, 0x69, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x64, 0x0a, 0x0c, 0x54, + 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, + 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x22, 0x57, 0x0a, 0x0d, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x54, + 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, + 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x22, 0x33, 0x0a, 0x0d, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x73, + 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, + 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x31, 0x0a, 0x15, 0x52, + 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x44, - 0x0a, 0x08, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, - 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x22, 0x35, 0x0a, 0x09, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x75, 0x73, 0x65, 0x64, 0x22, 0x3f, 0x0a, 0x0f, 0x53, - 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x10, - 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x12, 0x0a, 0x10, - 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x32, 0x8e, 0x06, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x12, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, - 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x04, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x2f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, - 0x12, 0x2f, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x10, 0x2e, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x10, 0x2e, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x11, - 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x09, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x12, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, - 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, - 0x09, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x13, 0x2e, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, - 0x14, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x75, 0x6d, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x07, 0x50, 0x72, 0x65, - 0x76, 0x69, 0x65, 0x77, 0x12, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x65, - 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, - 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, - 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x40, - 0x0a, 0x0b, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x15, 0x2e, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x69, 0x72, - 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x30, 0x01, - 0x12, 0x2c, 0x0a, 0x05, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0f, 0x2e, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, - 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x16, - 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, - 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, - 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x3b, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x47, + 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0xfa, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, + 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x69, 0x73, 0x44, 0x69, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, + 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, + 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, + 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x22, 0x5d, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0xb3, 0x01, 0x0a, 0x09, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, + 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x74, 0x0a, 0x0e, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, + 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x6c, 0x67, 0x6f, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x6c, 0x67, 0x6f, 0x22, 0x2b, 0x0a, 0x0f, 0x44, 0x69, 0x72, + 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x44, 0x0a, 0x08, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, + 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x35, 0x0a, 0x09, + 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x75, + 0x73, 0x65, 0x64, 0x22, 0x6a, 0x0a, 0x12, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, + 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x3f, 0x0a, 0x0f, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x61, 0x6e, 0x52, + 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x82, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x61, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, + 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x72, 0x6f, + 0x62, 0x6c, 0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x22, 0x68, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, + 0x69, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x49, 0x0a, 0x12, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x73, 0x65, 0x63, + 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x22, + 0x1e, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x63, + 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x5a, 0x0a, 0x0d, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x6e, 0x74, 0x69, 0x52, 0x65, 0x71, + 0x12, 0x49, 0x0a, 0x12, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x22, 0x10, 0x0a, 0x0e, 0x4d, + 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x6e, 0x74, 0x69, 0x52, 0x65, 0x73, 0x70, 0x22, 0x48, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, + 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x72, 0x6f, + 0x62, 0x6c, 0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x54, 0x69, 0x6d, 0x65, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x32, 0x90, 0x08, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x31, + 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, + 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x31, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x2e, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x10, + 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, + 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x09, 0x54, 0x75, 0x73, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, + 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x38, 0x0a, 0x09, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, + 0x13, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x54, 0x75, 0x73, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x11, + 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x12, 0x1b, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, + 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x32, + 0x0a, 0x07, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x11, 0x2e, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x2e, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x11, + 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0b, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x12, 0x15, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x44, 0x69, 0x72, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x2e, 0x44, 0x69, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x30, 0x01, 0x12, 0x2c, 0x0a, 0x05, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0f, + 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x10, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, + 0x63, 0x61, 0x6e, 0x12, 0x16, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, + 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x61, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x22, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3b, 0x0a, + 0x0a, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x6e, 0x74, 0x69, 0x12, 0x14, 0x2e, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x41, 0x6e, 0x74, 0x69, 0x52, 0x65, + 0x71, 0x1a, 0x15, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, + 0x41, 0x6e, 0x74, 0x69, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1f, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x3b, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2297,78 +2742,93 @@ func file_files_proto_rawDescGZIP() []byte { return file_files_proto_rawDescData } -var file_files_proto_msgTypes = make([]protoimpl.MessageInfo, 31) +var file_files_proto_msgTypes = make([]protoimpl.MessageInfo, 38) var file_files_proto_goTypes = []interface{}{ - (*FileListReq)(nil), // 0: files.FileListReq - (*Items)(nil), // 1: files.Items - (*Sorting)(nil), // 2: files.Sorting - (*FileListResp)(nil), // 3: files.FileListResp - (*CreateReq)(nil), // 4: files.CreateReq - (*CreateResp)(nil), // 5: files.CreateResp - (*DeleteReq)(nil), // 6: files.DeleteReq - (*DeleteResp)(nil), // 7: files.DeleteResp - (*UploadReq)(nil), // 8: files.UploadReq - (*UploadResp)(nil), // 9: files.UploadResp - (*SearchReq)(nil), // 10: files.searchReq - (*SearchResp)(nil), // 11: files.searchResp - (*TusCreateReq)(nil), // 12: files.TusCreateReq - (*TusCreateResp)(nil), // 13: files.TusCreateResp - (*TusUploadReq)(nil), // 14: files.TusUploadReq - (*TusUploadResp)(nil), // 15: files.TusUploadResp - (*ResumableTransferReq)(nil), // 16: files.ResumableTransferReq - (*ResumableTransferResp)(nil), // 17: files.ResumableTransferResp - (*FileInfoReq)(nil), // 18: files.FileInfoReq - (*FileInfoResp)(nil), // 19: files.FileInfoResp - (*PreviewReq)(nil), // 20: files.PreviewReq - (*PreviewResp)(nil), // 21: files.PreviewResp - (*ActionReq)(nil), // 22: files.ActionReq - (*ActionResp)(nil), // 23: files.ActionResp - (*DirDownloadReq)(nil), // 24: files.DirDownloadReq - (*DirDownloadResp)(nil), // 25: files.DirDownloadResp - (*UsageReq)(nil), // 26: files.UsageReq - (*UsageResp)(nil), // 27: files.UsageResp - (*SecurityScanReq)(nil), // 28: files.SecurityScanReq - (*SecurityScanResp)(nil), // 29: files.SecurityScanResp - (*SearchResp_Nested)(nil), // 30: files.searchResp.Nested + (*FileListReq)(nil), // 0: files.FileListReq + (*Items)(nil), // 1: files.Items + (*Sorting)(nil), // 2: files.Sorting + (*FileListResp)(nil), // 3: files.FileListResp + (*CreateReq)(nil), // 4: files.CreateReq + (*CreateResp)(nil), // 5: files.CreateResp + (*DeleteReq)(nil), // 6: files.DeleteReq + (*DeleteResp)(nil), // 7: files.DeleteResp + (*UploadReq)(nil), // 8: files.UploadReq + (*UploadResp)(nil), // 9: files.UploadResp + (*SearchReq)(nil), // 10: files.searchReq + (*SearchResp)(nil), // 11: files.searchResp + (*TusCreateReq)(nil), // 12: files.TusCreateReq + (*TusCreateResp)(nil), // 13: files.TusCreateResp + (*TusUploadReq)(nil), // 14: files.TusUploadReq + (*TusUploadResp)(nil), // 15: files.TusUploadResp + (*ResumableTransferReq)(nil), // 16: files.ResumableTransferReq + (*ResumableTransferResp)(nil), // 17: files.ResumableTransferResp + (*FileInfoReq)(nil), // 18: files.FileInfoReq + (*FileInfoResp)(nil), // 19: files.FileInfoResp + (*PreviewReq)(nil), // 20: files.PreviewReq + (*PreviewResp)(nil), // 21: files.PreviewResp + (*ActionReq)(nil), // 22: files.ActionReq + (*ActionResp)(nil), // 23: files.ActionResp + (*DirDownloadReq)(nil), // 24: files.DirDownloadReq + (*DirDownloadResp)(nil), // 25: files.DirDownloadResp + (*UsageReq)(nil), // 26: files.UsageReq + (*UsageResp)(nil), // 27: files.UsageResp + (*SecurityStatusData)(nil), // 28: files.SecurityStatusData + (*SecurityScanReq)(nil), // 29: files.SecurityScanReq + (*SecurityScanResp)(nil), // 30: files.SecurityScanResp + (*UpdateFileSecurityStatusReq)(nil), // 31: files.UpdateFileSecurityStatusReq + (*UpdateFileSecurityStatusResp)(nil), // 32: files.UpdateFileSecurityStatusResp + (*ManualAntiReq)(nil), // 33: files.ManualAntiReq + (*ManualAntiResp)(nil), // 34: files.ManualAntiResp + (*GetFileSecurityStatusReq)(nil), // 35: files.GetFileSecurityStatusReq + (*GetFileSecurityStatusResp)(nil), // 36: files.GetFileSecurityStatusResp + (*SearchResp_Nested)(nil), // 37: files.searchResp.Nested } var file_files_proto_depIdxs = []int32{ 2, // 0: files.FileListReq.sorting:type_name -> files.Sorting 1, // 1: files.FileListResp.items:type_name -> files.Items 2, // 2: files.FileListResp.sorting:type_name -> files.Sorting - 30, // 3: files.searchResp.items:type_name -> files.searchResp.Nested - 0, // 4: files.File.List:input_type -> files.FileListReq - 18, // 5: files.File.Info:input_type -> files.FileInfoReq - 4, // 6: files.File.Create:input_type -> files.CreateReq - 6, // 7: files.File.Delete:input_type -> files.DeleteReq - 10, // 8: files.File.Search:input_type -> files.searchReq - 8, // 9: files.File.Upload:input_type -> files.UploadReq - 12, // 10: files.File.TusCreate:input_type -> files.TusCreateReq - 14, // 11: files.File.TusUpload:input_type -> files.TusUploadReq - 16, // 12: files.File.ResumableTransfer:input_type -> files.ResumableTransferReq - 20, // 13: files.File.Preview:input_type -> files.PreviewReq - 22, // 14: files.File.Action:input_type -> files.ActionReq - 24, // 15: files.File.DirDownload:input_type -> files.DirDownloadReq - 26, // 16: files.File.Usage:input_type -> files.UsageReq - 28, // 17: files.File.SecurityScan:input_type -> files.SecurityScanReq - 3, // 18: files.File.List:output_type -> files.FileListResp - 19, // 19: files.File.Info:output_type -> files.FileInfoResp - 5, // 20: files.File.Create:output_type -> files.CreateResp - 7, // 21: files.File.Delete:output_type -> files.DeleteResp - 11, // 22: files.File.Search:output_type -> files.searchResp - 9, // 23: files.File.Upload:output_type -> files.UploadResp - 13, // 24: files.File.TusCreate:output_type -> files.TusCreateResp - 15, // 25: files.File.TusUpload:output_type -> files.TusUploadResp - 17, // 26: files.File.ResumableTransfer:output_type -> files.ResumableTransferResp - 21, // 27: files.File.Preview:output_type -> files.PreviewResp - 23, // 28: files.File.Action:output_type -> files.ActionResp - 25, // 29: files.File.DirDownload:output_type -> files.DirDownloadResp - 27, // 30: files.File.Usage:output_type -> files.UsageResp - 29, // 31: files.File.SecurityScan:output_type -> files.SecurityScanResp - 18, // [18:32] is the sub-list for method output_type - 4, // [4:18] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 37, // 3: files.searchResp.items:type_name -> files.searchResp.Nested + 28, // 4: files.UpdateFileSecurityStatusReq.securityStatusData:type_name -> files.SecurityStatusData + 28, // 5: files.ManualAntiReq.securityStatusData:type_name -> files.SecurityStatusData + 0, // 6: files.File.List:input_type -> files.FileListReq + 18, // 7: files.File.Info:input_type -> files.FileInfoReq + 4, // 8: files.File.Create:input_type -> files.CreateReq + 6, // 9: files.File.Delete:input_type -> files.DeleteReq + 10, // 10: files.File.Search:input_type -> files.searchReq + 8, // 11: files.File.Upload:input_type -> files.UploadReq + 12, // 12: files.File.TusCreate:input_type -> files.TusCreateReq + 14, // 13: files.File.TusUpload:input_type -> files.TusUploadReq + 16, // 14: files.File.ResumableTransfer:input_type -> files.ResumableTransferReq + 20, // 15: files.File.Preview:input_type -> files.PreviewReq + 22, // 16: files.File.Action:input_type -> files.ActionReq + 24, // 17: files.File.DirDownload:input_type -> files.DirDownloadReq + 26, // 18: files.File.Usage:input_type -> files.UsageReq + 29, // 19: files.File.SecurityScan:input_type -> files.SecurityScanReq + 31, // 20: files.File.UpdateFileSecurityStatus:input_type -> files.UpdateFileSecurityStatusReq + 33, // 21: files.File.ManualAnti:input_type -> files.ManualAntiReq + 35, // 22: files.File.GetFileSecurityStatus:input_type -> files.GetFileSecurityStatusReq + 3, // 23: files.File.List:output_type -> files.FileListResp + 19, // 24: files.File.Info:output_type -> files.FileInfoResp + 5, // 25: files.File.Create:output_type -> files.CreateResp + 7, // 26: files.File.Delete:output_type -> files.DeleteResp + 11, // 27: files.File.Search:output_type -> files.searchResp + 9, // 28: files.File.Upload:output_type -> files.UploadResp + 13, // 29: files.File.TusCreate:output_type -> files.TusCreateResp + 15, // 30: files.File.TusUpload:output_type -> files.TusUploadResp + 17, // 31: files.File.ResumableTransfer:output_type -> files.ResumableTransferResp + 21, // 32: files.File.Preview:output_type -> files.PreviewResp + 23, // 33: files.File.Action:output_type -> files.ActionResp + 25, // 34: files.File.DirDownload:output_type -> files.DirDownloadResp + 27, // 35: files.File.Usage:output_type -> files.UsageResp + 30, // 36: files.File.SecurityScan:output_type -> files.SecurityScanResp + 32, // 37: files.File.UpdateFileSecurityStatus:output_type -> files.UpdateFileSecurityStatusResp + 34, // 38: files.File.ManualAnti:output_type -> files.ManualAntiResp + 36, // 39: files.File.GetFileSecurityStatus:output_type -> files.GetFileSecurityStatusResp + 23, // [23:40] is the sub-list for method output_type + 6, // [6:23] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name } func init() { file_files_proto_init() } @@ -2714,7 +3174,7 @@ func file_files_proto_init() { } } file_files_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SecurityScanReq); i { + switch v := v.(*SecurityStatusData); i { case 0: return &v.state case 1: @@ -2726,7 +3186,7 @@ func file_files_proto_init() { } } file_files_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SecurityScanResp); i { + switch v := v.(*SecurityScanReq); i { case 0: return &v.state case 1: @@ -2738,6 +3198,90 @@ func file_files_proto_init() { } } file_files_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SecurityScanResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_files_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFileSecurityStatusReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_files_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFileSecurityStatusResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_files_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ManualAntiReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_files_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ManualAntiResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_files_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFileSecurityStatusReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_files_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFileSecurityStatusResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_files_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchResp_Nested); i { case 0: return &v.state @@ -2756,7 +3300,7 @@ func file_files_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_files_proto_rawDesc, NumEnums: 0, - NumMessages: 31, + NumMessages: 38, NumExtensions: 0, NumServices: 1, }, diff --git a/api/files/files.validator.pb.go b/api/files/files.validator.pb.go index 6cd5ebb..fe44229 100644 --- a/api/files/files.validator.pb.go +++ b/api/files/files.validator.pb.go @@ -126,9 +126,44 @@ func (this *UsageReq) Validate() error { func (this *UsageResp) Validate() error { return nil } +func (this *SecurityStatusData) Validate() error { + return nil +} func (this *SecurityScanReq) Validate() error { return nil } func (this *SecurityScanResp) Validate() error { return nil } +func (this *UpdateFileSecurityStatusReq) Validate() error { + for _, item := range this.SecurityStatusData { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("SecurityStatusData", err) + } + } + } + return nil +} +func (this *UpdateFileSecurityStatusResp) Validate() error { + return nil +} +func (this *ManualAntiReq) Validate() error { + for _, item := range this.SecurityStatusData { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("SecurityStatusData", err) + } + } + } + return nil +} +func (this *ManualAntiResp) Validate() error { + return nil +} +func (this *GetFileSecurityStatusReq) Validate() error { + return nil +} +func (this *GetFileSecurityStatusResp) Validate() error { + return nil +} diff --git a/api/files/files_triple.pb.go b/api/files/files_triple.pb.go index 8c0f384..34b9d5d 100644 --- a/api/files/files_triple.pb.go +++ b/api/files/files_triple.pb.go @@ -43,6 +43,9 @@ type FileClient interface { DirDownload(ctx context.Context, in *DirDownloadReq, opts ...grpc_go.CallOption) (File_DirDownloadClient, error) Usage(ctx context.Context, in *UsageReq, opts ...grpc_go.CallOption) (*UsageResp, common.ErrorWithAttachment) SecurityScan(ctx context.Context, in *SecurityScanReq, opts ...grpc_go.CallOption) (*SecurityScanResp, common.ErrorWithAttachment) + UpdateFileSecurityStatus(ctx context.Context, in *UpdateFileSecurityStatusReq, opts ...grpc_go.CallOption) (*UpdateFileSecurityStatusResp, common.ErrorWithAttachment) + ManualAnti(ctx context.Context, in *ManualAntiReq, opts ...grpc_go.CallOption) (*ManualAntiResp, common.ErrorWithAttachment) + GetFileSecurityStatus(ctx context.Context, in *GetFileSecurityStatusReq, opts ...grpc_go.CallOption) (*GetFileSecurityStatusResp, common.ErrorWithAttachment) } type fileClient struct { @@ -50,20 +53,23 @@ type fileClient struct { } type FileClientImpl struct { - List func(ctx context.Context, in *FileListReq) (*FileListResp, error) - Info func(ctx context.Context, in *FileInfoReq) (*FileInfoResp, error) - Create func(ctx context.Context, in *CreateReq) (*CreateResp, error) - Delete func(ctx context.Context, in *DeleteReq) (*DeleteResp, error) - Search func(ctx context.Context, in *SearchReq) (*SearchResp, error) - Upload func(ctx context.Context, in *UploadReq) (*UploadResp, error) - TusCreate func(ctx context.Context, in *TusCreateReq) (*TusCreateResp, error) - TusUpload func(ctx context.Context, in *TusUploadReq) (*TusUploadResp, error) - ResumableTransfer func(ctx context.Context, in *ResumableTransferReq) (*ResumableTransferResp, error) - Preview func(ctx context.Context, in *PreviewReq) (*PreviewResp, error) - Action func(ctx context.Context, in *ActionReq) (*ActionResp, error) - DirDownload func(ctx context.Context, in *DirDownloadReq) (File_DirDownloadClient, error) - Usage func(ctx context.Context, in *UsageReq) (*UsageResp, error) - SecurityScan func(ctx context.Context, in *SecurityScanReq) (*SecurityScanResp, error) + List func(ctx context.Context, in *FileListReq) (*FileListResp, error) + Info func(ctx context.Context, in *FileInfoReq) (*FileInfoResp, error) + Create func(ctx context.Context, in *CreateReq) (*CreateResp, error) + Delete func(ctx context.Context, in *DeleteReq) (*DeleteResp, error) + Search func(ctx context.Context, in *SearchReq) (*SearchResp, error) + Upload func(ctx context.Context, in *UploadReq) (*UploadResp, error) + TusCreate func(ctx context.Context, in *TusCreateReq) (*TusCreateResp, error) + TusUpload func(ctx context.Context, in *TusUploadReq) (*TusUploadResp, error) + ResumableTransfer func(ctx context.Context, in *ResumableTransferReq) (*ResumableTransferResp, error) + Preview func(ctx context.Context, in *PreviewReq) (*PreviewResp, error) + Action func(ctx context.Context, in *ActionReq) (*ActionResp, error) + DirDownload func(ctx context.Context, in *DirDownloadReq) (File_DirDownloadClient, error) + Usage func(ctx context.Context, in *UsageReq) (*UsageResp, error) + SecurityScan func(ctx context.Context, in *SecurityScanReq) (*SecurityScanResp, error) + UpdateFileSecurityStatus func(ctx context.Context, in *UpdateFileSecurityStatusReq) (*UpdateFileSecurityStatusResp, error) + ManualAnti func(ctx context.Context, in *ManualAntiReq) (*ManualAntiResp, error) + GetFileSecurityStatus func(ctx context.Context, in *GetFileSecurityStatusReq) (*GetFileSecurityStatusResp, error) } func (c *FileClientImpl) GetDubboStub(cc *triple.TripleConn) FileClient { @@ -189,6 +195,24 @@ func (c *fileClient) SecurityScan(ctx context.Context, in *SecurityScanReq, opts return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SecurityScan", in, out) } +func (c *fileClient) UpdateFileSecurityStatus(ctx context.Context, in *UpdateFileSecurityStatusReq, opts ...grpc_go.CallOption) (*UpdateFileSecurityStatusResp, common.ErrorWithAttachment) { + out := new(UpdateFileSecurityStatusResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateFileSecurityStatus", in, out) +} + +func (c *fileClient) ManualAnti(ctx context.Context, in *ManualAntiReq, opts ...grpc_go.CallOption) (*ManualAntiResp, common.ErrorWithAttachment) { + out := new(ManualAntiResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ManualAnti", in, out) +} + +func (c *fileClient) GetFileSecurityStatus(ctx context.Context, in *GetFileSecurityStatusReq, opts ...grpc_go.CallOption) (*GetFileSecurityStatusResp, common.ErrorWithAttachment) { + out := new(GetFileSecurityStatusResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetFileSecurityStatus", in, out) +} + // FileServer is the server API for File service. // All implementations must embed UnimplementedFileServer // for forward compatibility @@ -207,6 +231,9 @@ type FileServer interface { DirDownload(*DirDownloadReq, File_DirDownloadServer) error Usage(context.Context, *UsageReq) (*UsageResp, error) SecurityScan(context.Context, *SecurityScanReq) (*SecurityScanResp, error) + UpdateFileSecurityStatus(context.Context, *UpdateFileSecurityStatusReq) (*UpdateFileSecurityStatusResp, error) + ManualAnti(context.Context, *ManualAntiReq) (*ManualAntiResp, error) + GetFileSecurityStatus(context.Context, *GetFileSecurityStatusReq) (*GetFileSecurityStatusResp, error) mustEmbedUnimplementedFileServer() } @@ -257,6 +284,15 @@ func (UnimplementedFileServer) Usage(context.Context, *UsageReq) (*UsageResp, er func (UnimplementedFileServer) SecurityScan(context.Context, *SecurityScanReq) (*SecurityScanResp, error) { return nil, status.Errorf(codes.Unimplemented, "method SecurityScan not implemented") } +func (UnimplementedFileServer) UpdateFileSecurityStatus(context.Context, *UpdateFileSecurityStatusReq) (*UpdateFileSecurityStatusResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateFileSecurityStatus not implemented") +} +func (UnimplementedFileServer) ManualAnti(context.Context, *ManualAntiReq) (*ManualAntiResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ManualAnti not implemented") +} +func (UnimplementedFileServer) GetFileSecurityStatus(context.Context, *GetFileSecurityStatusReq) (*GetFileSecurityStatusResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFileSecurityStatus not implemented") +} func (s *UnimplementedFileServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -689,6 +725,93 @@ func _File_SecurityScan_Handler(srv interface{}, ctx context.Context, dec func(i return interceptor(ctx, in, info, handler) } +func _File_UpdateFileSecurityStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateFileSecurityStatusReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("UpdateFileSecurityStatus", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _File_ManualAnti_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ManualAntiReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("ManualAnti", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _File_GetFileSecurityStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFileSecurityStatusReq) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dubbo3.Dubbo3GrpcService) + args := []interface{}{} + args = append(args, in) + md, _ := metadata.FromIncomingContext(ctx) + invAttachment := make(map[string]interface{}, len(md)) + for k, v := range md { + invAttachment[k] = v + } + invo := invocation.NewRPCInvocation("GetFileSecurityStatus", args, invAttachment) + if interceptor == nil { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + info := &grpc_go.UnaryServerInfo{ + Server: srv, + FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string), + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.XXX_GetProxyImpl().Invoke(ctx, invo) + return result, result.Error() + } + return interceptor(ctx, in, info, handler) +} + // File_ServiceDesc is the grpc_go.ServiceDesc for File service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -748,6 +871,18 @@ var File_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "SecurityScan", Handler: _File_SecurityScan_Handler, }, + { + MethodName: "UpdateFileSecurityStatus", + Handler: _File_UpdateFileSecurityStatus_Handler, + }, + { + MethodName: "ManualAnti", + Handler: _File_ManualAnti_Handler, + }, + { + MethodName: "GetFileSecurityStatus", + Handler: _File_GetFileSecurityStatus_Handler, + }, }, Streams: []grpc_go.StreamDesc{ { diff --git a/pkg/router/router.go b/pkg/router/router.go index 101e3eb..7408f3a 100644 --- a/pkg/router/router.go +++ b/pkg/router/router.go @@ -152,7 +152,8 @@ func NewRouter() *gin.Engine { { // 素材库 - resourceRoute := v1.Group("/resource").Use(middleware.CheckWebLogin(service.AccountProvider)) + resourceRoute := v1.Group("/resource") + // .Use(middleware.CheckWebLogin(service.AccountProvider)) resourceRoute.GET("", file.Info) resourceRoute.DELETE("", file.Delete) @@ -168,6 +169,9 @@ func NewRouter() *gin.Engine { resourceRoute.GET("/list", file.List) resourceRoute.GET("/usage", file.Usage) resourceRoute.POST("/security/scan", file.SecurityScan) + resourceRoute.POST("/security/updata/securitystatus", file.UpdateFileSecurityStatus) + resourceRoute.POST("/security/anti", file.ManualAnti) + resourceRoute.POST("/security/status", file.GetFileSecurityStatus) } { diff --git a/pkg/service/file/file.go b/pkg/service/file/file.go index 2a4e85c..d5afc2c 100644 --- a/pkg/service/file/file.go +++ b/pkg/service/file/file.go @@ -2,6 +2,7 @@ package file import ( "bytes" + "context" "errors" "fonchain-fiee/api/files" "fonchain-fiee/pkg/service" @@ -290,28 +291,74 @@ func SecurityScan(ctx *gin.Context) { service.Error(ctx, err) return } - //后台异步执行扫描 - // go func() { - // 使用独立的 context,避免原请求 context 被取消 - // scanCtx, cancel := context.WithTimeout(context.Background(), 10*time.Minute) - // defer cancel() - // 执行安全扫描 - _, err := service.FilesProvider.SecurityScan(ctx, &req) - if err != nil { - // 记录错误日志 - zap.L().Error("安全扫描失败", - zap.String("url", req.Url), - zap.String("fileName", req.FileName), - zap.Error(err)) - } else { - zap.L().Info("安全扫描完成", - zap.String("url", req.Url), - zap.String("fileName", req.FileName)) - } - // }() - // 立即返回成功,表示任务已提交 + go func() { + // 使用独立的 context,避免原请求 context 被取消 + scanCtx, cancel := context.WithTimeout(context.Background(), 10*time.Minute) + defer cancel() + // 执行安全扫描 + + _, err := service.FilesProvider.SecurityScan(scanCtx, &req) + if err != nil { + // 记录错误日志 + zap.L().Error("安全扫描失败", + zap.String("url", req.Url), + zap.String("fileName", req.FileName), + zap.Error(err)) + } else { + zap.L().Info("安全扫描完成", + zap.String("url", req.Url), + zap.String("fileName", req.FileName)) + } + }() service.Success(ctx, gin.H{ "message": "安全扫描任务已提交,正在后台处理", }) } + +func UpdateFileSecurityStatus(ctx *gin.Context) { + var req files.UpdateFileSecurityStatusReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + resp, err := service.FilesProvider.UpdateFileSecurityStatus(ctx, &req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) +} + +func ManualAnti(ctx *gin.Context) { + var req files.ManualAntiReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + go func() { + resp, err := service.FilesProvider.ManualAnti(ctx, &req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) + }() + service.Success(ctx, gin.H{ + "message": "手动反制任务已提交,正在后台处理", + }) +} + +func GetFileSecurityStatus(ctx *gin.Context) { + var req files.GetFileSecurityStatusReq + if err := ctx.ShouldBindJSON(&req); err != nil { + service.Error(ctx, err) + return + } + resp, err := service.FilesProvider.GetFileSecurityStatus(ctx, &req) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) +}