// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.31.0
// 	protoc        v4.25.1
// source: volume.proto

package proto

import (
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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 PresignedURLMethod int32

const (
	PresignedURLMethod_GetObject  PresignedURLMethod = 0
	PresignedURLMethod_PutObject  PresignedURLMethod = 1
	PresignedURLMethod_HeadObject PresignedURLMethod = 2
	PresignedURLMethod_UploadPart PresignedURLMethod = 3
)

// Enum value maps for PresignedURLMethod.
var (
	PresignedURLMethod_name = map[int32]string{
		0: "GetObject",
		1: "PutObject",
		2: "HeadObject",
		3: "UploadPart",
	}
	PresignedURLMethod_value = map[string]int32{
		"GetObject":  0,
		"PutObject":  1,
		"HeadObject": 2,
		"UploadPart": 3,
	}
)

func (x PresignedURLMethod) Enum() *PresignedURLMethod {
	p := new(PresignedURLMethod)
	*p = x
	return p
}

func (x PresignedURLMethod) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (PresignedURLMethod) Descriptor() protoreflect.EnumDescriptor {
	return file_volume_proto_enumTypes[0].Descriptor()
}

func (PresignedURLMethod) Type() protoreflect.EnumType {
	return &file_volume_proto_enumTypes[0]
}

func (x PresignedURLMethod) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use PresignedURLMethod.Descriptor instead.
func (PresignedURLMethod) EnumDescriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{0}
}

type VolumeInstance 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"`
	Size          uint64                 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"`
	CreatedAt     *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	UpdatedAt     *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	WorkspaceId   string                 `protobuf:"bytes,6,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"`
	WorkspaceName string                 `protobuf:"bytes,7,opt,name=workspace_name,json=workspaceName,proto3" json:"workspace_name,omitempty"`
}

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

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

func (*VolumeInstance) ProtoMessage() {}

func (x *VolumeInstance) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 VolumeInstance.ProtoReflect.Descriptor instead.
func (*VolumeInstance) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{0}
}

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

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

func (x *VolumeInstance) GetSize() uint64 {
	if x != nil {
		return x.Size
	}
	return 0
}

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

func (x *VolumeInstance) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

func (x *VolumeInstance) GetWorkspaceId() string {
	if x != nil {
		return x.WorkspaceId
	}
	return ""
}

func (x *VolumeInstance) GetWorkspaceName() string {
	if x != nil {
		return x.WorkspaceName
	}
	return ""
}

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

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

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

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

func (*GetOrCreateVolumeRequest) ProtoMessage() {}

func (x *GetOrCreateVolumeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 GetOrCreateVolumeRequest.ProtoReflect.Descriptor instead.
func (*GetOrCreateVolumeRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{1}
}

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

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

	Ok     bool            `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ErrMsg string          `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
	Volume *VolumeInstance `protobuf:"bytes,3,opt,name=volume,proto3" json:"volume,omitempty"`
}

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

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

func (*GetOrCreateVolumeResponse) ProtoMessage() {}

func (x *GetOrCreateVolumeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 GetOrCreateVolumeResponse.ProtoReflect.Descriptor instead.
func (*GetOrCreateVolumeResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{2}
}

func (x *GetOrCreateVolumeResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *GetOrCreateVolumeResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *GetOrCreateVolumeResponse) GetVolume() *VolumeInstance {
	if x != nil {
		return x.Volume
	}
	return nil
}

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

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

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

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

func (*DeleteVolumeRequest) ProtoMessage() {}

func (x *DeleteVolumeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 DeleteVolumeRequest.ProtoReflect.Descriptor instead.
func (*DeleteVolumeRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{3}
}

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

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

	Ok     bool   `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
}

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

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

func (*DeleteVolumeResponse) ProtoMessage() {}

func (x *DeleteVolumeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 DeleteVolumeResponse.ProtoReflect.Descriptor instead.
func (*DeleteVolumeResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{4}
}

func (x *DeleteVolumeResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *DeleteVolumeResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

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

	Path    string                 `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	Size    uint64                 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`
	ModTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=mod_time,json=modTime,proto3" json:"mod_time,omitempty"`
	IsDir   bool                   `protobuf:"varint,4,opt,name=is_dir,json=isDir,proto3" json:"is_dir,omitempty"`
}

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

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

func (*PathInfo) ProtoMessage() {}

func (x *PathInfo) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 PathInfo.ProtoReflect.Descriptor instead.
func (*PathInfo) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{5}
}

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

func (x *PathInfo) GetSize() uint64 {
	if x != nil {
		return x.Size
	}
	return 0
}

func (x *PathInfo) GetModTime() *timestamppb.Timestamp {
	if x != nil {
		return x.ModTime
	}
	return nil
}

func (x *PathInfo) GetIsDir() bool {
	if x != nil {
		return x.IsDir
	}
	return false
}

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

	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
}

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

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

func (*ListPathRequest) ProtoMessage() {}

func (x *ListPathRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 ListPathRequest.ProtoReflect.Descriptor instead.
func (*ListPathRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{6}
}

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

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

	Ok        bool        `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ErrMsg    string      `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
	PathInfos []*PathInfo `protobuf:"bytes,3,rep,name=path_infos,json=pathInfos,proto3" json:"path_infos,omitempty"`
}

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

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

func (*ListPathResponse) ProtoMessage() {}

func (x *ListPathResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 ListPathResponse.ProtoReflect.Descriptor instead.
func (*ListPathResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{7}
}

func (x *ListPathResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *ListPathResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *ListPathResponse) GetPathInfos() []*PathInfo {
	if x != nil {
		return x.PathInfos
	}
	return nil
}

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

	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
}

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

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

func (*DeletePathRequest) ProtoMessage() {}

func (x *DeletePathRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 DeletePathRequest.ProtoReflect.Descriptor instead.
func (*DeletePathRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{8}
}

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

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

	Ok      bool     `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ErrMsg  string   `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
	Deleted []string `protobuf:"bytes,3,rep,name=deleted,proto3" json:"deleted,omitempty"`
}

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

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

func (*DeletePathResponse) ProtoMessage() {}

func (x *DeletePathResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 DeletePathResponse.ProtoReflect.Descriptor instead.
func (*DeletePathResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{9}
}

func (x *DeletePathResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *DeletePathResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *DeletePathResponse) GetDeleted() []string {
	if x != nil {
		return x.Deleted
	}
	return nil
}

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

	Path    string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	Content []byte `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
}

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

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

func (*CopyPathRequest) ProtoMessage() {}

func (x *CopyPathRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 CopyPathRequest.ProtoReflect.Descriptor instead.
func (*CopyPathRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{10}
}

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

func (x *CopyPathRequest) GetContent() []byte {
	if x != nil {
		return x.Content
	}
	return nil
}

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

	Ok       bool   `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ObjectId string `protobuf:"bytes,2,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
	ErrMsg   string `protobuf:"bytes,3,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
}

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

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

func (*CopyPathResponse) ProtoMessage() {}

func (x *CopyPathResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 CopyPathResponse.ProtoReflect.Descriptor instead.
func (*CopyPathResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{11}
}

func (x *CopyPathResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *CopyPathResponse) GetObjectId() string {
	if x != nil {
		return x.ObjectId
	}
	return ""
}

func (x *CopyPathResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

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

func (x *ListVolumesRequest) Reset() {
	*x = ListVolumesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListVolumesRequest) ProtoMessage() {}

func (x *ListVolumesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[12]
	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 ListVolumesRequest.ProtoReflect.Descriptor instead.
func (*ListVolumesRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{12}
}

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

	Ok      bool              `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ErrMsg  string            `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
	Volumes []*VolumeInstance `protobuf:"bytes,3,rep,name=volumes,proto3" json:"volumes,omitempty"`
}

func (x *ListVolumesResponse) Reset() {
	*x = ListVolumesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListVolumesResponse) ProtoMessage() {}

func (x *ListVolumesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[13]
	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 ListVolumesResponse.ProtoReflect.Descriptor instead.
func (*ListVolumesResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{13}
}

func (x *ListVolumesResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *ListVolumesResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *ListVolumesResponse) GetVolumes() []*VolumeInstance {
	if x != nil {
		return x.Volumes
	}
	return nil
}

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

	OriginalPath string `protobuf:"bytes,1,opt,name=original_path,json=originalPath,proto3" json:"original_path,omitempty"`
	NewPath      string `protobuf:"bytes,2,opt,name=new_path,json=newPath,proto3" json:"new_path,omitempty"`
}

func (x *MovePathRequest) Reset() {
	*x = MovePathRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MovePathRequest) ProtoMessage() {}

func (x *MovePathRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[14]
	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 MovePathRequest.ProtoReflect.Descriptor instead.
func (*MovePathRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{14}
}

func (x *MovePathRequest) GetOriginalPath() string {
	if x != nil {
		return x.OriginalPath
	}
	return ""
}

func (x *MovePathRequest) GetNewPath() string {
	if x != nil {
		return x.NewPath
	}
	return ""
}

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

	Ok      bool   `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ErrMsg  string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
	NewPath string `protobuf:"bytes,3,opt,name=new_path,json=newPath,proto3" json:"new_path,omitempty"`
}

func (x *MovePathResponse) Reset() {
	*x = MovePathResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MovePathResponse) ProtoMessage() {}

func (x *MovePathResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[15]
	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 MovePathResponse.ProtoReflect.Descriptor instead.
func (*MovePathResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{15}
}

func (x *MovePathResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *MovePathResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *MovePathResponse) GetNewPath() string {
	if x != nil {
		return x.NewPath
	}
	return ""
}

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

	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
}

func (x *StatPathRequest) Reset() {
	*x = StatPathRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*StatPathRequest) ProtoMessage() {}

func (x *StatPathRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[16]
	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 StatPathRequest.ProtoReflect.Descriptor instead.
func (*StatPathRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{16}
}

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

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

	Ok       bool      `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ErrMsg   string    `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
	PathInfo *PathInfo `protobuf:"bytes,3,opt,name=path_info,json=pathInfo,proto3" json:"path_info,omitempty"`
}

func (x *StatPathResponse) Reset() {
	*x = StatPathResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*StatPathResponse) ProtoMessage() {}

func (x *StatPathResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[17]
	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 StatPathResponse.ProtoReflect.Descriptor instead.
func (*StatPathResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{17}
}

func (x *StatPathResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *StatPathResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *StatPathResponse) GetPathInfo() *PathInfo {
	if x != nil {
		return x.PathInfo
	}
	return nil
}

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

	UploadId      string `protobuf:"bytes,1,opt,name=upload_id,json=uploadId,proto3" json:"upload_id,omitempty"`
	PartNumber    uint32 `protobuf:"varint,2,opt,name=part_number,json=partNumber,proto3" json:"part_number,omitempty"`
	ContentLength uint64 `protobuf:"varint,3,opt,name=content_length,json=contentLength,proto3" json:"content_length,omitempty"`
	ContentType   string `protobuf:"bytes,4,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"`
}

func (x *PresignedURLParams) Reset() {
	*x = PresignedURLParams{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PresignedURLParams) ProtoMessage() {}

func (x *PresignedURLParams) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[18]
	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 PresignedURLParams.ProtoReflect.Descriptor instead.
func (*PresignedURLParams) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{18}
}

func (x *PresignedURLParams) GetUploadId() string {
	if x != nil {
		return x.UploadId
	}
	return ""
}

func (x *PresignedURLParams) GetPartNumber() uint32 {
	if x != nil {
		return x.PartNumber
	}
	return 0
}

func (x *PresignedURLParams) GetContentLength() uint64 {
	if x != nil {
		return x.ContentLength
	}
	return 0
}

func (x *PresignedURLParams) GetContentType() string {
	if x != nil {
		return x.ContentType
	}
	return ""
}

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

func (x *GetFileServiceInfoRequest) Reset() {
	*x = GetFileServiceInfoRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetFileServiceInfoRequest) ProtoMessage() {}

func (x *GetFileServiceInfoRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[19]
	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 GetFileServiceInfoRequest.ProtoReflect.Descriptor instead.
func (*GetFileServiceInfoRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{19}
}

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

	Ok             bool   `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ErrMsg         string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
	Enabled        bool   `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"`
	CommandVersion uint32 `protobuf:"varint,4,opt,name=command_version,json=commandVersion,proto3" json:"command_version,omitempty"`
}

func (x *GetFileServiceInfoResponse) Reset() {
	*x = GetFileServiceInfoResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetFileServiceInfoResponse) ProtoMessage() {}

func (x *GetFileServiceInfoResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[20]
	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 GetFileServiceInfoResponse.ProtoReflect.Descriptor instead.
func (*GetFileServiceInfoResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{20}
}

func (x *GetFileServiceInfoResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *GetFileServiceInfoResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *GetFileServiceInfoResponse) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *GetFileServiceInfoResponse) GetCommandVersion() uint32 {
	if x != nil {
		return x.CommandVersion
	}
	return 0
}

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

	VolumeName string              `protobuf:"bytes,1,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"`
	VolumePath string              `protobuf:"bytes,2,opt,name=volume_path,json=volumePath,proto3" json:"volume_path,omitempty"`
	Expires    uint32              `protobuf:"varint,3,opt,name=expires,proto3" json:"expires,omitempty"`
	Method     PresignedURLMethod  `protobuf:"varint,4,opt,name=method,proto3,enum=volume.PresignedURLMethod" json:"method,omitempty"`
	Params     *PresignedURLParams `protobuf:"bytes,5,opt,name=params,proto3" json:"params,omitempty"`
}

func (x *CreatePresignedURLRequest) Reset() {
	*x = CreatePresignedURLRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreatePresignedURLRequest) ProtoMessage() {}

func (x *CreatePresignedURLRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[21]
	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 CreatePresignedURLRequest.ProtoReflect.Descriptor instead.
func (*CreatePresignedURLRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{21}
}

func (x *CreatePresignedURLRequest) GetVolumeName() string {
	if x != nil {
		return x.VolumeName
	}
	return ""
}

func (x *CreatePresignedURLRequest) GetVolumePath() string {
	if x != nil {
		return x.VolumePath
	}
	return ""
}

func (x *CreatePresignedURLRequest) GetExpires() uint32 {
	if x != nil {
		return x.Expires
	}
	return 0
}

func (x *CreatePresignedURLRequest) GetMethod() PresignedURLMethod {
	if x != nil {
		return x.Method
	}
	return PresignedURLMethod_GetObject
}

func (x *CreatePresignedURLRequest) GetParams() *PresignedURLParams {
	if x != nil {
		return x.Params
	}
	return nil
}

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

	Ok     bool   `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
	Url    string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
}

func (x *CreatePresignedURLResponse) Reset() {
	*x = CreatePresignedURLResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreatePresignedURLResponse) ProtoMessage() {}

func (x *CreatePresignedURLResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[22]
	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 CreatePresignedURLResponse.ProtoReflect.Descriptor instead.
func (*CreatePresignedURLResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{22}
}

func (x *CreatePresignedURLResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *CreatePresignedURLResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *CreatePresignedURLResponse) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

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

	VolumeName string `protobuf:"bytes,1,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"`
	VolumePath string `protobuf:"bytes,2,opt,name=volume_path,json=volumePath,proto3" json:"volume_path,omitempty"`
	ChunkSize  uint64 `protobuf:"varint,3,opt,name=chunk_size,json=chunkSize,proto3" json:"chunk_size,omitempty"`
	FileSize   uint64 `protobuf:"varint,4,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"`
}

func (x *CreateMultipartUploadRequest) Reset() {
	*x = CreateMultipartUploadRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreateMultipartUploadRequest) ProtoMessage() {}

func (x *CreateMultipartUploadRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[23]
	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 CreateMultipartUploadRequest.ProtoReflect.Descriptor instead.
func (*CreateMultipartUploadRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{23}
}

func (x *CreateMultipartUploadRequest) GetVolumeName() string {
	if x != nil {
		return x.VolumeName
	}
	return ""
}

func (x *CreateMultipartUploadRequest) GetVolumePath() string {
	if x != nil {
		return x.VolumePath
	}
	return ""
}

func (x *CreateMultipartUploadRequest) GetChunkSize() uint64 {
	if x != nil {
		return x.ChunkSize
	}
	return 0
}

func (x *CreateMultipartUploadRequest) GetFileSize() uint64 {
	if x != nil {
		return x.FileSize
	}
	return 0
}

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

	Number uint32 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
	Start  uint64 `protobuf:"varint,2,opt,name=start,proto3" json:"start,omitempty"`
	End    uint64 `protobuf:"varint,3,opt,name=end,proto3" json:"end,omitempty"`
	Url    string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"`
}

func (x *FileUploadPart) Reset() {
	*x = FileUploadPart{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FileUploadPart) ProtoMessage() {}

func (x *FileUploadPart) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[24]
	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 FileUploadPart.ProtoReflect.Descriptor instead.
func (*FileUploadPart) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{24}
}

func (x *FileUploadPart) GetNumber() uint32 {
	if x != nil {
		return x.Number
	}
	return 0
}

func (x *FileUploadPart) GetStart() uint64 {
	if x != nil {
		return x.Start
	}
	return 0
}

func (x *FileUploadPart) GetEnd() uint64 {
	if x != nil {
		return x.End
	}
	return 0
}

func (x *FileUploadPart) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

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

	Ok              bool              `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ErrMsg          string            `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
	UploadId        string            `protobuf:"bytes,3,opt,name=upload_id,json=uploadId,proto3" json:"upload_id,omitempty"`
	FileUploadParts []*FileUploadPart `protobuf:"bytes,4,rep,name=file_upload_parts,json=fileUploadParts,proto3" json:"file_upload_parts,omitempty"`
}

func (x *CreateMultipartUploadResponse) Reset() {
	*x = CreateMultipartUploadResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CreateMultipartUploadResponse) ProtoMessage() {}

func (x *CreateMultipartUploadResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[25]
	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 CreateMultipartUploadResponse.ProtoReflect.Descriptor instead.
func (*CreateMultipartUploadResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{25}
}

func (x *CreateMultipartUploadResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *CreateMultipartUploadResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

func (x *CreateMultipartUploadResponse) GetUploadId() string {
	if x != nil {
		return x.UploadId
	}
	return ""
}

func (x *CreateMultipartUploadResponse) GetFileUploadParts() []*FileUploadPart {
	if x != nil {
		return x.FileUploadParts
	}
	return nil
}

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

	Number uint32 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
	Etag   string `protobuf:"bytes,2,opt,name=etag,proto3" json:"etag,omitempty"`
}

func (x *CompletedPart) Reset() {
	*x = CompletedPart{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CompletedPart) ProtoMessage() {}

func (x *CompletedPart) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[26]
	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 CompletedPart.ProtoReflect.Descriptor instead.
func (*CompletedPart) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{26}
}

func (x *CompletedPart) GetNumber() uint32 {
	if x != nil {
		return x.Number
	}
	return 0
}

func (x *CompletedPart) GetEtag() string {
	if x != nil {
		return x.Etag
	}
	return ""
}

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

	UploadId       string           `protobuf:"bytes,1,opt,name=upload_id,json=uploadId,proto3" json:"upload_id,omitempty"`
	VolumeName     string           `protobuf:"bytes,2,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"`
	VolumePath     string           `protobuf:"bytes,3,opt,name=volume_path,json=volumePath,proto3" json:"volume_path,omitempty"`
	CompletedParts []*CompletedPart `protobuf:"bytes,4,rep,name=completed_parts,json=completedParts,proto3" json:"completed_parts,omitempty"`
}

func (x *CompleteMultipartUploadRequest) Reset() {
	*x = CompleteMultipartUploadRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CompleteMultipartUploadRequest) ProtoMessage() {}

func (x *CompleteMultipartUploadRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[27]
	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 CompleteMultipartUploadRequest.ProtoReflect.Descriptor instead.
func (*CompleteMultipartUploadRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{27}
}

func (x *CompleteMultipartUploadRequest) GetUploadId() string {
	if x != nil {
		return x.UploadId
	}
	return ""
}

func (x *CompleteMultipartUploadRequest) GetVolumeName() string {
	if x != nil {
		return x.VolumeName
	}
	return ""
}

func (x *CompleteMultipartUploadRequest) GetVolumePath() string {
	if x != nil {
		return x.VolumePath
	}
	return ""
}

func (x *CompleteMultipartUploadRequest) GetCompletedParts() []*CompletedPart {
	if x != nil {
		return x.CompletedParts
	}
	return nil
}

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

	Ok     bool   `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
}

func (x *CompleteMultipartUploadResponse) Reset() {
	*x = CompleteMultipartUploadResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CompleteMultipartUploadResponse) ProtoMessage() {}

func (x *CompleteMultipartUploadResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_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 CompleteMultipartUploadResponse.ProtoReflect.Descriptor instead.
func (*CompleteMultipartUploadResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{28}
}

func (x *CompleteMultipartUploadResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *CompleteMultipartUploadResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

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

	UploadId   string `protobuf:"bytes,1,opt,name=upload_id,json=uploadId,proto3" json:"upload_id,omitempty"`
	VolumeName string `protobuf:"bytes,2,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"`
	VolumePath string `protobuf:"bytes,3,opt,name=volume_path,json=volumePath,proto3" json:"volume_path,omitempty"`
}

func (x *AbortMultipartUploadRequest) Reset() {
	*x = AbortMultipartUploadRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AbortMultipartUploadRequest) ProtoMessage() {}

func (x *AbortMultipartUploadRequest) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[29]
	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 AbortMultipartUploadRequest.ProtoReflect.Descriptor instead.
func (*AbortMultipartUploadRequest) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{29}
}

func (x *AbortMultipartUploadRequest) GetUploadId() string {
	if x != nil {
		return x.UploadId
	}
	return ""
}

func (x *AbortMultipartUploadRequest) GetVolumeName() string {
	if x != nil {
		return x.VolumeName
	}
	return ""
}

func (x *AbortMultipartUploadRequest) GetVolumePath() string {
	if x != nil {
		return x.VolumePath
	}
	return ""
}

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

	Ok     bool   `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
	ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
}

func (x *AbortMultipartUploadResponse) Reset() {
	*x = AbortMultipartUploadResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_volume_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AbortMultipartUploadResponse) ProtoMessage() {}

func (x *AbortMultipartUploadResponse) ProtoReflect() protoreflect.Message {
	mi := &file_volume_proto_msgTypes[30]
	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 AbortMultipartUploadResponse.ProtoReflect.Descriptor instead.
func (*AbortMultipartUploadResponse) Descriptor() ([]byte, []int) {
	return file_volume_proto_rawDescGZIP(), []int{30}
}

func (x *AbortMultipartUploadResponse) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *AbortMultipartUploadResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

var File_volume_proto protoreflect.FileDescriptor

var file_volume_proto_rawDesc = []byte{
	0x0a, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06,
	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 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, 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, 0x22, 0x88, 0x02, 0x0a, 0x0e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
	0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 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, 0x12, 0x0a, 0x04,
	0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65,
	0x12, 0x39, 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,
	0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70,
	0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x6f,
	0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72,
	0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65,
	0x22, 0x2e, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56,
	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x22, 0x74, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56,
	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a,
	0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x17, 0x0a,
	0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e,
	0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x06,
	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x29, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x22, 0x3f, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72,
	0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d,
	0x73, 0x67, 0x22, 0x80, 0x01, 0x0a, 0x08, 0x50, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
	0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x5f, 0x74,
	0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x15,
	0x0a, 0x06, 0x69, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
	0x69, 0x73, 0x44, 0x69, 0x72, 0x22, 0x25, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74,
	0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x6c, 0x0a, 0x10,
	0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b,
	0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x0a, 0x70, 0x61, 0x74,
	0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e,
	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x09, 0x70, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x27, 0x0a, 0x11, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
	0x61, 0x74, 0x68, 0x22, 0x57, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74,
	0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72,
	0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d,
	0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x3f, 0x0a, 0x0f,
	0x43, 0x6f, 0x70, 0x79, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
	0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x58, 0x0a,
	0x10, 0x43, 0x6f, 0x70, 0x79, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f,
	0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x17,
	0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x14, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x56,
	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x70, 0x0a,
	0x13, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x02, 0x6f, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x30, 0x0a,
	0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x22,
	0x51, 0x0a, 0x0f, 0x4d, 0x6f, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x70,
	0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69,
	0x6e, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x70,
	0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x50, 0x61,
	0x74, 0x68, 0x22, 0x56, 0x0a, 0x10, 0x4d, 0x6f, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73,
	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12,
	0x19, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x74, 0x68, 0x22, 0x25, 0x0a, 0x0f, 0x53, 0x74,
	0x61, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a,
	0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74,
	0x68, 0x22, 0x6a, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2d,
	0x0a, 0x09, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x10, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x49,
	0x6e, 0x66, 0x6f, 0x52, 0x08, 0x70, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x9c, 0x01,
	0x0a, 0x12, 0x50, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49,
	0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62,
	0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65,
	0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74,
	0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e,
	0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x1b, 0x0a, 0x19,
	0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x47, 0x65,
	0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f,
	0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73,
	0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x56, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x22, 0xdf, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50,
	0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x70, 0x61,
	0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
	0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x12, 0x32,
	0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a,
	0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65,
	0x64, 0x55, 0x52, 0x4c, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68,
	0x6f, 0x64, 0x12, 0x32, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x73,
	0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06,
	0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x57, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x50, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x02, 0x6f, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a,
	0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22,
	0x9c, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70,
	0x61, 0x72, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d,
	0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x61,
	0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x53, 0x69, 0x7a,
	0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x62,
	0x0a, 0x0e, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x74,
	0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10,
	0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x65, 0x6e, 0x64,
	0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
	0x72, 0x6c, 0x22, 0xa9, 0x01, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c,
	0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x02, 0x6f, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1b, 0x0a,
	0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x11, 0x66, 0x69,
	0x6c, 0x65, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18,
	0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x46,
	0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x74, 0x52, 0x0f, 0x66,
	0x69, 0x6c, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x74, 0x73, 0x22, 0x3b,
	0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x74, 0x12,
	0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x22, 0xbf, 0x01, 0x0a, 0x1e,
	0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72,
	0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b,
	0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x76,
	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x3e, 0x0a,
	0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x73,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e,
	0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x74, 0x52, 0x0e, 0x63,
	0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x74, 0x73, 0x22, 0x4a, 0x0a,
	0x1f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61,
	0x72, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b,
	0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x7c, 0x0a, 0x1b, 0x41, 0x62, 0x6f,
	0x72, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61,
	0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f,
	0x61, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x70, 0x6c,
	0x6f, 0x61, 0x64, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
	0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c,
	0x75, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x47, 0x0a, 0x1c, 0x41, 0x62, 0x6f, 0x72, 0x74,
	0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d,
	0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67,
	0x2a, 0x52, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c,
	0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a,
	0x65, 0x63, 0x74, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x75, 0x74, 0x4f, 0x62, 0x6a, 0x65,
	0x63, 0x74, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65,
	0x63, 0x74, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61,
	0x72, 0x74, 0x10, 0x03, 0x32, 0xec, 0x0b, 0x0a, 0x0d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6d, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x6f,
	0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e,
	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x43, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x3a, 0x01, 0x2a, 0x22, 0x08, 0x2f, 0x76, 0x6f,
	0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56,
	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x76, 0x6f,
	0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x64, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x12, 0x58, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
	0x65, 0x73, 0x12, 0x1a, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b,
	0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x56, 0x0a,
	0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, 0x2e, 0x76, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b,
	0x70, 0x61, 0x74, 0x68, 0x7d, 0x12, 0x66, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50,
	0x61, 0x74, 0x68, 0x12, 0x19, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a,
	0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61,
	0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93,
	0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f,
	0x7b, 0x70, 0x61, 0x74, 0x68, 0x7d, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x64, 0x0a,
	0x0e, 0x43, 0x6f, 0x70, 0x79, 0x50, 0x61, 0x74, 0x68, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12,
	0x17, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x50, 0x61, 0x74,
	0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
	0x65, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f,
	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x63, 0x6f, 0x70, 0x79, 0x2d, 0x70, 0x61, 0x74,
	0x68, 0x28, 0x01, 0x12, 0x67, 0x0a, 0x08, 0x4d, 0x6f, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12,
	0x17, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x50, 0x61, 0x74,
	0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
	0x65, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d, 0x2f,
	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61,
	0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x7d, 0x2f, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x5b, 0x0a, 0x08,
	0x53, 0x74, 0x61, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
	0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x18, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50,
	0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x70,
	0x61, 0x74, 0x68, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x12, 0x7f, 0x0a, 0x12, 0x47, 0x65, 0x74,
	0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x21, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x46,
	0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a,
	0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x2d, 0x73, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x7e, 0x0a, 0x12, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c,
	0x12, 0x21, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x50, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x50, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a,
	0x01, 0x2a, 0x22, 0x16, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x65,
	0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2d, 0x75, 0x72, 0x6c, 0x12, 0x8a, 0x01, 0x0a, 0x15, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x55, 0x70,
	0x6c, 0x6f, 0x61, 0x64, 0x12, 0x24, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x55, 0x70, 0x6c,
	0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x6f, 0x6c,
	0x75, 0x6d, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70,
	0x61, 0x72, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x76,
	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74,
	0x2d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x99, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6d, 0x70,
	0x6c, 0x65, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x55, 0x70, 0x6c,
	0x6f, 0x61, 0x64, 0x12, 0x26, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x43, 0x6f, 0x6d,
	0x70, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x55, 0x70,
	0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x6f,
	0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x75, 0x6c,
	0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x22,
	0x22, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70,
	0x61, 0x72, 0x74, 0x2d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6c,
	0x65, 0x74, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x14, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x4d, 0x75, 0x6c,
	0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x23, 0x2e, 0x76,
	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69,
	0x70, 0x61, 0x72, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x24, 0x2e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74,
	0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a,
	0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x6d, 0x75, 0x6c,
	0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x2f, 0x61, 0x62,
	0x6f, 0x72, 0x74, 0x42, 0x23, 0x5a, 0x21, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
	0x6d, 0x2f, 0x62, 0x65, 0x61, 0x6d, 0x2d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, 0x65, 0x74,
	0x61, 0x39, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_volume_proto_rawDescOnce sync.Once
	file_volume_proto_rawDescData = file_volume_proto_rawDesc
)

func file_volume_proto_rawDescGZIP() []byte {
	file_volume_proto_rawDescOnce.Do(func() {
		file_volume_proto_rawDescData = protoimpl.X.CompressGZIP(file_volume_proto_rawDescData)
	})
	return file_volume_proto_rawDescData
}

var file_volume_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_volume_proto_msgTypes = make([]protoimpl.MessageInfo, 31)
var file_volume_proto_goTypes = []interface{}{
	(PresignedURLMethod)(0),                 // 0: volume.PresignedURLMethod
	(*VolumeInstance)(nil),                  // 1: volume.VolumeInstance
	(*GetOrCreateVolumeRequest)(nil),        // 2: volume.GetOrCreateVolumeRequest
	(*GetOrCreateVolumeResponse)(nil),       // 3: volume.GetOrCreateVolumeResponse
	(*DeleteVolumeRequest)(nil),             // 4: volume.DeleteVolumeRequest
	(*DeleteVolumeResponse)(nil),            // 5: volume.DeleteVolumeResponse
	(*PathInfo)(nil),                        // 6: volume.PathInfo
	(*ListPathRequest)(nil),                 // 7: volume.ListPathRequest
	(*ListPathResponse)(nil),                // 8: volume.ListPathResponse
	(*DeletePathRequest)(nil),               // 9: volume.DeletePathRequest
	(*DeletePathResponse)(nil),              // 10: volume.DeletePathResponse
	(*CopyPathRequest)(nil),                 // 11: volume.CopyPathRequest
	(*CopyPathResponse)(nil),                // 12: volume.CopyPathResponse
	(*ListVolumesRequest)(nil),              // 13: volume.ListVolumesRequest
	(*ListVolumesResponse)(nil),             // 14: volume.ListVolumesResponse
	(*MovePathRequest)(nil),                 // 15: volume.MovePathRequest
	(*MovePathResponse)(nil),                // 16: volume.MovePathResponse
	(*StatPathRequest)(nil),                 // 17: volume.StatPathRequest
	(*StatPathResponse)(nil),                // 18: volume.StatPathResponse
	(*PresignedURLParams)(nil),              // 19: volume.PresignedURLParams
	(*GetFileServiceInfoRequest)(nil),       // 20: volume.GetFileServiceInfoRequest
	(*GetFileServiceInfoResponse)(nil),      // 21: volume.GetFileServiceInfoResponse
	(*CreatePresignedURLRequest)(nil),       // 22: volume.CreatePresignedURLRequest
	(*CreatePresignedURLResponse)(nil),      // 23: volume.CreatePresignedURLResponse
	(*CreateMultipartUploadRequest)(nil),    // 24: volume.CreateMultipartUploadRequest
	(*FileUploadPart)(nil),                  // 25: volume.FileUploadPart
	(*CreateMultipartUploadResponse)(nil),   // 26: volume.CreateMultipartUploadResponse
	(*CompletedPart)(nil),                   // 27: volume.CompletedPart
	(*CompleteMultipartUploadRequest)(nil),  // 28: volume.CompleteMultipartUploadRequest
	(*CompleteMultipartUploadResponse)(nil), // 29: volume.CompleteMultipartUploadResponse
	(*AbortMultipartUploadRequest)(nil),     // 30: volume.AbortMultipartUploadRequest
	(*AbortMultipartUploadResponse)(nil),    // 31: volume.AbortMultipartUploadResponse
	(*timestamppb.Timestamp)(nil),           // 32: google.protobuf.Timestamp
}
var file_volume_proto_depIdxs = []int32{
	32, // 0: volume.VolumeInstance.created_at:type_name -> google.protobuf.Timestamp
	32, // 1: volume.VolumeInstance.updated_at:type_name -> google.protobuf.Timestamp
	1,  // 2: volume.GetOrCreateVolumeResponse.volume:type_name -> volume.VolumeInstance
	32, // 3: volume.PathInfo.mod_time:type_name -> google.protobuf.Timestamp
	6,  // 4: volume.ListPathResponse.path_infos:type_name -> volume.PathInfo
	1,  // 5: volume.ListVolumesResponse.volumes:type_name -> volume.VolumeInstance
	6,  // 6: volume.StatPathResponse.path_info:type_name -> volume.PathInfo
	0,  // 7: volume.CreatePresignedURLRequest.method:type_name -> volume.PresignedURLMethod
	19, // 8: volume.CreatePresignedURLRequest.params:type_name -> volume.PresignedURLParams
	25, // 9: volume.CreateMultipartUploadResponse.file_upload_parts:type_name -> volume.FileUploadPart
	27, // 10: volume.CompleteMultipartUploadRequest.completed_parts:type_name -> volume.CompletedPart
	2,  // 11: volume.VolumeService.GetOrCreateVolume:input_type -> volume.GetOrCreateVolumeRequest
	4,  // 12: volume.VolumeService.DeleteVolume:input_type -> volume.DeleteVolumeRequest
	13, // 13: volume.VolumeService.ListVolumes:input_type -> volume.ListVolumesRequest
	7,  // 14: volume.VolumeService.ListPath:input_type -> volume.ListPathRequest
	9,  // 15: volume.VolumeService.DeletePath:input_type -> volume.DeletePathRequest
	11, // 16: volume.VolumeService.CopyPathStream:input_type -> volume.CopyPathRequest
	15, // 17: volume.VolumeService.MovePath:input_type -> volume.MovePathRequest
	17, // 18: volume.VolumeService.StatPath:input_type -> volume.StatPathRequest
	20, // 19: volume.VolumeService.GetFileServiceInfo:input_type -> volume.GetFileServiceInfoRequest
	22, // 20: volume.VolumeService.CreatePresignedURL:input_type -> volume.CreatePresignedURLRequest
	24, // 21: volume.VolumeService.CreateMultipartUpload:input_type -> volume.CreateMultipartUploadRequest
	28, // 22: volume.VolumeService.CompleteMultipartUpload:input_type -> volume.CompleteMultipartUploadRequest
	30, // 23: volume.VolumeService.AbortMultipartUpload:input_type -> volume.AbortMultipartUploadRequest
	3,  // 24: volume.VolumeService.GetOrCreateVolume:output_type -> volume.GetOrCreateVolumeResponse
	5,  // 25: volume.VolumeService.DeleteVolume:output_type -> volume.DeleteVolumeResponse
	14, // 26: volume.VolumeService.ListVolumes:output_type -> volume.ListVolumesResponse
	8,  // 27: volume.VolumeService.ListPath:output_type -> volume.ListPathResponse
	10, // 28: volume.VolumeService.DeletePath:output_type -> volume.DeletePathResponse
	12, // 29: volume.VolumeService.CopyPathStream:output_type -> volume.CopyPathResponse
	16, // 30: volume.VolumeService.MovePath:output_type -> volume.MovePathResponse
	18, // 31: volume.VolumeService.StatPath:output_type -> volume.StatPathResponse
	21, // 32: volume.VolumeService.GetFileServiceInfo:output_type -> volume.GetFileServiceInfoResponse
	23, // 33: volume.VolumeService.CreatePresignedURL:output_type -> volume.CreatePresignedURLResponse
	26, // 34: volume.VolumeService.CreateMultipartUpload:output_type -> volume.CreateMultipartUploadResponse
	29, // 35: volume.VolumeService.CompleteMultipartUpload:output_type -> volume.CompleteMultipartUploadResponse
	31, // 36: volume.VolumeService.AbortMultipartUpload:output_type -> volume.AbortMultipartUploadResponse
	24, // [24:37] is the sub-list for method output_type
	11, // [11:24] is the sub-list for method input_type
	11, // [11:11] is the sub-list for extension type_name
	11, // [11:11] is the sub-list for extension extendee
	0,  // [0:11] is the sub-list for field type_name
}

func init() { file_volume_proto_init() }
func file_volume_proto_init() {
	if File_volume_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_volume_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VolumeInstance); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOrCreateVolumeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOrCreateVolumeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteVolumeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteVolumeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PathInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPathRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPathResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeletePathRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeletePathResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CopyPathRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CopyPathResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListVolumesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListVolumesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MovePathRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MovePathResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatPathRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatPathResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PresignedURLParams); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFileServiceInfoRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFileServiceInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreatePresignedURLRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreatePresignedURLResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateMultipartUploadRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FileUploadPart); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateMultipartUploadResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CompletedPart); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CompleteMultipartUploadRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CompleteMultipartUploadResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AbortMultipartUploadRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_volume_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AbortMultipartUploadResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_volume_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   31,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_volume_proto_goTypes,
		DependencyIndexes: file_volume_proto_depIdxs,
		EnumInfos:         file_volume_proto_enumTypes,
		MessageInfos:      file_volume_proto_msgTypes,
	}.Build()
	File_volume_proto = out.File
	file_volume_proto_rawDesc = nil
	file_volume_proto_goTypes = nil
	file_volume_proto_depIdxs = nil
}
