// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.31.0
// 	protoc        (unknown)
// source: sys/api/menu/v1/menu.proto

package v1

import (
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	_ "github.com/go-saas/kit/pkg/blob"
	query "github.com/go-saas/kit/pkg/query"
	v1 "github.com/go-saas/kit/user/api/permission/v1"
	_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
	structpb "google.golang.org/protobuf/types/known/structpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type CreateMenuRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name        string                      `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Desc        string                      `protobuf:"bytes,5,opt,name=desc,proto3" json:"desc,omitempty"`
	Component   string                      `protobuf:"bytes,6,opt,name=component,proto3" json:"component,omitempty"`
	Requirement []*v1.PermissionRequirement `protobuf:"bytes,7,rep,name=requirement,proto3" json:"requirement,omitempty"`
	//parent menu
	Parent            string           `protobuf:"bytes,8,opt,name=parent,proto3" json:"parent,omitempty"`
	Props             *structpb.Struct `protobuf:"bytes,9,opt,name=props,proto3" json:"props,omitempty"`
	FullPath          string           `protobuf:"bytes,10,opt,name=full_path,json=fullPath,proto3" json:"full_path,omitempty"`
	Priority          int32            `protobuf:"varint,11,opt,name=priority,proto3" json:"priority,omitempty"`
	IgnoreAuth        bool             `protobuf:"varint,12,opt,name=ignore_auth,json=ignoreAuth,proto3" json:"ignore_auth,omitempty"`
	Icon              string           `protobuf:"bytes,13,opt,name=icon,proto3" json:"icon,omitempty"`
	Iframe            string           `protobuf:"bytes,14,opt,name=iframe,proto3" json:"iframe,omitempty"`
	MicroApp          string           `protobuf:"bytes,15,opt,name=micro_app,json=microApp,proto3" json:"micro_app,omitempty"`
	Meta              *structpb.Struct `protobuf:"bytes,16,opt,name=meta,proto3" json:"meta,omitempty"`
	Title             string           `protobuf:"bytes,17,opt,name=title,proto3" json:"title,omitempty"`
	Path              string           `protobuf:"bytes,18,opt,name=path,proto3" json:"path,omitempty"`
	Redirect          string           `protobuf:"bytes,19,opt,name=redirect,proto3" json:"redirect,omitempty"`
	MicroAppName      string           `protobuf:"bytes,20,opt,name=micro_app_name,json=microAppName,proto3" json:"micro_app_name,omitempty"`
	MicroAppBaseRoute string           `protobuf:"bytes,21,opt,name=micro_app_base_route,json=microAppBaseRoute,proto3" json:"micro_app_base_route,omitempty"`
	MicroAppDev       string           `protobuf:"bytes,22,opt,name=micro_app_dev,json=microAppDev,proto3" json:"micro_app_dev,omitempty"`
	HideInMenu        bool             `protobuf:"varint,23,opt,name=hide_in_menu,json=hideInMenu,proto3" json:"hide_in_menu,omitempty"`
}

func (x *CreateMenuRequest) Reset() {
	*x = CreateMenuRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sys_api_menu_v1_menu_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateMenuRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateMenuRequest) ProtoMessage() {}

func (x *CreateMenuRequest) ProtoReflect() protoreflect.Message {
	mi := &file_sys_api_menu_v1_menu_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateMenuRequest.ProtoReflect.Descriptor instead.
func (*CreateMenuRequest) Descriptor() ([]byte, []int) {
	return file_sys_api_menu_v1_menu_proto_rawDescGZIP(), []int{0}
}

func (x *CreateMenuRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *CreateMenuRequest) GetDesc() string {
	if x != nil {
		return x.Desc
	}
	return ""
}

func (x *CreateMenuRequest) GetComponent() string {
	if x != nil {
		return x.Component
	}
	return ""
}

func (x *CreateMenuRequest) GetRequirement() []*v1.PermissionRequirement {
	if x != nil {
		return x.Requirement
	}
	return nil
}

func (x *CreateMenuRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *CreateMenuRequest) GetProps() *structpb.Struct {
	if x != nil {
		return x.Props
	}
	return nil
}

func (x *CreateMenuRequest) GetFullPath() string {
	if x != nil {
		return x.FullPath
	}
	return ""
}

func (x *CreateMenuRequest) GetPriority() int32 {
	if x != nil {
		return x.Priority
	}
	return 0
}

func (x *CreateMenuRequest) GetIgnoreAuth() bool {
	if x != nil {
		return x.IgnoreAuth
	}
	return false
}

func (x *CreateMenuRequest) GetIcon() string {
	if x != nil {
		return x.Icon
	}
	return ""
}

func (x *CreateMenuRequest) GetIframe() string {
	if x != nil {
		return x.Iframe
	}
	return ""
}

func (x *CreateMenuRequest) GetMicroApp() string {
	if x != nil {
		return x.MicroApp
	}
	return ""
}

func (x *CreateMenuRequest) GetMeta() *structpb.Struct {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *CreateMenuRequest) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *CreateMenuRequest) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *CreateMenuRequest) GetRedirect() string {
	if x != nil {
		return x.Redirect
	}
	return ""
}

func (x *CreateMenuRequest) GetMicroAppName() string {
	if x != nil {
		return x.MicroAppName
	}
	return ""
}

func (x *CreateMenuRequest) GetMicroAppBaseRoute() string {
	if x != nil {
		return x.MicroAppBaseRoute
	}
	return ""
}

func (x *CreateMenuRequest) GetMicroAppDev() string {
	if x != nil {
		return x.MicroAppDev
	}
	return ""
}

func (x *CreateMenuRequest) GetHideInMenu() bool {
	if x != nil {
		return x.HideInMenu
	}
	return false
}

type UpdateMenuRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Menu       *UpdateMenu            `protobuf:"bytes,1,opt,name=menu,proto3" json:"menu,omitempty"`
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
}

func (x *UpdateMenuRequest) Reset() {
	*x = UpdateMenuRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sys_api_menu_v1_menu_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateMenuRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateMenuRequest) ProtoMessage() {}

func (x *UpdateMenuRequest) ProtoReflect() protoreflect.Message {
	mi := &file_sys_api_menu_v1_menu_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateMenuRequest.ProtoReflect.Descriptor instead.
func (*UpdateMenuRequest) Descriptor() ([]byte, []int) {
	return file_sys_api_menu_v1_menu_proto_rawDescGZIP(), []int{1}
}

func (x *UpdateMenuRequest) GetMenu() *UpdateMenu {
	if x != nil {
		return x.Menu
	}
	return nil
}

func (x *UpdateMenuRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.UpdateMask
	}
	return nil
}

type UpdateMenu struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id          string                      `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name        string                      `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Desc        string                      `protobuf:"bytes,5,opt,name=desc,proto3" json:"desc,omitempty"`
	Component   string                      `protobuf:"bytes,6,opt,name=component,proto3" json:"component,omitempty"`
	Requirement []*v1.PermissionRequirement `protobuf:"bytes,7,rep,name=requirement,proto3" json:"requirement,omitempty"`
	//parent menu
	Parent            string           `protobuf:"bytes,8,opt,name=parent,proto3" json:"parent,omitempty"`
	Props             *structpb.Struct `protobuf:"bytes,9,opt,name=props,proto3" json:"props,omitempty"`
	FullPath          string           `protobuf:"bytes,10,opt,name=full_path,json=fullPath,proto3" json:"full_path,omitempty"`
	Priority          int32            `protobuf:"varint,11,opt,name=priority,proto3" json:"priority,omitempty"`
	IgnoreAuth        bool             `protobuf:"varint,12,opt,name=ignore_auth,json=ignoreAuth,proto3" json:"ignore_auth,omitempty"`
	Icon              string           `protobuf:"bytes,13,opt,name=icon,proto3" json:"icon,omitempty"`
	Iframe            string           `protobuf:"bytes,14,opt,name=iframe,proto3" json:"iframe,omitempty"`
	MicroApp          string           `protobuf:"bytes,15,opt,name=micro_app,json=microApp,proto3" json:"micro_app,omitempty"`
	Meta              *structpb.Struct `protobuf:"bytes,16,opt,name=meta,proto3" json:"meta,omitempty"`
	Title             string           `protobuf:"bytes,17,opt,name=title,proto3" json:"title,omitempty"`
	Path              string           `protobuf:"bytes,18,opt,name=path,proto3" json:"path,omitempty"`
	Redirect          string           `protobuf:"bytes,19,opt,name=redirect,proto3" json:"redirect,omitempty"`
	MicroAppName      string           `protobuf:"bytes,20,opt,name=micro_app_name,json=microAppName,proto3" json:"micro_app_name,omitempty"`
	MicroAppBaseRoute string           `protobuf:"bytes,21,opt,name=micro_app_base_route,json=microAppBaseRoute,proto3" json:"micro_app_base_route,omitempty"`
	MicroAppDev       string           `protobuf:"bytes,22,opt,name=micro_app_dev,json=microAppDev,proto3" json:"micro_app_dev,omitempty"`
	HideInMenu        bool             `protobuf:"varint,23,opt,name=hide_in_menu,json=hideInMenu,proto3" json:"hide_in_menu,omitempty"`
}

func (x *UpdateMenu) Reset() {
	*x = UpdateMenu{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sys_api_menu_v1_menu_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateMenu) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateMenu) ProtoMessage() {}

func (x *UpdateMenu) ProtoReflect() protoreflect.Message {
	mi := &file_sys_api_menu_v1_menu_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateMenu.ProtoReflect.Descriptor instead.
func (*UpdateMenu) Descriptor() ([]byte, []int) {
	return file_sys_api_menu_v1_menu_proto_rawDescGZIP(), []int{2}
}

func (x *UpdateMenu) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *UpdateMenu) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateMenu) GetDesc() string {
	if x != nil {
		return x.Desc
	}
	return ""
}

func (x *UpdateMenu) GetComponent() string {
	if x != nil {
		return x.Component
	}
	return ""
}

func (x *UpdateMenu) GetRequirement() []*v1.PermissionRequirement {
	if x != nil {
		return x.Requirement
	}
	return nil
}

func (x *UpdateMenu) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *UpdateMenu) GetProps() *structpb.Struct {
	if x != nil {
		return x.Props
	}
	return nil
}

func (x *UpdateMenu) GetFullPath() string {
	if x != nil {
		return x.FullPath
	}
	return ""
}

func (x *UpdateMenu) GetPriority() int32 {
	if x != nil {
		return x.Priority
	}
	return 0
}

func (x *UpdateMenu) GetIgnoreAuth() bool {
	if x != nil {
		return x.IgnoreAuth
	}
	return false
}

func (x *UpdateMenu) GetIcon() string {
	if x != nil {
		return x.Icon
	}
	return ""
}

func (x *UpdateMenu) GetIframe() string {
	if x != nil {
		return x.Iframe
	}
	return ""
}

func (x *UpdateMenu) GetMicroApp() string {
	if x != nil {
		return x.MicroApp
	}
	return ""
}

func (x *UpdateMenu) GetMeta() *structpb.Struct {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *UpdateMenu) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *UpdateMenu) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *UpdateMenu) GetRedirect() string {
	if x != nil {
		return x.Redirect
	}
	return ""
}

func (x *UpdateMenu) GetMicroAppName() string {
	if x != nil {
		return x.MicroAppName
	}
	return ""
}

func (x *UpdateMenu) GetMicroAppBaseRoute() string {
	if x != nil {
		return x.MicroAppBaseRoute
	}
	return ""
}

func (x *UpdateMenu) GetMicroAppDev() string {
	if x != nil {
		return x.MicroAppDev
	}
	return ""
}

func (x *UpdateMenu) GetHideInMenu() bool {
	if x != nil {
		return x.HideInMenu
	}
	return false
}

type DeleteMenuRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *DeleteMenuRequest) Reset() {
	*x = DeleteMenuRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sys_api_menu_v1_menu_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteMenuRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteMenuRequest) ProtoMessage() {}

func (x *DeleteMenuRequest) ProtoReflect() protoreflect.Message {
	mi := &file_sys_api_menu_v1_menu_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteMenuRequest.ProtoReflect.Descriptor instead.
func (*DeleteMenuRequest) Descriptor() ([]byte, []int) {
	return file_sys_api_menu_v1_menu_proto_rawDescGZIP(), []int{3}
}

func (x *DeleteMenuRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type DeleteMenuReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id   string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteMenuReply) Reset() {
	*x = DeleteMenuReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sys_api_menu_v1_menu_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteMenuReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteMenuReply) ProtoMessage() {}

func (x *DeleteMenuReply) ProtoReflect() protoreflect.Message {
	mi := &file_sys_api_menu_v1_menu_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteMenuReply.ProtoReflect.Descriptor instead.
func (*DeleteMenuReply) Descriptor() ([]byte, []int) {
	return file_sys_api_menu_v1_menu_proto_rawDescGZIP(), []int{4}
}

func (x *DeleteMenuReply) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *DeleteMenuReply) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type GetMenuRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *GetMenuRequest) Reset() {
	*x = GetMenuRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sys_api_menu_v1_menu_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetMenuRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetMenuRequest) ProtoMessage() {}

func (x *GetMenuRequest) ProtoReflect() protoreflect.Message {
	mi := &file_sys_api_menu_v1_menu_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetMenuRequest.ProtoReflect.Descriptor instead.
func (*GetMenuRequest) Descriptor() ([]byte, []int) {
	return file_sys_api_menu_v1_menu_proto_rawDescGZIP(), []int{5}
}

func (x *GetMenuRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type MenuFilter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id     *query.StringFilterOperation `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name   *query.StringFilterOperation `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Parent *query.StringFilterOperation `protobuf:"bytes,3,opt,name=parent,proto3" json:"parent,omitempty"`
}

func (x *MenuFilter) Reset() {
	*x = MenuFilter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sys_api_menu_v1_menu_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MenuFilter) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MenuFilter) ProtoMessage() {}

func (x *MenuFilter) ProtoReflect() protoreflect.Message {
	mi := &file_sys_api_menu_v1_menu_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MenuFilter.ProtoReflect.Descriptor instead.
func (*MenuFilter) Descriptor() ([]byte, []int) {
	return file_sys_api_menu_v1_menu_proto_rawDescGZIP(), []int{6}
}

func (x *MenuFilter) GetId() *query.StringFilterOperation {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *MenuFilter) GetName() *query.StringFilterOperation {
	if x != nil {
		return x.Name
	}
	return nil
}

func (x *MenuFilter) GetParent() *query.StringFilterOperation {
	if x != nil {
		return x.Parent
	}
	return nil
}

type ListMenuRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PageOffset int32                  `protobuf:"varint,1,opt,name=page_offset,json=pageOffset,proto3" json:"page_offset,omitempty"`
	PageSize   int32                  `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	Search     string                 `protobuf:"bytes,3,opt,name=search,proto3" json:"search,omitempty"`
	Sort       []string               `protobuf:"bytes,4,rep,name=sort,proto3" json:"sort,omitempty"`
	Fields     *fieldmaskpb.FieldMask `protobuf:"bytes,5,opt,name=fields,proto3" json:"fields,omitempty"`
	Filter     *MenuFilter            `protobuf:"bytes,6,opt,name=filter,proto3" json:"filter,omitempty"`
}

func (x *ListMenuRequest) Reset() {
	*x = ListMenuRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sys_api_menu_v1_menu_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListMenuRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListMenuRequest) ProtoMessage() {}

func (x *ListMenuRequest) ProtoReflect() protoreflect.Message {
	mi := &file_sys_api_menu_v1_menu_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListMenuRequest.ProtoReflect.Descriptor instead.
func (*ListMenuRequest) Descriptor() ([]byte, []int) {
	return file_sys_api_menu_v1_menu_proto_rawDescGZIP(), []int{7}
}

func (x *ListMenuRequest) GetPageOffset() int32 {
	if x != nil {
		return x.PageOffset
	}
	return 0
}

func (x *ListMenuRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListMenuRequest) GetSearch() string {
	if x != nil {
		return x.Search
	}
	return ""
}

func (x *ListMenuRequest) GetSort() []string {
	if x != nil {
		return x.Sort
	}
	return nil
}

func (x *ListMenuRequest) GetFields() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.Fields
	}
	return nil
}

func (x *ListMenuRequest) GetFilter() *MenuFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

type ListMenuReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TotalSize  int32   `protobuf:"varint,1,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"`
	FilterSize int32   `protobuf:"varint,2,opt,name=filter_size,json=filterSize,proto3" json:"filter_size,omitempty"`
	Items      []*Menu `protobuf:"bytes,3,rep,name=items,proto3" json:"items,omitempty"`
}

func (x *ListMenuReply) Reset() {
	*x = ListMenuReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sys_api_menu_v1_menu_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListMenuReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListMenuReply) ProtoMessage() {}

func (x *ListMenuReply) ProtoReflect() protoreflect.Message {
	mi := &file_sys_api_menu_v1_menu_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListMenuReply.ProtoReflect.Descriptor instead.
func (*ListMenuReply) Descriptor() ([]byte, []int) {
	return file_sys_api_menu_v1_menu_proto_rawDescGZIP(), []int{8}
}

func (x *ListMenuReply) GetTotalSize() int32 {
	if x != nil {
		return x.TotalSize
	}
	return 0
}

func (x *ListMenuReply) GetFilterSize() int32 {
	if x != nil {
		return x.FilterSize
	}
	return 0
}

func (x *ListMenuReply) GetItems() []*Menu {
	if x != nil {
		return x.Items
	}
	return nil
}

type Menu struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id          string                      `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name        string                      `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	CreatedAt   *timestamppb.Timestamp      `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3,oneof" json:"created_at,omitempty"`
	Desc        string                      `protobuf:"bytes,5,opt,name=desc,proto3" json:"desc,omitempty"`
	Component   string                      `protobuf:"bytes,6,opt,name=component,proto3" json:"component,omitempty"`
	Requirement []*v1.PermissionRequirement `protobuf:"bytes,7,rep,name=requirement,proto3" json:"requirement,omitempty"`
	//parent menu
	Parent            string           `protobuf:"bytes,8,opt,name=parent,proto3" json:"parent,omitempty"`
	Props             *structpb.Struct `protobuf:"bytes,9,opt,name=props,proto3" json:"props,omitempty"`
	FullPath          string           `protobuf:"bytes,10,opt,name=full_path,json=fullPath,proto3" json:"full_path,omitempty"`
	Priority          int32            `protobuf:"varint,11,opt,name=priority,proto3" json:"priority,omitempty"`
	IgnoreAuth        bool             `protobuf:"varint,12,opt,name=ignore_auth,json=ignoreAuth,proto3" json:"ignore_auth,omitempty"`
	Icon              string           `protobuf:"bytes,13,opt,name=icon,proto3" json:"icon,omitempty"`
	Iframe            string           `protobuf:"bytes,14,opt,name=iframe,proto3" json:"iframe,omitempty"`
	MicroApp          string           `protobuf:"bytes,15,opt,name=micro_app,json=microApp,proto3" json:"micro_app,omitempty"`
	Meta              *structpb.Struct `protobuf:"bytes,16,opt,name=meta,proto3" json:"meta,omitempty"`
	Title             string           `protobuf:"bytes,17,opt,name=title,proto3" json:"title,omitempty"`
	Path              string           `protobuf:"bytes,18,opt,name=path,proto3" json:"path,omitempty"`
	Redirect          string           `protobuf:"bytes,19,opt,name=redirect,proto3" json:"redirect,omitempty"`
	MicroAppName      string           `protobuf:"bytes,20,opt,name=micro_app_name,json=microAppName,proto3" json:"micro_app_name,omitempty"`
	MicroAppBaseRoute string           `protobuf:"bytes,21,opt,name=micro_app_base_route,json=microAppBaseRoute,proto3" json:"micro_app_base_route,omitempty"`
	MicroAppDev       string           `protobuf:"bytes,22,opt,name=micro_app_dev,json=microAppDev,proto3" json:"micro_app_dev,omitempty"`
	HideInMenu        bool             `protobuf:"varint,23,opt,name=hide_in_menu,json=hideInMenu,proto3" json:"hide_in_menu,omitempty"`
}

func (x *Menu) Reset() {
	*x = Menu{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sys_api_menu_v1_menu_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Menu) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Menu) ProtoMessage() {}

func (x *Menu) ProtoReflect() protoreflect.Message {
	mi := &file_sys_api_menu_v1_menu_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Menu.ProtoReflect.Descriptor instead.
func (*Menu) Descriptor() ([]byte, []int) {
	return file_sys_api_menu_v1_menu_proto_rawDescGZIP(), []int{9}
}

func (x *Menu) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Menu) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Menu) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *Menu) GetDesc() string {
	if x != nil {
		return x.Desc
	}
	return ""
}

func (x *Menu) GetComponent() string {
	if x != nil {
		return x.Component
	}
	return ""
}

func (x *Menu) GetRequirement() []*v1.PermissionRequirement {
	if x != nil {
		return x.Requirement
	}
	return nil
}

func (x *Menu) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *Menu) GetProps() *structpb.Struct {
	if x != nil {
		return x.Props
	}
	return nil
}

func (x *Menu) GetFullPath() string {
	if x != nil {
		return x.FullPath
	}
	return ""
}

func (x *Menu) GetPriority() int32 {
	if x != nil {
		return x.Priority
	}
	return 0
}

func (x *Menu) GetIgnoreAuth() bool {
	if x != nil {
		return x.IgnoreAuth
	}
	return false
}

func (x *Menu) GetIcon() string {
	if x != nil {
		return x.Icon
	}
	return ""
}

func (x *Menu) GetIframe() string {
	if x != nil {
		return x.Iframe
	}
	return ""
}

func (x *Menu) GetMicroApp() string {
	if x != nil {
		return x.MicroApp
	}
	return ""
}

func (x *Menu) GetMeta() *structpb.Struct {
	if x != nil {
		return x.Meta
	}
	return nil
}

func (x *Menu) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *Menu) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *Menu) GetRedirect() string {
	if x != nil {
		return x.Redirect
	}
	return ""
}

func (x *Menu) GetMicroAppName() string {
	if x != nil {
		return x.MicroAppName
	}
	return ""
}

func (x *Menu) GetMicroAppBaseRoute() string {
	if x != nil {
		return x.MicroAppBaseRoute
	}
	return ""
}

func (x *Menu) GetMicroAppDev() string {
	if x != nil {
		return x.MicroAppDev
	}
	return ""
}

func (x *Menu) GetHideInMenu() bool {
	if x != nil {
		return x.HideInMenu
	}
	return false
}

type GetAvailableMenusRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *GetAvailableMenusRequest) Reset() {
	*x = GetAvailableMenusRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sys_api_menu_v1_menu_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetAvailableMenusRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetAvailableMenusRequest) ProtoMessage() {}

func (x *GetAvailableMenusRequest) ProtoReflect() protoreflect.Message {
	mi := &file_sys_api_menu_v1_menu_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetAvailableMenusRequest.ProtoReflect.Descriptor instead.
func (*GetAvailableMenusRequest) Descriptor() ([]byte, []int) {
	return file_sys_api_menu_v1_menu_proto_rawDescGZIP(), []int{10}
}

type GetAvailableMenusReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Items []*Menu `protobuf:"bytes,3,rep,name=items,proto3" json:"items,omitempty"`
}

func (x *GetAvailableMenusReply) Reset() {
	*x = GetAvailableMenusReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sys_api_menu_v1_menu_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetAvailableMenusReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetAvailableMenusReply) ProtoMessage() {}

func (x *GetAvailableMenusReply) ProtoReflect() protoreflect.Message {
	mi := &file_sys_api_menu_v1_menu_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetAvailableMenusReply.ProtoReflect.Descriptor instead.
func (*GetAvailableMenusReply) Descriptor() ([]byte, []int) {
	return file_sys_api_menu_v1_menu_proto_rawDescGZIP(), []int{11}
}

func (x *GetAvailableMenusReply) GetItems() []*Menu {
	if x != nil {
		return x.Items
	}
	return nil
}

var File_sys_api_menu_v1_menu_proto protoreflect.FileDescriptor

var file_sys_api_menu_v1_menu_proto_rawDesc = []byte{
	0x0a, 0x1a, 0x73, 0x79, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x76,
	0x31, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x73, 0x79,
	0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65,
	0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73,
	0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65,
	0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x62, 0x6c, 0x6f, 0x62,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f,
	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f,
	0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x1a, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb0, 0x05, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02,
	0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73,
	0x63, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12,
	0x4f, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e,
	0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65,
	0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
	0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x70,
	0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74,
	0x52, 0x05, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f,
	0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c,
	0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79,
	0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79,
	0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x41, 0x75, 0x74,
	0x68, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18,
	0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a,
	0x09, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6d, 0x65,
	0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63,
	0x74, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,
	0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74,
	0x68, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x13, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x24, 0x0a,
	0x0e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x41, 0x70, 0x70, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x61, 0x70, 0x70,
	0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x11, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x41, 0x70, 0x70, 0x42, 0x61, 0x73, 0x65, 0x52,
	0x6f, 0x75, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x61, 0x70,
	0x70, 0x5f, 0x64, 0x65, 0x76, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x69, 0x63,
	0x72, 0x6f, 0x41, 0x70, 0x70, 0x44, 0x65, 0x76, 0x12, 0x20, 0x0a, 0x0c, 0x68, 0x69, 0x64, 0x65,
	0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
	0x68, 0x69, 0x64, 0x65, 0x49, 0x6e, 0x4d, 0x65, 0x6e, 0x75, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x3c, 0x0a, 0x04, 0x6d, 0x65, 0x6e, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
	0x2e, 0x73, 0x79, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31,
	0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x42, 0x0b, 0xe0, 0x41, 0x02,
	0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6d, 0x65, 0x6e, 0x75, 0x12, 0x3b,
	0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52,
	0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xc5, 0x05, 0x0a, 0x0a,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x1a, 0x0a, 0x02, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02,
	0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0, 0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63,
	0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75,
	0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
	0x75, 0x73, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73,
	0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x72, 0x65,
	0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72,
	0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
	0x74, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x70, 0x73,
	0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a,
	0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x67, 0x6e,
	0x6f, 0x72, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
	0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63,
	0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x16,
	0x0a, 0x06, 0x69, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x69, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f,
	0x61, 0x70, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x63, 0x72, 0x6f,
	0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x12,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65,
	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f,
	0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
	0x6d, 0x69, 0x63, 0x72, 0x6f, 0x41, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x14,
	0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72,
	0x6f, 0x75, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x69, 0x63, 0x72,
	0x6f, 0x41, 0x70, 0x70, 0x42, 0x61, 0x73, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x22, 0x0a,
	0x0d, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x65, 0x76, 0x18, 0x16,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x41, 0x70, 0x70, 0x44, 0x65,
	0x76, 0x12, 0x20, 0x0a, 0x0c, 0x68, 0x69, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6e,
	0x75, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x69, 0x64, 0x65, 0x49, 0x6e, 0x4d,
	0x65, 0x6e, 0x75, 0x22, 0x23, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6e,
	0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x35, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22,
	0x2c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x1a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe0,
	0x41, 0x02, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0xc0, 0x01,
	0x0a, 0x0a, 0x4d, 0x65, 0x6e, 0x75, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x26, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x26, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
	0x22, 0xe4, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x66, 0x66,
	0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4f,
	0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69,
	0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69,
	0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f,
	0x72, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x32,
	0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c,
	0x64, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e,
	0x75, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52,
	0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x7c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x4d,
	0x65, 0x6e, 0x75, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61,
	0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x6f,
	0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d,
	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x79, 0x73, 0x2e, 0x61, 0x70,
	0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x05,
	0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xf6, 0x05, 0x0a, 0x04, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x0e,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88,
	0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
	0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
	0x6e, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x75, 0x73, 0x65, 0x72,
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
	0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
	0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x0a,
	0x05, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
	0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x12, 0x1b, 0x0a, 0x09,
	0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69,
	0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69,
	0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f,
	0x61, 0x75, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x67, 0x6e, 0x6f,
	0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x66,
	0x72, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x66, 0x72, 0x61,
	0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x61, 0x70, 0x70, 0x18,
	0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x41, 0x70, 0x70, 0x12,
	0x2b, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05,
	0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74,
	0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65,
	0x63, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65,
	0x63, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x61, 0x70, 0x70, 0x5f,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72,
	0x6f, 0x41, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x69, 0x63, 0x72,
	0x6f, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65,
	0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x41, 0x70, 0x70,
	0x42, 0x61, 0x73, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x69, 0x63,
	0x72, 0x6f, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x65, 0x76, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0b, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x41, 0x70, 0x70, 0x44, 0x65, 0x76, 0x12, 0x20, 0x0a,
	0x0c, 0x68, 0x69, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6e, 0x75, 0x18, 0x17, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x69, 0x64, 0x65, 0x49, 0x6e, 0x4d, 0x65, 0x6e, 0x75, 0x42,
	0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x22, 0x1a,
	0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65,
	0x6e, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x16, 0x47, 0x65,
	0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x73, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x79, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65,
	0x6e, 0x75, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d,
	0x73, 0x32, 0xce, 0x05, 0x0a, 0x0b, 0x4d, 0x65, 0x6e, 0x75, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x12, 0x7b, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x20, 0x2e,
	0x73, 0x79, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31, 0x2e,
	0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x1e, 0x2e, 0x73, 0x79, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76,
	0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22,
	0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x5a, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x76,
	0x31, 0x2f, 0x73, 0x79, 0x73, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12,
	0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x79, 0x73, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x73, 0x12, 0x5c,
	0x0a, 0x07, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x1f, 0x2e, 0x73, 0x79, 0x73, 0x2e,
	0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d,
	0x65, 0x6e, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x79, 0x73,
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6e,
	0x75, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x73,
	0x79, 0x73, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x60, 0x0a, 0x0a,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x22, 0x2e, 0x73, 0x79, 0x73,
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15,
	0x2e, 0x73, 0x79, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31,
	0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a,
	0x22, 0x0c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x79, 0x73, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x12, 0x87,
	0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x22, 0x2e,
	0x73, 0x79, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31, 0x2e,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x15, 0x2e, 0x73, 0x79, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75,
	0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38,
	0x3a, 0x01, 0x2a, 0x5a, 0x1b, 0x3a, 0x01, 0x2a, 0x32, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x79,
	0x73, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x7b, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x69, 0x64, 0x7d,
	0x1a, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x79, 0x73, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x7b,
	0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x69, 0x64, 0x7d, 0x12, 0x6d, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x22, 0x2e, 0x73, 0x79, 0x73, 0x2e, 0x61, 0x70, 0x69,
	0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d,
	0x65, 0x6e, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x79, 0x73,
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x19, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x79, 0x73, 0x2f, 0x6d, 0x65,
	0x6e, 0x75, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x88, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41,
	0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x73, 0x12, 0x29, 0x2e,
	0x73, 0x79, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31, 0x2e,
	0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x6e, 0x75,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x79, 0x73, 0x2e, 0x61,
	0x70, 0x69, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x76,
	0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x6e, 0x75, 0x73, 0x52, 0x65, 0x70, 0x6c,
	0x79, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x73,
	0x79, 0x73, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x73, 0x2f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62,
	0x6c, 0x65, 0x42, 0xaf, 0x01, 0x92, 0x41, 0x80, 0x01, 0x12, 0x15, 0x0a, 0x0e, 0x53, 0x79, 0x73,
	0x74, 0x65, 0x6d, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x32, 0x03, 0x31, 0x2e, 0x30,
	0x5a, 0x59, 0x0a, 0x57, 0x0a, 0x06, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x12, 0x4d, 0x08, 0x02,
	0x12, 0x38, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x20, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x64,
	0x20, 0x62, 0x79, 0x20, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x3a, 0x20, 0x42, 0x65, 0x61, 0x72,
	0x65, 0x72, 0x20, 0x3c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x3e, 0x1a, 0x0d, 0x41, 0x75, 0x74, 0x68,
	0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x02, 0x62, 0x0c, 0x0a, 0x0a, 0x0a,
	0x06, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x12, 0x00, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x68, 0x75,
	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2d, 0x73, 0x61, 0x61, 0x73, 0x2f, 0x6b, 0x69,
	0x74, 0x2f, 0x73, 0x79, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x65, 0x6e, 0x75, 0x2f, 0x76,
	0x31, 0x3b, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_sys_api_menu_v1_menu_proto_rawDescOnce sync.Once
	file_sys_api_menu_v1_menu_proto_rawDescData = file_sys_api_menu_v1_menu_proto_rawDesc
)

func file_sys_api_menu_v1_menu_proto_rawDescGZIP() []byte {
	file_sys_api_menu_v1_menu_proto_rawDescOnce.Do(func() {
		file_sys_api_menu_v1_menu_proto_rawDescData = protoimpl.X.CompressGZIP(file_sys_api_menu_v1_menu_proto_rawDescData)
	})
	return file_sys_api_menu_v1_menu_proto_rawDescData
}

var file_sys_api_menu_v1_menu_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
var file_sys_api_menu_v1_menu_proto_goTypes = []interface{}{
	(*CreateMenuRequest)(nil),           // 0: sys.api.menu.v1.CreateMenuRequest
	(*UpdateMenuRequest)(nil),           // 1: sys.api.menu.v1.UpdateMenuRequest
	(*UpdateMenu)(nil),                  // 2: sys.api.menu.v1.UpdateMenu
	(*DeleteMenuRequest)(nil),           // 3: sys.api.menu.v1.DeleteMenuRequest
	(*DeleteMenuReply)(nil),             // 4: sys.api.menu.v1.DeleteMenuReply
	(*GetMenuRequest)(nil),              // 5: sys.api.menu.v1.GetMenuRequest
	(*MenuFilter)(nil),                  // 6: sys.api.menu.v1.MenuFilter
	(*ListMenuRequest)(nil),             // 7: sys.api.menu.v1.ListMenuRequest
	(*ListMenuReply)(nil),               // 8: sys.api.menu.v1.ListMenuReply
	(*Menu)(nil),                        // 9: sys.api.menu.v1.Menu
	(*GetAvailableMenusRequest)(nil),    // 10: sys.api.menu.v1.GetAvailableMenusRequest
	(*GetAvailableMenusReply)(nil),      // 11: sys.api.menu.v1.GetAvailableMenusReply
	(*v1.PermissionRequirement)(nil),    // 12: user.api.permission.v1.PermissionRequirement
	(*structpb.Struct)(nil),             // 13: google.protobuf.Struct
	(*fieldmaskpb.FieldMask)(nil),       // 14: google.protobuf.FieldMask
	(*query.StringFilterOperation)(nil), // 15: query.operation.StringFilterOperation
	(*timestamppb.Timestamp)(nil),       // 16: google.protobuf.Timestamp
}
var file_sys_api_menu_v1_menu_proto_depIdxs = []int32{
	12, // 0: sys.api.menu.v1.CreateMenuRequest.requirement:type_name -> user.api.permission.v1.PermissionRequirement
	13, // 1: sys.api.menu.v1.CreateMenuRequest.props:type_name -> google.protobuf.Struct
	13, // 2: sys.api.menu.v1.CreateMenuRequest.meta:type_name -> google.protobuf.Struct
	2,  // 3: sys.api.menu.v1.UpdateMenuRequest.menu:type_name -> sys.api.menu.v1.UpdateMenu
	14, // 4: sys.api.menu.v1.UpdateMenuRequest.update_mask:type_name -> google.protobuf.FieldMask
	12, // 5: sys.api.menu.v1.UpdateMenu.requirement:type_name -> user.api.permission.v1.PermissionRequirement
	13, // 6: sys.api.menu.v1.UpdateMenu.props:type_name -> google.protobuf.Struct
	13, // 7: sys.api.menu.v1.UpdateMenu.meta:type_name -> google.protobuf.Struct
	15, // 8: sys.api.menu.v1.MenuFilter.id:type_name -> query.operation.StringFilterOperation
	15, // 9: sys.api.menu.v1.MenuFilter.name:type_name -> query.operation.StringFilterOperation
	15, // 10: sys.api.menu.v1.MenuFilter.parent:type_name -> query.operation.StringFilterOperation
	14, // 11: sys.api.menu.v1.ListMenuRequest.fields:type_name -> google.protobuf.FieldMask
	6,  // 12: sys.api.menu.v1.ListMenuRequest.filter:type_name -> sys.api.menu.v1.MenuFilter
	9,  // 13: sys.api.menu.v1.ListMenuReply.items:type_name -> sys.api.menu.v1.Menu
	16, // 14: sys.api.menu.v1.Menu.created_at:type_name -> google.protobuf.Timestamp
	12, // 15: sys.api.menu.v1.Menu.requirement:type_name -> user.api.permission.v1.PermissionRequirement
	13, // 16: sys.api.menu.v1.Menu.props:type_name -> google.protobuf.Struct
	13, // 17: sys.api.menu.v1.Menu.meta:type_name -> google.protobuf.Struct
	9,  // 18: sys.api.menu.v1.GetAvailableMenusReply.items:type_name -> sys.api.menu.v1.Menu
	7,  // 19: sys.api.menu.v1.MenuService.ListMenu:input_type -> sys.api.menu.v1.ListMenuRequest
	5,  // 20: sys.api.menu.v1.MenuService.GetMenu:input_type -> sys.api.menu.v1.GetMenuRequest
	0,  // 21: sys.api.menu.v1.MenuService.CreateMenu:input_type -> sys.api.menu.v1.CreateMenuRequest
	1,  // 22: sys.api.menu.v1.MenuService.UpdateMenu:input_type -> sys.api.menu.v1.UpdateMenuRequest
	3,  // 23: sys.api.menu.v1.MenuService.DeleteMenu:input_type -> sys.api.menu.v1.DeleteMenuRequest
	10, // 24: sys.api.menu.v1.MenuService.GetAvailableMenus:input_type -> sys.api.menu.v1.GetAvailableMenusRequest
	8,  // 25: sys.api.menu.v1.MenuService.ListMenu:output_type -> sys.api.menu.v1.ListMenuReply
	9,  // 26: sys.api.menu.v1.MenuService.GetMenu:output_type -> sys.api.menu.v1.Menu
	9,  // 27: sys.api.menu.v1.MenuService.CreateMenu:output_type -> sys.api.menu.v1.Menu
	9,  // 28: sys.api.menu.v1.MenuService.UpdateMenu:output_type -> sys.api.menu.v1.Menu
	4,  // 29: sys.api.menu.v1.MenuService.DeleteMenu:output_type -> sys.api.menu.v1.DeleteMenuReply
	11, // 30: sys.api.menu.v1.MenuService.GetAvailableMenus:output_type -> sys.api.menu.v1.GetAvailableMenusReply
	25, // [25:31] is the sub-list for method output_type
	19, // [19:25] is the sub-list for method input_type
	19, // [19:19] is the sub-list for extension type_name
	19, // [19:19] is the sub-list for extension extendee
	0,  // [0:19] is the sub-list for field type_name
}

func init() { file_sys_api_menu_v1_menu_proto_init() }
func file_sys_api_menu_v1_menu_proto_init() {
	if File_sys_api_menu_v1_menu_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_sys_api_menu_v1_menu_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateMenuRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sys_api_menu_v1_menu_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateMenuRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sys_api_menu_v1_menu_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateMenu); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sys_api_menu_v1_menu_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteMenuRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sys_api_menu_v1_menu_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteMenuReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sys_api_menu_v1_menu_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetMenuRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sys_api_menu_v1_menu_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MenuFilter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sys_api_menu_v1_menu_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListMenuRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sys_api_menu_v1_menu_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListMenuReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sys_api_menu_v1_menu_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Menu); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sys_api_menu_v1_menu_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetAvailableMenusRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sys_api_menu_v1_menu_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetAvailableMenusReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_sys_api_menu_v1_menu_proto_msgTypes[9].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_sys_api_menu_v1_menu_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   12,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_sys_api_menu_v1_menu_proto_goTypes,
		DependencyIndexes: file_sys_api_menu_v1_menu_proto_depIdxs,
		MessageInfos:      file_sys_api_menu_v1_menu_proto_msgTypes,
	}.Build()
	File_sys_api_menu_v1_menu_proto = out.File
	file_sys_api_menu_v1_menu_proto_rawDesc = nil
	file_sys_api_menu_v1_menu_proto_goTypes = nil
	file_sys_api_menu_v1_menu_proto_depIdxs = nil
}
